Browse Source

support importing/exporting AriaNg Native settings

pull/106/head
MaysWind 3 years ago
parent
commit
430291b8b7
  1. 2
      app/langs/zh_Hans.txt
  2. 2
      app/langs/zh_Hant.txt
  3. 2
      app/scripts/config/defaultLanguage.js
  4. 42
      app/scripts/controllers/settings-ariang.js
  5. 4
      app/views/settings-ariang.html

2
app/langs/zh_Hans.txt

@ -253,9 +253,11 @@ RPC List Display Order=RPC 列表显示顺序
Recently Used=最近使用
RPC Alias=RPC 别名
Import / Export AriaNg Settings=导入 / 导出 AriaNg 设置
Import / Export AriaNg Native Settings=导入 / 导出 AriaNg Native 设置
Import Settings=导入设置
Export Settings=导出设置
AriaNg settings data=AriaNg 设置数据
AriaNg Native settings data=AriaNg Native 设置数据
Confirm Import=确认导入
Are you sure you want to import all settings?=您是否要导入所有设置?
Invalid settings data format!=无效的设置数据格式!

2
app/langs/zh_Hant.txt

@ -253,9 +253,11 @@ RPC List Display Order=RPC 清單顯示順序
Recently Used=最近使用
RPC Alias=RPC 別名
Import / Export AriaNg Settings=匯入 / 匯出 AriaNg 設定
Import / Export AriaNg Native Settings=匯入 / 匯出 AriaNg Native 設定
Import Settings=匯入設定
Export Settings=匯出設定
AriaNg settings data=AriaNg 設定資料
AriaNg Native settings data=AriaNg Native 設定資料
Confirm Import=確認匯入
Are you sure you want to import all settings?=您是否要匯入所有設定?
Invalid settings data format!=無效的設定資料格式!

2
app/scripts/config/defaultLanguage.js

@ -257,9 +257,11 @@
'Recently Used': 'Recently Used',
'RPC Alias': 'RPC Alias',
'Import / Export AriaNg Settings': 'Import / Export AriaNg Settings',
'Import / Export AriaNg Native Settings': 'Import / Export AriaNg Native Settings',
'Import Settings': 'Import Settings',
'Export Settings': 'Export Settings',
'AriaNg settings data': 'AriaNg settings data',
'AriaNg Native settings data': 'AriaNg Native settings data',
'Confirm Import': 'Confirm Import',
'Are you sure you want to import all settings?': 'Are you sure you want to import all settings?',
'Invalid settings data format!': 'Invalid settings data format!',

42
app/scripts/controllers/settings-ariang.js

@ -51,6 +51,44 @@
return config;
};
var importNativeSetting = function (settings, key, nativeUpdateFn) {
if (!settings.hasOwnProperty(key)) {
return;
}
$scope.context.nativeSettings[key] = settings[key];
delete settings[key];
if (angular.isFunction(nativeUpdateFn)) {
nativeUpdateFn($scope.context.nativeSettings[key]);
}
};
var importAllSettings = function (settings) {
importNativeSetting(settings, 'defaultPosition', $scope.setDefaultPosition);
importNativeSetting(settings, 'afterMainWindowClosed', $scope.setAfterMainWindowClosed);
importNativeSetting(settings, 'execCommandOnStartup', $scope.setExecCommandOnStartup);
importNativeSetting(settings, 'execCommandArgumentsOnStartup', $scope.setExecCommandArgumentsOnStartup);
importNativeSetting(settings, 'execCommandOptionsOnStartup', $scope.setExecCommandOptionsOnStartup);
ariaNgSettingService.importAllOptions(settings);
};
var exportAllSettings = function () {
var allSettings = angular.extend({}, ariaNgSettingService.exportAllOptions());
if ($scope.context.nativeSettings) {
for (const key in $scope.context.nativeSettings) {
if (!$scope.context.nativeSettings.hasOwnProperty(key)) {
continue;
}
allSettings[key] = $scope.context.nativeSettings[key];
}
}
return allSettings;
};
var setNeedRefreshPage = function () {
if (lastRefreshPageNotification) {
return;
@ -434,14 +472,14 @@
if (settingsObj) {
ariaNgCommonService.confirm('Confirm Import', 'Are you sure you want to import all settings?', 'warning', function () {
ariaNgSettingService.importAllOptions(settingsObj);
importAllSettings(settingsObj);
$window.location.reload();
});
}
};
$scope.showExportSettingsModal = function () {
$scope.context.exportSettings = $filter('json')(ariaNgSettingService.exportAllOptions());
$scope.context.exportSettings = $filter('json')(exportAllSettings());
$scope.context.exportSettingsCopied = false;
angular.element('#export-settings-modal').modal();
};

4
app/views/settings-ariang.html

@ -423,7 +423,7 @@
</div>
<div class="row">
<div class="setting-key setting-key-without-desc col-sm-4">
<span translate>Import / Export AriaNg Settings</span>
<span translate>Import / Export AriaNg Native Settings</span>
</div>
<div class="setting-value col-sm-8">
<button class="btn btn-sm btn-default" ng-click="showImportSettingsModal()">
@ -578,7 +578,7 @@
<div class="settings-table striped">
<input id="import-file-holder" type="file" style="display: none"/>
<textarea class="form-control" ng-model="context.importSettings" rows="20"
ng-placeholder="'AriaNg settings data' | translate"></textarea>
ng-placeholder="'AriaNg Native settings data' | translate"></textarea>
</div>
</div>
<div class="modal-footer">

Loading…
Cancel
Save