diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index f7eff8cddd5..8cc9b807db1 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -1630,16 +1630,54 @@ instance.web.search.AddToDashboard = instance.web.search.Input.extend({ _in_drawer: true, init: function(){ var menu = instance.webclient.menu; - var menu_id = menu.$secondary_menus.find("li.oe_active a").data('menu') + console.log("menu",menu); + this.menu_data = _.map(menu.data.data.children, + function(menu){ + console.log(menu); + var obj = {}; obj["id"] = menu.id; obj["name"] = menu.name; return obj; + //support after update of _.underscore.js lib 1.3.3 + //return _.pick(menu, 'id', 'name'); + }); + this.selected_menu_id = menu.$element.find('a.oe_active').data('menu'); this._super.apply(this, arguments); }, start: function () { var self = this; - this.$element.on('click', 'h4', this.proxy('show_option')) + this.$element + .on('click', 'h4', this.proxy('show_option')) + .on('submit', 'form', function (e) {e.preventDefault(); self.add_dashboard();}); + this.$element.find('.searchview_extended_delete_prop').click(function () {self.$element.toggleClass('oe_opened');}); + }, + add_dashboard:function(){ + this.$element.toggleClass('oe_opened'); + var menu_id = this.$element.find("select").val(); + var ds_name = this.$element.find("input").val(); + data = this.getParent().build_search_data(); + context = new instance.web.CompoundContext(), + domain = new instance.web.CompoundDomain(); + _.each(data.contexts, function(x) {context.add(x);}); + _.each(data.domains, function(x) {domain.add(x);}); + this.rpc('/web/searchview/add_to_dashboard', { + menu_id: menu_id, + action_id: this.view.getParent().action.id, + context_to_save: context, + domain: domain, + view_mode: this.view.getParent().active_view, + name: ds_name + }, function(r) { + if (r === false) { + self.do_warn("Could not add filter to dashboard"); + } else { + self.do_notify("Filter added to dashboard", ''); + } + }); }, show_option:function(){ - self.$element.toggleClass('oe_opened'); - console.log(this); + this.$element.toggleClass('oe_opened'); + if (! this.$element.hasClass('oe_opened')) + return; + var action_id = this.view.getParent().action.id; + this.$element.find("input").val(this.getParent().fields_view.name ); } }) diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 2ca3aac9680..060bf29b36b 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -1274,16 +1274,6 @@
(Any existing filter with the same name will be replaced)
-Select Dashboard to add this filter to:
- -Title of new Dashboard item:
- -