From 699cb9a5da52dd9cc2ac1f3b382e6a699142b45d Mon Sep 17 00:00:00 2001 From: Joseph Schorr Date: Tue, 17 Mar 2015 16:49:22 -0400 Subject: [PATCH] Fix last modified date time handling for tags with no date times, and fix the sort ordering --- endpoints/api/repository.py | 8 ++++++-- static/directives/repo-view/repo-panel-tags.html | 5 ++++- static/js/directives/repo-view/repo-panel-tags.js | 5 +++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/endpoints/api/repository.py b/endpoints/api/repository.py index 84d07bec3..74f494112 100644 --- a/endpoints/api/repository.py +++ b/endpoints/api/repository.py @@ -177,13 +177,17 @@ class Repository(RepositoryParamResource): logger.debug('Get repo: %s/%s' % (namespace, repository)) def tag_view(tag): - return { + tag_info = { 'name': tag.name, 'image_id': tag.image.docker_image_id, - 'last_modified': format_date(datetime.datetime.fromtimestamp(tag.lifetime_start_ts)), 'size': tag.image.storage.aggregate_size } + if tag.lifetime_start_ts > 0: + tag_info['last_modified'] = format_date(datetime.datetime.fromtimestamp(tag.lifetime_start_ts)) + + return tag_info + organization = None try: organization = model.get_organization(namespace) diff --git a/static/directives/repo-view/repo-panel-tags.html b/static/directives/repo-view/repo-panel-tags.html index 4b25bd515..be238cf1c 100644 --- a/static/directives/repo-view/repo-panel-tags.html +++ b/static/directives/repo-view/repo-panel-tags.html @@ -60,7 +60,10 @@ ng-class="checkedTags.isChecked(tag, checkedTags.checked) ? 'checked' : ''"> {{ tag.name }} - + + + Unknown + {{ tag.size | bytes }} diff --git a/static/js/directives/repo-view/repo-panel-tags.js b/static/js/directives/repo-view/repo-panel-tags.js index 6d845796e..add0db228 100644 --- a/static/js/directives/repo-view/repo-panel-tags.js +++ b/static/js/directives/repo-view/repo-panel-tags.js @@ -46,9 +46,10 @@ angular.module('quay').directive('repoPanelTags', function () { for (var tag in $scope.repository.tags) { if (!$scope.repository.tags.hasOwnProperty(tag)) { continue; } - var tagInfo = $.extend($scope.repository.tags[tag], { + var tagData = $scope.repository.tags[tag]; + var tagInfo = $.extend(tagData, { 'name': tag, - 'last_modified_datetime': new Date($scope.repository.tags[tag].last_modified) + 'last_modified_datetime': (new Date(tagData.last_modified || 0)).valueOf() * (-1) }); allTags.push(tagInfo);