Agent-readable demo data
- Title
- Navigator (Monthly Event Calendar) | DayPilot Pro for JavaScript Demo
- Tree
- DayPilot JavaScript Demo
- Catalog root
- Default
- Description
- Read more about integrating the date navigator [doc.daypilot.org].
Inline demo script 1
const nav = new DayPilot.Navigator("nav", {
showMonths: 3,
selectMode: "month",
onTimeRangeSelected: (args) => {
dp.update({
startDate: args.start
});
app.elements.label.innerHTML = args.start.toString("MMMM yyyy");
}
});
nav.init();
const dp = new DayPilot.Month("dp", {
startDate: DayPilot.Date.today(),
onTimeRangeSelected: async (args) => {
const {result} = await DayPilot.Modal.prompt("New event name:", "Event");
dp.clearSelection();
if (!result) return;
dp.events.add({
start: args.start,
end: args.end,
id: DayPilot.guid(),
text: result
});
dp.message("Created");
}
});
dp.init();
const app = {
elements: {
label: document.getElementById('label'),
previous: document.getElementById('previous'),
next: document.getElementById('next')
},
init: function () {
this.addEventHandlers();
this.loadEventData();
this.elements.label.innerHTML = DayPilot.Date.today().toString("MMMM yyyy");
},
loadEventData() {
const events = [];
let start = DayPilot.Date.today().firstDayOfMonth();
for (let i = 0; i < 15; i++) {
const add = Math.floor(Math.random() * 2);
// const add = 1;
start = start.addDays(add);
if (start.getDayOfWeek() === 6) {
start = start.addDays(2);
}
if (start.getDayOfWeek() === 0) {
start = start.addDays(1);
}
events.push({
start: start,
end: start.addDays(1),
id: DayPilot.guid(),
barColor: app.barColor(i),
text: "Event " + (i + 1)
});
}
dp.update({events});
},
barColor(i) {
const colors = ["#6FA8DC", "#93C47D", "#FFD966", "#E06666"];
return colors[i % 4];
},
addEventHandlers() {
this.elements.previous.addEventListener('click', () => {
nav.select(nav.selectionStart.addMonths(-1));
});
this.elements.next.addEventListener('click', () => {
nav.select(nav.selectionStart.addMonths(1));
});
}
};
app.init();