Fix version, Bash Tag and CRC filters

If the filters were applied on startup, disabling them would not reveal
the hidden data, as the cards' content would not be refreshed. This
fixes #530.
This commit is contained in:
Oliver Hamlet
2016-01-16 11:28:03 +00:00
parent 4aff5a25dd
commit 1af3bc9a9a
4 changed files with 16 additions and 33 deletions
+7 -5
View File
@@ -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;
+1 -20
View File
@@ -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);
}
+5 -5
View File
@@ -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();
+3 -3
View File
@@ -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);