aboutsummaryrefslogtreecommitdiff
path: root/src/main/webapp/apps
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2012-12-28 20:02:07 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2012-12-28 20:02:07 +0100
commitf39b6c813dfa8ad97de4f8a35aaf21ee1408b6d4 (patch)
treee10e366d815f6115dca53742c92342c36f8178fb /src/main/webapp/apps
parent9e8f4821c1e708ccd868866314111b6f8cc9bc6f (diff)
downloadesper-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/apps')
-rw-r--r--src/main/webapp/apps/personApp/person.html83
-rw-r--r--src/main/webapp/apps/personApp/personApp.js45
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()">&larr; Older</a>
+ </li>
+ <li class="next">
+ <a ng-click="builds.next()">Newer &rarr;</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;
});
}