diff --git a/src/gui/html/elements/loot-plugin-card.html b/src/gui/html/elements/loot-plugin-card.html index 6e584acd..01fa3aac 100644 --- a/src/gui/html/elements/loot-plugin-card.html +++ b/src/gui/html/elements/loot-plugin-card.html @@ -116,11 +116,6 @@ loot-clear-metadata font-weight: 400; font-size: 1rem; } - :host-context(#main[data-hide-crc]) content::content > .crc, - :host-context(#main[data-hide-tag]) content::content > .tag, - :host-context(#main[data-hide-version]) content::content > .version { - display: none; - } /* Misc Styling. */ core-toolbar { @@ -279,6 +274,13 @@ loot-clear-metadata } }, + updateContent: function() { + this.getElementsByClassName('version')[0].textContent = this.data.getCardContent(loot.filters).version; + this.onCrcChange(); + this.onTagsChange(); + this.onMessagesChange(); + }, + onCrcChange: function(oldValue, newValue) { if (this.data) { this.getElementsByClassName('crc')[0].textContent = this.data.getCardContent(loot.filters).crc; diff --git a/src/gui/html/js/events.js b/src/gui/html/js/events.js index c7486e03..1110c98d 100644 --- a/src/gui/html/js/events.js +++ b/src/gui/html/js/events.js @@ -1,30 +1,11 @@ 'use strict'; -function saveFilterState(evt) { - loot.query('saveFilterState', evt.target.id, evt.target.checked).catch(handlePromiseError); -} -function onToggleDisplayCSS(evt) { - saveFilterState(evt); - const attr = 'data-hide-' + evt.target.getAttribute('data-class'); - if (evt.target.checked) { - document.getElementById('main').setAttribute(attr, true); - } else { - document.getElementById('main').removeAttribute(attr); - } - - if (evt.target.id === 'hideBashTags') { - document.getElementById('main').lastElementChild.updateSize(); - } - /* Now perform search again. If there is no current search, this won't - do anything. */ - document.getElementById('searchBar').search(); -} function onSidebarFilterToggle(evt) { if (evt.target.id !== 'contentFilter') { loot.filters[evt.target.id] = evt.target.checked; } else { loot.filters.contentSearchString = evt.target.value; } - saveFilterState(evt); + loot.query('saveFilterState', evt.target.id, evt.target.checked).catch(handlePromiseError); filterPluginData(loot.game.plugins, loot.filters); } diff --git a/src/gui/html/js/helpers.js b/src/gui/html/js/helpers.js index fd92f52c..08db0c61 100644 --- a/src/gui/html/js/helpers.js +++ b/src/gui/html/js/helpers.js @@ -47,12 +47,12 @@ function filterPluginData(plugins, filters) { document.getElementById('cardsNav').data = filteredPlugins; document.getElementById('pluginCardList').data = filteredPlugins; - filteredPlugins.forEach((plugin) => { - const element = document.getElementById(plugin.id); - if (element) { - element.onMessagesChange(); + const pluginCards = document.getElementById('pluginCardList').children; + for (let i = 0; i < pluginCards.length; ++i) { + if (pluginCards[i].data) { + pluginCards[i].updateContent(); } - }); + } document.getElementById('cardsNav').updateSize(); document.getElementById('pluginCardList').updateSize(); diff --git a/src/gui/html/js/init.js b/src/gui/html/js/init.js index 68a5179a..c9ecdfd0 100644 --- a/src/gui/html/js/init.js +++ b/src/gui/html/js/init.js @@ -41,9 +41,9 @@ }(this, (Dialog, dom, Filters, Game, translateStaticText, Plugin, query, Translator) => { function setupEventHandlers() { /* Set up handlers for filters. */ - document.getElementById('hideVersionNumbers').addEventListener('change', onToggleDisplayCSS); - document.getElementById('hideCRCs').addEventListener('change', onToggleDisplayCSS); - document.getElementById('hideBashTags').addEventListener('change', onToggleDisplayCSS); + document.getElementById('hideVersionNumbers').addEventListener('change', onSidebarFilterToggle); + document.getElementById('hideCRCs').addEventListener('change', onSidebarFilterToggle); + document.getElementById('hideBashTags').addEventListener('change', onSidebarFilterToggle); document.getElementById('hideNotes').addEventListener('change', onSidebarFilterToggle); document.getElementById('hideDoNotCleanMessages').addEventListener('change', onSidebarFilterToggle); document.getElementById('hideInactivePlugins').addEventListener('change', onSidebarFilterToggle);