summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorOlivier Dony <odo@openerp.com>2016-04-21 18:05:02 +0200
committerOlivier Dony <odo@openerp.com>2016-04-21 18:05:14 +0200
commitee804e1d329e3d7b11fc19707be568c09b9ff5dd (patch)
treef3e709ac4105295479d0da05f1fa927b66bfc22a /addons/web/static/src
parent73fbadf8ae3377e2d16f5538a9feaab0d9f7d315 (diff)
parent74d8cbc190d1a93ef699ee254b1efbc88d2a1e26 (diff)
[MERGE] Forward-port 9.0 up to 74d8cbc190d1a93ef699ee254b1efbc88d2a1e26
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/framework/ajax.js4
-rw-r--r--addons/web/static/src/js/framework/data.js6
-rw-r--r--addons/web/static/src/js/framework/session.js1
-rw-r--r--addons/web/static/src/js/views/list_view.js1
4 files changed, 9 insertions, 3 deletions
diff --git a/addons/web/static/src/js/framework/ajax.js b/addons/web/static/src/js/framework/ajax.js
index 869e0214ad9..87fd08c7786 100644
--- a/addons/web/static/src/js/framework/ajax.js
+++ b/addons/web/static/src/js/framework/ajax.js
@@ -203,7 +203,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/data.js b/addons/web/static/src/js/framework/data.js
index a1b8e1602e9..3e9396a4e96 100644
--- a/addons/web/static/src/js/framework/data.js
+++ b/addons/web/static/src/js/framework/data.js
@@ -320,6 +320,7 @@ var DataSet = Class.extend(mixins.PropertiesMixin, {
this.index = null;
this._sort = [];
this._model = new Model(model, context);
+ this.orderer = new utils.DropMisordered();
},
previous: function () {
this.index -= 1;
@@ -408,10 +409,11 @@ var DataSet = Class.extend(mixins.PropertiesMixin, {
read_slice: function (fields, options) {
var self = this;
options = options || {};
- return this._model.query(fields)
+ var query = this._model.query(fields)
.limit(options.limit || false)
.offset(options.offset || 0)
- .all().done(function (records) {
+ .all();
+ return this.orderer.add(query).done(function (records) {
self.ids = _(records).pluck('id');
});
},
diff --git a/addons/web/static/src/js/framework/session.js b/addons/web/static/src/js/framework/session.js
index 7eae8b20a65..e16b3767e64 100644
--- a/addons/web/static/src/js/framework/session.js
+++ b/addons/web/static/src/js/framework/session.js
@@ -271,6 +271,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/list_view.js b/addons/web/static/src/js/views/list_view.js
index cb6daf093ce..229ecb86d83 100644
--- a/addons/web/static/src/js/views/list_view.js
+++ b/addons/web/static/src/js/views/list_view.js
@@ -1901,6 +1901,7 @@ var Column = Class.extend({
row_data[this.id].value, this, options.value_if_empty));
}
});
+ListView.Column = Column;
var MetaColumn = Column.extend({
meta: true,