github.com/billybanfield/evergreen@v0.0.0-20170525200750-eeee692790f7/service/templates/build.html (about) 1 {{define "scripts"}} 2 <style type="text/css"> 3 body{ background: #f5f6f7; } 4 </style> 5 <script type="text/javascript"> 6 window.build = {{ .Build }}; 7 window.plugins = null 8 </script> 9 <script type="text/javascript" src="{{Static "js" "build.js"}}?hash={{ StaticsMD5 }}"></script> 10 {{if .User }} 11 <script type="text/javascript" src="{{Static "js" "build_admin.js"}}?hash={{ StaticsMD5 }}"></script> 12 {{end}} 13 <script type="text/javascript"> 14 var userTz = {{GetTimezone $.User}} 15 var plugins = {{.PluginContent.Data}} 16 </script> 17 {{range .PluginContent.Includes}} 18 {{.}} 19 {{end}} 20 {{end}} 21 22 {{define "title"}} 23 {{ if .Build.PatchInfo }} 24 Evergreen - Build of Patch {{.Build.PatchInfo.Patch.PatchNumber}} by {{.Build.PatchInfo.Patch.Author}} on {{.Build.Build.DisplayName}} 25 {{ else }} 26 Evergreen - Build {{Trunc .Build.Build.Revision 10}} on {{.Build.Build.DisplayName}} 27 {{end}} 28 {{end}} 29 30 {{define "content"}} 31 <div id="content" class="container-fluid" ng-controller="BuildViewController"> 32 <notify-box ng-init="destination='notifyHeader';"></notify-box> 33 {{template "flash" . }} 34 <ol class="breadcrumb"> 35 <li> 36 <span> 37 <span ng-show="build.PatchInfo"> 38 <a ng-href="/version/[[build.Version.id]]"> 39 Patch [[build.PatchInfo.Patch.PatchNumber]] 40 by [[build.PatchInfo.Patch.Author]] 41 </a> 42 </span> 43 <span class="gitspec" ng-hide="build.PatchInfo"> 44 <a ng-href="/version/[[build.Version.id]]"> 45 [[build.Build.gitspec.substr(0, 10)]] 46 </a> 47 </span> 48 </span> 49 </li> 50 <li> 51 [[build.Build.display_name]] 52 </li> 53 </ol> 54 55 <div class="row"> 56 <div class="col-lg-7"> 57 <header class="clearfix"> 58 <h1 class="one-liner"> 59 Build of 60 <span class="gitspec" ng-hide="build.PatchInfo">[[build.Build.gitspec.substr(0, 10)]]</span> 61 <span ng-show="build.PatchInfo">Patch [[build.PatchInfo.Patch.PatchNumber]]</span> 62 on [[build.Build.display_name]] 63 </h1> 64 65 {{if .User}} 66 <div ng-controller="AdminOptionsCtrl" ng-init="setBuild(build.Build)" class="pull-right page-actions"> 67 <div id="admin-dropdown" class="dropdown pull-right"> 68 <a id="admin-options" class="btn btn-default" data-toggle="dropdown"> 69 <i class="fa fa-gear"></i> 70 <i class="fa fa-caret-down"></i> 71 </a> 72 73 <ul class="dropdown-menu" role="menu"> 74 <li><a tabindex="-1" href="#" ng-click="openAdminModal('schedule')">Schedule Build</a></li> 75 <li><a tabindex="-1" href="#" ng-click="openAdminModal('unschedule')">Unschedule Build</a></li> 76 <li><a tabindex="-1" href="#" ng-click="openAdminModal('abort')">Abort Build</a></li> 77 <li><a tabindex="-1" href="#" ng-click="openAdminModal('priority')">Set Priority</a></li> 78 <li><a tabindex="-1" href="#" ng-click="openAdminModal('restart')">Restart Build</a></li> 79 </ul> 80 </div> 81 <admin-modal> 82 <admin-schedule-build ng-show="adminOption=='schedule'"></admin-schedule-build> 83 <admin-unschedule-build ng-show="adminOption=='unschedule'"></admin-unschedule-build> 84 <admin-abort-build ng-show="adminOption=='abort'"></admin-abort-build> 85 <admin-set-priority ng-show="adminOption=='priority'"></admin-set-priority> 86 <admin-restart-build ng-show="adminOption=='restart'"></admin-restart-build> 87 </admin-modal> 88 </div> 89 {{end}} 90 </header> 91 92 <div class="row"> 93 <div class="col-lg-12"> 94 <div class="mci-pod"> 95 <br> 96 {{if .Build.PatchInfo}} 97 <patch-commit-panel patchinfo="build.PatchInfo" basecommit="commit" timezone="{{GetTimezone .User}}" baselink="/build" base="{{.Build.PatchInfo.BaseBuildId}}"></patch-commit-panel> 98 {{else}} 99 <github-commit-panel commit="commit" timezone="{{GetTimezone .User}}"></github-commit-panel> 100 {{end}} 101 <table id="build-info-elements"> 102 <tr><td><i class="fa fa-clock-o"></i></td><th><strong title="The makespan is the difference in time from when the first task in the build has started to when the last task is completed.">Makespan</strong></th> 103 <td> 104 <span ng-show="makeSpanMS>0">[[makeSpanMS * 1000000 | default:0 | stringifyNanoseconds:true]]</span> 105 <span ng-show="makeSpanMS==0">Not Started</span> 106 </td> 107 </tr> 108 <tr><td><i class="fa fa-clock-o"></i></td><th><strong title="The time spent indicates the sum of the processing time across all the tasks in the build.">Time Spent</strong></th> 109 <td> 110 <span ng-show="totalTimeMS>0">[[totalTimeMS * 1000000 | default:0 | stringifyNanoseconds:true]]</span> 111 <span ng-show="totalTimeMS==0">Not Started</span> 112 </td> 113 </tr> 114 </table> 115 </div> 116 </div> 117 </div> 118 119 <div class="row"> 120 <div class="col-lg-12"> 121 <patch-diff-panel type="Task" baselink="/task/" diffs="build.PatchInfo.StatusDiffs" ng-show="build.PatchInfo.StatusDiffs"></patch-diff-panel> 122 </div> 123 </div> 124 125 <div class="row"> 126 <div class="col-lg-12" ng-controller="BuildVariantHistoryController" ng-init="setBuildId(build.Build._id);" ng-show="!build.PatchInfo"> 127 <h3 class="section-heading"><i class="fa fa-wrench"></i> Build History <span class="semi-muted">for [[build.Build.display_name]]</span></h3> 128 <div class="mci-pod"> 129 <div ng-repeat="build in builds" class="row build-small" ng-class="buildId == build.Build._id | conditional:'active':''"> 130 <div class="col-lg-6"> 131 <div class="commit-message"> 132 <div style="display: inline-block; width: 100px;"> 133 <span class="label" ng-class="build.Build.status" build-status-label="build"></span> 134 </div> 135 <b> 136 <a ng-href="/build/[[build.Build._id]]" title="[[build.Version.message]]"> 137 <span ng-class="viewingBuild.Build._id == build.Build._id | conditional:'semi-muted':''">[[build.Version.message]]</span> 138 </a> 139 </b> 140 </div> 141 </div> 142 <div class="col-lg-6"> 143 <div results-bar="buildResults[build.Build._id]"></div> 144 </div> 145 </div> 146 <div class="row build-small" style="margin-top: 10px; margin-bottom: 10px" ng-style="{ 'border-top': (!lastSuccess | conditional:'2px solid red':'2px solid #5cb85c') }" ng-show="showLastSuccess"> 147 <div ng-show="!!lastSuccess"> 148 <div class="col-lg-12"> 149 <p class="text-center text-muted"><em>— Last Successful Build —</em></p> 150 </div> 151 <div class="col-lg-6"> 152 <div class="commit-message"> 153 <div style="display: inline-block; width: 100px;"> 154 <span class="label" ng-class="lastSuccess.Build.status" build-status-label="lastSuccess"></span> 155 </div> 156 <b> 157 <a ng-href="/build/[[lastSuccess.Build._id]]" title="[[lastSuccess.Version.message]]"> 158 <span>[[lastSuccess.Version.message]]</span> 159 </a> 160 </b> 161 </div> 162 </div> 163 <div class="col-lg-6"> 164 <div results-bar="buildResults[lastSuccess.Build._id]"></div> 165 </div> 166 </div> 167 <div ng-show="!lastSuccess"> 168 <h2>No Prior Successful Builds</h2> 169 </div> 170 </div> 171 <div class="text-right muted"> 172 <span ng-show="loading">Loading...</span> 173 </div> 174 </div> 175 </div> 176 </div> 177 178 <div class="row"> 179 <div class="col-lg-12"> 180 {{range .PluginContent.Panels.Left}} 181 {{.}} 182 {{end}} 183 </div> 184 </div> 185 </div> 186 187 <div id="tasks-info" class="col-lg-5"> 188 <h3 class="section-heading"><i class="fa fa-tasks"></i> Tasks</h3> 189 <div class="mci-pod"> 190 <table class="table table-new task-panel"> 191 <thead> 192 <tr> 193 <th class="col-lg-4">Task</th> 194 <th class="col-lg-8">Time</th> 195 </tr> 196 </thead> 197 <tbody> 198 <tr ng-repeat="task in build.Tasks"> 199 <td class="col-lg-4"> 200 <a ng-href="/task/[[task.Task.id]]">[[task.Task.display_name]]</a> 201 </td> 202 <td class="col-lg-8"> 203 <div class="progress" progress-bar="task.Task.time_taken" progress-bar-max="computed.maxTaskTime" progress-bar-class="task.Task" progress-bar-title="task.Task.time_taken | stringifyNanoseconds"></div> 204 </td> 205 </tr> 206 </tbody> 207 </table> 208 </div> 209 {{range .PluginContent.Panels.Right}} 210 {{.}} 211 {{end}} 212 </div> 213 </div> 214 <div class="row"> 215 <div class="col-lg-12"> 216 {{range .PluginContent.Panels.Center}} 217 {{.}} 218 {{end}} 219 </div> 220 </div> 221 </div> 222 {{end}}