summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorMohammed Shekha <msh@openerp.com>2017-01-30 18:41:57 +0530
committerYannick Tivisse <yti@odoo.com>2017-02-09 10:45:27 +0100
commit90c5430ab68b72eaa2e71aea823eddb8f5455283 (patch)
tree4fdbfe66a87e74ab7bf5125cc88c7b847f97e866 /addons/web/static/src
parent87d186d8d38cc932da37f75ee5fd95e861b4c19d (diff)
[IMP] web: Separate personal and shared favorite filters in search view
Purpose ======= When there are lots of shared filters then its difficult to differentiate personal and shared filters Specification ========== - Show all personal filters first as user will prefer his own filters to come first in list - Show all shared filters after personal filter in list - Add separator line between personal and shared filter
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/views/search_menus.js20
-rw-r--r--addons/web/static/src/xml/base.xml3
2 files changed, 17 insertions, 6 deletions
diff --git a/addons/web/static/src/js/views/search_menus.js b/addons/web/static/src/js/views/search_menus.js
index 10ab44ef30c..0b28d13fea2 100644
--- a/addons/web/static/src/js/views/search_menus.js
+++ b/addons/web/static/src/js/views/search_menus.js
@@ -45,7 +45,8 @@ return Widget.extend({
this.$save_search = this.$('.o_save_search');
this.$save_name = this.$('.o_save_name');
this.$inputs = this.$save_name.find('input');
- this.$divider = this.$('.divider');
+ this.$user_divider = this.$('.divider.user_filter');
+ this.$shared_divider = this.$('.divider.shared_filter');
this.$inputs.eq(0).val(this.searchview.get_title());
var $shared_filter = this.$inputs.eq(1),
$default_filter = this.$inputs.eq(2);
@@ -204,7 +205,11 @@ return Widget.extend({
var self = this;
var key = this.key_for(filter);
- this.$divider.show();
+ if (filter.user_id) {
+ this.$user_divider.show();
+ } else {
+ this.$shared_divider.show();
+ }
if (!(key in this.$filters)) {
var $filter = $('<li>')
.addClass(filter.user_id ? 'o-searchview-custom-private'
@@ -219,7 +224,7 @@ return Widget.extend({
},
},
}))
- .insertBefore(this.$divider);
+ .insertBefore(filter.user_id ? this.$user_divider : this.$shared_divider);
this.$filters[key] = $filter;
}
this.$filters[key].unbind('click').click(function () {
@@ -252,8 +257,13 @@ return Widget.extend({
$filter.remove();
delete self.$filters[key];
delete self.filters[key];
- if (_.isEmpty(self.filters)) {
- self.$divider.hide();
+ var has_user_filter = _.find(self.filters, function(filter) { return filter.user_id; });
+ var has_shared_filer = _.find(self.filters, function(filter) { return !filter.user_id; });
+ if (!has_user_filter) {
+ self.$user_divider.hide();
+ }
+ if (!has_shared_filer) {
+ self.$shared_divider.hide();
}
});
},
diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml
index 015e4fe7b79..05548db32ad 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -1216,7 +1216,8 @@
<span class="fa fa-star"/> Favorites <span class="caret"/>
</button>
<ul class="dropdown-menu o_favorites_menu" role="menu">
- <li class="divider"/>
+ <li class="divider user_filter"/>
+ <li class="divider shared_filter"/>
<li class="o_save_search o_closed_menu">
<a href="#">Save current search</a>
</li>