}
//RegistrationCtrl.$inject = [ '$scope', '$log' ];
-function ListCtrl($scope, $log, Registration, RegistrationTypes) {
+function ListCtrl($scope, $log, Registration, RegistrationTypes, $filter) {
- $scope.list = Registration.query( function() {
+ $scope.list = [];
+ $scope.search = {};
+
+ $scope.all_registrations = Registration.query( function() {
var RegistrationTypeCount = { '': 0 };
- angular.forEach( $scope.list, function(value, key) {
+ angular.forEach( $scope.all_registrations, function(value, key) {
var type = value.user.registration_type;
if ( ! angular.isNumber( RegistrationTypeCount[type] ) ) {
RegistrationTypeCount[type] = 1;
});
$log.info('RegistrationTypeCount', RegistrationTypeCount);
$scope.RegistrationTypeCount = RegistrationTypeCount;
+
+// $scope.list = $scope.all_registrations; // FIXME show all registrations on page load
});
+ $scope.filter_list = function(newVal, oldVal) {
+ $scope.list = $filter('filter')($scope.all_registrations, $scope.search);
+ $log.info('filter_list', newVal, oldVal, 'search', $scope.search, 'results', $scope.list);
+ };
+ $scope.$watch('search.registration_type', $scope.filter_list);
+ $scope.$watch('search.$', $scope.filter_list); // $ is skipped by search watch!!
$scope.RegistrationTypes = RegistrationTypes;
$log.info( "RegistrationTypes", RegistrationTypes );
- $scope.search = { '$': '' };
}
Search:
<input ng-model="search.$">
<input type=button value="X" ng-click="search.$ = ''">
+<b>{{list.length}} results</b>
<tt>{{search}}</tt>
</div>
<ol>
-<li ng-repeat="registration in list | filter:search">
+<li ng-repeat="registration in list">
<a href="#/registration/{{registration.id}}">edit</a>
{{registration.user.registration_type}}
<tt ng-click="debug = 1" title="click to show JSON">{{registration._id}}</tt>