openerp-dev-web team mailing list archive
-
openerp-dev-web team
-
Mailing list archive
-
Message #02185
[Merge] lp:~openerp-dev/openobject-client-web/image-widget-dialogbox into lp:openobject-client-web
vda(Open ERP) has proposed merging lp:~openerp-dev/openobject-client-web/image-widget-dialogbox into lp:openobject-client-web.
Requested reviews:
OpenERP SA's Web Client R&D (openerp-dev-web)
Related bugs:
#701042 loading a logo in company configuration is still in a popup window
https://bugs.launchpad.net/bugs/701042
#701415 the client doesn't propose to save the record if there is only a m2m modification
https://bugs.launchpad.net/bugs/701415
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-client-web/image-widget-dialogbox/+merge/45838
Dialog box for image editing.
--
https://code.launchpad.net/~openerp-dev/openobject-client-web/image-widget-dialogbox/+merge/45838
Your team OpenERP SA's Web Client R&D is requested to review the proposed merge of lp:~openerp-dev/openobject-client-web/image-widget-dialogbox into lp:openobject-client-web.
=== modified file 'addons/openerp/controllers/image.py'
--- addons/openerp/controllers/image.py 2010-09-23 13:37:20 +0000
+++ addons/openerp/controllers/image.py 2011-01-11 11:41:56 +0000
@@ -33,7 +33,7 @@
from openerp.utils import rpc
from openerp.widgets.form import get_temp_file
-from openobject.tools import expose, redirect
+from openobject.tools import expose, redirect, ast
class Image(SecuredController):
@@ -46,6 +46,8 @@
saved = kw.get('saved') or None
model = kw.get('model')
id = kw.get('id')
+ if id:
+ id = ast.literal_eval(id)
field = kw.get('field')
value = kw.get('value') or None
return dict(model=model, saved=saved, id=id, field=field, value=value)
@@ -54,8 +56,9 @@
def get_image(self, **kw):
model = kw.get('model')
field = kw.get('field')
- id = int(kw.get('id'))
-
+ id = kw.get('id')
+ if id:
+ id = ast.literal_eval(id)
proxy = rpc.RPCProxy(model)
res = proxy.read([id], [field])[0]
res = res.get(field)
@@ -81,9 +84,9 @@
datas = upimage.file.read()
model = kw.get('model')
- id = kw.get('id')
+ id = kw.get('id') or False
if id:
- id = int(id)
+ id = ast.literal_eval(id)
field = kw.get('field')
value = base64.encodestring(datas)
@@ -96,7 +99,6 @@
if res:
saved = 1
- value = None
else:
saved = 0
return dict(model=model, saved=saved, id=id, field=field, value=value)
=== modified file 'addons/openerp/controllers/templates/image.mako'
--- addons/openerp/controllers/templates/image.mako 2010-12-13 07:26:35 +0000
+++ addons/openerp/controllers/templates/image.mako 2011-01-11 11:41:56 +0000
@@ -14,17 +14,15 @@
}
jQuery(document).ready(function(){
+
var saved = openobject.dom.get('saved').value;
- var img = window.opener.document.getElementById('${field}');
- if(saved != '' && !parseInt(saved, 10)) {
+ var img = window.top.document.getElementById('${field}');
+ if(document.getElementById('value').value) {
img.src = "data:image/png;base64," + document.getElementById('value').value;
- jQuery('input[id=${field}][type="hidden"][is_image]', window.opener.document).val(document.getElementById('value').value);
- }
- else{
- img.src = img.src + '&' + Math.random();
- }
- if(saved)
- window.close();
+ jQuery('input[id=${field}][type="hidden"][is_image]', window.top.document).val(document.getElementById('value').value);
+ window.frameElement.close();
+ return null;
+ }
});
</script>
@@ -67,7 +65,7 @@
<a href="javascript: void(0)" class="button-a" onclick="do_delete('add_image', '${id}', '${field}')">${_("Delete")}</a>
</td>
<td>
- <a href="javascript: void(0)" class="button-a" onclick="window.close()">${_("Close")}</a>
+ <a href="javascript: void(0)" class="button-a" onclick="window.frameElement.close();">${_("Close")}</a>
</td>
</tr>
</table>
=== modified file 'addons/openerp/widgets/form/_binary.py'
--- addons/openerp/widgets/form/_binary.py 2010-12-02 14:19:59 +0000
+++ addons/openerp/widgets/form/_binary.py 2011-01-11 11:41:56 +0000
@@ -96,7 +96,11 @@
self.field = self.name.split('/')[-1]
if attrs.get('widget'):
if self.id:
- self.src = tools.url('/openerp/image/get_image', model=self.model, id=self.id, field=self.field)
+ src = rpc.RPCProxy(self.model).read([self.id], [self.field])[0][self.field]
+ if src:
+ self.bin_src = src
+ else:
+ self.src = self.bin_src = ''
elif attrs.get('value'):
self.bin_src =attrs['value']
else:
=== modified file 'addons/openerp/widgets/form/templates/image.mako'
--- addons/openerp/widgets/form/templates/image.mako 2011-01-07 14:38:02 +0000
+++ addons/openerp/widgets/form/templates/image.mako 2011-01-11 11:41:56 +0000
@@ -13,8 +13,7 @@
% if height:
height="${height}"
% endif
- ${py.attrs(attrs)}
- onclick="openobject.tools.openWindow(openobject.http.getURL('/openerp/image', {model: '${model}', id: '${id}', field : '${field}'}), {width: 500, height: 300});"
+ ${py.attrs(attrs)}
/>
% elif bin_src:
<img
@@ -29,7 +28,6 @@
height="${height}"
% endif
${py.attrs(attrs)}
- onclick="openobject.tools.openWindow(openobject.http.getURL('/openerp/image', {model: '${model}', id: '${id}', field : '${field}'}), {width: 500, height: 300});"
/>
% else:
<img
@@ -43,7 +41,6 @@
height="100"
class="${css_class} no_image"
${py.attrs(attrs)}
- onclick="openobject.tools.openWindow(openobject.http.getURL('/openerp/image', {model: '${model}', id: '${id}', field : '${field}'}), {width: 500, height: 300});"
/>
% endif
% else:
@@ -95,3 +92,17 @@
% endif
% endif
<input type="hidden" id="${name}" name="${name}" is_image="true" value="${src or bin_src or ''}"/>
+% if editable:
+<script type="text/javascript">
+ jQuery(idSelector('${name}')).click(function(){=
+ return jQuery.frame_dialog({
+ src: openobject.http.getURL('/openerp/image', {model: '${model}', id: '${id or False}', field : '${field}'}),
+ 'class': 'action-dialog'
+ },
+ {'source-window': $(window)[0],
+ source_id: '${name}'
+ }
+ )
+ });
+</script>
+% endif
Follow ups