diff --git a/addons/report/static/src/js/qwebactionmanager.js b/addons/report/static/src/js/qwebactionmanager.js index 3910cab4dd7..7e55661be86 100644 --- a/addons/report/static/src/js/qwebactionmanager.js +++ b/addons/report/static/src/js/qwebactionmanager.js @@ -1,6 +1,15 @@ openerp.report = function(instance) { var wkhtmltopdf_state; + var trigger_download = function(session, response, c) { + session.get_file({ + url: '/report/download', + data: {data: JSON.stringify(response)}, + complete: openerp.web.unblockUI, + error: c.rpc_error.bind(c) + }); + } + instance.web.ActionManager = instance.web.ActionManager.extend({ ir_actions_report_xml: function(action, options) { var self = this; @@ -37,15 +46,16 @@ openerp.report = function(instance) { report_url += "&context=" + encodeURIComponent(JSON.stringify(action.context)); } + var response = new Array(); + response[0] = report_url; + response[1] = action.report_type; + var c = openerp.webclient.crashmanager; + if (action.report_type == 'qweb-html') { window.open(report_url, '_blank', 'height=900,width=1280'); instance.web.unblockUI(); } else { // Trigger the download of the pdf/controller report - var c = openerp.webclient.crashmanager; - var response = new Array(); - response[0] = report_url; - response[1] = action.report_type; if (action.report_type == 'qweb-pdf') { (wkhtmltopdf_state = wkhtmltopdf_state || openerp.session.rpc('/report/check_wkhtmltopdf')).then(function (presence) { @@ -54,7 +64,8 @@ openerp.report = function(instance) { self.do_notify(_t('Report'), _t('Unable to find Wkhtmltopdf on this \ system. The report will be shown in html.

\ wkhtmltopdf.org'), true); - window.open(report_url.substring(12), '_blank', 'height=768,width=1024'); + report_url = report_url.substring(12) + window.open('/report/html/' + report_url, '_blank', 'height=768,width=1024'); instance.web.unblockUI(); return; } else { @@ -65,14 +76,12 @@ openerp.report = function(instance) { target="_blank">wkhtmltopdf.org'), true); } } + return trigger_download(self.session, response, c); }); } - self.session.get_file({ - url: '/report/download', - data: {data: JSON.stringify(response)}, - complete: openerp.web.unblockUI, - error: c.rpc_error.bind(c) - }); + else if (action.report_type == 'controller') { + return trigger_download(self.session, response, c); + } } } else { return self._super(action, options);