From fa02bd8f7b7c27dc00a258da755cd0c9c5aba70e Mon Sep 17 00:00:00 2001 From: isqua Date: Tue, 27 Jan 2015 14:20:42 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B8=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20=D0=BE=D0=B1=D1=8A=D0=BA?= =?UTF-8?q?=D0=B5=D1=82=20Options=20=D0=B2=20OptionsPage=20=D0=B2=D0=BE=20?= =?UTF-8?q?=D0=B8=D0=B7=D0=B1=D0=B5=D0=B6=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF?= =?UTF-8?q?=D1=83=D1=82=D0=B0=D0=BD=D0=B8=D1=86=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chrome_point_plus/js/options.js | 34 ++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/chrome_point_plus/js/options.js b/chrome_point_plus/js/options.js index 07773e6..81bd5e9 100644 --- a/chrome_point_plus/js/options.js +++ b/chrome_point_plus/js/options.js @@ -4,7 +4,7 @@ * При создании сохраняет версию, восстанавливает настройки, слушает изменения на инпутах. * @constructor */ -function Options() { +function OptionsPage() { this.form = document.querySelector('form'); this.listenTabs(); @@ -25,7 +25,7 @@ function Options() { * Получает версию настроек. Если она не равна версии приложения, записывает в сторедж плагина настройки из инпутов * и версию приложения. */ -Options.prototype.updateOptionsFromFrom = function() { +OptionsPage.prototype.updateOptionsFromFrom = function() { chrome.storage.sync.get('options_version', function(data) { this.logVersion(data.options_version); @@ -51,7 +51,7 @@ Options.prototype.updateOptionsFromFrom = function() { /** * Сохраняет настройки */ -Options.prototype.save = function() { +OptionsPage.prototype.save = function() { var ppOptions = this.getValues(); console.log('Saving options: %O', ppOptions); @@ -62,7 +62,7 @@ Options.prototype.save = function() { /** * Получает настройки из стореджа плагина, устанавливает соответствующим инпутам соответствующие значения. */ -Options.prototype.restore = function() { +OptionsPage.prototype.restore = function() { this.checkOldStyle(); chrome.storage.sync.get('options', function(data) { @@ -97,19 +97,19 @@ Options.prototype.restore = function() { /** * @returns {Object} Хеш настроек вида { имя_настроки: значение_настройки } */ -Options.prototype.getValues = function() { +OptionsPage.prototype.getValues = function() { return this._options; }; /** * @param {Event} event Событие изменения */ -Options.prototype._onChange = function(event) { +OptionsPage.prototype._onChange = function(event) { this.updateOptionFromInput(event.target); this.save(); }; -Options.prototype.updateOptionFromInput = function(input) { +OptionsPage.prototype.updateOptionFromInput = function(input) { var key = this.getOptionKey(input.name); if (this.isBoolean(input)) { @@ -129,7 +129,7 @@ Options.prototype.updateOptionFromInput = function(input) { * @param {HTMLElement} option Элемент опции * @returns {Boolean} Является ли настройка булевой */ -Options.prototype.isBoolean = function(option) { +OptionsPage.prototype.isBoolean = function(option) { return option.getAttribute('type') === 'checkbox'; }; @@ -138,7 +138,7 @@ Options.prototype.isBoolean = function(option) { * @param {HTMLElement} option Элемент опции * @returns {Boolean} Является ли настройка енумом */ -Options.prototype.isEnum = function(option) { +OptionsPage.prototype.isEnum = function(option) { return option.getAttribute('type') === 'radio'; }; @@ -146,7 +146,7 @@ Options.prototype.isEnum = function(option) { * @param {String} name Имя инпута * @returns {String} Ключ для хеша настроек */ -Options.prototype.getOptionKey = function(name) { +OptionsPage.prototype.getOptionKey = function(name) { return name.replace(/-/g, '_'); }; @@ -154,7 +154,7 @@ Options.prototype.getOptionKey = function(name) { * @param {String} Ключ хеша настроек * @returns {String} Имя инпута */ -Options.prototype.getOptionName = function(key) { +OptionsPage.prototype.getOptionName = function(key) { return key.replace(/_/g, '-'); }; @@ -162,21 +162,21 @@ Options.prototype.getOptionName = function(key) { * Выводит в консоль версию настроек и версию плагина * @param {String} optionsVersion */ -Options.prototype.logVersion = function(optionsVersion) { +OptionsPage.prototype.logVersion = function(optionsVersion) { console.info('Point+ %s, local options are for %s', this.version, optionsVersion); }; /** * Добавляет номер версии в подвал */ -Options.prototype.showVersion = function() { +OptionsPage.prototype.showVersion = function() { document.querySelector('#version').innerHTML = this.version; }; /** * Проверяет, не старого ли формата настройки. И если старого, то удаляет их. */ -Options.prototype.checkOldStyle = function() { +OptionsPage.prototype.checkOldStyle = function() { chrome.storage.sync.get('option_fancybox', function(data) { if ((data.option_fancybox === true) || (data.option_fancybox === false)) { console.log('Found old-style options. Cleaning...'); @@ -198,7 +198,7 @@ Options.prototype.checkOldStyle = function() { /** * Показывает плашку про то, что настройки сохранились и надо обновить страницу */ -Options.prototype.updateStatus = function() { +OptionsPage.prototype.updateStatus = function() { this.status = this.status || document.querySelector('.saved'); this.status.classList.remove('hidden'); @@ -207,7 +207,7 @@ Options.prototype.updateStatus = function() { /** * Слушает события на табах */ -Options.prototype.listenTabs = function() { +OptionsPage.prototype.listenTabs = function() { var options = this; options._selectedItem = document.querySelector('.tabs-item.selected'); @@ -229,4 +229,4 @@ Options.prototype.listenTabs = function() { }); }; -new Options(); +new OptionsPage(); From 54966185d185df234eeb02fc62d7dc3db2389d1c Mon Sep 17 00:00:00 2001 From: isqua Date: Tue, 27 Jan 2015 14:28:08 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20=D1=82=D0=B5=D0=BA=D1=81=D1=82=D0=BE=D0=B2=D1=8B=D0=B9?= =?UTF-8?q?=20=D1=82=D0=B8=D0=BF=20=D0=BE=D0=BF=D1=86=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chrome_point_plus/js/options.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/chrome_point_plus/js/options.js b/chrome_point_plus/js/options.js index 81bd5e9..ecb974a 100644 --- a/chrome_point_plus/js/options.js +++ b/chrome_point_plus/js/options.js @@ -80,6 +80,7 @@ OptionsPage.prototype.restore = function() { break; case 'enum': + case 'plain': input.value = data.value; break; @@ -122,6 +123,11 @@ OptionsPage.prototype.updateOptionFromInput = function(input) { type: 'enum', value: input.value }; + } else { + this._options[key] = { + type: 'plain', + value: input.value + } } };