diff options
| author | Mohammed Shekha <msh@openerp.com> | 2017-01-30 18:41:57 +0530 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2017-02-09 10:45:27 +0100 |
| commit | 90c5430ab68b72eaa2e71aea823eddb8f5455283 (patch) | |
| tree | 4fdbfe66a87e74ab7bf5125cc88c7b847f97e866 /addons/web/static/src | |
| parent | 87d186d8d38cc932da37f75ee5fd95e861b4c19d (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.js | 20 | ||||
| -rw-r--r-- | addons/web/static/src/xml/base.xml | 3 |
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> |
