86e4539c04
Clicking the little (SHA256) or (V1ID) bubble next to the ID will now show a dialog with a copy box.
47 lines
No EOL
1.3 KiB
JavaScript
47 lines
No EOL
1.3 KiB
JavaScript
/**
|
|
* 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;
|
|
}); |