diff --git a/frappe/public/js/frappe/list/base_list.js b/frappe/public/js/frappe/list/base_list.js index 9141bcc525..2769d70433 100644 --- a/frappe/public/js/frappe/list/base_list.js +++ b/frappe/public/js/frappe/list/base_list.js @@ -551,12 +551,12 @@ class FilterArea { const fields_dict = this.list_view.page.fields_dict; if (fieldname in fields_dict) { - fields_dict[fieldname].set_value(''); - return; + return fields_dict[fieldname].set_value(''); } let filter = this.filter_list.get_filter(fieldname); if (filter) filter.remove(); + return Promise.resolve(); } clear(refresh = true) { diff --git a/frappe/public/js/frappe/list/list_sidebar.js b/frappe/public/js/frappe/list/list_sidebar.js index e8484b2de3..fbfcd68fee 100644 --- a/frappe/public/js/frappe/list/list_sidebar.js +++ b/frappe/public/js/frappe/list/list_sidebar.js @@ -22,7 +22,7 @@ frappe.views.ListSidebar = class ListSidebar { this.sidebar = $('
') .html(sidebar_content) .appendTo(this.page.sidebar.empty()); - + this.setup_reports(); this.setup_list_filter(); this.setup_views(); @@ -253,10 +253,16 @@ frappe.views.ListSidebar = class ListSidebar { let $elements = dropdown.find('li'); $dropdown_search.on('keyup',()=> { let text_filter = $search_input.val().toLowerCase(); + // Replace trailing and leading spaces + text_filter = text_filter.replace(/^\s+|\s+$/g, ''); let text; for (var i = 0; i < $elements.length; i++) { - text = $elements.eq(i).find(text_class).text(); - if (text.toLowerCase().indexOf(text_filter) > -1) { + let text_element = $elements.eq(i).find(text_class); + + let text = text_element.text().toLowerCase(); + // Search data-name since label for current user is 'Me' + let name = text_element.data('name').toLowerCase(); + if (text.includes(text_filter) || name.includes(text_filter)) { $elements.eq(i).css('display',''); } else { $elements.eq(i).css('display','none'); diff --git a/frappe/public/js/frappe/list/list_sidebar_group_by.js b/frappe/public/js/frappe/list/list_sidebar_group_by.js index 288f95b511..8f35781a04 100644 --- a/frappe/public/js/frappe/list/list_sidebar_group_by.js +++ b/frappe/public/js/frappe/list/list_sidebar_group_by.js @@ -19,10 +19,10 @@ frappe.views.ListGroupBy = class ListGroupBy { make_group_by_fields_modal() { let d = new frappe.ui.Dialog ({ - title: __("Add Filter By"), + title: __("Select Filters"), fields: this.get_group_by_dropdown_fields() }); - d.set_primary_action("Add", ({ group_by_fields }) => { + d.set_primary_action("Save", ({ group_by_fields }) => { frappe.model.user_settings.save(this.doctype, 'group_by_fields', group_by_fields || null); this.group_by_fields = group_by_fields ? ['assigned_to', ...group_by_fields] : ['assigned_to']; this.render_group_by_items(); @@ -110,11 +110,18 @@ frappe.views.ListGroupBy = class ListGroupBy { } get_group_by_count(field) { + let current_filters = this.list_view.get_filters_for_args(); + + // remove filter of the current field + current_filters = current_filters.filter((f_arr) => !f_arr.includes(field === 'assigned_to' ? '_assign': field)); + let args = { doctype: this.doctype, - current_filters: this.list_view.get_filters_for_args(), + current_filters: current_filters, field: field, }; + + return frappe.call('frappe.desk.listview.get_group_by_count', args).then((r) => { let field_counts = r.message || []; field_counts = field_counts.filter(f => f.count !== 0); @@ -135,7 +142,7 @@ frappe.views.ListGroupBy = class ListGroupBy { return `