From c2383f95e91ac45e4fc6d4d72dbaa492b22a2e8c Mon Sep 17 00:00:00 2001 From: "deb.monish" Date: Fri, 12 Jan 2018 16:20:05 +0530 Subject: [PATCH] CRM-21613: Search issues on 'Manage Tag' page --- templates/CRM/Tag/Page/Tag.tpl | 45 +++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/templates/CRM/Tag/Page/Tag.tpl b/templates/CRM/Tag/Page/Tag.tpl index bafa705491..e5348d112b 100644 --- a/templates/CRM/Tag/Page/Tag.tpl +++ b/templates/CRM/Tag/Page/Tag.tpl @@ -245,7 +245,7 @@ } $panel - .append('
') + .append('
') .on('change', 'input[type=color]', changeColor) .on('change', 'input[name=used_for]', changeUsedFor) .on('click', '.clear-tag-selection', clearSelection) @@ -275,6 +275,9 @@ $('.tag-tree', $panel) .on('changed.jstree loaded.jstree', changeSelection) .on('move_node.jstree', moveTag) + .on('search.jstree', function() { + $("div.search-box").hide(); + }) .jstree({ core: { data: { @@ -298,13 +301,30 @@ } }); - $('input[name=filter_tag_tree]', $panel).on('keyup change', function() { - if ($(this).val() === '') { - $('.tag-tree', $panel).jstree("clear_search"); - $('.tag-tree', $panel).jstree("refresh", true, true); + $('input[name=filter_tag_tree]', $panel).on('keyup change', function(e) { + var element = $(this); + var searchString = element.val(); + if (e.type == 'change') { + if (window.searchedString === searchString) { + if (searchString === '') { + $('.tag-tree', $panel).jstree("clear_search"); + $('.tag-tree', $panel).jstree("refresh", true, true); + } + else { + $("div.search-box").show(); + $(".tag-tree", $panel).jstree("search", searchString); + delete window.searchedString; + } + } } else { - $(".tag-tree", $panel).jstree("search", $(this).val()); + if (this.timer) clearTimeout(this.timer); + this.timer = setTimeout(function() { + if (_.isEmpty(window.searchedString) || window.searchedString !== searchString) { + window.searchedString = searchString; + element.trigger('change'); + } + }, 1000); } }); } @@ -364,6 +384,19 @@ position: relative; min-height: 250px; } + div.search-box { + margin: auto; + position: absolute; + top: 0px; left: 0px; + bottom: 0px; right: 0px; + background-color: grey; + color: white; + text-align: center; + vertical-align: middle; + line-height: 350px; + font-weight: bold; + opacity: .6; + } div.tag-tree { width: 59%; } -- 2.25.1