123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- 'use strict';
- /* Filters for EventMan(ager) lists of objects. */
- /* Filter for events that have (or not) information about a registered person. */
- eventManApp.filter('eventWithPersonData', ['$filter',
- function($filter) {
- return function(inputArray, mustBePresent) {
- if (mustBePresent === undefined) {
- mustBePresent = true;
- }
- inputArray = inputArray || [];
- var returnArray = [];
- for (var x=0; x < inputArray.length; x++) {
- var found = inputArray[x].person_data && inputArray[x].person_data.person_id;
- if ((found && mustBePresent) || (!found && !mustBePresent)) {
- returnArray.push(inputArray[x]);
- }
- }
- return returnArray;
- };
- }]
- );
- /* Filter for persons (not) registered for a given event. */
- eventManApp.filter('personRegistered', ['$filter',
- function($filter) {
- return function(inputArray, data) {
- if (data.present === undefined) {
- data.present = true;
- }
- inputArray = inputArray || [];
- var returnArray = [];
- var registeredIDs = [];
- if (!(data.event && data.event.persons && data.event.persons.length)) {
- return inputArray;
- }
- for (var x=0; x < data.event.persons.length; x++) {
- registeredIDs.push(data.event.persons[x].person_id);
- }
- for (var x=0; x < inputArray.length; x++) {
- var found = registeredIDs.indexOf(inputArray[x]._id) != -1;
- if ((found && data.present) || (!found && !data.present)) {
- returnArray.push(inputArray[x]);
- }
- }
- return returnArray;
- }
- }]
- );
- /* Filter that handles splitted words. */
- eventManApp.filter('splittedFilter', ['$filter',
- function($filter) {
- return function(inputArray, searchText) {
- var wordArray = searchText ? searchText.toLowerCase().split(/\s+/) : [];
- for (var x=0; x < wordArray.length; x++) {
- inputArray = $filter('filter')(inputArray, wordArray[x]);
- }
- return inputArray;
- };
- }]
- );
|