From e3b7c5fce77e60fb32b84dfd82cadf5f192da970 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Fri, 30 Sep 2016 11:19:47 +0100 Subject: [PATCH] Add 'no matches' message to package search results --- editor/js/ui/palette-editor.js | 222 +++++++++++++++++---------------- editor/sass/search.scss | 1 - 2 files changed, 117 insertions(+), 106 deletions(-) diff --git a/editor/js/ui/palette-editor.js b/editor/js/ui/palette-editor.js index f54ac0eae..69ebf9f06 100644 --- a/editor/js/ui/palette-editor.js +++ b/editor/js/ui/palette-editor.js @@ -352,6 +352,10 @@ RED.palette.editor = (function() { for (var i=0;i 10) { packageList.editableList('addItem',{start:10,more:filteredList.length-10}) } @@ -430,6 +434,7 @@ RED.palette.editor = (function() { nodeList = $('
    ',{id:"palette-module-list", style:"position: absolute;top: 35px;bottom: 0;left: 0;right: 0px;"}).appendTo(modulesTab).editableList({ addButton: false, + scrollOnAdd: false, sort: function(A,B) { return A.info.name.localeCompare(B.info.name); }, @@ -442,90 +447,94 @@ RED.palette.editor = (function() { }, addItem: function(container,i,object) { var entry = object.info; - var headerRow = $('
    ',{class:"palette-module-header"}).appendTo(container); - var titleRow = $('
    ').appendTo(headerRow); - $('').html(entry.name).appendTo(titleRow); - var metaRow = $('
    ').appendTo(headerRow); - $('').html(entry.version).appendTo(metaRow); - var buttonRow = $('
    ',{class:"palette-module-meta"}).appendTo(headerRow); - var setButton = $(' ').appendTo(buttonRow); - var setCount = $('').appendTo(setButton); - var buttonGroup = $('
    ',{class:"palette-module-button-group"}).appendTo(buttonRow); - var removeButton = $('').html(RED._('palette.editor.remove')).appendTo(buttonGroup); - removeButton.click(function() { - shade.show(); - removeNodeModule(entry.name, function(xhr) { - console.log(xhr); + if (entry) { + var headerRow = $('
    ',{class:"palette-module-header"}).appendTo(container); + var titleRow = $('
    ').appendTo(headerRow); + $('').html(entry.name).appendTo(titleRow); + var metaRow = $('
    ').appendTo(headerRow); + $('').html(entry.version).appendTo(metaRow); + var buttonRow = $('
    ',{class:"palette-module-meta"}).appendTo(headerRow); + var setButton = $(' ').appendTo(buttonRow); + var setCount = $('').appendTo(setButton); + var buttonGroup = $('
    ',{class:"palette-module-button-group"}).appendTo(buttonRow); + var removeButton = $('').html(RED._('palette.editor.remove')).appendTo(buttonGroup); + removeButton.click(function() { + shade.show(); + removeNodeModule(entry.name, function(xhr) { + console.log(xhr); + }) }) - }) - if (!entry.local) { - removeButton.hide(); - } - var enableButton = $('').html(RED._('palette.editor.disableall')).appendTo(buttonGroup); - - var contentRow = $('
    ',{class:"palette-module-content"}).appendTo(container); - var shade = $('
    ').appendTo(container); - - object.elements = { - removeButton: removeButton, - enableButton: enableButton, - setCount: setCount, - container: container, - shade: shade, - sets: {} - } - setButton.click(function() { - if (container.hasClass('expanded')) { - container.removeClass('expanded'); - contentRow.slideUp(); - } else { - container.addClass('expanded'); - contentRow.slideDown(); + if (!entry.local) { + removeButton.hide(); } - }) + var enableButton = $('').html(RED._('palette.editor.disableall')).appendTo(buttonGroup); - var setList = Object.keys(entry.sets) - setList.sort(function(A,B) { - return A.toLowerCase().localeCompare(B.toLowerCase()); - }); - setList.forEach(function(setName) { - var set = entry.sets[setName]; - var setRow = $('
    ',{class:"palette-module-set"}).appendTo(contentRow); - var buttonGroup = $('
    ',{class:"palette-module-set-button-group"}).appendTo(setRow); - var typeSwatches = {}; - set.types.forEach(function(t) { - var typeDiv = $('
    ',{class:"palette-module-type"}).appendTo(setRow); - typeSwatches[t] = $('',{class:"palette-module-type-swatch"}).appendTo(typeDiv); - $('',{class:"palette-module-type-node"}).html(t).appendTo(typeDiv); + var contentRow = $('
    ',{class:"palette-module-content"}).appendTo(container); + var shade = $('
    ').appendTo(container); + + object.elements = { + removeButton: removeButton, + enableButton: enableButton, + setCount: setCount, + container: container, + shade: shade, + sets: {} + } + setButton.click(function() { + if (container.hasClass('expanded')) { + container.removeClass('expanded'); + contentRow.slideUp(); + } else { + container.addClass('expanded'); + contentRow.slideDown(); + } }) - var enableButton = $('').appendTo(buttonGroup); + var setList = Object.keys(entry.sets) + setList.sort(function(A,B) { + return A.toLowerCase().localeCompare(B.toLowerCase()); + }); + setList.forEach(function(setName) { + var set = entry.sets[setName]; + var setRow = $('
    ',{class:"palette-module-set"}).appendTo(contentRow); + var buttonGroup = $('
    ',{class:"palette-module-set-button-group"}).appendTo(setRow); + var typeSwatches = {}; + set.types.forEach(function(t) { + var typeDiv = $('
    ',{class:"palette-module-type"}).appendTo(setRow); + typeSwatches[t] = $('',{class:"palette-module-type-swatch"}).appendTo(typeDiv); + $('',{class:"palette-module-type-node"}).html(t).appendTo(typeDiv); + }) + + var enableButton = $('').appendTo(buttonGroup); + enableButton.click(function(evt) { + if (object.setUseCount[setName] === 0) { + var currentSet = RED.nodes.registry.getNodeSet(set.id); + shade.show(); + changeNodeState(set.id,!currentSet.enabled,shade,function(xhr){ + console.log(xhr) + }); + } + evt.preventDefault(); + }) + + object.elements.sets[set.name] = { + setRow: setRow, + enableButton: enableButton, + swatches: typeSwatches + }; + }); enableButton.click(function(evt) { - if (object.setUseCount[setName] === 0) { - var currentSet = RED.nodes.registry.getNodeSet(set.id); - shade.show(); - changeNodeState(set.id,!currentSet.enabled,shade,function(xhr){ + if (object.totalUseCount === 0) { + changeNodeState(entry.name,(container.hasClass('disabled')),shade,function(xhr){ console.log(xhr) }); } evt.preventDefault(); }) - - object.elements.sets[set.name] = { - setRow: setRow, - enableButton: enableButton, - swatches: typeSwatches - }; - }); - enableButton.click(function(evt) { - if (object.totalUseCount === 0) { - changeNodeState(entry.name,(container.hasClass('disabled')),shade,function(xhr){ - console.log(xhr) - }); - } - evt.preventDefault(); - }) - refreshNodeModule(entry.name); + refreshNodeModule(entry.name); + } else { + $('
    ',{class:"red-ui-search-empty"}).html(RED._('search.empty')).appendTo(container); + } } }); @@ -546,10 +555,9 @@ RED.palette.editor = (function() { .appendTo(searchDiv) .searchBox({ delay: 300, - minimumLength: 2, change: function() { var searchTerm = $(this).val(); - if (searchTerm.length >= 2) { + if (searchTerm.length > 0) { filteredList = loadedList.filter(function(m) { return (m.index.indexOf(searchTerm) > -1); }).map(function(f) { return {info:f}}); @@ -557,9 +565,7 @@ RED.palette.editor = (function() { searchInput.searchBox('count',filteredList.length+" / "+loadedList.length); } else { searchInput.searchBox('count',loadedList.length); - if (searchTerm.length === 0) { - packageList.editableList('empty'); - } + packageList.editableList('empty'); } } }); @@ -603,7 +609,9 @@ RED.palette.editor = (function() { packageList = $('
      ',{style:"position: absolute;top: 78px;bottom: 0;left: 0;right: 0px;"}).appendTo(installTab).editableList({ addButton: false, + scrollOnAdd: false, addItem: function(container,i,object) { + if (object.more) { container.addClass('palette-module-more'); var moreRow = $('
      ',{class:"palette-module-header palette-module"}).appendTo(container); @@ -620,37 +628,41 @@ RED.palette.editor = (function() { }) return; } - var entry = object.info; - var headerRow = $('
      ',{class:"palette-module-header"}).appendTo(container); - var titleRow = $('
      ').appendTo(headerRow); - $('',{class:"palette-module-name"}).html(entry.name||entry.id).appendTo(titleRow); - $('').attr('href',entry.url).appendTo(titleRow); - var descRow = $('
      ').appendTo(headerRow); - $('
      ',{class:"palette-module-description"}).html(entry.description).appendTo(descRow); + if (object.info) { + var entry = object.info; + var headerRow = $('
      ',{class:"palette-module-header"}).appendTo(container); + var titleRow = $('
      ').appendTo(headerRow); + $('',{class:"palette-module-name"}).html(entry.name||entry.id).appendTo(titleRow); + $('').attr('href',entry.url).appendTo(titleRow); + var descRow = $('
      ').appendTo(headerRow); + $('
      ',{class:"palette-module-description"}).html(entry.description).appendTo(descRow); - var metaRow = $('
      ').appendTo(headerRow); - $(' '+entry.version+'').appendTo(metaRow); - $(' '+formatUpdatedAt(entry.updated_at)+'').appendTo(metaRow); - var buttonRow = $('
      ',{class:"palette-module-meta"}).appendTo(headerRow); - var buttonGroup = $('
      ',{class:"palette-module-button-group"}).appendTo(buttonRow); - var shade = $('
      ').appendTo(container); - var installButton = $('').html(RED._('palette.editor.install')).appendTo(buttonGroup); - installButton.click(function(e) { - e.preventDefault(); - installNodeModule(entry.id,shade,function(xhr) { - if (xhr) { - if (xhr.responseJSON) { - RED.notify(RED._('palette.editor.errors.installFailed',{module: entry.id,message:xhr.responseJSON.message})); + var metaRow = $('
      ').appendTo(headerRow); + $(' '+entry.version+'').appendTo(metaRow); + $(' '+formatUpdatedAt(entry.updated_at)+'').appendTo(metaRow); + var buttonRow = $('
      ',{class:"palette-module-meta"}).appendTo(headerRow); + var buttonGroup = $('
      ',{class:"palette-module-button-group"}).appendTo(buttonRow); + var shade = $('
      ').appendTo(container); + var installButton = $('').html(RED._('palette.editor.install')).appendTo(buttonGroup); + installButton.click(function(e) { + e.preventDefault(); + installNodeModule(entry.id,shade,function(xhr) { + if (xhr) { + if (xhr.responseJSON) { + RED.notify(RED._('palette.editor.errors.installFailed',{module: entry.id,message:xhr.responseJSON.message})); + } } - } + }) }) - }) - if (nodeEntries.hasOwnProperty(entry.id)) { - installButton.hide(); - } + if (nodeEntries.hasOwnProperty(entry.id)) { + installButton.hide(); + } - object.elements = { - installButton:installButton + object.elements = { + installButton:installButton + } + } else { + $('
      ',{class:"red-ui-search-empty"}).html(RED._('search.empty')).appendTo(container); } } }); diff --git a/editor/sass/search.scss b/editor/sass/search.scss index 52386529c..1884efbb1 100644 --- a/editor/sass/search.scss +++ b/editor/sass/search.scss @@ -101,6 +101,5 @@ padding: 10px; text-align: center; font-style: italic; - background: $background-color; color: $form-placeholder-color; }