/**
|
* @file Event panel in Event dialog
|
* @author Wong Jia Hui (jiahui.wong@3ds.com)
|
*/
|
import { DataEventCategoryName } from '../../data/data.calendar';
|
import { EditFieldSOP } from '../../../libappsop/editfieldsop';
|
import { ButtonSOP } from '../../../libappsop/buttonsop';
|
import { CheckboxSOP } from '../../../libappsop/checkboxsop';
|
import { DropDownStringListSOP } from '../../../libappsop/dropdownstringlistsop';
|
import { DropDownListSOP } from '../../../libappsop/dropdownlistsop';
|
import { DateTimeSelectorSOP } from '../../../libappsop/datetimeselectorsop';
|
import { PanelSOP } from '../../../libappsop/panelsop';
|
import { DurationSelectorSOP } from '../../../libappsop/durationselectorsop';
|
import { CalendarEventRepeat } from './dialog.calendarevent';
|
|
export interface PanelCalendarEventFields {
|
Name?: string;
|
Description?: string;
|
Type?: string;
|
Category?: DataEventCategoryName;
|
ApplyToNewResources?: string;
|
IsAllDay?: string;
|
StartDate?: string;
|
EndDate?: string;
|
StartTime?: string;
|
EndTime?: string;
|
RecurWeeklyRepeatEvery?: string; // Recurrence weekly fields start here
|
RecurWeeklyNoEndDate?: string;
|
RecurWeeklyEndAfter?: string;
|
RecurWeeklyEndBy?: string;
|
RecurWeeklyOccurrencesToEnd?: string;
|
RecurWeeklyEndByDate?: string;
|
}
|
|
export class PanelCalendarEvent extends PanelSOP {
|
// Edit fields
|
public readonly efName = new EditFieldSOP('edtName');
|
public readonly efDescription = new EditFieldSOP('edtDescription');
|
|
// Buttons
|
public readonly btnOnce = new ButtonSOP('btnOnce');
|
public readonly btnDaily = new ButtonSOP('btnDaily');
|
public readonly btnWeekly = new ButtonSOP('btnWeekly');
|
public readonly btnMonthly = new ButtonSOP('btnMonthly');
|
public readonly btnYearly = new ButtonSOP('btnYearly');
|
|
// Checkboxes
|
public readonly cbApplyToNewResources = new CheckboxSOP('ckbApplyToNewResources');
|
public readonly cbIsAllDay = new CheckboxSOP('ckbIsAllDay');
|
|
// Drop down string list
|
public readonly ddslType = new DropDownStringListSOP('ddslType');
|
|
// Drop down list
|
public readonly ddlCategory = new DropDownListSOP('ddlCategory');
|
|
// Date time selector
|
public readonly dsStartDate = new DateTimeSelectorSOP('dsStartDate');
|
public readonly dsEndDate = new DateTimeSelectorSOP('dsEndDate');
|
|
// Duration Selector
|
public readonly durationSelectorStart = new DurationSelectorSOP('durStartTimeOfDay', { Hours: 0, Minutes: 0 });
|
public readonly durationSelectorEnd = new DurationSelectorSOP('durEndTimeOfDay', { Hours: 0, Minutes: 0 });
|
|
public constructor() {
|
super('tabEvent');
|
}
|
|
/**
|
* @override
|
*/
|
public async switchTo(): Promise<void> {
|
await super.switchTo();
|
await this.efName.waitUntilPresent();
|
await this.efDescription.waitUntilPresent();
|
await this.btnOnce.waitUntilPresent();
|
await this.btnDaily.waitUntilPresent();
|
await this.btnWeekly.waitUntilPresent();
|
await this.btnMonthly.waitUntilPresent();
|
await this.btnYearly.waitUntilPresent();
|
await this.cbApplyToNewResources.waitUntilPresent();
|
await this.cbIsAllDay.waitUntilPresent();
|
await this.ddslType.waitUntilPresent();
|
await this.ddlCategory.waitUntilPresent();
|
await this.dsStartDate.waitUntilPresent();
|
await this.dsEndDate.waitUntilPresent();
|
await this.durationSelectorStart.waitUntilPresent();
|
await this.durationSelectorEnd.waitUntilPresent();
|
}
|
|
public getRepeatButton(repeat: CalendarEventRepeat): ButtonSOP {
|
switch (repeat) {
|
case CalendarEventRepeat.Once: {
|
return this.btnOnce;
|
}
|
case CalendarEventRepeat.Daily: {
|
return this.btnDaily;
|
}
|
case CalendarEventRepeat.Weekly: {
|
return this.btnWeekly;
|
}
|
case CalendarEventRepeat.Monthly: {
|
return this.btnMonthly;
|
}
|
case CalendarEventRepeat.Yearly: {
|
return this.btnYearly;
|
}
|
default:
|
throw Error(`Invalid Repeat button enum "${repeat}".`);
|
}
|
}
|
}
|