diff options
Diffstat (limited to 'bitbake/lib/toaster/toastergui/templates')
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 %} |
