summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliot Smith <elliot.smith@intel.com>2016-07-04 12:52:53 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-07-08 09:57:28 +0100
commited9c309e814294c2b8ab31fae470e1ab63fb8a5d (patch)
tree9091d98ad782dcc4edf4ae95d83b2e865da565b9
parent7ed76e4c2021ef96b3244dfca5ddb91a69c4c721 (diff)
downloadpoky-ed9c309e814294c2b8ab31fae470e1ab63fb8a5d.tar.gz
bitbake: toaster: fix layout for command-line builds in recent builds area
Command-line builds were displayed incorrectly, so that the HTML elements for other builds were being "consumed" by the command-line build elements due to incorrect positioning of element end tags. Fix by ensuring end tags close elements in the right places. As the indentation was all over the place in the most recent builds section template, it was almost impossible to see what the problem was. So that was fixed, too. [YOCTO #9842] (Bitbake rev: 01659389813ad61d4f75b9f8d71528581322f0b0) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--bitbake/lib/toaster/toastergui/templates/mrb_section.html247
1 files changed, 123 insertions, 124 deletions
diff --git a/bitbake/lib/toaster/toastergui/templates/mrb_section.html b/bitbake/lib/toaster/toastergui/templates/mrb_section.html
index 4b4e3e691b..b164269a13 100644
--- a/bitbake/lib/toaster/toastergui/templates/mrb_section.html
+++ b/bitbake/lib/toaster/toastergui/templates/mrb_section.html
@@ -3,6 +3,7 @@
3{% load project_url_tag %} 3{% load project_url_tag %}
4{% load humanize %} 4{% load humanize %}
5<script src="{% static 'js/mrbsection.js' %}"></script> 5<script src="{% static 'js/mrbsection.js' %}"></script>
6
6<script> 7<script>
7 $(document).ready(function () { 8 $(document).ready(function () {
8 var ctx = { 9 var ctx = {
@@ -18,165 +19,163 @@
18 }); 19 });
19</script> 20</script>
20 21
21{%if mru %} 22{% if mru %}
22 23
23 {%if mrb_type == 'project' %} 24 {% if mrb_type == 'project' %}
24 <h2> 25 <h2>
25 Latest project builds 26 Latest project builds
26 27
27 {% if project.is_default %} 28 {% if project.is_default %}
28 <span class="glyphicon glyphicon-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"></span> 29 <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>
29 {% endif %} 30 {% endif %}
30 </h2> 31 </h2>
31 {% else %} 32 {% else %}
32 <div class="page-header"> 33 <div class="page-header">
33 <h1> 34 <h1>Latest builds</h1>
34 Latest builds
35 </h1>
36 </div> 35 </div>
37 {% endif %} 36 {% endif %}
37
38 <div id="latest-builds"> 38 <div id="latest-builds">
39 {% for build in mru %} 39 {% for build in mru %}
40 <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%}"> 40 <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 %}">
41 {% if mrb_type != 'project' %} 41 {% if mrb_type != 'project' %}
42 <div class="row project-name"> 42 <div class="row project-name">
43 <div class="col-md-12"> 43 <div class="col-md-12">
44 <small> 44 <small>
45 <a class="alert-link text-uppercase" href={% project_url build.project %}>{{build.project.name}}</a> 45 <a class="alert-link text-uppercase" href={% project_url build.project %}>{{build.project.name}}</a>
46 </small> 46 </small>
47 </div>
47 </div> 48 </div>
48 </div>
49 {% endif %} 49 {% endif %}
50
50 <div class="row"> 51 <div class="row">
51 <div class="col-md-3"> 52 <div class="col-md-3">
52 {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %} 53 {% if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
53 <a href="{%url 'builddashboard' build.pk%}" class="alert-link"> 54 <a href="{% url 'builddashboard' build.pk %}" class="alert-link">
54 {% endif %} 55 {% endif %}
56
55 {% if build.target_set.all.count > 0 %} 57 {% if build.target_set.all.count > 0 %}
56 <span data-toggle="tooltip" 58 <span data-toggle="tooltip"
57 {% if build.target_set.all.count > 1 %} 59 {% if build.target_set.all.count > 1 %}
58 {{build.get_sorted_target_list.0.target}} 60 {{build.get_sorted_target_list.0.target}}
59 title="Recipes: 61 title="Recipes:
60 {% for target in build.get_sorted_target_list %} 62 {% for target in build.get_sorted_target_list %}
61 {% if target.task %} 63 {% if target.task %}
62 {{target.target}}:{{target.task}} 64 {{target.target}}:{{target.task}}
63 {% else %} 65 {% else %}
64 {{target.target}} 66 {{target.target}}
65 {% endif %} 67 {% endif %}
66 {% endfor %}" 68 {% endfor %}"
67 {% endif %} 69 {% endif %}
68 > 70 >
69 {% if build.target_set.all.0.task %} 71 {% if build.target_set.all.0.task %}
70 {{build.get_sorted_target_list.0.target}}:{{build.target_set.all.0.task}} 72 {{build.get_sorted_target_list.0.target}}:{{build.target_set.all.0.task}}
71 {% else %} 73 {% else %}
72 {{build.get_sorted_target_list.0.target}} 74 {{build.get_sorted_target_list.0.target}}
73 {% endif %} 75 {% endif %}
76
74 {% if build.target_set.all.count > 1 %} 77 {% if build.target_set.all.count > 1 %}
75 (+{{build.target_set.all.count|add:"-1"}}) 78 (+{{build.target_set.all.count|add:"-1"}})
76 {% endif %} 79 {% endif %}
77 </span> 80 </span>
78 {% endif %} 81 {% endif %}
79 {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %} 82 {% if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
80 </a> 83 </a>
81 {% endif %} 84 {% endif %}
82 </div> 85 </div>
83 {% if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %} 86
87 {% if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
84 <div class="col-md-2"> 88 <div class="col-md-2">
85 {% if build.completed_on|format_build_date %} 89 {% if build.completed_on|format_build_date %}
86 {{ build.completed_on|date:'d/m/y H:i' }} 90 {{build.completed_on|date:'d/m/y H:i'}}
87 {% else %} 91 {% else %}
88 {{ build.completed_on|date:'H:i' }} 92 {{ build.completed_on|date:'H:i' }}
89 {% endif %} 93 {% endif %}
90 </div> 94 </div>
91 {% endif %} 95 {% endif %}
92 {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %} 96
97 {% if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
93 <div class="col-md-2"> 98 <div class="col-md-2">
94 {% if build.errors.count %} 99 {% if build.errors.count %}
95 <span class="glyphicon glyphicon-minus-sign"></span> 100 <span class="glyphicon glyphicon-minus-sign"></span>
96 <a href="{%url 'builddashboard' build.pk%}#errors" class="alert-link">{{build.errors.count}} error{{build.errors.count|pluralize}}</a> 101 <a href="{%url 'builddashboard' build.pk%}#errors" class="alert-link">
97 {% endif %} 102 {{build.errors.count}} error{{build.errors.count|pluralize}}
103 </a>
104 {% endif %}
98 </div> 105 </div>
106
99 <div class="col-md-2"> 107 <div class="col-md-2">
100 {% if build.warnings.count %} 108 {% if build.warnings.count %}
101 <span class="glyphicon glyphicon-warning-sign build-warnings"></span> 109 <span class="glyphicon glyphicon-warning-sign build-warnings"></span>
102 <a href="{%url 'builddashboard' build.pk%}#warnings" class="alert-link build-warnings">{{build.warnings.count}} warning{{build.warnings.count|pluralize}}</a> 110 <a href="{%url 'builddashboard' build.pk%}#warnings" class="alert-link build-warnings">
103 {% endif %} 111 {{build.warnings.count}} warning{{build.warnings.count|pluralize}}
112 </a>
113 {% endif %}
104 </div> 114 </div>
115
105 <div class="col-md-3"> 116 <div class="col-md-3">
106 Build time: <a class="alert-link" href="{% url 'buildtime' build.pk %}">{{ build.timespent_seconds|sectohms }} 117 Build time: <a class="alert-link" href="{% url 'buildtime' build.pk %}">{{ build.timespent_seconds|sectohms }}
107 </a> 118 </a>
119
108 {% if build.project.is_default %} 120 {% if build.project.is_default %}
109 <span class="pull-right glyphicon glyphicon-question-sign get-help 121 <span class="pull-right glyphicon glyphicon-question-sign get-help {% if build.outcome == build.SUCCEEDED %}get-help-green{% elif build.outcome == build.FAILED %}get-help-red{% else %}get-help-blue{% endif %}"
110 {% if build.outcome == build.SUCCEEDED %} 122 title="Builds in this project cannot be started from Toaster: they are started from the command line">
111 get-help-green 123 </span>
112 {% elif build.outcome == build.FAILED %}
113 get-help-red
114 {% else %}
115 get-help-blue
116 {% endif %}
117 " title="Builds in this project cannot be started from Toaster: they are started from the command line">
118 </span>
119 {% else %} 124 {% else %}
120 <a href="#" class="run-again-btn alert-link 125 <a href="#" class="run-again-btn alert-link {% if build.outcome == build.SUCCEEDED %}success{% elif build.outcome == build.FAILED %}danger{% else %}info{% endif %} pull-right"
121 {% if build.outcome == build.SUCCEEDED %} 126 data-request-url="{% url 'xhr_buildrequest' build.project.pk %}"
122 success 127 data-target='{{build.target_set.all|get_tasks|json}}'>
123 {% elif build.outcome == build.FAILED %} 128 <span class="glyphicon glyphicon-repeat"></span>
124 danger 129 Rebuild
125 {% else %} 130 </a>
126 info
127 {%endif%}
128 pull-right"
129 data-request-url="{% url 'xhr_buildrequest' build.project.pk %}"
130 data-target='{{build.target_set.all|get_tasks|json}}'>
131 <span class="glyphicon glyphicon-repeat"></span>
132 Rebuild
133 </a>
134 {% endif %} 131 {% endif %}
135 </div> 132 </div>
136 {%endif%} 133 {% endif %}
137 134
138 {%if build.outcome == build.IN_PROGRESS %} 135 {% if build.outcome == build.IN_PROGRESS %}
139 <div class="col-md-4" style="display:none" id="cancelling-msg-{{build.buildrequest.pk}}"> 136 <div class="col-md-4" style="display:none" id="cancelling-msg-{{build.buildrequest.pk}}">
140 Cancelling the build ... 137 Cancelling the build ...
141 </div> 138 </div>
142 <div class="col-md-4 col-md-offset-1 progress-info">
143 <div class="progress" id="build-pc-done-title-{{build.pk}}">
144 <div id="build-pc-done-bar-{{build.pk}}" style="width: {{build.completeper}}%;" class="progress-bar"></div>
145 </div>
146 </div>
147 <div class="col-md-4 progress-info"><span id="build-pc-done-{{build.pk}}">{{build.completeper}}</span>% of tasks complete
148 {# No build cancel for command line builds project #}
149 {% if build.project.is_default %}
150 <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>
151 {% else %}
152 <a href="#" class="cancel-build-btn pull-right alert-link"
153 data-buildrequest-id={{build.buildrequest.pk}}
154 data-request-url="{% url 'xhr_buildrequest' build.project.pk %}" >
155 <span class="glyphicon glyphicon-remove-circle"></span>
156 Cancel
157 </a>
158 </div>
159 {% endif %}
160 139
161 {%endif%} {# end if in progress #} 140 <div class="col-md-4 col-md-offset-1 progress-info">
141 <div class="progress" id="build-pc-done-title-{{build.pk}}">
142 <div id="build-pc-done-bar-{{build.pk}}" style="width: {{build.completeper}}%;" class="progress-bar">
143 </div>
144 </div>
145 </div>
162 146
163 {% if build.outcome == build.CANCELLED %} 147 <div class="col-md-4 progress-info">
164 <div class="col-md-6"> 148 <span id="build-pc-done-{{build.pk}}">{{build.completeper}}</span>% of tasks complete
165 Build cancelled 149 {# No build cancel for command line builds project #}
166 </div> 150 {% if build.project.is_default %}
167 <div class="col-md-3"> 151 <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>
168 <a href="#" class="info pull-right run-again-btn alert-link" 152 {% else %}
169 data-request-url="{% url 'xhr_buildrequest' build.project.pk %}" 153 <a href="#" class="cancel-build-btn pull-right alert-link"
170 data-target='{{build.target_set.all|get_tasks|json}}'> 154 data-buildrequest-id={{build.buildrequest.pk}}
171 <span class="glyphicon glyphicon-repeat"></span> 155 data-request-url="{% url 'xhr_buildrequest' build.project.pk %}">
172 Rebuild 156 <span class="glyphicon glyphicon-remove-circle"></span>
173 </a> 157 Cancel
174 </div> 158 </a>
175 {% endif %} 159 {% endif %}
176 </div> 160 </div>
177</div> 161 {% endif %} {# end if in progress #}
178 {% endfor %}
179 </div>
180 162
181{%endif%} 163 {% if build.outcome == build.CANCELLED %}
164 <div class="col-md-6">
165 Build cancelled
166 </div>
182 167
168 <div class="col-md-3">
169 <a href="#" class="info pull-right run-again-btn alert-link"
170 data-request-url="{% url 'xhr_buildrequest' build.project.pk %}"
171 data-target='{{build.target_set.all|get_tasks|json}}'>
172 <span class="glyphicon glyphicon-repeat"></span>
173 Rebuild
174 </a>
175 </div>
176 {% endif %}
177 </div>
178 </div>
179 {% endfor %}
180 </div>
181{% endif %} \ No newline at end of file