Просмотр исходного кода

merge AriaNg commits (https://github.com/mayswind/AriaNg/commit/a28a8d58bbebe3e5b9ffb9eff4f1e25290b7e423 https://github.com/mayswind/AriaNg/commit/816363d5e58274af4ee34003eba4d5c3d9e22b40 https://github.com/mayswind/AriaNg/commit/b53b87c3ac3f823e61afdd837f72b6305939b998 https://github.com/mayswind/AriaNg/commit/1d253b4a17cf80d968fc1611ed14fdf6ce897f53)

MaysWind 2 лет назад
Родитель
Сommit
14cd39e130

+ 1 - 0
app/langs/zh_Hans.txt

@@ -252,6 +252,7 @@ Action After Main Window Closed=关闭主界面后执行操作
 Exit Application=退出程序
 Minimize to Tray=最小化到托盘
 RPC List Display Order=RPC 列表显示顺序
+Each Task List Page Uses Independent Display Order=各任务列表页面使用独立显示顺序
 Recently Used=最近使用
 RPC Alias=RPC 别名
 Import / Export AriaNg Settings=导入 / 导出 AriaNg 设置

+ 1 - 0
app/langs/zh_Hant.txt

@@ -252,6 +252,7 @@ Action After Main Window Closed=關閉主介面後執行操作
 Exit Application=退出程式
 Minimize to Tray=最小化到托盤
 RPC List Display Order=RPC 清單顯示順序
+Each Task List Page Uses Independent Display Order=各工作清單頁面使用獨立顯示順序
 Recently Used=最近使用
 RPC Alias=RPC 別名
 Import / Export AriaNg Settings=匯入 / 匯出 AriaNg 設定

+ 3 - 0
app/scripts/config/constants.js

@@ -54,7 +54,10 @@
         includePrefixWhenCopyingFromTaskDetails: true,
         showPiecesInfoInTaskDetailPage: 'le10240',
         afterRetryingTask: 'task-list-downloading',
+        taskListIndependentDisplayOrder: false,
         displayOrder: 'default:asc',
+        waitingTaskListPageDisplayOrder: 'default:asc',
+        stoppedTaskListPageDisplayOrder: 'default:asc',
         fileListDisplayOrder: 'default:asc',
         peerListDisplayOrder: 'default:asc'
     });

+ 2 - 2
app/scripts/controllers/list.js

@@ -75,7 +75,7 @@
         };
 
         $scope.getOrderType = function () {
-            return ariaNgSettingService.getDisplayOrder();
+            return ariaNgSettingService.getDisplayOrder(location);
         };
 
         $scope.isSupportDragTask = function () {
@@ -83,7 +83,7 @@
                 return false;
             }
 
-            var displayOrder = ariaNgCommonService.parseOrderType(ariaNgSettingService.getDisplayOrder());
+            var displayOrder = ariaNgCommonService.parseOrderType(ariaNgSettingService.getDisplayOrder(location));
 
             return location === 'waiting' && displayOrder.type === 'default';
         };

+ 15 - 3
app/scripts/controllers/main.js

@@ -5,6 +5,16 @@
         var pageTitleRefreshPromise = null;
         var globalStatRefreshPromise = null;
 
