From fe084a4478b4fde77319010cae417e65c6c99273 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Wed, 14 Aug 2019 11:37:26 +0100 Subject: [PATCH] Allow search results to show more than 25 results --- .../editor-client/src/js/ui/search.js | 57 +++++++++++++++++-- 1 file changed, 52 insertions(+), 5 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/search.js b/packages/node_modules/@node-red/editor-client/src/js/ui/search.js index 6799385fd..9bb4cefb0 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/search.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/search.js @@ -125,6 +125,14 @@ RED.search = (function() { for (i=0;i 25) { + searchResults.editableList('addItem', { + more: { + results: results, + start: 25 + } + }) + } } else { searchResults.editableList('addItem',{}); } @@ -186,8 +194,27 @@ RED.search = (function() { evt.preventDefault(); } else if (evt.keyCode === 13) { // Enter - if (results.length > 0) { - reveal(results[Math.max(0,selected)].node); + children = searchResults.children(); + if ($(children[selected]).hasClass("red-ui-search-more")) { + var object = $(children[selected]).find(".red-ui-editableList-item-content").data('data'); + if (object) { + searchResults.editableList('removeItem',object); + for (i=object.more.start;i object.more.start+25) { + searchResults.editableList('addItem', { + more: { + results: results, + start: object.more.start+25 + } + }) + } + } + } else { + if (results.length > 0) { + reveal(results[Math.max(0,selected)].node); + } } } } @@ -199,12 +226,32 @@ RED.search = (function() { addButton: false, addItem: function(container,i,object) { var node = object.node; - if (node === undefined) { - $('
',{class:"red-ui-search-empty"}).text(RED._('search.empty')).appendTo(container); + var div; + if (object.more) { + container.parent().addClass("red-ui-search-more") + div = $('',{href:'#',class:"red-ui-search-result red-ui-search-empty"}).appendTo(container); + div.text(RED._("palette.editor.more",{count:object.more.results.length-object.more.start})); + div.on("click", function(evt) { + evt.preventDefault(); + searchResults.editableList('removeItem',object); + for (i=object.more.start;i object.more.start+25) { + searchResults.editableList('addItem', { + more: { + results: results, + start: object.more.start+25 + } + }) + } + }); + } else if (node === undefined) { + $('
',{class:"red-ui-search-empty"}).text(RED._('search.empty')).appendTo(container); } else { var def = node._def; - var div = $('',{href:'#',class:"red-ui-search-result"}).appendTo(container); + div = $('',{href:'#',class:"red-ui-search-result"}).appendTo(container); var nodeDiv = $('
',{class:"red-ui-search-result-node"}).appendTo(div); var colour = RED.utils.getNodeColor(node.type,def);