12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- 'use strict';
- /* Filters for EventMan(ager) lists of objects. */
- /* 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.tickets && data.event.tickets.length)) {
- return inputArray;
- }
- for (var x=0; x < data.event.tickets.length; x++) {
- if (!data.includeCancelled && data.event.tickets[x].cancelled) {
- continue;
- }
- registeredIDs.push(data.event.tickets[x]._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;
- };
- }]
- );
- /* Filter that returns only the (not) registered tickets at an event. */
- eventManApp.filter('registeredFilter', ['$filter',
- function($filter) {
- return function(inputArray, data) {
- if (!data) {
- data = {};
- }
- var returnArray = [];
- for (var x=0; x < inputArray.length; x++) {
- if ((!data.onlyCancelled && !inputArray[x]['cancelled']) ||
- (data.onlyCancelled && inputArray[x]['cancelled']) ||
- data.all) {
- returnArray.push(inputArray[x]);
- }
- }
- return returnArray;
- };
- }]
- );
- /* Filter that returns only the attendees at an event. */
- eventManApp.filter('attendeesFilter', ['$filter',
- function($filter) {
- return function(inputArray) {
- var returnArray = [];
- for (var x=0; x < inputArray.length; x++) {
- if (inputArray[x]['attended'] && !inputArray[x]['cancelled']) {
- returnArray.push(inputArray[x]);
- }
- }
- return returnArray;
- };
- }]
- );
|