$scope.pager = {
page: 1,
limit: 10,
- results: 0,
- last_page: 0
+ results: 1,
+ last_page: 1
};
$scope.search = {};
$scope.ready = false;
$scope.filters = [ 'student', 'hpd_member', 'reception', 'dinner' ];
+ $scope.show = {
+ registration_type: true,
+ filters: true,
+ search: true,
+ states: true,
+ pager_numeric: false
+ };
$scope.all_registrations = Registration.query( function() {
var Counts = {};
$log.info('Counts', Counts);
$scope.Counts = Counts;
-// $scope.list = $scope.all_registrations; // FIXME show all registrations on page loadyy
$scope.ready = true;
+ $scope.reset();
+
});
$scope.filter_list = function(newVal, oldVal) {
var filtered =
$filter('filter')($scope.all_registrations, $scope.search);
-// $scope.pager.page = 1;
+ $log.info('pager before apply', $scope.pager);
+
$scope.pager.results = filtered.length;
$scope.pager.last_page = Math.ceil( $scope.pager.results / $scope.pager.limit );
- if ( $scope.pager.page > $scope.pager.last_page ) {
- $scope.pager.page = 1;
- }
+ if ( $scope.pager.page < 1 ) $scope.pager.page = 1;
+ if ( $scope.pager.page > $scope.pager.last_page ) $scope.pager.page = $scope.pager.last_page;
$log.info('pager', $scope.pager);
var from = ( $scope.pager.page - 1 ) * $scope.pager.limit;
}, $scope.list );
$log.info('list length=', $scope.list.length, "offset=", from);
};
- angular.forEach( $scope.filters, function(f) {
- $scope.$watch('search.'+f, $scope.filter_list);
- $log.info('watch search.'+f);
- });
- $scope.$watch('search.registration_type', $scope.filter_list);
- $scope.$watch('search.$', $scope.filter_list);
- $scope.$watch('pager.page', $scope.filter_list);
- $scope.$watch('pager.limit', $scope.filter_list);
+ $scope.$watch('search', $scope.filter_list, true);
+ $scope.$watch('search.$', $scope.filter_list); // FIXME not included in search true because of $
+ $scope.$watch('pager', $scope.filter_list, true);
$scope.RegistrationTypes = RegistrationTypes;
$log.info( "RegistrationTypes", RegistrationTypes );
+
+ $scope.reset = function() {
+ $scope.search = { registration_type: '' };
+ $log.info('reset', $scope.search );
+ $scope.pager.page = 1;
+ }
}