diff --git a/app/components/images/images.html b/app/components/images/images.html index 2b078d290..fc2fbf06d 100644 --- a/app/components/images/images.html +++ b/app/components/images/images.html @@ -70,6 +70,17 @@
+ + + + +
@@ -110,9 +121,11 @@ - + - {{ image.Id|truncate:20}} + + {{ image.Id|truncate:20}} + Unused {{ tag }} diff --git a/app/components/networks/networks.html b/app/components/networks/networks.html index aa0286ac9..5d8c110be 100644 --- a/app/components/networks/networks.html +++ b/app/components/networks/networks.html @@ -134,7 +134,7 @@ {{ network.Name|truncate:40}} - {{ network.Id }} + {{ network.Id|truncate:20 }} {{ network.Scope }} {{ network.Driver }} {{ network.IPAM.Driver }} diff --git a/app/components/service/includes/tasks.html b/app/components/service/includes/tasks.html index 49a2845a8..e182e4ad3 100644 --- a/app/components/service/includes/tasks.html +++ b/app/components/service/includes/tasks.html @@ -49,7 +49,7 @@ - {{ task.Id }} + {{ task.Id }} {{ task.Status.State }} {{ task.Slot }} {{ task.NodeId | tasknodename: nodes }} diff --git a/app/components/volumes/volumes.html b/app/components/volumes/volumes.html index c3fe10427..d0eb0f744 100644 --- a/app/components/volumes/volumes.html +++ b/app/components/volumes/volumes.html @@ -83,7 +83,7 @@ - {{ volume.Id|truncate:25 }} + {{ volume.Id|truncate:25 }} {{ volume.Driver }} {{ volume.Mountpoint | truncate:52 }} diff --git a/app/models/docker/image.js b/app/models/docker/image.js index d050cfe9f..d6188a37d 100644 --- a/app/models/docker/image.js +++ b/app/models/docker/image.js @@ -3,6 +3,7 @@ function ImageViewModel(data) { this.Tag = data.Tag; this.Repository = data.Repository; this.Created = data.Created; + this.Containers = data.dataUsage.Containers; this.Checked = false; this.RepoTags = data.RepoTags; this.VirtualSize = data.VirtualSize; diff --git a/app/rest/docker/system.js b/app/rest/docker/system.js index ccc3e61e2..242f1f120 100644 --- a/app/rest/docker/system.js +++ b/app/rest/docker/system.js @@ -12,6 +12,7 @@ angular.module('portainer.rest') method: 'GET', params: { action: 'events', since: '@since', until: '@until' }, isArray: true, transformResponse: jsonObjectsToArrayHandler }, - auth: { method: 'POST', params: { action: 'auth' } } + auth: { method: 'POST', params: { action: 'auth' } }, + dataUsage: { method: 'GET', params: { action: 'system/df' } } }); }]); diff --git a/app/services/docker/imageService.js b/app/services/docker/imageService.js index 2966abdaf..8a1e49fb8 100644 --- a/app/services/docker/imageService.js +++ b/app/services/docker/imageService.js @@ -1,5 +1,5 @@ angular.module('portainer.services') -.factory('ImageService', ['$q', 'Image', 'ImageHelper', 'RegistryService', 'HttpRequestHelper', function ImageServiceFactory($q, Image, ImageHelper, RegistryService, HttpRequestHelper) { +.factory('ImageService', ['$q', 'Image', 'ImageHelper', 'RegistryService', 'HttpRequestHelper', 'SystemService', function ImageServiceFactory($q, Image, ImageHelper, RegistryService, HttpRequestHelper, SystemService) { 'use strict'; var service = {}; @@ -22,9 +22,17 @@ angular.module('portainer.services') service.images = function() { var deferred = $q.defer(); - Image.query({}).$promise + + $q.all({ + dataUsage: SystemService.dataUsage(), + images: Image.query({}).$promise + }) .then(function success(data) { - var images = data.map(function (item) { + var images = data.images.map(function(item) { + item.dataUsage = data.dataUsage.Images.find(function(usage) { + return item.Id === usage.Id; + }); + return new ImageViewModel(item); }); deferred.resolve(images); diff --git a/app/services/docker/systemService.js b/app/services/docker/systemService.js index 4b4bf85b2..4c017c0be 100644 --- a/app/services/docker/systemService.js +++ b/app/services/docker/systemService.js @@ -40,6 +40,10 @@ angular.module('portainer.services') return deferred.promise; }; + + service.dataUsage = function () { + return System.dataUsage().$promise; + }; return service; }]); diff --git a/assets/css/app.css b/assets/css/app.css index 3eb9b9c4e..e9b61a130 100644 --- a/assets/css/app.css +++ b/assets/css/app.css @@ -513,3 +513,8 @@ ul.sidebar .sidebar-list .sidebar-sublist a.active { opacity: 0.9; } /*!toaster override*/ + +.monospaced { + font-family: monospace; + font-weight: 600; +} \ No newline at end of file