diff --git a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json index 99c2b01bf..5b4985765 100755 --- a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json +++ b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json @@ -24,6 +24,7 @@ "delete": "Are you sure you want to delete '__label__'?", "dropFlowHere": "Drop the flow here", "addFlow": "Add Flow", + "listFlows": "List Flows", "status": "Status", "enabled": "Enabled", "disabled":"Disabled", diff --git a/packages/node_modules/@node-red/editor-client/src/js/keymap.json b/packages/node_modules/@node-red/editor-client/src/js/keymap.json index 61d2fe350..ea32e66f3 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/keymap.json +++ b/packages/node_modules/@node-red/editor-client/src/js/keymap.json @@ -2,6 +2,7 @@ "*": { "ctrl-shift-p":"core:manage-palette", "ctrl-f": "core:search", + "ctrl-shift-f": "core:list-flows", "ctrl-=": "core:zoom-in", "ctrl--": "core:zoom-out", "ctrl-0": "core:zoom-reset", diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/common/tabs.js b/packages/node_modules/@node-red/editor-client/src/js/ui/common/tabs.js index b87ce5d36..3de4b5845 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/common/tabs.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/common/tabs.js @@ -36,7 +36,7 @@ RED.tabs = (function() { } if (options.addButton) { wrapper.addClass("red-ui-tabs-add"); - var addButton = $('
').appendTo(wrapper); + var addButton = $('
').appendTo(wrapper); addButton.find('a').click(function(evt) { evt.preventDefault(); if (typeof options.addButton === 'function') { @@ -69,7 +69,25 @@ RED.tabs = (function() { RED.actions.invoke(options.addButton,{index:targetIndex}); } }); - + } + if (options.searchButton) { + wrapper.addClass("red-ui-tabs-search"); + var searchButton = $('').appendTo(wrapper); + searchButton.find('a').click(function(evt) { + evt.preventDefault(); + if (typeof options.searchButton === 'function') { + options.searchButton() + } else if (typeof options.searchButton === 'string') { + RED.actions.invoke(options.searchButton); + } + }) + if (typeof options.searchButton === 'string') { + var l = options.searchButton; + if (options.searchButtonCaption) { + l = options.searchButtonCaption + } + RED.popover.tooltip(searchButton,l,options.searchButton); + } } var scrollLeft; 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 cce7dddf3..c1cef089b 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 @@ -82,9 +82,18 @@ RED.search = (function() { function search(val) { searchResults.editableList('empty'); + var typeFilter; + var m = /(?:^| )type:([^ ]+)/.exec(val); + if (m) { + val = val.replace(/(?:^| )type:[^ ]+/,""); + typeFilter = m[1]; + } + + val = val.trim(); + selected = -1; results = []; - if (val.length > 0) { + if (val.length > 0 || typeFilter) { val = val.toLowerCase(); var i; var j; @@ -96,8 +105,10 @@ RED.search = (function() { if (kpos > -1) { for (j=0;j