diff options
Diffstat (limited to 'bitbake/lib/toaster/toastergui/templates/builddashboard.html')
-rw-r--r-- | bitbake/lib/toaster/toastergui/templates/builddashboard.html | 131 |
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> |