Merge lp:~openerp-dev/openerp-web/6.1-opw-576703-bth into lp:openerp-web/6.1

Proposed by Bhumi Thakkar (Open ERP)
Status: Needs review
Proposed branch: lp:~openerp-dev/openerp-web/6.1-opw-576703-bth
Merge into: lp:openerp-web/6.1
Diff against target: 109 lines (+32/-18)
4 files modified
addons/web/controllers/main.py (+15/-12)
addons/web/static/src/js/chrome.js (+9/-1)
addons/web/static/src/js/core.js (+7/-4)
addons/web/static/src/js/views.js (+1/-1)
To merge this branch: bzr merge lp:~openerp-dev/openerp-web/6.1-opw-576703-bth
Reviewer Review Type Date Requested Status
OpenERP Core Team Pending
Review via email: mp+115141@code.launchpad.net

Description of the change

Hello,

   Uncaught exception error in opera browser.

1. Click on any report to print or download. OR
2. Select Backup database => enter password => click on button backup

Observed: 'Error is coming Uncaught exception error in opera browser'
Expected: 'download reports or file when click on report successfully.'

In getfile method, childnode[1] not exist when trying to parse as got error. Check if it is not exist then childnode is passed in error. In Backup database error content is passed.

Thanks.

To post a comment you must log in.

Unmerged revisions

2401. By Bhumi Thakkar (Open ERP)

[FIX] modify code for childnode parsing and backup error.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'addons/web/controllers/main.py'
2--- addons/web/controllers/main.py 2012-06-29 09:57:53 +0000
3+++ addons/web/controllers/main.py 2012-07-16 13:43:53 +0000
4@@ -385,18 +385,21 @@
5
6 @openerpweb.httprequest
7 def backup(self, req, backup_db, backup_pwd, token):
8- db_dump = base64.b64decode(
9- req.session.proxy("db").dump(backup_pwd, backup_db))
10- filename = "%(db)s_%(timestamp)s.dump" % {
11- 'db': backup_db,
12- 'timestamp': datetime.datetime.utcnow().strftime(
13- "%Y-%m-%d_%H-%M-%SZ")
14- }
15- return req.make_response(db_dump,
16- [('Content-Type', 'application/octet-stream; charset=binary'),
17- ('Content-Disposition', 'attachment; filename="' + filename + '"')],
18- {'fileToken': int(token)}
19- )
20+ try:
21+ db_dump = base64.b64decode(
22+ req.session.proxy("db").dump(backup_pwd, backup_db))
23+ filename = "%(db)s_%(timestamp)s.dump" % {
24+ 'db': backup_db,
25+ 'timestamp': datetime.datetime.utcnow().strftime(
26+ "%Y-%m-%d_%H-%M-%SZ")
27+ }
28+ return req.make_response(db_dump,
29+ [('Content-Type', 'application/octet-stream; charset=binary'),
30+ ('Content-Disposition', 'attachment; filename="' + filename + '"')],
31+ {'fileToken': int(token)}
32+ )
33+ except xmlrpclib.Fault, e:
34+ return simplejson.dumps([[],[{'error': e.faultCode, 'title': 'backup Database'}]])
35
36 @openerpweb.httprequest
37 def restore(self, req, db_file, restore_pwd, new_db):
38
39=== modified file 'addons/web/static/src/js/chrome.js'
40--- addons/web/static/src/js/chrome.js 2012-07-05 10:27:24 +0000
41+++ addons/web/static/src/js/chrome.js 2012-07-16 13:43:53 +0000
42@@ -455,7 +455,15 @@
43 self.do_notify(_t("Backed"),
44 _t("Database backed up successfully"));
45 },
46- error: openerp.webclient.crashmanager.on_rpc_error,
47+ error: function(error){
48+ if(error){
49+ self.display_error({
50+ title: 'Backup Database',
51+ error: 'AccessDenied'
52+ })
53+ return;
54+ }
55+ },
56 complete: function() {
57 self.unblockUI();
58 }
59
60=== modified file 'addons/web/static/src/js/core.js'
61--- addons/web/static/src/js/core.js 2012-06-14 12:30:24 +0000
62+++ addons/web/static/src/js/core.js 2012-07-16 13:43:53 +0000
63@@ -860,7 +860,6 @@
64 if (options.complete) { options.complete(); }
65 clearTimeout(timer);
66 $form_data.remove();
67- $target.remove();
68 if (remove_form && $form) { $form.remove(); }
69 };
70 var $target = $('<iframe style="display: none;">')
71@@ -869,12 +868,16 @@
72 .load(function () {
73 try {
74 if (options.error) {
75- options.error(JSON.parse(
76- this.contentDocument.body.childNodes[1].textContent
77- ));
78+ if (!this.contentDocument.body.childNodes[1])
79+ {
80+ options.error(this.contentDocument.body.childNodes);
81+ }else{
82+ options.error(JSON.parse(this.contentDocument.body.childNodes[1].textContent));
83+ }
84 }
85 } finally {
86 complete();
87+ return;
88 }
89 });
90
91
92=== modified file 'addons/web/static/src/js/views.js'
93--- addons/web/static/src/js/views.js 2012-06-29 10:53:25 +0000
94+++ addons/web/static/src/js/views.js 2012-07-16 13:43:53 +0000
95@@ -195,13 +195,13 @@
96 self.session.get_file({
97 url: '/web/report',
98 data: {action: JSON.stringify(action)},
99- complete: $.unblockUI,
100 success: function(){
101 if (!self.dialog && on_closed) {
102 on_closed();
103 }
104 self.dialog_stop();
105 },
106+ complete: $.unblockUI,
107 error: session.webclient.crashmanager.on_rpc_error
108 })
109 });