Skip to content

Commit 90f6b47

Browse files
Discard trigger field information on blur and do not focus fields after date/segment change (#23147)
1 parent 0ef487e commit 90f6b47

5 files changed

+41
-23
lines changed

plugins/CoreHome/javascripts/dataTable.js

+33-15
Original file line numberDiff line numberDiff line change
@@ -893,35 +893,48 @@ $.extend(DataTable.prototype, UIControl.prototype, {
893893
searchForPattern();
894894
}
895895
}
896-
function showSearch(event) {
897-
event.preventDefault();
898-
event.stopPropagation();
899896

900-
var triggerField;
901-
if (typeof self.param.filter_trigger_id != "undefined"
902-
&& self.param.filter_trigger_id.length > 0) {
903-
triggerField = document.getElementById(self.param.filter_trigger_id);
904-
} else if (event && event.target) {
897+
function getTriggerField(event) {
898+
if (typeof self.param.filter_trigger_id !== "undefined" &&
899+
self.param.filter_trigger_id.length > 0) {
900+
return document.getElementById(self.param.filter_trigger_id);
901+
} else {
902+
if (event && event.target) {
905903
if (event.target.nodeName.toLowerCase() === 'span') {
906-
triggerField = $(event.target).siblings('input');
904+
return $(event.target).siblings('input');
907905
} else {
908-
triggerField = $(event.target).children('input');
906+
return $(event.target).children('input');
909907
}
910908
}
909+
}
910+
}
911911

912-
var $searchAction = $(this);
913-
$searchAction.addClass('searchActive forceActionVisible');
914-
var width = getOptimalWidthForSearchField($searchAction);
915-
$searchAction.css('width', width + 'px');
912+
function restoreSearchFieldFocus(event)
913+
{
914+
var triggerField = getTriggerField(event);
916915

917916
if (triggerField) {
918917
triggerField.focus();
919918
}
919+
}
920920

921+
function showSearchInputFields($searchAction) {
922+
$searchAction.addClass('searchActive forceActionVisible');
923+
var width = getOptimalWidthForSearchField($searchAction);
924+
$searchAction.css('width', width + 'px');
921925
$searchAction.find('.icon-search').on('click', searchForPattern);
922926
$searchAction.off('click', showSearch);
923927
}
924928

929+
function showSearch(event) {
930+
event.preventDefault();
931+
event.stopPropagation();
932+
933+
showSearchInputFields($(this));
934+
restoreSearchFieldFocus(event);
935+
}
936+
937+
925938
function searchForPattern(event) {
926939
var keyword = '';
927940
if (event) {
@@ -974,11 +987,16 @@ $.extend(DataTable.prototype, UIControl.prototype, {
974987
}
975988
});
976989

990+
$searchInput.on("blur", function () {
991+
delete self.param.filter_trigger_id;
992+
});
993+
977994
var $dataTable = $searchInput.parents('.dataTable').first();
978995
if (currentPattern) {
979996
$dataTable.addClass('hasSearchKeyword');
980997
$searchInput.val(currentPattern);
981-
$searchAction.click();
998+
showSearchInputFields($searchAction);
999+
restoreSearchFieldFocus();
9821000
} else {
9831001
$dataTable.removeClass('hasSearchKeyword');
9841002
}
Loading
Loading
Loading
Loading

0 commit comments

Comments
 (0)