mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
Implemented filter memory for checkbox filters.
This commit is contained in:
@@ -1,3 +1,13 @@
|
||||
function saveFilterState(evt) {
|
||||
var request = JSON.stringify({
|
||||
name: 'saveFilterState',
|
||||
args: [
|
||||
evt.target.id,
|
||||
evt.target.checked,
|
||||
]
|
||||
});
|
||||
loot.query(request).catch(processCefError);
|
||||
}
|
||||
function onToggleDisplayCSS(evt) {
|
||||
var attr = 'data-hide-' + evt.target.getAttribute('data-class');
|
||||
if (evt.target.checked) {
|
||||
@@ -644,13 +654,21 @@ function onContentRefresh(evt) {
|
||||
function setupEventHandlers() {
|
||||
/*Set up handlers for filters.*/
|
||||
document.getElementById('hideVersionNumbers').addEventListener('change', onToggleDisplayCSS, false);
|
||||
document.getElementById('hideVersionNumbers').addEventListener('change', saveFilterState, false);
|
||||
document.getElementById('hideCRCs').addEventListener('change', onToggleDisplayCSS, false);
|
||||
document.getElementById('hideCRCs').addEventListener('change', saveFilterState, false);
|
||||
document.getElementById('hideBashTags').addEventListener('change', onToggleBashTags, false);
|
||||
document.getElementById('hideBashTags').addEventListener('change', saveFilterState, false);
|
||||
document.getElementById('hideNotes').addEventListener('change', setFilteredUIData, false);
|
||||
document.getElementById('hideNotes').addEventListener('change', saveFilterState, false);
|
||||
document.getElementById('hideDoNotCleanMessages').addEventListener('change', setFilteredUIData, false);
|
||||
document.getElementById('hideDoNotCleanMessages').addEventListener('change', saveFilterState, false);
|
||||
document.getElementById('hideInactivePlugins').addEventListener('change', setFilteredUIData, false);
|
||||
document.getElementById('hideInactivePlugins').addEventListener('change', saveFilterState, false);
|
||||
document.getElementById('hideAllPluginMessages').addEventListener('change', setFilteredUIData, false);
|
||||
document.getElementById('hideAllPluginMessages').addEventListener('change', saveFilterState, false);
|
||||
document.getElementById('hideMessagelessPlugins').addEventListener('change', setFilteredUIData, false);
|
||||
document.getElementById('hideMessagelessPlugins').addEventListener('change', saveFilterState, false);
|
||||
document.body.addEventListener('loot-filter-conflicts', onConflictsFilter, false);
|
||||
|
||||
/* Set up event handlers for content filter. */
|
||||
|
||||
@@ -213,3 +213,37 @@ function setFilteredUIData() {
|
||||
}
|
||||
});
|
||||
}
|
||||
function restoreFilterStates() {
|
||||
if (loot.settings.filters) {
|
||||
|
||||
//document.getElementById('searchBox').value = loot.settings.filters.content;
|
||||
document.getElementById('hideMessagelessPlugins').checked = loot.settings.filters.hideMessagelessPlugins;
|
||||
document.getElementById('hideInactivePlugins').checked = loot.settings.filters.hideInactivePlugins;
|
||||
document.getElementById('hideNotes').checked = loot.settings.filters.hideNotes;
|
||||
document.getElementById('hideDoNotCleanMessages').checked = loot.settings.filters.hideDoNotCleanMessages;
|
||||
document.getElementById('hideAllPluginMessages').checked = loot.settings.filters.hideAllPluginMessages;
|
||||
document.getElementById('hideVersionNumbers').checked = loot.settings.filters.hideVersionNumbers;
|
||||
document.getElementById('hideCRCs').checked = loot.settings.filters.hideCRCs;
|
||||
document.getElementById('hideBashTags').checked = loot.settings.filters.hideBashTags;
|
||||
|
||||
if (loot.settings.filters.hideMessagelessPlugins
|
||||
|| loot.settings.filters.hideInactivePlugins
|
||||
|| loot.settings.filters.hideNotes
|
||||
|| loot.settings.filters.hideDoNotCleanMessages
|
||||
|| loot.settings.filters.hideAllPluginMessages) {
|
||||
setFilteredUIData();
|
||||
}
|
||||
|
||||
if (loot.settings.filters.hideVersionNumbers) {
|
||||
document.getElementById('hideVersionNumbers').dispatchEvent(new Event('change'));
|
||||
}
|
||||
|
||||
if (loot.settings.filters.hideCRCs) {
|
||||
document.getElementById('hideCRCs').dispatchEvent(new Event('change'));
|
||||
}
|
||||
|
||||
if (loot.settings.filters.hideBashTags) {
|
||||
document.getElementById('hideBashTags').dispatchEvent(new Event('change'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,6 +133,7 @@ function initVars() {
|
||||
|
||||
try {
|
||||
loot.settings = JSON.parse(results[2]);
|
||||
restoreFilterStates();
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
console.log('getSettings response: ' + results[2]);
|
||||
|
||||
@@ -323,6 +323,23 @@ namespace loot {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else if (requestName == "saveFilterState") {
|
||||
// Has two args: the first is the filter ID, the second is the value.
|
||||
BOOST_LOG_TRIVIAL(trace) << "Saving filter states.";
|
||||
try {
|
||||
YAML::Node settings = g_app_state.GetSettings();
|
||||
|
||||
settings["filters"][request["args"][0].as<string>()] = request["args"][1];
|
||||
|
||||
g_app_state.UpdateSettings(settings);
|
||||
callback->Success("");
|
||||
}
|
||||
catch (exception &e) {
|
||||
BOOST_LOG_TRIVIAL(error) << e.what();
|
||||
callback->Failure(-1, e.what());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user