Agent-readable demo data
- Title
- Next/Previous Navigation (JavaScript Scheduler) | DayPilot Pro for JavaScript Demo
- Tree
- DayPilot JavaScript Demo
- Catalog root
- Default
- Description
- Read more about next/previous buttons
[doc.daypilot.org].
Inline demo script 1
const dp = new DayPilot.Scheduler("dp", {
startDate: DayPilot.Date.today().firstDayOfMonth(),
cellGroupBy: "Month",
days: DayPilot.Date.today().daysInMonth(),
scale: "Day",
cellWidthSpec: "Auto",
timeHeaders: [
{groupBy: "Month"},
{groupBy: "Day", format: "d"}
],
resources: [
{name: "Room A", id: "A"},
{name: "Room B", id: "B"},
{name: "Room C", id: "C"},
{name: "Room D", id: "D"},
{name: "Room E", id: "E"},
{name: "Room F", id: "F"},
],
onTimeRangeSelected: async args => {
const modal = await DayPilot.Modal.prompt("New event name:", "Event");
const name = modal.result;
dp.clearSelection();
if (!name) return;
dp.events.add({
start: args.start,
end: args.end,
id: DayPilot.guid(),
resource: args.resource,
text: "Event"
});
dp.message("Created");
}
});
dp.init();
const app = {
elements: {
previous: document.getElementById("previous"),
today: document.getElementById("today"),
next: document.getElementById("next")
},
addEventHandlers() {
app.elements.previous.addEventListener("click", (e) => {
e.preventDefault();
app.changeDate(dp.startDate.addMonths(-1));
});
app.elements.today.addEventListener("click", (e) => {
e.preventDefault();
app.changeDate(DayPilot.Date.today());
});
app.elements.next.addEventListener("click", (e) => {
e.preventDefault();
app.changeDate(dp.startDate.addMonths(1));
});
},
changeDate(date) {
const startDate = date.firstDayOfMonth();
const days = startDate.daysInMonth();
const events = [/* ... */]; // provide event data for the new date range
dp.update({
startDate,
days,
events
});
},
init() {
app.addEventHandlers();
}
};
app.init();