blob: b5e798d7cccfc4e6d7296281ea2b22447cad31e5 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001{% load static %}
2{% load projecttags %}
Patrick Williamsf1e5d692016-03-30 15:21:19 -05003{% load project_url_tag %}
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004{% load humanize %}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05005<script src="{% static 'js/mrbsection.js' %}"></script>
6<script>
7 $(document).ready(function () {
8 var ctx = {
9 mrbType : "{{mrb_type}}",
10 }
11
12 try {
13 mrbSectionInit(ctx);
14 } catch (e) {
15 document.write("Sorry, An error has occurred loading this page");
16 console.warn(e);
17 }
18 });
19</script>
Patrick Williamsc124f4f2015-09-15 14:41:29 -050020
Patrick Williamsf1e5d692016-03-30 15:21:19 -050021{%if mru and mru.count > 0%}
Patrick Williamsc124f4f2015-09-15 14:41:29 -050022
Patrick Williamsf1e5d692016-03-30 15:21:19 -050023 {%if mrb_type == 'project' %}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050024 <h2 class="page-header">
Patrick Williamsf1e5d692016-03-30 15:21:19 -050025 Latest project builds
Patrick Williamsc124f4f2015-09-15 14:41:29 -050026
Patrick Williamsf1e5d692016-03-30 15:21:19 -050027 {% if project.is_default %}
28 <i class="icon-question-sign get-help heading-help" title="" data-original-title="Builds in this project cannot be started from Toaster: they are started from the command line"></i>
29 {% endif %}
30 </h2>
31 {% else %}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050032 <div class="page-header top-air">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050033 <h1>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050034 Latest builds
35 </h1>
36 </div>
37 {% endif %}
Patrick Williamsc124f4f2015-09-15 14:41:29 -050038 <div id="latest-builds">
39 {% for build in mru %}
Patrick Williamsf1e5d692016-03-30 15:21:19 -050040 <div data-latest-build-result="{{ build.id }}" class="alert build-result {%if build.outcome == build.SUCCEEDED%}alert-success{%elif build.outcome == build.FAILED%}alert-error{%else%}alert-info{%endif%}{% if mrb_type != 'project' %} project-name{% endif %}">
41 {% if mrb_type != 'project' %}
42 <span class="label {%if build.outcome == build.SUCCEEDED%}label-success{%elif build.outcome == build.FAILED%}label-important{%else%}label-info{%endif%}">
43 <a href={% project_url build.project %}>
44 {{build.project.name}}
45 </a>
46 </span>
47 {% endif %}
Patrick Williamsc124f4f2015-09-15 14:41:29 -050048 <div class="row-fluid">
Patrick Williamsf1e5d692016-03-30 15:21:19 -050049 <div class="span3 lead">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050050 {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
Patrick Williamsf1e5d692016-03-30 15:21:19 -050051 <a href="{%url 'builddashboard' build.pk%}" class="{%if build.outcome == build.SUCCEEDED %}success{%else%}error{%endif%}">
Patrick Williamsc124f4f2015-09-15 14:41:29 -050052 {% endif %}
53 {% if build.target_set.all.count > 0 %}
54 <span data-toggle="tooltip"
Patrick Williamsf1e5d692016-03-30 15:21:19 -050055 {% if build.target_set.all.count > 1 %}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050056 {{build.get_sorted_target_list.0.target}}
57 title="Recipes:
58 {% for target in build.get_sorted_target_list %}
Patrick Williamsf1e5d692016-03-30 15:21:19 -050059 {% if target.task %}
60 {{target.target}}:{{target.task}}
61 {% else %}
62 {{target.target}}
63 {% endif %}
64 {% endfor %}"
65 {% endif %}
Patrick Williamsc124f4f2015-09-15 14:41:29 -050066 >
Patrick Williamsf1e5d692016-03-30 15:21:19 -050067 {% if build.target_set.all.0.task %}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050068 {{build.get_sorted_target_list.0.target}}:{{build.target_set.all.0.task}}
Patrick Williamsf1e5d692016-03-30 15:21:19 -050069 {% else %}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050070 {{build.get_sorted_target_list.0.target}}
Patrick Williamsf1e5d692016-03-30 15:21:19 -050071 {% endif %}
72 {% if build.target_set.all.count > 1 %}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050073 (+{{build.target_set.all.count|add:"-1"}})
Patrick Williamsf1e5d692016-03-30 15:21:19 -050074 {% endif %}
Patrick Williamsc124f4f2015-09-15 14:41:29 -050075 </span>
76 {% endif %}
77 {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
78 </a>
79 {% endif %}
80 </div>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050081 {% if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
Patrick Williamsc124f4f2015-09-15 14:41:29 -050082 <div class="span2 lead">
83 {% if build.completed_on|format_build_date %}
84 {{ build.completed_on|date:'d/m/y H:i' }}
85 {% else %}
86 {{ build.completed_on|date:'H:i' }}
87 {% endif %}
88 </div>
Patrick Williamsf1e5d692016-03-30 15:21:19 -050089 {% endif %}
Patrick Williamsc124f4f2015-09-15 14:41:29 -050090 {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
91 <div class="span2 lead">
92 {% if build.errors.count %}
93 <i class="icon-minus-sign red"></i> <a href="{%url 'builddashboard' build.pk%}#errors" class="error">{{build.errors.count}} error{{build.errors.count|pluralize}}</a>
94 {% endif %}
95 </div>
96 <div class="span2 lead">
97 {% if build.warnings.count %}
98 <i class="icon-warning-sign yellow"></i> <a href="{%url 'builddashboard' build.pk%}#warnings" class="warning">{{build.warnings.count}} warning{{build.warnings.count|pluralize}}</a>
99 {% endif %}
100 </div>
101 <div class="lead ">
102 <span class="lead">
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500103 Build time: <a href="{% url 'buildtime' build.pk %}">{{ build.timespent_seconds|sectohms }}</a>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500104 </span>
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500105 {% if build.project.is_default %}
106 <i class="pull-right icon-question-sign get-help
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500107 {% if build.outcome == build.SUCCEEDED %}
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500108 get-help-green
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500109 {% elif build.outcome == build.FAILED %}
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500110 get-help-red
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500111 {% else %}
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500112 get-help-blue
113 {% endif %}
114 " title="Builds in this project cannot be started from Toaster: they are started from the command line">
115 </i>
116 {% else %}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500117 <button class="run-again-btn btn
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500118 {% if build.outcome == build.SUCCEEDED %}
119 btn-success
120 {% elif build.outcome == build.FAILED %}
121 btn-danger
122 {% else %}
123 btn-info
124 {%endif%}
125 pull-right"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500126 data-request-url="{% url 'xhr_buildrequest' build.project.pk %}"
127 data-target='{{build.target_set.all|get_tasks|json}}'>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500128
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500129
130 Rebuild
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500131 </button>
132 {% endif %}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500133 </div>
134 {%endif%}
135 {%if build.outcome == build.IN_PROGRESS %}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500136 <div class="span4" style="display:none" id="cancelling-msg-{{build.buildrequest.pk}}">
137 <p class="lead">Cancelling the build ...</p>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500138 </div>
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500139 <div class="span4 offset1 progress-info">
140 <div class="progress" id="build-pc-done-title-{{build.pk}}" style="margin-top:5px;" data-toggle="tooltip" title="{{build.completeper}}% of tasks complete">
141 <div id="build-pc-done-bar-{{build.pk}}" style="width: {{build.completeper}}%;" class="bar"></div>
142 </div>
143 </div>
144 <div class="lead span3 progress-info"><span id="build-pc-done-{{build.pk}}">{{build.completeper}}</span>% of tasks complete</div>
145 {# No build cancel for command line builds project #}
146 {% if build.project.is_default %}
147 <i class="icon-question-sign get-help get-help-blue pull-right" title="" data-original-title="Builds in this project cannot be cancelled from Toaster: they can only be cancalled from the command line"></i>
148 {% else %}
149 <div class="lead pull-right progress-info">
150 <button class="cancel-build-btn btn btn-info pull-right"
151 data-buildrequest-id={{build.buildrequest.pk}}
152 data-request-url="{% url 'xhr_buildrequest' build.project.pk %}" >
153 Cancel
154 </button>
155 </div>
156 {% endif %}
157
158 {%endif%} {# end if in progress #}
159
160 {% if build.outcome == build.CANCELLED %}
161 <div class="span4">
162 <p class="lead">Build cancelled</p>
163 </div>
164 <button class="btn btn-info pull-right run-again-btn"
165 data-request-url="{% url 'xhr_buildrequest' build.project.pk %}"
166 data-target='{{build.target_set.all|get_tasks|json}}'>
167 Rebuild
168
169 </button>
170 {% endif %}
171 </div>
172</div>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500173
174 {% endfor %}
175 </div>
176
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500177{%endif%}
178