blob: 98d9fac82204d4b9c3045829592cb19267a5fa02 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001{% load static %}
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002{% load humanize %}
Patrick Williamsc0f7c042017-02-23 20:41:17 -06003{% load project_url_tag %}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05004<script src="{% static 'js/mrbsection.js' %}"></script>
Patrick Williamsc0f7c042017-02-23 20:41:17 -06005
6{% if mru %}
7 {% if mrb_type == 'project' %}
8 <h2>
9 Latest project builds
10
11 {% if project.is_default %}
12 <span class="glyphicon glyphicon-question-sign get-help heading-help" data-original-title="Builds in this project cannot be started from Toaster: they are started from the command line"></span>
13 {% endif %}
14 </h2>
15 {% else %}
16 <div class="page-header">
17 <h1>Latest builds</h1>
18 </div>
19 {% endif %}
20
21 <div id="latest-builds">
22 {% for build in mru %}
23 <div data-latest-build-result="{{build.id}}" class="alert build-result {% if build.outcome == build.SUCCEEDED %}alert-success{% elif build.outcome == build.FAILED %}alert-danger{% else %}alert-info{% endif %}">
24 <!-- project title -->
25 {% if mrb_type != 'project' %}
26 <div class="row project-name">
27 <div class="col-md-12">
28 <small>
29 <a class="alert-link text-uppercase" href="{% project_url build.project %}">
30 {{build.project.name}}
31 </a>
32 </small>
33 </div>
34 </div>
35 {% endif %}
36
37 <div class="row" data-role="build-status-container">
38 <div class="col-md-12">
39 Loading...
40 </div>
41 </div>
42 </div>
43 {% endfor %}
44 </div>
45{% endif %}
46
47<!-- build main template -->
48<script id="build-template" type="text/x-jsrender">
49 <div class="col-md-3">
50 <!-- only show link for completed builds -->
51 <%if state == 'Succeeded' || state == 'Failed'%>
52 <a class="alert-link" href="<%:dashboard_url%>">
53 <span data-toggle="tooltip" data-role="targets-text" title="Recipes: <%:targets%>">
54 <%:targets_abbreviated%>
55 </span>
56 </a>
57 <%else targets_abbreviated !== ''%>
58 <span data-toggle="tooltip" data-role="targets-text" title="Recipes: <%:targets%>">
59 <%:targets_abbreviated%>
60 </span>
61 <%else%>
62 Fetching recipe names...
63 <%/if%>
64 </div>
65
66 <div data-build-state="<%:state%>">
Brad Bishopd7bf8c12018-02-25 22:55:05 -050067 <%if state == 'Cloning'%>
68 <%include tmpl='#cloning-repos-build-template'/%>
69 <%else state == 'Parsing'%>
Patrick Williamsc0f7c042017-02-23 20:41:17 -060070 <%include tmpl='#parsing-recipes-build-template'/%>
71 <%else state == 'Queued'%>
72 <%include tmpl='#queued-build-template'/%>
73 <%else state == 'Succeeded' || state == 'Failed'%>
74 <%include tmpl='#succeeded-or-failed-build-template'/%>
75 <%else state == 'Cancelling'%>
76 <%include tmpl='#cancelling-build-template'/%>
77 <%else state == 'Starting'%>
78 <%include tmpl='#starting-template'/%>
79 <%else state == 'In Progress'%>
80 <%include tmpl='#in-progress-build-template'/%>
81 <%else state == 'Cancelled'%>
82 <%include tmpl='#cancelled-build-template'/%>
83 <%/if%>
84 </div>
85</script>
86
87<!-- queued build -->
88<script id="queued-build-template" type="text/x-jsrender">
89 <div class="col-md-5">
90 <span class="glyphicon glyphicon-question-sign get-help get-help-blue"
91 title="This build is waiting for the build directory to become available">
92 </span>
93
94 Build queued
95 </div>
96
97 <div class="col-md-4">
98 <!-- cancel button -->
99 <%include tmpl='#cancel-template'/%>
100 </div>
101</script>
102
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500103<!-- cloning repos build -->
104<script id="cloning-repos-build-template" type="text/x-jsrender">
105 <!-- progress bar and parse completion percentage -->
106 <div data-role="build-status" class="col-md-4 col-md-offset-1 progress-info">
107 <!-- progress bar -->
108 <div class="progress">
109 <div id="repos-cloned-percentage-bar-<%:id%>"
110 style="width: <%:repos_cloned_percentage%>%;"
111 class="progress-bar">
112 </div>
113 </div>
114 </div>
115
116 <div class="col-md-4 progress-info">
117 <!-- parse completion percentage -->
118 <span class="glyphicon glyphicon-question-sign get-help get-help-blue"
119 title="Toaster is cloning the repos required for your build">
120 </span>
121
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800122 Cloning <span id="repos-cloned-percentage-<%:id%>"><%:repos_cloned_percentage%></span>% complete <span id="repos-cloned-progressitem-<%:id%>">(<%:progress_item%>)</span>
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500123
124 <%include tmpl='#cancel-template'/%>
125 </div>
126</script>
127
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600128<!-- parsing recipes build -->
129<script id="parsing-recipes-build-template" type="text/x-jsrender">
130 <!-- progress bar and parse completion percentage -->
131 <div data-role="build-status" class="col-md-4 col-md-offset-1 progress-info">
132 <!-- progress bar -->
133 <div class="progress">
134 <div id="recipes-parsed-percentage-bar-<%:id%>"
135 style="width: <%:recipes_parsed_percentage%>%;"
136 class="progress-bar">
137 </div>
138 </div>
139 </div>
140
141 <div class="col-md-4 progress-info">
142 <!-- parse completion percentage -->
143 <span class="glyphicon glyphicon-question-sign get-help get-help-blue"
144 title="BitBake is parsing the layers required for your build">
145 </span>
146
147 Parsing <span id="recipes-parsed-percentage-<%:id%>"><%:recipes_parsed_percentage%></span>% complete
148
149 <%include tmpl='#cancel-template'/%>
150 </div>
151</script>
152
153<!-- in progress build; tasks still starting -->
154<script id="starting-template" type="text/x-jsrender">
155 <div class="col-md-5">
156 <span class="glyphicon glyphicon-question-sign get-help get-help-blue"
157 title="This build is waiting for tasks to start">
158 </span>
159
160 Tasks starting...
161 </div>
162
163 <div class="col-md-4">
164 <!-- cancel button -->
165 <%include tmpl='#cancel-template'/%>
166 </div>
167</script>
168
169<!-- in progress build; at least one task finished -->
170<script id="in-progress-build-template" type="text/x-jsrender">
171 <!-- progress bar and task completion percentage -->
172 <div data-role="build-status" class="col-md-4 col-md-offset-1 progress-info">
173 <!-- progress bar -->
174 <div class="progress" id="build-pc-done-title-<%:id%>">
175 <div id="build-pc-done-bar-<%:id%>"
176 style="width: <%:tasks_complete_percentage%>%;"
177 class="progress-bar">
178 </div>
179 </div>
180 </div>
181
182 <div class="col-md-4 progress-info">
183 <!-- task completion percentage -->
184 <span id="build-pc-done-<%:id%>"><%:tasks_complete_percentage%></span>% of
185 tasks complete
186
187 <!-- cancel button -->
188 <%include tmpl='#cancel-template'/%>
189 </div>
190</script>
191
192<!-- cancelling build -->
193<script id="cancelling-build-template" type="text/x-jsrender">
194 <div class="col-md-9">
195 Cancelling the build ...
196 </div>
197</script>
198
199<!-- succeeded or failed build -->
200<script id="succeeded-or-failed-build-template" type="text/x-jsrender">
201 <!-- completed_on -->
202 <div class="col-md-2">
203 <%:completed_on%>
204 </div>
205
206 <!-- errors -->
207 <div class="col-md-2">
208 <%if errors%>
209 <span class="glyphicon glyphicon-minus-sign"></span>
210 <a href="<%:dashboard_errors_url%>" class="alert-link">
211 <%:errors%> error<%:errors_pluralise%>
212 </a>
213 <%/if%>
214 </div>
215
216 <!-- warnings -->
217 <div class="col-md-2">
218 <%if warnings%>
219 <span class="glyphicon glyphicon-warning-sign build-warnings"></span>
220 <a href="<%:dashboard_warnings_url%>" class="alert-link build-warnings">
221 <%:warnings%> warning<%:warnings_pluralise%>
222 </a>
223 <%/if%>
224 </div>
225
226 <!-- build time -->
227 <div class="col-md-3">
228 Build time:
229
230 <span data-role="data-recent-build-buildtime-field">
231 <%if state == 'Succeeded'%>
232 <a class="alert-link" href="<%:buildtime_url%>"><%:buildtime%></a>
233 <%else%>
234 <%:buildtime%>
235 <%/if%>
236 </span>
237
238 <!-- rebuild button -->
239 <%include tmpl='#rebuild-template'/%>
240 </div>
241</script>
242
243<!-- cancelled build -->
244<script id="cancelled-build-template" type="text/x-jsrender">
245 <!-- build cancelled message -->
246 <div class="col-md-6">
247 Build cancelled
248 </div>
249
250 <!-- rebuild button -->
251 <div class="col-md-3">
252 <%include tmpl='#rebuild-template'/%>
253 </div>
254</script>
255
256<!-- rebuild button or no rebuild icon -->
257<script id="rebuild-template" type="text/x-jsrender">
258 <%if is_default_project_build%>
259 <!-- no rebuild info icon -->
260 <span class="pull-right glyphicon glyphicon-question-sign get-help <%if state == 'Succeeded'%>get-help-green<%else state == 'Failed'%>get-help-red<%else%>get-help-blue<%/if%>"
261 title="Builds in this project cannot be started from Toaster: they are started from the command line">
262 </span>
263 <%else%>
264 <!-- rebuild button -->
265 <span class="rebuild-btn alert-link <%if state == 'Success'%>success<%else state == 'Failed'%>danger<%else%>info<%/if%> pull-right"
266 data-request-url="<%:rebuild_url%>" data-target='<%:build_targets_json%>'>
267 <span class="glyphicon glyphicon-repeat"></span>
268 Rebuild
269 </span>
270 <%/if%>
271</script>
272
273<!-- cancel button or no cancel icon -->
274<script id="cancel-template" type="text/x-jsrender">
275 <%if is_default_project_build%>
276 <!-- no cancel icon -->
277 <span class="glyphicon glyphicon-question-sign get-help get-help-blue pull-right" title="Builds in this project cannot be cancelled from Toaster: they can only be cancelled from the command line"></span>
278 <%else%>
279 <!-- cancel button -->
280 <span class="cancel-build-btn pull-right alert-link"
281 data-buildrequest-id="<%:buildrequest_id%>" data-request-url="<%:cancel_url%>">
282 <span class="glyphicon glyphicon-remove-circle"></span>
283 Cancel
284 </span>
285 <%/if%>
286</script>
287
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500288<script>
289 $(document).ready(function () {
290 var ctx = {
291 mrbType : "{{mrb_type}}",
292 }
293
294 try {
295 mrbSectionInit(ctx);
296 } catch (e) {
297 document.write("Sorry, An error has occurred loading this page");
298 console.warn(e);
299 }
300 });
301</script>