summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorGéry Debongnie <ged@odoo.com>2016-06-16 14:00:22 +0200
committerGéry Debongnie <ged@odoo.com>2016-06-17 13:24:54 +0200
commitcfe4b337af7c5ccef586289d1bd7d69a700d5d93 (patch)
treedca60967bb75e35960292c2141feb048ff8f369e /addons/web/static/src
parentcfe13f79e6ab513f9753ee995cf9bd56dab4d3a4 (diff)
[REF] web: move async_when to utils
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/framework/core.js26
-rw-r--r--addons/web/static/src/js/framework/data.js2
-rw-r--r--addons/web/static/src/js/framework/utils.js26
-rw-r--r--addons/web/static/src/js/views/form_relational_widgets.js4
-rw-r--r--addons/web/static/src/js/views/form_view.js2
-rw-r--r--addons/web/static/src/js/views/list_view.js6
6 files changed, 32 insertions, 34 deletions
diff --git a/addons/web/static/src/js/framework/core.js b/addons/web/static/src/js/framework/core.js
index 9e2dfd964d0..8f0453151e8 100644
--- a/addons/web/static/src/js/framework/core.js
+++ b/addons/web/static/src/js/framework/core.js
@@ -129,32 +129,6 @@ qweb.preprocess_node = function() {
_t('%d years ago');
}
-$.async_when = function() {
- var async = false;
- var def = $.Deferred();
- $.when.apply($, arguments).done(function() {
- var args = arguments;
- var action = function() {
- def.resolve.apply(def, args);
- };
- if (async)
- action();
- else
- setTimeout(action, 0);
- }).fail(function() {
- var args = arguments;
- var action = function() {
- def.reject.apply(def, args);
- };
- if (async)
- action();
- else
- setTimeout(action, 0);
- });
- async = true;
- return def;
-};
-
return {
debug: debug,
qweb: qweb,
diff --git a/addons/web/static/src/js/framework/data.js b/addons/web/static/src/js/framework/data.js
index e969616e7b6..98c9aacc82a 100644
--- a/addons/web/static/src/js/framework/data.js
+++ b/addons/web/static/src/js/framework/data.js
@@ -816,7 +816,7 @@ var BufferedDataSet = DataSetStatic.extend({
});
this.set_ids(_.difference(this.ids, _.pluck(_.filter(this.cache, function (c) {return c.to_delete;}), 'id')));
this.trigger("dataset_changed", ids, callback, error_callback);
- return $.async_when({result: true}).done(callback);
+ return utils.async_when({result: true}).done(callback);
},
reset_ids: function(ids, options) {
var self = this;
diff --git a/addons/web/static/src/js/framework/utils.js b/addons/web/static/src/js/framework/utils.js
index edf7355dc29..e19246823c5 100644
--- a/addons/web/static/src/js/framework/utils.js
+++ b/addons/web/static/src/js/framework/utils.js
@@ -470,6 +470,31 @@ function toBoolElse (str, elseValues, trueValues, falseValues) {
return ret;
}
+function async_when() {
+ var async = false;
+ var def = $.Deferred();
+ $.when.apply($, arguments).done(function() {
+ var args = arguments;
+ var action = function() {
+ def.resolve.apply(def, args);
+ };
+ if (async)
+ action();
+ else
+ setTimeout(action, 0);
+ }).fail(function() {
+ var args = arguments;
+ var action = function() {
+ def.reject.apply(def, args);
+ };
+ if (async)
+ action();
+ else
+ setTimeout(action, 0);
+ });
+ async = true;
+ return def;
+}
return {
divmod: divmod,
@@ -501,6 +526,7 @@ return {
delay: delay,
swap: swap,
toBoolElse: toBoolElse,
+ async_when: async_when,
};
});
diff --git a/addons/web/static/src/js/views/form_relational_widgets.js b/addons/web/static/src/js/views/form_relational_widgets.js
index d4c67db5218..4c7b84b6dfc 100644
--- a/addons/web/static/src/js/views/form_relational_widgets.js
+++ b/addons/web/static/src/js/views/form_relational_widgets.js
@@ -802,13 +802,13 @@ var FieldX2Many = AbstractManyField.extend({
this.viewmanager.on("switch_mode", self, function(n_mode) {
$.when(self.commit_value()).done(function() {
if (n_mode === "list") {
- $.async_when().done(function() {
+ utils.async_when().done(function() {
self.reload_current_view();
});
}
});
});
- $.async_when().done(function () {
+ utils.async_when().done(function () {
self.$el.addClass('o_view_manager_content');
self.alive(self.viewmanager.attachTo(self.$el));
});
diff --git a/addons/web/static/src/js/views/form_view.js b/addons/web/static/src/js/views/form_view.js
index a9da2e40304..f517a94c819 100644
--- a/addons/web/static/src/js/views/form_view.js
+++ b/addons/web/static/src/js/views/form_view.js
@@ -717,7 +717,7 @@ var FormView = View.extend(common.FieldManagerMixin, {
def.resolve();
});
} else {
- $.async_when().done(function () {
+ utils.async_when().done(function () {
def.reject();
});
}
diff --git a/addons/web/static/src/js/views/list_view.js b/addons/web/static/src/js/views/list_view.js
index b0ed903bdb5..d905dfdadfd 100644
--- a/addons/web/static/src/js/views/list_view.js
+++ b/addons/web/static/src/js/views/list_view.js
@@ -1459,7 +1459,7 @@ ListView.Groups = Class.extend({
var fields = _.pluck(_.select(this.columns, function(x) {return x.tag == "field";}), 'name');
var options = { offset: current_min - 1, limit: view._limit, context: {bin_size: true} };
- return $.async_when().then(function() {
+ return utils.async_when().then(function() {
return dataset.read_slice(fields, options).then(function (records) {
// FIXME: ignominious hacks, parents (aka form view) should not send two ListView#reload_content concurrently
if (self.records.length) {
@@ -1525,7 +1525,7 @@ ListView.Groups = Class.extend({
seq = to ? list.records.at(to - 1).get(seqname) : 0;
var defs = [];
var fct = function (dataset, id, seq) {
- defs.push($.async_when().then(function () {
+ defs.push(utils.async_when().then(function () {
var attrs = {};
attrs[seqname] = seq;
return dataset.write(id, attrs, {internal_dataset_changed: true});
@@ -2047,5 +2047,3 @@ function for_ (id, field, node) {
return ListView;
});
-
-