diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2012-12-28 20:02:07 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2012-12-28 20:02:07 +0100 |
commit | f39b6c813dfa8ad97de4f8a35aaf21ee1408b6d4 (patch) | |
tree | e10e366d815f6115dca53742c92342c36f8178fb /src/main/webapp | |
parent | 9e8f4821c1e708ccd868866314111b6f8cc9bc6f (diff) | |
download | esper-testing-f39b6c813dfa8ad97de4f8a35aaf21ee1408b6d4.tar.gz esper-testing-f39b6c813dfa8ad97de4f8a35aaf21ee1408b6d4.tar.bz2 esper-testing-f39b6c813dfa8ad97de4f8a35aaf21ee1408b6d4.tar.xz esper-testing-f39b6c813dfa8ad97de4f8a35aaf21ee1408b6d4.zip |
o A custom pageable table with builds.
Diffstat (limited to 'src/main/webapp')
-rw-r--r-- | src/main/webapp/apps/personApp/person.html | 83 | ||||
-rw-r--r-- | src/main/webapp/apps/personApp/personApp.js | 45 |
2 files changed, 105 insertions, 23 deletions
diff --git a/src/main/webapp/apps/personApp/person.html b/src/main/webapp/apps/personApp/person.html index 5a8395e..d9524ae 100644 --- a/src/main/webapp/apps/personApp/person.html +++ b/src/main/webapp/apps/personApp/person.html @@ -4,32 +4,71 @@ <h1>{{person.name}}</h1> </div> - <h3>Badges</h3> + <ul class="nav nav-tabs"> + <li ng-class="{active: mode == 'overview'}"><a ng-click="setMode('overview')">Overview</a></li> + <li ng-class="{active: mode == 'builds'}"><a ng-click="setMode('builds')">Builds</a></li> + </ul> - <p ng-repeat="badge in person.badges"> - <span class="badge-level-{{badge.level}} badge">{{badge.name}}</span><span ng-show="badge.count > 1"> x {{badge.count}}</span> - </p> + <div id="overview" ng-show="mode == 'overview'"> + <h3>Badges</h3> - <div ng-repeat="badge in person.badgesInProgress"> - <div class="progress"> - <div class="bar" style="width: {{badge.progress / badge.goal * 100}}%;">{{badge.name}}</div> + <p ng-repeat="badge in person.badges"> + <span class="badge-level-{{badge.level}} badge">{{badge.name}}</span><span ng-show="badge.count > 1"> x {{badge.count}}</span> + </p> + + <div ng-repeat="badge in person.badgesInProgress"> + <div class="progress"> + <div class="bar" style="width: {{badge.progress / badge.goal * 100}}%;">{{badge.name}}</div> + </div> </div> + + <h3>Recent builds</h3> + <table class="table"> + <thead> + <tr> + <th>Date</th> + <th>Success</th> + </tr> + </thead> + <tbody> + <tr ng-repeat="build in recentBuilds" class="{{{true: 'success', false: 'error'}[build.success]}}"> + <td>{{build.date | date:'medium'}}</td> + <td>{{build.success}}</td> + </tr> + </tbody> + </table> </div> - <h3>Recent builds</h3> - <table class="table"> - <thead> - <tr> - <th>Date</th> - <th>Success</th> - </tr> - </thead> - <tbody> - <tr ng-repeat="build in builds" class="{{{true: 'success', false: 'error'}[build.success]}}"> - <td>{{build.date | date:'medium'}}</td> - <td>{{build.success}}</td> - </tr> - </tbody> - </table> + <div id="builds" ng-show="mode == 'builds'"> + <h3>Builds</h3> + <table class="table .table-bordered"> + <thead> + <tr> + <th>Date</th> + <th>Success</th> + </tr> + </thead> + <tbody> + <tr ng-repeat="build in builds.rows" class="{{{true: 'success', false: 'error'}[build.success]}}"> + <td>{{build.date | date:'medium'}}</td> + <td>{{build.success}}</td> + </tr> + </tbody> + <tfoot> + <tr> + <td colspan="2"> + <ul class="pager"> + <li class="previous" ng-class="{disabled: builds.startIndex == 0}"> + <a ng-click="builds.prev()">← Older</a> + </li> + <li class="next"> + <a ng-click="builds.next()">Newer →</a> + </li> + </ul> + </td> + </tr> + </tfoot> + </table> + </div> </div> diff --git a/src/main/webapp/apps/personApp/personApp.js b/src/main/webapp/apps/personApp/personApp.js index 8323c45..8c13669 100644 --- a/src/main/webapp/apps/personApp/personApp.js +++ b/src/main/webapp/apps/personApp/personApp.js @@ -6,11 +6,54 @@ var personApp = angular.module('personApp', ['person', 'build']).config(function }); function PersonCtrl($scope, $location, Person, Build) { + function queryBuilds() { + var builds = $scope.builds; + Build.query({person: uuid, startIndex: builds.startIndex, count: builds.count}, function (builds) { + $scope.builds.rows = builds; + }); + } + + $scope.mode = 'overview'; + $scope.builds = { + rows: [], + startIndex: 0, + count: 10, + first: function() { + $scope.builds.startIndex = 0; + queryBuilds(); + }, + next: function() { + $scope.builds.startIndex += $scope.builds.count; + queryBuilds(); + }, + prev: function() { + if($scope.builds.startIndex == 0) { + return; + } + $scope.builds.startIndex -= $scope.builds.count; + queryBuilds(); + } + }; + + $scope.setMode = function(mode) { + $scope.mode = mode; + switch(mode) { + case 'builds': + var builds = $scope.builds; + + console.log("$scope.builds.length=" + builds.rows.length); + if (builds.rows.length == 0) { + queryBuilds(builds); + } + break; + } + }; + Person.get({uuid: uuid}, function (person) { $scope.person = person; }); Build.query({person: uuid}, function (builds) { - $scope.builds = builds; + $scope.recentBuilds = builds; }); } |