diff options
Diffstat (limited to 'bitbake/lib/toaster/toastergui/templates/project.html')
-rw-r--r-- | bitbake/lib/toaster/toastergui/templates/project.html | 62 |
1 files changed, 45 insertions, 17 deletions
diff --git a/bitbake/lib/toaster/toastergui/templates/project.html b/bitbake/lib/toaster/toastergui/templates/project.html index 6a812834d3..a8f2d6ad4f 100644 --- a/bitbake/lib/toaster/toastergui/templates/project.html +++ b/bitbake/lib/toaster/toastergui/templates/project.html | |||
@@ -9,6 +9,7 @@ vim: expandtab tabstop=2 | |||
9 | 9 | ||
10 | {% block projectinfomain %} | 10 | {% block projectinfomain %} |
11 | <script src="{% static "js/angular.min.js" %}"></script> | 11 | <script src="{% static "js/angular.min.js" %}"></script> |
12 | <script src="{% static "js/angular-animate.min.js" %}"></script> | ||
12 | <script src="{% static "js/angular-cookies.min.js" %}"></script> | 13 | <script src="{% static "js/angular-cookies.min.js" %}"></script> |
13 | <script src="{% static "js/ui-bootstrap-tpls-0.11.0.js" %}"></script> | 14 | <script src="{% static "js/ui-bootstrap-tpls-0.11.0.js" %}"></script> |
14 | 15 | ||
@@ -105,19 +106,21 @@ vim: expandtab tabstop=2 | |||
105 | </form> | 106 | </form> |
106 | </div> | 107 | </div> |
107 | 108 | ||
109 | <a id="buildslist"></a> | ||
108 | <h2 class="air" ng-if="builds.length">Latest builds</h2> | 110 | <h2 class="air" ng-if="builds.length">Latest builds</h2> |
109 | 111 | <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]"> | |
110 | <div class="alert" ng-repeat="b in builds" 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]" > | ||
111 | <div class="row-fluid"> | 112 | <div class="row-fluid"> |
112 | <switch ng-switch="b.status"> | 113 | <switch ng-switch="b.status"> |
114 | |||
113 | <case ng-switch-when="failed"> | 115 | <case ng-switch-when="failed"> |
114 | <div class="lead span3"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div> | 116 | <div class="lead span3"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span></div> |
115 | <div class="row-fluid"> | 117 | <div class="row-fluid"> |
116 | <div class="air well" ng-repeat="e in b.errors"> | 118 | <div class="air well" ng-repeat="e in b.errors"> |
117 | {[e.type]}: <pre>{[e.msg]}</pre> | 119 | Error type {[e.type]}: <pre>{[e.msg]}</pre> |
118 | </div> | 120 | </div> |
119 | </div> | 121 | </div> |
120 | </case> | 122 | </case> |
123 | |||
121 | <case ng-switch-when="queued"> | 124 | <case ng-switch-when="queued"> |
122 | <div class="lead span5"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div> | 125 | <div class="lead span5"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div> |
123 | <div class="span4 lead" >Build queued | 126 | <div class="span4 lead" >Build queued |
@@ -125,6 +128,7 @@ vim: expandtab tabstop=2 | |||
125 | </div> | 128 | </div> |
126 | <button class="btn pull-right btn-info" ng-click="buildCancel(b.id)">Cancel</button> | 129 | <button class="btn pull-right btn-info" ng-click="buildCancel(b.id)">Cancel</button> |
127 | </case> | 130 | </case> |
131 | |||
128 | <case ng-switch-when="created"> | 132 | <case ng-switch-when="created"> |
129 | <div class="lead span3"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div> | 133 | <div class="lead span3"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div> |
130 | <div class="span6" > | 134 | <div class="span6" > |
@@ -132,35 +136,56 @@ vim: expandtab tabstop=2 | |||
132 | </div> | 136 | </div> |
133 | <button class="btn pull-right btn-info" ng-click="buildCancel(b.id)">Cancel</button> | 137 | <button class="btn pull-right btn-info" ng-click="buildCancel(b.id)">Cancel</button> |
134 | </case> | 138 | </case> |
139 | |||
135 | <case ng-switch-when="deleted"> | 140 | <case ng-switch-when="deleted"> |
136 | <div class="lead span3"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div> | 141 | <div class="lead span3"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div> |
137 | <div class="span6" id="{[b.id]}-deleted" > | 142 | <div class="span6" id="{[b.id]}-deleted" > |
138 | <span class="lead">Build deleted</span> | 143 | <span class="lead">Build deleted</span> |
139 | </div> | 144 | </div> |
140 | <button class="btn pull-right btn-info" ng-click="builds.splice(builds.indexOf(b), 1)">Close</button> | 145 | <button class="btn pull-right btn-info" ng-click="buildDelete(b.id)">Close</button> |
141 | </case> | 146 | </case> |
147 | |||
148 | |||
142 | <case ng-switch-when="in progress"> | 149 | <case ng-switch-when="in progress"> |
143 | <div class="lead span3"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div> | 150 | <switch ng-switch="b.build.length"> |
144 | <div class="span4" > | 151 | <case ng-switch-when="0"> |
145 | <div class="progress" style="margin-top:5px;" data-toggle="tooltip" tooltip="{[b.build[0].completeper]}% of tasks complete"> | 152 | <div class="lead span5"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div> |
146 | <div style="width: {[b.build[0].completeper]}%;" class="bar"></div> | 153 | <div class="span4 lead"> |
154 | Checking out layers | ||
147 | </div> | 155 | </div> |
148 | </div> | 156 | </case> |
149 | <div class="lead pull-right">ETA: at {[b.build[0].eta|date:"shortDate"]}</div> | 157 | <case ng-switch-default=""> |
158 | <div class="lead span3"> <span ng-repeat="t in b.targets" ng-include src="'target_display'"></span> </div> | ||
159 | <div class="span4 offset1" > | ||
160 | <div class="progress" style="margin-top:5px;" data-toggle="tooltip" tooltip="{[b.build[0].completeper]}% of tasks complete"> | ||
161 | <div style="width: {[b.build[0].completeper]}%;" class="bar"></div> | ||
162 | </div> | ||
163 | </div> | ||
164 | <div class="text-right lead">ETA: {[b.build[0].eta|date:"HH:mm:ss"]}</div> | ||
165 | </case> | ||
150 | </case> | 166 | </case> |
167 | |||
168 | |||
151 | <case ng-switch-when="completed"> | 169 | <case ng-switch-when="completed"> |
152 | <div class="lead span3"><a href="{[b.build[0].build_page_url]}"><span ng-repeat="t in b.targets" ng-include src="'target_display'"></span></a></div> | 170 | <div class="lead span3"><a href="{[b.build[0].build_page_url]}"><span ng-repeat="t in b.targets" ng-include src="'target_display'"></span></a></div> |
153 | <div class="span2 lead"> | 171 | <div class="span2 lead"> |
154 | {[b.build[0].completed_on|date:'dd/MM/yy HH:mm']} | 172 | <ngif ng-if="b.build[0].completed_on - todaydate > 0"> |
173 | {[b.build[0].completed_on|date:'HH:mm']} | ||
174 | </ngif> | ||
175 | <ngif ng-if="b.build[0].completed_on - todaydate < 0"> | ||
176 | {[b.build[0].completed_on|date:'dd/MM/yy HH:mm']} | ||
177 | </ngif> | ||
155 | </div> | 178 | </div> |
156 | <div class="span2"><span><a href="{[b.build[0].build_page_url]}#errors" class="lead error" ng-if="b.build[0].errors">{[b.build[0].errors]}</a></span></div> | 179 | <div class="span2"><span><a href="{[b.build[0].build_page_url]}#errors" class="lead error" ng-if="b.build[0].errors">{[b.build[0].errors]}</a></span></div> |
157 | <div class="span2"><span><a href="{[b.build[0].build_page_url]}#warnings" class="lead warning" ng-if="b.build[0].warnings">{[b.build[0].warnings]}</a></span></div> | 180 | <div class="span2"><span><a href="{[b.build[0].build_page_url]}#warnings" class="lead warning" ng-if="b.build[0].warnings">{[b.build[0].warnings]}</a></span></div> |
158 | <div> <span class="lead">Build time: {[b.build[0].build_time|timediff]}</span> | 181 | <div> <span class="lead">Build time: <a href="{[b.build[0].build_time_page_url]}">{[b.build[0].build_time|timediff]}</a></span> |
159 | <button class="btn pull-right" ng-class="{'Succeeded': 'btn-success', 'Failed': 'btn-danger'}[b.build[0].status]" | 182 | <button class="btn pull-right" ng-class="{'Succeeded': 'btn-success', 'Failed': 'btn-danger'}[b.build[0].status]" |
160 | ng-click="targetExistingBuild(b.targets)">Run again</button> | 183 | ng-click="targetExistingBuild(b.targets)">Run again</button> |
161 | 184 | ||
162 | </div> | 185 | </div> |
163 | </case> | 186 | </case> |
187 | |||
188 | |||
164 | <case ng-switch-default=""> | 189 | <case ng-switch-default=""> |
165 | <div>FIXME!</div> | 190 | <div>FIXME!</div> |
166 | </case> | 191 | </case> |
@@ -206,7 +231,7 @@ vim: expandtab tabstop=2 | |||
206 | </form> | 231 | </form> |
207 | <p><a href="{% url 'layers' %}">View all layers</a> | <a href="{% url 'importlayer' %}">Import layer</a></p> | 232 | <p><a href="{% url 'layers' %}">View all layers</a> | <a href="{% url 'importlayer' %}">Import layer</a></p> |
208 | <ul class="unstyled configuration-list"> | 233 | <ul class="unstyled configuration-list"> |
209 | <li ng-repeat="l in layers"> | 234 | <li ng-repeat="l in layers track by l.id" class="animate-repeat"> |
210 | <a href="{[l.layerdetailurl]}" target="_#" class="layer-info" data-toggle="tooltip" tooltip="{[l.branch.layersource]} | {[l.branch.name]}">{[l.name]} </a> | 235 | <a href="{[l.layerdetailurl]}" target="_#" class="layer-info" data-toggle="tooltip" tooltip="{[l.branch.layersource]} | {[l.branch.name]}">{[l.name]} </a> |
211 | <i class="icon-trash" ng-click="layerDel(l.id)" tooltip="Delete"></i> | 236 | <i class="icon-trash" ng-click="layerDel(l.id)" tooltip="Delete"></i> |
212 | </li> | 237 | </li> |
@@ -221,8 +246,8 @@ vim: expandtab tabstop=2 | |||
221 | <i class="icon-question-sign get-help heading-help" title="What you build, often a recipe producing a root file system file (an image). Something like <code>core-image-minimal</code> or <code>core-image-sato</code>"></i> | 246 | <i class="icon-question-sign get-help heading-help" title="What you build, often a recipe producing a root file system file (an image). Something like <code>core-image-minimal</code> or <code>core-image-sato</code>"></i> |
222 | </h3> | 247 | </h3> |
223 | <form ng-submit="targetNamedBuild()" class="input-append"> | 248 | <form ng-submit="targetNamedBuild()" class="input-append"> |
224 | <input type="text" class="input-xlarge" placeholder="Type the target(s) you want to build" autocomplete="off" data-minLength="1" ng-model="targetName" typeahead="e.name for e in getSuggestions('targets', $viewValue)|filter:$viewValue" typeahead-template-url="suggestion_details" ng-disabled="!layers.length"> | 249 | <input type="text" class="input-xlarge" placeholder="Type the target(s) you want to build" autocomplete="off" data-minLength="1" ng-model="targetName1" typeahead="e.name for e in getSuggestions('targets', $viewValue)|filter:$viewValue" typeahead-template-url="suggestion_details" ng-disabled="!layers.length"> |
225 | <button type="submit" id="build-button" class="btn btn-primary" ng-disabled="!targetName.length"> | 250 | <button type="submit" id="build-button" class="btn btn-primary" ng-disabled="!targetName1.length"> |
226 | Build </button> | 251 | Build </button> |
227 | {% csrf_token %} | 252 | {% csrf_token %} |
228 | </form> | 253 | </form> |
@@ -343,13 +368,16 @@ angular.element(document).ready(function() { | |||
343 | scope.machine = {{machine|safe}}; | 368 | scope.machine = {{machine|safe}}; |
344 | scope.releases = {{releases|safe}}; | 369 | scope.releases = {{releases|safe}}; |
345 | 370 | ||
371 | var now = (new Date()).getTime(); | ||
372 | scope.todaydate = now - (now % 86400000); | ||
373 | |||
346 | scope.zone1alerts = []; | 374 | scope.zone1alerts = []; |
347 | scope.zone2alerts = []; | 375 | scope.zone2alerts = []; |
348 | scope.zone3alerts = []; | 376 | scope.zone3alerts = []; |
349 | 377 | ||
350 | scope.mostBuiltTargets = {}; | 378 | scope.mostBuiltTargets = {}; |
351 | 379 | ||
352 | scope.executeCommands(); | 380 | scope.updateDisplayWithCommands(); |
353 | scope.validateData(); | 381 | scope.validateData(); |
354 | 382 | ||
355 | scope.$digest(); | 383 | scope.$digest(); |