From 4a6c9c52d006ecb717bae7d9b502d9b661a08ccd Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Fri, 4 Jan 2013 10:18:56 +0100 Subject: o Using the PagingTableService on the front page and person apps. --- .../esper/testing/web/JerseyApplication.java | 4 ++ src/main/webapp/WEB-INF/tags/common/head.tagx | 5 +- src/main/webapp/apps/core/PagingTableService.js | 1 + src/main/webapp/apps/frontPageApp/frontPage.html | 36 +++++++++--- src/main/webapp/apps/frontPageApp/frontPageApp.js | 67 +--------------------- src/main/webapp/apps/personApp/personApp.js | 33 ++--------- 6 files changed, 44 insertions(+), 102 deletions(-) mode change 100644 => 100755 src/main/java/io/trygvis/esper/testing/web/JerseyApplication.java mode change 100644 => 100755 src/main/webapp/WEB-INF/tags/common/head.tagx mode change 100644 => 100755 src/main/webapp/apps/core/PagingTableService.js mode change 100644 => 100755 src/main/webapp/apps/frontPageApp/frontPage.html mode change 100644 => 100755 src/main/webapp/apps/frontPageApp/frontPageApp.js mode change 100644 => 100755 src/main/webapp/apps/personApp/personApp.js diff --git a/src/main/java/io/trygvis/esper/testing/web/JerseyApplication.java b/src/main/java/io/trygvis/esper/testing/web/JerseyApplication.java old mode 100644 new mode 100755 index 46964a0..a02bb5c --- a/src/main/java/io/trygvis/esper/testing/web/JerseyApplication.java +++ b/src/main/java/io/trygvis/esper/testing/web/JerseyApplication.java @@ -86,6 +86,10 @@ public class JerseyApplication extends Application { } private UUID parse(String s) { + if(s == null) { + return null; + } + try { return UUID.fromString(s); } catch (IllegalArgumentException e) { diff --git a/src/main/webapp/WEB-INF/tags/common/head.tagx b/src/main/webapp/WEB-INF/tags/common/head.tagx old mode 100644 new mode 100755 index f5b27a4..0ad2ba2 --- a/src/main/webapp/WEB-INF/tags/common/head.tagx +++ b/src/main/webapp/WEB-INF/tags/common/head.tagx @@ -16,11 +16,12 @@ diff --git a/src/main/webapp/apps/core/PagingTableService.js b/src/main/webapp/apps/core/PagingTableService.js old mode 100644 new mode 100755 index 689a225..d65e7f3 --- a/src/main/webapp/apps/core/PagingTableService.js +++ b/src/main/webapp/apps/core/PagingTableService.js @@ -37,6 +37,7 @@ function PagingTableService() { }; var defaultCallback = function(Resource, args) { + args = args || {}; return function(startIndex, count, cb) { console.log("fetching", arguments); args.startIndex = startIndex; diff --git a/src/main/webapp/apps/frontPageApp/frontPage.html b/src/main/webapp/apps/frontPageApp/frontPage.html old mode 100644 new mode 100755 index 4523e6f..5cdea9a --- a/src/main/webapp/apps/frontPageApp/frontPage.html +++ b/src/main/webapp/apps/frontPageApp/frontPage.html @@ -3,13 +3,33 @@ - - - -
+ + + + + + + + + + + + + + + + + + +
NameBadges
{{person.name}}{{person.badges.length}}
+ +
diff --git a/src/main/webapp/apps/frontPageApp/frontPageApp.js b/src/main/webapp/apps/frontPageApp/frontPageApp.js old mode 100644 new mode 100755 index c4fa0cc..21bc91f --- a/src/main/webapp/apps/frontPageApp/frontPageApp.js +++ b/src/main/webapp/apps/frontPageApp/frontPageApp.js @@ -1,71 +1,10 @@ 'use strict'; -var frontPageApp = angular.module('frontPageApp', ['ngGrid', 'person']).config(function ($routeProvider, $locationProvider) { +var frontPageApp = angular.module('frontPageApp', ['ngGrid', 'person', 'pagingTableService']).config(function ($routeProvider, $locationProvider) { $routeProvider. when('/', {controller: FrontPageCtrl, templateUrl: '/apps/frontPageApp/frontPage.html?noCache=' + noCache}); }); -function FrontPageCtrl($scope, $http, Person) { - $scope.persons = []; - - $scope.pagingOptions = { - pageSizes: [10], - pageSize: 10, - totalServerItems: 0, - currentPage: 1 - }; - - $scope.personsGridOptions = { - data: 'persons', - displayFooter: true, - enablePaging: true, - enableRowReordering: false, - enableColumnReordering: false, - showFilter: false, - showColumnMenu: false, - canSelectRows: false, - displaySelectionCheckbox: false, - pagingOptions: $scope.pagingOptions, - columnDefs: [ - { - field: 'name', - displayName: 'Name', - cellTemplate: '{{row.getProperty(col.field)}}' - }, - { - field: 'badges', - displayName: 'Badges', - cellTemplate: '
{{row.getProperty(col.field).length}}
' - } - ] - }; - - $scope.setPagingData = function(data, page, pageSize){ -// $scope.persons = data.slice((page - 1) * pageSize, page * pageSize); - $scope.persons = data; -// $scope.personsGridOptions.totalServerItems = data.length; - window.x = $scope.personsGridOptions; - if (!$scope.$$phase) { - $scope.$apply(); - } - }; - - $scope.getPagedDataAsync = function (pageSize, page/*, searchText*/) { - setTimeout(function () { - - Person.query({startIndex: page * pageSize, count: pageSize}, function (persons) { - $scope.setPagingData(persons, page, pageSize); - }); - }, 100); - }; - - $scope.$watch('pagingOptions', function () { - $scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage); - }, true); - -// $http.get('/resource/core/person-count').success(function(count) { -// $scope.pagingOptions.totalServerItems = count; -// -// $scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage); -// }); +function FrontPageCtrl($scope, Person, PagingTableService) { + $scope.persons = PagingTableService.create($scope, PagingTableService.defaultCallback(Person)); } diff --git a/src/main/webapp/apps/personApp/personApp.js b/src/main/webapp/apps/personApp/personApp.js old mode 100644 new mode 100755 index 8c13669..e8ef1d5 --- a/src/main/webapp/apps/personApp/personApp.js +++ b/src/main/webapp/apps/personApp/personApp.js @@ -1,39 +1,16 @@ 'use strict'; -var personApp = angular.module('personApp', ['person', 'build']).config(function ($routeProvider, $locationProvider) { +var personApp = angular.module('personApp', ['person', 'build', 'pagingTableService']).config(function ($routeProvider, $locationProvider) { $routeProvider. when('/', {controller: PersonCtrl, templateUrl: '/apps/personApp/person.html?noCache=' + noCache}); }); -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; - }); - } +function PersonCtrl($scope, $routeParams, Person, Build, PagingTableService) { + var personUuid = uuid; $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.builds = PagingTableService.create($scope, PagingTableService.defaultCallback(Build, {person: personUuid})); $scope.setMode = function(mode) { $scope.mode = mode; -- cgit v1.2.3