From 0dbe267212912681fa7944157df0e05525f9f2d6 Mon Sep 17 00:00:00 2001 From: Joseph Schorr Date: Fri, 3 Mar 2017 13:34:28 -0500 Subject: [PATCH] Show manifest digests in repo tag history timeline --- static/css/directives/ui/repo-tag-history.css | 4 +++ static/directives/repo-tag-history.html | 29 +++++++++++++------ static/js/directives/ui/repo-tag-history.js | 11 +++++-- 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/static/css/directives/ui/repo-tag-history.css b/static/css/directives/ui/repo-tag-history.css index e883b5c22..e1de7cecc 100644 --- a/static/css/directives/ui/repo-tag-history.css +++ b/static/css/directives/ui/repo-tag-history.css @@ -151,6 +151,10 @@ margin-right: 4px; } +.repo-tag-history-element .history-entry .image-link { + margin-left: 6px; +} + .repo-tag-history-element .history-entry .history-description { color: #777; } diff --git a/static/directives/repo-tag-history.html b/static/directives/repo-tag-history.html index 0633a2f2c..f8e551f78 100644 --- a/static/directives/repo-tag-history.html +++ b/static/directives/repo-tag-history.html @@ -24,22 +24,33 @@ ng-click="showHistory(true, entry.tag_name)">{{ entry.tag_name }} - was created pointing to image + was created pointing to + was deleted - was moved to image - - from image - + was moved to + + from + - was reverted to image - - from image - + was reverted to + + from + diff --git a/static/js/directives/ui/repo-tag-history.js b/static/js/directives/ui/repo-tag-history.js index 8a15e2fb5..9ebc179a5 100644 --- a/static/js/directives/ui/repo-tag-history.js +++ b/static/js/directives/ui/repo-tag-history.js @@ -43,6 +43,7 @@ angular.module('quay').directive('repoTagHistory', function () { tags.forEach(function(tag) { var tagName = tag.name; var dockerImageId = tag.docker_image_id; + var manifestDigest = tag.manifest_digest; if (!tagEntries[tagName]) { tagEntries[tagName] = []; @@ -53,7 +54,8 @@ angular.module('quay').directive('repoTagHistory', function () { tagEntries[entry.tag_name].splice(tagEntries[entry.tag_name].indexOf(entry), 1); }; - var addEntry = function(action, time, opt_docker_id, opt_old_docker_id) { + var addEntry = function(action, time, opt_docker_id, opt_old_docker_id, + opt_manifest_digest, opt_old_manifest_digest) { var entry = { 'tag_name': tagName, 'action': action, @@ -62,7 +64,9 @@ angular.module('quay').directive('repoTagHistory', function () { 'reversion': tag.reversion, 'time': time * 1000, // JS expects ms, not s since epoch. 'docker_image_id': opt_docker_id || dockerImageId, - 'old_docker_image_id': opt_old_docker_id || '' + 'old_docker_image_id': opt_old_docker_id || '', + 'manifest_digest': opt_manifest_digest || manifestDigest, + 'old_manifest_digest': opt_old_manifest_digest || '' }; tagEntries[tagName].push(entry); @@ -79,7 +83,8 @@ angular.module('quay').directive('repoTagHistory', function () { if (futureEntry.start_ts - tag.end_ts <= MOVE_THRESHOLD) { removeEntry(futureEntry); addEntry(futureEntry.reversion ? 'revert': 'move', tag.end_ts, - futureEntry.docker_image_id, dockerImageId); + futureEntry.docker_image_id, dockerImageId, futureEntry.manifest_digest, + manifestDigest); } else { addEntry('delete', tag.end_ts) }