summaryrefslogtreecommitdiff
path: root/addons/web/static
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2016-04-25 15:48:31 +0200
committerChristophe Simonis <chs@odoo.com>2016-04-25 15:48:31 +0200
commit2dcbdd077881ea4efb32e029dcdf194529fe9a83 (patch)
treeeb9f410667186bd01d88d673f74f21cd3bb510f4 /addons/web/static
parentf5f7df9df24ddd937d403d004c02f779cb4848b7 (diff)
parentbb8f0f1fc3d0f5574938019ca69cc917a55e7962 (diff)
[MERGE] forward port of branch saas-10 up to bb8f0f1
Diffstat (limited to 'addons/web/static')
-rw-r--r--addons/web/static/src/js/framework/ajax.js4
-rw-r--r--addons/web/static/src/js/framework/session.js1
-rw-r--r--addons/web/static/src/js/views/form_view.js5
-rw-r--r--addons/web/static/src/js/views/form_widgets.js19
-rw-r--r--addons/web/static/src/js/views/list_view.js1
-rw-r--r--addons/web/static/src/js/widgets/data_export.js3
-rw-r--r--addons/web/static/src/js/widgets/debug_manager.js4
7 files changed, 28 insertions, 9 deletions
diff --git a/addons/web/static/src/js/framework/ajax.js b/addons/web/static/src/js/framework/ajax.js
index 0301cd4e96c..71c742b026c 100644
--- a/addons/web/static/src/js/framework/ajax.js
+++ b/addons/web/static/src/js/framework/ajax.js
@@ -204,7 +204,9 @@ function get_file(options) {
// opening a new window seems the best way to workaround
if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)) {
var params = _.extend({}, options.data || {}, {token: token});
- var url = this.url(options.url, params);
+ var url = options.session.url(options.url, params);
+ if (options.complete) { options.complete(); }
+
return window.open(url);
}
diff --git a/addons/web/static/src/js/framework/session.js b/addons/web/static/src/js/framework/session.js
index 8a9269b8dff..2e643637052 100644
--- a/addons/web/static/src/js/framework/session.js
+++ b/addons/web/static/src/js/framework/session.js
@@ -270,6 +270,7 @@ var Session = core.Class.extend(mixins.EventDispatcherMixin, {
if (this.override_session){
options.data.session_id = this.session_id;
}
+ options.session = this;
ajax.get_file(options);
},
synchronized_mode: function(to_execute) {
diff --git a/addons/web/static/src/js/views/form_view.js b/addons/web/static/src/js/views/form_view.js
index 1d7d707f21f..d72b83bf347 100644
--- a/addons/web/static/src/js/views/form_view.js
+++ b/addons/web/static/src/js/views/form_view.js
@@ -750,7 +750,10 @@ var FormView = View.extend(common.FieldManagerMixin, {
def.reject();
},
};
- Dialog.confirm(this, message, options);
+ var dialog = Dialog.confirm(this, message, options);
+ dialog.$modal.on('hidden.bs.modal', function() {
+ def.reject();
+ });
return def;
},
/**
diff --git a/addons/web/static/src/js/views/form_widgets.js b/addons/web/static/src/js/views/form_widgets.js
index 2aeaaa17111..a94bd075a49 100644
--- a/addons/web/static/src/js/views/form_widgets.js
+++ b/addons/web/static/src/js/views/form_widgets.js
@@ -1411,13 +1411,20 @@ var FieldStatus = common.AbstractField.extend({
val = $li.data("id");
}
if (val !== self.get('value')) {
- this.view.recursive_save().done(function() {
- var change = {};
- change[self.name] = val;
- self.view.dataset.write(self.view.datarecord.id, change).done(function() {
- self.view.reload();
+ if (!this.view.datarecord.id ||
+ this.view.datarecord.id.toString().match(data.BufferedDataSet.virtual_id_regex)) {
+ // don't save, only set value for not-yet-saved many2ones
+ self.set_value(val);
+ }
+ else {
+ this.view.recursive_save().done(function() {
+ var change = {};
+ change[self.name] = val;
+ self.view.dataset.write(self.view.datarecord.id, change).done(function() {
+ self.view.reload();
+ });
});
- });
+ }
}
},
});
diff --git a/addons/web/static/src/js/views/list_view.js b/addons/web/static/src/js/views/list_view.js
index 9214eb27152..97b0a5a3879 100644
--- a/addons/web/static/src/js/views/list_view.js
+++ b/addons/web/static/src/js/views/list_view.js
@@ -1776,6 +1776,7 @@ var Column = Class.extend({
row_data[this.id].value, this, options.value_if_empty));
}
});
+ListView.Column = Column;
var MetaColumn = Column.extend({
meta: true,
diff --git a/addons/web/static/src/js/widgets/data_export.js b/addons/web/static/src/js/widgets/data_export.js
index 4b87d45ff4a..14cdc4c5e3e 100644
--- a/addons/web/static/src/js/widgets/data_export.js
+++ b/addons/web/static/src/js/widgets/data_export.js
@@ -6,6 +6,7 @@ var crash_manager = require('web.crash_manager');
var data = require('web.data');
var Dialog = require('web.Dialog');
var framework = require('web.framework');
+var pyeval = require('web.pyeval');
var QWeb = core.qweb;
var _t = core._t;
@@ -431,7 +432,7 @@ var DataExport = Dialog.extend({
fields: exported_fields,
ids: this.ids_to_export,
domain: this.domain,
- context: this.dataset.context,
+ context: pyeval.eval('contexts', [this.dataset._model.context()]),
import_compat: !!this.$import_compat_radios.filter(':checked').val(),
})},
complete: framework.unblockUI,
diff --git a/addons/web/static/src/js/widgets/debug_manager.js b/addons/web/static/src/js/widgets/debug_manager.js
index d95509bb465..733dae33bd4 100644
--- a/addons/web/static/src/js/widgets/debug_manager.js
+++ b/addons/web/static/src/js/widgets/debug_manager.js
@@ -340,6 +340,10 @@ DebugManager.include({
get_metadata: function() {
var ds = this._view_manager.dataset;
+ if (!this.view.get_selected_ids().length) {
+ console.warn(_t("No metadata available"));
+ return
+ }
ds.call('get_metadata', [this._active_view.controller.get_selected_ids()]).done(function(result) {
new Dialog(this, {
title: _.str.sprintf(_t("Metadata (%s)"), ds.model),