diff options
Diffstat (limited to 'js/settings.js')
-rw-r--r-- | js/settings.js | 139 |
1 files changed, 53 insertions, 86 deletions
diff --git a/js/settings.js b/js/settings.js index da8b6df..8a8d25a 100644 --- a/js/settings.js +++ b/js/settings.js @@ -21,19 +21,10 @@ uMatrix Home: https://github.com/gorhill/uMatrix */ -/* global uDom */ - 'use strict'; -/******************************************************************************/ - (function() { - - /******************************************************************************/ - - var cachedSettings = {}; - - /******************************************************************************/ + let cachedSettings = {}; function changeUserSettings(name, value) { vAPI.messaging.send('settings.js', { @@ -43,8 +34,6 @@ }); } - /******************************************************************************/ - function changeMatrixSwitch(name, state) { vAPI.messaging.send('settings.js', { what: 'setMatrixSwitch', @@ -53,69 +42,62 @@ }); } - /******************************************************************************/ - function onChangeValueHandler(elem, setting, min, max) { - var oldVal = cachedSettings.userSettings[setting]; - var newVal = Math.round(parseFloat(elem.value)); - if ( typeof newVal !== 'number' ) { + let oldVal = cachedSettings.userSettings[setting]; + let newVal = Math.round(parseFloat(elem.value)); + if (typeof newVal !== 'number') { newVal = oldVal; } else { newVal = Math.max(newVal, min); newVal = Math.min(newVal, max); } elem.value = newVal; - if ( newVal !== oldVal ) { + if (newVal !== oldVal) { changeUserSettings(setting, newVal); } } - /******************************************************************************/ - function prepareToDie() { - onChangeValueHandler( - uDom.nodeFromId('deleteUnusedSessionCookiesAfter'), - 'deleteUnusedSessionCookiesAfter', - 15, 1440 - ); - onChangeValueHandler( - uDom.nodeFromId('clearBrowserCacheAfter'), - 'clearBrowserCacheAfter', - 15, 1440 - ); + onChangeValueHandler(uDom.nodeFromId('deleteUnusedSessionCookiesAfter'), + 'deleteUnusedSessionCookiesAfter', + 15, 1440); + onChangeValueHandler(uDom.nodeFromId('clearBrowserCacheAfter'), + 'clearBrowserCacheAfter', + 15, 1440); } - /******************************************************************************/ - function onInputChanged(ev) { - var target = ev.target; + let target = ev.target; - switch ( target.id ) { + switch (target.id) { case 'displayTextSize': changeUserSettings('displayTextSize', target.value + 'px'); break; case 'clearBrowserCache': case 'cloudStorageEnabled': case 'collapseBlacklisted': - case 'collapseBlocked': case 'colorBlindFriendly': case 'deleteCookies': case 'deleteLocalStorage': case 'deleteUnusedSessionCookies': case 'iconBadgeEnabled': case 'processHyperlinkAuditing': + case 'disableUpdateIcon': changeUserSettings(target.id, target.checked); break; + case 'collapseBlocked': + changeUserSettings(target.id, target.checked); + synchronizeWidgets(); + break; case 'noMixedContent': case 'noscriptTagsSpoofed': case 'processReferer': - changeMatrixSwitch( - target.getAttribute('data-matrix-switch'), - target.checked - ); + changeMatrixSwitch(target.getAttribute('data-matrix-switch'), + target.checked); break; case 'deleteUnusedSessionCookiesAfter': - onChangeValueHandler(target, 'deleteUnusedSessionCookiesAfter', 15, 1440); + onChangeValueHandler(target, 'deleteUnusedSessionCookiesAfter', + 15, 1440); break; case 'clearBrowserCacheAfter': onChangeValueHandler(target, 'clearBrowserCacheAfter', 15, 1440); @@ -126,71 +108,56 @@ default: break; } - - switch ( target.id ) { - case 'collapseBlocked': - synchronizeWidgets(); - break; - default: - break; - } } - /******************************************************************************/ - function synchronizeWidgets() { - var e1, e2; + let e1, e2; e1 = uDom.nodeFromId('collapseBlocked'); e2 = uDom.nodeFromId('collapseBlacklisted'); - if ( e1.checked ) { + if (e1.checked) { e2.setAttribute('disabled', ''); } else { e2.removeAttribute('disabled'); } } - /******************************************************************************/ + let onSettingsReceived = function (settings) { + // Cache copy + cachedSettings = settings; - vAPI.messaging.send( - 'settings.js', - { what: 'getUserSettings' }, - function onSettingsReceived(settings) { - // Cache copy - cachedSettings = settings; + let userSettings = settings.userSettings; + let matrixSwitches = settings.matrixSwitches; - var userSettings = settings.userSettings; - var matrixSwitches = settings.matrixSwitches; - - uDom('[data-setting-bool]').forEach(function(elem){ - elem.prop('checked', userSettings[elem.prop('id')] === true); - }); + uDom('[data-setting-bool]').forEach(function (elem) { + elem.prop('checked', userSettings[elem.prop('id')] === true); + }); - uDom('[data-matrix-switch]').forEach(function(elem){ - var switchName = elem.attr('data-matrix-switch'); - if ( typeof switchName === 'string' && switchName !== '' ) { - elem.prop('checked', matrixSwitches[switchName] === true); - } - }); + uDom('[data-matrix-switch]').forEach(function (elem) { + let switchName = elem.attr('data-matrix-switch'); + if (typeof switchName === 'string' && switchName !== '') { + elem.prop('checked', matrixSwitches[switchName] === true); + } + }); - uDom.nodeFromId('displayTextSize').value = - parseInt(userSettings.displayTextSize, 10) || 14; + uDom.nodeFromId('displayTextSize').value = + parseInt(userSettings.displayTextSize, 10) || 14; - uDom.nodeFromId('popupScopeLevel').value = userSettings.popupScopeLevel; - uDom.nodeFromId('deleteUnusedSessionCookiesAfter').value = - userSettings.deleteUnusedSessionCookiesAfter; - uDom.nodeFromId('clearBrowserCacheAfter').value = - userSettings.clearBrowserCacheAfter; + uDom.nodeFromId('popupScopeLevel').value = userSettings.popupScopeLevel; + uDom.nodeFromId('deleteUnusedSessionCookiesAfter').value = + userSettings.deleteUnusedSessionCookiesAfter; + uDom.nodeFromId('clearBrowserCacheAfter').value = + userSettings.clearBrowserCacheAfter; - synchronizeWidgets(); + synchronizeWidgets(); - document.addEventListener('change', onInputChanged); + document.addEventListener('change', onInputChanged); - // https://github.com/gorhill/httpswitchboard/issues/197 - uDom(window).on('beforeunload', prepareToDie); - } - ); - - /******************************************************************************/ + // https://github.com/gorhill/httpswitchboard/issues/197 + uDom(window).on('beforeunload', prepareToDie); + } + vAPI.messaging.send('settings.js', { + what: 'getUserSettings' + }, onSettingsReceived); })(); |