From 4b7cd1290e1a5a185aa0a0652a31a6ef6180de81 Mon Sep 17 00:00:00 2001 From: Petar Najman Date: Fri, 23 Feb 2018 17:58:41 +0100 Subject: [PATCH] ADD: Adding module web_widget_image_url --- web_widget_image_url/README.rst | 56 ++++++++++++++++++ web_widget_image_url/__init__.py | 0 web_widget_image_url/__manifest__.py | 17 ++++++ .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/image.png | Bin 0 -> 17944 bytes .../static/src/js/web_widget_image_url.js | 36 +++++++++++ .../static/src/xml/web_widget_image_url.xml | 17 ++++++ .../views/web_widget_image_url.xml | 12 ++++ 8 files changed, 138 insertions(+) create mode 100644 web_widget_image_url/README.rst create mode 100644 web_widget_image_url/__init__.py create mode 100644 web_widget_image_url/__manifest__.py create mode 100644 web_widget_image_url/static/description/icon.png create mode 100644 web_widget_image_url/static/description/image.png create mode 100644 web_widget_image_url/static/src/js/web_widget_image_url.js create mode 100644 web_widget_image_url/static/src/xml/web_widget_image_url.xml create mode 100644 web_widget_image_url/views/web_widget_image_url.xml diff --git a/web_widget_image_url/README.rst b/web_widget_image_url/README.rst new file mode 100644 index 00000000..28bd6132 --- /dev/null +++ b/web_widget_image_url/README.rst @@ -0,0 +1,56 @@ +.. image:: https://www.gnu.org/graphics/lgplv3-147x51.png + :target: https://www.gnu.org/licenses/lgpl-3.0.en.html + :alt: License: LGPL-v3 + +============= +Web Image URL +============= + +This module provides web widget for displaying image from URL on form and tree views. + +Usage +===== + +To use this module, you need to decorate xml field with widget ``image_url``. + + +.. code-block:: xml + + + +Here's an examples of how images looks like on a form + +.. figure:: static/description/image.png + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smash it by providing detailed and welcomed feedback. + +Credits +======= + +Contributors +------------ + +* Petar Najman +* Sladjan Kantar + + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit https://odoo-community.org. diff --git a/web_widget_image_url/__init__.py b/web_widget_image_url/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/web_widget_image_url/__manifest__.py b/web_widget_image_url/__manifest__.py new file mode 100644 index 00000000..30f31df3 --- /dev/null +++ b/web_widget_image_url/__manifest__.py @@ -0,0 +1,17 @@ +# Copyright 2017 - 2018 Modoolar +# License LGPLv3.0 or later (https://www.gnu.org/licenses/lgpl-3.0.en.html). +{ + "name": "Web Image URL", + "summary": "This module provides web widget for displaying image from URL", + "category": "Web", + "version": "11.0.1.0.0", + "license": "LGPL-3", + "author": "Modoolar, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/web/", + "depends": ["web"], + "data": [ + "views/web_widget_image_url.xml", + ], + "qweb": ["static/src/xml/*.xml"], + "installable": True, +} diff --git a/web_widget_image_url/static/description/icon.png b/web_widget_image_url/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 zcmW++2RxMjAAjx~&dlBk9S+%}OXg)AGE&Cb*&}d0jUxM@u(PQx^-s)697TX`ehR4?GS^qbkof1cslKgkU)h65qZ9Oc=ml_0temigYLJfnz{IDzUf>bGs4N!v3=Z3jMq&A#7%rM5eQ#dc?k~! zVpnB`o+K7|Al`Q_U;eD$B zfJtP*jH`siUq~{KE)`jP2|#TUEFGRryE2`i0**z#*^6~AI|YzIWy$Cu#CSLW3q=GA z6`?GZymC;dCPk~rBS%eCb`5OLr;RUZ;D`}um=H)BfVIq%7VhiMr)_#G0N#zrNH|__ zc+blN2UAB0=617@>_u;MPHN;P;N#YoE=)R#i$k_`UAA>WWCcEVMh~L_ zj--gtp&|K1#58Yz*AHCTMziU1Jzt_jG0I@qAOHsk$2}yTmVkBp_eHuY$A9)>P6o~I z%aQ?!(GqeQ-Y+b0I(m9pwgi(IIZZzsbMv+9w{PFtd_<_(LA~0H(xz{=FhLB@(1&qHA5EJw1>>=%q2f&^X>IQ{!GJ4e9U z&KlB)z(84HmNgm2hg2C0>WM{E(DdPr+EeU_N@57;PC2&DmGFW_9kP&%?X4}+xWi)( z;)z%wI5>D4a*5XwD)P--sPkoY(a~WBw;E~AW`Yue4kFa^LM3X`8x|}ZUeMnqr}>kH zG%WWW>3ml$Yez?i%)2pbKPI7?5o?hydokgQyZsNEr{a|mLdt;X2TX(#B1j35xPnPW z*bMSSOauW>o;*=kO8ojw91VX!qoOQb)zHJ!odWB}d+*K?#sY_jqPdg{Sm2HdYzdEx zOGVPhVRTGPtv0o}RfVP;Nd(|CB)I;*t&QO8h zFfekr30S!-LHmV_Su-W+rEwYXJ^;6&3|L$mMC8*bQptyOo9;>Qb9Q9`ySe3%V$A*9 zeKEe+b0{#KWGp$F+tga)0RtI)nhMa-K@JS}2krK~n8vJ=Ngm?R!9G<~RyuU0d?nz# z-5EK$o(!F?hmX*2Yt6+coY`6jGbb7tF#6nHA zuKk=GGJ;ZwON1iAfG$E#Y7MnZVmrY|j0eVI(DN_MNFJmyZ|;w4tf@=CCDZ#5N_0K= z$;R~bbk?}TpfDjfB&aiQ$VA}s?P}xPERJG{kxk5~R`iRS(SK5d+Xs9swCozZISbnS zk!)I0>t=A<-^z(cmSFz3=jZ23u13X><0b)P)^1T_))Kr`e!-pb#q&J*Q`p+B6la%C zuVl&0duN<;uOsB3%T9Fp8t{ED108<+W(nOZd?gDnfNBC3>M8WE61$So|P zVvqH0SNtDTcsUdzaMDpT=Ty0pDHHNL@Z0w$Y`XO z2M-_r1S+GaH%pz#Uy0*w$Vdl=X=rQXEzO}d6J^R6zjM1u&c9vYLvLp?W7w(?np9x1 zE_0JSAJCPB%i7p*Wvg)pn5T`8k3-uR?*NT|J`eS#_#54p>!p(mLDvmc-3o0mX*mp_ zN*AeS<>#^-{S%W<*mz^!X$w_2dHWpcJ6^j64qFBft-o}o_Vx80o0>}Du;>kLts;$8 zC`7q$QI(dKYG`Wa8#wl@V4jVWBRGQ@1dr-hstpQL)Tl+aqVpGpbSfN>5i&QMXfiZ> zaA?T1VGe?rpQ@;+pkrVdd{klI&jVS@I5_iz!=UMpTsa~mBga?1r}aRBm1WS;TT*s0f0lY=JBl66Upy)-k4J}lh=P^8(SXk~0xW=T9v*B|gzIhN z>qsO7dFd~mgxAy4V?&)=5ieYq?zi?ZEoj)&2o)RLy=@hbCRcfT5jigwtQGE{L*8<@Yd{zg;CsL5mvzfDY}P-wos_6PfprFVaeqNE%h zKZhLtcQld;ZD+>=nqN~>GvROfueSzJD&BE*}XfU|H&(FssBqY=hPCt`d zH?@s2>I(|;fcW&YM6#V#!kUIP8$Nkdh0A(bEVj``-AAyYgwY~jB zT|I7Bf@%;7aL7Wf4dZ%VqF$eiaC38OV6oy3Z#TER2G+fOCd9Iaoy6aLYbPTN{XRPz z;U!V|vBf%H!}52L2gH_+j;`bTcQRXB+y9onc^wLm5wi3-Be}U>k_u>2Eg$=k!(l@I zcCg+flakT2Nej3i0yn+g+}%NYb?ta;R?(g5SnwsQ49U8Wng8d|{B+lyRcEDvR3+`O{zfmrmvFrL6acVP%yG98X zo&+VBg@px@i)%o?dG(`T;n*$S5*rnyiR#=wW}}GsAcfyQpE|>a{=$Hjg=-*_K;UtD z#z-)AXwSRY?OPefw^iI+ z)AXz#PfEjlwTes|_{sB?4(O@fg0AJ^g8gP}ex9Ucf*@_^J(s_5jJV}c)s$`Myn|Kd z$6>}#q^n{4vN@+Os$m7KV+`}c%4)4pv@06af4-x5#wj!KKb%caK{A&Y#Rfs z-po?Dcb1({W=6FKIUirH&(yg=*6aLCekcKwyfK^JN5{wcA3nhO(o}SK#!CINhI`-I z1)6&n7O&ZmyFMuNwvEic#IiOAwNkR=u5it{B9n2sAJV5pNhar=j5`*N!Na;c7g!l$ z3aYBqUkqqTJ=Re-;)s!EOeij=7SQZ3Hq}ZRds%IM*PtM$wV z@;rlc*NRK7i3y5BETSKuumEN`Xu_8GP1Ri=OKQ$@I^ko8>H6)4rjiG5{VBM>B|%`&&s^)jS|-_95&yc=GqjNo{zFkw%%HHhS~e=s zD#sfS+-?*t|J!+ozP6KvtOl!R)@@-z24}`9{QaVLD^9VCSR2b`b!KC#o;Ki<+wXB6 zx3&O0LOWcg4&rv4QG0)4yb}7BFSEg~=IR5#ZRj8kg}dS7_V&^%#Do==#`u zpy6{ox?jWuR(;pg+f@mT>#HGWHAJRRDDDv~@(IDw&R>9643kK#HN`!1vBJHnC+RM&yIh8{gG2q zA%e*U3|N0XSRa~oX-3EAneep)@{h2vvd3Xvy$7og(sayr@95+e6~Xvi1tUqnIxoIH zVWo*OwYElb#uyW{Imam6f2rGbjR!Y3`#gPqkv57dB6K^wRGxc9B(t|aYDGS=m$&S!NmCtrMMaUg(c zc2qC=2Z`EEFMW-me5B)24AqF*bV5Dr-M5ig(l-WPS%CgaPzs6p_gnCIvTJ=Y<6!gT zVt@AfYCzjjsMEGi=rDQHo0yc;HqoRNnNFeWZgcm?f;cp(6CNylj36DoL(?TS7eU#+ z7&mfr#y))+CJOXQKUMZ7QIdS9@#-}7y2K1{8)cCt0~-X0O!O?Qx#E4Og+;A2SjalQ zs7r?qn0H044=sDN$SRG$arw~n=+T_DNdSrarmu)V6@|?1-ZB#hRn`uilTGPJ@fqEy zGt(f0B+^JDP&f=r{#Y_wi#AVDf-y!RIXU^0jXsFpf>=Ji*TeqSY!H~AMbJdCGLhC) zn7Rx+sXw6uYj;WRYrLd^5IZq@6JI1C^YkgnedZEYy<&4(z%Q$5yv#Boo{AH8n$a zhb4Y3PWdr269&?V%uI$xMcUrMzl=;w<_nm*qr=c3Rl@i5wWB;e-`t7D&c-mcQl7x! zZWB`UGcw=Y2=}~wzrfLx=uet<;m3~=8I~ZRuzvMQUQdr+yTV|ATf1Uuomr__nDf=X zZ3WYJtHp_ri(}SQAPjv+Y+0=fH4krOP@S&=zZ-t1jW1o@}z;xk8 z(Nz1co&El^HK^NrhVHa-_;&88vTU>_J33=%{if;BEY*J#1n59=07jrGQ#IP>@u#3A z;!q+E1Rj3ZJ+!4bq9F8PXJ@yMgZL;>&gYA0%_Kbi8?S=XGM~dnQZQ!yBSgcZhY96H zrWnU;k)qy`rX&&xlDyA%(a1Hhi5CWkmg(`Gb%m(HKi-7Z!LKGRP_B8@`7&hdDy5n= z`OIxqxiVfX@OX1p(mQu>0Ai*v_cTMiw4qRt3~NBvr9oBy0)r>w3p~V0SCm=An6@3n)>@z!|o-$HvDK z|3D2ZMJkLE5loMKl6R^ez@Zz%S$&mbeoqH5`Bb){Ei21q&VP)hWS2tjShfFtGE+$z zzCR$P#uktu+#!w)cX!lWN1XU%K-r=s{|j?)Akf@q#3b#{6cZCuJ~gCxuMXRmI$nGtnH+-h z+GEi!*X=AP<|fG`1>MBdTb?28JYc=fGvAi2I<$B(rs$;eoJCyR6_bc~p!XR@O-+sD z=eH`-ye})I5ic1eL~TDmtfJ|8`0VJ*Yr=hNCd)G1p2MMz4C3^Mj?7;!w|Ly%JqmuW zlIEW^Ft%z?*|fpXda>Jr^1noFZEwFgVV%|*XhH@acv8rdGxeEX{M$(vG{Zw+x(ei@ zmfXb22}8-?Fi`vo-YVrTH*C?a8%M=Hv9MqVH7H^J$KsD?>!SFZ;ZsvnHr_gn=7acz z#W?0eCdVhVMWN12VV^$>WlQ?f;P^{(&pYTops|btm6aj>_Uz+hqpGwB)vWp0Cf5y< zft8-je~nn?W11plq}N)4A{l8I7$!ks_x$PXW-2XaRFswX_BnF{R#6YIwMhAgd5F9X zGmwdadS6(a^fjHtXg8=l?Rc0Sm%hk6E9!5cLVloEy4eh(=FwgP`)~I^5~pBEWo+F6 zSf2ncyMurJN91#cJTy_u8Y}@%!bq1RkGC~-bV@SXRd4F{R-*V`bS+6;W5vZ(&+I<9$;-V|eNfLa5n-6% z2(}&uGRF;p92eS*sE*oR$@pexaqr*meB)VhmIg@h{uzkk$9~qh#cHhw#>O%)b@+(| z^IQgqzuj~Sk(J;swEM-3TrJAPCq9k^^^`q{IItKBRXYe}e0Tdr=Huf7da3$l4PdpwWDop%^}n;dD#K4s#DYA8SHZ z&1!riV4W4R7R#C))JH1~axJ)RYnM$$lIR%6fIVA@zV{XVyx}C+a-Dt8Y9M)^KU0+H zR4IUb2CJ{Hg>CuaXtD50jB(_Tcx=Z$^WYu2u5kubqmwp%drJ6 z?Fo40g!Qd<-l=TQxqHEOuPX0;^z7iX?Ke^a%XT<13TA^5`4Xcw6D@Ur&VT&CUe0d} z1GjOVF1^L@>O)l@?bD~$wzgf(nxX1OGD8fEV?TdJcZc2KoUe|oP1#=$$7ee|xbY)A zDZq+cuTpc(fFdj^=!;{k03C69lMQ(|>uhRfRu%+!k&YOi-3|1QKB z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/web_widget_image_url/static/description/image.png b/web_widget_image_url/static/description/image.png new file mode 100644 index 0000000000000000000000000000000000000000..bfd0522c9a6823eee642a116561fb2cc607a0f04 GIT binary patch literal 17944 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 literal 0 HcmV?d00001 diff --git a/web_widget_image_url/static/src/js/web_widget_image_url.js b/web_widget_image_url/static/src/js/web_widget_image_url.js new file mode 100644 index 00000000..841d5a76 --- /dev/null +++ b/web_widget_image_url/static/src/js/web_widget_image_url.js @@ -0,0 +1,36 @@ +// Copyright 2017 - 2018 Modoolar +// License LGPLv3.0 or later (https://www.gnu.org/licenses/lgpl-3.0.en.html). + +odoo.define('web_widget_image_url.FieldImageURL', function (require) { +"use strict"; + + var AbstractField = require('web.AbstractField'); + var core = require('web.core'); + var registry = require('web.field_registry'); + var QWeb = core.qweb; + var _t = core._t; + + var UrlImage = AbstractField.extend({ + className: 'o_attachment_image', + template: 'FieldImageURL', + placeholder: "/web/static/src/img/placeholder.png", + supportedFieldTypes: ['char'], + + url(){ + return this.value ? this.value : this.placeholder; + }, + + _render() { + this._super(arguments); + + var self = this; + var $img = this.$("img:first"); + $img.on('error', function() { + $img.attr('src', self.placeholder); + self.do_warn(_t("Image"), _t("Could not display the selected image.")); + }); + } + }); + + registry.add('image_url', UrlImage); +}); diff --git a/web_widget_image_url/static/src/xml/web_widget_image_url.xml b/web_widget_image_url/static/src/xml/web_widget_image_url.xml new file mode 100644 index 00000000..7ccd3020 --- /dev/null +++ b/web_widget_image_url/static/src/xml/web_widget_image_url.xml @@ -0,0 +1,17 @@ + + + + + + + + + diff --git a/web_widget_image_url/views/web_widget_image_url.xml b/web_widget_image_url/views/web_widget_image_url.xml new file mode 100644 index 00000000..bb49a3cc --- /dev/null +++ b/web_widget_image_url/views/web_widget_image_url.xml @@ -0,0 +1,12 @@ + + + +