diff --git a/cypress/support/commands.js b/cypress/support/commands.js index 416d782ffe..1964b96d70 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -312,7 +312,6 @@ Cypress.Commands.add('add_filter', () => { cy.get('.filter-section .filter-button').click(); cy.wait(300); cy.get('.filter-popover').should('exist'); - cy.get('.filter-popover').find('.add-filter').click(); }); Cypress.Commands.add('clear_filters', () => { diff --git a/frappe/public/js/frappe/form/controls/link.js b/frappe/public/js/frappe/form/controls/link.js index 670bb8b3e0..e0a72ed8c1 100644 --- a/frappe/public/js/frappe/form/controls/link.js +++ b/frappe/public/js/frappe/form/controls/link.js @@ -136,7 +136,7 @@ frappe.ui.form.ControlLink = frappe.ui.form.ControlData.extend({ return $('
  • ') .data('item.autocomplete', d) .prop('aria-selected', 'false') - .html('

    ' + html + '

    ') + .html(`

    ${html}

    `) .get(0); }, sort: function() { diff --git a/frappe/public/js/frappe/list/list_view_select.js b/frappe/public/js/frappe/list/list_view_select.js index 0741108176..58753b7550 100644 --- a/frappe/public/js/frappe/list/list_view_select.js +++ b/frappe/public/js/frappe/list/list_view_select.js @@ -51,10 +51,15 @@ frappe.views.ListViewSelect = class ListViewSelect { action: () => this.set_route("report"), current_view_handler: () => { const reports = this.get_reports(); - this.setup_dropdown_in_sidebar("Report", reports, { - label: __("Report Builder"), - action: () => this.set_route("report") - }); + let default_action = {}; + // Only add action if current route is not report builder + if (frappe.get_route().length > 3) { + default_action = { + label: __("Report Builder"), + action: () => this.set_route("report") + }; + } + this.setup_dropdown_in_sidebar("Report", reports, default_action); } }, Dashboard: { @@ -147,8 +152,9 @@ frappe.views.ListViewSelect = class ListViewSelect { ${__("No {} Found", [view])} `; } else { + const page_name = this.get_page_name(); items.map(item => { - if (item.name == this.get_page_name()) { + if (item.name.toLowerCase() == page_name.toLowerCase()) { placeholder = item.name; } html += `
  • ${ diff --git a/frappe/public/js/frappe/ui/filters/filter.js b/frappe/public/js/frappe/ui/filters/filter.js index 9bca44a916..945115af82 100644 --- a/frappe/public/js/frappe/ui/filters/filter.js +++ b/frappe/public/js/frappe/ui/filters/filter.js @@ -214,6 +214,7 @@ frappe.ui.Filter = class { df.read_only = 0; df.hidden = 0; df.is_filter = true; + delete df.hidden_due_to_dependency; let c = condition ? condition : this.utils.get_default_condition(df); this.set_condition(c); diff --git a/frappe/public/js/frappe/ui/filters/filter_list.js b/frappe/public/js/frappe/ui/filters/filter_list.js index 7f79f8511a..0b2218ceda 100644 --- a/frappe/public/js/frappe/ui/filters/filter_list.js +++ b/frappe/public/js/frappe/ui/filters/filter_list.js @@ -74,8 +74,8 @@ frappe.ui.FilterGroup = class { } this.set_filter_events(); } - - hide_empty_filters && this.toggle_empty_filters(false); + this.toggle_empty_filters(false); + !hide_empty_filters && this.add_filter(this.doctype, 'name'); }); this.filter_button.on('hidden.bs.popover', () => { @@ -286,7 +286,9 @@ frappe.ui.FilterGroup = class { return $(`
    -
    ${__('No filters selected')}
    +
    + ${__('No filters selected')} +

    diff --git a/frappe/public/js/frappe/views/kanban/kanban_board.js b/frappe/public/js/frappe/views/kanban/kanban_board.js index c6173b5a65..8711deb4b4 100644 --- a/frappe/public/js/frappe/views/kanban/kanban_board.js +++ b/frappe/public/js/frappe/views/kanban/kanban_board.js @@ -704,6 +704,7 @@ frappe.provide("frappe.views"); name: card.name, title: card[state.card_meta.title_field.fieldname], creation: moment(card.creation).format('MMM DD, YYYY'), + _liked_by: card._liked_by, tags: card._user_tags, column: card[state.board.field_name], assigned_list: card.assigned_list || assigned_list, diff --git a/frappe/public/scss/desk/datepicker.scss b/frappe/public/scss/desk/datepicker.scss index abe8b59b43..8e709a130e 100644 --- a/frappe/public/scss/desk/datepicker.scss +++ b/frappe/public/scss/desk/datepicker.scss @@ -1,4 +1,3 @@ -@import "variables.scss"; @import "~air-datepicker/dist/css/datepicker.min.css"; .datepicker { diff --git a/frappe/public/scss/desk/filters.scss b/frappe/public/scss/desk/filters.scss index 936dee5a59..3680adcf5c 100644 --- a/frappe/public/scss/desk/filters.scss +++ b/frappe/public/scss/desk/filters.scss @@ -29,6 +29,18 @@ margin-bottom: 0; } } + + .awesomplete { + ul[role="listbox"] { + min-width: 100%; + width: auto; + + li { + max-width: 300px; + } + } + } + } .empty-filters { diff --git a/frappe/public/scss/desk/global.scss b/frappe/public/scss/desk/global.scss index 5fdc52cd3c..7c1ddde68e 100644 --- a/frappe/public/scss/desk/global.scss +++ b/frappe/public/scss/desk/global.scss @@ -50,13 +50,6 @@ a:focus, outline: 0; } -a.disabled, -a.disabled:hover { - color: var(--text-muted); - cursor: default; - text-decoration: none; -} - a.grey, .sidebar-section a, .control-value a, @@ -75,6 +68,13 @@ a.grey:focus, text-decoration: underline; } +a.disabled, +a.disabled:hover { + color: var(--text-muted); + cursor: default; + text-decoration: none; +} + a.text-muted, a.text-extra-muted { text-decoration: none; diff --git a/frappe/public/scss/desk/kanban.scss b/frappe/public/scss/desk/kanban.scss index 9345d61f1f..d879160e21 100644 --- a/frappe/public/scss/desk/kanban.scss +++ b/frappe/public/scss/desk/kanban.scss @@ -32,7 +32,7 @@ border-radius: var(--border-radius); padding: var(--padding-md); min-height: calc(100vh - 250px); - max-height: calc(75vh - 10px); + max-height: calc(100vh - (var(--navbar-height) + var(--page-bottom-margin) + 80px)); .add-card { @include flex(flex, center, center, null); @@ -172,6 +172,10 @@ text-decoration: none; } } + + &:last-child .kanban-card { + margin-bottom: var(--margin-xl); + } } .kanban-card:hover,