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

113 lines
3.4 KiB
JavaScript
Raw Normal View History

2016-05-13 18:09:12 +02:00
(function () {
'use strict';
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;
}
};
$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) {
var orderType = utils.parseOrderType(ariaNgSettingService.getDisplayOrder());
2016-05-25 18:09:00 +02:00
var targetType = utils.parseOrderType(type);
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
}]);
})();