+// $log.info( key, value, Counts[type] );
+ });
+ $log.info('Counts', Counts);
+ $scope.Counts = Counts;
+ return Counts;
+ };
+
+ $scope.all_registrations = Registration.query( function(result) {
+ $scope.ready = true;
+ $log.info('Reqistration.query callback', result);
+ $scope.reset();
+ });
+
+ $scope.filter_list = function(newVal, oldVal) {
+ if ( newVal == oldVal ) return;
+ $log.info('filter_list', newVal, oldVal, 'search', $scope.search);
+ var filtered =
+ $filter('filter')($scope.all_registrations, $scope.search);
+
+ $scope.create_counts( filtered );
+
+ $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 < 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 = [];
+ angular.forEach( filtered, function(v,k) {
+ if ( k >= from && k < from + $scope.pager.limit || $scope.pager.show_all ) {
+ v.nr = k + 1;
+ this.push(v);
+ }
+ }, $scope.list );
+ $log.info('list length=', $scope.list.length, "offset=", from);
+ };
+ $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;
+ }