diff options
Diffstat (limited to 'bitbake/lib/toaster/toastergui/templates')
13 files changed, 161 insertions, 162 deletions
diff --git a/bitbake/lib/toaster/toastergui/templates/base.html b/bitbake/lib/toaster/toastergui/templates/base.html index 47bbbbda14..230dee49d6 100644 --- a/bitbake/lib/toaster/toastergui/templates/base.html +++ b/bitbake/lib/toaster/toastergui/templates/base.html | |||
@@ -29,10 +29,10 @@ | |||
29 | <script> | 29 | <script> |
30 | libtoaster.ctx = { | 30 | libtoaster.ctx = { |
31 | projectId : {{project.id|default:'undefined'}}, | 31 | projectId : {{project.id|default:'undefined'}}, |
32 | xhrDataTypeaheadUrl : "{% url 'xhr_datatypeahead' %}", | ||
33 | jsUrl : "{% static 'js/' %}", | 32 | jsUrl : "{% static 'js/' %}", |
34 | htmlUrl : "{% static 'html/' %}", | 33 | htmlUrl : "{% static 'html/' %}", |
35 | {% if project.id %} | 34 | {% if project.id %} |
35 | xhrDataTypeaheadUrl : "{% url 'xhr_datatypeahead' project.id %}", | ||
36 | xhrProjectEditUrl : "{% url 'xhr_projectedit' project.id %}", | 36 | xhrProjectEditUrl : "{% url 'xhr_projectedit' project.id %}", |
37 | projectPageUrl : "{% url 'project' project.id %}", | 37 | projectPageUrl : "{% url 'project' project.id %}", |
38 | projectName : "{{project.name}}", | 38 | projectName : "{{project.name}}", |
@@ -104,16 +104,16 @@ | |||
104 | <p><a id="view-all-projects" href="{% url 'all-projects' %}">View all projects</a></p> | 104 | <p><a id="view-all-projects" href="{% url 'all-projects' %}">View all projects</a></p> |
105 | </form> | 105 | </form> |
106 | </li> | 106 | </li> |
107 | <div class="alert" style="display:none"> | 107 | <li style="display: none"> |
108 | This project's configuration is incomplete,<br/>so you cannot run builds.<br/> | 108 | This project's configuration is incomplete,<br/>so you cannot run builds.<br/> |
109 | <p><a href="{% if project.id %}{% url 'project' project.id %}{% endif %}">View project configuration</a></p> | 109 | <p><a href="{% if project.id %}{% url 'project' project.id %}{% endif %}">View project configuration</a></p> |
110 | </div> | 110 | </li> |
111 | <li id="targets-form"> | 111 | <li id="targets-form"> |
112 | <h6>Recipe(s):</h6> | 112 | <h6>Recipe(s):</h6> |
113 | <form> | 113 | <form> |
114 | <input type="text" class="input-xlarge" id="build-target-input" placeholder="Type a recipe name" autocomplete="off" data-minLength="1" data-autocomplete="off" data-provide="typeahead" /> | 114 | <input type="text" class="input-xlarge" id="build-target-input" placeholder="Type a recipe name" autocomplete="off" data-minLength="1" data-autocomplete="off" data-provide="typeahead" /> |
115 | <div> | 115 | <div> |
116 | <a class="btn btn-primary" id="build-button" disabled="disabled" data-project-id="{{project.id}}">Build</a> | 116 | <a class="btn btn-primary" id="build-button" data-project-id="{{project.id}}">Build</a> |
117 | </div> | 117 | </div> |
118 | </form> | 118 | </form> |
119 | </li> | 119 | </li> |
diff --git a/bitbake/lib/toaster/toastergui/templates/baseprojectpage.html b/bitbake/lib/toaster/toastergui/templates/baseprojectpage.html index 0807f4cb1d..c8a7743b13 100644 --- a/bitbake/lib/toaster/toastergui/templates/baseprojectpage.html +++ b/bitbake/lib/toaster/toastergui/templates/baseprojectpage.html | |||
@@ -35,9 +35,10 @@ | |||
35 | </div> | 35 | </div> |
36 | 36 | ||
37 | <!-- Begin main page container --> | 37 | <!-- Begin main page container --> |
38 | <div style="padding: 0px, margin: 0px, display: inline"> | ||
38 | {% block projectinfomain %}{% endblock %} | 39 | {% block projectinfomain %}{% endblock %} |
40 | </div> | ||
39 | <!-- End main container --> | 41 | <!-- End main container --> |
40 | |||
41 | </div> | 42 | </div> |
42 | 43 | ||
43 | 44 | ||
diff --git a/bitbake/lib/toaster/toastergui/templates/builddashboard.html b/bitbake/lib/toaster/toastergui/templates/builddashboard.html index 4e600283a5..d5fe92a2be 100644 --- a/bitbake/lib/toaster/toastergui/templates/builddashboard.html +++ b/bitbake/lib/toaster/toastergui/templates/builddashboard.html | |||
@@ -182,7 +182,7 @@ | |||
182 | {% endfor %} | 182 | {% endfor %} |
183 | </div> | 183 | </div> |
184 | </dd> | 184 | </dd> |
185 | 185 | </dl> | |
186 | </div> | 186 | </div> |
187 | 187 | ||
188 | </div> | 188 | </div> |
diff --git a/bitbake/lib/toaster/toastergui/templates/buildrequestdetails.html b/bitbake/lib/toaster/toastergui/templates/buildrequestdetails.html index 2a4571f42e..9bb9bc1785 100644 --- a/bitbake/lib/toaster/toastergui/templates/buildrequestdetails.html +++ b/bitbake/lib/toaster/toastergui/templates/buildrequestdetails.html | |||
@@ -36,7 +36,7 @@ | |||
36 | </p> | 36 | </p> |
37 | </div> | 37 | </div> |
38 | 38 | ||
39 | <div class="accordion" id="errors" name="errors"> | 39 | <div class="accordion" id="errors"> |
40 | <div class="accordion-group"> | 40 | <div class="accordion-group"> |
41 | <div class="accordion-heading"> | 41 | <div class="accordion-heading"> |
42 | <a class="accordion-toggle error toggle-errors"> | 42 | <a class="accordion-toggle error toggle-errors"> |
diff --git a/bitbake/lib/toaster/toastergui/templates/importlayer.html b/bitbake/lib/toaster/toastergui/templates/importlayer.html index f956dbcaa9..af8f4f985a 100644 --- a/bitbake/lib/toaster/toastergui/templates/importlayer.html +++ b/bitbake/lib/toaster/toastergui/templates/importlayer.html | |||
@@ -39,7 +39,7 @@ | |||
39 | <legend>Layer repository information</legend> | 39 | <legend>Layer repository information</legend> |
40 | <div class="alert alert-error" id="import-error" style="display:none"> | 40 | <div class="alert alert-error" id="import-error" style="display:none"> |
41 | <button type="button" class="close" data-dismiss="alert">×</button> | 41 | <button type="button" class="close" data-dismiss="alert">×</button> |
42 | <h3></h3> | 42 | <h3> </h3> |
43 | <p></p> | 43 | <p></p> |
44 | <ul></ul> | 44 | <ul></ul> |
45 | </div> | 45 | </div> |
@@ -56,7 +56,7 @@ | |||
56 | </div> | 56 | </div> |
57 | 57 | ||
58 | </div> | 58 | </div> |
59 | <span id="duplicate-layer-info" style="display:none"> | 59 | <div id="duplicate-layer-info" style="display:none"> |
60 | <div class="alert warning"> | 60 | <div class="alert warning"> |
61 | <h3>A layer called <a href="" class="dup-layer-link"><span class="dup-layer-name"></span></a> already exists</h3> | 61 | <h3>A layer called <a href="" class="dup-layer-link"><span class="dup-layer-name"></span></a> already exists</h3> |
62 | <p>Layer names must be unqiue. Please use a different layer name.</p> | 62 | <p>Layer names must be unqiue. Please use a different layer name.</p> |
@@ -79,9 +79,9 @@ | |||
79 | 79 | ||
80 | <p><a href="" class="dup-layer-link">View the <span class="dup-layer-name"></span> layer information</a></p> | 80 | <p><a href="" class="dup-layer-link">View the <span class="dup-layer-name"></span> layer information</a></p> |
81 | 81 | ||
82 | </span> | 82 | </div> |
83 | 83 | ||
84 | <span class="fields-apart-from-layer-name"> | 84 | <div class="fields-apart-from-layer-name"> |
85 | <label for="layer-git-repo-url" class="project-form"> | 85 | <label for="layer-git-repo-url" class="project-form"> |
86 | Git repository URL | 86 | Git repository URL |
87 | <span class="icon-question-sign get-help" title="Fetch/clone URL of the repository. Currently, Toaster only supports Git repositories." ></span> | 87 | <span class="icon-question-sign get-help" title="Fetch/clone URL of the repository. Currently, Toaster only supports Git repositories." ></span> |
@@ -104,11 +104,11 @@ | |||
104 | <span class="help-inline" style="diaply:none;" id="invalid-layer-revision-hint"></span> | 104 | <span class="help-inline" style="diaply:none;" id="invalid-layer-revision-hint"></span> |
105 | </div> | 105 | </div> |
106 | </div> | 106 | </div> |
107 | </span> | 107 | </div> |
108 | 108 | ||
109 | </fieldset> | 109 | </fieldset> |
110 | 110 | ||
111 | <span class="fields-apart-from-layer-name"> | 111 | <div class="fields-apart-from-layer-name"> |
112 | <fieldset class="air"> | 112 | <fieldset class="air"> |
113 | <legend> | 113 | <legend> |
114 | Layer dependencies | 114 | Layer dependencies |
@@ -119,7 +119,7 @@ | |||
119 | </ul> | 119 | </ul> |
120 | <div class="input-append"> | 120 | <div class="input-append"> |
121 | <input type="text" autocomplete="off" data-minLength="1" data-autocomplete="off" data-provide="typeahead" placeholder="Type a layer name" id="layer-dependency" class="input-xlarge"> | 121 | <input type="text" autocomplete="off" data-minLength="1" data-autocomplete="off" data-provide="typeahead" placeholder="Type a layer name" id="layer-dependency" class="input-xlarge"> |
122 | <a class="btn" type="button" id="add-layer-dependency-btn" disabled> | 122 | <a class="btn" id="add-layer-dependency-btn"> |
123 | Add layer | 123 | Add layer |
124 | </a> | 124 | </a> |
125 | </div> | 125 | </div> |
@@ -129,7 +129,7 @@ | |||
129 | <button class="btn btn-primary btn-large" data-toggle="modal" id="import-and-add-btn" data-target="#dependencies-message" disabled>Import and add to project</button> | 129 | <button class="btn btn-primary btn-large" data-toggle="modal" id="import-and-add-btn" data-target="#dependencies-message" disabled>Import and add to project</button> |
130 | <span class="help-inline" id="import-and-add-hint" style="vertical-align: middle;">To import a layer you need to enter a layer name, a Git repository URL and a revision (branch, tag or commit)</span> | 130 | <span class="help-inline" id="import-and-add-hint" style="vertical-align: middle;">To import a layer you need to enter a layer name, a Git repository URL and a revision (branch, tag or commit)</span> |
131 | </div> | 131 | </div> |
132 | </span> | 132 | </div> |
133 | </form> | 133 | </form> |
134 | 134 | ||
135 | {% endblock %} | 135 | {% endblock %} |
diff --git a/bitbake/lib/toaster/toastergui/templates/layerdetails.html b/bitbake/lib/toaster/toastergui/templates/layerdetails.html index 4d892d56f9..7b62b64893 100644 --- a/bitbake/lib/toaster/toastergui/templates/layerdetails.html +++ b/bitbake/lib/toaster/toastergui/templates/layerdetails.html | |||
@@ -9,6 +9,23 @@ | |||
9 | </li> | 9 | </li> |
10 | {% endblock %} | 10 | {% endblock %} |
11 | {% block projectinfomain %} | 11 | {% block projectinfomain %} |
12 | {# If this is not an imported layer then hide the edit ui #} | ||
13 | {% if not layerversion.layer_source_id or layerversion.layer_source.sourcetype != layerversion.layer_source.TYPE_IMPORTED %} | ||
14 | <style scoped> | ||
15 | .icon-pencil { | ||
16 | display:none; | ||
17 | } | ||
18 | .delete-current-value{ | ||
19 | display: none; | ||
20 | } | ||
21 | li .icon-trash { | ||
22 | display:none; | ||
23 | } | ||
24 | .add-deps { | ||
25 | display:none; | ||
26 | } | ||
27 | </style> | ||
28 | {% endif %} | ||
12 | 29 | ||
13 | 30 | ||
14 | <script src="{% static 'js/layerdetails.js' %}"></script> | 31 | <script src="{% static 'js/layerdetails.js' %}"></script> |
@@ -27,7 +44,7 @@ | |||
27 | commit: "{{layerversion.get_vcs_reference}}", | 44 | commit: "{{layerversion.get_vcs_reference}}", |
28 | inCurrentPrj : {{layer_in_project}}, | 45 | inCurrentPrj : {{layer_in_project}}, |
29 | url : "{% url 'layerdetails' project.id layerversion.id %}", | 46 | url : "{% url 'layerdetails' project.id layerversion.id %}", |
30 | sourceId: {{layerversion.layer_source_id}}, | 47 | sourceId: {{layerversion.layer_source_id|json}}, |
31 | } | 48 | } |
32 | }; | 49 | }; |
33 | 50 | ||
@@ -40,24 +57,6 @@ | |||
40 | }); | 57 | }); |
41 | </script> | 58 | </script> |
42 | 59 | ||
43 | {# If this is not an imported layer then hide the edit ui #} | ||
44 | {% if layerversion.layer_source_id != 3 %} | ||
45 | <style> | ||
46 | .icon-pencil { | ||
47 | display:none; | ||
48 | } | ||
49 | .delete-current-value{ | ||
50 | display: none; | ||
51 | } | ||
52 | li .icon-trash { | ||
53 | display:none; | ||
54 | } | ||
55 | .add-deps { | ||
56 | display:none; | ||
57 | } | ||
58 | </style> | ||
59 | {% endif %} | ||
60 | |||
61 | <div class="row-fluid span11"> | 60 | <div class="row-fluid span11"> |
62 | <div class="page-header"> | 61 | <div class="page-header"> |
63 | <h1>{{layerversion.layer.name}} <small class="commit" | 62 | <h1>{{layerversion.layer.name}} <small class="commit" |
@@ -100,7 +99,7 @@ | |||
100 | </span> | 99 | </span> |
101 | 100 | ||
102 | <!-- layer details pane --> | 101 | <!-- layer details pane --> |
103 | <div name="information" id="information" class="tab-pane active"> | 102 | <div id="information" class="tab-pane active"> |
104 | <dl class="dl-horizontal"> | 103 | <dl class="dl-horizontal"> |
105 | <dt class=""> | 104 | <dt class=""> |
106 | <i class="icon-question-sign get-help" title="Fetch/clone URL of the repository"></i> | 105 | <i class="icon-question-sign get-help" title="Fetch/clone URL of the repository"></i> |
@@ -160,19 +159,17 @@ | |||
160 | Layer dependencies | 159 | Layer dependencies |
161 | </dt> | 160 | </dt> |
162 | <dd> | 161 | <dd> |
163 | <ul class="unstyled" id="layer-deps-list"> | 162 | <ul class="unstyled current-value" id="layer-deps-list"> |
164 | {% for ld in layerversion.dependencies.all %} | 163 | {% for ld in layerversion.dependencies.all %} |
165 | <span class="current-value"> | ||
166 | <li data-layer-id="{{ld.depends_on.id}}"> | 164 | <li data-layer-id="{{ld.depends_on.id}}"> |
167 | <a data-toggle="tooltip" title="{{ld.depends_on.layer.vcs_url}} | {{ld.depends_on.get_vcs_reference}}" href="{% url 'layerdetails' project.id ld.depends_on.id %}">{{ld.depends_on.layer.name}}</a> | 165 | <a data-toggle="tooltip" title="{{ld.depends_on.layer.vcs_url}} | {{ld.depends_on.get_vcs_reference}}" href="{% url 'layerdetails' project.id ld.depends_on.id %}">{{ld.depends_on.layer.name}}</a> |
168 | <span class="icon-trash " data-toggle="tooltip" title="Delete"></span> | 166 | <span class="icon-trash " data-toggle="tooltip" title="Delete"></span> |
169 | </li> | 167 | </li> |
170 | </span> | ||
171 | {% endfor %} | 168 | {% endfor %} |
172 | </ul> | 169 | </ul> |
173 | <div class="input-append add-deps"> | 170 | <div class="input-append add-deps"> |
174 | <input type="text" autocomplete="off" data-minLength="1" data-autocomplete="off" placeholder="Type a layer name" id="layer-dep-input"> | 171 | <input type="text" autocomplete="off" data-minLength="1" data-autocomplete="off" placeholder="Type a layer name" id="layer-dep-input"> |
175 | <a class="btn" type="button" id="add-layer-dependency-btn" disabled> | 172 | <a class="btn" id="add-layer-dependency-btn" > |
176 | Add layer | 173 | Add layer |
177 | </a> | 174 | </a> |
178 | </div> | 175 | </div> |
@@ -181,7 +178,7 @@ | |||
181 | </dl> | 178 | </dl> |
182 | </div> | 179 | </div> |
183 | <!-- targets tab --> | 180 | <!-- targets tab --> |
184 | <div name="targets" id="targets" class="tab-pane"> | 181 | <div id="targets" class="tab-pane"> |
185 | {% if total_targets == 0 %} | 182 | {% if total_targets == 0 %} |
186 | <div class="alert alert-info"> | 183 | <div class="alert alert-info"> |
187 | <p>Toaster does not have recipe information for the <strong> {{layerversion.layer.name}} </strong> layer.</p> | 184 | <p>Toaster does not have recipe information for the <strong> {{layerversion.layer.name}} </strong> layer.</p> |
@@ -316,7 +313,7 @@ | |||
316 | </div> | 313 | </div> |
317 | 314 | ||
318 | 315 | ||
319 | <div name="machines" id="machines" class="tab-pane"> | 316 | <div id="machines" class="tab-pane"> |
320 | {% if total_machines == 0 %} | 317 | {% if total_machines == 0 %} |
321 | <div class="alert alert-info"> | 318 | <div class="alert alert-info"> |
322 | <p>Toaster does not have machine information for the <strong> {{layerversion.layer.name}} </strong> layer.</p> | 319 | <p>Toaster does not have machine information for the <strong> {{layerversion.layer.name}} </strong> layer.</p> |
@@ -482,7 +479,6 @@ | |||
482 | <i class="icon-pencil"></i> | 479 | <i class="icon-pencil"></i> |
483 | <span class="icon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span> | 480 | <span class="icon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span> |
484 | </dd> | 481 | </dd> |
485 | </dd> | ||
486 | {% if layerversion.layer.up_id %} | 482 | {% if layerversion.layer.up_id %} |
487 | <dt>Layer index</dt> | 483 | <dt>Layer index</dt> |
488 | <dd> | 484 | <dd> |
diff --git a/bitbake/lib/toaster/toastergui/templates/layers.html b/bitbake/lib/toaster/toastergui/templates/layers.html index abad007ee4..e6861c2708 100644 --- a/bitbake/lib/toaster/toastergui/templates/layers.html +++ b/bitbake/lib/toaster/toastergui/templates/layers.html | |||
@@ -112,7 +112,7 @@ | |||
112 | {% endwith %} | 112 | {% endwith %} |
113 | </td> | 113 | </td> |
114 | {% if project %} | 114 | {% if project %} |
115 | <td class="add-del-layers" value="{{o.pk}}"> | 115 | <td class="add-del-layers" data-value="{{o.pk}}"> |
116 | <button class="btn btn-danger btn-block layer-exists-{{o.pk}} layerbtn" style="display:none;" data-layer='{ "id": {{o.pk}}, "name": "{{o.layer.name}}", "url": "{%url 'layerdetails' project.id o.pk%}"}' data-directive="remove" > | 116 | <button class="btn btn-danger btn-block layer-exists-{{o.pk}} layerbtn" style="display:none;" data-layer='{ "id": {{o.pk}}, "name": "{{o.layer.name}}", "url": "{%url 'layerdetails' project.id o.pk%}"}' data-directive="remove" > |
117 | <i class="icon-trash"></i> | 117 | <i class="icon-trash"></i> |
118 | Delete layer | 118 | Delete layer |
diff --git a/bitbake/lib/toaster/toastergui/templates/machines.html b/bitbake/lib/toaster/toastergui/templates/machines.html index 4a0986276f..9979376b07 100644 --- a/bitbake/lib/toaster/toastergui/templates/machines.html +++ b/bitbake/lib/toaster/toastergui/templates/machines.html | |||
@@ -77,7 +77,7 @@ | |||
77 | <button class="btn btn-block layerbtn layer-add-{{o.layer_version.id}}" data-layer='{ "id": {{o.layer_version.id}}, "name": "{{o.layer_version.layer.name}}", "url": "{%url 'layerdetails' project.id o.layer_version.id %}"}' data-directive="add"> | 77 | <button class="btn btn-block layerbtn layer-add-{{o.layer_version.id}}" data-layer='{ "id": {{o.layer_version.id}}, "name": "{{o.layer_version.layer.name}}", "url": "{%url 'layerdetails' project.id o.layer_version.id %}"}' data-directive="add"> |
78 | <i class="icon-plus"></i> | 78 | <i class="icon-plus"></i> |
79 | Add layer | 79 | Add layer |
80 | <i title="" class="icon-question-sign get-help" data-original-title="To enable this machine, you must first add the {{o.layer_version.layer.name}} layer to your project"></i></i> | 80 | <i title="" class="icon-question-sign get-help" data-original-title="To enable this machine, you must first add the {{o.layer_version.layer.name}} layer to your project"></i> |
81 | </button> | 81 | </button> |
82 | </td> | 82 | </td> |
83 | </tr> | 83 | </tr> |
diff --git a/bitbake/lib/toaster/toastergui/templates/newproject.html b/bitbake/lib/toaster/toastergui/templates/newproject.html index dcb6590642..ed3a279052 100644 --- a/bitbake/lib/toaster/toastergui/templates/newproject.html +++ b/bitbake/lib/toaster/toastergui/templates/newproject.html | |||
@@ -43,7 +43,7 @@ | |||
43 | </fieldset> | 43 | </fieldset> |
44 | 44 | ||
45 | <div class="form-actions"> | 45 | <div class="form-actions"> |
46 | <input type="submit" class="btn btn-primary btn-large" value="Create project"></input> | 46 | <input type="submit" class="btn btn-primary btn-large" value="Create project"/> |
47 | <span class="help-inline" style="vertical-align:middle;">To create a project, you need to enter a project name</span> | 47 | <span class="help-inline" style="vertical-align:middle;">To create a project, you need to enter a project name</span> |
48 | </div> | 48 | </div> |
49 | </form> | 49 | </form> |
@@ -64,7 +64,8 @@ | |||
64 | </div> | 64 | </div> |
65 | {% endif %} | 65 | {% endif %} |
66 | 66 | ||
67 | </div> | 67 | </div> |
68 | |||
68 | <script type="text/javascript"> | 69 | <script type="text/javascript"> |
69 | $(document).ready(function () { | 70 | $(document).ready(function () { |
70 | // hide the new project button | 71 | // hide the new project button |
@@ -95,5 +96,5 @@ | |||
95 | }); | 96 | }); |
96 | }) | 97 | }) |
97 | </script> | 98 | </script> |
98 | </div> | 99 | |
99 | {% endblock %} | 100 | {% endblock %} |
diff --git a/bitbake/lib/toaster/toastergui/templates/project.html b/bitbake/lib/toaster/toastergui/templates/project.html index 85a1b164dd..933da4f7da 100644 --- a/bitbake/lib/toaster/toastergui/templates/project.html +++ b/bitbake/lib/toaster/toastergui/templates/project.html | |||
@@ -30,7 +30,7 @@ vim: expandtab tabstop=2 | |||
30 | 30 | ||
31 | {%else%} | 31 | {%else%} |
32 | 32 | ||
33 | <div id="main" role="main" ng-app="project" ng-controller="prjCtrl" class="top-padded"> | 33 | <div id="main" role="main" data-ng-app="project" data-ng-controller="prjCtrl" class="top-padded"> |
34 | 34 | ||
35 | <!-- project name --> | 35 | <!-- project name --> |
36 | <div class="page-header"> | 36 | <div class="page-header"> |
@@ -38,9 +38,9 @@ vim: expandtab tabstop=2 | |||
38 | </div> | 38 | </div> |
39 | 39 | ||
40 | <!-- alerts section 1--> | 40 | <!-- alerts section 1--> |
41 | <div ng-repeat="a in zone1alerts"> | 41 | <div data-ng-repeat="a in zone1alerts"> |
42 | <div class="alert alert-dismissible lead" role="alert" ng-class="a.type"><button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span></button> | 42 | <div class="alert alert-dismissible lead" role="alert" data-ng-class="a.type"><button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span></button> |
43 | <span ng-bind-html="a.text"></span> | 43 | <span data-ng-bind-html="a.text"></span> |
44 | </div> | 44 | </div> |
45 | </div> | 45 | </div> |
46 | 46 | ||
@@ -54,21 +54,21 @@ vim: expandtab tabstop=2 | |||
54 | <script type="text/ng-template" id="dependencies_modal"> | 54 | <script type="text/ng-template" id="dependencies_modal"> |
55 | <div class="modal-header"> | 55 | <div class="modal-header"> |
56 | <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button> | 56 | <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button> |
57 | <h3><span ng-bind="layerAddName"></span> dependencies</h3> | 57 | <h3><span data-ng-bind="layerAddName"></span> dependencies</h3> |
58 | </div> | 58 | </div> |
59 | <div class="modal-body"> | 59 | <div class="modal-body"> |
60 | <p><strong>{[layerAddName]}</strong> depends on some layers that are not added to your project. Select the ones you want to add:</p> | 60 | <p><strong>{[layerAddName]}</strong> depends on some layers that are not added to your project. Select the ones you want to add:</p> |
61 | <ul class="unstyled"> | 61 | <ul class="unstyled"> |
62 | <li ng-repeat="ld in items"> | 62 | <li data-ng-repeat="ld in items"> |
63 | <label class="checkbox"> | 63 | <label class="checkbox"> |
64 | <input type="checkbox" ng-model="selectedItems[ld.id]"> {[ld.name]} | 64 | <input type="checkbox" data-ng-model="selectedItems[ld.id]"> {[ld.name]} |
65 | </label> | 65 | </label> |
66 | </li> | 66 | </li> |
67 | </ul> | 67 | </ul> |
68 | </div> | 68 | </div> |
69 | <div class="modal-footer"> | 69 | <div class="modal-footer"> |
70 | <button class="btn btn-primary" ng-click="ok()">Add layers</button> | 70 | <button class="btn btn-primary" data-ng-click="ok()">Add layers</button> |
71 | <button class="btn" ng-click="cancel()">Cancel</button> | 71 | <button class="btn" data-ng-click="cancel()">Cancel</button> |
72 | </div> | 72 | </div> |
73 | </form> | 73 | </form> |
74 | </script> | 74 | </script> |
@@ -82,30 +82,30 @@ vim: expandtab tabstop=2 | |||
82 | <div class="modal-body"> | 82 | <div class="modal-body"> |
83 | <p>The following project layers do not exist for the {[releaseDescription]} release:</p> | 83 | <p>The following project layers do not exist for the {[releaseDescription]} release:</p> |
84 | <ul> | 84 | <ul> |
85 | <li ng-repeat="i in items"><span class="layer-info" data-toggle="tooltip" tooltip="{[i.detail]}">{[i.name]}</span></li> | 85 | <li data-ng-repeat="i in items"><span class="layer-info" data-toggle="tooltip" tooltip="{[i.detail]}">{[i.name]}</span></li> |
86 | </ul> | 86 | </ul> |
87 | <p>If you change the release to {[releaseDescription]}, the above layers will be deleted from your project.</p> | 87 | <p>If you change the release to {[releaseDescription]}, the above layers will be deleted from your project.</p> |
88 | </div> | 88 | </div> |
89 | <div class="modal-footer"> | 89 | <div class="modal-footer"> |
90 | <button class="btn btn-primary" ng-click="ok()">Change release and delete layers</button> | 90 | <button class="btn btn-primary" data-ng-click="ok()">Change release and delete layers</button> |
91 | <button class="btn" ng-click="cancel()">Cancel</button> | 91 | <button class="btn" data-ng-click="cancel()">Cancel</button> |
92 | </div> | 92 | </div> |
93 | </script> | 93 | </script> |
94 | 94 | ||
95 | <script type="text/ng-template" id="target_display"> | 95 | <script type="text/ng-template" id="target_display"> |
96 | <div ng-switch on="t.task.length"> | 96 | <div data-ng-switch on="t.task.length"> |
97 | <div ng-switch-when="0">{[t.target]}</div> | 97 | <div data-ng-switch-when="0">{[t.target]}</div> |
98 | <div ng-switch-default>{[t.target]}:{[t.task]}</div> | 98 | <div data-ng-switch-default>{[t.target]}:{[t.task]}</div> |
99 | </div> | 99 | </div> |
100 | </script> | 100 | </script> |
101 | 101 | ||
102 | 102 | ||
103 | <!-- build form --> | 103 | <!-- build form --> |
104 | <div class="well"> | 104 | <div class="well"> |
105 | <form class="build-form" ng-submit="buildNamedTarget()"> | 105 | <form class="build-form" data-ng-submit="buildNamedTarget()"> |
106 | <div class="input-append controls"> | 106 | <div class="input-append controls"> |
107 | <input type="text" class="huge input-xxlarge" placeholder="Type the recipe(s) you want to build" autocomplete="off" ng-model="targetName" typeahead="e.name for e in getAutocompleteSuggestions('targets', $viewValue)|filter:$viewValue" typeahead-template-url="suggestion_details" ng-disabled="!layers.length"/> | 107 | <input type="text" class="huge input-xxlarge" placeholder="Type the recipe(s) you want to build" autocomplete="off" data-ng-model="targetName" data-typeahead="e.name for e in getAutocompleteSuggestions('targets', $viewValue)|filter:$viewValue" data-typeahead-template-url="suggestion_details" data-ng-disabled="!layers.length"/> |
108 | <button type="submit" class="btn btn-large btn-primary" ng-disabled="!targetName.length"> | 108 | <button type="submit" class="btn btn-large btn-primary" data-ng-disabled="!targetName.length"> |
109 | Build | 109 | Build |
110 | </button> | 110 | </button> |
111 | </div> | 111 | </div> |
@@ -124,27 +124,27 @@ vim: expandtab tabstop=2 | |||
124 | <!-- latest builds list --> | 124 | <!-- latest builds list --> |
125 | 125 | ||
126 | <a id="buildslist"></a> | 126 | <a id="buildslist"></a> |
127 | <h2 class="air" ng-if="builds.length">Latest builds</h2> | 127 | <h2 class="air" data-ng-if="builds.length">Latest builds</h2> |
128 | <div class="animate-repeat alert" ng-repeat="b in builds track by b.id" ng-class="{'queued':'alert-info', 'deleted':'alert-info', 'in progress': 'alert-info', 'failed':'alert-error', 'completed':{'In Progress':'alert-info', 'Succeeded':'alert-success', 'Failed':'alert-error'}[b.build[0].status]}[b.status]"> | 128 | <div class="animate-repeat alert" data-ng-repeat="b in builds track by b.id" data-ng-class="{'queued':'alert-info', 'deleted':'alert-info', 'in progress': 'alert-info', 'failed':'alert-error', 'completed':{'In Progress':'alert-info', 'Succeeded':'alert-success', 'Failed':'alert-error'}[b.build[0].status]}[b.status]"> |
129 | <div class="row-fluid"> | 129 | <div class="row-fluid"> |
130 | <switch ng-switch="b.status"> | 130 | <switch data-ng-switch="b.status"> |
131 | 131 | ||
132 | <case ng-switch-when="failed"> | 132 | <case data-ng-switch-when="failed"> |
133 | <div class="lead span3"> | 133 | <div class="lead span3"> |
134 | <a ng-class="{'succeeded': 'success', 'failed': 'error'}[b.status]" href="{[b.br_page_url]}"> | 134 | <a data-ng-class="{'succeeded': 'success', 'failed': 'error'}[b.status]" href="{[b.br_page_url]}"> |
135 | <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> | 135 | <span data-ng-repeat="t in b.targets" data-ng-include src="'target_display'"></span> |
136 | </a> | 136 | </a> |
137 | </div> | 137 | </div> |
138 | <div class="span2 lead"> | 138 | <div class="span2 lead"> |
139 | <ngif ng-if="b.updated - todaydate > 0"> | 139 | <ngif data-ng-if="b.updated - todaydate > 0"> |
140 | {[b.updated|date:'HH:mm']} | 140 | {[b.updated|date:'HH:mm']} |
141 | </ngif> | 141 | </ngif> |
142 | <ngif ng-if="b.updated - todaydate < 0"> | 142 | <ngif data-ng-if="b.updated - todaydate < 0"> |
143 | {[b.updated|date:'dd/MM/yy HH:mm']} | 143 | {[b.updated|date:'dd/MM/yy HH:mm']} |
144 | </ngif> | 144 | </ngif> |
145 | </div> | 145 | </div> |
146 | <div class="span2"> | 146 | <div class="span2"> |
147 | <ngif ng-if="b.errors.length"> | 147 | <ngif data-ng-if="b.errors.length"> |
148 | <span> | 148 | <span> |
149 | <i class="icon-minus-sign red lead"></i> | 149 | <i class="icon-minus-sign red lead"></i> |
150 | <a href="{[b.br_page_url]}#errors" class="lead error">{[b.errors.length]} | 150 | <a href="{[b.br_page_url]}#errors" class="lead error">{[b.errors.length]} |
@@ -156,47 +156,47 @@ vim: expandtab tabstop=2 | |||
156 | <!-- we don't have warnings in this case --> | 156 | <!-- we don't have warnings in this case --> |
157 | </div> | 157 | </div> |
158 | <div> <span class="lead">Build time: {[b.command_time|timediff]}</span> | 158 | <div> <span class="lead">Build time: {[b.command_time|timediff]}</span> |
159 | <button class="btn pull-right" ng-class="{'succeeded': 'btn-success', 'failed': 'btn-danger'}[b.status]" | 159 | <button class="btn pull-right" data-ng-class="{'succeeded': 'btn-success', 'failed': 'btn-danger'}[b.status]" |
160 | ng-click="buildExistingTarget(b.targets)">Run again</button> | 160 | data-ng-click="buildExistingTarget(b.targets)">Run again</button> |
161 | 161 | ||
162 | </div> | 162 | </div> |
163 | </case> | 163 | </case> |
164 | 164 | ||
165 | <case ng-switch-when="queued"> | 165 | <case data-ng-switch-when="queued"> |
166 | <div class="lead span5"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div> | 166 | <div class="lead span5"> <span data-ng-repeat="t in b.targets" data-ng-include src="'target_display'"></span> </div> |
167 | <div class="span4 lead" >Build queued | 167 | <div class="span4 lead" >Build queued |
168 | <i title="This build will start as soon as a build server is available" class="icon-question-sign get-help get-help-blue heading-help" data-toggle="tooltip"></i> | 168 | <i title="This build will start as soon as a build server is available" class="icon-question-sign get-help get-help-blue heading-help" data-toggle="tooltip"></i> |
169 | </div> | 169 | </div> |
170 | <button class="btn pull-right btn-info" ng-click="buildCancel(b)">Cancel</button> | 170 | <button class="btn pull-right btn-info" data-ng-click="buildCancel(b)">Cancel</button> |
171 | </case> | 171 | </case> |
172 | 172 | ||
173 | <case ng-switch-when="created"> | 173 | <case data-ng-switch-when="created"> |
174 | <div class="lead span5"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div> | 174 | <div class="lead span5"> <span data-ng-repeat="t in b.targets" data-ng-include src="'target_display'"></span> </div> |
175 | <div class="span4"> | 175 | <div class="span4"> |
176 | <span class="lead">Creating build</span> | 176 | <span class="lead">Creating build</span> |
177 | </div> | 177 | </div> |
178 | <button class="btn pull-right btn-info" ng-click="buildCancel(b)">Cancel</button> | 178 | <button class="btn pull-right btn-info" data-ng-click="buildCancel(b)">Cancel</button> |
179 | </case> | 179 | </case> |
180 | 180 | ||
181 | <case ng-switch-when="deleted"> | 181 | <case data-ng-switch-when="deleted"> |
182 | <div class="lead span5"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div> | 182 | <div class="lead span5"> <span data-ng-repeat="t in b.targets" data-ng-include src="'target_display'"></span> </div> |
183 | <div class="span4" id="{[b.id]}-deleted" > | 183 | <div class="span4" id="{[b.id]}-deleted" > |
184 | <span class="lead">Build cancelled</span> | 184 | <span class="lead">Build cancelled</span> |
185 | </div> | 185 | </div> |
186 | <button class="btn pull-right btn-info" ng-click="buildDelete(b)">Close</button> | 186 | <button class="btn pull-right btn-info" data-ng-click="buildDelete(b)">Close</button> |
187 | </case> | 187 | </case> |
188 | 188 | ||
189 | 189 | ||
190 | <case ng-switch-when="in progress"> | 190 | <case data-ng-switch-when="in progress"> |
191 | <switch ng-switch="b.build.length"> | 191 | <switch data-ng-switch="b.build.length"> |
192 | <case ng-switch-when="0"> | 192 | <case data-ng-switch-when="0"> |
193 | <div class="lead span5"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div> | 193 | <div class="lead span5"> <span data-ng-repeat="t in b.targets" data-ng-include src="'target_display'"></span> </div> |
194 | <div class="span4 lead"> | 194 | <div class="span4 lead"> |
195 | Checking out layers | 195 | Checking out layers |
196 | </div> | 196 | </div> |
197 | </case> | 197 | </case> |
198 | <case ng-switch-default=""> | 198 | <case data-ng-switch-default=""> |
199 | <div class="lead span3"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div> | 199 | <div class="lead span3"> <span data-ng-repeat="t in b.targets" data-ng-include src="'target_display'"></span> </div> |
200 | <div class="span4 offset1" > | 200 | <div class="span4 offset1" > |
201 | <div class="progress" style="margin-top:5px;" data-toggle="tooltip" tooltip="{[b.build[0].completeper]}% of tasks complete"> | 201 | <div class="progress" style="margin-top:5px;" data-toggle="tooltip" tooltip="{[b.build[0].completeper]}% of tasks complete"> |
202 | <div style="width: {[b.build[0].completeper]}%;" class="bar"></div> | 202 | <div style="width: {[b.build[0].completeper]}%;" class="bar"></div> |
@@ -207,22 +207,22 @@ vim: expandtab tabstop=2 | |||
207 | </case> | 207 | </case> |
208 | 208 | ||
209 | 209 | ||
210 | <case ng-switch-when="completed"> | 210 | <case data-ng-switch-when="completed"> |
211 | <div class="lead span3"> | 211 | <div class="lead span3"> |
212 | <a ng-class="{'Succeeded': 'success', 'Failed': 'error'}[b.build[0].status]" href="{[b.build[0].build_page_url]}"> | 212 | <a data-ng-class="{'Succeeded': 'success', 'Failed': 'error'}[b.build[0].status]" href="{[b.build[0].build_page_url]}"> |
213 | <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> | 213 | <span data-ng-repeat="t in b.targets" data-ng-include src="'target_display'"></span> |
214 | </a> | 214 | </a> |
215 | </div> | 215 | </div> |
216 | <div class="span2 lead"> | 216 | <div class="span2 lead"> |
217 | <ngif ng-if="b.build[0].completed_on - todaydate > 0"> | 217 | <ngif data-ng-if="b.build[0].completed_on - todaydate > 0"> |
218 | {[b.build[0].completed_on|date:'HH:mm']} | 218 | {[b.build[0].completed_on|date:'HH:mm']} |
219 | </ngif> | 219 | </ngif> |
220 | <ngif ng-if="b.build[0].completed_on - todaydate < 0"> | 220 | <ngif data-ng-if="b.build[0].completed_on - todaydate < 0"> |
221 | {[b.build[0].completed_on|date:'dd/MM/yy HH:mm']} | 221 | {[b.build[0].completed_on|date:'dd/MM/yy HH:mm']} |
222 | </ngif> | 222 | </ngif> |
223 | </div> | 223 | </div> |
224 | <div class="span2"> | 224 | <div class="span2"> |
225 | <ngif ng-if="b.build[0].errors"> | 225 | <ngif data-ng-if="b.build[0].errors"> |
226 | <span> | 226 | <span> |
227 | <i class="icon-minus-sign red lead"></i> | 227 | <i class="icon-minus-sign red lead"></i> |
228 | <a href="{[b.build[0].build_page_url]}#errors" class="lead error">{[b.build[0].errors]} | 228 | <a href="{[b.build[0].build_page_url]}#errors" class="lead error">{[b.build[0].errors]} |
@@ -231,7 +231,7 @@ vim: expandtab tabstop=2 | |||
231 | </ngif> | 231 | </ngif> |
232 | </div> | 232 | </div> |
233 | <div class="span2"> | 233 | <div class="span2"> |
234 | <ngif ng-if="b.build[0].warnings"> | 234 | <ngif data-ng-if="b.build[0].warnings"> |
235 | <span> | 235 | <span> |
236 | <i class="icon-warning-sign yellow lead"></i> | 236 | <i class="icon-warning-sign yellow lead"></i> |
237 | <a href="{[b.build[0].build_page_url]}#warnings" class="lead warning">{[b.build[0].warnings]} | 237 | <a href="{[b.build[0].build_page_url]}#warnings" class="lead warning">{[b.build[0].warnings]} |
@@ -240,14 +240,14 @@ vim: expandtab tabstop=2 | |||
240 | </ngif> | 240 | </ngif> |
241 | </div> | 241 | </div> |
242 | <div> <span class="lead">Build time: <a href="{[b.build[0].build_time_page_url]}">{[b.build[0].build_time|timediff]}</a></span> | 242 | <div> <span class="lead">Build time: <a href="{[b.build[0].build_time_page_url]}">{[b.build[0].build_time|timediff]}</a></span> |
243 | <button class="btn pull-right" ng-class="{'Succeeded': 'btn-success', 'Failed': 'btn-danger'}[b.build[0].status]" | 243 | <button class="btn pull-right" data-ng-class="{'Succeeded': 'btn-success', 'Failed': 'btn-danger'}[b.build[0].status]" |
244 | ng-click="buildExistingTarget(b.targets)">Run again</button> | 244 | data-ng-click="buildExistingTarget(b.targets)">Run again</button> |
245 | 245 | ||
246 | </div> | 246 | </div> |
247 | </case> | 247 | </case> |
248 | 248 | ||
249 | 249 | ||
250 | <case ng-switch-default=""> | 250 | <case data-ng-switch-default=""> |
251 | <div>FIXME!</div> | 251 | <div>FIXME!</div> |
252 | </case> | 252 | </case> |
253 | </switch> | 253 | </switch> |
@@ -259,9 +259,9 @@ vim: expandtab tabstop=2 | |||
259 | <h2 class="air">Project configuration</h2> | 259 | <h2 class="air">Project configuration</h2> |
260 | 260 | ||
261 | <!-- alerts section 2 --> | 261 | <!-- alerts section 2 --> |
262 | <div ng-repeat="a in zone2alerts"> | 262 | <div data-ng-repeat="a in zone2alerts"> |
263 | <div class="alert alert-dismissible lead" role="alert" ng-class="a.type"><button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span></button> | 263 | <div class="alert alert-dismissible lead" role="alert" data-ng-class="a.type"><button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span></button> |
264 | <span ng-bind-html="a.text"></span> | 264 | <span data-ng-bind-html="a.text"></span> |
265 | </div> | 265 | </div> |
266 | </div> | 266 | </div> |
267 | 267 | ||
@@ -273,7 +273,7 @@ vim: expandtab tabstop=2 | |||
273 | Layers <span class="muted counter">({[layers.length]})</span> | 273 | Layers <span class="muted counter">({[layers.length]})</span> |
274 | <i class="icon-question-sign get-help heading-help" title="Bitbake reads metadata files from modules called 'layers'. Layers allow you to isolate different types of customizations from each other. <a href='http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#understanding-and-creating-layers' target='_blank'>More on layers</a>"></i> | 274 | <i class="icon-question-sign get-help heading-help" title="Bitbake reads metadata files from modules called 'layers'. Layers allow you to isolate different types of customizations from each other. <a href='http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#understanding-and-creating-layers' target='_blank'>More on layers</a>"></i> |
275 | </h3> | 275 | </h3> |
276 | <div class="alert" ng-if="!layers.length"> | 276 | <div class="alert" data-ng-if="!layers.length"> |
277 | <b>You need to add some layers </b> | 277 | <b>You need to add some layers </b> |
278 | <p> | 278 | <p> |
279 | You can: | 279 | You can: |
@@ -285,10 +285,10 @@ vim: expandtab tabstop=2 | |||
285 | Or type a layer name below. | 285 | Or type a layer name below. |
286 | </p> | 286 | </p> |
287 | </div> | 287 | </div> |
288 | <form ng-submit="layerAdd()"> | 288 | <form data-ng-submit="layerAdd()"> |
289 | <div class="input-append"> | 289 | <div class="input-append"> |
290 | <input type="text" class="input-xlarge" id="layer" autocomplete="off" placeholder="Type a layer name" data-minLength="1" ng-model="layerAddName" typeahead="e.name for e in getAutocompleteSuggestions('layers', $viewValue)|filter:$viewValue" typeahead-template-url="suggestion_details" typeahead-on-select="onLayerSelect($item, $model, $label)" typeahead-editable="false" ng-class="{ 'has-error': layerAddName.$invalid }" /> | 290 | <input type="text" class="input-xlarge" id="layer" autocomplete="off" placeholder="Type a layer name" data-minLength="1" data-ng-model="layerAddName" data-typeahead="e.name for e in getAutocompleteSuggestions('layers', $viewValue)|filter:$viewValue" data-typeahead-template-url="suggestion_details" data-typeahead-on-select="onLayerSelect($item, $model, $label)" data-typeahead-editable="false" data-ng-class="{ 'has-error': layerAddName.$invalid }" /> |
291 | <input type="submit" id="add-layer" class="btn" value="Add" ng-disabled="!layerAddName.length"/> | 291 | <input type="submit" id="add-layer" class="btn" value="Add" data-ng-disabled="!layerAddName.length"/> |
292 | </div> | 292 | </div> |
293 | {% csrf_token %} | 293 | {% csrf_token %} |
294 | </form> | 294 | </form> |
@@ -298,9 +298,9 @@ vim: expandtab tabstop=2 | |||
298 | | | 298 | | |
299 | <a href="{% url 'importlayer' project.id %}">Import layer</a></p> | 299 | <a href="{% url 'importlayer' project.id %}">Import layer</a></p> |
300 | <ul class="unstyled configuration-list"> | 300 | <ul class="unstyled configuration-list"> |
301 | <li ng-repeat="l in layers track by l.id" class="animate-repeat"> | 301 | <li data-ng-repeat="l in layers track by l.id" class="animate-repeat"> |
302 | <a href="{[l.layerdetailurl]}" class="layer-info" data-toggle="tooltip" tooltip-placement="right" tooltip="{[l.giturl]} | {[l.branch.name]}">{[l.name]}</a> | 302 | <a href="{[l.layerdetailurl]}" class="layer-info" data-toggle="tooltip" tooltip-placement="right" tooltip="{[l.giturl]} | {[l.branch.name]}">{[l.name]}</a> |
303 | <i class="icon-trash" ng-click="layerDel(l.id)" tooltip="Delete"></i> | 303 | <i class="icon-trash" data-ng-click="layerDel(l.id)" tooltip="Delete"></i> |
304 | </li> | 304 | </li> |
305 | </ul> | 305 | </ul> |
306 | </div> | 306 | </div> |
@@ -312,10 +312,10 @@ vim: expandtab tabstop=2 | |||
312 | Recipes | 312 | Recipes |
313 | <i class="icon-question-sign get-help heading-help" title="What you build, often an image recipe that produces a root file system file. Something like <code>core-image-minimal</code> or <code>core-image-sato</code>"></i> | 313 | <i class="icon-question-sign get-help heading-help" title="What you build, often an image recipe that produces a root file system file. Something like <code>core-image-minimal</code> or <code>core-image-sato</code>"></i> |
314 | </h3> | 314 | </h3> |
315 | <form ng-submit="buildNamedTarget()"> | 315 | <form data-ng-submit="buildNamedTarget()"> |
316 | <div class="input-append"> | 316 | <div class="input-append"> |
317 | <input type="text" class="input-xlarge" placeholder="Type the recipe(s) you want to build" autocomplete="off" data-minLength="1" ng-model="targetName1" typeahead="e.name for e in getAutocompleteSuggestions('targets', $viewValue)|filter:$viewValue" typeahead-template-url="suggestion_details" ng-disabled="!layers.length"> | 317 | <input type="text" class="input-xlarge" placeholder="Type the recipe(s) you want to build" autocomplete="off" data-minLength="1" data-ng-model="targetName1" data-typeahead="e.name for e in getAutocompleteSuggestions('targets', $viewValue)|filter:$viewValue" data-typeahead-template-url="suggestion_details" data-ng-disabled="!layers.length"> |
318 | <button type="submit" class="btn btn-primary" ng-disabled="!targetName1.length"> | 318 | <button type="submit" class="btn btn-primary" data-ng-disabled="!targetName1.length"> |
319 | Build </button> | 319 | Build </button> |
320 | </div> | 320 | </div> |
321 | {% csrf_token %} | 321 | {% csrf_token %} |
@@ -324,18 +324,18 @@ vim: expandtab tabstop=2 | |||
324 | <a href="{% url 'all-targets' project.id %}">View all compatible recipes</a> | 324 | <a href="{% url 'all-targets' project.id %}">View all compatible recipes</a> |
325 | <i class="icon-question-sign get-help" title="View all the recipes you can build with the release selected for this project, which is {[project.release.desc]}"></i> | 325 | <i class="icon-question-sign get-help" title="View all the recipes you can build with the release selected for this project, which is {[project.release.desc]}"></i> |
326 | </p> | 326 | </p> |
327 | <div ng-if="frequenttargets.length"> | 327 | <div data-ng-if="frequenttargets.length"> |
328 | <h4 class="air"> | 328 | <h4 class="air"> |
329 | Most built recipes | 329 | Most built recipes |
330 | </h4> | 330 | </h4> |
331 | <ul class="unstyled configuration-list {[mutedtargets]}"> | 331 | <ul class="unstyled configuration-list {[mutedtargets]}"> |
332 | <li ng-repeat="t in frequenttargets"> | 332 | <li data-ng-repeat="t in frequenttargets"> |
333 | <label class="checkbox"> | 333 | <label class="checkbox"> |
334 | <input type="checkbox" ng-model="mostBuiltTargets[t]" ng-disabled="disableBuildCheckbox(t)" ng-checked="mostBuiltTargets[t] && !disableBuildCheckbox(t)">{[t]} | 334 | <input type="checkbox" data-ng-model="mostBuiltTargets[t]" data-ng-disabled="disableBuildCheckbox(t)" data-ng-checked="mostBuiltTargets[t] && !disableBuildCheckbox(t)">{[t]} |
335 | </label> | 335 | </label> |
336 | </li> | 336 | </li> |
337 | </ul> | 337 | </ul> |
338 | <button class="btn btn-large btn-primary" ng-disabled="enableBuildSelectedTargets()" ng-click="buildSelectedTargets()">Build selected recipes</button> | 338 | <button class="btn btn-large btn-primary" data-ng-disabled="enableBuildSelectedTargets()" data-ng-click="buildSelectedTargets()">Build selected recipes</button> |
339 | </div> | 339 | </div> |
340 | </div> | 340 | </div> |
341 | 341 | ||
@@ -347,17 +347,17 @@ vim: expandtab tabstop=2 | |||
347 | </h3> | 347 | </h3> |
348 | <p class="lead" id="select-machine-opposite"> | 348 | <p class="lead" id="select-machine-opposite"> |
349 | <span>{[machine.name]}</span> | 349 | <span>{[machine.name]}</span> |
350 | <i id="change-machine" class="icon-pencil" ng-click="toggle('#select-machine')"></i> | 350 | <i id="change-machine" class="icon-pencil" data-ng-click="toggle('#select-machine')"></i> |
351 | </p> | 351 | </p> |
352 | <div id="select-machine" style="display: none"> | 352 | <div id="select-machine" style="display: none"> |
353 | <div class="alert alert-info"> | 353 | <div class="alert alert-info"> |
354 | <strong>Machine changes have a big impact on build outcome.</strong> | 354 | <strong>Machine changes have a big impact on build outcome.</strong> |
355 | You cannot really compare the builds for the new machine with the previous ones. | 355 | You cannot really compare the builds for the new machine with the previous ones. |
356 | </div> | 356 | </div> |
357 | <form ng-submit="editProjectSettings('#select-machine')" class="input-append"> | 357 | <form data-ng-submit="editProjectSettings('#select-machine')" class="input-append"> |
358 | <input type="text" id="machine" autocomplete="off" ng-model="machineName" value="{[machine.name]}" typeahead="m.name for m in getAutocompleteSuggestions('machines', $viewValue)" typeahead-template-url="suggestion_details" /> | 358 | <input type="text" id="machine" autocomplete="off" data-ng-model="machineName" value="{[machine.name]}" data-typeahead="m.name for m in getAutocompleteSuggestions('machines', $viewValue)" data-typeahead-template-url="suggestion_details" /> |
359 | <input type="submit" id="apply-change-machine" class="btn" type="button" ng-disabled="machineName == machine.name || machineName.length == 0" value="Save"></input> | 359 | <input type="submit" id="apply-change-machine" class="btn" data-ng-disabled="machineName == machine.name || machineName.length == 0" value="Save"/> |
360 | <input type="reset" id="cancel-machine" class="btn btn-link" ng-click="toggle('#select-machine')" value="Cancel"></input> | 360 | <input type="reset" id="cancel-machine" class="btn btn-link" data-ng-click="toggle('#select-machine')" value="Cancel"/> |
361 | {% csrf_token %} | 361 | {% csrf_token %} |
362 | </form> | 362 | </form> |
363 | <p> | 363 | <p> |
@@ -376,9 +376,9 @@ vim: expandtab tabstop=2 | |||
376 | <h2>Project details</h2> | 376 | <h2>Project details</h2> |
377 | 377 | ||
378 | <!-- alerts section 3 --> | 378 | <!-- alerts section 3 --> |
379 | <div ng-repeat="a in zone3alerts"> | 379 | <div data-ng-repeat="a in zone3alerts"> |
380 | <div class="alert alert-dismissible lead" role="alert" ng-class="a.type"><button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span></button> | 380 | <div class="alert alert-dismissible lead" role="alert" data-ng-class="a.type"><button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span></button> |
381 | <span ng-bind-html="a.text"></span> | 381 | <span data-ng-bind-html="a.text"></span> |
382 | </div> | 382 | </div> |
383 | </div> | 383 | </div> |
384 | 384 | ||
@@ -387,31 +387,31 @@ vim: expandtab tabstop=2 | |||
387 | <h3>Project name</h3> | 387 | <h3>Project name</h3> |
388 | <p class="lead" id="change-project-name-opposite"> | 388 | <p class="lead" id="change-project-name-opposite"> |
389 | <span >{[project.name]}</span> | 389 | <span >{[project.name]}</span> |
390 | <i class="icon-pencil" ng-click="toggle('#change-project-name')" ></i> | 390 | <i class="icon-pencil" data-ng-click="toggle('#change-project-name')" ></i> |
391 | </p> | 391 | </p> |
392 | <div id="change-project-name" style="display:none;"> | 392 | <div id="change-project-name" style="display:none;"> |
393 | <form ng-submit="editProjectSettings('#change-project-name')" class="input-append"> | 393 | <form data-ng-submit="editProjectSettings('#change-project-name')" class="input-append"> |
394 | <input type="text" class="input-xlarge" id="type-project-name" ng-model="projectName" value="{[project.name]}"> | 394 | <input type="text" class="input-xlarge" id="type-project-name" data-ng-model="projectName" value="{[project.name]}"> |
395 | <input type="submit" class="btn" value="Save" ng-disabled="project.name == projectName"/> | 395 | <input type="submit" class="btn" value="Save" data-ng-disabled="project.name == projectName"/> |
396 | <input type="reset" class="btn btn-link" value="Cancel" ng-click="toggle('#change-project-name')"> | 396 | <input type="reset" class="btn btn-link" value="Cancel" data-ng-click="toggle('#change-project-name')"> |
397 | </form> | 397 | </form> |
398 | </div> | 398 | </div> |
399 | 399 | ||
400 | <h3 ng-if="releases.length > 1"> | 400 | <h3 data-ng-if="releases.length > 1"> |
401 | Release | 401 | Release |
402 | <i class="icon-question-sign get-help heading-help" title="The version of the build system you want to use"></i> | 402 | <i class="icon-question-sign get-help heading-help" title="The version of the build system you want to use"></i> |
403 | </h3> | 403 | </h3> |
404 | <p ng-if="releases.length > 1" class="lead" id="change-project-version-opposite"> | 404 | <p data-ng-if="releases.length > 1" class="lead" id="change-project-version-opposite"> |
405 | <span id="project-version">{[project.release.desc]}</span> | 405 | <span id="project-version">{[project.release.desc]}</span> |
406 | <i id="change-version" class="icon-pencil" ng-click="toggle('#change-project-version')" ></i> | 406 | <i id="change-version" class="icon-pencil" data-ng-click="toggle('#change-project-version')" ></i> |
407 | </p> | 407 | </p> |
408 | <div class="div-inline" id="change-project-version" style="display:none;"> | 408 | <div class="div-inline" id="change-project-version" style="display:none;"> |
409 | <form ng-submit="testProjectSettingsChange('#change-project-version')" class="input-append"> | 409 | <form data-ng-submit="testProjectSettingsChange('#change-project-version')" class="input-append"> |
410 | <select id="select-version" ng-model="projectVersion"> | 410 | <select id="select-version" data-ng-model="projectVersion"> |
411 | <option ng-repeat="r in releases" value="{[r.id]}" ng-selected="r.id == project.release.id">{[r.description]}</option> | 411 | <option data-ng-repeat="r in releases" value="{[r.id]}" data-ng-selected="r.id == project.release.id">{[r.description]}</option> |
412 | </select> | 412 | </select> |
413 | <input type="submit" class="btn" style="margin-left:5px;" value="Save" ng-disabled="project.release.id == projectVersion"/> | 413 | <input type="submit" class="btn" style="margin-left:5px;" value="Save" data-ng-disabled="project.release.id == projectVersion"/> |
414 | <input type="reset" class="btn btn-link" value="Cancel" ng-click="toggle('#change-project-version')"/> | 414 | <input type="reset" class="btn btn-link" value="Cancel" data-ng-click="toggle('#change-project-version')"/> |
415 | 415 | ||
416 | </form> | 416 | </form> |
417 | </div> | 417 | </div> |
@@ -431,7 +431,7 @@ angular.element(document).ready(function() { | |||
431 | scope.urls = {}; | 431 | scope.urls = {}; |
432 | scope.urls.xhr_build = "{% url 'xhr_projectbuild' project.id %}"; | 432 | scope.urls.xhr_build = "{% url 'xhr_projectbuild' project.id %}"; |
433 | scope.urls.xhr_edit = "{% url 'xhr_projectedit' project.id %}"; | 433 | scope.urls.xhr_edit = "{% url 'xhr_projectedit' project.id %}"; |
434 | scope.urls.xhr_datatypeahead = "{% url 'xhr_datatypeahead' %}"; | 434 | scope.urls.xhr_datatypeahead = "{% url 'xhr_datatypeahead' project.id %}"; |
435 | scope.urls.layers = "{% url 'all-layers' project.id %}"; | 435 | scope.urls.layers = "{% url 'all-layers' project.id %}"; |
436 | scope.urls.targets = "{% url 'all-targets' project.id %}"; | 436 | scope.urls.targets = "{% url 'all-targets' project.id %}"; |
437 | scope.urls.importlayer = "{% url 'importlayer' project.id %}"; | 437 | scope.urls.importlayer = "{% url 'importlayer' project.id %}"; |
diff --git a/bitbake/lib/toaster/toastergui/templates/recipe.html b/bitbake/lib/toaster/toastergui/templates/recipe.html index 6eba9b6f0b..a0fe6d71d3 100644 --- a/bitbake/lib/toaster/toastergui/templates/recipe.html +++ b/bitbake/lib/toaster/toastergui/templates/recipe.html | |||
@@ -45,7 +45,7 @@ | |||
45 | </li> | 45 | </li> |
46 | </ul> | 46 | </ul> |
47 | <div class="tab-content"> | 47 | <div class="tab-content"> |
48 | <div class="tab-pane {{tab_states.1}}" id="information" name="information"> | 48 | <div class="tab-pane {{tab_states.1}}" id="information"> |
49 | <dl class="dl-horizontal"> | 49 | <dl class="dl-horizontal"> |
50 | <dt> | 50 | <dt> |
51 | <i class="icon-question-sign get-help" title="The name of the layer providing the recipe"></i> | 51 | <i class="icon-question-sign get-help" title="The name of the layer providing the recipe"></i> |
@@ -144,7 +144,7 @@ | |||
144 | </table> | 144 | </table> |
145 | {% endif %} | 145 | {% endif %} |
146 | </div> | 146 | </div> |
147 | <div class="tab-pane {{tab_states.3}}" id="dependencies" name="dependencies"> | 147 | <div class="tab-pane {{tab_states.3}}" id="dependencies"> |
148 | 148 | ||
149 | {% if not object.r_dependencies_recipe.all %} | 149 | {% if not object.r_dependencies_recipe.all %} |
150 | <div class="alert alert-info"> | 150 | <div class="alert alert-info"> |
@@ -176,7 +176,7 @@ | |||
176 | {% endif %} | 176 | {% endif %} |
177 | 177 | ||
178 | </div> | 178 | </div> |
179 | <div class="tab-pane {{tab_states.4}}" id="brought-in-by" name="brought-in-by"> | 179 | <div class="tab-pane {{tab_states.4}}" id="brought-in-by"> |
180 | 180 | ||
181 | {% if not object.r_dependencies_depends.all %} | 181 | {% if not object.r_dependencies_depends.all %} |
182 | <div class="alert alert-info"> | 182 | <div class="alert alert-info"> |
diff --git a/bitbake/lib/toaster/toastergui/templates/targets.html b/bitbake/lib/toaster/toastergui/templates/targets.html index dc2cef6882..224288ea35 100644 --- a/bitbake/lib/toaster/toastergui/templates/targets.html +++ b/bitbake/lib/toaster/toastergui/templates/targets.html | |||
@@ -97,14 +97,14 @@ | |||
97 | </a> | 97 | </a> |
98 | {% endif %} | 98 | {% endif %} |
99 | </td> | 99 | </td> |
100 | <td class="add-layer" value="{{o.pk}}"> | 100 | <td class="add-layer" data-value="{{o.pk}}"> |
101 | <a href="{% url 'project' project.id %}#/targetbuild={{o.name}}" class="btn btn-block layer-exists-{{o.preffered_layerversion.pk}}" style="display:none; margin-top: 5px;" > | 101 | <a href="{% url 'project' project.id %}#/targetbuild={{o.name}}" class="btn btn-block layer-exists-{{o.preffered_layerversion.pk}}" style="display:none; margin-top: 5px;" > |
102 | Build recipe | 102 | Build recipe |
103 | </a> | 103 | </a> |
104 | <button class="btn btn-block layerbtn layer-add-{{o.preffered_layerversion.pk}}" data-layer='{ "id": {{o.preffered_layerversion.pk}}, "name": "{{o.preffered_layerversion.layer.name}}", "url": "{%url 'layerdetails' project.id o.preffered_layerversion.pk%}"}' data-directive="add"> | 104 | <button class="btn btn-block layerbtn layer-add-{{o.preffered_layerversion.pk}}" data-layer='{ "id": {{o.preffered_layerversion.pk}}, "name": "{{o.preffered_layerversion.layer.name}}", "url": "{%url 'layerdetails' project.id o.preffered_layerversion.pk%}"}' data-directive="add"> |
105 | <i class="icon-plus"></i> | 105 | <i class="icon-plus"></i> |
106 | Add layer | 106 | Add layer |
107 | <i title="" class="icon-question-sign get-help" data-original-title="To build this target, you must first add the {{o.preffered_layerversion.layer.name}} layer to your project"></i></i> | 107 | <i title="" class="icon-question-sign get-help" data-original-title="To build this target, you must first add the {{o.preffered_layerversion.layer.name}} layer to your project"></i> |
108 | </button> | 108 | </button> |
109 | </td> | 109 | </td> |
110 | </tr> | 110 | </tr> |
diff --git a/bitbake/lib/toaster/toastergui/templates/task.html b/bitbake/lib/toaster/toastergui/templates/task.html index 907c621834..6e06ddfa31 100644 --- a/bitbake/lib/toaster/toastergui/templates/task.html +++ b/bitbake/lib/toaster/toastergui/templates/task.html | |||
@@ -22,19 +22,20 @@ | |||
22 | </h2> | 22 | </h2> |
23 | {%if task.task_executed %} | 23 | {%if task.task_executed %} |
24 | {# executed tasks outcome #} | 24 | {# executed tasks outcome #} |
25 | <dl class="dl-horizontal"> | 25 | {% if task.logfile %} |
26 | {% if task.logfile %} | 26 | {% if MANAGED and build.project %} |
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> | 27 | <a class="btn btn-large" href="{% url 'build_artifact' build.id "tasklogfile" task.pk %}" style="margin:15px;">Download task log</a> |
29 | {% else %} | 28 | {% else %} |
29 | <dl class="dl-horizontal"> | ||
30 | <dt> | 30 | <dt> |
31 | <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 |
32 | </dt> | 32 | </dt> |
33 | <dd> | 33 | <dd> |
34 | <code>{{task.logfile}}</code> | 34 | <code>{{task.logfile}}</code> |
35 | </dd> | 35 | </dd> |
36 | {% endif %} | 36 | </dl> |
37 | {% endif %} | 37 | {% endif %} |
38 | {% endif %} | ||
38 | {# show stack trace for failed task #} | 39 | {# show stack trace for failed task #} |
39 | {% if task.outcome == task.OUTCOME_FAILED and log_head %} | 40 | {% if task.outcome == task.OUTCOME_FAILED and log_head %} |
40 | <h3>Python stack trace</h3> | 41 | <h3>Python stack trace</h3> |
@@ -45,7 +46,6 @@ | |||
45 | <code>{{log_body}}</code><br><a id="full-trace-hide" class="btn btn-mini collapsed" style="font-family:Helvetica Neue" data-target="#fulltrace" data-toggle="collapse">Collapse stack trace<i class="icon-caret-up"></i></a></div></pre> | 46 | <code>{{log_body}}</code><br><a id="full-trace-hide" class="btn btn-mini collapsed" style="font-family:Helvetica Neue" data-target="#fulltrace" data-toggle="collapse">Collapse stack trace<i class="icon-caret-up"></i></a></div></pre> |
46 | </div> | 47 | </div> |
47 | {% endif %} | 48 | {% endif %} |
48 | </dl> | ||
49 | {% else %} | 49 | {% else %} |
50 | {# not executed tasks outcome #} | 50 | {# not executed tasks outcome #} |
51 | {% if task.outcome == task.OUTCOME_PREBUILT %} | 51 | {% if task.outcome == task.OUTCOME_PREBUILT %} |
@@ -155,15 +155,16 @@ | |||
155 | 155 | ||
156 | {# Execution section #} | 156 | {# Execution section #} |
157 | {% if task.task_executed %} | 157 | {% if task.task_executed %} |
158 | <h2> | 158 | <h2> |
159 | Executed | 159 | Executed |
160 | <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> | 160 | <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> |
161 | {% else %} | 161 | {% else %} |
162 | <h2 class="muted"> | 162 | <h2 class="muted"> |
163 | Not Executed | 163 | Not Executed |
164 | <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> | 164 | <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> |
165 | {% endif %} | 165 | {% endif %} |
166 | </h2> | 166 | </h2> |
167 | |||
167 | <dl class="dl-horizontal"> | 168 | <dl class="dl-horizontal"> |
168 | <dt> | 169 | <dt> |
169 | <i class="icon-question-sign get-help" title="To make builds more efficient, the build system detects changes in the 'inputs' to a given task by creating a 'task signature'. If the signature changes, the build system assumes the inputs have changed and the task needs to be rerun"></i> | 170 | <i class="icon-question-sign get-help" title="To make builds more efficient, the build system detects changes in the 'inputs' to a given task by creating a 'task signature'. If the signature changes, the build system assumes the inputs have changed and the task needs to be rerun"></i> |
@@ -172,12 +173,12 @@ | |||
172 | <dd> | 173 | <dd> |
173 | {{task.sstate_checksum}} | 174 | {{task.sstate_checksum}} |
174 | </dd> | 175 | </dd> |
176 | </dl> | ||
175 | {% if task.sstate_result != task.SSTATE_NA %} | 177 | {% if task.sstate_result != task.SSTATE_NA %} |
176 | </dl> | ||
177 | <div class="alert alert-info">Attempting to restore output from sstate cache | 178 | <div class="alert alert-info">Attempting to restore output from sstate cache |
178 | <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 the build system finds the task output, it will reuse it instead of building it from scratch by running the real task. Reusing the task output makes the build faster"></i> | 179 | <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 the build system finds the task output, it will reuse it instead of building it from scratch by running the real task. Reusing the task output makes the build faster"></i> |
179 | </div> | 180 | </div> |
180 | <dl class="dl-horizontal"> | 181 | <dl class="dl-horizontal"> |
181 | <dt> | 182 | <dt> |
182 | <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> | 183 | <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> |
183 | File searched for | 184 | File searched for |
@@ -274,27 +275,27 @@ | |||
274 | <h2 class="details">Performance</h2> | 275 | <h2 class="details">Performance</h2> |
275 | {% endif %} | 276 | {% endif %} |
276 | <dl class="dl-horizontal"> | 277 | <dl class="dl-horizontal"> |
277 | {% if task.elapsed_time %} | 278 | {% if task.elapsed_time %} |
278 | <dt> | 279 | <dt> |
279 | <i class="icon-question-sign get-help" title="How long it took the task to finish in seconds"></i> | 280 | <i class="icon-question-sign get-help" title="How long it took the task to finish in seconds"></i> |
280 | Time (secs) | 281 | Time (secs) |
281 | </dt> | 282 | </dt> |
282 | <dd>{{task.elapsed_time|format_none_and_zero|floatformat:2}}</dd> | 283 | <dd>{{task.elapsed_time|format_none_and_zero|floatformat:2}}</dd> |
283 | {% endif %} | 284 | {% endif %} |
284 | {% if task.cpu_usage > 0 %} | 285 | {% if task.cpu_usage > 0 %} |
285 | <dt> | 286 | <dt> |
286 | <i class="icon-question-sign get-help" title="The percentage of task CPU utilization"></i> | 287 | <i class="icon-question-sign get-help" title="The percentage of task CPU utilization"></i> |
287 | CPU usage | 288 | CPU usage |
288 | </dt> | 289 | </dt> |
289 | <dd>{{task.cpu_usage|format_none_and_zero|floatformat:2}}%</dd> | 290 | <dd>{{task.cpu_usage|format_none_and_zero|floatformat:2}}%</dd> |
290 | {% endif %} | 291 | {% endif %} |
291 | {% if task.disk_io > 0 %} | 292 | {% if task.disk_io > 0 %} |
292 | <dt> | 293 | <dt> |
293 | <i class="icon-question-sign get-help" title="Number of miliseconds the task spent doing disk input and output"></i> | 294 | <i class="icon-question-sign get-help" title="Number of miliseconds the task spent doing disk input and output"></i> |
294 | Disk I/O (ms) | 295 | Disk I/O (ms) |
295 | </dt> | 296 | </dt> |
296 | <dd>{{task.disk_io|format_none_and_zero}}</dd> | 297 | <dd>{{task.disk_io|format_none_and_zero}}</dd> |
297 | {% endif %} | 298 | {% endif %} |
298 | </dl> | 299 | </dl> |
299 | 300 | ||
300 | </div> | 301 | </div> |