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();
+ }
}