From a73c159160a8ce7a11971212a91baefaa8041c66 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Sat, 22 Jun 2019 20:25:57 +0100 Subject: [PATCH 1/2] Ensure an item in action list is always selected --- .../@node-red/editor-client/src/js/ui/actionList.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/actionList.js b/packages/node_modules/@node-red/editor-client/src/js/ui/actionList.js index aa5b2f900..d13aaa7fd 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/actionList.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/actionList.js @@ -49,6 +49,10 @@ RED.actionList = (function() { filterTerm = $(this).val(); searchResults.editableList('filter'); searchResults.find("li.selected").removeClass("selected"); + var children = searchResults.children(":visible"); + if (children.length) { + $(children[0]).addClass('selected'); + } } }); @@ -61,7 +65,6 @@ RED.actionList = (function() { var children = searchResults.children(":visible"); if (children.length) { $(children[0]).addClass('selected'); - RED.a = children[0]; } } else { var nextChild = selectedChild.nextAll(":visible").first(); @@ -162,6 +165,10 @@ RED.actionList = (function() { visible = true; } searchInput.trigger("focus"); + var children = searchResults.children(":visible"); + if (children.length) { + $(children[0]).addClass('selected'); + } } function hide() { From d11d389ae4105aa7e431d5c6482ca85e601a193f Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Sat, 22 Jun 2019 20:37:54 +0100 Subject: [PATCH 2/2] Smarter filtering in action list dialog --- .../editor-client/src/js/ui/actionList.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/actionList.js b/packages/node_modules/@node-red/editor-client/src/js/ui/actionList.js index d13aaa7fd..ac8a06813 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/actionList.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/actionList.js @@ -23,6 +23,7 @@ RED.actionList = (function() { var visible = false; var filterTerm = ""; + var filterTerms = []; var previousActiveElement; function ensureSelectedIsVisible() { @@ -46,7 +47,8 @@ RED.actionList = (function() { var searchDiv = $("
",{class:"red-ui-search-container"}).appendTo(dialog); searchInput = $('').appendTo(searchDiv).searchBox({ change: function() { - filterTerm = $(this).val(); + filterTerm = $(this).val().trim(); + filterTerms = filterTerm.split(" "); searchResults.editableList('filter'); searchResults.find("li.selected").removeClass("selected"); var children = searchResults.children(":visible"); @@ -118,8 +120,17 @@ RED.actionList = (function() { }, scrollOnAdd: false, filter: function(item) { - if (filterTerm !== "" && item.label.toLowerCase().indexOf(filterTerm) === -1) { - return false; + if (filterTerm !== "") { + var pos=0; + for (var i=0;i -1) { + pos = j; + } else { + return false; + } + } + return true; } return true; } @@ -159,6 +170,7 @@ RED.actionList = (function() { }); actions.forEach(function(action) { action.label = action.id.replace(/:/,": ").replace(/-/g," ").replace(/(^| )./g,function() { return arguments[0].toUpperCase()}); + action._label = action.label.toLowerCase(); searchResults.editableList('addItem',action) }) RED.events.emit("actionList:open");