This repository has been archived on 2020-03-24. You can view files and clone it, but cannot push or open issues or pull requests.
quay/static/directives/repo-view/repo-panel-builds.html
2015-03-13 15:37:43 -07:00

187 lines
No EOL
7.3 KiB
HTML

<div class="repo-panel-builds-element">
<div class="tab-header-controls">
<button class="btn btn-primary" ng-click="showNewBuildDialog()">
<i class="fa fa-plus"></i>Start Build
</button>
</div>
<h3 class="tab-header">Repository Builds</h3>
<!-- Builds -->
<div class="co-panel">
<!-- Builds header controls -->
<div class="co-panel-heading">
<div class="heading-controls hidden-sm hidden-xs">
<span class="filter-control" filter="options.filter" value="recent">Recent Builds</span>
<span class="filter-control" filter="options.filter" value="48hour">Last 48 Hours</span>
<span class="filter-control" filter="options.filter" value="30day">Last 30 days</span>
</div>
<div class="heading-title">
<i class="fa fa-tasks"></i>
Build History
</div>
</div>
<!-- Builds list content -->
<div class="panel-body">
<div class="resource-view" resource="buildsResource" error-message="'Could not load build information'">
<!-- No builds found -->
<div class="empty" ng-if="!fullBuilds.length">
<div class="empty-primary-msg">No matching builds found</div>
<div class="empty-secondary-msg">
Please change the filter above to search for more builds.
</div>
</div>
<!-- Builds list table -->
<table class="co-table" ng-if="fullBuilds.length">
<thead>
<td class="status-col"></td>
<td ng-class="tablePredicateClass('id', options.predicate, options.reverse)">
<a href="javascript:void(0)" ng-click="orderBy('id')">Build ID</a>
</td>
<td ng-class="tablePredicateClass('tags', options.predicate, options.reverse)">
<a href="javascript:void(0)" ng-click="orderBy('tags')">Tags</a>
</td>
<td ng-class="tablePredicateClass('commit_sha', options.predicate, options.reverse)">
<a href="javascript:void(0)" ng-click="orderBy('commit_sha')">Triggered By</a>
</td>
<td ng-class="tablePredicateClass('started_datetime', options.predicate, options.reverse)">
<a href="javascript:void(0)" ng-click="orderBy('started_datetime')">Date Started</a>
</td>
<td class="options-col"></td>
</thead>
<tr ng-repeat="build in fullBuilds">
<td><span class="build-state-icon" build="build"></span></td>
<td>
<a href="/repository/{{ repository.namespace }}/{{ repository.name }}/build/{{ build.id }}">{{ build.id.substr(0, 8) }}</a>
</td>
<td>
<span class="building-tag" ng-repeat="tag in build.building_tags">
<i class="fa fa-tag"></i>{{ tag }}
</span>
</td>
<td>
<div class="triggered-build-description" build="build"></div>
</td>
<td>{{ build.started | amCalendar }}</td>
</tr>
</table>
</div>
</div>
</div> <!-- /Builds -->
<!-- Build Triggers -->
<div class="co-panel" ng-if="repository.can_admin && TriggerService.getTypes().length">
<!-- Builds header controls -->
<div class="co-panel-heading">
<i class="fa fa-flash"></i>
Build Triggers
<div class="heading-controls hidden-sm hidden-xs">
<!-- Add Build Trigger -->
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
Create Build Trigger
<b class="caret"></b>
</button>
<ul class="dropdown-menu dropdown-menu-right pull-right">
<li ng-repeat="type in TriggerService.getTypes()">
<a href="{{ TriggerService.getRedirectUrl(type, repository.namespace, repository.name) }}">
<i class="fa fa-lg" ng-class="TriggerService.getMetadata(type).icon"></i>
{{ TriggerService.getTitle(type) }}
</a>
</li>
</ul>
</div>
</div>
</div>
<!-- Builds list content -->
<div class="panel-body">
<div class="resource-view" resource="triggersResource" error-message="'Could not load build triggers'">
<!-- No Triggers defined -->
<div class="empty" ng-if="!triggers.length">
<div class="empty-primary-msg">No build triggers defined</div>
<div class="empty-secondary-msg">
Build triggers invoke builds whenever the triggered condition is met (source control push, webhook, etc)
</div>
</div>
<!-- Triggers list -->
<table class="co-table" ng-if="triggers.length">
<thead>
<td>Trigger Name</td>
<td>Dockerfile Location</td>
<td>Branches/Tags</td>
<td>Pull Robot</td>
<td class="options-col"></td>
</thead>
<tr ng-repeat="trigger in triggers | filter:{'is_active':false}">
<td colspan="5" style="text-align: center">
<span class="cor-loader-inline"></span>
Trigger Setup in progress:
<a href="javascript:void(0)" ng-click="setupTrigger(trigger)">Resume</a> |
<a href="javascript:void(0)" ng-click="deleteTrigger(trigger)">Cancel</a>
</td>
</tr>
<tr ng-repeat="trigger in triggers | filter:{'is_active':true}">
<td><div class="trigger-description" trigger="trigger" short="true"></div></td>
<td>{{ trigger.subdir || '(Root Directory)' }}</td>
<td>{{ trigger.config.branchtag_regex || '(All)' }}</td>
<td>
<span class="entity-reference" entity="trigger.pull_robot" ng-if="trigger.pull_robot"></span>
</td>
<td>
<span class="cor-options-menu">
<span class="cor-option" option-click="askRunTrigger(trigger)">
<i class="fa fa-chevron-right"></i> Run Trigger Now
</span>
<span class="cor-option" option-click="askDeleteTrigger(trigger)">
<i class="fa fa-times"></i> Delete Trigger
</span>
</span>
</td>
</tr>
</table>
</div>
</div>
</div> <!-- /Build Triggers -->
<!-- Delete Tag Confirm -->
<div class="cor-confirm-dialog"
dialog-context="deleteTriggerInfo"
dialog-action="deleteTrigger(info.trigger, callback)"
dialog-title="Delete Build Trigger"
dialog-action-title="Delete Trigger">
Are you sure you want to delete this build trigger? No further builds will be automatically
started.
</div>
<!-- Dockerfile build dialog -->
<div class="dockerfile-build-dialog"
show-now="showBuildDialogCounter"
repository="repository"
build-started="handleBuildStarted(build)">
</div>
<!-- Setup trigger dialog-->
<div class="setup-trigger-dialog"
repository="repository"
trigger="currentSetupTrigger"
canceled="cancelSetupTrigger(trigger)"
counter="showTriggerSetupCounter"></div>
<!-- Manual trigger dialog -->
<div class="manual-trigger-build-dialog"
repository="repository"
trigger="currentStartTrigger"
counter="showTriggerStartDialogCounter"
start-build="startTrigger(trigger, parameters)"></div>
</div>