diff --git a/src/app/calendar-app/calendar-app.component.html b/src/app/calendar-app/calendar-app.component.html index d539940ae..a2bfe847f 100644 --- a/src/app/calendar-app/calendar-app.component.html +++ b/src/app/calendar-app/calendar-app.component.html @@ -97,6 +97,18 @@ + + + + Calendar Menu + + + @@ -233,6 +248,9 @@

Calendar Menu

+ + + diff --git a/src/app/calendar-app/calendar-app.component.spec.ts b/src/app/calendar-app/calendar-app.component.spec.ts index e2b29af55..aafabcffb 100644 --- a/src/app/calendar-app/calendar-app.component.spec.ts +++ b/src/app/calendar-app/calendar-app.component.spec.ts @@ -265,6 +265,30 @@ END:VCALENDAR expect(events.length).toBe(1, 'events are back on the screen'); }); + it('should show an add event action in week and day views', () => { + spyOn(component, 'addEvent'); + fixture.detectChanges(); + + expect(fixture.debugElement.nativeElement.querySelector('button#addEventInViewButton')) + .toBeFalsy('month view already has per-day add event buttons'); + + component.setView(component.RunboxCalendarView.Week); + fixture.detectChanges(); + let addEventButton = fixture.debugElement.nativeElement.querySelector('button#addEventInViewButton'); + expect(addEventButton).toBeTruthy('week view has an add event action'); + + addEventButton.click(); + expect(component.addEvent).toHaveBeenCalledOnceWith(component.viewDate); + + component.setView(component.RunboxCalendarView.Day); + fixture.detectChanges(); + addEventButton = fixture.debugElement.nativeElement.querySelector('button#addEventInViewButton'); + expect(addEventButton).toBeTruthy('day view has an add event action'); + + addEventButton.click(); + expect(component.addEvent).toHaveBeenCalledWith(component.viewDate); + }); + it('should display recurring events', () => { mockData['events'] = recurringEvents; component.calendarservice.syncCaldav(true); diff --git a/src/app/calendar-app/calendar-app.component.ts b/src/app/calendar-app/calendar-app.component.ts index 0f1195171..0dea154a0 100644 --- a/src/app/calendar-app/calendar-app.component.ts +++ b/src/app/calendar-app/calendar-app.component.ts @@ -330,29 +330,31 @@ export class CalendarAppComponent implements OnDestroy { setView(view: RunboxCalendarView): void { this.view = view; + + switch (this.view) { + case RunboxCalendarView.Overview: { + this.mwlView = null; + break; + } + case RunboxCalendarView.Month: { + this.mwlView = CalendarView.Month; + break; + } + case RunboxCalendarView.Week: { + this.mwlView = CalendarView.Week; + break; + } + case RunboxCalendarView.Day: { + this.mwlView = CalendarView.Day; + break; + } + } + if (this.settings.lastUsedView !== view) { this.settings.lastUsedView = this.view; this.preferenceService.set(this.prefGroup, 'calendarSettings', this.settings); - - switch (this.view) { - case RunboxCalendarView.Overview: { - this.mwlView = null; - break; - } - case RunboxCalendarView.Month: { - this.mwlView = CalendarView.Month; - break; - } - case RunboxCalendarView.Week: { - this.mwlView = CalendarView.Week; - break; - } - case RunboxCalendarView.Day: { - this.mwlView = CalendarView.Day; - break; - } - } } + this.cdr.markForCheck(); } showAddCalendarDialog(): void {