summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2011-11-23 22:53:56 +0100
committerFabien Meghazi <fme@openerp.com>2011-11-23 22:53:56 +0100
commit66d11b95f4ce2d7c8b7589c364ca4f5cc8679526 (patch)
tree305910d0b70fcccef5e71ac51d2324536b56cdf2 /addons/web/static/src
parent35edbcd90f9624ce66d5f6e7db30c0b25b7db6a9 (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.js50
-rw-r--r--addons/web/static/src/xml/base.xml13
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>