summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/toastergui/templates
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/toaster/toastergui/templates')
-rw-r--r--bitbake/lib/toaster/toastergui/templates/base.html18
-rw-r--r--bitbake/lib/toaster/toastergui/templates/build.html29
-rw-r--r--bitbake/lib/toaster/toastergui/templates/builddashboard.html131
-rw-r--r--bitbake/lib/toaster/toastergui/templates/configuration.html6
-rw-r--r--bitbake/lib/toaster/toastergui/templates/package_detail_base.html3
-rw-r--r--bitbake/lib/toaster/toastergui/templates/recipe.html11
-rw-r--r--bitbake/lib/toaster/toastergui/templates/recipes.html7
-rw-r--r--bitbake/lib/toaster/toastergui/templates/target.html8
-rw-r--r--bitbake/lib/toaster/toastergui/templates/task.html18
-rw-r--r--bitbake/lib/toaster/toastergui/templates/tasks.html12
10 files changed, 175 insertions, 68 deletions
diff --git a/bitbake/lib/toaster/toastergui/templates/base.html b/bitbake/lib/toaster/toastergui/templates/base.html
index 594c495bd3..bc7a0ee436 100644
--- a/bitbake/lib/toaster/toastergui/templates/base.html
+++ b/bitbake/lib/toaster/toastergui/templates/base.html
@@ -3,14 +3,14 @@
3<html lang="en"> 3<html lang="en">
4 <head> 4 <head>
5 <title>{% if objectname %} {{objectname|title}} - {% endif %}Toaster</title> 5 <title>{% if objectname %} {{objectname|title}} - {% endif %}Toaster</title>
6<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}" type="text/css"> 6<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}" type="text/css"/>
7<link rel="stylesheet" href="{% static 'css/bootstrap-responsive.min.css' %}" type='text/css'> 7<link rel="stylesheet" href="{% static 'css/bootstrap-responsive.min.css' %}" type='text/css'/>
8<link rel="stylesheet" href="{% static 'css/font-awesome.min.css' %}" type='text/css'> 8<link rel="stylesheet" href="{% static 'css/font-awesome.min.css' %}" type='text/css'/>
9<link rel="stylesheet" href="{% static 'css/prettify.css' %}" type='text/css'> 9<link rel="stylesheet" href="{% static 'css/prettify.css' %}" type='text/css'/>
10<link rel="stylesheet" href="{% static 'css/default.css' %}" type='text/css'> 10<link rel="stylesheet" href="{% static 'css/default.css' %}" type='text/css'/>
11 11
12<meta name="viewport" content="width=device-width, initial-scale=1.0" /> 12<meta name="viewport" content="width=device-width, initial-scale=1.0" />
13<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 13<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
14<script src="{% static 'js/jquery-2.0.3.min.js' %}"> 14<script src="{% static 'js/jquery-2.0.3.min.js' %}">
15</script> 15</script>
16<script src="{% static 'js/jquery.cookie.js' %}"> 16<script src="{% static 'js/jquery.cookie.js' %}">
@@ -64,7 +64,7 @@
64 </div> 64 </div>
65 <!-- New build popover --> 65 <!-- New build popover -->
66 <div class="btn-group pull-right" id="new-build-button"> 66 <div class="btn-group pull-right" id="new-build-button">
67 <button class="btn dropdown-toggle" data-toggle="dropdown" href="#"> 67 <button class="btn dropdown-toggle" data-toggle="dropdown">
68 New build 68 New build
69 <i class="icon-caret-down"></i> 69 <i class="icon-caret-down"></i>
70 </button> 70 </button>
@@ -78,7 +78,7 @@
78 </span> 78 </span>
79 <form id="change-project-form" style="display:none;"> 79 <form id="change-project-form" style="display:none;">
80 <div class="input-append"> 80 <div class="input-append">
81 <input type="text" class="input-medium" id="project-name-input" placeholder="Type a project name" autocomplete="off" data-minLength="1" data-autocomplete="off" data-provide="typeahead"> 81 <input type="text" class="input-medium" id="project-name-input" placeholder="Type a project name" autocomplete="off" data-minLength="1" data-autocomplete="off" data-provide="typeahead"/>
82 <button id="save-project-button" class="btn" type="button">Save</button> 82 <button id="save-project-button" class="btn" type="button">Save</button>
83 <a href="#" id="cancel-change-project" class="btn btn-link">Cancel</a> 83 <a href="#" id="cancel-change-project" class="btn btn-link">Cancel</a>
84 </div> 84 </div>
@@ -92,7 +92,7 @@
92 <li id="targets-form"> 92 <li id="targets-form">
93 <h6>Target(s):</h6> 93 <h6>Target(s):</h6>
94 <form> 94 <form>
95 <input type="text" class="input-xlarge" id="build-target-input" placeholder="Type a target name" autocomplete="off" data-minLength="1" data-autocomplete="off" data-provide="typeahead" > 95 <input type="text" class="input-xlarge" id="build-target-input" placeholder="Type a target name" autocomplete="off" data-minLength="1" data-autocomplete="off" data-provide="typeahead" />
96 <div> 96 <div>
97 <a class="btn btn-primary" id="build-button" disabled="disabled" data-project-id="{{project.id}}">Build</a> 97 <a class="btn btn-primary" id="build-button" disabled="disabled" data-project-id="{{project.id}}">Build</a>
98 </div> 98 </div>
diff --git a/bitbake/lib/toaster/toastergui/templates/build.html b/bitbake/lib/toaster/toastergui/templates/build.html
index f20f041749..e71e38feb9 100644
--- a/bitbake/lib/toaster/toastergui/templates/build.html
+++ b/bitbake/lib/toaster/toastergui/templates/build.html
@@ -45,11 +45,34 @@
45 <td class="machine"><a href="{% url "builddashboard" build.id %}">{{build.machine}}</a></td> 45 <td class="machine"><a href="{% url "builddashboard" build.id %}">{{build.machine}}</a></td>
46 <td class="started_on"><a href="{% url "builddashboard" build.id %}">{{build.started_on|date:"d/m/y H:i"}}</a></td> 46 <td class="started_on"><a href="{% url "builddashboard" build.id %}">{{build.started_on|date:"d/m/y H:i"}}</a></td>
47 <td class="completed_on"><a href="{% url "builddashboard" build.id %}">{{build.completed_on|date:"d/m/y H:i"}}</a></td> 47 <td class="completed_on"><a href="{% url "builddashboard" build.id %}">{{build.completed_on|date:"d/m/y H:i"}}</a></td>
48 <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> 48 <td class="failed_tasks error">
49 <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> 49 {% query build.task_build outcome=4 order__gt=0 as exectask%}
50 {% if exectask.count == 1 %}
51 <a href="{% url "task" build.id exectask.0.id %}">{{exectask.0.recipe.name}}.{{exectask.0.task_name}}</a>
52 {% if MANAGED and build.project %}
53 <a href="{% url 'build_artifact' build.id "tasklogfile" exectask.0.id %}">
54 <i class="icon-download-alt" title="" data-original-title="Download task log file"></i>
55 </a>
56 {% endif %}
57 {% elif exectask.count > 1%}
58 <a href="{% url "tasks" build.id %}?filter=outcome%3A4">{{exectask.count}} task{{exectask.count|pluralize}}</a>
59 {%endif%}
60 </td>
61 <td class="errors_no">
62 {% if build.errors_no %}
63 <a class="errors_no error" href="{% url "builddashboard" build.id %}#errors">{{build.errors_no}} error{{build.errors_no|pluralize}}</a>
64 {% if MANAGED and build.project %}
65 <a href="{% url 'build_artifact' build.id "cookerlog" build.id %}">
66 <i class="icon-download-alt" title="" data-original-title="Download build log"></i>
67 </a>
68 {% endif %}
69 {%endif%}
70 </td>
50 <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> 71 <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>
51 <td class="time"><a href="{% url "buildtime" build.id %}">{{build.timespent|sectohms}}</a></td> 72 <td class="time"><a href="{% url "buildtime" build.id %}">{{build.timespent|sectohms}}</a></td>
52 <td class="log">{{build.cooker_log_path}}</td> 73 {% if not MANAGED or not build.project %}
74 <td class="log">{{build.cooker_log_path}}</td>
75 {% endif %}
53 <td class="output"> 76 <td class="output">
54 {% if build.outcome == build.SUCCEEDED %} 77 {% if build.outcome == build.SUCCEEDED %}
55 <a href="{%url "builddashboard" build.id%}#images">{{fstypes|get_dict_value:build.id}}</a> 78 <a href="{%url "builddashboard" build.id%}#images">{{fstypes|get_dict_value:build.id}}</a>
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>
diff --git a/bitbake/lib/toaster/toastergui/templates/configuration.html b/bitbake/lib/toaster/toastergui/templates/configuration.html
index 49a6a89d5c..d3b34a2096 100644
--- a/bitbake/lib/toaster/toastergui/templates/configuration.html
+++ b/bitbake/lib/toaster/toastergui/templates/configuration.html
@@ -50,7 +50,9 @@
50 <th>Layer</th> 50 <th>Layer</th>
51 <th>Layer branch</th> 51 <th>Layer branch</th>
52 <th>Layer commit</th> 52 <th>Layer commit</th>
53 <th>Layer directory</th> 53 {% if not MANAGED or not build.project %}
54 <th>Layer directory</th>
55 {% endif %}
54 </tr> 56 </tr>
55 </thead> 57 </thead>
56 <tbody>{% for lv in build.layer_version_build.all|dictsort:"layer.name" %} 58 <tbody>{% for lv in build.layer_version_build.all|dictsort:"layer.name" %}
@@ -61,7 +63,9 @@
61 <li>{{lv.commit}}</li> </ul>"> 63 <li>{{lv.commit}}</li> </ul>">
62 {{lv.commit|truncatechars:13}} 64 {{lv.commit|truncatechars:13}}
63 </a></td> 65 </a></td>
66 {% if not MANAGED or not build.project %}
64 <td>{{lv.layer.local_path}}</td> 67 <td>{{lv.layer.local_path}}</td>
68 {% endif %}
65 </tr>{% endfor %} 69 </tr>{% endfor %}
66 </tbody> 70 </tbody>
67 </table> 71 </table>
diff --git a/bitbake/lib/toaster/toastergui/templates/package_detail_base.html b/bitbake/lib/toaster/toastergui/templates/package_detail_base.html
index cd015d3555..dfeba55058 100644
--- a/bitbake/lib/toaster/toastergui/templates/package_detail_base.html
+++ b/bitbake/lib/toaster/toastergui/templates/package_detail_base.html
@@ -135,11 +135,14 @@
135 </dt> 135 </dt>
136 136
137 <dd class="iscommit">{{package.recipe.layer_version.commit}}</dd> 137 <dd class="iscommit">{{package.recipe.layer_version.commit}}</dd>
138
139 {% if not MANAGED or not build.project %}
138 <dt> 140 <dt>
139 Layer directory 141 Layer directory
140 <i class="icon-question-sign get-help" title="Path to the layer providing the recipe that builds this package"></i> 142 <i class="icon-question-sign get-help" title="Path to the layer providing the recipe that builds this package"></i>
141 </dt> 143 </dt>
142 <dd><code>{{package.recipe.layer_version.layer.local_path}}</code></dd> 144 <dd><code>{{package.recipe.layer_version.layer.local_path}}</code></dd>
145 {% endif %}
143 </dl> 146 </dl>
144 </div> <!-- row4 well --> 147 </div> <!-- row4 well -->
145 {% endblock twocolumns %} 148 {% endblock twocolumns %}
diff --git a/bitbake/lib/toaster/toastergui/templates/recipe.html b/bitbake/lib/toaster/toastergui/templates/recipe.html
index a830ba9fb8..b20c65e3c8 100644
--- a/bitbake/lib/toaster/toastergui/templates/recipe.html
+++ b/bitbake/lib/toaster/toastergui/templates/recipe.html
@@ -52,16 +52,19 @@
52 Layer 52 Layer
53 </dt> 53 </dt>
54 <dd>{{layer.name}}</dd> 54 <dd>{{layer.name}}</dd>
55
56 {% if not MANAGED or not build.project %}
55 <dt> 57 <dt>
56 <i class="icon-question-sign get-help" title="Path to the layer providing the recipe"></i> 58 <i class="icon-question-sign get-help" title="Path to the layer providing the recipe"></i>
57 Layer directory 59 Layer directory
58 </dt> 60 </dt>
59 <dd><code>{{layer.local_path}}</code></dd> 61 <dd><code>{{layer.local_path}}</code></dd>
62 {% endif %}
60 <dt> 63 <dt>
61 <i class="icon-question-sign get-help" title="Path to the recipe .bb file"></i> 64 <i class="icon-question-sign get-help" title="Path to the recipe .bb file"></i>
62 Recipe file 65 Recipe file
63 </dt> 66 </dt>
64 <dd><code>{{object.file_path}}</code></dd> 67 <dd><code>{{object.get_local_path}}</code></dd>
65 {% if layer_version.branch %} 68 {% if layer_version.branch %}
66 <dt> 69 <dt>
67 <i class="icon-question-sign get-help" title="The Git branch of the layer providing the recipe"></i> 70 <i class="icon-question-sign get-help" title="The Git branch of the layer providing the recipe"></i>
@@ -126,6 +129,12 @@
126 <td> 129 <td>
127 {% ifnotequal task.sstate_result task.SSTATE_NA %} 130 {% ifnotequal task.sstate_result task.SSTATE_NA %}
128 <a {{ task|task_color }} href="{% url "task" build.pk task.pk %}">{{task.get_sstate_result_display}}</a> 131 <a {{ task|task_color }} href="{% url "task" build.pk task.pk %}">{{task.get_sstate_result_display}}</a>
132 {% if MANAGED and build.project and task.outcome = task.OUTCOME_FAILED %}
133 <a href="{% url 'build_artifact' build.pk "tasklogfile" task.pk %}">
134 <i class="icon-download-alt" title="" data-original-title="Download task log file"></i>
135 </a>
136 {% endif %}
137
129 {% endifnotequal %} 138 {% endifnotequal %}
130 </td> 139 </td>
131 140
diff --git a/bitbake/lib/toaster/toastergui/templates/recipes.html b/bitbake/lib/toaster/toastergui/templates/recipes.html
index 791a487a81..889e676b45 100644
--- a/bitbake/lib/toaster/toastergui/templates/recipes.html
+++ b/bitbake/lib/toaster/toastergui/templates/recipes.html
@@ -98,8 +98,11 @@
98 {{recipe.layer_version.commit|truncatechars:13}} 98 {{recipe.layer_version.commit|truncatechars:13}}
99 </a> 99 </a>
100 </td> 100 </td>
101 <!-- Layer directory --> 101
102 <td class="layer_version__layer__local_path">{{recipe.layer_version.layer.local_path}}</td> 102 {% if not MANAGED or not build.project %}
103 <!-- Layer directory -->
104 <td class="layer_version__layer__local_path">{{recipe.layer_version.layer.local_path}}</td>
105 {% endif %}
103 </tr> 106 </tr>
104 107
105 {% endfor %} 108 {% endfor %}
diff --git a/bitbake/lib/toaster/toastergui/templates/target.html b/bitbake/lib/toaster/toastergui/templates/target.html
index c879c39d5a..1309b52dad 100644
--- a/bitbake/lib/toaster/toastergui/templates/target.html
+++ b/bitbake/lib/toaster/toastergui/templates/target.html
@@ -152,9 +152,11 @@
152 {{package.recipe.layer_version.commit|truncatechars:13}} 152 {{package.recipe.layer_version.commit|truncatechars:13}}
153 </a> 153 </a>
154 </td> 154 </td>
155 <td class="layer_directory"> 155 {% if not MANAGED or not build.project %}
156 {{ package.recipe.layer_version.layer.local_path }} 156 <td class="layer_directory">
157 </td> 157 {{ package.recipe.layer_version.layer.local_path }}
158 </td>
159 {% endif %}
158 </tr> 160 </tr>
159 {% endfor %} 161 {% endfor %}
160 162
diff --git a/bitbake/lib/toaster/toastergui/templates/task.html b/bitbake/lib/toaster/toastergui/templates/task.html
index 1b270420db..09fd25b259 100644
--- a/bitbake/lib/toaster/toastergui/templates/task.html
+++ b/bitbake/lib/toaster/toastergui/templates/task.html
@@ -24,17 +24,17 @@
24 {# executed tasks outcome #} 24 {# executed tasks outcome #}
25 <dl class="dl-horizontal"> 25 <dl class="dl-horizontal">
26 {% if task.logfile %} 26 {% if task.logfile %}
27 {% if MANAGED and build.project %}
28 <a class="btn btn-large" href="{% url 'build_artifact' build.id "tasklogfile" task.pk %}" style="margin:15px;">Download task log</a>
29 {% else %}
27 <dt> 30 <dt>
28 <i class="icon-question-sign get-help" title="Path the task log file"></i> Log file 31 <i class="icon-question-sign get-help" title="Path the task log file"></i> Log file
29 </dt> 32 </dt>
30 <dd> 33 <dd>
31 {% if MANAGED %} 34 <code>{{task.logfile}}</code>
32 <code><a href="{% url 'build_artifact' build.pk 'tasklogfile' task.pk %}" target="_blanc">{{task.logfile}}</a></code>
33 {% else %}
34 <code>{{task.logfile}}</code>
35 {% endif %}
36 </dd> 35 </dd>
37 {% endif %} 36 {% endif %}
37 {% endif %}
38 {# show stack trace for failed task #} 38 {# show stack trace for failed task #}
39 {% if task.outcome == task.OUTCOME_FAILED and log_head %} 39 {% if task.outcome == task.OUTCOME_FAILED and log_head %}
40 <h3>Python stack trace</h3> 40 <h3>Python stack trace</h3>
@@ -191,6 +191,9 @@
191 <strong>Failed</strong> to restore output from sstate cache. The file was found but could not be unpacked. 191 <strong>Failed</strong> to restore output from sstate cache. The file was found but could not be unpacked.
192 </div> 192 </div>
193 <dl class="dl-horizontal"> 193 <dl class="dl-horizontal">
194 {% if MANAGED and build.project %}
195 <a href="{% url 'build_artifact' build.id "tasklogfile" task.pk %}" style="margin:15px;">Download log</a>
196 {% else %}
194 <dt> 197 <dt>
195 <i class="icon-question-sign get-help" title="Path to the cache attempt log file"></i> 198 <i class="icon-question-sign get-help" title="Path to the cache attempt log file"></i>
196 Log file 199 Log file
@@ -201,6 +204,7 @@
201 Time (secs) 204 Time (secs)
202 </dt> 205 </dt>
203 <dd>{{task.elapsed_time|format_none_and_zero}}</dd> 206 <dd>{{task.elapsed_time|format_none_and_zero}}</dd>
207 {% endif %}
204 </dl> 208 </dl>
205 <div class="alert alert-info"> 209 <div class="alert alert-info">
206 Running the real task instead. 210 Running the real task instead.
@@ -268,8 +272,8 @@
268 Time (secs) 272 Time (secs)
269 </dt> 273 </dt>
270 <dd>{{task.elapsed_time|format_none_and_zero|floatformat:2}}</dd> 274 <dd>{{task.elapsed_time|format_none_and_zero|floatformat:2}}</dd>
271 {% endif %} 275 {% endif %}
272 {% if task.cpu_usage > 0 %} 276 {% if task.cpu_usage > 0 %}
273 <dt> 277 <dt>
274 <i class="icon-question-sign get-help" title="The percentage of task CPU utilization"></i> 278 <i class="icon-question-sign get-help" title="The percentage of task CPU utilization"></i>
275 CPU usage 279 CPU usage
diff --git a/bitbake/lib/toaster/toastergui/templates/tasks.html b/bitbake/lib/toaster/toastergui/templates/tasks.html
index d0c6f4e326..4cbcc5ed68 100644
--- a/bitbake/lib/toaster/toastergui/templates/tasks.html
+++ b/bitbake/lib/toaster/toastergui/templates/tasks.html
@@ -94,6 +94,11 @@
94 <td class="outcome"> 94 <td class="outcome">
95 <a href="{%url "task" build.pk task.pk%} ">{{task.get_outcome_display}} </a> 95 <a href="{%url "task" build.pk task.pk%} ">{{task.get_outcome_display}} </a>
96 <i class="icon-question-sign get-help hover-help" title="{{task.get_outcome_help}}"></i> 96 <i class="icon-question-sign get-help hover-help" title="{{task.get_outcome_help}}"></i>
97 {% if MANAGED and build.project and task.outcome = task.OUTCOME_FAILED %}
98 <a href="{% url 'build_artifact' build.pk "tasklogfile" task.pk %}">
99 <i class="icon-download-alt" title="" data-original-title="Download task log file"></i>
100 </a>
101 {% endif %}
97 </td> 102 </td>
98 <td class="cache_attempt"> 103 <td class="cache_attempt">
99 <a href="{%url "task" build.pk task.pk%} ">{{task.get_sstate_result_display|format_none_and_zero}}</a> 104 <a href="{%url "task" build.pk task.pk%} ">{{task.get_sstate_result_display|format_none_and_zero}}</a>
@@ -107,9 +112,12 @@
107 <td class="disk_io"> 112 <td class="disk_io">
108 {{task.disk_io|format_none_and_zero}} 113 {{task.disk_io|format_none_and_zero}}
109 </td> 114 </td>
115
116 {% if not MANAGED or not build.project %}
110 <td class="task_log"> 117 <td class="task_log">
111 {{task.logfile}} 118 {{task.logfile}}
112 </td> 119 </td>
120 {% endif %}
113 </tr> 121 </tr>
114 {% endfor %} 122 {% endfor %}
115 123
@@ -124,10 +132,10 @@
124 // enable blue hightlight animation for the order link 132 // enable blue hightlight animation for the order link
125 if (location.href.search('#') > -1) { 133 if (location.href.search('#') > -1) {
126 var task_order = location.href.split('#')[1]; 134 var task_order = location.href.split('#')[1];
127 $("#" + task_order).addClass("highlight"); 135 $("#" + task_order).addClass("highlight");
128 } 136 }
129 }); 137 });
130 138
131</script> 139</script>
132 140
133{% endblock %} 141{% endblock %}