You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*******************************************************************************
µMatrix - a Chromium browser extension to black/white list requests. Copyright (C) 2014 Raymond Hill
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see {http://www.gnu.org/licenses/}.
Home: https://github.com/gorhill/uMatrix
*/
/* global vAPI, uDom */ /* jshint multistr: true */
/******************************************************************************/
(function() {
'use strict';
/******************************************************************************/
var messager = vAPI.messaging.channel('settings.js');
var cachedUserSettings = {};
/******************************************************************************/
function changeUserSettings(name, value) { messager.send({ what: 'userSettings', name: name, value: value }); }
/******************************************************************************/
function prepareToDie() { }
/******************************************************************************/
var installEventHandlers = function() { // `data-range` allows to add/remove bool properties without
// changing code.
uDom('input[data-range="bool"]').on('change', function() { changeUserSettings(this.id, this.checked); });
uDom('input[name="displayTextSize"]').on('change', function(){ changeUserSettings('displayTextSize', this.value); });
// https://github.com/gorhill/httpswitchboard/issues/197
uDom(window).on('beforeunload', prepareToDie); };
/******************************************************************************/
uDom.onLoad(function() { var onUserSettingsReceived = function(userSettings) { // Cache copy
cachedUserSettings = userSettings;
// `data-range` allows to add/remove bool properties without
// changing code.
uDom('input[data-range="bool"]').forEach(function(elem) { elem.prop('checked', userSettings[elem.attr('id')] === true); });
uDom('input[name="displayTextSize"]').forEach(function(elem) { elem.prop('checked', elem.val() === userSettings.displayTextSize); });
installEventHandlers(); }; messager.send({ what: 'getUserSettings' }, onUserSettingsReceived); });
/******************************************************************************/
})();
|