mirror of
https://github.com/Sonarr/Sonarr
synced 2024-12-25 09:18:34 +00:00
client side config uses localstorage instead of cookies
This commit is contained in:
parent
95a9a297bc
commit
347bcb0cf4
3 changed files with 5 additions and 136 deletions
45
UI/Config.js
45
UI/Config.js
|
@ -1,55 +1,20 @@
|
|||
"use strict";
|
||||
define(['app'], function () {
|
||||
|
||||
$.cookie.json = true;
|
||||
|
||||
NzbDrone.Config.SeriesViewStyle = function (value) {
|
||||
var key = 'seriesViewStyle';
|
||||
|
||||
if (value !== undefined) {
|
||||
NzbDrone.Config.SetValue(key, value);
|
||||
}
|
||||
else {
|
||||
return NzbDrone.Config.GetValue(key, 1);
|
||||
}
|
||||
};
|
||||
|
||||
NzbDrone.Config.GetValue = function (key, defaultValue) {
|
||||
var cookie = NzbDrone.Config.GetCookie();
|
||||
|
||||
if (!cookie) {
|
||||
var storeValue = localStorage.getItem(key);
|
||||
|
||||
if (!storeValue) {
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
var value = cookie[key];
|
||||
|
||||
if (value === undefined) {
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
else {
|
||||
return value;
|
||||
}
|
||||
return storeValue;
|
||||
};
|
||||
|
||||
NzbDrone.Config.SetValue = function (key, value) {
|
||||
var cookie = NzbDrone.Config.GetCookie();
|
||||
|
||||
if (!cookie) {
|
||||
cookie = {};
|
||||
}
|
||||
|
||||
console.log('Config: [{0}] => [{1}] '.format(key, value));
|
||||
|
||||
cookie[key] = value;
|
||||
NzbDrone.Config.SetCookie(cookie);
|
||||
localStorage.setItem(key, value);
|
||||
};
|
||||
|
||||
NzbDrone.Config.GetCookie = function () {
|
||||
return $.cookie('NzbDroneConfig');
|
||||
};
|
||||
|
||||
NzbDrone.Config.SetCookie = function (cookie) {
|
||||
$.cookie('NzbDroneConfig', cookie, { expires: 365, path: '/' });
|
||||
};
|
||||
});
|
||||
|
|
|
@ -93,7 +93,6 @@
|
|||
<script src="/JsLibraries/jquery.backstretch.js"></script>
|
||||
<script src="/JsLibraries/sugar.js"></script>
|
||||
<script src="/JsLibraries/fullcalendar.js"></script>
|
||||
<script src="/JsLibraries/jquery.cookie.js"></script>
|
||||
|
||||
<script src="/templates.js"></script>
|
||||
|
||||
|
|
|
@ -1,95 +0,0 @@
|
|||
/*!
|
||||
* jQuery Cookie Plugin v1.3.1
|
||||
* https://github.com/carhartl/jquery-cookie
|
||||
*
|
||||
* Copyright 2013 Klaus Hartl
|
||||
* Released under the MIT license
|
||||
*/
|
||||
(function (factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as anonymous module.
|
||||
define(['jquery'], factory);
|
||||
} else {
|
||||
// Browser globals.
|
||||
factory(jQuery);
|
||||
}
|
||||
}(function ($) {
|
||||
|
||||
var pluses = /\+/g;
|
||||
|
||||
function raw(s) {
|
||||
return s;
|
||||
}
|
||||
|
||||
function decoded(s) {
|
||||
return decodeURIComponent(s.replace(pluses, ' '));
|
||||
}
|
||||
|
||||
function converted(s) {
|
||||
if (s.indexOf('"') === 0) {
|
||||
// This is a quoted cookie as according to RFC2068, unescape
|
||||
s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
|
||||
}
|
||||
try {
|
||||
return config.json ? JSON.parse(s) : s;
|
||||
} catch(er) {}
|
||||
}
|
||||
|
||||
var config = $.cookie = function (key, value, options) {
|
||||
|
||||
// write
|
||||
if (value !== undefined) {
|
||||
options = $.extend({}, config.defaults, options);
|
||||
|
||||
if (typeof options.expires === 'number') {
|
||||
var days = options.expires, t = options.expires = new Date();
|
||||
t.setDate(t.getDate() + days);
|
||||
}
|
||||
|
||||
value = config.json ? JSON.stringify(value) : String(value);
|
||||
|
||||
return (document.cookie = [
|
||||
config.raw ? key : encodeURIComponent(key),
|
||||
'=',
|
||||
config.raw ? value : encodeURIComponent(value),
|
||||
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
|
||||
options.path ? '; path=' + options.path : '',
|
||||
options.domain ? '; domain=' + options.domain : '',
|
||||
options.secure ? '; secure' : ''
|
||||
].join(''));
|
||||
}
|
||||
|
||||
// read
|
||||
var decode = config.raw ? raw : decoded;
|
||||
var cookies = document.cookie.split('; ');
|
||||
var result = key ? undefined : {};
|
||||
for (var i = 0, l = cookies.length; i < l; i++) {
|
||||
var parts = cookies[i].split('=');
|
||||
var name = decode(parts.shift());
|
||||
var cookie = decode(parts.join('='));
|
||||
|
||||
if (key && key === name) {
|
||||
result = converted(cookie);
|
||||
break;
|
||||
}
|
||||
|
||||
if (!key) {
|
||||
result[name] = converted(cookie);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
config.defaults = {};
|
||||
|
||||
$.removeCookie = function (key, options) {
|
||||
if ($.cookie(key) !== undefined) {
|
||||
// Must not alter options, thus extending a fresh object...
|
||||
$.cookie(key, '', $.extend({}, options, { expires: -1 }));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
}));
|
Loading…
Reference in a new issue