2015-03-12 00:47:12 +00:00
< div class = "tag-operations-dialog-element" >
2015-05-07 19:51:49 +00:00
<!-- Loading Images Dialog -->
< div class = "modal fade" id = "loadingImagesModal" >
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
< h4 class = "modal-title" > Loading Repository Images< / h4 >
< / div >
< div class = "modal-body" >
< div class = "loader-container" >
< div class = "cor-loader" > < / div >
< / div >
< div style = "text-align: center;" >
Please wait while we load the repository's full image list
< / div >
< / div >
< / div > <!-- /.modal - content -->
< / div > <!-- /.modal - dialog -->
< / div > <!-- /.modal -->
2017-03-10 00:04:35 +00:00
<!-- Edit Labels Dialog -->
< div class = "cor-confirm-dialog"
dialog-context="editLabelsInfo"
dialog-action="editLabels(info, callback)"
dialog-title="Edit Manifest Labels"
dialog-action-title="Edit Labels">
< div class = "cor-loader" ng-if = "editLabelsInfo.loading" > < / div >
< div ng-if = "!editLabelsInfo.loading && editLabelsInfo.labels" >
< div > < strong > Read-only labels:< / strong > < / div >
< div class = "label-section" >
< div class = "label-list" labels = "editLabelsInfo.readonly_labels" > < / div >
< / div >
< div > < strong > Mutable labels:< / strong > < / div >
< div class = "label-section" >
< div class = "label-input" labels = "editLabelsInfo.mutable_labels"
updated-labels="editLabelsInfo.updated_labels">< / div >
< / div >
< / div >
< / div >
2015-05-07 19:51:49 +00:00
2015-03-12 00:47:12 +00:00
<!-- Add Tag Dialog -->
< div class = "modal fade" id = "createOrMoveTagModal" >
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
< button type = "button" class = "close" data-dismiss = "modal"
aria-hidden="true" ng-show="!addingTag">× < / button >
< h4 class = "modal-title" > {{ isAnotherImageTag(toTagImage, tagToCreate) ? 'Move' : 'Add' }} Tag to Image {{ toTagImage.substr(0, 12) }}< / h4 >
< / div >
< form name = "addTagForm" ng-submit = "createOrMoveTag(toTagImage, tagToCreate);" >
< div class = "modal-body" >
< div class = "cor-loader" ng-show = "addingTag" > < / div >
< div ng-show = "!addingTag" >
< input type = "text" class = "form-control" id = "tagName"
placeholder="Enter tag name"
2015-10-05 20:36:33 +00:00
ng-model="tagToCreate" ng-pattern="/^[\w][\w\.-]{0,127}$/"
2015-03-12 00:47:12 +00:00
ng-disabled="creatingTag" autofocus required>
< div style = "margin: 10px; margin-top: 20px;"
ng-show="isOwnedTag(toTagImage, tagToCreate)">
Note: < span class = "label tag label-default" > {{ tagToCreate }}< / span > is already applied to this image.
< / div >
< div style = "margin: 10px; margin-top: 20px;"
ng-show="isAnotherImageTag(toTagImage, tagToCreate)">
Note: < span class = "label tag label-default" > {{ tagToCreate }}< / span > is already applied to another image. This will < b > move< / b > the tag.
< / div >
< div class = "tag-specific-images-view"
tag="tagToCreate"
2015-11-03 23:15:23 +00:00
repository="repository"
2015-03-12 00:47:12 +00:00
image-cutoff="toTagImage"
style="margin: 10px; margin-top: 20px; margin-bottom: -10px;"
2015-11-03 23:15:23 +00:00
ng-show="isAnotherImageTag(toTagImage, tagToCreate)"
image-loader="imageLoader">
2015-04-01 18:21:19 +00:00
This will also delete any unattached images and delete the following images:
2015-03-12 00:47:12 +00:00
< / div >
< / div >
< / div >
< div class = "modal-footer" ng-show = "!addingTag" >
< button type = "submit" class = "btn btn-primary"
ng-disabled="addTagForm.$invalid || isOwnedTag(toTagImage, tagToCreate)"
ng-class="isAnotherImageTag(toTagImage, tagToCreate) ? 'btn-warning' : 'btn-primary'"
ng-show="!creatingTag">
{{ isAnotherImageTag(toTagImage, tagToCreate) ? 'Move Tag' : 'Create Tag' }}
< / button >
< button class = "btn btn-default" data-dismiss = "modal" ng-show = "!addingTag" > Cancel< / button >
< / div >
< / form >
< / div > <!-- /.modal - content -->
< / div > <!-- /.modal - dialog -->
< / div > <!-- /.modal -->
<!-- Delete Tags Confirm -->
< div class = "cor-confirm-dialog"
dialog-context="deleteMultipleTagsInfo"
dialog-action="deleteMultipleTags(info.tags, callback)"
dialog-title="Delete Tags"
dialog-action-title="Delete Tags">
Are you sure you want to delete the following tags:
2015-06-25 20:16:19 +00:00
< ul class = "delete-tag-list" >
2015-03-12 00:47:12 +00:00
< li ng-repeat = "tag_info in deleteMultipleTagsInfo.tags" >
< span class = "label label-default tag" > {{ tag_info.name }}< / span >
< / li >
< / ul >
< div style = "margin-top: 20px" >
< strong > Note: < / strong > This operation can take several minutes.
< / div >
< / div >
2017-06-22 01:33:26 +00:00
<!-- Change Tags Expiration -->
< div class = "cor-confirm-dialog"
dialog-context="changeTagsExpirationInfo"
dialog-action="changeTagsExpiration(info.tags, info.expiration_date, callback)"
dialog-title="Change Tags Expiration"
dialog-action-title="Change Expiration">
< form class = "expiration-form" >
< label > Tags that will be updated:< / label >
< ul class = "delete-tag-list" >
< li ng-repeat = "tag_info in changeTagsExpirationInfo.tags" >
< span class = "label label-default tag" > {{ tag_info.name }}< / span >
< / li >
< / ul >
< label style = "margin-top: 20px;" > Expiration Date:< / label >
2017-06-27 11:15:33 +00:00
< span class = "datetime-picker" datetime = "changeTagsExpirationInfo.expiration_date"
ng-if="changeTagsExpirationInfo">< / span >
2017-06-22 01:33:26 +00:00
< span class = "co-help-text" >
If specified, the date and time that the key expires. If set to none, the tag(s) will not expire.
< / span >
< / form >
< / div >
2015-03-12 00:47:12 +00:00
<!-- Delete Tag Confirm -->
< div class = "cor-confirm-dialog"
dialog-context="deleteTagInfo"
dialog-action="deleteTag(info.tag, callback)"
dialog-title="Delete Tag"
dialog-action-title="Delete Tag">
Are you sure you want to delete tag
< span class = "label label-default tag" > {{ deleteTagInfo.tag }}< / span > ?
< div class = "tag-specific-images-view" tag = "deleteTagInfo.tag" repository = "repository"
2015-11-03 23:15:23 +00:00
image-loader="imageLoader" style="margin-top: 20px">
2017-04-05 17:27:36 +00:00
The following images and any other images not referenced by a tag will be < span ng-if = "repository.tag_expiration_s == 0" > deleted< / span > < span ng-if = "repository.tag_expiration_s != 0" > unavailable and deleted in {{ getFormattedTimespan(repository.tag_expiration_s) }}< / span > :
2015-03-12 00:47:12 +00:00
< / div >
< / div >
2015-04-16 21:18:00 +00:00
2017-03-03 23:41:26 +00:00
<!-- Restore Tag Confirm -->
2015-04-16 21:18:00 +00:00
< div class = "cor-confirm-dialog"
2017-03-03 23:41:26 +00:00
dialog-context="restoreTagInfo"
dialog-action="restoreTag(info.tag, info.image_id, info.manifest_digest, callback)"
dialog-title="Restore Tag"
dialog-action-title="Restore Tag">
2015-04-16 21:18:00 +00:00
< div class = "co-alert co-alert-warning" >
This will change the image to which the tag points.
< / div >
2017-03-03 23:41:26 +00:00
Are you sure you want to restore tag
< span class = "label label-default tag" > {{ restoreTagInfo.tag.name }}< / span > to image
2018-03-28 17:56:09 +00:00
< manifest-link repository = "repository"
image-id="restoreTagInfo.image_id"
manifest-digest="restoreTagInfo.manifest_digest">< / manifest-link > ?
2015-04-16 21:18:00 +00:00
< / div >
2017-04-17 18:34:43 +00:00
2017-06-13 13:56:47 +00:00
<!-- Tag Operations Disabled Dialog -->
< div class = "modal fade" id = "tagOperationsDisabledModal" >
2017-04-17 18:34:43 +00:00
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
2017-06-13 13:56:47 +00:00
Tag operations have been disabled.
2017-04-17 18:34:43 +00:00
< / div >
< div class = "modal-body" >
2017-06-13 13:56:47 +00:00
The selected operation cannot be performed on this repository because tag operations have been disabled
by an administrator. < span ng-if = "repository.trust_enabled" > Trust is enabled for this repo, so any tag changes
should be performed by users with signing keys.< / span >
2017-04-17 18:34:43 +00:00
< / div >
< / div > <!-- /.modal - content -->
< / div > <!-- /.modal - dialog -->
< / div > <!-- /.modal -->
2015-10-05 20:36:33 +00:00
< / div >