summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/toastergui/templates/projectbuilds.html
diff options
context:
space:
mode:
authorAlexandru DAMIAN <alexandru.damian@intel.com>2015-01-16 16:42:40 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-01-21 14:37:39 +0000
commitd1dbf4c078e04fdc0f3b971f62cdefcba4904232 (patch)
treecd77abd7c289e1ea1bd996d3949aaf91671898b1 /bitbake/lib/toaster/toastergui/templates/projectbuilds.html
parent9a51fb39dbde61baae5bf9094bbb1924bcfffd0a (diff)
downloadpoky-d1dbf4c078e04fdc0f3b971f62cdefcba4904232.tar.gz
bitbake: toaster: project builds page
This is a complete re-write of the "Project builds" page based on the "All builds" page in managed mode. [YOCTO #6589] (Bitbake rev: 0353d49ae934c4595408e1b7a1443769f095f2aa) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/toaster/toastergui/templates/projectbuilds.html')
-rw-r--r--bitbake/lib/toaster/toastergui/templates/projectbuilds.html118
1 files changed, 92 insertions, 26 deletions
diff --git a/bitbake/lib/toaster/toastergui/templates/projectbuilds.html b/bitbake/lib/toaster/toastergui/templates/projectbuilds.html
index 8c5942c7cb..8f9172c6d5 100644
--- a/bitbake/lib/toaster/toastergui/templates/projectbuilds.html
+++ b/bitbake/lib/toaster/toastergui/templates/projectbuilds.html
@@ -9,40 +9,72 @@
9{% block projectinfomain %} 9{% block projectinfomain %}
10 <div class="page-header"> 10 <div class="page-header">
11 <h1> 11 <h1>
12 All builds 12 {% if objects.paginator.count == 0 %}
13 <i class="icon-question-sign get-help heading-help" title="This page lists all the layers compatible with Yocto Project 1.7 'Dxxxx' that Toaster knows about. They include community-created layers suitable for use on top of OpenEmbedded Core and any layers you have imported"></i> 13 No builds found
14 </h1> 14
15 </div> 15 {% else %}
16 <!--div class="alert"> 16 {% if request.GET.filter or request.GET.search %}
17 <div class="input-append" style="margin-bottom:0px;"> 17 {{objects.paginator.count}} builds found
18 <input class="input-xxlarge" type="text" placeholder="Search layers" value="browser" /> 18 {% else %}
19 <a class="add-on btn"> 19 Project builds <small>({{objects.paginator.count}})</small>
20 <i class="icon-remove"></i> 20 {% endif %}
21 </a> 21 {% endif %}
22 <button class="btn" type="button">Search</button> 22 <i class="icon-question-sign get-help heading-help" title="This page lists all the builds for the current project"></i>
23 <a class="btn btn-link" href="#">Show all layers</a> 23 </h1>
24 </div>
25 </div-->
26 <div id="layer-added" class="alert alert-info lead" style="display:none;"></div>
27 <div id="layer-removed" class="alert alert-info lead" style="display:none;">
28 <button type="button" class="close" data-dismiss="alert">&times;</button>
29 <strong>1</strong> layer deleted from <a href="project-with-targets.html">your project</a>: <a href="#">meta-aarch64</a>
30 </div> 24 </div>
31 25
32 26
33{% include "basetable_top.html" %} 27 {% if objects.paginator.count == 0 %}
34 {% for build in objects %} 28 <div class="row-fluid">
29 <div class="alert">
30 <form class="no-results input-append" id="searchform">
31 <input id="search" name="search" class="input-xxlarge" type="text" value="{{request.GET.search}}"/>{% if request.GET.search %}<a href="javascript:$('#search').val('');searchform.submit()" class="add-on btn" tabindex="-1"><i class="icon-remove"></i></a>{% endif %}
32 <button class="btn" type="submit" value="Search">Search</button>
33 <button class="btn btn-link" onclick="javascript:$('#search').val('');searchform.submit()">Show all builds</button>
34 </form>
35 </div>
36 </div>
37
38
39 {% else %}
40
41 {% include "basetable_top.html" %}
42 <!-- Table data rows; the order needs to match the order of "tablecols" definitions; and the <td class value needs to match the tablecols clclass value for show/hide buttons to work -->
43 {% for br in objects %}{% if br.build %} {% with build=br.build %} {# if we have a build, just display it #}
35 <tr class="data"> 44 <tr class="data">
36 <td class="outcome"><a href="{% url "builddashboard" build.id %}">{%if build.outcome == build.SUCCEEDED%}<i class="icon-ok-sign success"></i>{%elif build.outcome == build.FAILED%}<i class="icon-minus-sign error"></i>{%else%}{%endif%}</a></td> 45 <td class="outcome"><a href="{% url "builddashboard" build.id %}">{%if build.outcome == build.SUCCEEDED%}<i class="icon-ok-sign success"></i>{%elif build.outcome == build.FAILED%}<i class="icon-minus-sign error"></i>{%else%}{%endif%}</a></td>
37 <td class="target">{% for t in build.target_set.all %} <a href="{% url "builddashboard" build.id %}"> {{t.target}} </a> <br />{% endfor %}</td> 46 <td class="target">{% for t in build.target_set.all %} <a href="{% url "builddashboard" build.id %}"> {{t.target}} </a> <br />{% endfor %}</td>
38 <td class="machine"><a href="{% url "builddashboard" build.id %}">{{build.machine}}</a></td> 47 <td class="machine"><a href="{% url "builddashboard" build.id %}">{{build.machine}}</a></td>
39 <td class="started_on"><a href="{% url "builddashboard" build.id %}">{{build.started_on|date:"d/m/y H:i"}}</a></td> 48 <td class="started_on"><a href="{% url "builddashboard" build.id %}">{{build.started_on|date:"d/m/y H:i"}}</a></td>
40 <td class="completed_on"><a href="{% url "builddashboard" build.id %}">{{build.completed_on|date:"d/m/y H:i"}}</a></td> 49 <td class="completed_on"><a href="{% url "builddashboard" build.id %}">{{build.completed_on|date:"d/m/y H:i"}}</a></td>
41 <td class="failed_tasks error">{% query build.task_build outcome=4 order__gt=0 as exectask%}{% if exectask.count == 1 %}<a href="{% url "task" build.id exectask.0.id %}">{{exectask.0.recipe.name}}.{{exectask.0.task_name}}</a>{% elif exectask.count > 1%}<a href="{% url "tasks" build.id %}?filter=outcome%3A4">{{exectask.count}}</a>{%endif%}</td> 50 <td class="failed_tasks error">
42 <td class="errors_no">{% if build.errors_no %}<a class="errors_no error" href="{% url "builddashboard" build.id %}#errors">{{build.errors_no}} error{{build.errors_no|pluralize}}</a>{%endif%}</td> 51 {% query build.task_build outcome=4 order__gt=0 as exectask%}
52 {% if exectask.count == 1 %}
53 <a href="{% url "task" build.id exectask.0.id %}">{{exectask.0.recipe.name}}.{{exectask.0.task_name}}</a>
54 {% if MANAGED and build.project %}
55 <a href="{% url 'build_artifact' build.id "tasklogfile" exectask.0.id %}">
56 <i class="icon-download-alt" title="" data-original-title="Download task log file"></i>
57 </a>
58 {% endif %}
59 {% elif exectask.count > 1%}
60 <a href="{% url "tasks" build.id %}?filter=outcome%3A4">{{exectask.count}} task{{exectask.count|pluralize}}</a>
61 {%endif%}
62 </td>
63 <td class="errors_no">
64 {% if build.errors_no %}
65 <a class="errors_no error" href="{% url "builddashboard" build.id %}#errors">{{build.errors_no}} error{{build.errors_no|pluralize}}</a>
66 {% if MANAGED and build.project %}
67 <a href="{% url 'build_artifact' build.id "cookerlog" build.id %}">
68 <i class="icon-download-alt" title="" data-original-title="Download build log"></i>
69 </a>
70 {% endif %}
71 {%endif%}
72 </td>
43 <td class="warnings_no">{% if build.warnings_no %}<a class="warnings_no warning" href="{% url "builddashboard" build.id %}#warnings">{{build.warnings_no}} warning{{build.warnings_no|pluralize}}</a>{%endif%}</td> 73 <td class="warnings_no">{% if build.warnings_no %}<a class="warnings_no warning" href="{% url "builddashboard" build.id %}#warnings">{{build.warnings_no}} warning{{build.warnings_no|pluralize}}</a>{%endif%}</td>
44 <td class="time"><a href="{% url "buildtime" build.id %}">{{build.timespent|sectohms}}</a></td> 74 <td class="time"><a href="{% url "buildtime" build.id %}">{{build.timespent|sectohms}}</a></td>
45 <td class="log">{{build.cooker_log_path}}</td> 75 {% if not MANAGED or not build.project %}
76 <td class="log">{{build.cooker_log_path}}</td>
77 {% endif %}
46 <td class="output"> 78 <td class="output">
47 {% if build.outcome == build.SUCCEEDED %} 79 {% if build.outcome == build.SUCCEEDED %}
48 <a href="{%url "builddashboard" build.id%}#images">{{fstypes|get_dict_value:build.id}}</a> 80 <a href="{%url "builddashboard" build.id%}#images">{{fstypes|get_dict_value:build.id}}</a>
@@ -50,10 +82,44 @@
50 </td> 82 </td>
51 </tr> 83 </tr>
52 84
53 {% endfor %}
54{% include "basetable_bottom.html" %}
55 85
56 <!-- Modals --> 86 {%endwith%}
87 {% else %} {# we don't have a build for this build request, mask the data with build request data #}
88
89
90
91 <tr class="data">
92 <td class="outcome">{% if buildrequest.state == buildrequest.REQ_FAILED %}<i class="icon-minus-sign error"></i>{%else%}FIXME_build_request_state{%endif%}</td>
93 <td class="target">
94 <span data-toggle="tooltip" {%if br.brtarget_set.all.count > 1%}title="Targets: {%for target in br.brtarget_set.all%}{{target.target}} {%endfor%}"{%endif%}>{{br.brtarget_set.all.0.target}} {%if br.brtarget_set.all.count > 1%}(+ {{br.brtarget_set.all.count|add:"-1"}}){%endif%} </span>
95 </td>
96 <td class="machine">
97 {{br.machine}}
98 </td>
99 <td class="started_on">
100 {{br.created|date:"d/m/y H:i"}}
101 </td>
102 <td class="completed_on">
103 {{br.updated|date:"d/m/y H:i"}}
104 </td>
105 <td class="failed_tasks error">
106 {{br.brerror_set.all.0.errmsg|whitespace_slice:":32"}}
107 </td>
108 <td class="errors_no">
109 </td>
110 <td class="warnings_no">
111 </td>
112 <td class="time">
113 {{br.timespent.total_seconds|sectohms}}
114 </td>
115 <td class="output"> {# we have no output here #}
116 </td>
117 </tr>
118 {%endif%}
119 {% endfor %}
120
57 121
122 {% include "basetable_bottom.html" %}
123{% endif %}
58 124
59{% endblock %} 125{% endblock %}