+        var getTaskListPageType = function () {
+            var location = $location.path().substring(1);
+
+            if (location === 'downloading' || location === 'waiting' || location === 'stopped') {
+                return location;
+            } else {
+                return '';
+            }
+        };
+
         var refreshPageTitle = function () {
             var title = ariaNgTitleService.getFinalTitleByGlobalStat({
                 globalStat: $scope.globalStat,
@@ -392,18 +402,20 @@
         };
 
         $scope.changeDisplayOrder = function (type, autoSetReverse) {
-            var oldType = ariaNgCommonService.parseOrderType(ariaNgSettingService.getDisplayOrder());
+            var taskListPageType = getTaskListPageType();
+            var oldType = ariaNgCommonService.parseOrderType(ariaNgSettingService.getDisplayOrder(taskListPageType));
             var newType = ariaNgCommonService.parseOrderType(type);
 
             if (autoSetReverse && newType.type === oldType.type) {
                 newType.reverse = !oldType.reverse;
             }
 
-            ariaNgSettingService.setDisplayOrder(newType.getValue());
+            ariaNgSettingService.setDisplayOrder(newType.getValue(), taskListPageType);
         };
 
         $scope.isSetDisplayOrder = function (type) {
-            var orderType = ariaNgCommonService.parseOrderType(ariaNgSettingService.getDisplayOrder());
+            var taskListPageType = getTaskListPageType();
+            var orderType = ariaNgCommonService.parseOrderType(ariaNgSettingService.getDisplayOrder(taskListPageType));
             var targetType = ariaNgCommonService.parseOrderType(type);
 
             return orderType.equals(targetType);

+ 4 - 0
app/scripts/controllers/settings-ariang.js

@@ -357,6 +357,10 @@
             ariaNgSettingService.setRPCListDisplayOrder(value);
         };
 
+        $scope.setTaskListIndependentDisplayOrder = function (value) {
+            ariaNgSettingService.setTaskListIndependentDisplayOrder(value);
+        };
+
         $scope.setKeyboardShortcuts = function (value) {
             ariaNgSettingService.setKeyboardShortcuts(value);
         };

+ 25 - 4
app/scripts/services/ariaNgSettingService.js

@@ -668,8 +668,28 @@
 
                 return true;
             },
-            getDisplayOrder: function () {
-                var value = getOption('displayOrder');
+            getTaskListIndependentDisplayOrder: function () {
+                return getOption('taskListIndependentDisplayOrder');
+            },
+            setTaskListIndependentDisplayOrder: function (value) {
+                setOption('taskListIndependentDisplayOrder', value);
+            },
+            getTaskListDisplayOrderKey: function (taskListPageType) {
+                var optionKey = 'displayOrder';
+
+                if (this.getTaskListIndependentDisplayOrder()) {
+                    if (taskListPageType === 'waiting') {
+                        optionKey = 'waitingTaskListPageDisplayOrder';
+                    } else if (taskListPageType === 'stopped') {
+                        optionKey = 'stoppedTaskListPageDisplayOrder';
+                    }
+                }
+
+                return optionKey;
+            },
+            getDisplayOrder: function (taskListPageType) {
+                var optionKey = this.getTaskListDisplayOrderKey(taskListPageType);
+                var value = getOption(optionKey);
 
                 if (!value) {
                     value = 'default:asc';
@@ -677,8 +697,9 @@
 
                 return value;
             },
-            setDisplayOrder: function (value) {
-                setOption('displayOrder', value);
+            setDisplayOrder: function (value, taskListPageType) {
+                var optionKey = this.getTaskListDisplayOrderKey(taskListPageType);
+                setOption(optionKey, value);
             },
             getFileListDisplayOrder: function () {
                 var value = getOption('fileListDisplayOrder');

+ 28 - 0
app/styles/core/core.css

@@ -105,6 +105,30 @@ td {
     overflow-x: hidden;
 }
 
+@media (min-height: 360px) {
+    .main-header .rpcselect-dropdown {
+        max-height: 260px;
+    }
+}
+
+@media (min-height: 480px) {
+    .main-header .rpcselect-dropdown {
+        max-height: 360px;
+    }
+}
+
+@media (min-height: 600px) {
+    .main-header .rpcselect-dropdown {
+        max-height: 480px;
+    }
+}
+
+@media (min-height: 720px) {
+    .main-header .rpcselect-dropdown {
+        max-height: 600px;
+    }
+}
+
 .main-sidebar {
     z-index: 1010;
 }
@@ -290,6 +314,10 @@ td {
     min-height: 28px;
 }
 
+::-webkit-scrollbar-track {
+    background-color: #fff;
+}
+
 ::-webkit-scrollbar-thumb:hover, ::-webkit-scrollbar-thumb:active {
     background-color: #d4dfe7;
 }

+ 4 - 0
app/styles/core/extend.css

@@ -77,6 +77,10 @@
     display: table-cell;
 }
 
+.label {
+    font-size: 85%;
+}
+
 /* font-awesome extend */
 .fa-half {
     font-size: 0.5em;

+ 4 - 0
app/styles/theme/default-dark.css

@@ -348,6 +348,10 @@
 }
 
 /* scrollbar */
+.theme-dark.skin-aria-ng ::-webkit-scrollbar-track {
+    background-color: #1a1a1a;
+}
+
 .theme-dark.skin-aria-ng ::-webkit-scrollbar-thumb {
     background-color: #3c4144;
 }

+ 11 - 0
app/views/settings-ariang.html

@@ -293,6 +293,17 @@
                             </select>
                         </div>
                     </div>
+                    <div class="row">
+                        <div class="setting-key setting-key-without-desc col-sm-4">
+                            <span translate>Each Task List Page Uses Independent Display Order</span>
+                        </div>
+                        <div class="setting-value col-sm-8">
+                            <select class="form-control" style="width: 100%;" ng-model="context.settings.taskListIndependentDisplayOrder"
+                                    ng-change="setTaskListIndependentDisplayOrder(context.settings.taskListIndependentDisplayOrder)"
+                                    ng-options="option.value as (option.name | translate) for option in context.trueFalseOptions">
+                            </select>
+                        </div>
+                    </div>
                     <div class="row">
                         <div class="setting-key setting-key-without-desc col-sm-4">
                             <span translate>Action After Creating New Tasks</span>