2016-06-18 18:11:19 +02:00
|
|
|
(function () {
|
|
|
|
'use strict';
|
|
|
|
|
2016-06-19 17:10:26 +02:00
|
|
|
angular.module('ariaNg').controller('NewTaskController', ['$rootScope', '$scope', '$location', 'aria2SettingService', 'aria2TaskService', function ($rootScope, $scope, $location, aria2SettingService, aria2TaskService) {
|
|
|
|
var tabOrders = ['download', 'options'];
|
2016-06-18 18:11:19 +02:00
|
|
|
|
2016-06-19 17:10:26 +02:00
|
|
|
$scope.context = {
|
|
|
|
currentTab: 'download',
|
|
|
|
urls: '',
|
2016-06-20 18:20:30 +02:00
|
|
|
availableOptions: (function () {
|
|
|
|
var keys = aria2SettingService.getNewTaskOptionKeys();
|
|
|
|
|
|
|
|
return aria2SettingService.getSpecifiedOptions(keys);
|
|
|
|
})(),
|
2016-06-19 17:10:26 +02:00
|
|
|
globalOptions: null,
|
|
|
|
options: {}
|
|
|
|
};
|
|
|
|
|
2016-06-20 17:45:33 +02:00
|
|
|
$scope.changeTab = function (tabName) {
|
|
|
|
if (tabName == 'options') {
|
|
|
|
$scope.loadDefaultOption();
|
|
|
|
}
|
|
|
|
|
|
|
|
$scope.context.currentTab = tabName;
|
|
|
|
};
|
|
|
|
|
2016-06-19 17:10:26 +02:00
|
|
|
$rootScope.swipeActions.extentLeftSwipe = function () {
|
|
|
|
var tabIndex = tabOrders.indexOf($scope.context.currentTab);
|
|
|
|
|
|
|
|
if (tabIndex < tabOrders.length - 1) {
|
2016-06-20 17:45:33 +02:00
|
|
|
$scope.changeTab(tabOrders[tabIndex + 1]);
|
2016-06-19 17:10:26 +02:00
|
|
|
return true;
|
|
|
|
} else {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
$rootScope.swipeActions.extentRightSwipe = function () {
|
|
|
|
var tabIndex = tabOrders.indexOf($scope.context.currentTab);
|
|
|
|
|
|
|
|
if (tabIndex > 0) {
|
2016-06-20 17:45:33 +02:00
|
|
|
$scope.changeTab(tabOrders[tabIndex - 1]);
|
2016-06-19 17:10:26 +02:00
|
|
|
return true;
|
|
|
|
} else {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
$scope.loadDefaultOption = function () {
|
|
|
|
if ($scope.context.globalOptions) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
$rootScope.loadPromise = aria2SettingService.getGlobalOption(function (response) {
|
|
|
|
if (response.success) {
|
|
|
|
$scope.context.globalOptions = response.data;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
$scope.startDownload = function (pauseOnAdded) {
|
|
|
|
var urls = $scope.context.urls.split('\n');
|
|
|
|
var options = angular.copy($scope.context.options);
|
2016-06-18 18:11:19 +02:00
|
|
|
var tasks = [];
|
|
|
|
|
|
|
|
for (var i = 0; i < urls.length; i++) {
|
|
|
|
tasks.push({
|
|
|
|
urls: [urls[i].trim()],
|
2016-06-19 17:10:26 +02:00
|
|
|
options: options
|
2016-06-18 18:11:19 +02:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2016-06-20 17:37:25 +02:00
|
|
|
$rootScope.loadPromise = aria2TaskService.newUriTasks(tasks, pauseOnAdded, function (response) {
|
2016-06-18 18:11:19 +02:00
|
|
|
if (!response.hasSuccess) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2016-06-19 17:10:26 +02:00
|
|
|
if (pauseOnAdded) {
|
|
|
|
$location.path('/waiting');
|
|
|
|
} else {
|
|
|
|
$location.path('/downloading');
|
|
|
|
}
|
2016-06-18 18:11:19 +02:00
|
|
|
});
|
|
|
|
};
|
2016-06-19 17:10:26 +02:00
|
|
|
|
|
|
|
$scope.setOption = function (key, value, optionStatus) {
|
|
|
|
if (value != '') {
|
|
|
|
$scope.context.options[key] = value;
|
|
|
|
} else {
|
|
|
|
delete $scope.context.options[key];
|
|
|
|
}
|
|
|
|
|
|
|
|
optionStatus.setReady();
|
|
|
|
};
|
2016-06-18 18:11:19 +02:00
|
|
|
}]);
|
|
|
|
})();
|