diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index b605f4ad4e1..d7272d8d83f 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -627,6 +627,7 @@ instance.web.Reload = function(parent, params) { hash = "#menu_id=" + menu_id; } var url = l.protocol + "//" + l.host + l.pathname + search + hash; + window.onerror = function() {}; window.location = url; }; instance.web.client_actions.add("reload", "instance.web.Reload"); @@ -881,6 +882,7 @@ instance.web.UserMenu = instance.web.Widget.extend({ on_action: function() { }, on_menu_logout: function() { + this.trigger('user_logout'); }, on_menu_settings: function() { var self = this; @@ -1039,7 +1041,7 @@ instance.web.WebClient = instance.web.Client.extend({ self.menu.on('menu_click', this, this.on_menu_action); self.user_menu = new instance.web.UserMenu(self); self.user_menu.replace(this.$el.find('.oe_user_menu_placeholder')); - self.user_menu.on_menu_logout.add(this.proxy('on_logout')); + self.user_menu.on('user_logout', self, this.proxy('on_logout')); self.user_menu.on_action.add(this.proxy('on_menu_action')); self.user_menu.do_update(); self.bind_hashchange(); diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index eda2c8a64f4..a3a61168f17 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -724,7 +724,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM 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({ result : new_id }); + return self.record_created(new_id); }).then(function() { return self.to_edit_mode(); }).then(function() { @@ -896,7 +896,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM var self = this; return this.reload_mutex.exec(function() { if (self.dataset.index == null) { - self.do_prev_view(); + self.trigger("previous_view"); return $.Deferred().reject().promise(); } if (self.dataset.index == null || self.dataset.index < 0) { @@ -1036,7 +1036,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM field_to_set, self.fields[field_to_set].get_value(), all_users, - false, + true, condition || false ]).then(function () { d.close(); }); }} @@ -1606,6 +1606,8 @@ instance.web.form.FormDialog = instance.web.Dialog.extend({ }); instance.web.form.compute_domain = function(expr, fields) { + if (! (expr instanceof Array)) + return !! expr; var stack = []; for (var i = expr.length - 1; i >= 0; i--) { var ex = expr[i]; @@ -2818,7 +2820,7 @@ instance.web.form.CompletionFieldMixin = { self.build_domain(), new instance.web.CompoundContext(self.build_context(), context || {}) ); - pop.on_select_elements.add(function(element_ids) { + pop.on("select_elements",self,function(element_ids) { self.add_id(element_ids[0]); self.focus(); }); @@ -3540,7 +3542,7 @@ instance.web.form.One2ManyViewManager = instance.web.ViewManager.extend({ form_view_options: {'not_interactible_on_create':true}, readonly: self.o2m.get("effective_readonly") }); - pop.on_select_elements.add_last(function() { + pop.on("select_elements", self, function() { self.o2m.reload_current_view(); }); }, @@ -3626,7 +3628,7 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({ self.o2m.build_domain(), self.o2m.build_context() ); - pop.on_select_elements.add_last(function() { + pop.on("select_elements", self, function() { self.o2m.reload_current_view(); }); } @@ -4055,7 +4057,7 @@ instance.web.form.Many2ManyListView = instance.web.ListView.extend(/** @lends in this.m2m_field.build_context() ); var self = this; - pop.on_select_elements.add(function(element_ids) { + pop.on("select_elements", self, function(element_ids) { _.each(element_ids, function(one_id) { if(! _.detect(self.dataset.ids, function(x) {return x == one_id;})) { self.dataset.set_ids([].concat(self.dataset.ids, [one_id])); @@ -4170,7 +4172,7 @@ instance.web.form.FieldMany2ManyKanban = instance.web.form.AbstractField.extend( new instance.web.CompoundDomain(this.build_domain(), ["!", ["id", "in", this.dataset.ids]]), this.build_context() ); - pop.on_select_elements.add(function(element_ids) { + pop.on("select_elements", self, function(element_ids) { _.each(element_ids, function(one_id) { if(! _.detect(self.dataset.ids, function(x) {return x == one_id;})) { self.dataset.set_ids([].concat(self.dataset.ids, [one_id])); @@ -4390,11 +4392,12 @@ instance.web.form.AbstractFormPopup = instance.web.Widget.extend({ self.view_form.do_show(); }); }, - on_select_elements: function(element_ids) { + elements_selected: function(element_ids) { + this.trigger("select_elements",element_ids); }, check_exit: function(no_destroy) { if (this.created_elements.length > 0) { - this.on_select_elements(this.created_elements); + this.elements_selected(this.created_elements); this.created_elements = []; } this.destroy(); @@ -4505,7 +4508,7 @@ instance.web.form.SelectCreatePopup = instance.web.form.AbstractFormPopup.extend }); var $sbutton = self.$buttonpane.find(".oe_selectcreatepopup-search-select"); $sbutton.click(function() { - self.on_select_elements(self.selected_ids); + self.elements_selected(self.selected_ids); self.destroy(); }); }); @@ -4547,7 +4550,7 @@ instance.web.form.SelectCreateListView = instance.web.ListView.extend({ this.popup.new_object(); }, select_record: function(index) { - this.popup.on_select_elements([this.dataset.ids[index]]); + this.popup.elements_selected([this.dataset.ids[index]]); this.popup.destroy(); }, do_select: function(ids, records) { @@ -4575,6 +4578,7 @@ instance.web.form.FieldReference = instance.web.form.AbstractField.extend(instan destroy_content: function() { if (this.fm) { this.fm.destroy(); + this.fm = undefined; } }, initialize_content: function() { @@ -4596,9 +4600,7 @@ instance.web.form.FieldReference = instance.web.form.AbstractField.extend(instan modifiers: JSON.stringify({readonly: this.get('effective_readonly')}), }}); this.selection.on("change:value", this, this.on_selection_changed); - this.selection.setElement(this.$(".oe_form_view_reference_selection")); - this.selection.renderElement(); - this.selection.start(); + this.selection.appendTo(this.$(".oe_form_view_reference_selection")); this.selection .on('focused', null, function () {self.trigger('focused')}) .on('blurred', null, function () {self.trigger('blurred')}); @@ -4608,9 +4610,7 @@ instance.web.form.FieldReference = instance.web.form.AbstractField.extend(instan modifiers: JSON.stringify({readonly: this.get('effective_readonly')}), }}); this.m2o.on("change:value", this, this.data_changed); - this.m2o.setElement(this.$(".oe_form_view_reference_m2o")); - this.m2o.renderElement(); - this.m2o.start(); + this.m2o.appendTo(this.$(".oe_form_view_reference_m2o")); this.m2o .on('focused', null, function () {self.trigger('focused')}) .on('blurred', null, function () {self.trigger('blurred')}); diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index f985e5f6dc8..5f90c4215f7 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -525,8 +525,8 @@ instance.web.ViewManager = instance.web.Widget.extend({ controller.set_embedded_view(view.embedded_view); } controller.on('switch_mode', self, this.switch_mode); - - controller.do_prev_view.add_last(this.on_prev_view); + controller.on('previous_view', self, this.prev_view); + var container = this.$el.find(".oe_view_manager_view_" + view_type); var view_promise = controller.appendTo(container); this.views[view_type].controller = controller; @@ -602,7 +602,7 @@ instance.web.ViewManager = instance.web.Widget.extend({ * @param {String} [options.default=null] view to switch to if no previous view * @returns {$.Deferred} switching end signal */ - on_prev_view: function (options) { + prev_view: function (options) { options = options || {}; var current_view = this.views_history.pop(); var previous_view = this.views_history[this.views_history.length - 1] || options['default']; @@ -1266,8 +1266,7 @@ instance.web.View = instance.web.Widget.extend({ * @param {Boolean} [options.created=false] resource was created * @param {String} [options.default=null] view to switch to if no previous view */ - do_prev_view: function (options) { - }, + do_search: function(view) { }, on_sidebar_export: function() { diff --git a/addons/web_diagram/static/src/js/diagram.js b/addons/web_diagram/static/src/js/diagram.js index 9fd74853c3c..5b699fa7870 100644 --- a/addons/web_diagram/static/src/js/diagram.js +++ b/addons/web_diagram/static/src/js/diagram.js @@ -273,7 +273,7 @@ instance.web.DiagramView = instance.web.View.extend({ self.dataset.domain, self.context || self.dataset.context ); - pop.on_select_elements.add_last(function(element_ids) { + pop.on("select_elements", self, function(element_ids) { self.dataset.read_index(_.keys(self.fields_view.fields)).pipe(self.on_diagram_loaded); }); @@ -325,8 +325,7 @@ instance.web.DiagramView = instance.web.View.extend({ this.dataset.domain, this.context || this.dataset.context ); - - pop.on_select_elements.add_last(function(element_ids) { + pop.on("select_elements", self, function(element_ids) { self.dataset.read_index(_.keys(self.fields_view.fields)).pipe(self.on_diagram_loaded); }); // We want to destroy the dummy edge after a creation cancel. This destroys it even if we save the changes. diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index 66d699c2cde..32bfea8e212 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -222,7 +222,7 @@ instance.web_gantt.GanttView = instance.web.View.extend({ on_task_create: function() { var self = this; var pop = new instance.web.form.SelectCreatePopup(this); - pop.on_select_elements.add_last(function() { + pop.on("select_elements", self, function() { self.reload(); }); pop.select_element( diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 537325394e9..37aea87e50e 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -1067,7 +1067,7 @@ instance.web_kanban.QuickCreate = instance.web.Widget.extend({ [], {"default_name": self.$input.val()} ); - pop.on_select_elements.add(function(element_ids) { + pop.on("select_elements", self, function(element_ids) { self.$input.val(""); self.trigger('added', element_ids[0]); });