/** * An element which displays a link to a repository image. */ angular.module('quay').directive('imageLink', function () { var directiveDefinitionObject = { priority: 0, templateUrl: '/static/directives/image-link.html', replace: false, transclude: true, restrict: 'C', scope: { 'repository': '=repository', 'imageId': '=imageId', 'manifestDigest': '=?manifestDigest' }, controller: function($scope, $element, $timeout) { $scope.showingCopyBox = false; $scope.hasSHA256 = function(digest) { return digest && digest.indexOf('sha256:') == 0; }; $scope.getShortDigest = function(digest) { return digest.substr('sha256:'.length).substr(0, 12); }; $scope.showCopyBox = function() { $scope.showingCopyBox = true; // Necessary to wait for digest cycle to complete. $timeout(function() { $element.find('.modal').modal('show'); }, 10); }; $scope.hideCopyBox = function() { $element.find('.modal').modal('hide'); // Wait for the modal to hide before removing from the DOM. $timeout(function() { $scope.showingCopyBox = false; }, 10); }; } }; return directiveDefinitionObject; });