diff --git a/frappe/public/js/frappe/views/kanban/kanban_board.bundle.js b/frappe/public/js/frappe/views/kanban/kanban_board.bundle.js index fc93f2a910..703f49f205 100644 --- a/frappe/public/js/frappe/views/kanban/kanban_board.bundle.js +++ b/frappe/public/js/frappe/views/kanban/kanban_board.bundle.js @@ -328,9 +328,11 @@ frappe.provide("frappe.views"); }, show_empty_state); if (frappe.model.can_write(store.state.doctype)) { - // Check for reference doctype access before initiating - // non-deliberate action + // Check for reference doctype access before trying to modify it's value store.dispatch("update_order"); + } else { + // Render columns without state change + make_columns(); } } diff --git a/frappe/public/js/frappe/views/kanban/kanban_view.js b/frappe/public/js/frappe/views/kanban/kanban_view.js index 7ba15d7270..fb15131394 100644 --- a/frappe/public/js/frappe/views/kanban/kanban_view.js +++ b/frappe/public/js/frappe/views/kanban/kanban_view.js @@ -45,6 +45,16 @@ frappe.views.KanbanView = class KanbanView extends frappe.views.ListView { }); } + init() { + return super.init().then(() => { + let menu_length = this.page.menu.find(".dropdown-item").length; + if (menu_length === 1) { + // Only 'Refresh' (hidden) is present (always), dropdown is visibly empty + this.page.hide_menu(); + } + }); + } + setup_defaults() { return super.setup_defaults().then(() => { let get_board_name = () => {