summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorBelen Barros Pena <belen.barros.pena@intel.com>2014-02-20 07:06:51 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-03-17 13:59:37 +0000
commitd24584f89680849f2cce83cc794b319d73dd554f (patch)
treee98e018663033462cd162c2f0afbf39346f93854 /bitbake
parente3a92c12e980c34c873e21e5c7bafcd762197266 (diff)
downloadpoky-d24584f89680849f2cce83cc794b319d73dd554f.tar.gz
bitbake: toaster: Presentation fixes for task.html
Tidying up the presentation in the task.html template. The changes include: * Correct the markup for the help tooltips * Fix the help content for the outcome heading * Make sure <dt> tags do not show for empty log file, time, cpu and disk I/O values * Eliminate an extra <dl> for tasks with sstate attempts * Add <strong> tag to the sstate restored alert * Replace the .alert-info class with the .muted class for the no dependencies messages * Make sure the Executed heading does not inherit the .red class for failed tasks * Format time and cpu values to make sure they only show 2 decimal digits (Bitbake rev: bbc22958ab37dcd44c03420a7b8f842a1f4e51b1) Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com> Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/toaster/toastergui/static/css/default.css2
-rw-r--r--bitbake/lib/toaster/toastergui/templates/task.html36
-rw-r--r--bitbake/lib/toaster/toastergui/templatetags/projecttags.py6
3 files changed, 26 insertions, 18 deletions
diff --git a/bitbake/lib/toaster/toastergui/static/css/default.css b/bitbake/lib/toaster/toastergui/static/css/default.css
index 2b47aff6f9..7db156a16e 100644
--- a/bitbake/lib/toaster/toastergui/static/css/default.css
+++ b/bitbake/lib/toaster/toastergui/static/css/default.css
@@ -30,7 +30,7 @@ dd code, .alert code { white-space: pre-wrap; word-break: break-all; word-wrap:
30.tooltip code { background-color: transparent; color: #FFFFFF; font-weight: normal; border: none; font-size: 1em; } 30.tooltip code { background-color: transparent; color: #FFFFFF; font-weight: normal; border: none; font-size: 1em; }
31 31
32/* Style for definition lists */ 32/* Style for definition lists */
33dd ul { list-style-type: none; margin-left: 0px; } 33dd ul { list-style-type: none; margin: 0px; }
34dt, dd {line-height: 25px; } 34dt, dd {line-height: 25px; }
35dd li { line-height: 25px; } 35dd li { line-height: 25px; }
36dd p { line-height: 20px; } 36dd p { line-height: 20px; }
diff --git a/bitbake/lib/toaster/toastergui/templates/task.html b/bitbake/lib/toaster/toastergui/templates/task.html
index 403bb03f68..af994fde1b 100644
--- a/bitbake/lib/toaster/toastergui/templates/task.html
+++ b/bitbake/lib/toaster/toastergui/templates/task.html
@@ -23,12 +23,14 @@
23{%if task.task_executed %} 23{%if task.task_executed %}
24 {# executed tasks outcome #} 24 {# executed tasks outcome #}
25 <dl class="dl-horizontal"> 25 <dl class="dl-horizontal">
26 {% if task.logfile %}
26 <dt> 27 <dt>
27 <i class="icon-question-sign get-help" title="" data-original-title="The location in disk of the task log file"></i> Log file 28 <i class="icon-question-sign get-help" title="The location in disk of the task log file"></i> Log file
28 </dt> 29 </dt>
29 <dd> 30 <dd>
30 <code>{{task.logfile}}</code> 31 <code>{{task.logfile}}</code>
31 </dd> 32 </dd>
33 {% endif %}
32 {# show stack trace for failed task #} 34 {# show stack trace for failed task #}
33 {% if task.outcome == task.OUTCOME_FAILED and log_head %} 35 {% if task.outcome == task.OUTCOME_FAILED and log_head %}
34 <h3>Python stack trace</h3> 36 <h3>Python stack trace</h3>
@@ -47,7 +49,7 @@
47 <a class="btn" href="javascript:reload_params({'show_matches' : 'true' })">Match to tasks in previous builds <i class="icon-question-sign get-help" style="margin-top:20px;" data-toggle="tooltip" title="This will show you a list of tasks from previous builds with the same inputs signature as this prebuilt task. Any of them could be the task that generated the output this prebuilt task is reusing"></i></a> 49 <a class="btn" href="javascript:reload_params({'show_matches' : 'true' })">Match to tasks in previous builds <i class="icon-question-sign get-help" style="margin-top:20px;" data-toggle="tooltip" title="This will show you a list of tasks from previous builds with the same inputs signature as this prebuilt task. Any of them could be the task that generated the output this prebuilt task is reusing"></i></a>
48 {% elif matching_tasks %} 50 {% elif matching_tasks %}
49 <h3 class="details">Prebuilt task could be based on 51 <h3 class="details">Prebuilt task could be based on
50 <i class="icon-question-sign get-help heading-help" title="" data-toggle="tooltip" data-original-title="This table shows a list of tasks from previous builds with the same inputs signature as the prebuilt task. Any of them could be the task that generated the output the prebuilt task is reusing"></i> 52 <i class="icon-question-sign get-help heading-help" title="This table shows a list of tasks from previous builds with the same inputs signature as the prebuilt task. Any of them could be the task that generated the output the prebuilt task is reusing"></i>
51 </h3> 53 </h3>
52 <table class="table table-bordered table-hover"> 54 <table class="table table-bordered table-hover">
53 <thead> 55 <thead>
@@ -85,7 +87,7 @@
85 <a href="{%url "task" match.build.pk match.pk%}">{{match.get_executed_display}}</a> 87 <a href="{%url "task" match.build.pk match.pk%}">{{match.get_executed_display}}</a>
86 </td> 88 </td>
87 <td> 89 <td>
88 <a href="{%url "task" match.build.pk match.pk%}">{{match.get_outcome_display}}</a><i class="icon-question-sign get-help hover-help" title="" style="visibility: hidden;" data-original-title="{{match.outcome_help}}"></i> 90 <a href="{%url "task" match.build.pk match.pk%}">{{match.get_outcome_display}}</a><i class="icon-question-sign get-help hover-help" title="{{match.outcome_help}}"></i>
89 </td> 91 </td>
90 <td> 92 <td>
91 <a href="{%url "task" match.build.pk match.pk%}">{{match.build.completed_on|date:"d/m/y H:i"}}</a> 93 <a href="{%url "task" match.build.pk match.pk%}">{{match.build.completed_on|date:"d/m/y H:i"}}</a>
@@ -103,7 +105,7 @@
103 {% elif task.outcome == task.OUTCOME_COVERED %} 105 {% elif task.outcome == task.OUTCOME_COVERED %}
104 <dl class="dl-horizontal"> 106 <dl class="dl-horizontal">
105 <dt> 107 <dt>
106 <i class="icon-question-sign get-help" title="" data-toggle="tooltip" data-original-title="The task providing the outcome of this task"></i>Task covered by 108 <i class="icon-question-sign get-help" title="The task providing the outcome of this task"></i> Task covered by
107 </dt> 109 </dt>
108 <dd> 110 <dd>
109 <ul> 111 <ul>
@@ -114,7 +116,7 @@
114 {%elif task.outcome == task.OUTCOME_CACHED%} 116 {%elif task.outcome == task.OUTCOME_CACHED%}
115 <dl class="dl-horizontal"> 117 <dl class="dl-horizontal">
116 <dt> 118 <dt>
117 <i class="icon-question-sign get-help" title="" data-original-title="The location in disk of the task log file"></i> Log file 119 <i class="icon-question-sign get-help" title="The location in disk of the task log file"></i> Log file
118 </dt> 120 </dt>
119 <dd> 121 <dd>
120 <code>{% for t in task.get_related_setscene %} {{t.logfile}}<br/>{% endfor %} 122 <code>{% for t in task.get_related_setscene %} {{t.logfile}}<br/>{% endfor %}
@@ -132,10 +134,10 @@
132<h2 {{task|task_color}}> 134<h2 {{task|task_color}}>
133 {% if task.task_executed %} 135 {% if task.task_executed %}
134 Executed 136 Executed
135 <i class="icon-question-sign get-help heading-help" title="" data-original-title="Executed tasks are those that need to run in order to generate the task output"></i> 137 <i class="icon-question-sign get-help heading-help" title="Executed tasks are those that need to run in order to generate the task output"></i>
136 {% else %} 138 {% else %}
137 Not Executed 139 Not Executed
138 <i class="icon-question-sign get-help heading-help" title="" data-original-title="Not executed tasks don't need to run because their outcome is provided by another task"></i> 140 <i class="icon-question-sign get-help heading-help" title="Not executed tasks don't need to run because their outcome is provided by another task"></i>
139 {% endif %} 141 {% endif %}
140</h2> 142</h2>
141<dl class="dl-horizontal"> 143<dl class="dl-horizontal">
@@ -146,12 +148,12 @@
146 <dd> 148 <dd>
147 {{task.sstate_checksum}} 149 {{task.sstate_checksum}}
148 </dd> 150 </dd>
149</dl>
150 {% if task.sstate_result != task.SSTATE_NA %} 151 {% if task.sstate_result != task.SSTATE_NA %}
152 </dl>
151 <div class="alert alert-info">Attempting to restore output from sstate cache 153 <div class="alert alert-info">Attempting to restore output from sstate cache
152 <i class="icon-question-sign get-help get-help-blue" title="The build system is searching for the task output in your <code>sstate-cache</code> directory and mirrors. If it finds it, it will use it instead of building it from scratch by running the real task. This makes the build faster"></i> 154 <i class="icon-question-sign get-help get-help-blue" title="The build system is searching for the task output in your <code>sstate-cache</code> directory and mirrors. If it finds it, it will use it instead of building it from scratch by running the real task. This makes the build faster"></i>
153 </div> 155 </div>
154 <dl class="dl-horizontal"> 156 <dl class="dl-horizontal">
155 <dt> 157 <dt>
156 <i class="icon-question-sign get-help" title="The name of the file searched for in your <code>sstate-cache</code> directory and mirrors"></i> 158 <i class="icon-question-sign get-help" title="The name of the file searched for in your <code>sstate-cache</code> directory and mirrors"></i>
157 File searched for 159 File searched for
@@ -189,7 +191,7 @@
189 </div> 191 </div>
190 {% elif task.sstate_result == task.SSTATE_RESTORED %} 192 {% elif task.sstate_result == task.SSTATE_RESTORED %}
191 <div class="alert alert-info"> 193 <div class="alert alert-info">
192 Output successfully restored from sstate cache. 194 Output <strong>successfully restored</strong> from sstate cache.
193 </div> 195 </div>
194 {% endif %} 196 {% endif %}
195 <dl class="dl-horizontal"> 197 <dl class="dl-horizontal">
@@ -221,7 +223,7 @@
221 {% for dep in deps %} 223 {% for dep in deps %}
222 <li><a href="{%url 'task' dep.build.pk dep.pk%}" class="task-info" title="{{dep.get_executed_display}} | {{dep.get_outcome_display}}">{{dep.recipe.name}}_{{dep.recipe.version}} <span class="task-name">{{dep.task_name}}</span></a></li> 224 <li><a href="{%url 'task' dep.build.pk dep.pk%}" class="task-info" title="{{dep.get_executed_display}} | {{dep.get_outcome_display}}">{{dep.recipe.name}}_{{dep.recipe.version}} <span class="task-name">{{dep.task_name}}</span></a></li>
223 {% empty %} 225 {% empty %}
224 <li><p class="alert-info">This task has no dependencies</p></li> 226 <li class="muted">This task has no dependencies</li>
225 {% endfor %} 227 {% endfor %}
226 </ul> 228 </ul>
227 </dd> 229 </dd>
@@ -234,7 +236,7 @@
234 {% for dep in rdeps %} 236 {% for dep in rdeps %}
235 <li><a href="{%url 'task' dep.build.pk dep.pk%}" class="task-info" title="{{dep.get_executed_display}} | {{dep.get_outcome_display}}">{{dep.recipe.name}}_{{dep.recipe.version}} <span class="task-name">{{dep.task_name}}</span></a></li> 237 <li><a href="{%url 'task' dep.build.pk dep.pk%}" class="task-info" title="{{dep.get_executed_display}} | {{dep.get_outcome_display}}">{{dep.recipe.name}}_{{dep.recipe.version}} <span class="task-name">{{dep.task_name}}</span></a></li>
236 {% empty %} 238 {% empty %}
237 <li><p class="alert-info">This task has no reverse dependencies</p></li> 239 <li class="muted">This task has no reverse dependencies</li>
238 {% endfor %} 240 {% endfor %}
239 </ul> 241 </ul>
240</dl> 242</dl>
@@ -243,21 +245,27 @@
243{%if task.task_executed %} 245{%if task.task_executed %}
244 <h2 class="details">Performance</h2> 246 <h2 class="details">Performance</h2>
245 <dl class="dl-horizontal"> 247 <dl class="dl-horizontal">
248 {% if task.elapsed_time > 0.01 %}
246 <dt> 249 <dt>
247 <i class="icon-question-sign get-help" title="How long it took the task to finish, expressed in seconds"></i> 250 <i class="icon-question-sign get-help" title="How long it took the task to finish, expressed in seconds"></i>
248 Time (secs) 251 Time (secs)
249 </dt> 252 </dt>
250 <dd>{{task.elapsed_time|format_none_and_zero}}</dd> 253 <dd>{{task.elapsed_time|format_none_and_zero|floatformat:2}}</dd>
254 {% endif %}
255 {% if task.cpu_usage > 0 %}
251 <dt> 256 <dt>
252 <i class="icon-question-sign get-help" title="Task CPU utilisation, expressed as a percentage"></i> 257 <i class="icon-question-sign get-help" title="Task CPU utilisation, expressed as a percentage"></i>
253 CPU usage 258 CPU usage
254 </dt> 259 </dt>
255 <dd>{{task.cpu_usage|format_none_and_zero}}</dd> 260 <dd>{{task.cpu_usage|format_none_and_zero|floatformat:2}}%</dd>
261 {% endif %}
262 {% if task.disk_io > 0 %}
256 <dt> 263 <dt>
257 <i class="icon-question-sign get-help" title="Number of miliseconds the task spent doing disk input and output"></i> 264 <i class="icon-question-sign get-help" title="Number of miliseconds the task spent doing disk input and output"></i>
258 Disk I/O (ms) 265 Disk I/O (ms)
259 </dt> 266 </dt>
260 <dd>{{task.disk_io|format_none_and_zero}}</dd> 267 <dd>{{task.disk_io|format_none_and_zero}}</dd>
268 {% endif %}
261 </dl> 269 </dl>
262{%endif%} 270{%endif%}
263 271
diff --git a/bitbake/lib/toaster/toastergui/templatetags/projecttags.py b/bitbake/lib/toaster/toastergui/templatetags/projecttags.py
index 857680b350..2d339d623f 100644
--- a/bitbake/lib/toaster/toastergui/templatetags/projecttags.py
+++ b/bitbake/lib/toaster/toastergui/templatetags/projecttags.py
@@ -70,16 +70,16 @@ def sortcols(tablecols):
70 return sorted(tablecols, key = lambda t: t['name']) 70 return sorted(tablecols, key = lambda t: t['name'])
71 71
72@register.filter 72@register.filter
73def task_color(task_object, show_green=False): 73def task_color(task_object, show_colour=False):
74 """ Return css class depending on Task execution status and execution outcome. 74 """ Return css class depending on Task execution status and execution outcome.
75 By default, green is not returned for executed and successful tasks; 75 By default, green is not returned for executed and successful tasks;
76 show_green argument should be True to get green color. 76 show_green argument should be True to get green color.
77 """ 77 """
78 if not task_object.task_executed: 78 if not task_object.task_executed:
79 return 'class=muted' 79 return 'class=muted'
80 elif task_object.outcome == task_object.OUTCOME_FAILED: 80 elif task_object.outcome == task_object.OUTCOME_FAILED and show_colour:
81 return 'class=error' 81 return 'class=error'
82 elif task_object.outcome == task_object.OUTCOME_SUCCESS and show_green: 82 elif task_object.outcome == task_object.OUTCOME_SUCCESS and show_colour:
83 return 'class=green' 83 return 'class=green'
84 else: 84 else:
85 return '' 85 return ''