From c0c26fb98ed5b277e3217b903874e8165d392436 Mon Sep 17 00:00:00 2001 From: blackcoffeexbt <87530449+blackcoffeexbt@users.noreply.github.com> Date: Sat, 23 Jul 2022 09:46:30 +0100 Subject: [PATCH] Extension list UI improvements (#769) * Extensions list is now sorted alphabetically * Added extension list search * Prettified changes * Removed console.log * Code improvements based on motorina0 feedback * Remove console.log from lnbits/templates/base.html Run prettier --- lnbits/core/static/js/extensions.js | 32 ++++++++++++++++++++++ lnbits/core/templates/core/extensions.html | 15 +++++++++- lnbits/static/js/base.js | 8 ++++-- lnbits/templates/base.html | 1 - 4 files changed, 52 insertions(+), 4 deletions(-) diff --git a/lnbits/core/static/js/extensions.js b/lnbits/core/static/js/extensions.js index 85ace775f..ec8f811c6 100644 --- a/lnbits/core/static/js/extensions.js +++ b/lnbits/core/static/js/extensions.js @@ -1,4 +1,36 @@ new Vue({ el: '#vue', + data: function () { + return { + searchTerm: '', + filteredExtensions: null + } + }, + mounted() { + this.filteredExtensions = this.g.extensions + }, + watch: { + searchTerm(term) { + // Reset the filter + this.filteredExtensions = this.g.extensions + if (term !== '') { + // Filter the extensions list + function extensionNameContains(searchTerm) { + return function (extension) { + return ( + extension.name.toLowerCase().includes(searchTerm.toLowerCase()) || + extension.shortDescription + .toLowerCase() + .includes(searchTerm.toLowerCase()) + ) + } + } + + this.filteredExtensions = this.filteredExtensions.filter( + extensionNameContains(term) + ) + } + } + }, mixins: [windowMixin] }) diff --git a/lnbits/core/templates/core/extensions.html b/lnbits/core/templates/core/extensions.html index daeb660fa..1b5279030 100644 --- a/lnbits/core/templates/core/extensions.html +++ b/lnbits/core/templates/core/extensions.html @@ -2,10 +2,23 @@ %} {% block scripts %} {{ window_vars(user) }} {% endblock %} {% block page %} +
+
+ + + +
+
+
diff --git a/lnbits/static/js/base.js b/lnbits/static/js/base.js index 7c0e9958d..cd5fd1c4c 100644 --- a/lnbits/static/js/base.js +++ b/lnbits/static/js/base.js @@ -392,7 +392,7 @@ window.windowMixin = { } if (window.extensions) { var user = this.g.user - this.g.extensions = Object.freeze( + const extensions = Object.freeze( window.extensions .map(function (data) { return window.LNbits.map.extension(data) @@ -413,9 +413,13 @@ window.windowMixin = { return obj }) .sort(function (a, b) { - return a.name > b.name + const nameA = a.name.toUpperCase() + const nameB = b.name.toUpperCase() + return nameA < nameB ? -1 : nameA > nameB ? 1 : 0 }) ) + + this.g.extensions = extensions } } } diff --git a/lnbits/templates/base.html b/lnbits/templates/base.html index 6ab1ec840..acca92e7a 100644 --- a/lnbits/templates/base.html +++ b/lnbits/templates/base.html @@ -228,7 +228,6 @@