diff --git a/src/app/pages/admin/admin.component.html b/src/app/pages/admin/admin.component.html index 27c3c35..b038023 100644 --- a/src/app/pages/admin/admin.component.html +++ b/src/app/pages/admin/admin.component.html @@ -6,11 +6,21 @@
+ Logged in as {{getUserName()}}  |   + Calendar: +   |   + Filter: +
diff --git a/src/app/pages/admin/admin.component.ts b/src/app/pages/admin/admin.component.ts index 76955cd..2990e21 100644 --- a/src/app/pages/admin/admin.component.ts +++ b/src/app/pages/admin/admin.component.ts @@ -15,6 +15,8 @@ export class AdminComponent implements OnInit { selectedCalendar: string = ''; password: string = ''; name: string = ''; + eventFilter: string = ''; + constructor( private api: ApiService ) { @@ -28,19 +30,24 @@ export class AdminComponent implements OnInit { } getEvents(): void { + this.events = []; + if(this.selectedCalendar === '') { return; } this.api.getEvents(this.selectedCalendar).subscribe((events: Event[]): void => { - events.forEach((event: Event) => { + for(let event of events) { + if(!this.checkEventMeetsFilterCriteria(event)) { + continue; + } this.events.push({ ...event, startDateTime: new Date(event.startDateTime), endDateTime: new Date(event.endDateTime), createdDate: new Date(event.createdDate) }) - }) + } }) } @@ -51,7 +58,6 @@ export class AdminComponent implements OnInit { } handleCalendarChange() { - this.events = []; this.getEvents(); } @@ -67,4 +73,32 @@ export class AdminComponent implements OnInit { return -1; } } + + checkEventMeetsFilterCriteria(event: Event): boolean { + switch (this.eventFilter) { + case '': + return true; + case 'all': + return true; + case 'future': + return this.reduceToDay(new Date(event.endDateTime)) >= this.reduceToDay(new Date()); + case 'past': + return this.reduceToDay(new Date(event.endDateTime)) < this.reduceToDay(new Date()); + default: + return true; + } + } + + reduceToDay(date: Date): Date { + let dayOnlyDate: Date = new Date(); + dayOnlyDate.setFullYear(date.getFullYear()); + dayOnlyDate.setMonth(date.getMonth()); + dayOnlyDate.setDate(date.getDate()); + + return dayOnlyDate; + } + + getUserName(): string { + return UtilsService.getNameFromLocalStorage(); + } }