|
@ -1,6 +1,6 @@ |
|
|
// © 2017 Creu Blanca
|
|
|
// © 2017 Creu Blanca
|
|
|
// License AGPL-3.0 or later (https://www.gnuorg/licenses/agpl.html).
|
|
|
// License AGPL-3.0 or later (https://www.gnuorg/licenses/agpl.html).
|
|
|
odoo.define("report_xlsx.report", function(require) { |
|
|
|
|
|
|
|
|
odoo.define("report_xlsx.report", function (require) { |
|
|
"use strict"; |
|
|
"use strict"; |
|
|
|
|
|
|
|
|
var core = require("web.core"); |
|
|
var core = require("web.core"); |
|
@ -10,7 +10,7 @@ odoo.define("report_xlsx.report", function(require) { |
|
|
var _t = core._t; |
|
|
var _t = core._t; |
|
|
|
|
|
|
|
|
ActionManager.include({ |
|
|
ActionManager.include({ |
|
|
_downloadReportXLSX: function(url, actions) { |
|
|
|
|
|
|
|
|
_downloadReportXLSX: function (url, actions) { |
|
|
var self = this; |
|
|
var self = this; |
|
|
framework.blockUI(); |
|
|
framework.blockUI(); |
|
|
var type = "xlsx"; |
|
|
var type = "xlsx"; |
|
@ -34,14 +34,14 @@ odoo.define("report_xlsx.report", function(require) { |
|
|
encodeURIComponent(JSON.stringify(cloned_action.context)); |
|
|
encodeURIComponent(JSON.stringify(cloned_action.context)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return new Promise(function(resolve, reject) { |
|
|
|
|
|
|
|
|
return new Promise(function (resolve, reject) { |
|
|
var blocked = !session.get_file({ |
|
|
var blocked = !session.get_file({ |
|
|
url: new_url, |
|
|
url: new_url, |
|
|
data: { |
|
|
data: { |
|
|
data: JSON.stringify([new_url, type]), |
|
|
data: JSON.stringify([new_url, type]), |
|
|
}, |
|
|
}, |
|
|
success: resolve, |
|
|
success: resolve, |
|
|
error: error => { |
|
|
|
|
|
|
|
|
error: (error) => { |
|
|
self.call("crash_manager", "rpc_error", error); |
|
|
self.call("crash_manager", "rpc_error", error); |
|
|
reject(); |
|
|
reject(); |
|
|
}, |
|
|
}, |
|
@ -61,12 +61,12 @@ odoo.define("report_xlsx.report", function(require) { |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
_triggerDownload: function(action, options, type) { |
|
|
|
|
|
|
|
|
_triggerDownload: function (action, options, type) { |
|
|
var self = this; |
|
|
var self = this; |
|
|
var reportUrls = this._makeReportUrls(action); |
|
|
var reportUrls = this._makeReportUrls(action); |
|
|
if (type === "xlsx") { |
|
|
if (type === "xlsx") { |
|
|
return this._downloadReportXLSX(reportUrls[type], action).then( |
|
|
return this._downloadReportXLSX(reportUrls[type], action).then( |
|
|
function() { |
|
|
|
|
|
|
|
|
function () { |
|
|
if (action.close_on_report_download) { |
|
|
if (action.close_on_report_download) { |
|
|
var closeAction = {type: "ir.actions.act_window_close"}; |
|
|
var closeAction = {type: "ir.actions.act_window_close"}; |
|
|
return self.doAction( |
|
|
return self.doAction( |
|
@ -81,13 +81,13 @@ odoo.define("report_xlsx.report", function(require) { |
|
|
return this._super.apply(this, arguments); |
|
|
return this._super.apply(this, arguments); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
_makeReportUrls: function(action) { |
|
|
|
|
|
|
|
|
_makeReportUrls: function (action) { |
|
|
var reportUrls = this._super.apply(this, arguments); |
|
|
var reportUrls = this._super.apply(this, arguments); |
|
|
reportUrls.xlsx = "/report/xlsx/" + action.report_name; |
|
|
reportUrls.xlsx = "/report/xlsx/" + action.report_name; |
|
|
return reportUrls; |
|
|
return reportUrls; |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
_executeReportAction: function(action, options) { |
|
|
|
|
|
|
|
|
_executeReportAction: function (action, options) { |
|
|
var self = this; |
|
|
var self = this; |
|
|
if (action.report_type === "xlsx") { |
|
|
if (action.report_type === "xlsx") { |
|
|
return self._triggerDownload(action, options, "xlsx"); |
|
|
return self._triggerDownload(action, options, "xlsx"); |
|
|