mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
Refactor Game change event handlers
Into game.js as static members.
This commit is contained in:
@@ -1,68 +1,4 @@
|
||||
'use strict';
|
||||
function onGamePluginsChange(evt) {
|
||||
if (!evt.detail.valuesAreTotals) {
|
||||
evt.detail.totalMessageNo += parseInt(document.getElementById('totalMessageNo').textContent, 10);
|
||||
evt.detail.warnMessageNo += parseInt(document.getElementById('totalWarningNo').textContent, 10);
|
||||
evt.detail.errorMessageNo += parseInt(document.getElementById('totalErrorNo').textContent, 10);
|
||||
evt.detail.totalPluginNo += parseInt(document.getElementById('totalPluginNo').textContent, 10);
|
||||
evt.detail.activePluginNo += parseInt(document.getElementById('activePluginNo').textContent, 10);
|
||||
evt.detail.dirtyPluginNo += parseInt(document.getElementById('dirtyPluginNo').textContent, 10);
|
||||
}
|
||||
|
||||
document.getElementById('filterTotalMessageNo').textContent = evt.detail.totalMessageNo;
|
||||
document.getElementById('totalMessageNo').textContent = evt.detail.totalMessageNo;
|
||||
document.getElementById('totalWarningNo').textContent = evt.detail.warnMessageNo;
|
||||
document.getElementById('totalErrorNo').textContent = evt.detail.errorMessageNo;
|
||||
|
||||
document.getElementById('filterTotalPluginNo').textContent = evt.detail.totalPluginNo;
|
||||
document.getElementById('totalPluginNo').textContent = evt.detail.totalPluginNo;
|
||||
document.getElementById('activePluginNo').textContent = evt.detail.activePluginNo;
|
||||
document.getElementById('dirtyPluginNo').textContent = evt.detail.dirtyPluginNo;
|
||||
}
|
||||
function onGameGlobalMessagesChange(evt) {
|
||||
document.getElementById('filterTotalMessageNo').textContent = parseInt(document.getElementById('filterTotalMessageNo').textContent, 10) + evt.detail.totalDiff;
|
||||
document.getElementById('totalMessageNo').textContent = parseInt(document.getElementById('totalMessageNo').textContent, 10) + evt.detail.totalDiff;
|
||||
document.getElementById('totalWarningNo').textContent = parseInt(document.getElementById('totalWarningNo').textContent, 10) + evt.detail.warningDiff;
|
||||
document.getElementById('totalErrorNo').textContent = parseInt(document.getElementById('totalErrorNo').textContent, 10) + evt.detail.errorDiff;
|
||||
|
||||
/* Remove old messages from UI. */
|
||||
const generalMessagesList = document.getElementById('summary').getElementsByTagName('ul')[0];
|
||||
while (generalMessagesList.firstElementChild) {
|
||||
generalMessagesList.removeChild(generalMessagesList.firstElementChild);
|
||||
}
|
||||
|
||||
/* Add new messages. */
|
||||
if (evt.detail.messages) {
|
||||
evt.detail.messages.forEach((message) => {
|
||||
const li = document.createElement('li');
|
||||
li.className = message.type;
|
||||
/* Use the Marked library for Markdown formatting support. */
|
||||
li.innerHTML = marked(message.content[0].str);
|
||||
generalMessagesList.appendChild(li);
|
||||
});
|
||||
}
|
||||
}
|
||||
function onGameMasterlistChange(evt) {
|
||||
document.getElementById('masterlistRevision').textContent = evt.detail.revision;
|
||||
document.getElementById('masterlistDate').textContent = evt.detail.date;
|
||||
}
|
||||
function onGameFolderChange(evt) {
|
||||
loot.dom.updateSelectedGame(evt.detail.folder);
|
||||
/* Enable/disable the redate plugins option. */
|
||||
let gameSettings = undefined;
|
||||
if (loot.settings && loot.settings.games) {
|
||||
gameSettings = loot.settings.games.find((game) => {
|
||||
return game.folder === evt.detail.folder;
|
||||
});
|
||||
}
|
||||
const redateButton = document.getElementById('redatePluginsButton');
|
||||
if (gameSettings && gameSettings.type === 'Skyrim') {
|
||||
redateButton.removeAttribute('disabled');
|
||||
} else {
|
||||
redateButton.setAttribute('disabled', true);
|
||||
}
|
||||
}
|
||||
|
||||
function onPluginMessageChange(evt) {
|
||||
document.getElementById('filterTotalMessageNo').textContent = parseInt(document.getElementById('filterTotalMessageNo').textContent, 10) + evt.detail.totalDiff;
|
||||
document.getElementById('totalMessageNo').textContent = parseInt(document.getElementById('totalMessageNo').textContent, 10) + evt.detail.totalDiff;
|
||||
@@ -401,7 +337,6 @@ function onContentRefresh() {
|
||||
}).catch(handlePromiseError);
|
||||
}
|
||||
|
||||
|
||||
function onOpenReadme() {
|
||||
loot.query('openReadme').catch(handlePromiseError);
|
||||
}
|
||||
|
||||
+66
-2
@@ -7,9 +7,9 @@
|
||||
} else {
|
||||
// Browser globals
|
||||
root.loot = root.loot || {};
|
||||
root.loot.Game = factory();
|
||||
root.loot.Game = factory(root.marked);
|
||||
}
|
||||
}(this, () => {
|
||||
}(this, (marked) => {
|
||||
return class Game {
|
||||
constructor(obj, l10n) {
|
||||
this.folder = obj.folder || '';
|
||||
@@ -253,5 +253,69 @@
|
||||
|
||||
this._plugins.splice(index, 1);
|
||||
}
|
||||
|
||||
static onPluginsChange(evt) {
|
||||
if (!evt.detail.valuesAreTotals) {
|
||||
evt.detail.totalMessageNo += parseInt(document.getElementById('totalMessageNo').textContent, 10);
|
||||
evt.detail.warnMessageNo += parseInt(document.getElementById('totalWarningNo').textContent, 10);
|
||||
evt.detail.errorMessageNo += parseInt(document.getElementById('totalErrorNo').textContent, 10);
|
||||
evt.detail.totalPluginNo += parseInt(document.getElementById('totalPluginNo').textContent, 10);
|
||||
evt.detail.activePluginNo += parseInt(document.getElementById('activePluginNo').textContent, 10);
|
||||
evt.detail.dirtyPluginNo += parseInt(document.getElementById('dirtyPluginNo').textContent, 10);
|
||||
}
|
||||
|
||||
document.getElementById('filterTotalMessageNo').textContent = evt.detail.totalMessageNo;
|
||||
document.getElementById('totalMessageNo').textContent = evt.detail.totalMessageNo;
|
||||
document.getElementById('totalWarningNo').textContent = evt.detail.warnMessageNo;
|
||||
document.getElementById('totalErrorNo').textContent = evt.detail.errorMessageNo;
|
||||
|
||||
document.getElementById('filterTotalPluginNo').textContent = evt.detail.totalPluginNo;
|
||||
document.getElementById('totalPluginNo').textContent = evt.detail.totalPluginNo;
|
||||
document.getElementById('activePluginNo').textContent = evt.detail.activePluginNo;
|
||||
document.getElementById('dirtyPluginNo').textContent = evt.detail.dirtyPluginNo;
|
||||
}
|
||||
static onGlobalMessagesChange(evt) {
|
||||
document.getElementById('filterTotalMessageNo').textContent = parseInt(document.getElementById('filterTotalMessageNo').textContent, 10) + evt.detail.totalDiff;
|
||||
document.getElementById('totalMessageNo').textContent = parseInt(document.getElementById('totalMessageNo').textContent, 10) + evt.detail.totalDiff;
|
||||
document.getElementById('totalWarningNo').textContent = parseInt(document.getElementById('totalWarningNo').textContent, 10) + evt.detail.warningDiff;
|
||||
document.getElementById('totalErrorNo').textContent = parseInt(document.getElementById('totalErrorNo').textContent, 10) + evt.detail.errorDiff;
|
||||
|
||||
/* Remove old messages from UI. */
|
||||
const generalMessagesList = document.getElementById('summary').getElementsByTagName('ul')[0];
|
||||
while (generalMessagesList.firstElementChild) {
|
||||
generalMessagesList.removeChild(generalMessagesList.firstElementChild);
|
||||
}
|
||||
|
||||
/* Add new messages. */
|
||||
if (evt.detail.messages) {
|
||||
evt.detail.messages.forEach((message) => {
|
||||
const li = document.createElement('li');
|
||||
li.className = message.type;
|
||||
/* Use the Marked library for Markdown formatting support. */
|
||||
li.innerHTML = marked(message.content[0].str);
|
||||
generalMessagesList.appendChild(li);
|
||||
});
|
||||
}
|
||||
}
|
||||
static onMasterlistChange(evt) {
|
||||
document.getElementById('masterlistRevision').textContent = evt.detail.revision;
|
||||
document.getElementById('masterlistDate').textContent = evt.detail.date;
|
||||
}
|
||||
static onFolderChange(evt) {
|
||||
loot.dom.updateSelectedGame(evt.detail.folder);
|
||||
/* Enable/disable the redate plugins option. */
|
||||
let gameSettings = undefined;
|
||||
if (loot.settings && loot.settings.games) {
|
||||
gameSettings = loot.settings.games.find((game) => {
|
||||
return game.folder === evt.detail.folder;
|
||||
});
|
||||
}
|
||||
const redateButton = document.getElementById('redatePluginsButton');
|
||||
if (gameSettings && gameSettings.type === 'Skyrim') {
|
||||
redateButton.removeAttribute('disabled');
|
||||
} else {
|
||||
redateButton.setAttribute('disabled', true);
|
||||
}
|
||||
}
|
||||
};
|
||||
}));
|
||||
|
||||
@@ -97,10 +97,10 @@
|
||||
document.addEventListener('loot-plugin-isdirty-change', onPluginIsDirtyChange);
|
||||
|
||||
/* Set up event handlers for game member variable changes. */
|
||||
document.addEventListener('loot-game-folder-change', onGameFolderChange);
|
||||
document.addEventListener('loot-game-masterlist-change', onGameMasterlistChange);
|
||||
document.addEventListener('loot-game-global-messages-change', onGameGlobalMessagesChange);
|
||||
document.addEventListener('loot-game-plugins-change', onGamePluginsChange);
|
||||
document.addEventListener('loot-game-folder-change', Game.onFolderChange);
|
||||
document.addEventListener('loot-game-masterlist-change', Game.onMasterlistChange);
|
||||
document.addEventListener('loot-game-global-messages-change', Game.onGlobalMessagesChange);
|
||||
document.addEventListener('loot-game-plugins-change', Game.onPluginsChange);
|
||||
}
|
||||
|
||||
function applyEnabledFilters(filters, settings, plugins) {
|
||||
|
||||
Reference in New Issue
Block a user