From ca6c49becf9ce72e4f1a37f04bc89dae417be196 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 30 Oct 2012 15:06:30 +0100 Subject: [PATCH] [IMP] jQuery deferred API changes refactoring. Changed 'then's in 'done'/'fail' and 'pipe's in 'then' bzr revid: fme@openerp.com-20121030140630-gf20ye8fou1ebxft --- addons/web/static/src/js/chrome.js | 48 ++--- addons/web/static/src/js/corelib.js | 18 +- addons/web/static/src/js/coresetup.js | 36 ++-- addons/web/static/src/js/data.js | 32 +-- addons/web/static/src/js/data_export.js | 10 +- addons/web/static/src/js/search.js | 28 +-- addons/web/static/src/js/test_support.js | 8 +- addons/web/static/src/js/view_form.js | 185 +++++++++--------- addons/web/static/src/js/view_list.js | 90 ++++----- .../web/static/src/js/view_list_editable.js | 30 +-- addons/web/static/src/js/view_tree.js | 10 +- addons/web/static/src/js/views.js | 54 ++--- addons/web/static/test/fulltest/dataset.js | 4 +- addons/web/static/test/list-editable.js | 32 +-- addons/web/static/test/rpc.js | 32 +-- addons/web_calendar/static/src/js/calendar.js | 26 +-- addons/web_diagram/static/src/js/diagram.js | 14 +- addons/web_diagram/static/src/js/graph.js | 4 +- addons/web_gantt/static/src/js/gantt.js | 8 +- addons/web_graph/static/src/js/graph.js | 22 +-- addons/web_kanban/static/src/js/kanban.js | 40 ++-- addons/web_tests/static/src/js/web_tests.js | 2 +- .../static/src/js/view_editor.js | 24 +-- 23 files changed, 378 insertions(+), 379 deletions(-) diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 6cf35a14e92..1a44a61af07 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -294,7 +294,7 @@ instance.web.DatabaseManager = instance.web.Widget.extend({ start: function() { var self = this; $('.oe_secondary_menus_container,.oe_user_menu_placeholder').empty(); - var fetch_db = this.rpc("/web/database/get_list", {}).pipe( + var fetch_db = this.rpc("/web/database/get_list", {}).then( function(result) { self.db_list = result.db_list; }, @@ -302,10 +302,10 @@ instance.web.DatabaseManager = instance.web.Widget.extend({ ev.preventDefault(); self.db_list = null; }); - var fetch_langs = this.rpc("/web/session/get_lang_list", {}).then(function(result) { + var fetch_langs = this.rpc("/web/session/get_lang_list", {}).done(function(result) { self.lang_list = result.lang_list; }); - return $.when(fetch_db, fetch_langs).then(self.do_render); + return $.when(fetch_db, fetch_langs).done(self.do_render); }, do_render: function() { var self = this; @@ -394,7 +394,7 @@ instance.web.DatabaseManager = instance.web.Widget.extend({ do_create: function(form) { var self = this; var fields = $(form).serializeArray(); - self.rpc("/web/database/create", {'fields': fields}).then(function(result) { + self.rpc("/web/database/create", {'fields': fields}).done(function(result) { var form_obj = self.to_object(fields); var client_action = { type: 'ir.actions.client', @@ -420,7 +420,7 @@ instance.web.DatabaseManager = instance.web.Widget.extend({ if (!db || !confirm("Do you really want to delete the database: " + db + " ?")) { return; } - self.rpc("/web/database/drop", {'fields': fields}).then(function(result) { + self.rpc("/web/database/drop", {'fields': fields}).done(function(result) { if (result.error) { self.display_error(result); return; @@ -483,7 +483,7 @@ instance.web.DatabaseManager = instance.web.Widget.extend({ var self = this; self.rpc("/web/database/change_password", { 'fields': $(form).serializeArray() - }).then(function(result) { + }).done(function(result) { if (result.error) { self.display_error(result); return; @@ -581,7 +581,7 @@ instance.web.Login = instance.web.Widget.extend({ var self = this; self.hide_error(); self.$(".oe_login_pane").fadeOut("slow"); - return this.session.session_authenticate(db, login, password).pipe(function() { + return this.session.session_authenticate(db, login, password).then(function() { if (self.has_local_storage) { if(self.remember_credentials) { localStorage.setItem('last_db_login_success', db); @@ -663,7 +663,7 @@ instance.web.ChangePassword = instance.web.Widget.extend({ submitHandler: function (form) { self.rpc("/web/session/change_password",{ 'fields': $(form).serializeArray() - }).then(function(result) { + }).done(function(result) { if (result.error) { self.display_error(result); return; @@ -702,7 +702,7 @@ instance.web.Menu = instance.web.Widget.extend({ }, do_reload: function() { var self = this; - return this.rpc("/web/menu/load", {}).then(function(r) { + return this.rpc("/web/menu/load", {}).done(function(r) { self.menu_loaded(r); }); }, @@ -872,7 +872,7 @@ instance.web.UserMenu = instance.web.Widget.extend({ if (!self.session.uid) return; var func = new instance.web.Model("res.users").get_func("read"); - return func(self.session.uid, ["name", "company_id"]).pipe(function(res) { + return func(self.session.uid, ["name", "company_id"]).then(function(res) { var topbar_name = res.name; if(instance.session.debug) topbar_name = _.str.sprintf("%s (%s)", topbar_name, instance.session.db); @@ -883,7 +883,7 @@ instance.web.UserMenu = instance.web.Widget.extend({ $avatar.attr('src', avatar_src); }); }; - this.update_promise = this.update_promise.pipe(fct, fct); + this.update_promise = this.update_promise.then(fct, fct); }, on_menu_logout: function() { this.trigger('user_logout'); @@ -899,7 +899,7 @@ instance.web.UserMenu = instance.web.Widget.extend({ }, on_menu_about: function() { var self = this; - self.rpc("/web/webclient/version_info", {}).then(function(res) { + self.rpc("/web/webclient/version_info", {}).done(function(res) { var $help = $(QWeb.render("UserMenu.about", {version_info: res})); $help.find('a.oe_activate_debug_mode').click(function (e) { e.preventDefault(); @@ -919,7 +919,7 @@ instance.web.Client = instance.web.Widget.extend({ }, start: function() { var self = this; - return instance.session.session_bind(this.origin).pipe(function() { + return instance.session.session_bind(this.origin).then(function() { var $e = $(QWeb.render(self._template, {})); self.replaceElement($e); self.bind_events(); @@ -986,7 +986,7 @@ instance.web.WebClient = instance.web.Client.extend({ }, start: function() { var self = this; - return $.when(this._super()).pipe(function() { + return $.when(this._super()).then(function() { self.$el.on('click', '.oe_logo', function() { self.action_manager.do_action('home'); }); @@ -1055,8 +1055,8 @@ instance.web.WebClient = instance.web.Client.extend({ }, do_reload: function() { var self = this; - return this.session.session_reload().pipe(function () { - instance.session.load_modules(true).pipe( + return this.session.session_reload().then(function () { + instance.session.load_modules(true).then( self.menu.proxy('do_reload')); }); }, @@ -1071,7 +1071,7 @@ instance.web.WebClient = instance.web.Client.extend({ on_logout: function() { var self = this; if (!this.has_uncommitted_changes()) { - this.session.session_logout().then(function () { + this.session.session_logout().done(function () { $(window).unbind('hashchange', self.on_hashchange); self.do_push_state({}); window.location.reload(); @@ -1084,7 +1084,7 @@ instance.web.WebClient = instance.web.Client.extend({ var state = $.bbq.getState(true); if (_.isEmpty(state) || state.action == "login") { - self.menu.has_been_loaded.then(function() { + self.menu.has_been_loaded.done(function() { var first_menu_id = self.menu.$el.find("a:first").data("menu"); if(first_menu_id) { self.menu.menu_click(first_menu_id); @@ -1099,8 +1099,8 @@ instance.web.WebClient = instance.web.Client.extend({ var state = event.getState(true); if (!_.isEqual(this._current_state, state)) { if(state.action_id === undefined && state.menu_id) { - self.menu.has_been_loaded.then(function() { - self.menu.do_reload().then(function() { + self.menu.has_been_loaded.done(function() { + self.menu.do_reload().done(function() { self.menu.menu_click(state.menu_id) }); }); @@ -1121,7 +1121,7 @@ instance.web.WebClient = instance.web.Client.extend({ on_menu_action: function(options) { var self = this; return this.rpc("/web/action/load", { action_id: options.action_id }) - .pipe(function (result) { + .then(function (result) { var action = result; if (options.needaction) { action.context.search_default_message_unread = true; @@ -1167,9 +1167,9 @@ instance.web.EmbeddedClient = instance.web.Client.extend({ }, start: function() { var self = this; - return $.when(this._super()).pipe(function() { - return instance.session.session_authenticate(self.dbname, self.login, self.key, true).pipe(function() { - return self.rpc("/web/action/load", { action_id: self.action_id }).then(function(result) { + return $.when(this._super()).then(function() { + return instance.session.session_authenticate(self.dbname, self.login, self.key, true).then(function() { + return self.rpc("/web/action/load", { action_id: self.action_id }).done(function(result) { var action = result; action.flags = _.extend({ //views_switcher : false, diff --git a/addons/web/static/src/js/corelib.js b/addons/web/static/src/js/corelib.js index d9b7ab8c03c..d2e94d37939 100644 --- a/addons/web/static/src/js/corelib.js +++ b/addons/web/static/src/js/corelib.js @@ -811,10 +811,10 @@ instance.web.Widget = instance.web.Class.extend(instance.web.WidgetMixin, { rpc: function(url, data, success, error) { var def = $.Deferred().done(success).fail(error); var self = this; - instance.session.rpc(url, data).then(function() { + instance.session.rpc(url, data).done(function() { if (!self.isDestroyed()) def.resolve.apply(def, arguments); - }, function() { + }).fail(function() { if (!self.isDestroyed()) def.reject.apply(def, arguments); }); @@ -1287,7 +1287,7 @@ instance.web.JsonRPC = instance.web.CallbackEnabled.extend({ }; var deferred = $.Deferred(); this.trigger('request', url, payload); - var request = this.rpc_function(url, payload).then( + var request = this.rpc_function(url, payload).done( function (response, textStatus, jqXHR) { self.trigger('response', response); if (!response.error) { @@ -1300,7 +1300,8 @@ instance.web.JsonRPC = instance.web.CallbackEnabled.extend({ } else { deferred.reject(response.error, $.Event()); } - }, + } + ).fail( function(jqXHR, textStatus, errorThrown) { self.trigger('response_failed', jqXHR); var error = { @@ -1387,10 +1388,11 @@ instance.web.JsonRPC = instance.web.CallbackEnabled.extend({ $iframe.unbind('load').bind('load', function() { $.ajax(ajax).always(function() { cleanUp(); - }).then( - function() { deferred.resolve.apply(deferred, arguments); }, - function() { deferred.reject.apply(deferred, arguments); } - ); + }).done(function() { + deferred.resolve.apply(deferred, arguments); + }).fail(function() { + deferred.reject.apply(deferred, arguments); + }); }); // now that the iframe can receive data, we fill and submit the form $form.submit(); diff --git a/addons/web/static/src/js/coresetup.js b/addons/web/static/src/js/coresetup.js index 220b9b63d5c..b7dac303520 100644 --- a/addons/web/static/src/js/coresetup.js +++ b/addons/web/static/src/js/coresetup.js @@ -51,15 +51,15 @@ instance.web.Session = instance.web.JsonRPC.extend( /** @lends instance.web.Sess var self = this; // TODO: session store in cookie should be optional this.session_id = this.get_cookie('session_id'); - return this.session_reload().pipe(function(result) { + return this.session_reload().then(function(result) { var modules = instance._modules.join(','); - var deferred = self.rpc('/web/webclient/qweblist', {mods: modules}).pipe(self.do_load_qweb); + var deferred = self.rpc('/web/webclient/qweblist', {mods: modules}).then(self.do_load_qweb); if(self.session_is_valid()) { - return deferred.pipe(function() { return self.load_modules(); }); + return deferred.then(function() { return self.load_modules(); }); } return $.when( deferred, - self.rpc('/web/webclient/bootstrap_translations', {mods: instance._modules}).pipe(function(trans) { + self.rpc('/web/webclient/bootstrap_translations', {mods: instance._modules}).then(function(trans) { instance.web._t.database.set_bundle(trans); }) ); @@ -73,7 +73,7 @@ instance.web.Session = instance.web.JsonRPC.extend( /** @lends instance.web.Sess */ session_reload: function () { var self = this; - return this.rpc("/web/session/get_session_info", {}).then(function(result) { + return this.rpc("/web/session/get_session_info", {}).done(function(result) { // If immediately follows a login (triggered by trying to restore // an invalid session or no session at all), refresh session data // (should not change, but just in case...) @@ -96,7 +96,7 @@ instance.web.Session = instance.web.JsonRPC.extend( /** @lends instance.web.Sess var self = this; var base_location = document.location.protocol + '//' + document.location.host; var params = { db: db, login: login, password: password, base_location: base_location }; - return this.rpc("/web/session/authenticate", params).pipe(function(result) { + return this.rpc("/web/session/authenticate", params).then(function(result) { if (!result.uid) { return $.Deferred().reject(); } @@ -154,30 +154,30 @@ instance.web.Session = instance.web.JsonRPC.extend( /** @lends instance.web.Sess */ load_modules: function() { var self = this; - return this.rpc('/web/session/modules', {}).pipe(function(result) { + return this.rpc('/web/session/modules', {}).then(function(result) { var lang = self.user_context.lang, all_modules = _.uniq(self.module_list.concat(result)); var params = { mods: all_modules, lang: lang}; var to_load = _.difference(result, self.module_list).join(','); self.module_list = all_modules; - var loaded = self.rpc('/web/webclient/translations', params).then(function(trans) { + var loaded = self.rpc('/web/webclient/translations', params).done(function(trans) { instance.web._t.database.set_bundle(trans); }); var file_list = ["/web/static/lib/datejs/globalization/" + lang.replace("_", "-") + ".js"]; if(to_load.length) { loaded = $.when( loaded, - self.rpc('/web/webclient/csslist', {mods: to_load}).then(self.do_load_css), - self.rpc('/web/webclient/qweblist', {mods: to_load}).pipe(self.do_load_qweb), - self.rpc('/web/webclient/jslist', {mods: to_load}).then(function(files) { + self.rpc('/web/webclient/csslist', {mods: to_load}).done(self.do_load_css), + self.rpc('/web/webclient/qweblist', {mods: to_load}).then(self.do_load_qweb), + self.rpc('/web/webclient/jslist', {mods: to_load}).done(function(files) { file_list = file_list.concat(files); }) ); } - return loaded.pipe(function () { + return loaded.then(function () { return self.do_load_js(file_list); - }).then(function() { + }).done(function() { self.on_modules_loaded(); self.trigger('module_loaded'); if (!Date.CultureInfo.pmDesignator) { @@ -212,7 +212,7 @@ instance.web.Session = instance.web.JsonRPC.extend( /** @lends instance.web.Sess if ( (tag.readyState && tag.readyState != "loaded" && tag.readyState != "complete") || tag.onload_done ) return; tag.onload_done = true; - self.do_load_js(files).then(function () { + self.do_load_js(files).done(function () { d.resolve(); }); }; @@ -227,7 +227,7 @@ instance.web.Session = instance.web.JsonRPC.extend( /** @lends instance.web.Sess var self = this; _.each(files, function(file) { self.qweb_mutex.exec(function() { - return self.rpc('/web/proxy/load', {path: file}).pipe(function(xml) { + return self.rpc('/web/proxy/load', {path: file}).then(function(xml) { if (!xml) { return; } instance.web.qweb.add_template(_.str.trim(xml)); }); @@ -462,7 +462,7 @@ $.Mutex = (function() { Mutex.prototype.exec = function(action) { var current = this.def; var next = this.def = $.Deferred(); - return current.pipe(function() { + return current.then(function() { return $.when(action()).always(function() { next.resolve(); }); @@ -474,7 +474,7 @@ $.Mutex = (function() { $.async_when = function() { var async = false; var def = $.Deferred(); - $.when.apply($, arguments).then(function() { + $.when.apply($, arguments).done(function() { var args = arguments; var action = function() { def.resolve.apply(def, args); @@ -483,7 +483,7 @@ $.async_when = function() { action(); else setTimeout(action, 0); - }, function() { + }).fail(function() { var args = arguments; var action = function() { def.reject.apply(def, args); diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js index e279ade6fb3..467b74040c7 100644 --- a/addons/web/static/src/js/data.js +++ b/addons/web/static/src/js/data.js @@ -66,7 +66,7 @@ instance.web.Query = instance.web.Class.extend({ offset: this._offset, limit: this._limit, sort: instance.web.serialize_sort(this._order_by) - }).pipe(function (results) { + }).then(function (results) { self._count = results.length; return results.records; }, null); @@ -78,7 +78,7 @@ instance.web.Query = instance.web.Class.extend({ */ first: function () { var self = this; - return this.clone({limit: 1})._execute().pipe(function (records) { + return this.clone({limit: 1})._execute().then(function (records) { delete self._count; if (records.length) { return records[0]; } return null; @@ -132,7 +132,7 @@ instance.web.Query = instance.web.Class.extend({ offset: this._offset, limit: this._limit, orderby: instance.web.serialize_sort(this._order_by) || false - }).pipe(function (results) { + }).then(function (results) { return _(results).map(function (result) { // FIX: querygroup initialization result.__context = result.__context || {}; @@ -443,7 +443,7 @@ instance.web.DataSet = instance.web.CallbackEnabled.extend({ return this._model.query(fields) .limit(options.limit || false) .offset(options.offset || 0) - .all().then(function (records) { + .all().done(function (records) { self.ids = _(records).pluck('id'); }); }, @@ -456,7 +456,7 @@ instance.web.DataSet = instance.web.CallbackEnabled.extend({ */ read_index: function (fields, options) { options = options || {}; - return this.read_ids([this.ids[this.index]], fields, options).pipe(function (records) { + return this.read_ids([this.ids[this.index]], fields, options).then(function (records) { if (_.isEmpty(records)) { return $.Deferred().reject().promise(); } return records[0]; }); @@ -493,7 +493,7 @@ instance.web.DataSet = instance.web.CallbackEnabled.extend({ */ write: function (id, data, options) { options = options || {}; - return this._model.call('write', [[id], data], {context: this._model.context(options.context)}).then(this.trigger('dataset_changed', id, data, options)); + return this._model.call('write', [[id], data], {context: this._model.context(options.context)}).done(this.trigger('dataset_changed', id, data, options)); }, /** * Deletes an existing record from the database @@ -501,7 +501,7 @@ instance.web.DataSet = instance.web.CallbackEnabled.extend({ * @param {Number|String} ids identifier of the record to delete */ unlink: function(ids) { - return this._model.call('unlink', [ids], {context: this._model.context()}).then(this.trigger('dataset_changed', ids)); + return this._model.call('unlink', [ids], {context: this._model.context()}).done(this.trigger('dataset_changed', ids)); }, /** * Calls an arbitrary RPC method @@ -607,7 +607,7 @@ instance.web.DataSet = instance.web.CallbackEnabled.extend({ model: this.model, ids: ids, context: this._model.context(options.context), - }).pipe(function (results) { + }).then(function (results) { return results; }); }, @@ -682,9 +682,9 @@ instance.web.DataSetSearch = instance.web.DataSet.extend({ .limit(options.limit || false); q = q.order_by.apply(q, this._sort); - return q.all().then(function (records) { + return q.all().done(function (records) { // FIXME: not sure about that one, *could* have discarded count - q.count().then(function (count) { self._length = count; }); + q.count().done(function (count) { self._length = count; }); self.ids = _(records).pluck('id'); }); }, @@ -693,7 +693,7 @@ instance.web.DataSetSearch = instance.web.DataSet.extend({ }, unlink: function(ids, callback, error_callback) { var self = this; - return this._super(ids).then(function(result) { + return this._super(ids).done(function(result) { self.ids = _(self.ids).difference(ids); if (self._length) { self._length -= 1; @@ -722,7 +722,7 @@ instance.web.BufferedDataSet = instance.web.DataSetStatic.extend({ this.last_default_get = {}; }, default_get: function(fields, options) { - return this._super(fields, options).then(this.on_default_get); + return this._super(fields, options).done(this.on_default_get); }, on_default_get: function(res) { this.last_default_get = res; @@ -774,7 +774,7 @@ instance.web.BufferedDataSet = instance.web.DataSetStatic.extend({ this.cache = _.reject(this.cache, function(x) { return _.include(ids, x.id);}); this.set_ids(_.without.apply(_, [this.ids].concat(ids))); this.trigger("dataset_changed", ids, callback, error_callback); - return $.async_when({result: true}).then(callback); + return $.async_when({result: true}).done(callback); }, reset_ids: function(ids) { this.set_ids(ids); @@ -836,7 +836,7 @@ instance.web.BufferedDataSet = instance.web.DataSetStatic.extend({ completion.resolve(records); }; if(to_get.length > 0) { - var rpc_promise = this._super(to_get, fields, options).then(function(records) { + var rpc_promise = this._super(to_get, fields, options).done(function(records) { _.each(records, function(record, index) { var id = to_get[index]; var cached = _.detect(self.cache, function(x) {return x.id === id;}); @@ -991,14 +991,14 @@ instance.web.DropMisordered = instance.web.Class.extend({ var res = $.Deferred(); var self = this, seq = this.lsn++; - deferred.then(function () { + deferred.done(function () { if (seq > self.rsn) { self.rsn = seq; res.resolve.apply(res, arguments); } else if (self.failMisordered) { res.reject(); } - }, function () { + }).fail(function () { res.reject.apply(res, arguments); }); diff --git a/addons/web/static/src/js/data_export.js b/addons/web/static/src/js/data_export.js index b4beb4c3a58..477d89c99b3 100644 --- a/addons/web/static/src/js/data_export.js +++ b/addons/web/static/src/js/data_export.js @@ -51,7 +51,7 @@ instance.web.DataExport = instance.web.Dialog.extend({ self.rpc("/web/export/get_fields", { model: self.dataset.model, import_compat: Boolean(import_comp) - }).then(function (records) { + }).done(function (records) { got_fields.resolve(); self.on_show_data(records); }); @@ -59,7 +59,7 @@ instance.web.DataExport = instance.web.Dialog.extend({ return $.when( got_fields, - this.rpc('/web/export/formats', {}).then(this.do_setup_export_formats), + this.rpc('/web/export/formats', {}).done(this.do_setup_export_formats), this.show_exports_list()); }, do_setup_export_formats: function (formats) { @@ -84,7 +84,7 @@ instance.web.DataExport = instance.web.Dialog.extend({ } return this.exports.read_slice(['name'], { domain: [['resource', '=', this.dataset.model]] - }).then(function (export_list) { + }).done(function (export_list) { if (!export_list.length) { return; } @@ -93,7 +93,7 @@ instance.web.DataExport = instance.web.Dialog.extend({ self.$el.find('#fields_list option').remove(); var export_id = self.$el.find('#saved_export_list option:selected').val(); if (export_id) { - self.rpc('/web/export/namelist', {'model': self.dataset.model, export_id: parseInt(export_id)}).then(self.do_load_export_field); + self.rpc('/web/export/namelist', {'model': self.dataset.model, export_id: parseInt(export_id)}).done(self.do_load_export_field); } }); self.$el.find('#delete_export_list').click(function() { @@ -183,7 +183,7 @@ instance.web.DataExport = instance.web.Dialog.extend({ import_compat: Boolean(import_comp), parent_field_type : record['field_type'], exclude: exclude_fields - }).then(function(results) { + }).done(function(results) { record.loaded = true; self.on_show_data(results, record.id); }); diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index 520dcd9169f..f229c31229b 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -244,7 +244,7 @@ my.FacetView = instance.web.Widget.extend({ }); var $e = self.$el.find('> span:last-child'); var q = $.when(this._super()); - return q.pipe(function () { + return q.then(function () { var values = self.model.values.map(function (value) { return new my.FacetValueView(self, value).appendTo($e); }); @@ -324,7 +324,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea context: this.dataset.get_context() }); $.when(load_view) - .pipe(function(r) { + .then(function(r) { self.search_view_loaded(r) }).fail(function () { self.ready.reject.apply(null, arguments); @@ -492,7 +492,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea complete_global_search: function (req, resp) { $.when.apply(null, _(this.inputs).chain() .invoke('complete', req.term) - .value()).then(function () { + .value()).done(function () { resp(_(_(arguments).compact()).flatten(true)); }); }, @@ -560,7 +560,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea childView.on('blurred', self, self.proxy('childBlurred')); }); - $.when.apply(null, started).then(function () { + $.when.apply(null, started).done(function () { var input_to_focus; // options.at: facet inserted at given index, focus next input // otherwise just focus last input @@ -668,12 +668,12 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea // load defaults var defaults_fetched = $.when.apply(null, _(this.inputs).invoke( - 'facet_for_defaults', this.defaults)).then(function () { + 'facet_for_defaults', this.defaults)).done(function () { self.query.reset(_(arguments).compact(), {preventSearch: true}); }); return $.when(drawer_started, defaults_fetched) - .then(function () { + .done(function () { self.trigger("search_view_loaded", data); self.ready.resolve(); }); @@ -1439,7 +1439,7 @@ instance.web.search.ManyToOneField = instance.web.search.CharField.extend({ name: needle, limit: 8, context: {} - }).pipe(function (results) { + }).then(function (results) { if (_.isEmpty(results)) { return null; } return [{label: self.attrs.string}].concat( _(results).map(function (result) { @@ -1462,7 +1462,7 @@ instance.web.search.ManyToOneField = instance.web.search.CharField.extend({ // to handle this as if it were a single value. value = value[0]; } - return this.model.call('name_get', [value]).pipe(function (names) { + return this.model.call('name_get', [value]).then(function (names) { if (_(names).isEmpty()) { return null; } return facet_from(self, names[0]); }) @@ -1509,7 +1509,7 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({ // FIXME: local eval of domain and context to get rid of special endpoint return this.rpc('/web/searchview/get_filters', { model: this.view.model - }).pipe(this.proxy('set_filters')); + }).then(this.proxy('set_filters')); }, clear_selection: function () { this.$el.find('li.oe_selected').removeClass('oe_selected'); @@ -1532,7 +1532,7 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({ $('x') .click(function (e) { e.stopPropagation(); - self.model.call('unlink', [id]).then(function () { + self.model.call('unlink', [id]).done(function () { $filter.remove(); }); }) @@ -1567,7 +1567,7 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({ domains: search.domains, contexts: search.contexts, group_by_seq: search.groupbys || [] - }).then(function (results) { + }).done(function (results) { if (!_.isEmpty(results.group_by)) { results.context.group_by = results.group_by; } @@ -1579,7 +1579,7 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({ domain: results.domain }; // FIXME: current context? - return self.model.call('create_or_replace', [filter]).then(function (id) { + return self.model.call('create_or_replace', [filter]).done(function (id) { filter.id = id; self.append_filter(filter); self.$el @@ -1656,11 +1656,11 @@ instance.web.search.Advanced = instance.web.search.Input.extend({ }); return $.when( this._super(), - this.rpc("/web/searchview/fields_get", {model: this.view.model}).then(function(data) { + this.rpc("/web/searchview/fields_get", {model: this.view.model}).done(function(data) { self.fields = _.extend({ id: { string: 'ID', type: 'id' } }, data.fields); - })).then(function () { + })).done(function () { self.append_proposition(); }); }, diff --git a/addons/web/static/src/js/test_support.js b/addons/web/static/src/js/test_support.js index 8e1317ba2b0..90173f89845 100644 --- a/addons/web/static/src/js/test_support.js +++ b/addons/web/static/src/js/test_support.js @@ -32,20 +32,20 @@ openerp.test_support = { window.openerp.web[tested_core](oe); var done = openerp.test_support.setup_session(oe.session); if (nonliterals) { - done = done.pipe(function () { + done = done.then(function () { return oe.session.rpc('/tests/add_nonliterals', { domains: nonliterals.domains || [], contexts: nonliterals.contexts || [] - }).then(function (r) { + }).done(function (r) { oe.domains = r.domains; oe.contexts = r.contexts; }); }); } done.always(QUnit.start) - .then(function () { + .done(function () { conf.openerp = oe; - }, function (e) { + }).fail(function (e) { QUnit.test(title, function () { console.error(e); QUnit.ok(false, 'Could not obtain a session:' + e.debug); diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 92e636b2216..66ba41ec0cf 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -120,7 +120,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM this.__blur_timeout = null; this.rendering_engine = new instance.web.form.FormRenderingEngine(this); self.set({actual_mode: self.options.initial_mode}); - this.has_been_loaded.then(function() { + this.has_been_loaded.done(function() { self.on("change:actual_mode", self, self.check_actual_mode); self.check_actual_mode(); self.on("change:actual_mode", self, self.init_pager); @@ -274,7 +274,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM var shown = this.has_been_loaded; if (options.reload !== false) { - shown = shown.pipe(function() { + shown = shown.then(function() { if (self.dataset.index === null) { // null index means we should start a new record return self.on_button_new(); @@ -283,12 +283,12 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM fields.push('display_name'); return self.dataset.read_index(fields, { context: { 'bin_size': true, 'future_display_name' : true } - }).pipe(function(r) { + }).then(function(r) { self.trigger('load_record', r); }); }); } - return shown.pipe(function() { + return shown.then(function() { self._actualize_mode(options.mode || self.options.initial_mode); self.$el.css({ opacity: '1', @@ -326,7 +326,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM field._inhibit_on_change_flag = false; set_values.push(result); }); - return $.when.apply(null, set_values).pipe(function() { + return $.when.apply(null, set_values).then(function() { if (!record.id) { // New record: Second pass in order to trigger the onchanges // respecting the fields order defined in the view @@ -364,7 +364,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM var self = this; var keys = _.keys(this.fields_view.fields); if (keys.length) { - return this.dataset.default_get(keys).pipe(function(r) { + return this.dataset.default_get(keys).then(function(r) { self.trigger('load_record', r); }); } @@ -510,7 +510,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM method: change_spec.method, args: [(self.datarecord.id == null ? [] : [self.datarecord.id])].concat(change_spec.args), context_id: change_spec.context_index == undefined ? null : change_spec.context_index + 1 - }).then(function(r) { + }).done(function(r) { _.extend(response, r); }); } else { @@ -518,7 +518,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM } } // fail if onchange failed - if (can_process_onchange.isRejected()) { + if (can_process_onchange.state() === 'rejected') { return can_process_onchange; } @@ -541,7 +541,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM model: 'ir.values', method: 'get_defaults', args: [self.model, condition] - }).then(function (results) { + }).done(function (results) { if (!results.length) { return; } if (!response.value) { response.value = {}; @@ -554,7 +554,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM }); } } - if (can_process_onchange.isRejected()) { + if (can_process_onchange.state() === 'rejected') { return can_process_onchange; } @@ -693,7 +693,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM }, on_button_save: function() { var self = this; - return this.save().then(function(result) { + return this.save().done(function(result) { self.trigger("save", result); self.to_view_mode(); }); @@ -713,7 +713,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM on_button_new: function() { var self = this; this.to_edit_mode(); - return $.when(this.has_been_loaded).pipe(function() { + return $.when(this.has_been_loaded).then(function() { if (self.can_be_discarded()) { return self.load_defaults(); } @@ -728,29 +728,24 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM }, on_button_duplicate: function() { var self = this; - var def = $.Deferred(); - $.when(this.has_been_loaded).then(function() { - self.dataset.call('copy', [self.datarecord.id, {}, self.dataset.context]).then(function(new_id) { - return self.record_created(new_id); - }).then(function() { - return self.to_edit_mode(); - }).then(function() { - def.resolve(); + return this.has_been_loaded.then(function() { + return self.dataset.call('copy', [self.datarecord.id, {}, self.dataset.context]).then(function(new_id) { + self.record_created(new_id); + self.to_edit_mode(); }); }); - return def.promise(); }, on_button_delete: function() { var self = this; var def = $.Deferred(); - $.when(this.has_been_loaded).then(function() { + this.has_been_loaded.done(function() { if (self.datarecord.id && confirm(_t("Do you really want to delete this record?"))) { - self.dataset.unlink([self.datarecord.id]).then(function() { + self.dataset.unlink([self.datarecord.id]).done(function() { self.execute_pager_action('next'); def.resolve(); }); } else { - $.async_when().then(function () { + $.async_when().done(function () { def.reject(); }) } @@ -777,7 +772,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM */ save: function(prepend_on_create) { var self = this; - return this.mutating_mutex.exec(function() { return self.is_initialized.pipe(function() { + return this.mutating_mutex.exec(function() { return self.is_initialized.then(function() { try { var form_invalid = false, values = {}, @@ -807,7 +802,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM var save_deferral; if (!self.datarecord.id) { // Creation save - save_deferral = self.dataset.create(values).pipe(function(r) { + save_deferral = self.dataset.create(values).then(function(r) { return self.record_created(r, prepend_on_create); }, null); } else if (_.isEmpty(values) && ! self.force_dirty) { @@ -816,7 +811,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM } else { self.force_dirty = false; // Write save - save_deferral = self.dataset.write(self.datarecord.id, values, {}).pipe(function(r) { + save_deferral = self.dataset.write(self.datarecord.id, values, {}).then(function(r) { return self.record_saved(r); }, null); } @@ -851,7 +846,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM this.trigger('record_saved', r); return $.Deferred().reject(); } else { - return $.when(this.reload()).pipe(function () { + return $.when(this.reload()).then(function () { self.trigger('record_saved', r); return r; }); @@ -890,7 +885,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM this.sidebar.do_attachement_update(this.dataset, this.datarecord.id); } //openerp.log("The record has been created with id #" + this.datarecord.id); - return $.when(this.reload()).pipe(function () { + return $.when(this.reload()).then(function () { self.trigger('record_created', r); return _.extend(r, {created: true}); }); @@ -917,7 +912,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM 'bin_size': true, 'future_display_name': true } - }).pipe(function(r) { + }).then(function(r) { self.trigger('load_record', r); }); } @@ -947,7 +942,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM }, recursive_save: function() { var self = this; - return $.when(this.save()).pipe(function(res) { + return $.when(this.save()).then(function(res) { if (self.dataset.parent_view) return self.dataset.parent_view.recursive_save(); }); @@ -957,7 +952,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM var pre = $.when(); if (self.dataset.parent_view) pre = self.dataset.parent_view.recursive_reload(); - return pre.pipe(function() { + return pre.then(function() { return self.reload(); }); }, @@ -978,7 +973,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM return true; }, sidebar_context: function () { - return this.save().pipe(_.bind(function() {return this.get_fields_values();}, this)); + return this.save().then(_.bind(function() {return this.get_fields_values();}, this)); }, open_defaults_dialog: function () { var self = this; @@ -1054,7 +1049,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM all_users, true, condition || false - ]).then(function () { d.close(); }); + ]).done(function () { d.close(); }); }} ] }); @@ -1883,7 +1878,7 @@ instance.web.form.WidgetButton = instance.web.form.FormWidget.extend({ } }, {text: _t("Ok"), click: function() { - self.on_confirmed().then(function() { + self.on_confirmed().done(function() { def.resolve(); }); $(this).dialog("close"); @@ -1898,7 +1893,7 @@ instance.web.form.WidgetButton = instance.web.form.FormWidget.extend({ }; if (!this.node.attrs.special) { this.view.force_dirty = true; - return this.view.recursive_save().pipe(exec_action); + return this.view.recursive_save().then(exec_action); } else { return exec_action(); } @@ -2117,7 +2112,7 @@ instance.web.form.AbstractField = instance.web.form.FormWidget.extend(instance.w on_translate: function() { var self = this; var trans = new instance.web.DataSet(this, 'ir.translation'); - return trans.call_button('translate_fields', [this.view.dataset.model, this.view.datarecord.id, this.name, this.view.dataset.get_context()]).then(function(r) { + return trans.call_button('translate_fields', [this.view.dataset.model, this.view.datarecord.id, this.name, this.view.dataset.get_context()]).done(function(r) { self.do_action(r); }); }, @@ -2732,7 +2727,7 @@ instance.web.form.CompletionFieldMixin = { return this.orderer.add(dataset.name_search( search_val, new instance.web.CompoundDomain(self.build_domain(), [["id", "not in", blacklist]]), - 'ilike', this.limit + 1, self.build_context())).pipe(function(data) { + 'ilike', this.limit + 1, self.build_context())).then(function(data) { self.last_search = data; // possible selections for the m2o var values = _.map(data, function(x) { @@ -2751,7 +2746,7 @@ instance.web.form.CompletionFieldMixin = { values.push({ label: _t("Search More..."), action: function() { - dataset.name_search(search_val, self.build_domain(), 'ilike', false).then(function(data) { + dataset.name_search(search_val, self.build_domain(), 'ilike', false).done(function(data) { self._search_create_popup("search", data); }); }, @@ -2792,7 +2787,7 @@ instance.web.form.CompletionFieldMixin = { }; if (self.options.quick_create === undefined || self.options.quick_create) { new instance.web.DataSet(this, this.field.relation, self.build_context()) - .name_create(name).then(function(data) { + .name_create(name).done(function(data) { self.add_id(data[0]); }).fail(function(error, event) { event.preventDefault(); @@ -2989,14 +2984,14 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc self.ed_def.reject(); self.uned_def.reject(); self.ed_def = $.Deferred(); - self.ed_def.then(function() { + self.ed_def.done(function() { self.show_error_displayer(); }); setTimeout(function() { self.ed_def.resolve(); self.uned_def.reject(); self.uned_def = $.Deferred(); - self.uned_def.then(function() { + self.uned_def.done(function() { self.hide_error_displayer(); }); setTimeout(function() {self.uned_def.resolve();}, ed_duration); @@ -3026,7 +3021,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc // autocomplete this.$input.autocomplete({ source: function(req, resp) { - self.get_search_result(req.term).then(function(result) { + self.get_search_result(req.term).done(function(result) { resp(result); }); }, @@ -3077,7 +3072,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc } if (! no_recurse) { var dataset = new instance.web.DataSetStatic(this, this.field.relation, self.build_context()); - dataset.name_get([self.get("value")]).then(function(data) { + dataset.name_get([self.get("value")]).done(function(data) { self.display_value["" + self.get("value")] = data[0][1]; self.render_value(true); }); @@ -3230,11 +3225,11 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ var self = this; self.load_views(); - this.is_loaded.then(function() { + this.is_loaded.done(function() { self.on("change:effective_readonly", self, function() { - self.is_loaded = self.is_loaded.pipe(function() { + self.is_loaded = self.is_loaded.then(function() { self.viewmanager.destroy(); - return $.when(self.load_views()).then(function() { + return $.when(self.load_views()).done(function() { self.reload_current_view(); }); }); @@ -3307,10 +3302,10 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ this.viewmanager = new instance.web.form.One2ManyViewManager(this, this.dataset, views, {}); this.viewmanager.o2m = self; - var once = $.Deferred().then(function() { + var once = $.Deferred().done(function() { self.init_form_last_update.resolve(); }); - var def = $.Deferred().then(function() { + var def = $.Deferred().done(function() { self.initial_is_loaded.resolve(); }); this.viewmanager.on("controller_inited", self, function(view_type, controller) { @@ -3342,22 +3337,22 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ def.resolve(); }); this.viewmanager.on("switch_mode", self, function(n_mode, b, c, d, e) { - $.when(self.save_any_view()).then(function() { + $.when(self.save_any_view()).done(function() { if (n_mode === "list") { - $.async_when().then(function() { + $.async_when().done(function() { self.reload_current_view(); }); } }); }); - $.async_when().then(function () { + $.async_when().done(function () { self.viewmanager.appendTo(self.$el); }); return def; }, reload_current_view: function() { var self = this; - return self.is_loaded = self.is_loaded.pipe(function() { + return self.is_loaded = self.is_loaded.then(function() { var active_view = self.viewmanager.active_view; var view = self.viewmanager.views[active_view].controller; if(active_view === "list") { @@ -3369,7 +3364,7 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ var act = function() { return view.do_show(); }; - self.form_last_update = self.form_last_update.pipe(act, act); + self.form_last_update = self.form_last_update.then(act, act); return self.form_last_update; } else if (view.do_search) { return view.do_search(self.build_domain(), self.dataset.get_context(), []); @@ -3468,17 +3463,17 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ this.viewmanager.views[this.viewmanager.active_view].controller) { var view = this.viewmanager.views[this.viewmanager.active_view].controller; if (this.viewmanager.active_view === "form") { - if (!view.is_initialized.isResolved()) { + if (!view.is_initialized.state() === 'resolved') { return false; } var res = $.when(view.save()); - if (!res.isResolved() && !res.isRejected()) { + if (res.state() === 'pending') { console.warn("Asynchronous get_value() is not supported in form view."); } return res; } else if (this.viewmanager.active_view === "list") { var res = $.when(view.ensure_saved()); - if (!res.isResolved() && !res.isRejected()) { + if (res.state() === 'pending') { console.warn("Asynchronous get_value() is not supported in list view."); } return res; @@ -3526,13 +3521,13 @@ instance.web.form.One2ManyViewManager = instance.web.ViewManager.extend({ pop.show_element(self.o2m.field.relation, id, self.o2m.build_context(), { title: _t("Open: ") + self.o2m.string, create_function: function(data) { - return self.o2m.dataset.create(data).then(function(r) { + return self.o2m.dataset.create(data).done(function(r) { self.o2m.dataset.set_ids(self.o2m.dataset.ids.concat([r])); self.o2m.dataset.trigger("dataset_changed", r); }); }, write_function: function(id, data, options) { - return self.o2m.dataset.write(id, data, {}).then(function() { + return self.o2m.dataset.write(id, data, {}).done(function() { self.o2m.reload_current_view(); }); }, @@ -3617,10 +3612,10 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({ initial_view: "form", alternative_form_view: self.o2m.field.views ? self.o2m.field.views["form"] : undefined, create_function: function(data, callback, error_callback) { - return self.o2m.dataset.create(data).then(function(r) { + return self.o2m.dataset.create(data).done(function(r) { self.o2m.dataset.set_ids(self.o2m.dataset.ids.concat([r])); self.o2m.dataset.trigger("dataset_changed", r); - }).then(callback, error_callback); + }).done(callback).fail(error_callback); }, read_function: function() { return self.o2m.dataset.read_ids.apply(self.o2m.dataset, arguments); @@ -3643,7 +3638,7 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({ pop.show_element(self.o2m.field.relation, id, self.o2m.build_context(), { title: _t("Open: ") + self.o2m.string, write_function: function(id, data) { - return self.o2m.dataset.write(id, data, {}).then(function() { + return self.o2m.dataset.write(id, data, {}).done(function() { self.o2m.reload_current_view(); }); }, @@ -3666,12 +3661,12 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({ } var parent_form = this.o2m.view; var self = this; - this.ensure_saved().pipe(function () { + this.ensure_saved().then(function () { if (parent_form) return parent_form.save(); else return $.when(); - }).then(function () { + }).done(function () { self.handle_button(name, id, callback); }); }, @@ -3731,7 +3726,7 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({ ids.splice(false_id_index, 1); next = this.cancel_edition(true); } - return next.pipe(function () { + return next.then(function () { // wheeee var confirm = window.confirm; window.confirm = function () { return true; }; @@ -3793,7 +3788,7 @@ instance.web.form.One2ManyList = instance.web.ListView.List.extend({ clearTimeout(self.view.editor.form.__blur_timeout); self.view.editor.form.__blur_timeout = false; } - self.view.ensure_saved().then(function () { + self.view.ensure_saved().done(function () { self.view.do_add_record(); }); })); @@ -3814,7 +3809,7 @@ instance.web.form.One2ManyFormView = instance.web.FormView.extend({ this._super(data); var self = this; this.$buttons.find('button.oe_form_button_create').click(function() { - self.save().then(self.on_button_new); + self.save().done(self.on_button_new); }); }, do_notify_change: function() { @@ -3892,7 +3887,7 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(in }).bind('getSuggestions', function(e, data) { var _this = this; var str = !!data ? data.query || '' : ''; - self.get_search_result(str).then(function(result) { + self.get_search_result(str).done(function(result) { self.search_result = result; $(_this).trigger('setSuggestions', {result : _.map(result, function(el, i) { return _.extend(el, {index:i}); @@ -3945,7 +3940,7 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(in } }; if (! values || values.length > 0) { - this._display_orderer.add(dataset.name_get(values)).then(handle_names); + this._display_orderer.add(dataset.name_get(values)).done(handle_names); } else { handle_names([]); } @@ -3982,11 +3977,11 @@ instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({ var self = this; self.load_view(); - this.is_loaded.then(function() { + this.is_loaded.done(function() { self.on("change:effective_readonly", self, function() { - self.is_loaded = self.is_loaded.pipe(function() { + self.is_loaded = self.is_loaded.then(function() { self.list_view.destroy(); - return $.when(self.load_view()).then(function() { + return $.when(self.load_view()).done(function() { self.render_value(); }); }); @@ -4027,7 +4022,7 @@ instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({ self.initial_is_loaded.resolve(); loaded.resolve(); }); - $.async_when().then(function () { + $.async_when().done(function () { self.list_view.appendTo(self.$el); }); return loaded; @@ -4035,7 +4030,7 @@ instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({ render_value: function() { var self = this; this.dataset.set_ids(this.get("value")); - this.is_loaded = this.is_loaded.pipe(function() { + this.is_loaded = this.is_loaded.then(function() { return self.list_view.reload_content(); }); }, @@ -4096,7 +4091,7 @@ instance.web.form.Many2ManyListView = instance.web.ListView.extend(/** @lends in if (! this.m2m_field.options.reload_on_button) { return _sup(name, id, callback); } else { - return this.m2m_field.view.save().pipe(function() { + return this.m2m_field.view.save().then(function() { return _sup(name, id, function() { self.m2m_field.view.reload(); }); @@ -4127,11 +4122,11 @@ instance.web.form.FieldMany2ManyKanban = instance.web.form.AbstractField.extend( var self = this; self.load_view(); - this.is_loaded.then(function() { + this.is_loaded.done(function() { self.on("change:effective_readonly", self, function() { - self.is_loaded = self.is_loaded.pipe(function() { + self.is_loaded = self.is_loaded.then(function() { self.kanban_view.destroy(); - return $.when(self.load_view()).then(function() { + return $.when(self.load_view()).done(function() { self.render_value(); }); }); @@ -4168,7 +4163,7 @@ instance.web.form.FieldMany2ManyKanban = instance.web.form.AbstractField.extend( loaded.resolve(); }); this.kanban_view.on('switch_mode', this, this.open_popup); - $.async_when().then(function () { + $.async_when().done(function () { self.kanban_view.appendTo(self.$el); }); return loaded; @@ -4176,7 +4171,7 @@ instance.web.form.FieldMany2ManyKanban = instance.web.form.AbstractField.extend( render_value: function() { var self = this; this.dataset.set_ids(this.get("value")); - this.is_loaded = this.is_loaded.pipe(function() { + this.is_loaded = this.is_loaded.then(function() { return self.kanban_view.do_search(self.build_domain(), self.dataset.get_context(), []); }); }, @@ -4212,7 +4207,7 @@ instance.web.form.FieldMany2ManyKanban = instance.web.form.AbstractField.extend( pop.show_element(self.field.relation, id, self.build_context(), { title: _t("Open: ") + self.string, write_function: function(id, data, options) { - return self.dataset.write(id, data, {}).then(function() { + return self.dataset.write(id, data, {}).done(function() { self.render_value(); }); }, @@ -4285,7 +4280,7 @@ instance.web.form.Many2ManyQuickCreate = instance.web.Widget.extend({ }).bind('getSuggestions', function(e, data) { var _this = this; var str = !!data ? data.query || '' : ''; - self.m2m.get_search_result(str).then(function(result) { + self.m2m.get_search_result(str).done(function(result) { self.search_result = result; $(_this).trigger('setSuggestions', {result : _.map(result, function(el, i) { return _.extend(el, {index:i}); @@ -4340,13 +4335,13 @@ instance.web.form.AbstractFormPopup = instance.web.Widget.extend({ this.dataset.read_function = this.options.read_function; this.dataset.create_function = function(data, sup) { var fct = self.options.create_function || sup; - return fct.call(this, data).then(function(r) { + return fct.call(this, data).done(function(r) { self.created_elements.push(r); }); }; this.dataset.write_function = function(id, data, options, sup) { var fct = self.options.write_function || sup; - return fct.call(this, id, data, options).then(function() { + return fct.call(this, id, data, options).done(function() { self.trigger('write_completed'); }); }; @@ -4395,7 +4390,7 @@ instance.web.form.AbstractFormPopup = instance.web.Widget.extend({ })); var $snbutton = self.$buttonpane.find(".oe_abstractformpopup-form-save-new"); $snbutton.click(function() { - $.when(self.view_form.save()).then(function() { + $.when(self.view_form.save()).done(function() { self.view_form.reload_mutex.exec(function() { self.view_form.on_button_new(); }); @@ -4403,7 +4398,7 @@ instance.web.form.AbstractFormPopup = instance.web.Widget.extend({ }); var $sbutton = self.$buttonpane.find(".oe_abstractformpopup-form-save"); $sbutton.click(function() { - $.when(self.view_form.save()).then(function() { + $.when(self.view_form.save()).done(function() { self.view_form.reload_mutex.exec(function() { self.check_exit(); }); @@ -4477,7 +4472,7 @@ instance.web.form.SelectCreatePopup = instance.web.form.AbstractFormPopup.extend self.rpc('/web/session/eval_domain_and_context', { domains: [], contexts: [this.context] - }).then(function (results) { + }).done(function (results) { var search_defaults = {}; _.each(results.context, function (value_, key) { var match = /^search_default_(.*)$/.exec(key); @@ -4519,9 +4514,9 @@ instance.web.form.SelectCreatePopup = instance.web.form.AbstractFormPopup.extend e.cancel = true; }); self.view_list.popup = self; - self.view_list.appendTo($(".oe_popup_list", self.$el)).pipe(function() { + self.view_list.appendTo($(".oe_popup_list", self.$el)).then(function() { self.view_list.do_show(); - }).pipe(function() { + }).then(function() { self.searchview.do_search(); }); self.view_list.on("list_view_loaded", self, function() { @@ -4549,7 +4544,7 @@ instance.web.form.SelectCreatePopup = instance.web.form.AbstractFormPopup.extend domains: domains || [], contexts: contexts || [], group_by_seq: groupbys || [] - }).then(function (results) { + }).done(function (results) { self.view_list.do_search(results.domain, results.context, results.group_by); }); }, @@ -4899,7 +4894,7 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({ }, render_value: function() { var self = this; - self.get_selection().then(function() { + self.get_selection().done(function() { var content = QWeb.render("FieldStatus.content", {widget: self}); self.$el.html(content); var colors = JSON.parse((self.node.attrs || {}).statusbar_colors || "{}"); @@ -4923,7 +4918,7 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({ domain = new instance.web.CompoundDomain(['|'], self.build_domain(), [['id', '=', self.get('value')]]); } var ds = new instance.web.DataSetSearch(this, this.field.relation, self.build_context(), domain); - return ds.read_slice(['name'], {}).pipe(function (records) { + return ds.read_slice(['name'], {}).then(function (records) { for(var i = 0; i < records.length; i++) { self.selection.push([records[i].id, records[i].name]); } @@ -4947,10 +4942,10 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({ var $li = $(ev.currentTarget); var val = parseInt($li.data("id")); if (val != self.get('value')) { - this.view.recursive_save().then(function() { + this.view.recursive_save().done(function() { var change = {}; change[self.name] = val; - self.view.dataset.write(self.view.datarecord.id, change).then(function() { + self.view.dataset.write(self.view.datarecord.id, change).done(function() { self.view.reload(); }); }); @@ -4984,7 +4979,7 @@ instance.web.form.FieldMonetary = instance.web.form.FieldFloat.extend({ return; } return this.ci_dm.add(new instance.web.Model("res.currency").query(["symbol", "position"]) - .filter([["id", "=", self.get("currency")]]).first()).pipe(function(res) { + .filter([["id", "=", self.get("currency")]]).first()).then(function(res) { self.set({"currency_info": res}); }); }, diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index 5546105e901..86eb4c72674 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -508,7 +508,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi _.pluck(_(this.columns).filter(function (r) { return r.tag === 'field'; }), 'name') - ).then(function (records) { + ).done(function (records) { _(records[0]).each(function (value, key) { record.set(key, value, {silent: true}); }); @@ -553,7 +553,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi this.no_leaf = !!context['group_by_no_leaf']; this.grouped = !!group_by; - return this.load_view(context).pipe( + return this.load_view(context).then( this.proxy('reload_content')); }, /** @@ -566,7 +566,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi return; } var self = this; - return $.when(this.dataset.unlink(ids)).then(function () { + return $.when(this.dataset.unlink(ids)).done(function () { _(ids).each(function (id) { self.records.remove(self.records.get(id)); }); @@ -976,7 +976,7 @@ instance.web.ListView.List = instance.web.Class.extend( /** @lends instance.web. // to get a correctly displayable value in the field var model = ref_match[1], id = parseInt(ref_match[2], 10); - new instance.web.DataSet(this.view, model).name_get([id]).then(function(names) { + new instance.web.DataSet(this.view, model).name_get([id]).done(function(names) { if (!names.length) { return; } record.set(column.id, names[0][1]); }); @@ -992,7 +992,7 @@ instance.web.ListView.List = instance.web.Class.extend( /** @lends instance.web. // and let the various registered events handle refreshing the // row new instance.web.DataSet(this.view, column.relation) - .name_get([value]).then(function (names) { + .name_get([value]).done(function (names) { if (!names.length) { return; } record.set(column.id, names[0]); }); @@ -1015,7 +1015,7 @@ instance.web.ListView.List = instance.web.Class.extend( /** @lends instance.web. ids = value; } new instance.web.Model(column.relation) - .call('name_get', [ids]).then(function (names) { + .call('name_get', [ids]).done(function (names) { record.set(column.id, _(names).pluck(1).join(', ')); }) } @@ -1384,43 +1384,45 @@ instance.web.ListView.Groups = instance.web.Class.extend( /** @lends instance.we var fields = _.pluck(_.select(this.columns, function(x) {return x.tag == "field"}), 'name'); var options = { offset: page * limit, limit: limit, context: {bin_size: true} }; //TODO xmo: investigate why we need to put the setTimeout - $.async_when().then(function() {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) { - self.records.reset(null, {silent: true}); - } - if (!self.datagroup.openable) { - view.configure_pager(dataset); - } else { - if (dataset.size() == records.length) { - // only one page - self.$row.find('td.oe_list_group_pagination').empty(); - } else { - var pages = Math.ceil(dataset.size() / limit); - self.$row - .find('.oe_list_pager_state') - .text(_.str.sprintf(_t("%(page)d/%(page_count)d"), { - page: page + 1, - page_count: pages - })) - .end() - .find('button[data-pager-action=previous]') - .css('visibility', - page === 0 ? 'hidden' : '') - .end() - .find('button[data-pager-action=next]') - .css('visibility', - page === pages - 1 ? 'hidden' : ''); + $.async_when().done(function() { + dataset.read_slice(fields, options).done(function (records) { + // FIXME: ignominious hacks, parents (aka form view) should not send two ListView#reload_content concurrently + if (self.records.length) { + self.records.reset(null, {silent: true}); + } + if (!self.datagroup.openable) { + view.configure_pager(dataset); + } else { + if (dataset.size() == records.length) { + // only one page + self.$row.find('td.oe_list_group_pagination').empty(); + } else { + var pages = Math.ceil(dataset.size() / limit); + self.$row + .find('.oe_list_pager_state') + .text(_.str.sprintf(_t("%(page)d/%(page_count)d"), { + page: page + 1, + page_count: pages + })) + .end() + .find('button[data-pager-action=previous]') + .css('visibility', + page === 0 ? 'hidden' : '') + .end() + .find('button[data-pager-action=next]') + .css('visibility', + page === pages - 1 ? 'hidden' : ''); + } } - } - self.records.add(records, {silent: true}); - list.render(); - d.resolve(list); - if (_.isEmpty(records)) { - view.no_result(); - } - });}); + self.records.add(records, {silent: true}); + list.render(); + d.resolve(list); + if (_.isEmpty(records)) { + view.no_result(); + } + }); + }); return d.promise(); }, setup_resequence_rows: function (list, dataset) { @@ -1476,7 +1478,7 @@ instance.web.ListView.Groups = instance.web.Class.extend( /** @lends instance.we // Accounting > Taxes > Taxes, child tax accounts) // when synchronous (without setTimeout) (function (dataset, id, seq) { - $.async_when().then(function () { + $.async_when().done(function () { var attrs = {}; attrs[seqname] = seq; dataset.write(id, attrs); @@ -1501,7 +1503,7 @@ instance.web.ListView.Groups = instance.web.Class.extend( /** @lends instance.we self.render_groups(groups)); if (post_render) { post_render(); } }, function (dataset) { - self.render_dataset(dataset).then(function (list) { + self.render_dataset(dataset).done(function (list) { self.children[null] = list; self.elements = [list.$current.replaceAll($el)[0]]; @@ -1561,7 +1563,7 @@ var DataGroup = instance.web.CallbackEnabled.extend({ list: function (fields, ifGroups, ifRecords) { var self = this; var query = this.model.query(fields).order_by(this.sort).group_by(this.group_by); - $.when(query).then(function (querygroups) { + $.when(query).done(function (querygroups) { // leaf node if (!querygroups) { var ds = new instance.web.DataSetSearch(self, self.model.name, self.model.context(), self.model.domain()); diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js index acc1d781976..92a314a9e03 100644 --- a/addons/web/static/src/js/view_list_editable.js +++ b/addons/web/static/src/js/view_list_editable.js @@ -127,7 +127,7 @@ openerp.web.list_editable = function (instance) { // restartable this.editor = this.make_editor(); var editor_ready = this.editor.prependTo(this.$el) - .then(this.proxy('setup_events')); + .done(this.proxy('setup_events')); return $.when(result, editor_ready); } else { @@ -146,7 +146,7 @@ openerp.web.list_editable = function (instance) { }, do_button_action: function (name, id, callback) { var self = this, args = arguments; - this.ensure_saved().then(function (done) { + this.ensure_saved().done(function (done) { if (!id && done.created) { id = done.record.get('id'); } @@ -191,7 +191,7 @@ openerp.web.list_editable = function (instance) { at: this.prepends_on_create() ? 0 : null}); } - return this.ensure_saved().pipe(function () { + return this.ensure_saved().then(function () { var $recordRow = self.groups.get_row_for(record); var cells = self.get_cells_for($recordRow); self.fields_for_resize.splice(0, self.fields_for_resize.length); @@ -208,7 +208,7 @@ openerp.web.list_editable = function (instance) { // FIXME: need better way to get the field back from bubbling (delegated) DOM events somehow field.$el.attr('data-fieldname', field_name); self.fields_for_resize.push({field: field, cell: cell}); - }, options).pipe(function () { + }, options).then(function () { $recordRow.addClass('oe_edition'); self.resize_fields(); return record.attributes; @@ -267,7 +267,7 @@ openerp.web.list_editable = function (instance) { form: this.editor.form, cancel: false }, function () { - return this.editor.save().pipe(function (attrs) { + return this.editor.save().then(function (attrs) { var created = false; var record = self.records.get(attrs.id); if (!record) { @@ -281,9 +281,9 @@ openerp.web.list_editable = function (instance) { // record which has *just* been saved, so first perform all // onwrites then do a final reload of the record return self.handle_onwrite(record) - .pipe(function () { + .then(function () { return self.reload_record(record); }) - .pipe(function () { + .then(function () { return { created: created, record: record }; }); }); }); @@ -299,7 +299,7 @@ openerp.web.list_editable = function (instance) { form: this.editor.form, cancel: false }, function () { - return this.editor.cancel(force).pipe(function (attrs) { + return this.editor.cancel(force).then(function (attrs) { if (attrs.id) { var record = self.records.get(attrs.id); if (!record) { @@ -343,7 +343,7 @@ openerp.web.list_editable = function (instance) { message: _.str.sprintf("Event %s:before cancelled", event_name)}); } - return $.when(action.call(this)).then(function () { + return $.when(action.call(this)).done(function () { self.trigger.apply(self, [event_name + ':after'] .concat(_.toArray(arguments))); }); @@ -373,7 +373,7 @@ openerp.web.list_editable = function (instance) { var on_write_callback = self.fields_view.arch.attrs.on_write; if (!on_write_callback) { return $.when(); } return this.dataset.call(on_write_callback, [source_record.get('id')]) - .pipe(function (ids) { + .then(function (ids) { return $.when.apply( null, _(ids).map( _.bind(self.handle_onwrite_record, self, source_record))); @@ -434,7 +434,7 @@ openerp.web.list_editable = function (instance) { _next: function (next_record, options) { next_record = next_record || 'succ'; var self = this; - return this.save_edition().pipe(function (saveInfo) { + return this.save_edition().then(function (saveInfo) { if (saveInfo.created) { return self.start_edition(); } @@ -638,7 +638,7 @@ openerp.web.list_editable = function (instance) { var _super = this._super(); this.form.embedded_view = this._validate_view( this.delegate.edition_view(this)); - var form_ready = this.form.appendTo(this.$el).then( + var form_ready = this.form.appendTo(this.$el).done( self.form.proxy('do_hide')); return $.when(_super, form_ready); }, @@ -719,9 +719,9 @@ openerp.web.list_editable = function (instance) { var loaded = record ? form.trigger('load_record', _.extend({}, record)) : form.load_defaults(); - return $.when(loaded).pipe(function () { + return $.when(loaded).then(function () { return form.do_show({reload: false}); - }).pipe(function () { + }).then(function () { self.record = form.datarecord; _(form.fields).each(function (field, name) { configureField(name, field); @@ -734,7 +734,7 @@ openerp.web.list_editable = function (instance) { var self = this; return this.form .save(this.delegate.prepends_on_create()) - .pipe(function (result) { + .then(function (result) { var created = result.created && !self.record.id; if (created) { self.record.id = result.result; diff --git a/addons/web/static/src/js/view_tree.js b/addons/web/static/src/js/view_tree.js index 05760420ba8..f8ab343b153 100644 --- a/addons/web/static/src/js/view_tree.js +++ b/addons/web/static/src/js/view_tree.js @@ -45,7 +45,7 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie view_type: "tree", toolbar: this.view_manager ? !!this.view_manager.sidebar : false, context: this.dataset.get_context() - }).then(this.on_loaded); + }).done(this.on_loaded); }, /** * Returns the list of fields needed to correctly read objects. @@ -92,7 +92,7 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie })); this.$el.addClass(this.fields_view.arch.attrs['class']); - this.dataset.read_slice(this.fields_list()).then(function(records) { + this.dataset.read_slice(this.fields_list()).done(function(records) { self.store_record(records); if (!has_toolbar) { // WARNING: will do a second read on the same ids, but only on @@ -205,7 +205,7 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie var parent_child ={}; id = _.isArray(id)?id:parseInt(id); var ir_model_data = new instance.web.Model(this.model,self.dataset.get_context() || {},[['id','child_of',id]]).query(); - ir_model_data._execute().then(function(records){ + ir_model_data._execute().done(function(records){ self.store_record(records); _.each(records,function(rec){ if(rec[self.children_field].length === 0)return; @@ -254,7 +254,7 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie model: this.dataset.model, context: new instance.web.CompoundContext( this.dataset.get_context(), local_context) - }).pipe(function (actions) { + }).then(function (actions) { if (!actions.length) { return; } var action = actions[0][2]; var c = new instance.web.CompoundContext(local_context); @@ -263,7 +263,7 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie } return self.rpc('/web/session/eval_domain_and_context', { contexts: [c], domains: [] - }).pipe(function (res) { + }).then(function (res) { action.context = res.context; return self.do_action(action); }, null); diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index ebc7c326724..6e62dc70dd4 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -208,7 +208,7 @@ instance.web.ActionManager = instance.web.Widget.extend({ if (run_action) { this.null_action(); action_loaded = this.do_action(state.action); - instance.webclient.menu.has_been_loaded.then(function() { + instance.webclient.menu.has_been_loaded.done(function() { instance.webclient.menu.open_action(state.action); }); } @@ -226,14 +226,14 @@ instance.web.ActionManager = instance.web.Widget.extend({ } else if (state.sa) { // load session action this.null_action(); - action_loaded = this.rpc('/web/session/get_session_action', {key: state.sa}).pipe(function(action) { + action_loaded = this.rpc('/web/session/get_session_action', {key: state.sa}).then(function(action) { if (action) { return self.do_action(action); } }); } - $.when(action_loaded || null).then(function() { + $.when(action_loaded || null).done(function() { if (self.inner_widget && self.inner_widget.do_load_state) { self.inner_widget.do_load_state(state, warm); } @@ -251,7 +251,7 @@ instance.web.ActionManager = instance.web.Widget.extend({ return this.do_action(action_client, options); } else if (_.isNumber(action) || _.isString(action)) { var self = this; - return self.rpc("/web/action/load", { action_id: action }).pipe(function(result) { + return self.rpc("/web/action/load", { action_id: action }).then(function(result) { return self.do_action(result, options); }); } @@ -379,7 +379,7 @@ instance.web.ActionManager = instance.web.Widget.extend({ this.rpc('/web/action/run', { action_id: action.id, context: action.context || {} - }).then(function (action) { + }).done(function (action) { self.do_action(action, options) }); }, @@ -389,7 +389,7 @@ instance.web.ActionManager = instance.web.Widget.extend({ self.rpc("/web/session/eval_domain_and_context", { contexts: [action.context], domains: [] - }).then(function(res) { + }).done(function(res) { action = _.clone(action); action.context = res.context; self.session.get_file({ @@ -487,7 +487,7 @@ instance.web.ViewManager = instance.web.Widget.extend({ } else if (this.searchview && self.flags.auto_search && view.controller.searchable !== false) { - this.searchview.ready.then(this.searchview.do_search); + this.searchview.ready.done(this.searchview.do_search); } if (this.searchview) { @@ -499,7 +499,7 @@ instance.web.ViewManager = instance.web.Widget.extend({ .find('.oe_view_manager_switch a').filter('[data-view-type="' + view_type + '"]') .parent().addClass('active'); - r = $.when(view_promise).then(function () { + r = $.when(view_promise).done(function () { _.each(_.keys(self.views), function(view_name) { var controller = self.views[view_name].controller; if (controller) { @@ -551,11 +551,11 @@ instance.web.ViewManager = instance.web.Widget.extend({ var view_promise = controller.appendTo(container); this.views[view_type].controller = controller; this.views[view_type].deferred.resolve(view_type); - return $.when(view_promise).then(function() { + return $.when(view_promise).done(function() { if (self.searchview && self.flags.auto_search && view.controller.searchable !== false) { - self.searchview.ready.then(self.searchview.do_search); + self.searchview.ready.done(self.searchview.do_search); } self.trigger("controller_inited",view_type,controller); }); @@ -582,7 +582,7 @@ instance.web.ViewManager = instance.web.Widget.extend({ var view_to_select = views[index]; var state = self.url_states[view_to_select]; self.do_push_state(state || {}); - $.when(self.switch_mode(view_to_select)).then(function() { + $.when(self.switch_mode(view_to_select)).done(function() { self.$el.show(); }); }, @@ -661,7 +661,7 @@ instance.web.ViewManager = instance.web.Widget.extend({ domains: [this.action.domain || []].concat(domains || []), contexts: [action_context].concat(contexts || []), group_by_seq: groupbys || [] - }).then(function (results) { + }).done(function (results) { self.dataset._model = new instance.web.Model( self.dataset.model, results.context, results.domain); var groupby = results.group_by.length @@ -786,7 +786,7 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({ case 'perm_read': var ids = current_view.get_selected_ids(); if (ids.length === 1) { - this.dataset.call('perm_read', [ids]).then(function(result) { + this.dataset.call('perm_read', [ids]).done(function(result) { var dialog = new instance.web.Dialog(this, { title: _.str.sprintf(_t("View Log (%s)"), self.dataset.model), width: 400 @@ -812,7 +812,7 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({ }); break; case 'fields': - this.dataset.call('fields_get', [false, {}]).then(function (fields) { + this.dataset.call('fields_get', [false, {}]).done(function (fields) { var $root = $('
'); _(fields).each(function (attributes, name) { $root.append($('
').append($('

').text(name))); @@ -899,7 +899,7 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({ switch_mode: function (view_type, no_store, options) { var self = this; - return $.when(this._super.apply(this, arguments)).then(function () { + return $.when(this._super.apply(this, arguments)).done(function () { var controller = self.views[self.active_view].controller; self.$el.find('.oe_debug_view').html(QWeb.render('ViewManagerDebug', { view: controller, @@ -938,13 +938,13 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({ defs = []; if (state.view_type && state.view_type !== this.active_view) { defs.push( - this.views[this.active_view].deferred.pipe(function() { + this.views[this.active_view].deferred.then(function() { return self.switch_mode(state.view_type, true); }) ); } - $.when(defs).then(function() { + $.when(defs).done(function() { self.views[self.active_view].controller.do_load_state(state, warm); }); }, @@ -1051,7 +1051,7 @@ instance.web.Sidebar = instance.web.Widget.extend({ }, on_item_action_clicked: function(item) { var self = this; - self.getParent().sidebar_context().then(function (context) { + self.getParent().sidebar_context().done(function (context) { var ids = self.getParent().get_selected_ids(); if (ids.length == 0) { instance.web.dialog($("
").text(_t("You must choose at least one record.")), { title: _t("Warning"), modal: true }); @@ -1065,7 +1065,7 @@ instance.web.Sidebar = instance.web.Widget.extend({ self.rpc("/web/action/load", { action_id: item.action.id, context: additional_context - }).then(function(result) { + }).done(function(result) { result.context = _.extend(result.context || {}, additional_context); result.flags = result.flags || {}; @@ -1087,7 +1087,7 @@ instance.web.Sidebar = instance.web.Widget.extend({ } else { var dom = [ ['res_model', '=', dataset.model], ['res_id', '=', model_id], ['type', 'in', ['binary', 'url']] ]; var ds = new instance.web.DataSetSearch(this, 'ir.attachment', dataset.get_context(), dom); - ds.read_slice(['name', 'url', 'type'], {}).then(this.on_attachments_loaded); + ds.read_slice(['name', 'url', 'type'], {}).done(this.on_attachments_loaded); } }, on_attachments_loaded: function(attachments) { @@ -1122,7 +1122,7 @@ instance.web.Sidebar = instance.web.Widget.extend({ var self = this; var $e = $(e.currentTarget); if (confirm(_t("Do you really want to delete this attachment ?"))) { - (new instance.web.DataSet(this, 'ir.attachment')).unlink([parseInt($e.attr('data-id'), 10)]).then(function() { + (new instance.web.DataSet(this, 'ir.attachment')).unlink([parseInt($e.attr('data-id'), 10)]).done(function() { self.do_attachement_update(self.dataset, self.model_id); }); } @@ -1150,7 +1150,7 @@ instance.web.View = instance.web.Widget.extend({ var view_loaded; if (this.embedded_view) { view_loaded = $.Deferred(); - $.async_when().then(function() { + $.async_when().done(function() { view_loaded.resolve(self.embedded_view); }); } else { @@ -1164,7 +1164,7 @@ instance.web.View = instance.web.Widget.extend({ context: this.dataset.get_context(context) }); } - return view_loaded.pipe(function(r) { + return view_loaded.then(function(r) { self.trigger('view_loaded', r); // add css classes that reflect the (absence of) access rights self.$el.addClass('oe_view') @@ -1220,7 +1220,7 @@ instance.web.View = instance.web.Widget.extend({ return self.rpc('/web/session/eval_domain_and_context', { contexts: [ncontext], domains: [] - }).pipe(function (results) { + }).then(function (results) { action.context = results.context; /* niv: previously we were overriding once more with action_data.context, * I assumed this was not a correct behavior and removed it @@ -1249,11 +1249,11 @@ instance.web.View = instance.web.Widget.extend({ } } args.push(context); - return dataset.call_button(action_data.name, args).then(handler); + return dataset.call_button(action_data.name, args).done(handler); } else if (action_data.type=="action") { - return this.rpc('/web/action/load', { action_id: action_data.name, context: context, do_not_eval: true}).then(handler); + return this.rpc('/web/action/load', { action_id: action_data.name, context: context, do_not_eval: true}).done(handler); } else { - return dataset.exec_workflow(record_id, action_data.name).then(handler); + return dataset.exec_workflow(record_id, action_data.name).done(handler); } }, /** diff --git a/addons/web/static/test/fulltest/dataset.js b/addons/web/static/test/fulltest/dataset.js index f7e64fba53e..cc2d1b47d63 100644 --- a/addons/web/static/test/fulltest/dataset.js +++ b/addons/web/static/test/fulltest/dataset.js @@ -82,7 +82,7 @@ $(document).ready(function () { }); t.test('call', function (openerp) { var ds = new openerp.web.DataSet({session: openerp.session}, 'mod'); - t.expect(ds.call('frob', ['a', 'b', 42]).then(function (r) { + t.expect(ds.call('frob', ['a', 'b', 42]).done(function (r) { strictEqual(r.method, 'frob'); strictEqual(r.args.length, 3); @@ -91,7 +91,7 @@ $(document).ready(function () { ok(_.isEmpty(r.kwargs)); })); }); - t.test('name_get').then(function (openerp) { + t.test('name_get').done(function (openerp) { var ds = new openerp.web.DataSet({session: openerp.session}, 'mod'); t.expect(ds.name_get([1, 2], null), function (r) { strictEqual(r.method, 'name_get'); diff --git a/addons/web/static/test/list-editable.js b/addons/web/static/test/list-editable.js index 0388e56048d..459a6df397a 100644 --- a/addons/web/static/test/list-editable.js +++ b/addons/web/static/test/list-editable.js @@ -107,12 +107,12 @@ $(document).ready(function () { }); var counter = 0; e.appendTo($fix) - .pipe(function () { + .then(function () { return e.edit({}, function () { ++counter; }); }) - .pipe(function (form) { + .then(function (form) { ok(e.is_editing(), "should be editing"); equal(counter, 3, "should have configured all fields"); return e.save(); @@ -137,12 +137,12 @@ $(document).ready(function () { }); var counter = 0; e.appendTo($fix) - .pipe(function () { + .then(function () { return e.edit({}, function () { ++counter; }); }) - .pipe(function (form) { + .then(function (form) { return e.cancel(); }) .always(start) @@ -170,12 +170,12 @@ $(document).ready(function () { var counter = 0; var warnings = 0; e.appendTo($fix) - .pipe(function () { + .then(function () { return e.edit({}, function () { ++counter; }); }) - .pipe(function (form) { + .then(function (form) { return e.save(); }) .always(start) @@ -243,16 +243,16 @@ $(document).ready(function () { var l = new instance.web.ListView({}, ds, false, {editable: 'top'}); l.appendTo($fix) - .pipe(l.proxy('reload_content')) - .pipe(function () { + .then(l.proxy('reload_content')) + .then(function () { return l.start_edition(); }) .always(start) - .pipe(function () { + .then(function () { ok(got_defaults, "should have fetched default values for form"); return l.save_edition(); }) - .pipe(function (result) { + .then(function (result) { ok(result.created, "should yield newly created record"); equal(result.record.get('a'), "qux", "should have used default values"); @@ -307,14 +307,14 @@ $(document).ready(function () { var l = new instance.web.ListView({}, ds, false, {editable: 'top'}); l.on('edit:before edit:after', o, o.onEvent); l.appendTo($fix) - .pipe(l.proxy('reload_content')) + .then(l.proxy('reload_content')) .always(start) - .pipe(function () { + .then(function () { ok(l.options.editable, "should be editable"); equal(o.counter, 0, "should have seen no event yet"); return l.start_edition(l.records.get(1)); }) - .pipe(function () { + .then(function () { ok(l.editor.is_editing(), "should be editing"); equal(o.counter, 2, "should have seen two edition events"); }) @@ -332,14 +332,14 @@ $(document).ready(function () { edit_after = true; }); l.appendTo($fix) - .pipe(l.proxy('reload_content')) + .then(l.proxy('reload_content')) .always(start) - .pipe(function () { + .then(function () { ok(l.options.editable, "should be editable"); return l.start_edition(); }) // cancelling an event rejects the deferred - .pipe($.Deferred().reject(), function () { + .then($.Deferred().reject(), function () { ok(!l.editor.is_editing(), "should not be editing"); ok(!edit_after, "should not have fired the edit:after event"); return $.when(); diff --git a/addons/web/static/test/rpc.js b/addons/web/static/test/rpc.js index fbe7147f2e6..eb9019287ce 100644 --- a/addons/web/static/test/rpc.js +++ b/addons/web/static/test/rpc.js @@ -29,10 +29,10 @@ $(document).ready(function () { fail1 = false, fail2 = false; var d1 = $.Deferred(), d2 = $.Deferred(); - dm.add(d1).then(function () { done1 = true; }, - function () { fail1 = true; }); - dm.add(d2).then(function () { done2 = true; }, - function () { fail2 = true; }); + dm.add(d1).done(function () { done1 = true; } + .fail(function () { fail1 = true; }); + dm.add(d2).done(function () { done2 = true; }) + .fail(function () { fail2 = true; }); d2.resolve(); d1.resolve(); @@ -50,10 +50,10 @@ $(document).ready(function () { fail1 = false, fail2 = false; var d1 = $.Deferred(), d2 = $.Deferred(); - dm.add(d1).then(function () { done1 = true; }, - function () { fail1 = true; }); - dm.add(d2).then(function () { done2 = true; }, - function () { fail2 = true; }); + dm.add(d1).done(function () { done1 = true; }) + .fail(function () { fail1 = true; }); + dm.add(d2).done(function () { done2 = true; }) + .fail(function () { fail2 = true; }); d2.resolve(); d1.resolve(); @@ -86,10 +86,10 @@ $(document).ready(function () { fail1 = false, fail2 = false; var d1 = $.Deferred(), d2 = $.Deferred(); - dm.add(d1).then(function () { done1 = true; }, - function () { fail1 = true; }); - dm.add(d2).then(function () { done2 = true; }, - function () { fail2 = true; }); + dm.add(d1).done(function () { done1 = true; }) + .fail(function () { fail1 = true; }); + dm.add(d2).done(function () { done2 = true; }) + .fail(function () { fail2 = true; }); setTimeout(function () { d1.resolve(); }, 200); setTimeout(function () { d2.resolve(); }, 100); @@ -110,10 +110,10 @@ $(document).ready(function () { fail1 = false, fail2 = false; var d1 = $.Deferred(), d2 = $.Deferred(); - dm.add(d1).then(function () { done1 = true; }, - function () { fail1 = true; }); - dm.add(d2).then(function () { done2 = true; }, - function () { fail2 = true; }); + dm.add(d1).done(function () { done1 = true; }) + .fail(function () { fail1 = true; }); + dm.add(d2).done(function () { done2 = true; }) + .fail(function () { fail2 = true; }); setTimeout(function () { d1.resolve(); }, 200); setTimeout(function () { d2.resolve(); }, 100); diff --git a/addons/web_calendar/static/src/js/calendar.js b/addons/web_calendar/static/src/js/calendar.js index 9c87f57626b..5f6682804d4 100644 --- a/addons/web_calendar/static/src/js/calendar.js +++ b/addons/web_calendar/static/src/js/calendar.js @@ -43,7 +43,7 @@ instance.web_calendar.CalendarView = instance.web.View.extend({ }, start: function() { this._super(); - return this.rpc("/web/view/load", {"model": this.model, "view_id": this.view_id, "view_type":"calendar", 'toolbar': false}).then(this.on_loaded); + return this.rpc("/web/view/load", {"model": this.model, "view_id": this.view_id, "view_type":"calendar", 'toolbar': false}).done(this.on_loaded); }, destroy: function() { scheduler.clearAll(); @@ -106,7 +106,7 @@ instance.web_calendar.CalendarView = instance.web.View.extend({ if (!this.sidebar && this.options.$sidebar) { this.sidebar = new instance.web_calendar.Sidebar(this); - this.has_been_loaded.pipe(this.sidebar.appendTo(this.$el.find('.oe_calendar_sidebar_container'))); + this.has_been_loaded.then(this.sidebar.appendTo(this.$el.find('.oe_calendar_sidebar_container'))); } this.trigger('calendar_view_loaded', data); return this.has_been_loaded.resolve(); @@ -214,7 +214,7 @@ instance.web_calendar.CalendarView = instance.web.View.extend({ } }, reload_event: function(id) { - this.dataset.read_ids([id], _.keys(this.fields)).then(this.on_events_loaded); + this.dataset.read_ids([id], _.keys(this.fields)).done(this.on_events_loaded); }, get_color: function(key) { if (this.color_map[key]) { @@ -307,20 +307,20 @@ instance.web_calendar.CalendarView = instance.web.View.extend({ do_create_event: function(event_id, event_obj) { var self = this, data = this.get_event_data(event_obj); - this.dataset.create(data).then(function(r) { + this.dataset.create(data).done(function(r) { var id = r; self.dataset.ids.push(id); scheduler.changeEventId(event_id, id); self.refresh_minical(); self.reload_event(id); - }, function(r, event) { + }).fail(function(r, event) { event.preventDefault(); self.do_create_event_with_formdialog(event_id, event_obj); }); }, do_create_event_with_formdialog: function(event_id, event_obj) { var self = this; - $.when(! self.form_dialog.dialog_inited ? self.form_dialog.init_dialog() : true).then(function() { + $.when(! self.form_dialog.dialog_inited ? self.form_dialog.init_dialog() : true).done(function() { if (!event_obj) { event_obj = scheduler.getEvent(event_id); } @@ -328,13 +328,13 @@ instance.web_calendar.CalendarView = instance.web.View.extend({ fields_to_fetch = _(self.form_dialog.form.fields_view.fields).keys(); self.dataset.index = null; self.creating_event_id = event_id; - self.form_dialog.form.do_show().then(function() { + self.form_dialog.form.do_show().done(function() { _.each(['date_start', 'date_delay', 'date_stop'], function(field) { var field_name = self[field]; if (field_name && self.form_dialog.form.fields[field_name]) { var ffield = self.form_dialog.form.fields[field_name]; ffield._dirty_flag = false; - $.when(ffield.set_value(data[field_name])).then(function() { + $.when(ffield.set_value(data[field_name])).done(function() { ffield._dirty_flag = true; self.form_dialog.form.do_onchange(ffield); }); @@ -350,7 +350,7 @@ instance.web_calendar.CalendarView = instance.web.View.extend({ index = this.dataset.get_id_index(event_id); if (index != null) { event_id = this.dataset.ids[index]; - this.dataset.write(event_id, data, {}).then(function() { + this.dataset.write(event_id, data, {}).done(function() { self.refresh_minical(); }); } @@ -361,7 +361,7 @@ instance.web_calendar.CalendarView = instance.web.View.extend({ var self = this, index = this.dataset.get_id_index(event_id); if (index !== null) { - this.dataset.unlink(event_id).then(function() { + this.dataset.unlink(event_id).done(function() { self.refresh_minical(); }); } @@ -413,12 +413,12 @@ instance.web_calendar.CalendarView = instance.web.View.extend({ do_ranged_search: function() { var self = this; scheduler.clearAll(); - $.when(this.has_been_loaded, this.ready).then(function() { + $.when(this.has_been_loaded, this.ready).done(function() { self.dataset.read_slice(_.keys(self.fields), { offset: 0, domain: self.get_range_domain(), context: self.last_search[1] - }).then(function(events) { + }).done(function(events) { self.dataset_events = events; self.on_events_loaded(events); }); @@ -433,7 +433,7 @@ instance.web_calendar.CalendarView = instance.web.View.extend({ }, do_show: function () { var self = this; - $.when(this.has_been_loaded).then(function() { + $.when(this.has_been_loaded).done(function() { self.$el.show(); self.do_push_state({}); }); diff --git a/addons/web_diagram/static/src/js/diagram.js b/addons/web_diagram/static/src/js/diagram.js index d5a6e78f862..fcbdee170e3 100644 --- a/addons/web_diagram/static/src/js/diagram.js +++ b/addons/web_diagram/static/src/js/diagram.js @@ -25,7 +25,7 @@ instance.web.DiagramView = instance.web.View.extend({ }, start: function() { var self = this; - return this.rpc("/web_diagram/diagram/load", {"model": this.model, "view_id": this.view_id}).then(function(r) { + return this.rpc("/web_diagram/diagram/load", {"model": this.model, "view_id": this.view_id}).done(function(r) { self.load_diagram(r); }); }, @@ -109,7 +109,7 @@ instance.web.DiagramView = instance.web.View.extend({ }); this.rpc( - '/web_diagram/diagram/get_diagram_info',params).then(function(result) { + '/web_diagram/diagram/get_diagram_info',params).done(function(result) { self.draw_diagram(result); } ); @@ -260,7 +260,7 @@ instance.web.DiagramView = instance.web.View.extend({ ); pop.on('write_completed', self, function() { - self.dataset.read_index(_.keys(self.fields_view.fields)).pipe(self.on_diagram_loaded); + self.dataset.read_index(_.keys(self.fields_view.fields)).then(self.on_diagram_loaded); }); var form_fields = [self.parent_field]; @@ -294,7 +294,7 @@ instance.web.DiagramView = instance.web.View.extend({ self.context || self.dataset.context ); pop.on("elements_selected", self, function(element_ids) { - self.dataset.read_index(_.keys(self.fields_view.fields)).pipe(self.on_diagram_loaded); + self.dataset.read_index(_.keys(self.fields_view.fields)).then(self.on_diagram_loaded); }); var form_controller = pop.view_form; @@ -324,7 +324,7 @@ instance.web.DiagramView = instance.web.View.extend({ } ); pop.on('write_completed', self, function() { - self.dataset.read_index(_.keys(self.fields_view.fields)).pipe(self.on_diagram_loaded); + self.dataset.read_index(_.keys(self.fields_view.fields)).then(self.on_diagram_loaded); }); }, @@ -346,7 +346,7 @@ instance.web.DiagramView = instance.web.View.extend({ this.context || this.dataset.context ); pop.on("elements_selected", self, function(element_ids) { - self.dataset.read_index(_.keys(self.fields_view.fields)).pipe(self.on_diagram_loaded); + self.dataset.read_index(_.keys(self.fields_view.fields)).then(self.on_diagram_loaded); }); // We want to destroy the dummy edge after a creation cancel. This destroys it even if we save the changes. // This is not a problem since the diagram is completely redrawn on saved changes. @@ -383,7 +383,7 @@ instance.web.DiagramView = instance.web.View.extend({ break; } var loaded = this.dataset.read_index(_.keys(this.fields_view.fields)) - .pipe(this.on_diagram_loaded); + .then(this.on_diagram_loaded); this.do_update_pager(); return loaded; }, diff --git a/addons/web_diagram/static/src/js/graph.js b/addons/web_diagram/static/src/js/graph.js index bfe5796c0f0..6e3b018d85a 100644 --- a/addons/web_diagram/static/src/js/graph.js +++ b/addons/web_diagram/static/src/js/graph.js @@ -87,12 +87,12 @@ dummy_circle.animate({'r': close_button_radius }, 400, 'linear'); if(entity_type == "node"){ - $.when(GraphNode.destruction_callback(entity)).then(function () { + $.when(GraphNode.destruction_callback(entity)).done(function () { //console.log("remove node",entity); entity.remove(); }); }else if(entity_type == "edge"){ - $.when(GraphEdge.destruction_callback(entity)).then(function () { + $.when(GraphEdge.destruction_callback(entity)).done(function () { //console.log("remove edge",entity); entity.remove(); }); diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index 040f53568ae..627942d0dbc 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -22,7 +22,7 @@ instance.web_gantt.GanttView = instance.web.View.extend({ var self = this; this.fields_view = fields_view_get; this.$el.addClass(this.fields_view.arch.attrs['class']); - return this.rpc("/web/searchview/fields_get", {"model": this.dataset.model}).pipe(function(fields_get) { + return this.rpc("/web/searchview/fields_get", {"model": this.dataset.model}).then(function(fields_get) { self.fields = fields_get.fields; self.has_been_loaded.resolve(); }); @@ -46,11 +46,11 @@ instance.web_gantt.GanttView = instance.web.View.extend({ })); fields = _.uniq(fields.concat(n_group_bys)); - return $.when(this.has_been_loaded).pipe(function() { + return $.when(this.has_been_loaded).then(function() { return self.dataset.read_slice(fields, { domain: domains, context: contexts - }).pipe(function(data) { + }).then(function(data) { return self.on_data_loaded(data, n_group_bys); }); }); @@ -62,7 +62,7 @@ instance.web_gantt.GanttView = instance.web.View.extend({ on_data_loaded: function(tasks, group_bys) { var self = this; var ids = _.pluck(tasks, "id"); - return this.dataset.name_get(ids).pipe(function(names) { + return this.dataset.name_get(ids).then(function(names) { var ntasks = _.map(tasks, function(task) { return _.extend({__name: _.detect(names, function(name) { return name[0] == task.id; })[1]}, task); }); diff --git a/addons/web_graph/static/src/js/graph.js b/addons/web_graph/static/src/js/graph.js index b0106bc8f01..8d813d10351 100644 --- a/addons/web_graph/static/src/js/graph.js +++ b/addons/web_graph/static/src/js/graph.js @@ -94,7 +94,7 @@ instance.web_graph.GraphView = instance.web.View.extend({ if (self.legend == "top") { self.legend = "inside"; } self.forcehtml = true; - self.graph_get_data().then(function (result) { + self.graph_get_data().done(function (result) { self.graph_render_all(result).download.saveImage('png'); }).always(function () { self.forcehtml = false; @@ -243,7 +243,7 @@ instance.web_graph.GraphView = instance.web.View.extend({ var result = []; var ticks = {}; - return obj.call("fields_view_get", [view_id, 'graph']).pipe(function(tmp) { + return obj.call("fields_view_get", [view_id, 'graph']).then(function(tmp) { view_get = tmp; fields = view_get['fields']; var toload = _.select(group_by, function(x) { return fields[x] === undefined }); @@ -251,7 +251,7 @@ instance.web_graph.GraphView = instance.web.View.extend({ return obj.call("fields_get", [toload, context]); else return $.when([]); - }).pipe(function (fields_to_add) { + }).then(function (fields_to_add) { _.extend(fields, fields_to_add); var tree = $($.parseXML(view_get['arch'])); @@ -307,7 +307,7 @@ instance.web_graph.GraphView = instance.web.View.extend({ } if (mode === "pie") { - return obj.call("read_group", [domain, yaxis.concat([xaxis[0]]), [xaxis[0]]], {context: context}).pipe(function(res) { + return obj.call("read_group", [domain, yaxis.concat([xaxis[0]]), [xaxis[0]]], {context: context}).then(function(res) { _.each(res, function(record) { result.push({ 'data': [[_convert(xaxis[0], record[xaxis[0]]), record[yaxis[0]]]], @@ -318,11 +318,11 @@ instance.web_graph.GraphView = instance.web.View.extend({ } else if ((! stacked) || (xaxis.length < 2)) { var defs = []; _.each(xaxis, function(x) { - defs.push(obj.call("read_group", [domain, yaxis.concat([x]), [x]], {context: context}).pipe(function(res) { + defs.push(obj.call("read_group", [domain, yaxis.concat([x]), [x]], {context: context}).then(function(res) { return [x, res]; })); }); - return $.when.apply($, defs).pipe(function() { + return $.when.apply($, defs).then(function() { _.each(_.toArray(arguments), function(res) { var x = res[0]; res = res[1]; @@ -336,16 +336,16 @@ instance.web_graph.GraphView = instance.web.View.extend({ }); } else { xaxis.reverse(); - return obj.call("read_group", [domain, yaxis.concat(xaxis.slice(0, 1)), xaxis.slice(0, 1)], {context: context}).pipe(function(axis) { + return obj.call("read_group", [domain, yaxis.concat(xaxis.slice(0, 1)), xaxis.slice(0, 1)], {context: context}).then(function(axis) { var defs = []; _.each(axis, function(x) { var key = x[xaxis[0]] defs.push(obj.call("read_group", [new instance.web.CompoundDomain(domain, [[xaxis[0], '=' ,_convert_key(xaxis[0], key)]]), - yaxis.concat(xaxis.slice(1, 2)), xaxis.slice(1, 2)], {context: context}).pipe(function(res) { + yaxis.concat(xaxis.slice(1, 2)), xaxis.slice(1, 2)], {context: context}).then(function(res) { return [x, key, res]; })); }); - return $.when.apply($, defs).pipe(function() { + return $.when.apply($, defs).then(function() { _.each(_.toArray(arguments), function(res) { var x = res[0]; var key = res[1]; @@ -360,7 +360,7 @@ instance.web_graph.GraphView = instance.web.View.extend({ }); }); } - }).pipe(function() { + }).then(function() { var res = { 'data': result, 'ticks': _.map(ticks, function(el, key) { return [el, key] }) @@ -375,7 +375,7 @@ instance.web_graph.GraphView = instance.web.View.extend({ _.extend(this, options.data); return this.graph_get_data() - .then(this.proxy('graph_render_all')); + .done(this.proxy('graph_render_all')); }, graph_render_all: function (data) { diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 76920da6a47..91d83aba7c7 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -198,7 +198,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ var form = am.dialog_widget.views.form.controller; form.on("on_button_cancel", am.dialog, am.dialog.close); form.on('record_created', self, function(r) { - (new instance.web.DataSet(self, self.group_by_field.relation)).name_get([r]).then(function(new_record) { + (new instance.web.DataSet(self, self.group_by_field.relation)).name_get([r]).done(function(new_record) { am.dialog.close(); var domain = self.dataset.domain.slice(0); domain.push([self.group_by, '=', new_record[0][0]]); @@ -212,7 +212,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ aggregates: {}, }; var new_group = new instance.web_kanban.KanbanGroup(self, [], datagroup, dataset); - self.do_add_groups([new_group]).then(function() { + self.do_add_groups([new_group]).done(function() { $(window).scrollTo(self.groups.slice(-1)[0].$el, { axis: 'x' }); }); }); @@ -224,14 +224,14 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ this.search_domain = domain; this.search_context = context; this.search_group_by = group_by; - $.when(this.has_been_loaded).then(function() { + $.when(this.has_been_loaded).done(function() { self.group_by = group_by.length ? group_by[0] : self.fields_view.arch.attrs.default_group_by; self.group_by_field = self.fields_view.fields[self.group_by] || {}; self.grouped_by_m2o = (self.group_by_field.type === 'many2one'); self.$buttons.find('.oe_alternative').toggle(self.grouped_by_m2o); self.$el.toggleClass('oe_kanban_grouped_by_m2o', self.grouped_by_m2o); var grouping = new instance.web.Model(self.dataset.model, context, domain).query().group_by(self.group_by); - $.when(grouping).then(function(groups) { + $.when(grouping).done(function(groups) { if (groups) { self.do_process_groups(groups); } else { @@ -252,7 +252,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ var dataset = new instance.web.DataSetSearch(self, self.dataset.model, new instance.web.CompoundContext(self.dataset.get_context(), group.model.context()), group.model.domain()); return dataset.read_slice(self.fields_keys.concat(['__last_update']), { 'limit': self.limit }) - .pipe(function(records) { + .then(function(records) { self.dataset.ids.push.apply(self.dataset.ids, dataset.ids); groups_array[index] = new instance.web_kanban.KanbanGroup(self, records, group, dataset); if (!remaining--) { @@ -268,16 +268,16 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ this.$el.removeClass('oe_kanban_grouped').addClass('oe_kanban_ungrouped'); this.add_group_mutex.exec(function() { var def = $.Deferred(); - self.dataset.read_slice(self.fields_keys.concat(['__last_update']), { 'limit': self.limit }).then(function(records) { + self.dataset.read_slice(self.fields_keys.concat(['__last_update']), { 'limit': self.limit }).done(function(records) { self.do_clear_groups(); var kgroup = new instance.web_kanban.KanbanGroup(self, records, null, self.dataset); - self.do_add_groups([kgroup]).then(function() { + self.do_add_groups([kgroup]).done(function() { if (_.isEmpty(records)) { self.no_result(); } def.resolve(); }); - }).then(null, function() { + }).done(null, function() { def.reject(); }); return def; @@ -306,7 +306,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ return group.insertBefore($last_td); } }); - return $.when.apply(null, groups_started).then(function () { + return $.when.apply(null, groups_started).done(function () { self.on_groups_started(); self.$el.appendTo($parent); _.each(self.groups, function(group) { @@ -375,7 +375,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ var tmp_group = self.groups.splice(start_index, 1)[0]; self.groups.splice(stop_index, 0, tmp_group); var new_sequence = _.pluck(self.groups, 'value'); - (new instance.web.DataSet(self, self.group_by_field.relation)).resequence(new_sequence).then(function(r) { + (new instance.web.DataSet(self, self.group_by_field.relation)).resequence(new_sequence).done(function(r) { if (r === false) { console.error("Kanban: could not resequence model '%s'. Probably no 'sequence' field.", self.group_by_field.relation); } @@ -404,7 +404,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ record.group = new_group; var data = {}; data[this.group_by] = new_group.value; - this.dataset.write(record.id, data, {}).then(function() { + this.dataset.write(record.id, data, {}).done(function() { record.do_reload(); new_group.do_save_sequences(); }).fail(function(error, evt) { @@ -497,7 +497,7 @@ instance.web_kanban.KanbanView.postprocessing_widget_many2many_tags = function(s if(model_list_id[model].length>0){ var block = self.$el.find(".oe_form_field.oe_tags[model='" + model + "']"); var dataset = new instance.web.DataSetSearch(self, model, self.session.context); - dataset.name_get(_.uniq( model_list_id[model] )).then( + dataset.name_get(_.uniq( model_list_id[model] )).done( function(result) { for(var t=0;t\n<%s string='%s'>\n\t\n", values.view_type, view_string, field_name, values.view_type); var vals = {'model': self.model, 'name': values.view_name, 'priority': values.priority, 'type': values.view_type, 'arch': arch}; @@ -183,7 +183,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ var self = this; if (confirm(_t("Do you really want to remove this view?"))) { var controller = this.action_manager.inner_widget.views[this.action_manager.inner_widget.active_view].controller; - this.dataset.unlink([this.main_view_id]).then(function() { + this.dataset.unlink([this.main_view_id]).done(function() { controller.reload_content(); self.main_view_id = self.parent.fields_view.view_id; }); @@ -246,12 +246,12 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ get_arch: function() { var self = this; var view_arch_list = []; - this.dataset.read_ids([parseInt(self.main_view_id)], ['arch', 'type','priority']).then(function(arch) { + this.dataset.read_ids([parseInt(self.main_view_id)], ['arch', 'type','priority']).done(function(arch) { if (arch.length) { var arch_object = self.parse_xml(arch[0].arch, self.main_view_id); self.main_view_type = arch[0].type == 'tree'? 'list': arch[0].type; view_arch_list.push({"view_id": self.main_view_id, "arch": arch[0].arch,"priority":arch[0].priority}); - self.dataset.read_slice([], {domain: [['inherit_id','=', parseInt(self.main_view_id)]]}).then(function(result) { + self.dataset.read_slice([], {domain: [['inherit_id','=', parseInt(self.main_view_id)]]}).done(function(result) { _.each(result, function(res) { view_arch_list.push({"view_id": res.id, "arch": res.arch,"priority":res.priority}); self.inherit_view(arch_object, res); @@ -456,7 +456,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ var priority = _.detect(self.one_object['arch'], function(val) {return val.view_id == view_id;}); var arch = _.str.sprintf("\n\t ", val[1]); var vals = {'model': self.model, 'name': view_name, 'priority': priority.priority + 1, 'type': "form", 'arch': arch,'inherit_id':self.main_view_id}; - this.dataset.create(vals).then(function(id) { + this.dataset.create(vals).done(function(id) { var arch_to_obj = self.parse_xml(arch,id); obj.child_id.push(arch_to_obj[0]); self.one_object['parent_child_id'] = self.parent_child_list(self.one_object['main_object'],[]); @@ -539,7 +539,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ var value = _.has(_CHILDREN, element) ? element : _.str.include(html_tag, element)?"html_tag":false; property_to_check.push(value); }); - field_dataset.call( 'fields_get', []).then(function(result) { + field_dataset.call( 'fields_get', []).done(function(result) { var fields = _.keys(result); fields.push(" "),fields.sort(); self.on_add_node(property_to_check, fields); @@ -891,7 +891,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ var arch_val = self.get_object_by_id(this.one_object.clicked_tr_id,this.one_object['main_object'], []); this.edit_node_dialog.$el.append('
'); this.edit_widget = []; - self.ready = $.when(self.on_groups(properties)).then(function () { + self.ready = $.when(self.on_groups(properties)).done(function () { _PROPERTIES_ATTRIBUTES['groups']['selection'] = self.groups; var values = _.keys( instance.web.form.widgets.map); values.push(''); @@ -994,7 +994,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ table_selector.find("td[id^=]").attr("width","100px"); self.add_node_dialog.$el.find('#new_field').click(function() { model_data = new instance.web.DataSetSearch(self,'ir.model', null, null); - model_data.read_slice([], {domain: [['model','=', self.model]]}).then(function(result) { + model_data.read_slice([], {domain: [['model','=', self.model]]}).done(function(result) { self.render_new_field(result[0]); }); }); @@ -1012,7 +1012,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ } }; var action_manager = new instance.web.ActionManager(self); - $.when(action_manager.do_action(action)).then(function() { + $.when(action_manager.do_action(action)).done(function() { var controller = action_manager.dialog_widget.views['form'].controller; controller.on("on_button_cancel", self, function(){ action_manager.destroy();