From a65940e1c114df4829addef8391a61c61a31b280 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Sun, 5 Jun 2022 19:12:05 +0530 Subject: [PATCH 1/3] feat(UX): start typing on workspace to launch awesomebar --- .../public/js/frappe/views/workspace/workspace.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/frappe/public/js/frappe/views/workspace/workspace.js b/frappe/public/js/frappe/views/workspace/workspace.js index 31e4f27e1f..682aa608d9 100644 --- a/frappe/public/js/frappe/views/workspace/workspace.js +++ b/frappe/public/js/frappe/views/workspace/workspace.js @@ -37,6 +37,7 @@ frappe.views.Workspace = class Workspace { this.prepare_container(); this.setup_pages(); + this.register_awesomebar_shortcut(); } prepare_container() { @@ -1228,4 +1229,18 @@ frappe.views.Workspace = class Workspace { $('.desk-sidebar').removeClass('hidden'); $('.list-sidebar').find('.workspace-sidebar-skeleton').remove(); } + + register_awesomebar_shortcut() { + 'abcdefghijklmnopqrstuvwxyz'.split('').forEach(letter => { + const default_shortcut = { + action: (e) => { + $("#navbar-search").focus(); + return false; // don't prevent default = type the letter in awesomebar + }, + page: this.page, + }; + frappe.ui.keys.add_shortcut({shortcut: letter, ...default_shortcut}); + frappe.ui.keys.add_shortcut({shortcut: `shift+${letter}`, ...default_shortcut}); + }); + } }; From 08900463497a6277a3cb9539a91ac702632247c1 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Sun, 5 Jun 2022 19:12:39 +0530 Subject: [PATCH 2/3] fix: dont show KB shortcut with no description --- frappe/public/js/frappe/ui/keyboard.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/frappe/public/js/frappe/ui/keyboard.js b/frappe/public/js/frappe/ui/keyboard.js index 85ce248175..f7ba2dd9ae 100644 --- a/frappe/public/js/frappe/ui/keyboard.js +++ b/frappe/public/js/frappe/ui/keyboard.js @@ -81,6 +81,7 @@ frappe.ui.keys.show_keyboard_shortcut_dialog = () => { } let html = shortcuts .filter(s => s.condition ? s.condition() : true) + .filter(s => !!s.description) .map(shortcut => { let shortcut_label = shortcut.shortcut .split('+') @@ -94,6 +95,8 @@ frappe.ui.keys.show_keyboard_shortcut_dialog = () => { ${shortcut.description || ''} `; }).join(''); + if (!html) return ''; + html = `
${heading}
${html} From 3272852b12286f8b0f9c95b2d56f37b325c63c39 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Sun, 5 Jun 2022 19:22:39 +0530 Subject: [PATCH 3/3] fix(UX): blur awesomebar after selecting result --- frappe/public/js/frappe/ui/toolbar/awesome_bar.js | 1 + 1 file changed, 1 insertion(+) diff --git a/frappe/public/js/frappe/ui/toolbar/awesome_bar.js b/frappe/public/js/frappe/ui/toolbar/awesome_bar.js index 9ff8fe96f3..97cfb78d93 100644 --- a/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +++ b/frappe/public/js/frappe/ui/toolbar/awesome_bar.js @@ -106,6 +106,7 @@ frappe.search.AwesomeBar = class AwesomeBar { frappe.set_route(item.route); } $input.val(""); + $input.trigger('blur'); }); $input.on("awesomplete-selectcomplete", function(e) {