141 lines
		
	
	
	
		
			6.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			141 lines
		
	
	
	
		
			6.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <div class="resource-view" resource="repository" error-message="'No repository found'"></div>
 | |
| <div class="cor-container repo repo-build" ng-show="accessDenied">
 | |
|   You do not have permission to view this page
 | |
| </div>
 | |
| <div class="cor-container repo repo-build" ng-show="repo">
 | |
|   <div class="header row">
 | |
|     <a href="{{ '/repository/' + repo.namespace + '/' + repo.name }}" class="back"><i class="fa fa-chevron-left"></i></a>
 | |
|     <h3>
 | |
|       <span class="repo-circle no-background" repo="repo"></span>
 | |
|       <span class="repo-breadcrumb" repo="repo" subsection-icon="'fa-tasks'" subsection="'Build History'"></span>
 | |
|     </h3>
 | |
| 
 | |
|     <div class="repo-controls">
 | |
|       <button class="btn btn-success" ng-click="showNewBuildDialog()">
 | |
|         <i class="fa fa-plus"></i>
 | |
|         New Dockerfile Build
 | |
|       </button>
 | |
|     </div>
 | |
|   </div>
 | |
| 
 | |
|   <div class="row" ng-show="!builds">
 | |
|     <div class="quay-spinner"></div>
 | |
|   </div>
 | |
| 
 | |
|   <div class="row" ng-show="builds && !builds.length">
 | |
|     There are no builds for this repository
 | |
|   </div>
 | |
| 
 | |
|   <div class="row" ng-show="builds.length">
 | |
|     <!-- Side tabs -->
 | |
|     <div class="col-sm-2">
 | |
|       <ul class="nav nav-pills nav-stacked cor-tab-shim">
 | |
|         <li ng-class="currentBuild == build ? 'active' : ''" ng-repeat="build in builds">
 | |
|           <a class="build-tab-link" href="javascript:void(0)" ng-click="setCurrentBuild(build.id, true)">
 | |
|             <span class="phase-icon" ng-class="build.phase"></span>
 | |
|             <span>{{ build.display_name }}</span>
 | |
|           </a>
 | |
|         </li>
 | |
|       </ul>
 | |
|     </div>
 | |
| 
 | |
|     <!-- Content -->
 | |
|     <div class="col-sm-10">
 | |
|       <div class="tab-content" onresize="adjustLogHeight()">
 | |
|         <div ng-repeat="build in builds" class="tab-pane build-pane" ng-class="currentBuild == build ? 'active' : ''">
 | |
|           <div class="alert alert-info" ng-show="build.trigger">
 | |
|             Triggered by: <span class="trigger-description" trigger="build.trigger" short="true" style="margin-left: 10px"></span>
 | |
|           </div>
 | |
| 
 | |
|           <div class="build-header">
 | |
|             <div class="timing">
 | |
|               <i class="fa fa-clock-o"></i>
 | |
|               Started: <span am-time-ago="build.started || 0"></span>
 | |
|               <span style="display: inline-block; margin-left: 20px" ng-show="currentBuild.resource_key">
 | |
|                 <i class="fa fa-archive"></i>
 | |
|                 <a href="/repository/{{ repo.namespace }}/{{ repo.name }}/build/{{ currentBuild.id }}/buildpack"
 | |
|                    style="display: inline-block; margin-left: 6px" bs-tooltip="tooltip.title"
 | |
|                    data-title="View the uploaded build package for this build">Build Package</a>
 | |
|               </span>
 | |
|             </div>
 | |
|             <span class="phase-icon" ng-class="build.phase"></span>
 | |
|             <span class="build-message" phase="build.phase"></span>
 | |
|             <div class="build-progress" build="build"></div>
 | |
|           </div>
 | |
| 
 | |
|           <div class="build-logs">
 | |
|             <div ng-show="!logEntries">
 | |
|               <span class="quay-spinner"></span>
 | |
|             </div>
 | |
| 
 | |
|             <div class="log-container" ng-class="container.type" ng-repeat="container in logEntries">
 | |
|               <div class="container-header" ng-class="container.type == 'phase' ? container.message : ''"
 | |
|                    ng-switch on="container.type" ng-click="container.logs.toggle()">
 | |
|                 <i class="fa chevron"
 | |
|                    ng-class="container.logs.isVisible ? 'fa-chevron-down' : 'fa-chevron-right'" ng-show="hasLogs(container)"></i>
 | |
|                 <div ng-switch-when="phase">
 | |
|                   <span class="container-content build-log-phase" phase="container"></span>
 | |
|                 </div>
 | |
|                 <div ng-switch-when="error">
 | |
|                   <span class="container-content build-log-error" error="container" entries="logEntries"></span>
 | |
|                 </div>
 | |
|                 <div ng-switch-when="command">
 | |
|                   <span class="container-content build-log-command" command="container"></span>
 | |
|                 </div>
 | |
|               </div>
 | |
| 
 | |
|               <!-- Display the entries for the container -->
 | |
|               <div class="container-logs" ng-show="container.logs.isVisible">
 | |
|                 <div class="log-entry" bindonce ng-repeat="entry in container.logs.visibleEntries">
 | |
|                   <span class="id" bo-text="$index + container.index + 1"></span>
 | |
|                   <span class="message" bo-html="processANSI(entry.message, container)"></span>
 | |
|                 </div>
 | |
|               </div>
 | |
|             </div>
 | |
|           </div>
 | |
|           <div style="margin-top: 10px">
 | |
|             <button class="btn btn-default"
 | |
|                     ng-show="build.phase == 'waiting' && build.resource_key"
 | |
|                     ng-click="askCancelBuild(build)">
 | |
|               <i class="fa fa-times-circle" style="margin-right: 6px; display: inline-block;"></i>
 | |
|               Cancel Build
 | |
|             </button>
 | |
| 
 | |
|             <button class="btn" ng-show="(build.phase == 'error' || build.phase == 'complete') && build.resource_key"
 | |
|                     ng-class="build.phase == 'error' ? 'btn-success' : 'btn-default'"
 | |
|                     ng-click="askRestartBuild(build)">
 | |
|               <i class="fa fa-refresh"></i>
 | |
|               Run Build Again
 | |
|             </button>
 | |
|             <span class="quay-spinner" ng-show="pollChannel.working"></span>
 | |
|             <span class="build-id">{{ build.id }}</span>
 | |
|           </div>
 | |
|         </div>
 | |
|       </div>
 | |
|     </div>
 | |
|   </div>
 | |
| 
 | |
|   <div class="dockerfile-build-dialog" show-now="buildDialogShowCounter" repository="repo"
 | |
|        build-started="handleBuildStarted(build)">
 | |
|   </div>
 | |
| 
 | |
|   <!-- Modal message dialog -->
 | |
|   <div class="modal fade" id="confirmRestartBuildModal">
 | |
|     <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">Run Dockerfile Build?</h4>
 | |
|         </div>
 | |
|         <div class="modal-body">
 | |
|           Are you sure you want to run this Dockerfile build again? The results will be immediately pushed to the repository.
 | |
|         </div>
 | |
|         <div class="modal-footer">
 | |
|           <button type="button" class="btn btn-primary" ng-click="restartBuild(currentBuild)">Run Build</button>
 | |
|           <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
 | |
|         </div>
 | |
|       </div><!-- /.modal-content -->
 | |
|     </div><!-- /.modal-dialog -->
 | |
|   </div><!-- /.modal -->
 | |
| 
 | |
| </div>
 |