[IMP]create widget for add to dashboard.

bzr revid: vme@tinyerp.com-20120605091551-pecg3070vi94jxeu
This commit is contained in:
Vidhin Mehta (OpenERP) 2012-06-05 14:45:51 +05:30
parent 91fbf83390
commit f38d0f6736
2 changed files with 27 additions and 48 deletions

View File

@ -635,6 +635,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
(new instance.web.search.CustomFilters(this));
// add Advanced to this.inputs
(new instance.web.search.Advanced(this));
(new instance.web.search.AddToDashboard(this));
// build drawer
var drawer_started = $.when.apply(
@ -692,53 +693,6 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
select.val('');
}
},
on_add_to_dashboard: function() {
this.$element.find(".oe_search-view-filters-management")[0].selectedIndex = 0;
var self = this,
menu = instance.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);
instance.web.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 instance.web.CompoundContext(),
domain = new instance.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.getParent().action.id,
context_to_save: context,
domain: domain,
view_mode: self.getParent().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", '');
}
});
}}
]
});
},
/**
* Extract search data from the view's facets.
*
@ -1671,6 +1625,24 @@ instance.web.search.Filters = instance.web.search.Input.extend({
}));
}
});
instance.web.search.AddToDashboard = instance.web.search.Input.extend({
template: 'SearchView.addtodashboard',
_in_drawer: true,
init: function(){
var menu = instance.webclient.menu;
var menu_id = menu.$secondary_menus.find("li.oe_active a").data('menu')
this._super.apply(this, arguments);
},
start: function () {
var self = this;
this.$element.on('click', 'h4', this.proxy('show_option'))
},
show_option:function(){
self.$element.toggleClass('oe_opened');
console.log(this);
}
})
instance.web.search.Advanced = instance.web.search.Input.extend({
template: 'SearchView.advanced',
_in_drawer: true,

View File

@ -1264,7 +1264,6 @@
<optgroup label="-- Actions --">
<option value="advanced_filter">Add Advanced Filter</option>
<option value="save_filter">Save Filter</option>
<option value="add_to_dashboard">Add to Dashboard</option>
<option value="manage_filters">Manage Filters</option>
</optgroup>
</t>
@ -1423,6 +1422,14 @@
<div>
</div>
</div>
<div t-name="SearchView.addtodashboard" class="">
<h4>Add to Dashboard</h4>
<ul>
<select class="">
<t t-js="dict">console.warn('Unhandled widget', dict);</t>
</select>
</ul>
</div>
<div t-name="SearchView.advanced" class="oe_searchview_advanced">
<h4>Advanced Search</h4>
<form>