diff options
| author | Géry Debongnie <ged@odoo.com> | 2015-03-10 08:47:55 +0100 |
|---|---|---|
| committer | Géry Debongnie <ged@odoo.com> | 2015-03-18 09:09:22 +0100 |
| commit | 5e6171bb6f43a2e0c35152fe456125ec8e1fd77e (patch) | |
| tree | 3a016f21068fc724db379fdda3e7bfa16a8c08f1 /addons/report/static/src/js/qwebactionmanager.js | |
| parent | 90050c24bb3331189329414d81ace9e839387377 (diff) | |
[REF] various addons: update to the new module system
Diffstat (limited to 'addons/report/static/src/js/qwebactionmanager.js')
| -rw-r--r-- | addons/report/static/src/js/qwebactionmanager.js | 179 |
1 files changed, 94 insertions, 85 deletions
diff --git a/addons/report/static/src/js/qwebactionmanager.js b/addons/report/static/src/js/qwebactionmanager.js index 74de70d03dd..339ae7d20c6 100644 --- a/addons/report/static/src/js/qwebactionmanager.js +++ b/addons/report/static/src/js/qwebactionmanager.js @@ -1,97 +1,106 @@ -openerp.report = function(instance) { - var wkhtmltopdf_state; +odoo.define('report.report', ['web.ActionManager', 'web.core', 'web.crash_manager', 'web.framework', 'web.session'], function (require) { - var trigger_download = function(session, response, c, action, options) { - session.get_file({ - url: '/report/download', - data: {data: JSON.stringify(response)}, - complete: openerp.web.unblockUI, - error: c.rpc_error.bind(c), - success: function(){ - if (action && options && !action.dialog) { - options.on_close(); - } - }, - }); - }; +var ActionManager = require('web.ActionManager'); +var core = require('web.core'); +var crash_manager = require('web.crash_manager'); +var framework = require('web.framework'); +var session = require('web.session'); - instance.web.ActionManager = instance.web.ActionManager.extend({ - ir_actions_report_xml: function(action, options) { - var self = this; - instance.web.blockUI(); - action = _.clone(action); - _t = instance.web._t; +var _t = core._t; +var wkhtmltopdf_state; - // QWeb reports - if ('report_type' in action && (action.report_type == 'qweb-html' || action.report_type == 'qweb-pdf' || action.report_type == 'controller')) { - var report_url = ''; - switch (action.report_type) { - case 'qweb-html': - report_url = '/report/html/' + action.report_name; - break; - case 'qweb-pdf': - report_url = '/report/pdf/' + action.report_name; - break; - case 'controller': - report_url = action.report_file; - break; - default: - report_url = '/report/html/' + action.report_name; - break; - } +var trigger_download = function(session, response, c, action, options) { + session.get_file({ + url: '/report/download', + data: {data: JSON.stringify(response)}, + complete: framework.unblockUI, + error: c.rpc_error.bind(c), + success: function(){ + if (action && options && !action.dialog) { + options.on_close(); + } + }, + }); +}; - // generic report: no query string - // particular: query string of action.data.form and context - if (!('data' in action) || !(action.data)) { - if ('active_ids' in action.context) { - report_url += "/" + action.context.active_ids.join(','); - } - } else { - report_url += "?options=" + encodeURIComponent(JSON.stringify(action.data)); - report_url += "&context=" + encodeURIComponent(JSON.stringify(action.context)); +ActionManager.include({ + ir_actions_report_xml: function(action, options) { + var self = this; + framework.blockUI(); + action = _.clone(action); + _t = core._t; + + // QWeb reports + if ('report_type' in action && (action.report_type == 'qweb-html' || action.report_type == 'qweb-pdf' || action.report_type == 'controller')) { + var report_url = ''; + switch (action.report_type) { + case 'qweb-html': + report_url = '/report/html/' + action.report_name; + break; + case 'qweb-pdf': + report_url = '/report/pdf/' + action.report_name; + break; + case 'controller': + report_url = action.report_file; + break; + default: + report_url = '/report/html/' + action.report_name; + break; + } + + // generic report: no query string + // particular: query string of action.data.form and context + if (!('data' in action) || !(action.data)) { + if ('active_ids' in action.context) { + report_url += "/" + action.context.active_ids.join(','); } + } else { + report_url += "?options=" + encodeURIComponent(JSON.stringify(action.data)); + 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; + var response = new Array(); + response[0] = report_url; + response[1] = action.report_type; + var c = crash_manager; - if (action.report_type == 'qweb-html') { - window.open(report_url, '_blank', 'scrollbars=1,height=900,width=1280'); - instance.web.unblockUI(); - } else if (action.report_type === 'qweb-pdf') { - // Trigger the download of the pdf/controller report - (wkhtmltopdf_state = wkhtmltopdf_state || openerp.session.rpc('/report/check_wkhtmltopdf')).then(function (presence) { - // Fallback on html if wkhtmltopdf is not installed or if OpenERP is started with one worker - if (presence === 'install') { - self.do_notify(_t('Report'), _t('Unable to find Wkhtmltopdf on this \ + if (action.report_type == 'qweb-html') { + window.open(report_url, '_blank', 'scrollbars=1,height=900,width=1280'); + framework.unblockUI(); + } else if (action.report_type === 'qweb-pdf') { + // Trigger the download of the pdf/controller report + (wkhtmltopdf_state = wkhtmltopdf_state || session.rpc('/report/check_wkhtmltopdf')).then(function (presence) { + // Fallback on html if wkhtmltopdf is not installed or if OpenERP is started with one worker + if (presence === 'install') { + self.do_notify(_t('Report'), _t('Unable to find Wkhtmltopdf on this \ system. The report will be shown in html.<br><br><a href="http://wkhtmltopdf.org/" target="_blank">\ wkhtmltopdf.org</a>'), true); - report_url = report_url.substring(12) - window.open('/report/html/' + report_url, '_blank', 'height=768,width=1024'); - instance.web.unblockUI(); - return; - } else if (presence === 'workers') { - self.do_notify(_t('Report'), _t('You need to start OpenERP with at least two \ + report_url = report_url.substring(12); + window.open('/report/html/' + report_url, '_blank', 'height=768,width=1024'); + framework.unblockUI(); + return; + } else if (presence === 'workers') { + self.do_notify(_t('Report'), _t('You need to start OpenERP with at least two \ workers to print a pdf version of the reports.'), true); - report_url = report_url.substring(12) - window.open('/report/html/' + report_url, '_blank', 'height=768,width=1024'); - instance.web.unblockUI(); - return; - } else if (presence === 'upgrade') { - self.do_notify(_t('Report'), _t('You should upgrade your version of\ - Wkhtmltopdf to at least 0.12.0 in order to get a correct display of headers and footers as well as\ - support for table-breaking between pages.<br><br><a href="http://wkhtmltopdf.org/" \ - target="_blank">wkhtmltopdf.org</a>'), true); - } - return trigger_download(self.session, response, c, action, options); - }); - } else if (action.report_type === 'controller') { + report_url = report_url.substring(12); + window.open('/report/html/' + report_url, '_blank', 'height=768,width=1024'); + framework.unblockUI(); + return; + } else if (presence === 'upgrade') { + self.do_notify(_t('Report'), _t('You should upgrade your version of\ +Wkhtmltopdf to at least 0.12.0 in order to get a correct display of headers and footers as well as\ +support for table-breaking between pages.<br><br><a href="http://wkhtmltopdf.org/" \ +target="_blank">wkhtmltopdf.org</a>'), true); + } return trigger_download(self.session, response, c, action, options); - } - } else { - return self._super(action, options); - } + }); + } else if (action.report_type === 'controller') { + return trigger_download(self.session, response, c, action, options); + } + } else { + return self._super(action, options); } - }); -}; + } +}); + +}); |
