arcadiasuite/plus/public/assets/js/pages/demo.calendar.js

100 lines
4.6 KiB
JavaScript

! function (l) {
"use strict";
function e() {
this.$body = l("body"), this.$modal = new bootstrap.Modal(document.getElementById("event-modal"), {
backdrop: "static"
}), this.$calendar = l("#calendar"), this.$formEvent = l("#form-event"), this.$btnNewEvent = l("#btn-new-event"), this.$btnDeleteEvent = l("#btn-delete-event"), this.$btnSaveEvent = l("#btn-save-event"), this.$modalTitle = l("#modal-title"), this.$calendarObj = null, this.$selectedEvent = null, this.$newEventData = null
}
e.prototype.onEventClick = function (e) {
this.$formEvent[0].reset(), this.$formEvent.removeClass("was-validated"), this.$newEventData = null, this.$btnDeleteEvent.show(), this.$modalTitle.text("Edit Event"), this.$modal.show(), this.$selectedEvent = e.event, l("#event-title").val(this.$selectedEvent.title), l("#event-category").val(this.$selectedEvent.classNames[0])
}, e.prototype.onSelect = function (e) {
this.$formEvent[0].reset(), this.$formEvent.removeClass("was-validated"), this.$selectedEvent = null, this.$newEventData = e, this.$btnDeleteEvent.hide(), this.$modalTitle.text("Add New Event"), this.$modal.show(), this.$calendarObj.unselect()
}, e.prototype.init = function () {
var e = new Date(l.now()),
e = (new FullCalendar.Draggable(document.getElementById("external-events"), {
itemSelector: ".external-event",
eventData: function (e) {
return {
title: e.innerText,
className: l(e).data("class")
}
}
}), [{
title: "Meeting with Mr. Shreyu",
start: new Date(l.now() + 158e6),
end: new Date(l.now() + 338e6),
className: "bg-warning"
}, {
title: "Interview - Backend Engineer",
start: e,
end: e,
className: "bg-success"
}, {
title: "Phone Screen - Frontend Engineer",
start: new Date(l.now() + 168e6),
className: "bg-info"
}, {
title: "Buy Design Assets",
start: new Date(l.now() + 338e6),
end: new Date(l.now() + 4056e5),
className: "bg-primary"
}]),
a = this;
a.$calendarObj = new FullCalendar.Calendar(a.$calendar[0], {
slotDuration: "00:15:00",
slotMinTime: "08:00:00",
slotMaxTime: "19:00:00",
themeSystem: "bootstrap",
bootstrapFontAwesome: !1,
buttonText: {
today: "Today",
month: "Month",
week: "Week",
day: "Day",
list: "List",
prev: "Prev",
next: "Next"
},
initialView: "dayGridMonth",
handleWindowResize: !0,
height: l(window).height() - 200,
headerToolbar: {
left: "prev,next today",
center: "title",
right: "dayGridMonth,timeGridWeek,timeGridDay,listMonth"
},
initialEvents: e,
editable: !0,
droppable: !0,
selectable: !0,
dateClick: function (e) {
a.onSelect(e)
},
eventClick: function (e) {
a.onEventClick(e)
}
}), a.$calendarObj.render(), a.$btnNewEvent.on("click", function (e) {
a.onSelect({
date: new Date,
allDay: !0
})
}), a.$formEvent.on("submit", function (e) {
e.preventDefault();
var t, n = a.$formEvent[0];
n.checkValidity() ? (a.$selectedEvent ? (a.$selectedEvent.setProp("title", l("#event-title").val()), a.$selectedEvent.setProp("classNames", [l("#event-category").val()])) : (t = {
title: l("#event-title").val(),
start: a.$newEventData.date,
allDay: a.$newEventData.allDay,
className: l("#event-category").val()
}, a.$calendarObj.addEvent(t)), a.$modal.hide()) : (e.stopPropagation(), n.classList.add("was-validated"))
}), l(a.$btnDeleteEvent.on("click", function (e) {
a.$selectedEvent && (a.$selectedEvent.remove(), a.$selectedEvent = null, a.$modal.hide())
}))
}, l.CalendarApp = new e, l.CalendarApp.Constructor = e
}(window.jQuery),
function () {
"use strict";
window.jQuery.CalendarApp.init()
}();