|
<ejs-schedule [minDate]="minDate" (renderCell)="onRenderCell($event)" (popupOpen)="onPopupOpen($event)" (dragStart)="onDragStart($event)" (resizeStart)="onResizeStart($event)">
</ejs-schedule> |
|
public today = new Date();
public minDate = new Date(this.today.getFullYear(), this.today.getMonth(), this.today.getDate());
onRenderCell(args): void {
if (args.elementType === "workCells" && args.date.getTime() <= new Date().getTime() && !args.element.classList.contains("e-disable-dates")) {
args.element.classList.add("e-disable-dates");
args.element.classList.add("e-disable-cell");
}
}
onPopupOpen(args) {
if (["QuickInfo", "Editor"].indexOf(args.type) > -1) {
args.cancel = this.isValidAction(args.data.StartTime);
}
}
onDragStart(args) {
args.cancel = this.isValidAction(args.data.StartTime);
}
onResizeStart(args) {
args.cancel = this.isValidAction(args.data.StartTime);
}
isValidAction(date) {
return !(date.getTime() > new Date().getTime());
} |
|
onNavigation(args) {
// Preventing the past dates navigation
if (args.action === "date") {
let isPrev = args.previousDate.getTime() > args.currentDate.getTime();
if (isPrev) {
let date;
switch (this.scheduleObj.currentView) {
case "Day":
case "Agenda":
date = args.currentDate;
break;
case "Week":
case "WorkWeek":
date = getWeekLastDate(args.currentDate, 0);
break;
case "Month":
date = new Date(args.currentDate.getFullYear(), args.currentDate.getMonth(), 0);
break;
default:
break;
}
args.cancel = this.isValidAction(date);
}
}
}
onActionBegin(args){
if(args.requestType === "toolbarItemRendering") {
args.items[2].click = this.onCalendarCreated.bind(this);
}
}
onCalendarCreated() {
let container = document.querySelector(".e-schedule-toolbar-container");
let calendar = container.querySelector(".e-calendar");
if (!calendar || calendar) {
setTimeout((e) => {
// Preventing the date selection in Schedule header calendar
calendar = container.querySelector(".e-calendar");
let calendarObj = (calendar as any).ej2_instances[0];
calendarObj.renderDayCell = this.onRenderCalendarCells.bind(this)
calendarObj.refresh();
container.classList.add("e-header-popup-visible");
}, 1);
}
}
onRenderCalendarCells(args) {
if(this.isValidAction(args.date)) {
args.element.classList.add("e-past-days");
}
} |