Uses angular-locker to store settings in localStorage

- settings.js now has its own module : 'jamstash.settings.controller'. This makes it easier to test it and identify what dependencies it has.
- Renames 'jamstash.settings' module into 'jamstash.settings.service'
- Adds an angular constant to hold the current Jamstash version in app.js.
- Adds a way to upgrade incrementally what was in localStorage : in 4.4.5, DefaultSearchType will no longer be an object but an int, so we must init it with an int value, otherwise a blank option will be displayed. We detect what version we are using and what version was stored using persistence-service.js and run the upgrade accordingly.

- Refactors almost completely persistence-service_test.js
- Unit-tests some of settings.js's methods.
This commit is contained in:
Hyzual 2015-03-22 21:48:50 +01:00
parent f98740d613
commit a97e5159bc
17 changed files with 383 additions and 150 deletions

View file

@ -32,19 +32,12 @@ angular.module('JamStash')
$scope.loadSettings = function () {
// Temporary Code to Convert Cookies added 2/2/2014
if ($cookieStore.get('Settings')) {
utils.setValue('Settings', $cookieStore.get('Settings'), false);
persistence.saveSettings($cookieStore.get('Settings'));
$cookieStore.remove('Settings');
}
if (utils.getValue('Settings')) {
$.each(utils.getValue('Settings'), function (k, v) {
if (v == 'false') { v = false; }
if (v == 'true') { v = true; }
var exclude = ['Url'];
var idx = exclude.indexOf(k);
if (idx === -1) {
globals.settings[k] = v;
}
});
var settings = persistence.getSettings();
if (settings !== undefined) {
globals.settings = _(settings).omit('Url');
}
if (utils.getValue("SavedCollections")) { globals.SavedCollections = utils.getValue("SavedCollections").split(","); }
if (utils.getValue("DefaultCollection")) { globals.DefaultCollection = utils.getValue("DefaultCollection"); }