mirror of https://github.com/Radarr/Radarr
client side config uses localstorage instead of cookies
This commit is contained in:
parent
95a9a297bc
commit
347bcb0cf4
45
UI/Config.js
45
UI/Config.js
|
@ -1,55 +1,20 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
define(['app'], function () {
|
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) {
|
NzbDrone.Config.GetValue = function (key, defaultValue) {
|
||||||
var cookie = NzbDrone.Config.GetCookie();
|
|
||||||
|
|
||||||
if (!cookie) {
|
var storeValue = localStorage.getItem(key);
|
||||||
|
|
||||||
|
if (!storeValue) {
|
||||||
return defaultValue;
|
return defaultValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var value = cookie[key];
|
return storeValue;
|
||||||
|
|
||||||
if (value === undefined) {
|
|
||||||
return defaultValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
else {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
NzbDrone.Config.SetValue = function (key, value) {
|
NzbDrone.Config.SetValue = function (key, value) {
|
||||||
var cookie = NzbDrone.Config.GetCookie();
|
|
||||||
|
|
||||||
if (!cookie) {
|
|
||||||
cookie = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log('Config: [{0}] => [{1}] '.format(key, value));
|
console.log('Config: [{0}] => [{1}] '.format(key, value));
|
||||||
|
localStorage.setItem(key, value);
|
||||||
cookie[key] = value;
|
|
||||||
NzbDrone.Config.SetCookie(cookie);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
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/jquery.backstretch.js"></script>
|
||||||
<script src="/JsLibraries/sugar.js"></script>
|
<script src="/JsLibraries/sugar.js"></script>
|
||||||
<script src="/JsLibraries/fullcalendar.js"></script>
|
<script src="/JsLibraries/fullcalendar.js"></script>
|
||||||
<script src="/JsLibraries/jquery.cookie.js"></script>
|
|
||||||
|
|
||||||
<script src="/templates.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 New Issue