Merge lp:~openerp-dev/openobject-client-web/image-widget-dialogbox into lp:openobject-client-web/trunk

Proposed by Vaibhav Darji
Status: Rejected
Rejected by: Xavier (Open ERP)
Proposed branch: lp:~openerp-dev/openobject-client-web/image-widget-dialogbox
Merge into: lp:openobject-client-web/trunk
Diff against target: 156 lines (+36/-21)
4 files modified
addons/openerp/controllers/image.py (+8/-6)
addons/openerp/controllers/templates/image.mako (+8/-10)
addons/openerp/widgets/form/_binary.py (+5/-1)
addons/openerp/widgets/form/templates/image.mako (+15/-4)
To merge this branch: bzr merge lp:~openerp-dev/openobject-client-web/image-widget-dialogbox
Reviewer Review Type Date Requested Status
Xavier (Open ERP) (community) Disapprove
Review via email: mp+45838@code.launchpad.net

Description of the change

Dialog box for image editing.

To post a comment you must log in.
Revision history for this message
Xavier (Open ERP) (xmo-deactivatedaccount) wrote :

bitrotted, not sure why so much code has changed

review: Disapprove

Unmerged revisions

4299. By Vaibhav Darji

[IMP] Dialog box for image widget.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'addons/openerp/controllers/image.py'
2--- addons/openerp/controllers/image.py 2010-09-23 13:37:20 +0000
3+++ addons/openerp/controllers/image.py 2011-01-11 11:41:56 +0000
4@@ -33,7 +33,7 @@
5 from openerp.utils import rpc
6 from openerp.widgets.form import get_temp_file
7
8-from openobject.tools import expose, redirect
9+from openobject.tools import expose, redirect, ast
10
11
12 class Image(SecuredController):
13@@ -46,6 +46,8 @@
14 saved = kw.get('saved') or None
15 model = kw.get('model')
16 id = kw.get('id')
17+ if id:
18+ id = ast.literal_eval(id)
19 field = kw.get('field')
20 value = kw.get('value') or None
21 return dict(model=model, saved=saved, id=id, field=field, value=value)
22@@ -54,8 +56,9 @@
23 def get_image(self, **kw):
24 model = kw.get('model')
25 field = kw.get('field')
26- id = int(kw.get('id'))
27-
28+ id = kw.get('id')
29+ if id:
30+ id = ast.literal_eval(id)
31 proxy = rpc.RPCProxy(model)
32 res = proxy.read([id], [field])[0]
33 res = res.get(field)
34@@ -81,9 +84,9 @@
35 datas = upimage.file.read()
36
37 model = kw.get('model')
38- id = kw.get('id')
39+ id = kw.get('id') or False
40 if id:
41- id = int(id)
42+ id = ast.literal_eval(id)
43 field = kw.get('field')
44
45 value = base64.encodestring(datas)
46@@ -96,7 +99,6 @@
47
48 if res:
49 saved = 1
50- value = None
51 else:
52 saved = 0
53 return dict(model=model, saved=saved, id=id, field=field, value=value)
54
55=== modified file 'addons/openerp/controllers/templates/image.mako'
56--- addons/openerp/controllers/templates/image.mako 2010-12-13 07:26:35 +0000
57+++ addons/openerp/controllers/templates/image.mako 2011-01-11 11:41:56 +0000
58@@ -14,17 +14,15 @@
59 }
60
61 jQuery(document).ready(function(){
62+
63 var saved = openobject.dom.get('saved').value;
64- var img = window.opener.document.getElementById('${field}');
65- if(saved != '' && !parseInt(saved, 10)) {
66+ var img = window.top.document.getElementById('${field}');
67+ if(document.getElementById('value').value) {
68 img.src = "data:image/png;base64," + document.getElementById('value').value;
69- jQuery('input[id=${field}][type="hidden"][is_image]', window.opener.document).val(document.getElementById('value').value);
70- }
71- else{
72- img.src = img.src + '&' + Math.random();
73- }
74- if(saved)
75- window.close();
76+ jQuery('input[id=${field}][type="hidden"][is_image]', window.top.document).val(document.getElementById('value').value);
77+ window.frameElement.close();
78+ return null;
79+ }
80 });
81
82 </script>
83@@ -67,7 +65,7 @@
84 <a href="javascript: void(0)" class="button-a" onclick="do_delete('add_image', '${id}', '${field}')">${_("Delete")}</a>
85 </td>
86 <td>
87- <a href="javascript: void(0)" class="button-a" onclick="window.close()">${_("Close")}</a>
88+ <a href="javascript: void(0)" class="button-a" onclick="window.frameElement.close();">${_("Close")}</a>
89 </td>
90 </tr>
91 </table>
92
93=== modified file 'addons/openerp/widgets/form/_binary.py'
94--- addons/openerp/widgets/form/_binary.py 2010-12-02 14:19:59 +0000
95+++ addons/openerp/widgets/form/_binary.py 2011-01-11 11:41:56 +0000
96@@ -96,7 +96,11 @@
97 self.field = self.name.split('/')[-1]
98 if attrs.get('widget'):
99 if self.id:
100- self.src = tools.url('/openerp/image/get_image', model=self.model, id=self.id, field=self.field)
101+ src = rpc.RPCProxy(self.model).read([self.id], [self.field])[0][self.field]
102+ if src:
103+ self.bin_src = src
104+ else:
105+ self.src = self.bin_src = ''
106 elif attrs.get('value'):
107 self.bin_src =attrs['value']
108 else:
109
110=== modified file 'addons/openerp/widgets/form/templates/image.mako'
111--- addons/openerp/widgets/form/templates/image.mako 2011-01-07 14:38:02 +0000
112+++ addons/openerp/widgets/form/templates/image.mako 2011-01-11 11:41:56 +0000
113@@ -13,8 +13,7 @@
114 % if height:
115 height="${height}"
116 % endif
117- ${py.attrs(attrs)}
118- onclick="openobject.tools.openWindow(openobject.http.getURL('/openerp/image', {model: '${model}', id: '${id}', field : '${field}'}), {width: 500, height: 300});"
119+ ${py.attrs(attrs)}
120 />
121 % elif bin_src:
122 <img
123@@ -29,7 +28,6 @@
124 height="${height}"
125 % endif
126 ${py.attrs(attrs)}
127- onclick="openobject.tools.openWindow(openobject.http.getURL('/openerp/image', {model: '${model}', id: '${id}', field : '${field}'}), {width: 500, height: 300});"
128 />
129 % else:
130 <img
131@@ -43,7 +41,6 @@
132 height="100"
133 class="${css_class} no_image"
134 ${py.attrs(attrs)}
135- onclick="openobject.tools.openWindow(openobject.http.getURL('/openerp/image', {model: '${model}', id: '${id}', field : '${field}'}), {width: 500, height: 300});"
136 />
137 % endif
138 % else:
139@@ -95,3 +92,17 @@
140 % endif
141 % endif
142 <input type="hidden" id="${name}" name="${name}" is_image="true" value="${src or bin_src or ''}"/>
143+% if editable:
144+<script type="text/javascript">
145+ jQuery(idSelector('${name}')).click(function(){=
146+ return jQuery.frame_dialog({
147+ src: openobject.http.getURL('/openerp/image', {model: '${model}', id: '${id or False}', field : '${field}'}),
148+ 'class': 'action-dialog'
149+ },
150+ {'source-window': $(window)[0],
151+ source_id: '${name}'
152+ }
153+ )
154+ });
155+</script>
156+% endif