summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/toastergui/templates/builddashboard.html
diff options
context:
space:
mode:
authorAlexandru DAMIAN <alexandru.damian@intel.com>2014-12-05 15:19:55 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-12-18 10:24:06 +0000
commitaa9816ad79ca34000c1cb0cdc4d35b5fc09a9ba3 (patch)
tree0c902d4bdf2bab05b1740c63cbe3735707b5394f /bitbake/lib/toaster/toastergui/templates/builddashboard.html
parent85a17f86ea2edf24b54aa62bd25e10ff522cb6e7 (diff)
downloadpoky-aa9816ad79ca34000c1cb0cdc4d35b5fc09a9ba3.tar.gz
bitbake: toastergui: implement UI changes to allow file download
This patchset adds download links in the build analisys pages if toaster runs in managed mode. This allows the user to access data directly from the web interface. [YOCTO #6837] (Bitbake rev: 6000e1ae5c846e51932ecd0dc21e0fa02eb10357) 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/builddashboard.html')
-rw-r--r--bitbake/lib/toaster/toastergui/templates/builddashboard.html131
1 files changed, 91 insertions, 40 deletions
diff --git a/bitbake/lib/toaster/toastergui/templates/builddashboard.html b/bitbake/lib/toaster/toastergui/templates/builddashboard.html
index e682094305..2458cdb6d1 100644
--- a/bitbake/lib/toaster/toastergui/templates/builddashboard.html
+++ b/bitbake/lib/toaster/toastergui/templates/builddashboard.html
@@ -42,9 +42,9 @@
42 {% if build.toaster_exceptions.count > 0 %} 42 {% if build.toaster_exceptions.count > 0 %}
43 <div class="row"> 43 <div class="row">
44 <small class="pull-right"> 44 <small class="pull-right">
45 <i class="icon-question-sign get-help get-help-blue" title="" data-original-title="Toaster exceptions do not affect your build: only the operation of Toaster"></i> 45 <i class="icon-question-sign get-help get-help-blue" title="" data-original-title="Toaster exceptions do not affect your build: only the operation of Toaster"></i>
46 <a class="show-exceptions" href="#exceptions">Toaster threw {{build.toaster_exceptions.count}} exception{{build.toaster_exceptions.count|pluralize}}</a> 46 <a class="show-exceptions" href="#exceptions">Toaster threw {{build.toaster_exceptions.count}} exception{{build.toaster_exceptions.count|pluralize}}</a>
47 </small> 47 </small>
48 </div> 48 </div>
49 {% endif %} 49 {% endif %}
50 </div> 50 </div>
@@ -54,6 +54,9 @@
54<div class="accordion span10 pull-right" id="errors"> 54<div class="accordion span10 pull-right" id="errors">
55 <div class="accordion-group"> 55 <div class="accordion-group">
56 <div class="accordion-heading"> 56 <div class="accordion-heading">
57 {% if MANAGED and build.project %}
58 <a class="btn btn-large pull-right" href="{% url 'build_artifact' build.id "cookerlog" build.id %}" style="margin:15px;">Download build log</a>
59 {% endif %}
57 <a class="accordion-toggle error toggle-errors"> 60 <a class="accordion-toggle error toggle-errors">
58 <h2 id="error-toggle"> 61 <h2 id="error-toggle">
59 <i class="icon-minus-sign"></i> 62 <i class="icon-minus-sign"></i>
@@ -66,13 +69,10 @@
66 <div class="span10"> 69 <div class="span10">
67 {% for error in logmessages %}{% if error.level == 2 %} 70 {% for error in logmessages %}{% if error.level == 2 %}
68 <div class="alert alert-error"> 71 <div class="alert alert-error">
69 {% if MANAGED and error.pathname %}
70 <pre><a href="{% url 'build_artifact' build.pk 'logmessagefile' error.pk %}" target="_blanc">{{error.message}}</pre>
71 {% else %}
72 <pre>{{error.message}}</pre> 72 <pre>{{error.message}}</pre>
73 {% endif %}
74 </div> 73 </div>
75 {% endif %}{% endfor %} 74 {% endif %}
75 {% endfor %}
76 </div> 76 </div>
77 </div> 77 </div>
78 </div> 78 </div>
@@ -84,21 +84,21 @@
84<!-- built images --> 84<!-- built images -->
85{% if hasImages %} 85{% if hasImages %}
86<div class="row-fluid span10 pull-right"> 86<div class="row-fluid span10 pull-right">
87 <h2>Images</h2> 87 <h2>Images</h2>
88 {% for target in targets %} 88 {% for target in targets %}
89 {% if target.target.is_image %} 89 {% if target.target.is_image %}
90 <div class="well dashboard-section"> 90 <div class="well dashboard-section">
91 <h3><a href="{% url 'target' build.pk target.target.pk %}">{{target.target}}</a> 91 <h3><a href="{% url 'target' build.pk target.target.pk %}">{{target.target}}</a>
92 </h3> 92 </h3>
93 <dl class="dl-horizontal"> 93 <dl class="dl-horizontal">
94 <dt>Packages included</dt> 94 <dt>Packages included</dt>
95 <dd><a href="{% url 'target' build.pk target.target.pk %}">{{target.npkg}}</a></dd> 95 <dd><a href="{% url 'target' build.pk target.target.pk %}">{{target.npkg}}</a></dd>
96 <dt>Total package size</dt> 96 <dt>Total package size</dt>
97 <dd>{{target.pkgsz|filtered_filesizeformat}}</dd> 97 <dd>{{target.pkgsz|filtered_filesizeformat}}</dd>
98 {% if target.targetHasNoImages %} 98 {% if target.targetHasNoImages %}
99 </dl> 99 </dl>
100 <div class="row-fluid"> 100 <div class="row-fluid">
101 <div class="alert alert-info span7"> 101 <div class="alert alert-info span7">
102 <p> 102 <p>
103 <b>This build did not create any image files</b> 103 <b>This build did not create any image files</b>
104 </p> 104 </p>
@@ -111,30 +111,45 @@
111 license manifest information</a> in Toaster. 111 license manifest information</a> in Toaster.
112 </p> 112 </p>
113 </div> 113 </div>
114 </div> 114 </div>
115 {% else %} 115 {% else %}
116 <dt> 116 <dt>
117 <i class="icon-question-sign get-help" title="The location in disk of the license manifest, a document listing all packages installed in your image and their licenses"></i> 117 <i class="icon-question-sign get-help" title="The location in disk of the license manifest, a document listing all packages installed in your image and their licenses"></i>
118 <a href="{% url 'targetpkg' build.pk target.target.pk %}">License manifest</a> 118
119 </dt> 119 {% if MANAGED and build.project %}
120 <dd><code>{{target.target.license_manifest_path}}</code></dd> 120 License manifest
121 <dt> 121 {% else %}
122 <i class="icon-question-sign get-help" title="Image files are stored in <code>/build/tmp/deploy/images/</code>"></i> 122 <a href="{% url 'targetpkg' build.pk target.target.pk %}">License manifest</a>
123 Image files 123 {% endif %}
124 </dt> 124 </dt>
125 <dd> 125 {% if MANAGED and build.project %}
126 <ul> 126 <dd>
127 <a href="{% url 'targetpkg' build.pk target.target.pk %}">View in Toaster</a> |
128 <a href="{% url 'build_artifact' build.pk 'licensemanifest' target.target.pk %}">Download</a></dd>
129 {% else %}
130 <dd><code>{{target.target.license_manifest_path}}</code></dd>
131 {% endif %}
132 <dt>
133 <i class="icon-question-sign get-help" title="Image files are stored in <code>/build/tmp/deploy/images/</code>"></i>
134 Image files
135 </dt>
136 <dd>
137 <ul>
127 {% for i in target.imageFiles %} 138 {% for i in target.imageFiles %}
128 <li>{{i.path}} 139 {% if build.project %}
129 ({{i.size|filtered_filesizeformat}})</li> 140 <li><a href="{% url 'build_artifact' build.pk 'imagefile' i.id %}">{{i.path}}</a>
141 {% else %}
142 <li>{{i.path}}
143 {% endif %}
144 ({{i.size|filtered_filesizeformat}})</li>
130 {% endfor %} 145 {% endfor %}
131 </ul> 146 </ul>
132 </dd> 147 </dd>
133 </dl> 148 </dl>
134 {% endif %} 149 {% endif %}
135 </div> 150 </div>
136 {% endif %} 151 {% endif %}
137 {% endfor %} 152 {% endfor %}
138</div> 153</div>
139{% endif %} 154{% endif %}
140 155
@@ -142,6 +157,35 @@
142<!-- error dump --> 157<!-- error dump -->
143{%endif%} 158{%endif%}
144 159
160<!-- other artifacts -->
161{% if build.buildartifact_set.all.count > 0 %}
162<div class="row-fluid span10 pull-right">
163<h2>Other artifacts</h2>
164
165 <div class="well dashboard-section">
166 <dl class="dl-horizontal">
167 <dt>
168 <i class="icon-question-sign get-help" title="Build artifacts discovered in <i>tmp/deploy/images</i>. Usually kernel images and kernel modules."></i>
169 Other artifacts</dt>
170 <dd><div>
171 {% for ba in build.buildartifact_set.all|dictsort:"file_name" %}
172 {% if MANAGED and build.project %}
173 <a href="{%url 'build_artifact' build.id 'buildartifact' ba.id %}">
174 {% endif %}
175 {{ba.get_local_file_name}}
176 {% if MANAGED and build.project %}
177 </a>
178 {% endif %}
179
180 ({{ba.file_size|filtered_filesizeformat}}) <br/>
181 {% endfor %}
182 </div>
183 </dd>
184
185 </div>
186
187</div>
188{% endif %}
145<!-- build summary --> 189<!-- build summary -->
146<div class="row-fluid span10 pull-right"> 190<div class="row-fluid span10 pull-right">
147<h2>Build summary</h2> 191<h2>Build summary</h2>
@@ -158,12 +202,19 @@
158 <dl> 202 <dl>
159 {% query build.task_build outcome=4 order__gt=0 as exectask%} 203 {% query build.task_build outcome=4 order__gt=0 as exectask%}
160 {% if exectask.count > 0 %} 204 {% if exectask.count > 0 %}
161 <dt>Failed tasks</td> 205 <dt>Failed tasks</dt>
162 <dd> 206 <dd>
163 {% if exectask.count == 1 %} 207 {% if exectask.count == 1 %}
164 <a class="error" href="{% url "task" build.id exectask.0.id %}"> 208 <a class="error" href="{% url "task" build.id exectask.0.id %}">
165 {{exectask.0.recipe.name}} 209 {{exectask.0.recipe.name}}
166 <span class="task-name">{{exectask.0.task_name}}</span> 210 <span class="task-name">{{exectask.0.task_name}}</span>
211
212 {% if MANAGED and build.project %}
213 <a href="{% url 'build_artifact' build.id "tasklogfile" exectask.0.id %}">
214 <i class="icon-download-alt" title="" data-original-title="Download task log file"></i>
215 </a>
216 {% endif %}
217
167 </a> 218 </a>
168 {% elif exectask.count > 1%} 219 {% elif exectask.count > 1%}
169 <a class="error" href="{% url "tasks" build.id %}?filter=outcome%3A4">{{exectask.count}}</a> 220 <a class="error" href="{% url "tasks" build.id %}?filter=outcome%3A4">{{exectask.count}}</a>