diff options
| author | Fabien Meghazi <fme@openerp.com> | 2011-11-23 22:53:56 +0100 |
|---|---|---|
| committer | Fabien Meghazi <fme@openerp.com> | 2011-11-23 22:53:56 +0100 |
| commit | 66d11b95f4ce2d7c8b7589c364ca4f5cc8679526 (patch) | |
| tree | 305910d0b70fcccef5e71ac51d2324536b56cdf2 /addons/web/static/src | |
| parent | 35edbcd90f9624ce66d5f6e7db30c0b25b7db6a9 (diff) | |
[ADD] Added possibility to add actions to dashboards from searchviews filters
bzr revid: fme@openerp.com-20111123215356-wspyu61u6ad1vois
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/search.js | 50 | ||||
| -rw-r--r-- | addons/web/static/src/xml/base.xml | 13 |
2 files changed, 62 insertions, 1 deletions
diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index f95801975b5..9fd5e6bb379 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -139,6 +139,7 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search } }, on_loaded: function(data) { + this.fields_view = data.fields_view; if (data.fields_view.type !== 'search' || data.fields_view.arch.tag !== 'search') { throw new Error(_.str.sprintf( @@ -241,6 +242,8 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search }} ] }); + } else if (val == "add_to_dashboard") { + this.on_add_to_dashboard(); } else { // manage_filters select.val("_filters"); this.do_action({ @@ -255,6 +258,53 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search }); } }, + on_add_to_dashboard: function() { + this.$element.find(".oe_search-view-filters-management")[0].selectedIndex = 0; + var self = this, + menu = openerp.webclient.menu, + $dialog = $(QWeb.render("SearchView.add_to_dashboard", { + dashboards : menu.data.data.children, + selected_menu_id : menu.$element.find('a.active').data('menu') + })); + $dialog.find('input').val(this.fields_view.name); + $dialog.dialog({ + modal: true, + title: _t("Add to Dashboard"), + buttons: [ + {text: _t("Cancel"), click: function() { + $(this).dialog("close"); + }}, + {text: _t("OK"), click: function() { + $(this).dialog("close"); + var menu_id = $(this).find("select").val(), + title = $(this).find("input").val(), + data = self.build_search_data(), + context = new openerp.web.CompoundContext(), + domain = new openerp.web.CompoundDomain(); + _.each(data.contexts, function(x) { + context.add(x); + }); + _.each(data.domains, function(x) { + domain.add(x); + }); + self.rpc('/web/searchview/add_to_dashboard', { + menu_id: menu_id, + action_id: self.widget_parent.action.id, + context_to_save: context, + domain: domain, + view_mode: self.widget_parent.active_view, + name: title + }, function(r) { + if (r === false) { + self.do_warn("Could not add filter to dashboard"); + } else { + self.do_notify("Filter added to dashboard", ''); + } + }); + }} + ] + }); + }, /** * Performs the search view collection of widget data. * diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 0ea257e7986..1fe4d028db4 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -1135,6 +1135,7 @@ </t> <option value="_actions">-- Actions --</option> <option value="save_filter">Save Filter</option> + <option value="add_to_dashboard">Add to Dashboard</option> <option value="manage_filters">Manage Filters</option> </t> <t t-name="SearchView.managed-filters.add"> @@ -1144,6 +1145,16 @@ <p>(Any existing filter with the same name will be replaced)</p> </div> </t> +<t t-name="SearchView.add_to_dashboard"> + <div class="oe_forms"> + <p><b>Select Dashboard to add this filter to:</b></p> + <select style="width: 100%; margin-right: 1em;"> + <option t-foreach="dashboards" t-as="menu" t-att-value="menu.id" t-att-selected="(menu.id == selected_menu_id) || undefined"><t t-esc="menu.name"/></option> + </select> + <p><b>Title of new Dashboard item:</b></p> + <input type="text" style="width: 100%; margin-right: 1em;"/> + </div> +</t> <t t-name="SearchView.render_lines"> <table class="oe-searchview-render-line" border="0" cellspacing="0" cellpadding="0" t-foreach="lines" t-as="line"> @@ -1711,4 +1722,4 @@ <t t-name="EmptyComponent"> <div></div> </t> -</templates>
\ No newline at end of file +</templates> |
