partkeepr

fork of partkeepr
git clone https://git.e1e0.net/partkeepr.git
Log | Files | Refs | Submodules | README | LICENSE

commit e4e1f130b81ddb8c213c1a472d367e88287adb3b
parent 72b5e3b9cfd5ffd1ba982cdc18408eb5b59e1a3e
Author: Felicitus <felicitus@felicitus.org>
Date:   Thu,  5 Nov 2015 15:47:20 +0100

Store preferences as their actual representation and not as strings

Diffstat:
Msrc/PartKeepr/FrontendBundle/Resources/public/js/Components/User/Preferences/DisplayPreferencesPanel.js | 12++++--------
Msrc/PartKeepr/FrontendBundle/Resources/public/js/Components/User/Preferences/StockPreferences.js | 2+-
Msrc/PartKeepr/FrontendBundle/Resources/public/js/Components/User/Preferences/TipOfTheDayPreferences.js | 2+-
Msrc/PartKeepr/FrontendBundle/Resources/public/js/PartKeepr.js | 16++++++++++++----
4 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/src/PartKeepr/FrontendBundle/Resources/public/js/Components/User/Preferences/DisplayPreferencesPanel.js b/src/PartKeepr/FrontendBundle/Resources/public/js/Components/User/Preferences/DisplayPreferencesPanel.js @@ -11,7 +11,7 @@ Ext.define('PartKeepr.DisplayPreferencesPanel', { handler: Ext.bind(this.showDescriptionsHandler, this) }); - if (PartKeepr.getApplication().getUserPreference("partkeepr.categorytree.showdescriptions") == "false") { + if (PartKeepr.getApplication().getUserPreference("partkeepr.categorytree.showdescriptions") == false) { this.showDescriptionsCheckbox.setValue(false); } else { this.showDescriptionsCheckbox.setValue(true); @@ -31,7 +31,7 @@ Ext.define('PartKeepr.DisplayPreferencesPanel', { inputValue: 'standard' }); - if (PartKeepr.getApplication().getUserPreference("partkeepr.partmanager.compactlayout", false) == "true") { + if (PartKeepr.getApplication().getUserPreference("partkeepr.partmanager.compactlayout", false) == true) { this.compactLayout.setValue(true); } else { this.standardLayout.setValue(true); @@ -46,9 +46,9 @@ Ext.define('PartKeepr.DisplayPreferencesPanel', { change: function (field, newValue) { if (newValue.rb == "standard") { - value = "false"; + value = false; } else { - value = "true"; + value = true; } PartKeepr.getApplication().setUserPreference("partkeepr.partmanager.compactlayout", value); @@ -71,10 +71,6 @@ Ext.define('PartKeepr.DisplayPreferencesPanel', { showDescriptionsHandler: function (checkbox, checked) { PartKeepr.getApplication().setUserPreference("partkeepr.categorytree.showdescriptions", checked); - }, - compactLayoutHandler: function () - { - //PartKeepr.getApplication().setUserPreference("partkeepr.partmanager.compactlayout", checked); } }); diff --git a/src/PartKeepr/FrontendBundle/Resources/public/js/Components/User/Preferences/StockPreferences.js b/src/PartKeepr/FrontendBundle/Resources/public/js/Components/User/Preferences/StockPreferences.js @@ -8,7 +8,7 @@ Ext.define('PartKeepr.StockPreferencesPanel', { handler: Ext.bind(this.confirmInlineStockLevelChangesHandler, this) }); - if (PartKeepr.getApplication().getUserPreference("partkeepr.inline-stock-change.confirm") == "false") { + if (PartKeepr.getApplication().getUserPreference("partkeepr.inline-stock-change.confirm") == false) { this.confirmInlineStockLevelChangesCheckbox.setValue(false); } else { this.confirmInlineStockLevelChangesCheckbox.setValue(true); diff --git a/src/PartKeepr/FrontendBundle/Resources/public/js/Components/User/Preferences/TipOfTheDayPreferences.js b/src/PartKeepr/FrontendBundle/Resources/public/js/Components/User/Preferences/TipOfTheDayPreferences.js @@ -9,7 +9,7 @@ Ext.define('PartKeepr.TipOfTheDayPreferencesPanel', { handler: Ext.bind(this.showTipsHandler, this) }); - if (PartKeepr.getApplication().getUserPreference("partkeepr.tipoftheday.showtips") == "false") { + if (PartKeepr.getApplication().getUserPreference("partkeepr.tipoftheday.showtips") == false) { this.displayTipsOnLoginCheckbox.setValue(false); } else { this.displayTipsOnLoginCheckbox.setValue(true); diff --git a/src/PartKeepr/FrontendBundle/Resources/public/js/PartKeepr.js b/src/PartKeepr/FrontendBundle/Resources/public/js/PartKeepr.js @@ -176,7 +176,7 @@ Ext.application({ return; } - if (PartKeepr.getApplication().getUserPreference("partkeepr.tipoftheday.showtips") !== "false") { + if (PartKeepr.getApplication().getUserPreference("partkeepr.tipoftheday.showtips") !== false) { var j = Ext.create("PartKeepr.TipOfTheDayWindow"); if (j.hasTips()) { @@ -331,7 +331,12 @@ Ext.application({ var record = this.userPreferenceStore.findRecord("preferenceKey", key); if (record) { - return record.get("preferenceValue"); + var value = record.get("preferenceValue"); + var decodedValue = Ext.decode(value, true); + + if (decodedValue === null) { + return value; + } } else { return (typeof defaultValue == "undefined") ? null : defaultValue; } @@ -345,10 +350,13 @@ Ext.application({ setUserPreference: function (key, value) { var record = this.userPreferenceStore.findRecord("preferenceKey", key); + value = Ext.encode(value); if (record) { - record.set("preferenceValue", value); - record.save(); + if (record.get("preferenceValue") != value) { + record.set("preferenceValue", value); + record.save(); + } } else { var j = new PartKeepr.AuthBundle.Entity.UserPreference(); j.set("preferenceKey", key);