From c9137a19e1ef994780b1cd4ddb6adb15538efcad Mon Sep 17 00:00:00 2001 From: sokumon Date: Fri, 5 Dec 2025 10:55:45 +0530 Subject: [PATCH 1/5] fix: translate desktop icons --- frappe/desk/page/desktop/desktop.js | 1 + 1 file changed, 1 insertion(+) diff --git a/frappe/desk/page/desktop/desktop.js b/frappe/desk/page/desktop/desktop.js index 880e1fafb8..4d6eddc2fc 100644 --- a/frappe/desk/page/desktop/desktop.js +++ b/frappe/desk/page/desktop/desktop.js @@ -509,6 +509,7 @@ class DesktopIconGrid { class DesktopIcon { constructor(icon, in_folder) { this.icon_data = icon; + this.icon_data.label = __(this.icon_data.label); this.icon_title = this.icon_data.label; this.icon_subtitle = ""; this.icon_type = this.icon_data.icon_type; From a5942c54f9caf933b460c0af3513c6f6802f9d28 Mon Sep 17 00:00:00 2001 From: sokumon Date: Fri, 5 Dec 2025 12:49:06 +0530 Subject: [PATCH 2/5] fix: icon recordering --- frappe/desk/page/desktop/desktop.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/frappe/desk/page/desktop/desktop.js b/frappe/desk/page/desktop/desktop.js index 4d6eddc2fc..20f2ffd135 100644 --- a/frappe/desk/page/desktop/desktop.js +++ b/frappe/desk/page/desktop/desktop.js @@ -285,7 +285,12 @@ class DesktopIconGrid { prepare() { this.total_pages = 1; - this.icons_data = this.icons_data.sort((a, b) => a.name.localeCompare(b.name)); + this.icons_data = this.icons_data.sort((a, b) => { + if (a.idx === b.idx) { + return a.label.localeCompare(b.label); // sort by label if idx is the same + } + return a.idx - b.idx; // sort by idx + }); this.icons_data_by_page = this.icons_data || this.split_data(this.icons_data, this.page_size.total()); } @@ -465,7 +470,7 @@ class DesktopIconGrid { if (evt.to.parentElement == evt.from.parentElement) { let reordered_icons = me.sortable.toArray(); let filters = { - parent_icon: me.parent_icon?.icon_data.label || null, + parent_icon: me.parent_icon?.icon_data.label || "" || null, }; me.reorder_icons(reordered_icons, filters); me.parent_icon?.render_folder_thumbnail(); @@ -495,11 +500,12 @@ class DesktopIconGrid { } reorder_icons(reordered_icons, filters) { reordered_icons.forEach((d, idx) => { - let icon = get_desktop_icon_by_label(d, filters); + let icon = get_desktop_icon_by_label(d); if (icon) { icon.idx = idx; } }); + frappe.boot.desktop_icons.sort((a, b) => a.idx - b.idx); } add_to_main_screen(title) { let icon = get_desktop_icon_by_label(title); From 5b76cb0671a37860eb93ce0523687a7f7ac20b34 Mon Sep 17 00:00:00 2001 From: sokumon Date: Fri, 5 Dec 2025 13:37:37 +0530 Subject: [PATCH 3/5] fix: condition in sidebar dropdown menu --- frappe/public/js/frappe/ui/sidebar/sidebar_header.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/public/js/frappe/ui/sidebar/sidebar_header.js b/frappe/public/js/frappe/ui/sidebar/sidebar_header.js index 371bfafd5c..8efc2f62bb 100644 --- a/frappe/public/js/frappe/ui/sidebar/sidebar_header.js +++ b/frappe/public/js/frappe/ui/sidebar/sidebar_header.js @@ -12,7 +12,7 @@ frappe.ui.SidebarHeader = class SidebarHeader { label: "Workspaces", icon: "wallpaper", condition: function () { - return me.sibling_workspaces.length > 0; + return me.sibling_workspaces && me.sibling_workspaces.length > 0; }, items: this.sibling_workspaces, }, From a9628dc3ed110ce3259242ce3e8323cf3ff65650 Mon Sep 17 00:00:00 2001 From: sokumon Date: Fri, 5 Dec 2025 17:18:38 +0530 Subject: [PATCH 4/5] fix: use force true --- cypress/integration/form.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/integration/form.js b/cypress/integration/form.js index d83c304c71..6e82d9aed1 100644 --- a/cypress/integration/form.js +++ b/cypress/integration/form.js @@ -12,7 +12,7 @@ const jump_to_field = (field_label) => { }; const type_value = (value) => { - cy.focused().clear().type(value).type("{esc}"); + cy.focused().clear({ force: true }).type(value).type("{esc}"); }; context("Form", () => { From 0f732d506e53678cdb78bddf2944a294e7bee43c Mon Sep 17 00:00:00 2001 From: sokumon Date: Sat, 6 Dec 2025 14:32:10 +0530 Subject: [PATCH 5/5] fix: remove force true in test --- cypress/integration/form.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/integration/form.js b/cypress/integration/form.js index 6e82d9aed1..d83c304c71 100644 --- a/cypress/integration/form.js +++ b/cypress/integration/form.js @@ -12,7 +12,7 @@ const jump_to_field = (field_label) => { }; const type_value = (value) => { - cy.focused().clear({ force: true }).type(value).type("{esc}"); + cy.focused().clear().type(value).type("{esc}"); }; context("Form", () => {