Allow to filter for running downloads

i.e. downloads with some speed.
This commit is contained in:
Nils Maier 2014-03-03 21:28:00 +01:00
parent f859a0f806
commit 2712b236ba
2 changed files with 20 additions and 2 deletions

View File

@ -245,6 +245,10 @@
<input id="download-filter" type="text" ng-model="downloadFilter" autocomplete="off" ng-change="onDownloadFilter()" class="input-large"/> <input id="download-filter" type="text" ng-model="downloadFilter" autocomplete="off" ng-change="onDownloadFilter()" class="input-large"/>
<button ng-click="clearFilter()" class="btn btn-default btn-mini">Clear</button> <button ng-click="clearFilter()" class="btn btn-default btn-mini">Clear</button>
<br> <br>
<label for="filter-speed">
<input type="checkbox" ng-model="filterSpeed" id="filter-speed">
running
</label>
<label for="filter-active"> <label for="filter-active">
<input type="checkbox" ng-model="filterActive" id="filter-active"> <input type="checkbox" ng-model="filterActive" id="filter-active">
active active

View File

@ -144,6 +144,7 @@ function(
}; };
scope.toggleStateFilters = function() { scope.toggleStateFilters = function() {
scope.filterSpeed = !scope.filterSpeed;
scope.filterActive = !scope.filterActive; scope.filterActive = !scope.filterActive;
scope.filterWaiting = !scope.filterWaiting; scope.filterWaiting = !scope.filterWaiting;
scope.filterComplete = !scope.filterComplete; scope.filterComplete = !scope.filterComplete;
@ -153,6 +154,7 @@ function(
}; };
scope.resetFilters = function() { scope.resetFilters = function() {
scope.filterSpeed =
scope.filterActive = scope.filterActive =
scope.filterWaiting = scope.filterWaiting =
scope.filterComplete = scope.filterComplete =
@ -183,8 +185,20 @@ function(
scope.getDownloads = function() { scope.getDownloads = function() {
var downloads = []; var downloads = [];
if (scope.filterActive) { if (scope.filterActive) {
if (!scope.filterSpeed) {
downloads = _.filter(scope.active, function (e) {
return !+e.uploadSpeed && !+e.downloadSpeed;
});
}
else {
downloads = scope.active; downloads = scope.active;
} }
}
else if (scope.filterSpeed) {
downloads = _.filter(scope.active, function (e) {
return +e.uploadSpeed || +e.downloadSpeed;
});
}
if (scope.filterWaiting) { if (scope.filterWaiting) {
downloads = downloads.concat(_.filter(scope.waiting, function (e) { downloads = downloads.concat(_.filter(scope.waiting, function (e) {
return e.status == "waiting"; return e.status == "waiting";