This repository has been archived on 2022-01-02. You can view files and clone it, but cannot push or open issues/pull-requests.
AriaNg/app/scripts/services/ariaNgSettingService.js

75 lines
2.3 KiB
JavaScript

(function () {
'use strict';
angular.module('ariaNg').factory('ariaNgSettingService', ['$location', '$translate', 'localStorageService', 'ariaNgDefaultOptions', function ($location, $translate, localStorageService, ariaNgDefaultOptions) {
var setOptions = function (options) {
return localStorageService.set('Options', options);
};
var getOptions = function () {
var options = localStorageService.get('Options');
if (!options) {
options = angular.extend({}, ariaNgDefaultOptions);
setOptions(options);
}
return options;
};
var getOption = function (key) {
return getOptions()[key];
};
var setOption = function (key, value) {
var options = getOptions();
options[key] = value;
setOptions(options);
};
return {
get: function (key) {
return getOption(key);
},
set: function (key, value) {
return setOption(key, value);
},
getLocaleName: function () {
return getOption('localeName');
},
setLocaleName: function (value) {
setOption('localeName', value);
$translate.use(value);
},
getJsonRpcUrl: function () {
var rpcHost = getOption('aria2RpcHost');
if (!rpcHost) {
rpcHost = $location.$$host + ':6800';
}
return 'ws://' + rpcHost + '/jsonrpc';
},
getGlobalStatRefreshInterval: function () {
return getOption('globalStatRefreshInterval');
},
getDownloadTaskRefreshInterval: function () {
return getOption('downloadTaskRefreshInterval');
},
getDisplayOrder: function () {
var value = getOption('displayOrder');
if (!value) {
value = 'default';
}
return value;
},
setDisplayOrder: function (value) {
setOption('displayOrder', value);
}
};
}]);
})();