diff --git a/src/index.html b/src/index.html
index 6b9bd43..8747e02 100644
--- a/src/index.html
+++ b/src/index.html
@@ -386,15 +386,16 @@
-
-
-
+
-
-
-
+
+
+
+
+
+
diff --git a/src/scripts/services/aria2SettingService.js b/src/scripts/services/aria2SettingService.js
index 4976246..5f2eecf 100644
--- a/src/scripts/services/aria2SettingService.js
+++ b/src/scripts/services/aria2SettingService.js
@@ -1,7 +1,7 @@
(function () {
'use strict';
- angular.module('ariaNg').factory('aria2SettingService', ['localStorageService', 'ariaNgConstants', 'aria2AllOptions', 'aria2GlobalAvailableOptions', 'aria2QuickSettingsAvailableOptions', 'aria2TaskAvailableOptions', 'aria2RpcService', 'ariaNgLogService', function (localStorageService, ariaNgConstants, aria2AllOptions, aria2GlobalAvailableOptions, aria2QuickSettingsAvailableOptions, aria2TaskAvailableOptions, aria2RpcService, ariaNgLogService) {
+ angular.module('ariaNg').factory('aria2SettingService', ['ariaNgConstants', 'aria2AllOptions', 'aria2GlobalAvailableOptions', 'aria2QuickSettingsAvailableOptions', 'aria2TaskAvailableOptions', 'aria2RpcService', 'ariaNgLogService', 'ariaNgStorageService', function (ariaNgConstants, aria2AllOptions, aria2GlobalAvailableOptions, aria2QuickSettingsAvailableOptions, aria2TaskAvailableOptions, aria2RpcService, ariaNgLogService, ariaNgStorageService) {
var processStatResult = function (stat) {
if (!stat) {
return stat;
@@ -20,10 +20,6 @@
return ariaNgConstants.settingHistoryKeyPrefix + '.' + key;
};
- var isSettingHistoryKey = function (key) {
- return key.indexOf(ariaNgConstants.settingHistoryKeyPrefix + '.') === 0;
- };
-
return {
isOptionKeyValid: function (key) {
var option = aria2AllOptions[key];
@@ -191,7 +187,7 @@
}
var storageKey = getSettingHistoryKey(key);
- var history = localStorageService.get(storageKey) || [];
+ var history = ariaNgStorageService.get(storageKey) || [];
var newHistory = [];
for (var i = 0; i < Math.min(history.length, ariaNgConstants.historyMaxStoreCount); i++) {
@@ -206,7 +202,7 @@
}
var storageKey = getSettingHistoryKey(key);
- var history = localStorageService.get(storageKey) || [];
+ var history = ariaNgStorageService.get(storageKey) || [];
var newHistory = [];
newHistory.push(value);
@@ -216,17 +212,15 @@
}
}
- localStorageService.set(storageKey, newHistory);
+ ariaNgStorageService.set(storageKey, newHistory);
return newHistory;
},
clearSettingsHistorys: function () {
- var keys = localStorageService.keys();
+ var keys = ariaNgStorageService.keys(ariaNgConstants.settingHistoryKeyPrefix + '.');
for (var i = 0; i < keys.length; i++) {
- if (isSettingHistoryKey(keys[i])) {
- localStorageService.remove(keys[i]);
- }
+ ariaNgStorageService.remove(keys[i]);
}
},
getGlobalOption: function (callback, silent) {
diff --git a/src/scripts/services/ariaNgLanguageLoader.js b/src/scripts/services/ariaNgLanguageLoader.js
index 707e52e..4fe90e3 100644
--- a/src/scripts/services/ariaNgLanguageLoader.js
+++ b/src/scripts/services/ariaNgLanguageLoader.js
@@ -1,7 +1,7 @@
(function () {
'use strict';
- angular.module('ariaNg').factory('ariaNgLanguageLoader', ['$http', '$q', 'localStorageService', 'ariaNgConstants', 'ariaNgLanguages', 'ariaNgNotificationService', 'ariaNgLogService', function ($http, $q, localStorageService, ariaNgConstants, ariaNgLanguages, ariaNgNotificationService, ariaNgLogService) {
+ angular.module('ariaNg').factory('ariaNgLanguageLoader', ['$http', '$q', 'ariaNgConstants', 'ariaNgLanguages', 'ariaNgNotificationService', 'ariaNgLogService', 'ariaNgStorageService', function ($http, $q, ariaNgConstants, ariaNgLanguages, ariaNgNotificationService, ariaNgLogService, ariaNgStorageService) {
var getKeyValuePair = function (line) {
for (var i = 0; i < line.length; i++) {
if (i > 0 && line.charAt(i - 1) !== '\\' && line.charAt(i) === '=') {
@@ -90,7 +90,7 @@
}
var languageKey = ariaNgConstants.languageStorageKeyPrefix + '.' + options.key;
- var languageResource = localStorageService.get(languageKey);
+ var languageResource = ariaNgStorageService.get(languageKey);
if (languageResource) {
deferred.resolve(languageResource);
@@ -103,7 +103,7 @@
method: 'GET'
}).then(function onSuccess(response) {
var languageObject = getLanguageObject(response.data);
- localStorageService.set(languageKey, languageObject);
+ ariaNgStorageService.set(languageKey, languageObject);
return deferred.resolve(languageObject);
}).catch(function onError(response) {
ariaNgLogService.warn('[ariaNgLanguageLoader] cannot get language resource');
diff --git a/src/scripts/services/ariaNgSettingService.js b/src/scripts/services/ariaNgSettingService.js
index c971037..44c77f7 100644
--- a/src/scripts/services/ariaNgSettingService.js
+++ b/src/scripts/services/ariaNgSettingService.js
@@ -1,10 +1,10 @@
(function () {
'use strict';
- angular.module('ariaNg').factory('ariaNgSettingService', ['$window', '$location', '$filter', 'localStorageService', 'ariaNgConstants', 'ariaNgDefaultOptions', 'ariaNgLanguages', 'ariaNgCommonService', 'ariaNgLogService', function ($window, $location, $filter, localStorageService, ariaNgConstants, ariaNgDefaultOptions, ariaNgLanguages, ariaNgCommonService, ariaNgLogService) {
+ angular.module('ariaNg').factory('ariaNgSettingService', ['$window', '$location', '$filter', 'ariaNgConstants', 'ariaNgDefaultOptions', 'ariaNgLanguages', 'ariaNgCommonService', 'ariaNgLogService', 'ariaNgStorageService', function ($window, $location, $filter, ariaNgConstants, ariaNgDefaultOptions, ariaNgLanguages, ariaNgCommonService, ariaNgLogService, ariaNgStorageService) {
var browserFeatures = (function () {
- var supportLocalStroage = localStorageService.isSupported;
- var supportCookies = $window.navigator.cookieEnabled;
+ var supportLocalStroage = ariaNgStorageService.isLocalStorageSupported();
+ var supportCookies = ariaNgStorageService.isCookiesSupported();
return {
localStroage: supportLocalStroage,
@@ -110,11 +110,11 @@
};
var setOptions = function (options) {
- return localStorageService.set(ariaNgConstants.optionStorageKey, options);
+ return ariaNgStorageService.set(ariaNgConstants.optionStorageKey, options);
};
var getOptions = function () {
- var options = localStorageService.get(ariaNgConstants.optionStorageKey);
+ var options = ariaNgStorageService.get(ariaNgConstants.optionStorageKey);
if (options && !ariaNgLanguages[options.language]) {
options.language = getLanguageNameFromAliasOrDefaultLanguage(options.language);
@@ -146,7 +146,7 @@
};
var clearAll = function () {
- return localStorageService.clearAll();
+ return ariaNgStorageService.clearAll();
};
var getOption = function (key) {
diff --git a/src/scripts/services/ariaNgStorageService.js b/src/scripts/services/ariaNgStorageService.js
new file mode 100644
index 0000000..b74a3aa
--- /dev/null
+++ b/src/scripts/services/ariaNgStorageService.js
@@ -0,0 +1,43 @@
+(function () {
+ 'use strict';
+
+ angular.module('ariaNg').factory('ariaNgStorageService', ['$window', 'localStorageService', function ($window, localStorageService) {
+ return {
+ isLocalStorageSupported: function () {
+ return localStorageService.isSupported;
+ },
+ isCookiesSupported: function () {
+ return localStorageService.cookie.isSupported;
+ },
+ get: function (key) {
+ return localStorageService.get(key);
+ },
+ set: function (key, value) {
+ return localStorageService.set(key, value);
+ },
+ remove: function (key) {
+ return localStorageService.remove(key);
+ },
+ clearAll: function () {
+ return localStorageService.clearAll();
+ },
+ keys: function (prefix) {
+ var allKeys = localStorageService.keys();
+
+ if (!allKeys || !allKeys.length || !prefix) {
+ return allKeys;
+ }
+
+ var result = [];
+
+ for (var i = 0; i < allKeys.length; i++) {
+ if (allKeys[i].indexOf(prefix) >= 0) {
+ result.push(allKeys[i]);
+ }
+ }
+
+ return result;
+ }
+ };
+ }]);
+}());