From 789c74debd255d7e37b4c8d89f0df9990ede6bd4 Mon Sep 17 00:00:00 2001 From: hexed0ut <102050935+hexed0ut@users.noreply.github.com> Date: Wed, 5 Nov 2025 23:11:03 +0530 Subject: [PATCH 1/3] fix(tags): Fix autocomplete to automatically select the best match Resolves #33747 --- frappe/public/js/frappe/ui/tag_editor.js | 15 +++++++++++++++ frappe/public/js/frappe/ui/tags.js | 10 +++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/frappe/public/js/frappe/ui/tag_editor.js b/frappe/public/js/frappe/ui/tag_editor.js index 059d8bb48e..8473914aa8 100644 --- a/frappe/public/js/frappe/ui/tag_editor.js +++ b/frappe/public/js/frappe/ui/tag_editor.js @@ -99,6 +99,21 @@ frappe.ui.TagEditor = class TagEditor { $input.trigger("input"); } }); + $input.on("enter-pressed-in-addtag", function (e) { + var value = e.target.value; + frappe.call({ + method: "frappe.desk.doctype.tag.tag.get_tags", + args: { + doctype: me.frm.doctype, + txt: value.toLowerCase(), + }, + callback: function (r) { + // Updates input to suggestion value (if any) on + if (r.message.length) $input.val(r.message[0]) + $input.trigger("input-selected"); + }, + }); + }); } get_args(tag) { return { diff --git a/frappe/public/js/frappe/ui/tags.js b/frappe/public/js/frappe/ui/tags.js index 7def9272b6..3c5dd50beb 100644 --- a/frappe/public/js/frappe/ui/tags.js +++ b/frappe/public/js/frappe/ui/tags.js @@ -38,10 +38,18 @@ frappe.ui.Tags = class { }; this.$input.keypress((e) => { - if (e.which == 13 || e.keyCode == 13) select_tag(); + if (e.which == 13 || e.keyCode == 13) { + // Triggers event when is pressed + this.$input.trigger("enter-pressed-in-addtag"); + } }); this.$input.focusout(select_tag); + this.$input.on("input-selected", () => { + // Adds tag if a input is selected + select_tag(); + }); + this.$input.on("blur", () => { this.deactivate(); }); From 009e117f4d08aa3151fb78f6444167bf9130f0d3 Mon Sep 17 00:00:00 2001 From: Abesh Roy <102050935+hexed0ut@users.noreply.github.com> Date: Thu, 13 Nov 2025 18:55:49 +0530 Subject: [PATCH 2/3] chore(tags): Add semi-colon --- frappe/public/js/frappe/ui/tag_editor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/public/js/frappe/ui/tag_editor.js b/frappe/public/js/frappe/ui/tag_editor.js index 8473914aa8..7fb42caa51 100644 --- a/frappe/public/js/frappe/ui/tag_editor.js +++ b/frappe/public/js/frappe/ui/tag_editor.js @@ -109,7 +109,7 @@ frappe.ui.TagEditor = class TagEditor { }, callback: function (r) { // Updates input to suggestion value (if any) on - if (r.message.length) $input.val(r.message[0]) + if (r.message.length) $input.val(r.message[0]); $input.trigger("input-selected"); }, }); From 4ff1256fe1f2aba281d21c8bb36ecc09f0273909 Mon Sep 17 00:00:00 2001 From: hexed0ut <102050935+hexed0ut@users.noreply.github.com> Date: Tue, 2 Dec 2025 09:54:44 +0530 Subject: [PATCH 3/3] fix(tags): Close dropdown on tag selection Context - https://github.com/frappe/frappe/pull/34625#pullrequestreview-3521774645 --- frappe/public/js/frappe/ui/tags.js | 1 + 1 file changed, 1 insertion(+) diff --git a/frappe/public/js/frappe/ui/tags.js b/frappe/public/js/frappe/ui/tags.js index 3c5dd50beb..6795f04cc3 100644 --- a/frappe/public/js/frappe/ui/tags.js +++ b/frappe/public/js/frappe/ui/tags.js @@ -48,6 +48,7 @@ frappe.ui.Tags = class { this.$input.on("input-selected", () => { // Adds tag if a input is selected select_tag(); + this.deactivate(); }); this.$input.on("blur", () => {