2016-05-13 18:09:12 +02:00
|
|
|
(function () {
|
|
|
|
'use strict';
|
|
|
|
|
2016-05-22 05:13:05 +02:00
|
|
|
angular.module('ariaNg').controller('MainController', ['$scope', '$interval', 'aria2RpcService', 'ariaNgSettingService', 'utils', function ($scope, $interval, aria2RpcService, ariaNgSettingService, utils) {
|
2016-05-17 16:15:28 +02:00
|
|
|
var globalStatRefreshPromise = null;
|
|
|
|
|
2016-05-13 18:09:12 +02:00
|
|
|
var processStatResult = function (stat) {
|
|
|
|
var activeCount = parseInt(stat.numActive);
|
|
|
|
var waitingCount = parseInt(stat.numWaiting);
|
|
|
|
var totalRunningCount = activeCount + waitingCount;
|
|
|
|
|
|
|
|
stat.totalRunningCount = totalRunningCount;
|
|
|
|
};
|
|
|
|
|
2016-05-17 16:15:28 +02:00
|
|
|
var refreshGlobalStat = function () {
|
2016-05-13 18:09:12 +02:00
|
|
|
aria2RpcService.getGlobalStat({
|
|
|
|
callback: function (result) {
|
|
|
|
if (result) {
|
|
|
|
processStatResult(result);
|
|
|
|
}
|
|
|
|
|
|
|
|
$scope.globalStat = result;
|
|
|
|
}
|
|
|
|
});
|
2016-05-17 16:15:28 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
refreshGlobalStat();
|
|
|
|
|
2016-05-28 16:20:42 +02:00
|
|
|
$scope.searchContext = {
|
|
|
|
text: ''
|
|
|
|
};
|
|
|
|
|
2016-05-29 17:27:47 +02:00
|
|
|
$scope.taskContext = {
|
|
|
|
list: [],
|
|
|
|
selected: {}
|
|
|
|
};
|
|
|
|
|
|
|
|
$scope.isTaskSelected = function () {
|
|
|
|
var allTasks = $scope.taskContext.list;
|
|
|
|
|
|
|
|
if (!allTasks || allTasks.length < 1) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
var selectedTasks = $scope.taskContext.selected;
|
|
|
|
|
|
|
|
for (var i = 0; i < allTasks.length; i++) {
|
|
|
|
var task = allTasks[i];
|
|
|
|
if (selectedTasks[task.gid]) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
};
|
|
|
|
|
|
|
|
$scope.selectAllTasks = function () {
|
|
|
|
var allTasks = $scope.taskContext.list;
|
|
|
|
|
|
|
|
if (!allTasks || allTasks.length < 1) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
var selectedTasks = $scope.taskContext.selected;
|
|
|
|
var isAllSelected = true;
|
|
|
|
|
|
|
|
for (var i = 0; i < allTasks.length; i++) {
|
|
|
|
var task = allTasks[i];
|
|
|
|
|
|
|
|
if (!selectedTasks[task.gid]) {
|
|
|
|
isAllSelected = false;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
for (var i = 0; i < allTasks.length; i++) {
|
|
|
|
var task = allTasks[i];
|
|
|
|
selectedTasks[task.gid] = !isAllSelected;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2016-05-22 05:13:05 +02:00
|
|
|
$scope.changeDisplayOrder = function (type, autoSetReverse) {
|
|
|
|
var oldType = utils.parseOrderType(ariaNgSettingService.getDisplayOrder());
|
|
|
|
var newType = utils.parseOrderType(type);
|
|
|
|
|
|
|
|
if (autoSetReverse && newType.type == oldType.type) {
|
|
|
|
newType.reverse = !oldType.reverse;
|
|
|
|
}
|
|
|
|
|
|
|
|
ariaNgSettingService.setDisplayOrder(newType.getValue());
|
2016-05-17 16:15:28 +02:00
|
|
|
};
|
|
|
|
|
2016-05-25 18:09:00 +02:00
|
|
|
$scope.isSetDisplayOrder = function (type) {
|
2016-05-22 05:13:05 +02:00
|
|
|
var orderType = utils.parseOrderType(ariaNgSettingService.getDisplayOrder());
|
2016-05-25 18:09:00 +02:00
|
|
|
var targetType = utils.parseOrderType(type);
|
2016-05-22 05:13:05 +02:00
|
|
|
|
2016-05-25 18:09:00 +02:00
|
|
|
return orderType.equals(targetType);
|
2016-05-17 16:15:28 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
if (ariaNgSettingService.getGlobalStatRefreshInterval() > 0) {
|
|
|
|
globalStatRefreshPromise = $interval(function () {
|
|
|
|
refreshGlobalStat();
|
|
|
|
}, ariaNgSettingService.getGlobalStatRefreshInterval());
|
|
|
|
}
|
|
|
|
|
|
|
|
$scope.$on('$destroy', function () {
|
|
|
|
if (globalStatRefreshPromise) {
|
|
|
|
$interval.cancel(globalStatRefreshPromise);
|
|
|
|
}
|
|
|
|
});
|
2016-05-13 18:09:12 +02:00
|
|
|
}]);
|
|
|
|
})();
|