import { Component, ViewChild, ViewEncapsulation, Inject, OnInit } from '@angular/core';
import { extend, Internationalization,isNullOrUndefined } from '@syncfusion/ej2-base';
import { DropDownListComponent } from '@syncfusion/ej2-angular-dropdowns';
import { TextBoxComponent } from '@syncfusion/ej2-angular-inputs';
import {
ScheduleComponent, MonthService, DayService, WeekService, WorkWeekService, AgendaService,
MonthAgendaService, ResourcesModel, CellClickEventArgs, CurrentAction, EventSettingsModel,PopupOpenEventArgs
} from '@syncfusion/ej2-angular-schedule';
import { quickInfoTemplateData } from '../data';
@Component({
selector: 'app-contact-schedule',
providers: [DayService, WeekService, WorkWeekService, MonthService, AgendaService, MonthAgendaService],
template: `
<mat-toolbar>
<button mat-icon-button class="example-icon" aria-label="Example icon-button with menu icon" [routerLink]="['/Header']">
<mat-icon>home</mat-icon>
</button>
<span>Ecoplace | Agenda</span>
<span class="example-spacer"></span>
<button mat-icon-button class="example-icon favorite-icon" aria-label="Example icon-button with heart icon">
<mat-icon>favorite</mat-icon>
</button>
<button mat-icon-button class="example-icon" aria-label="Example icon-button with share icon">
<mat-icon>share</mat-icon>
</button>
</mat-toolbar>
<ejs-schedule #scheduleObj width='100%' height='550px' [selectedDate]="selectedDate" [eventSettings]="eventSettings"
(popupOpen)="onPopupOpen($event)">
<ng-template #quickInfoTemplatesHeader let-data>
<div *ngIf="data.elementType == 'event'">
<div class="e-popup-header" style="background-color: rgb(234, 122, 87);">
<div class="e-header-icon-wrapper">
<button (click)="onEditClick($event)" ejs-button class="e-edit e-icons e-control e-btn e-lib e-flat e-round e-small e-icon-btn" title="Edit">
<span class="e-btn-icon e-icons e-edit-icon"></span>
</button>
<button (click)="onDeleteClick($event)" ejs-button class="e-delete e-icons e-control e-btn e-lib e-flat e-round e-small e-icon-btn" title="Delete">
<span class="e-btn-icon e-icons e-delete-icon"></span>
</button>
</div>
<div class="e-subject-wrap">
<div class="e-subject e-text-ellipsis" [title]="data.Subject">
<div [innerHTML]="data.Subject"></div>
</div>
</div>
</div>
</div>
</ng-template>
</ejs-schedule>
`,
styleUrls: ['./contact-schedule.component.css'],
encapsulation: ViewEncapsulation.None,
})
export class ContactScheduleComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
@ViewChild('scheduleObj')
public scheduleObj: ScheduleComponent;
public eventSettings: EventSettingsModel = {
dataSource: quickInfoTemplateData
};
public selectedDate: Date = new Date(2020, 0, 5);
private selectionTarget: Element;
public roomData: Object[] = [
{ Name: 'Jammy', Id: 1, Capacity: 20, Color: '#ea7a57', Type: 'Conference' },
{ Name: 'Tweety', Id: 2, Capacity: 7, Color: '#7fa900', Type: 'Cabin' },
{ Name: 'Nestle', Id: 3, Capacity: 5, Color: '#5978ee', Type: 'Cabin' },
{ Name: 'Phoenix', Id: 4, Capacity: 15, Color: '#fec200', Type: 'Conference' },
{ Name: 'Mission', Id: 5, Capacity: 25, Color: '#df5286', Type: 'Conference' },
{ Name: 'Hangout', Id: 6, Capacity: 10, Color: '#00bdae', Type: 'Cabin' },
{ Name: 'Rick Roll', Id: 7, Capacity: 20, Color: '#865fcf', Type: 'Conference' },
{ Name: 'Rainbow', Id: 8, Capacity: 8, Color: '#1aaa55', Type: 'Cabin' },
{ Name: 'Swarm', Id: 9, Capacity: 30, Color: '#df5286', Type: 'Conference' },
{ Name: 'Photogenic', Id: 10, Capacity: 25, Color: '#710193', Type: 'Conference' }
];
public onPopupOpen(args: PopupOpenEventArgs): void {
this.selectionTarget = null;
this.selectionTarget = args.target;
}
public onDetailsClick(): void {
this.onCloseClick();
const data: Object = this.scheduleObj.getCellDetails(this.scheduleObj.getSelectedElements()) as Object;
this.scheduleObj.openEditor(data, 'Add');
}
public onAddClick(): void {
this.onCloseClick();
const data: Object = this.scheduleObj.getCellDetails(this.scheduleObj.getSelectedElements()) as Object;
const eventData: { [key: string]: Object } = this.scheduleObj.eventWindow.getObjectFromFormData('e-quick-popup-wrapper');
this.scheduleObj.eventWindow.convertToEventData(data as { [key: string]: Object }, eventData);
eventData.Id = this.scheduleObj.eventBase.getEventMaxID() as number + 1;
this.scheduleObj.addEvent(eventData);
}
public onEditClick(args: any): void {
if (this.selectionTarget) {
let eventData: { [key: string]: Object } = this.scheduleObj.getEventDetails(this.selectionTarget) as { [key: string]: Object };
let currentAction: CurrentAction = 'Save';
// console.log("TEST", eventData);
this.scheduleObj.openEditor(eventData, currentAction);
}
}
public onDeleteClick(args: any): void {
this.onCloseClick();
if (this.selectionTarget) {
const eventData: { [key: string]: Object } = this.scheduleObj.getEventDetails(this.selectionTarget) as { [key: string]: Object };
let currentAction: CurrentAction;
if (!isNullOrUndefined(eventData.RecurrenceRule) && eventData.RecurrenceRule !== '') {
currentAction = args.target.classList.contains('e-delete-series') ? 'DeleteSeries' : 'DeleteOccurrence';
}
this.scheduleObj.deleteEvent(eventData, currentAction);
}
}
public onCloseClick(): void {
this.scheduleObj.quickPopup.quickPopupHide();
}
}
*//api.service.ts//*