diff --git a/app/components/volumes/volumes.html b/app/components/volumes/volumes.html index 80df39615..c3fe10427 100644 --- a/app/components/volumes/volumes.html +++ b/app/components/volumes/volumes.html @@ -30,6 +30,17 @@
+ + + + +
@@ -70,7 +81,7 @@ - + {{ volume.Id|truncate:25 }} {{ volume.Driver }} @@ -85,7 +96,7 @@ Loading... - + No volumes available. diff --git a/app/components/volumes/volumesController.js b/app/components/volumes/volumesController.js index 89f3bd0c3..2bc0453e8 100644 --- a/app/components/volumes/volumesController.js +++ b/app/components/volumes/volumesController.js @@ -65,13 +65,29 @@ function ($q, $scope, VolumeService, Notifications, Pagination) { function initView() { $('#loadVolumesSpinner').show(); - VolumeService.volumes() - .then(function success(data) { - $scope.volumes = data; + + $q.all({ + attached: VolumeService.volumes({ + filters: { + 'dangling': ['false'] + } + }), + dangling: VolumeService.volumes({ + filters: { + 'dangling': ['true'] + } + }) }) - .catch(function error(err) { + .then(function success(data) { + $scope.volumes = data.attached.map(function(volume) { + volume.dangling = false; + return volume; + }).concat(data.dangling.map(function(volume) { + volume.dangling = true; + return volume; + })); + }).catch(function error(err) { Notifications.error('Failure', err, 'Unable to retrieve volumes'); - $scope.volumes = []; }) .finally(function final() { $('#loadVolumesSpinner').hide(); diff --git a/app/services/docker/volumeService.js b/app/services/docker/volumeService.js index b326d8acc..2a67bef4e 100644 --- a/app/services/docker/volumeService.js +++ b/app/services/docker/volumeService.js @@ -3,9 +3,9 @@ angular.module('portainer.services') 'use strict'; var service = {}; - service.volumes = function() { + service.volumes = function(params) { var deferred = $q.defer(); - Volume.query().$promise + Volume.query(params).$promise .then(function success(data) { var volumes = data.Volumes || []; volumes = volumes.map(function (item) {