2013-10-01 20:42:20 +00:00
|
|
|
<div class="container" ng-show="!loading && !repo">
|
2013-09-26 21:59:20 +00:00
|
|
|
No repository found
|
|
|
|
</div>
|
|
|
|
|
2013-10-01 20:42:20 +00:00
|
|
|
<div class="loading" ng-show="loading">
|
2013-10-24 21:41:37 +00:00
|
|
|
<i class="fa fa-spinner fa-spin fa-3x"></i>
|
2013-10-01 20:42:20 +00:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="container repo" ng-show="!loading && repo">
|
2013-09-26 21:59:20 +00:00
|
|
|
<!-- Repo Header -->
|
|
|
|
<div class="header">
|
|
|
|
<h3>
|
2013-10-22 05:26:14 +00:00
|
|
|
<span class="repo-circle" repo="repo"></span>
|
2013-09-28 21:11:10 +00:00
|
|
|
|
|
|
|
<span style="color: #aaa;"> {{repo.namespace}}</span> <span style="color: #ccc">/</span> {{repo.name}}
|
2013-09-27 19:48:54 +00:00
|
|
|
|
|
|
|
<span class="settings-cog" ng-show="repo.can_admin" title="Repository Settings">
|
2013-10-10 23:06:04 +00:00
|
|
|
<a href="{{ '/repository/' + repo.namespace + '/' + repo.name + '/admin' }}">
|
2013-10-24 21:41:37 +00:00
|
|
|
<i class="fa fa-cog fa-lg"></i>
|
2013-09-27 19:48:54 +00:00
|
|
|
</a>
|
|
|
|
</span>
|
2013-09-26 22:21:29 +00:00
|
|
|
</h3>
|
2013-10-26 20:03:11 +00:00
|
|
|
|
2013-09-26 22:21:29 +00:00
|
|
|
<!-- Pull command -->
|
2013-10-26 20:03:11 +00:00
|
|
|
<div class="pull-command visible-md visible-lg" style="display: none;">
|
|
|
|
<span class="pull-command-title">Pull repository:</span>
|
2013-09-27 20:12:51 +00:00
|
|
|
<div class="pull-container">
|
2013-10-01 23:36:57 +00:00
|
|
|
<div class="input-group">
|
|
|
|
<input id="pull-text" type="text" class="form-control" value="{{ 'docker pull quay.io/' + repo.namespace + '/' + repo.name }}" readonly>
|
|
|
|
<span id="copyClipboard" class="input-group-addon" title="Copy to Clipboard" data-clipboard-target="pull-text">
|
2013-10-24 21:41:37 +00:00
|
|
|
<i class="fa fa-copy"></i>
|
2013-10-01 23:36:57 +00:00
|
|
|
</span>
|
|
|
|
</div>
|
2013-09-27 20:12:51 +00:00
|
|
|
</div>
|
2013-09-27 20:28:21 +00:00
|
|
|
|
2013-10-17 18:46:23 +00:00
|
|
|
<div id="clipboardCopied" class="hovering" style="display: none">
|
2013-10-01 23:36:57 +00:00
|
|
|
Copied to clipboard
|
2013-09-27 20:28:21 +00:00
|
|
|
</div>
|
2013-09-26 22:21:29 +00:00
|
|
|
</div>
|
2013-09-26 21:59:20 +00:00
|
|
|
</div>
|
|
|
|
|
2013-10-26 20:03:11 +00:00
|
|
|
<!-- Status boxes -->
|
|
|
|
<div class="status-boxes">
|
|
|
|
<div id="buildInfoBox" class="status-box" ng-show="repo.is_building"
|
|
|
|
bs-popover="'static/partials/build-status-item.html'" data-placement="bottom">
|
|
|
|
<span class="title">
|
|
|
|
<i class="fa fa-spinner fa-spin"></i>
|
|
|
|
<b>Building Images</b>
|
|
|
|
</span>
|
|
|
|
<span class="count" ng-class="buildsInfo ? 'visible' : ''"><span>{{ buildsInfo ? buildsInfo.length : '-' }}</span></span>
|
|
|
|
</div>
|
|
|
|
</div>
|
2013-09-27 20:12:51 +00:00
|
|
|
|
2013-09-26 21:59:20 +00:00
|
|
|
<!-- Description -->
|
2013-10-26 20:03:11 +00:00
|
|
|
<div class="description">
|
|
|
|
<p ng-class="'lead ' + (repo.can_write ? 'editable' : 'noteditable')" ng-click="editDescription()">
|
|
|
|
<span class="content" ng-bind-html-unsafe="getMarkedDown(repo.description)"></span>
|
|
|
|
<i class="fa fa-edit"></i>
|
|
|
|
</p>
|
|
|
|
</div>
|
2013-09-26 22:21:29 +00:00
|
|
|
|
2013-10-26 20:03:11 +00:00
|
|
|
<!-- Empty message -->
|
|
|
|
<div class="repo-content" ng-show="!currentTag.image && !repo.is_building">
|
2013-10-02 04:43:59 +00:00
|
|
|
<div class="empty-message">(This repository is empty)</div>
|
2013-09-26 21:59:20 +00:00
|
|
|
</div>
|
|
|
|
|
2013-10-30 00:54:36 +00:00
|
|
|
<div class="repo-content" ng-show="!currentTag.image && repo.is_building">
|
|
|
|
<div class="empty-message">Your build is currently processing, if this takes longer than an hour, please contact quay support</div>
|
|
|
|
</div>
|
|
|
|
|
2013-10-26 20:03:11 +00:00
|
|
|
<!-- Content view -->
|
2013-10-02 04:43:59 +00:00
|
|
|
<div class="repo-content" ng-show="currentTag.image">
|
2013-10-11 00:43:37 +00:00
|
|
|
<!-- Image History -->
|
2013-10-14 23:17:36 +00:00
|
|
|
<div id="image-history">
|
2013-10-11 00:43:37 +00:00
|
|
|
<div class="row">
|
2013-10-12 01:28:02 +00:00
|
|
|
<!-- Tree View container -->
|
2013-10-12 01:54:57 +00:00
|
|
|
<div class="col-md-8">
|
2013-10-12 01:28:02 +00:00
|
|
|
|
|
|
|
<div class="panel panel-default">
|
|
|
|
<div class="panel-heading">
|
|
|
|
<!-- Tag dropdown -->
|
2013-10-29 17:41:26 +00:00
|
|
|
<div class="tag-dropdown dropdown" title="Tags">
|
2013-10-24 21:41:37 +00:00
|
|
|
<i class="fa fa-tag"><span class="tag-count">{{getTagCount(repo)}}</span></i>
|
2013-10-12 01:28:02 +00:00
|
|
|
<a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown">{{currentTag.name}} <b class="caret"></b></a>
|
|
|
|
<ul class="dropdown-menu">
|
|
|
|
<li ng-repeat="tag in repo.tags">
|
|
|
|
<a href="javascript:void(0)" ng-click="setTag(tag.name)">{{tag.name}}</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
2013-10-29 17:41:26 +00:00
|
|
|
</div>
|
2013-10-12 01:28:02 +00:00
|
|
|
<span class="right-title">Tags</span>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
2013-10-20 17:47:47 +00:00
|
|
|
<!-- Image history loading -->
|
|
|
|
<div ng-hide="imageHistory" style="padding: 10px; text-align: center;">
|
2013-10-24 21:41:37 +00:00
|
|
|
<i class="fa fa-spinner fa-spin fa-3x"></i>
|
2013-10-20 17:47:47 +00:00
|
|
|
</div>
|
2013-10-14 23:17:36 +00:00
|
|
|
|
2013-10-12 01:28:02 +00:00
|
|
|
<!-- Tree View itself -->
|
2013-10-17 18:29:47 +00:00
|
|
|
<div id="image-history-container" onresize="tree.notifyResized()"></div>
|
2013-10-12 01:28:02 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Side Panel -->
|
2013-10-12 01:54:57 +00:00
|
|
|
<div class="col-md-4">
|
2013-10-12 01:28:02 +00:00
|
|
|
<div class="panel panel-default">
|
|
|
|
<div class="panel-heading">
|
|
|
|
<!-- Image dropdown -->
|
2013-10-29 17:41:26 +00:00
|
|
|
<div class="tag-dropdown dropdown" title="Images">
|
2013-10-24 21:41:37 +00:00
|
|
|
<i class="fa fa-archive"><span class="tag-count">{{imageHistory.length}}</span></i>
|
2013-10-12 01:28:02 +00:00
|
|
|
<a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown">{{currentImage.id.substr(0, 12)}} <b class="caret"></b></a>
|
|
|
|
<ul class="dropdown-menu">
|
|
|
|
<li ng-repeat="image in imageHistory">
|
|
|
|
<a href="javascript:void(0)" ng-click="setImage(image)">{{image.id.substr(0, 12)}}</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
2013-10-29 17:41:26 +00:00
|
|
|
</div>
|
2013-10-12 01:54:57 +00:00
|
|
|
<span class="right-title">Image</span>
|
2013-10-20 17:47:47 +00:00
|
|
|
</div>
|
2013-10-12 01:28:02 +00:00
|
|
|
|
2013-10-20 17:47:47 +00:00
|
|
|
<div class="panel-body">
|
|
|
|
<div id="current-image">
|
|
|
|
<div ng-show="currentImage.comment">
|
|
|
|
<blockquote style="margin-top: 10px;" ng-bind-html-unsafe="getMarkedDown(currentImage.comment)">
|
|
|
|
</blockquote>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<dl class="dl-normal">
|
|
|
|
<dt>Created</dt>
|
|
|
|
<dd am-time-ago="parseDate(currentImage.created)"></dd>
|
|
|
|
<dt>Image ID</dt>
|
|
|
|
<dd><a href="{{'/repository/' + repo.namespace + '/' + repo.name + '/image/' + currentImage.id}}">{{ currentImage.id }}</a></dd>
|
|
|
|
</dl>
|
|
|
|
|
|
|
|
<!-- Image changes loading -->
|
|
|
|
<div ng-hide="currentImageChanges">
|
2013-10-24 21:41:37 +00:00
|
|
|
<i class="fa fa-spinner fa-spin fa-3x"></i>
|
2013-10-20 17:47:47 +00:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="changes-container small-changes-container"
|
|
|
|
ng-show="currentImageChanges.changed.length || currentImageChanges.added.length || currentImageChanges.removed.length">
|
|
|
|
<div class="changes-count-container accordion-toggle" data-toggle="collapse" data-parent="#accordion" data-target="#collapseChanges">
|
|
|
|
<span class="change-count added" ng-show="currentImageChanges.added.length > 0" title="Files Added">
|
2013-10-24 21:41:37 +00:00
|
|
|
<i class="fa fa-plus-square"></i>
|
2013-10-20 17:47:47 +00:00
|
|
|
<b>{{currentImageChanges.added.length}}</b>
|
|
|
|
</span>
|
|
|
|
<span class="change-count removed" ng-show="currentImageChanges.removed.length > 0" title="Files Removed">
|
2013-10-24 21:41:37 +00:00
|
|
|
<i class="fa fa-minus-square"></i>
|
2013-10-20 17:47:47 +00:00
|
|
|
<b>{{currentImageChanges.removed.length}}</b>
|
|
|
|
</span>
|
|
|
|
<span class="change-count changed" ng-show="currentImageChanges.changed.length > 0" title="Files Changed">
|
2013-10-24 21:41:37 +00:00
|
|
|
<i class="fa fa-pencil-square"></i>
|
2013-10-20 17:47:47 +00:00
|
|
|
<b>{{currentImageChanges.changed.length}}</b>
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div id="collapseChanges" class="panel-collapse collapse in">
|
|
|
|
<div class="well well-sm">
|
|
|
|
<div class="change added" ng-repeat="file in currentImageChanges.added | limitTo:5">
|
2013-10-24 21:41:37 +00:00
|
|
|
<i class="fa fa-plus-square"></i>
|
2013-10-20 17:47:47 +00:00
|
|
|
<span title="{{file}}">{{file}}</span>
|
|
|
|
</div>
|
|
|
|
<div class="change removed" ng-repeat="file in currentImageChanges.removed | limitTo:5">
|
2013-10-24 21:41:37 +00:00
|
|
|
<i class="fa fa-minus-square"></i>
|
2013-10-20 17:47:47 +00:00
|
|
|
<span title="{{file}}">{{file}}</span>
|
|
|
|
</div>
|
|
|
|
<div class="change changed" ng-repeat="file in currentImageChanges.changed | limitTo:5">
|
2013-10-24 21:41:37 +00:00
|
|
|
<i class="fa fa-pencil-square"></i>
|
2013-10-20 17:47:47 +00:00
|
|
|
<span title="{{file}}">{{file}}</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="more-changes" ng-show="getMoreCount(currentImageChanges) > 0">
|
|
|
|
<a href="{{'/repository/' + repo.namespace + '/' + repo.name + '/image/' + currentImage.id}}">And {{getMoreCount(currentImageChanges)}} more...</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2013-10-12 01:28:02 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2013-10-02 04:43:59 +00:00
|
|
|
</div>
|
2013-09-27 21:01:45 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2013-09-26 21:59:20 +00:00
|
|
|
<!-- Modal edit for the description -->
|
2013-09-26 23:07:25 +00:00
|
|
|
<div class="modal fade" id="editModal">
|
|
|
|
<div class="modal-dialog">
|
|
|
|
<div class="modal-content">
|
|
|
|
<div class="modal-header">
|
|
|
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
|
|
|
<h4 class="modal-title">Edit Repository Description</h4>
|
|
|
|
</div>
|
|
|
|
<div class="modal-body">
|
2013-10-01 23:36:57 +00:00
|
|
|
<div class="wmd-panel">
|
2013-09-30 23:08:24 +00:00
|
|
|
<div id="wmd-button-bar-description"></div>
|
|
|
|
<textarea class="wmd-input" id="wmd-input-description" placeholder="Enter description">{{ repo.description }}</textarea>
|
2013-10-01 23:36:57 +00:00
|
|
|
</div>
|
2013-09-30 23:08:24 +00:00
|
|
|
|
|
|
|
<div id="wmd-preview-description" class="wmd-panel wmd-preview"></div>
|
2013-09-26 23:07:25 +00:00
|
|
|
</div>
|
|
|
|
<div class="modal-footer">
|
|
|
|
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
|
|
|
<button type="button" class="btn btn-primary" ng-click="saveDescription()">Save changes</button>
|
|
|
|
</div>
|
|
|
|
</div><!-- /.modal-content -->
|
|
|
|
</div><!-- /.modal-dialog -->
|
|
|
|
</div><!-- /.modal -->
|
2013-09-26 21:59:20 +00:00
|
|
|
|
|
|
|
</div>
|