2015-02-27 21:00:32 +00:00
|
|
|
<div class="build-logs-view-element" ng-class="useTimestamps ? 'with-timestamps' : ''">
|
2015-06-29 18:28:05 +00:00
|
|
|
<span ng-show="logEntries">
|
2015-06-28 06:14:48 +00:00
|
|
|
<button id="copyButton" class="btn btn-primary copy-button" data-clipboard-text="{{ buildLogsText }}">
|
|
|
|
<i class="fa fa-clipboard"></i>Copy Logs
|
|
|
|
</button>
|
|
|
|
</span>
|
2015-02-27 21:00:32 +00:00
|
|
|
|
2015-05-26 21:22:30 +00:00
|
|
|
<a id="downloadButton" class="btn btn-primary download-button"
|
|
|
|
ng-href="/buildlogs/{{ currentBuild.id }}"
|
2016-04-28 18:38:22 +00:00
|
|
|
ng-safenewtab
|
2015-06-28 06:14:48 +00:00
|
|
|
ng-if="logEntries">
|
2015-05-26 21:22:30 +00:00
|
|
|
<i class="fa fa-download"></i>Download Logs
|
|
|
|
</a>
|
|
|
|
|
2015-06-28 06:14:48 +00:00
|
|
|
<span class="cor-loader" ng-if="!logEntries && !loadError"></span>
|
|
|
|
|
|
|
|
<div class="co-alert co-alert-warning" ng-if="loadError == 'blocked'">
|
|
|
|
Loading of build logs failed, most likely due to an ad blocker. Please
|
|
|
|
disable filtering and refresh this page.
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="co-alert co-alert-danger" ng-if="loadError == 'request-failed'">
|
2015-08-28 15:49:29 +00:00
|
|
|
Failed to load builds logs. Please reload and try again. If this problem persists,
|
|
|
|
please check for JavaScript or networking issues and contact support.
|
2015-06-28 06:14:48 +00:00
|
|
|
</div>
|
2015-02-26 22:45:28 +00:00
|
|
|
|
2016-05-31 18:41:45 +00:00
|
|
|
<div class="co-alert co-alert-danger" ng-if="loadError == 'unauthorized'">
|
|
|
|
You are not authorized to view builds logs. Please have the owner of the repository grant you
|
|
|
|
admin access to this repository.
|
|
|
|
</div>
|
|
|
|
|
2015-09-17 18:24:34 +00:00
|
|
|
<div ng-show="!loadError && pollChannel.skipping">
|
|
|
|
Refreshing Build Status...
|
|
|
|
<span class="cor-loader"></span>
|
|
|
|
</div>
|
2015-02-26 22:45:28 +00:00
|
|
|
|
2016-05-31 18:41:45 +00:00
|
|
|
<div ng-show="!loadError && !pollChannel.skipping">
|
2015-09-17 18:24:34 +00:00
|
|
|
<span class="no-logs" ng-if="!logEntries.length && currentBuild.phase == 'waiting'">
|
|
|
|
(Waiting for build to start)
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<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>
|
2015-02-26 22:45:28 +00:00
|
|
|
</div>
|
|
|
|
|
2015-09-17 18:24:34 +00:00
|
|
|
<!-- 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" ng-if="!useTimestamps"></span>
|
|
|
|
<span class="id" bo-text="formatDatetime(entry.data.datetime)" ng-if="useTimestamps"></span>
|
|
|
|
<span class="message" bo-html="processANSI(entry.message, container)"></span>
|
|
|
|
<span class="timestamp" bo-text="formatDatetime(entry.data.datetime)" ng-if="!useTimestamps"></span>
|
|
|
|
</div>
|
2015-02-26 22:45:28 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2015-03-30 21:55:04 +00:00
|
|
|
</div>
|