diff options
author | Elliot Smith <elliot.smith@intel.com> | 2016-07-04 12:52:53 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-07-08 09:57:28 +0100 |
commit | ed9c309e814294c2b8ab31fae470e1ab63fb8a5d (patch) | |
tree | 9091d98ad782dcc4edf4ae95d83b2e865da565b9 /bitbake/lib/toaster/toastergui/templates | |
parent | 7ed76e4c2021ef96b3244dfca5ddb91a69c4c721 (diff) | |
download | poky-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>
Diffstat (limited to 'bitbake/lib/toaster/toastergui/templates')
-rw-r--r-- | bitbake/lib/toaster/toastergui/templates/mrb_section.html | 247 |
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 | ||