799 lines
32 KiB
JavaScript
799 lines
32 KiB
JavaScript
|
var start_date = document.getElementById("event-start-date"),
|
|||
|
timepicker1 = document.getElementById("timepicker1"),
|
|||
|
timepicker2 = document.getElementById("timepicker2"),
|
|||
|
date_range = null,
|
|||
|
T_check = null;
|
|||
|
function flatPickrInit() {
|
|||
|
var e = { enableTime: !0, noCalendar: !0 };
|
|||
|
flatpickr(start_date, {
|
|||
|
enableTime: !1,
|
|||
|
mode: "range",
|
|||
|
minDate: "today",
|
|||
|
onChange: function (e, t, n) {
|
|||
|
1 < t.split("to").length
|
|||
|
? document
|
|||
|
.getElementById("event-time")
|
|||
|
.setAttribute("hidden", !0)
|
|||
|
: (document
|
|||
|
.getElementById("timepicker1")
|
|||
|
.parentNode.classList.remove("d-none"),
|
|||
|
document
|
|||
|
.getElementById("timepicker1")
|
|||
|
.classList.replace("d-none", "d-block"),
|
|||
|
document
|
|||
|
.getElementById("timepicker2")
|
|||
|
.parentNode.classList.remove("d-none"),
|
|||
|
document
|
|||
|
.getElementById("timepicker2")
|
|||
|
.classList.replace("d-none", "d-block"),
|
|||
|
document
|
|||
|
.getElementById("event-time")
|
|||
|
.removeAttribute("hidden"));
|
|||
|
},
|
|||
|
});
|
|||
|
flatpickr(timepicker1, e), flatpickr(timepicker2, e);
|
|||
|
}
|
|||
|
function flatpicekrValueClear() {
|
|||
|
start_date.flatpickr().clear(),
|
|||
|
timepicker1.flatpickr().clear(),
|
|||
|
timepicker2.flatpickr().clear();
|
|||
|
}
|
|||
|
function eventClicked() {
|
|||
|
document.getElementById("form-event").classList.add("view-event"),
|
|||
|
document
|
|||
|
.getElementById("event-title")
|
|||
|
.classList.replace("d-block", "d-none"),
|
|||
|
document
|
|||
|
.getElementById("event-category")
|
|||
|
.classList.replace("d-block", "d-none"),
|
|||
|
document
|
|||
|
.getElementById("event-start-date")
|
|||
|
.parentNode.classList.add("d-none"),
|
|||
|
document
|
|||
|
.getElementById("event-start-date")
|
|||
|
.classList.replace("d-block", "d-none"),
|
|||
|
document.getElementById("event-time").setAttribute("hidden", !0),
|
|||
|
document
|
|||
|
.getElementById("timepicker1")
|
|||
|
.parentNode.classList.add("d-none"),
|
|||
|
document
|
|||
|
.getElementById("timepicker1")
|
|||
|
.classList.replace("d-block", "d-none"),
|
|||
|
document
|
|||
|
.getElementById("timepicker2")
|
|||
|
.parentNode.classList.add("d-none"),
|
|||
|
document
|
|||
|
.getElementById("timepicker2")
|
|||
|
.classList.replace("d-block", "d-none"),
|
|||
|
document
|
|||
|
.getElementById("event-location")
|
|||
|
.classList.replace("d-block", "d-none"),
|
|||
|
document
|
|||
|
.getElementById("event-description")
|
|||
|
.classList.replace("d-block", "d-none"),
|
|||
|
document
|
|||
|
.getElementById("event-start-date-tag")
|
|||
|
.classList.replace("d-none", "d-block"),
|
|||
|
document
|
|||
|
.getElementById("event-timepicker1-tag")
|
|||
|
.classList.replace("d-none", "d-block"),
|
|||
|
document
|
|||
|
.getElementById("event-timepicker2-tag")
|
|||
|
.classList.replace("d-none", "d-block"),
|
|||
|
document
|
|||
|
.getElementById("event-location-tag")
|
|||
|
.classList.replace("d-none", "d-block"),
|
|||
|
document
|
|||
|
.getElementById("event-description-tag")
|
|||
|
.classList.replace("d-none", "d-block"),
|
|||
|
document.getElementById("btn-save-event").setAttribute("hidden", !0);
|
|||
|
}
|
|||
|
function editEvent(e) {
|
|||
|
var t = e.getAttribute("data-id");
|
|||
|
("new-event" == t
|
|||
|
? ((document.getElementById("modal-title").innerHTML = ""),
|
|||
|
(document.getElementById("modal-title").innerHTML = "Add Event"),
|
|||
|
(document.getElementById("btn-save-event").innerHTML = "Add Event"),
|
|||
|
eventTyped)
|
|||
|
: "edit-event" == t
|
|||
|
? ((e.innerHTML = "Cancel"),
|
|||
|
e.setAttribute("data-id", "cancel-event"),
|
|||
|
(document.getElementById("btn-save-event").innerHTML =
|
|||
|
"Update Event"),
|
|||
|
e.removeAttribute("hidden"),
|
|||
|
eventTyped)
|
|||
|
: ((e.innerHTML = "Edit"),
|
|||
|
e.setAttribute("data-id", "edit-event"),
|
|||
|
eventClicked))();
|
|||
|
}
|
|||
|
function eventTyped() {
|
|||
|
document.getElementById("form-event").classList.remove("view-event"),
|
|||
|
document
|
|||
|
.getElementById("event-title")
|
|||
|
.classList.replace("d-none", "d-block"),
|
|||
|
document
|
|||
|
.getElementById("event-category")
|
|||
|
.classList.replace("d-none", "d-block"),
|
|||
|
document
|
|||
|
.getElementById("event-start-date")
|
|||
|
.parentNode.classList.remove("d-none"),
|
|||
|
document
|
|||
|
.getElementById("event-start-date")
|
|||
|
.classList.replace("d-none", "d-block"),
|
|||
|
document
|
|||
|
.getElementById("timepicker1")
|
|||
|
.parentNode.classList.remove("d-none"),
|
|||
|
document
|
|||
|
.getElementById("timepicker1")
|
|||
|
.classList.replace("d-none", "d-block"),
|
|||
|
document
|
|||
|
.getElementById("timepicker2")
|
|||
|
.parentNode.classList.remove("d-none"),
|
|||
|
document
|
|||
|
.getElementById("timepicker2")
|
|||
|
.classList.replace("d-none", "d-block"),
|
|||
|
document
|
|||
|
.getElementById("event-location")
|
|||
|
.classList.replace("d-none", "d-block"),
|
|||
|
document
|
|||
|
.getElementById("event-description")
|
|||
|
.classList.replace("d-none", "d-block"),
|
|||
|
document
|
|||
|
.getElementById("event-start-date-tag")
|
|||
|
.classList.replace("d-block", "d-none"),
|
|||
|
document
|
|||
|
.getElementById("event-timepicker1-tag")
|
|||
|
.classList.replace("d-block", "d-none"),
|
|||
|
document
|
|||
|
.getElementById("event-timepicker2-tag")
|
|||
|
.classList.replace("d-block", "d-none"),
|
|||
|
document
|
|||
|
.getElementById("event-location-tag")
|
|||
|
.classList.replace("d-block", "d-none"),
|
|||
|
document
|
|||
|
.getElementById("event-description-tag")
|
|||
|
.classList.replace("d-block", "d-none"),
|
|||
|
document.getElementById("btn-save-event").removeAttribute("hidden");
|
|||
|
}
|
|||
|
function upcomingEvent(e) {
|
|||
|
e.sort(function (e, t) {
|
|||
|
return new Date(e.start) - new Date(t.start);
|
|||
|
}),
|
|||
|
(document.getElementById("upcoming-event-list").innerHTML = null),
|
|||
|
Array.from(e).forEach(function (e) {
|
|||
|
var t = e.title,
|
|||
|
n =
|
|||
|
(i = e.end
|
|||
|
? (endUpdatedDay = new Date(e.end)).setDate(
|
|||
|
endUpdatedDay.getDate() - 1
|
|||
|
)
|
|||
|
: i) || void 0;
|
|||
|
n =
|
|||
|
"Invalid Date" == n || null == n
|
|||
|
? null
|
|||
|
: ((a = new Date(n).toLocaleDateString("en", {
|
|||
|
year: "numeric",
|
|||
|
month: "numeric",
|
|||
|
day: "numeric",
|
|||
|
})),
|
|||
|
new Date(a)
|
|||
|
.toLocaleDateString("en-GB", {
|
|||
|
day: "numeric",
|
|||
|
month: "short",
|
|||
|
year: "numeric",
|
|||
|
})
|
|||
|
.split(" ")
|
|||
|
.join(" "));
|
|||
|
(e.start ? str_dt(e.start) : null) === (i ? str_dt(i) : null) &&
|
|||
|
(n = null);
|
|||
|
var a = e.start,
|
|||
|
d =
|
|||
|
((a =
|
|||
|
"Invalid Date" === a || void 0 === a
|
|||
|
? null
|
|||
|
: ((d = new Date(a).toLocaleDateString("en", {
|
|||
|
year: "numeric",
|
|||
|
month: "numeric",
|
|||
|
day: "numeric",
|
|||
|
})),
|
|||
|
new Date(d)
|
|||
|
.toLocaleDateString("en-GB", {
|
|||
|
day: "numeric",
|
|||
|
month: "short",
|
|||
|
year: "numeric",
|
|||
|
})
|
|||
|
.split(" ")
|
|||
|
.join(" "))),
|
|||
|
n ? " to " + n : ""),
|
|||
|
n = e.className.split("-"),
|
|||
|
l = e.description || "",
|
|||
|
e = tConvert(getTime(e.start)),
|
|||
|
i =
|
|||
|
(e == (i = tConvert(getTime(i))) &&
|
|||
|
((e = "Full day event"), (i = null)),
|
|||
|
i ? " to " + i : "");
|
|||
|
(u_event =
|
|||
|
"<div class='card mb-3'> <div class='card-body'> <div class='d-flex mb-3'> <div class='flex-grow-1'><i class='mdi mdi-checkbox-blank-circle me-2 text-" +
|
|||
|
n[1] +
|
|||
|
"'></i><span class='fw-medium'>" +
|
|||
|
a +
|
|||
|
d +
|
|||
|
" </span></div> <div class='flex-shrink-0'><small class='badge bg-primary-subtle text-primary ms-auto'>" +
|
|||
|
e +
|
|||
|
i +
|
|||
|
"</small></div> </div> <h6 class='card-title fs-16'> " +
|
|||
|
t +
|
|||
|
"</h6> <p class='text-muted text-truncate-two-lines mb-0'> " +
|
|||
|
l +
|
|||
|
"</p> </div> </div>"),
|
|||
|
(document.getElementById("upcoming-event-list").innerHTML +=
|
|||
|
u_event);
|
|||
|
});
|
|||
|
}
|
|||
|
function getTime(e) {
|
|||
|
if (null != (e = new Date(e)).getHours())
|
|||
|
return e.getHours() + ":" + (e.getMinutes() ? e.getMinutes() : 0);
|
|||
|
}
|
|||
|
function tConvert(e) {
|
|||
|
var e = e.split(":"),
|
|||
|
t = e[0],
|
|||
|
e = e[1],
|
|||
|
n = 12 <= t ? "PM" : "AM";
|
|||
|
return (t = (t %= 12) || 12) + ":" + (e < 10 ? "0" + e : e) + " " + n;
|
|||
|
}
|
|||
|
document.addEventListener("DOMContentLoaded", function () {
|
|||
|
flatPickrInit();
|
|||
|
var g = new bootstrap.Modal(document.getElementById("event-modal"), {
|
|||
|
keyboard: !1,
|
|||
|
}),
|
|||
|
l =
|
|||
|
(document.getElementById("event-modal"),
|
|||
|
document.getElementById("modal-title")),
|
|||
|
i = document.getElementById("form-event"),
|
|||
|
v = null,
|
|||
|
p = document.getElementsByClassName("needs-validation"),
|
|||
|
e = new Date(),
|
|||
|
t = e.getDate(),
|
|||
|
n = e.getMonth(),
|
|||
|
e = e.getFullYear(),
|
|||
|
a = FullCalendar.Draggable,
|
|||
|
d = document.getElementById("external-events"),
|
|||
|
y = [
|
|||
|
{
|
|||
|
id: 1,
|
|||
|
title: "World Braille Day",
|
|||
|
start: "2022-01-04",
|
|||
|
className: "bg-info-subtle",
|
|||
|
allDay: !0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: 2,
|
|||
|
title: "World Leprosy Day",
|
|||
|
start: "2022-01-30",
|
|||
|
className: "bg-info-subtle",
|
|||
|
allDay: !0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: 3,
|
|||
|
title: "International Mother Language Day",
|
|||
|
start: "2022-02-21",
|
|||
|
className: "bg-info-subtle",
|
|||
|
allDay: !0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: 4,
|
|||
|
title: "International Women's Day",
|
|||
|
start: "2022-03-08",
|
|||
|
className: "bg-info-subtle",
|
|||
|
allDay: !0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: 5,
|
|||
|
title: "World Thinking Day",
|
|||
|
start: "2022-02-22",
|
|||
|
className: "bg-info-subtle",
|
|||
|
allDay: !0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: 6,
|
|||
|
title: "International Mother Language Day",
|
|||
|
start: "2022-03-21",
|
|||
|
className: "bg-info-subtle",
|
|||
|
allDay: !0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: 7,
|
|||
|
title: "World Water Day",
|
|||
|
start: "2022-03-22",
|
|||
|
className: "bg-info-subtle",
|
|||
|
allDay: !0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: 8,
|
|||
|
title: "World Health Day",
|
|||
|
start: "2022-04-07",
|
|||
|
className: "bg-info-subtle",
|
|||
|
allDay: !0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: 9,
|
|||
|
title: "International Special Librarians Day",
|
|||
|
start: "2022-04-16",
|
|||
|
className: "bg-info-subtle",
|
|||
|
allDay: !0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: 10,
|
|||
|
title: "Earth Day",
|
|||
|
start: "2022-04-22",
|
|||
|
className: "bg-info-subtle",
|
|||
|
allDay: !0,
|
|||
|
},
|
|||
|
{
|
|||
|
id: 153,
|
|||
|
title: "All Day Event",
|
|||
|
start: new Date(e, n, 1),
|
|||
|
className: "bg-primary-subtle",
|
|||
|
location: "San Francisco, US",
|
|||
|
allDay: !0,
|
|||
|
extendedProps: { department: "All Day Event" },
|
|||
|
description:
|
|||
|
"An all-day event is an event that lasts an entire day or longer",
|
|||
|
},
|
|||
|
{
|
|||
|
id: 136,
|
|||
|
title: "Visit Online Course",
|
|||
|
start: new Date(e, n, t - 5),
|
|||
|
end: new Date(e, n, t - 2),
|
|||
|
allDay: !0,
|
|||
|
className: "bg-warning-subtle",
|
|||
|
extendedProps: { department: "Long Event" },
|
|||
|
description:
|
|||
|
"Long Term Event means an incident that last longer than 12 hours.",
|
|||
|
},
|
|||
|
{
|
|||
|
id: 999,
|
|||
|
title: "Client Meeting with Alexis",
|
|||
|
start: new Date(e, n, t + 22, 20, 0),
|
|||
|
end: new Date(e, n, t + 24, 16, 0),
|
|||
|
allDay: !0,
|
|||
|
className: "bg-danger-subtle",
|
|||
|
location: "California, US",
|
|||
|
extendedProps: { department: "Meeting with Alexis" },
|
|||
|
description:
|
|||
|
"A meeting is a gathering of two or more people that has been convened for the purpose of achieving a common goal through verbal interaction, such as sharing information or reaching agreement.",
|
|||
|
},
|
|||
|
{
|
|||
|
id: 991,
|
|||
|
title: "Repeating Event",
|
|||
|
start: new Date(e, n, t + 4, 16, 0),
|
|||
|
end: new Date(e, n, t + 9, 16, 0),
|
|||
|
allDay: !0,
|
|||
|
className: "bg-primary-subtle",
|
|||
|
location: "Las Vegas, US",
|
|||
|
extendedProps: { department: "Repeating Event" },
|
|||
|
description:
|
|||
|
"A recurring or repeating event is simply any event that you will occur more than once on your calendar. ",
|
|||
|
},
|
|||
|
{
|
|||
|
id: 112,
|
|||
|
title: "Meeting With Designer",
|
|||
|
start: new Date(e, n, t, 12, 30),
|
|||
|
allDay: !0,
|
|||
|
className: "bg-success-subtle",
|
|||
|
location: "Head Office, US",
|
|||
|
extendedProps: { department: "Meeting" },
|
|||
|
description: "Tell how to boost website traffic",
|
|||
|
},
|
|||
|
{
|
|||
|
id: 113,
|
|||
|
title: "Weekly Strategy Planning",
|
|||
|
start: new Date(e, n, t + 9),
|
|||
|
end: new Date(e, n, t + 11),
|
|||
|
allDay: !0,
|
|||
|
className: "bg-danger-subtle",
|
|||
|
location: "Head Office, US",
|
|||
|
extendedProps: { department: "Lunch" },
|
|||
|
description: "Strategies for Creating Your Weekly Schedule",
|
|||
|
},
|
|||
|
{
|
|||
|
id: 875,
|
|||
|
title: "Birthday Party",
|
|||
|
start: new Date(e, n, t + 1, 19, 0),
|
|||
|
allDay: !0,
|
|||
|
className: "bg-success-subtle",
|
|||
|
location: "Los Angeles, US",
|
|||
|
extendedProps: { department: "Birthday Party" },
|
|||
|
description:
|
|||
|
"Family slumber party – Bring out the blankets and pillows and have a family slumber party! Play silly party games, share special snacks and wind down the fun with a special movie.",
|
|||
|
},
|
|||
|
{
|
|||
|
id: 783,
|
|||
|
title: "Click for Google",
|
|||
|
start: new Date(e, n, 28),
|
|||
|
end: new Date(e, n, 29),
|
|||
|
allDay: !0,
|
|||
|
url: "http://google.com/",
|
|||
|
className: "bg-dark-subtle",
|
|||
|
},
|
|||
|
{
|
|||
|
id: 456,
|
|||
|
title: "Velzon Project Discussion with Team",
|
|||
|
start: new Date(e, n, t + 23, 20, 0),
|
|||
|
end: new Date(e, n, t + 24, 16, 0),
|
|||
|
allDay: !0,
|
|||
|
className: "bg-info-subtle",
|
|||
|
location: "Head Office, US",
|
|||
|
extendedProps: { department: "Discussion" },
|
|||
|
description: "Tell how to boost website traffic",
|
|||
|
},
|
|||
|
],
|
|||
|
e =
|
|||
|
(new a(d, {
|
|||
|
itemSelector: ".external-event",
|
|||
|
eventData: function (e) {
|
|||
|
return {
|
|||
|
id: Math.floor(11e3 * Math.random()),
|
|||
|
title: e.innerText,
|
|||
|
allDay: !0,
|
|||
|
start: new Date(),
|
|||
|
className: e.getAttribute("data-class"),
|
|||
|
};
|
|||
|
},
|
|||
|
}),
|
|||
|
document.getElementById("calendar"));
|
|||
|
function o(e) {
|
|||
|
document.getElementById("form-event").reset(),
|
|||
|
document
|
|||
|
.getElementById("btn-delete-event")
|
|||
|
.setAttribute("hidden", !0),
|
|||
|
g.show(),
|
|||
|
i.classList.remove("was-validated"),
|
|||
|
i.reset(),
|
|||
|
(v = null),
|
|||
|
(l.innerText = "Add Event"),
|
|||
|
(newEventData = e),
|
|||
|
document
|
|||
|
.getElementById("edit-event-btn")
|
|||
|
.setAttribute("data-id", "new-event"),
|
|||
|
document.getElementById("edit-event-btn").click(),
|
|||
|
document
|
|||
|
.getElementById("edit-event-btn")
|
|||
|
.setAttribute("hidden", !0);
|
|||
|
}
|
|||
|
var r = new Choices("#event-category", { searchEnabled: !1 }),
|
|||
|
b = new FullCalendar.Calendar(e, {
|
|||
|
timeZone: "local",
|
|||
|
editable: !0,
|
|||
|
droppable: !0,
|
|||
|
selectable: !0,
|
|||
|
navLinks: !0,
|
|||
|
initialView: "multiMonthYear",
|
|||
|
themeSystem: "bootstrap",
|
|||
|
headerToolbar: {
|
|||
|
left: "prev,next today",
|
|||
|
center: "title",
|
|||
|
right: "multiMonthYear,dayGridMonth,timeGridWeek,timeGridDay,listMonth",
|
|||
|
},
|
|||
|
eventResize: function (t) {
|
|||
|
var e = y.findIndex(function (e) {
|
|||
|
return e.id == t.event.id;
|
|||
|
});
|
|||
|
y[e] &&
|
|||
|
((y[e].title = t.event.title),
|
|||
|
(y[e].start = t.event.start),
|
|||
|
(y[e].end = t.event.end || null),
|
|||
|
(y[e].allDay = t.event.allDay),
|
|||
|
(y[e].className = t.event.classNames[0]),
|
|||
|
(y[e].description =
|
|||
|
t.event._def.extendedProps.description || ""),
|
|||
|
(y[e].location =
|
|||
|
t.event._def.extendedProps.location || "")),
|
|||
|
upcomingEvent(y);
|
|||
|
},
|
|||
|
eventClick: function (e) {
|
|||
|
document
|
|||
|
.getElementById("edit-event-btn")
|
|||
|
.removeAttribute("hidden"),
|
|||
|
document
|
|||
|
.getElementById("btn-save-event")
|
|||
|
.setAttribute("hidden", !0),
|
|||
|
document
|
|||
|
.getElementById("edit-event-btn")
|
|||
|
.setAttribute("data-id", "edit-event"),
|
|||
|
(document.getElementById("edit-event-btn").innerHTML =
|
|||
|
"Edit"),
|
|||
|
eventClicked(),
|
|||
|
flatPickrInit(),
|
|||
|
flatpicekrValueClear(),
|
|||
|
g.show(),
|
|||
|
i.reset(),
|
|||
|
(v = e.event),
|
|||
|
(document.getElementById("modal-title").innerHTML = ""),
|
|||
|
(document.getElementById("event-location-tag").innerHTML =
|
|||
|
void 0 === v.extendedProps.location
|
|||
|
? "No Location"
|
|||
|
: v.extendedProps.location),
|
|||
|
(document.getElementById(
|
|||
|
"event-description-tag"
|
|||
|
).innerHTML =
|
|||
|
void 0 === v.extendedProps.description
|
|||
|
? "No Description"
|
|||
|
: v.extendedProps.description),
|
|||
|
(document.getElementById("event-title").value = v.title),
|
|||
|
(document.getElementById("event-location").value =
|
|||
|
void 0 === v.extendedProps.location
|
|||
|
? "No Location"
|
|||
|
: v.extendedProps.location),
|
|||
|
(document.getElementById("event-description").value =
|
|||
|
void 0 === v.extendedProps.description
|
|||
|
? "No Description"
|
|||
|
: v.extendedProps.description),
|
|||
|
(document.getElementById("eventid").value = v.id),
|
|||
|
v.classNames[0] &&
|
|||
|
(r.destroy(),
|
|||
|
(r = new Choices("#event-category", {
|
|||
|
searchEnabled: !1,
|
|||
|
})).setChoiceByValue(v.classNames[0]));
|
|||
|
function t(e) {
|
|||
|
var t = "" + ((e = new Date(e)).getMonth() + 1),
|
|||
|
n = "" + e.getDate();
|
|||
|
return [
|
|||
|
e.getFullYear(),
|
|||
|
(t = t.length < 2 ? "0" + t : t),
|
|||
|
(n = n.length < 2 ? "0" + n : n),
|
|||
|
].join("-");
|
|||
|
}
|
|||
|
var e = v.start,
|
|||
|
n = v.end,
|
|||
|
a = null,
|
|||
|
d =
|
|||
|
(null != n &&
|
|||
|
(a = (d = new Date(n)).setDate(d.getDate() - 1)),
|
|||
|
null == n ? str_dt(e) : str_dt(e) + " to " + str_dt(a)),
|
|||
|
n = null == n ? t(e) : t(e) + " to " + t(a),
|
|||
|
e =
|
|||
|
(flatpickr(start_date, {
|
|||
|
defaultDate: n,
|
|||
|
altInput: !0,
|
|||
|
altFormat: "j F Y",
|
|||
|
dateFormat: "Y-m-d",
|
|||
|
mode: "range",
|
|||
|
onChange: function (e, t, n) {
|
|||
|
1 < t.split("to").length
|
|||
|
? document
|
|||
|
.getElementById("event-time")
|
|||
|
.setAttribute("hidden", !0)
|
|||
|
: (document
|
|||
|
.getElementById("timepicker1")
|
|||
|
.parentNode.classList.remove(
|
|||
|
"d-none"
|
|||
|
),
|
|||
|
document
|
|||
|
.getElementById("timepicker1")
|
|||
|
.classList.replace(
|
|||
|
"d-none",
|
|||
|
"d-block"
|
|||
|
),
|
|||
|
document
|
|||
|
.getElementById("timepicker2")
|
|||
|
.parentNode.classList.remove(
|
|||
|
"d-none"
|
|||
|
),
|
|||
|
document
|
|||
|
.getElementById("timepicker2")
|
|||
|
.classList.replace(
|
|||
|
"d-none",
|
|||
|
"d-block"
|
|||
|
),
|
|||
|
document
|
|||
|
.getElementById("event-time")
|
|||
|
.removeAttribute("hidden"));
|
|||
|
},
|
|||
|
}),
|
|||
|
(document.getElementById(
|
|||
|
"event-start-date-tag"
|
|||
|
).innerHTML = d),
|
|||
|
getTime(v.start)),
|
|||
|
a = getTime(v.end);
|
|||
|
e == a
|
|||
|
? (document
|
|||
|
.getElementById("event-time")
|
|||
|
.setAttribute("hidden", !0),
|
|||
|
flatpickr(document.getElementById("timepicker1"), {
|
|||
|
enableTime: !0,
|
|||
|
noCalendar: !0,
|
|||
|
dateFormat: "H:i",
|
|||
|
}),
|
|||
|
flatpickr(document.getElementById("timepicker2"), {
|
|||
|
enableTime: !0,
|
|||
|
noCalendar: !0,
|
|||
|
dateFormat: "H:i",
|
|||
|
}))
|
|||
|
: (document
|
|||
|
.getElementById("event-time")
|
|||
|
.removeAttribute("hidden"),
|
|||
|
flatpickr(document.getElementById("timepicker1"), {
|
|||
|
enableTime: !0,
|
|||
|
noCalendar: !0,
|
|||
|
dateFormat: "H:i",
|
|||
|
defaultDate: e,
|
|||
|
}),
|
|||
|
flatpickr(document.getElementById("timepicker2"), {
|
|||
|
enableTime: !0,
|
|||
|
noCalendar: !0,
|
|||
|
dateFormat: "H:i",
|
|||
|
defaultDate: a,
|
|||
|
}),
|
|||
|
(document.getElementById(
|
|||
|
"event-timepicker1-tag"
|
|||
|
).innerHTML = tConvert(e)),
|
|||
|
(document.getElementById(
|
|||
|
"event-timepicker2-tag"
|
|||
|
).innerHTML = tConvert(a))),
|
|||
|
(newEventData = null),
|
|||
|
(l.innerText = v.title),
|
|||
|
document
|
|||
|
.getElementById("btn-delete-event")
|
|||
|
.removeAttribute("hidden"),
|
|||
|
document
|
|||
|
.querySelector(".fc-multiMonthYear-button")
|
|||
|
.classList.contains("fc-button-active") &&
|
|||
|
document
|
|||
|
.querySelector(".fc-popover")
|
|||
|
.classList.add("d-none");
|
|||
|
},
|
|||
|
dateClick: function (e) {
|
|||
|
o(e);
|
|||
|
},
|
|||
|
events: y,
|
|||
|
eventReceive: function (e) {
|
|||
|
e = {
|
|||
|
id: parseInt(e.event.id),
|
|||
|
title: e.event.title,
|
|||
|
start: e.event.start,
|
|||
|
allDay: e.event.allDay,
|
|||
|
className: e.event.classNames[0],
|
|||
|
};
|
|||
|
y.push(e), upcomingEvent(y);
|
|||
|
},
|
|||
|
eventDrop: function (t) {
|
|||
|
var e = y.findIndex(function (e) {
|
|||
|
return e.id == t.event.id;
|
|||
|
});
|
|||
|
y[e] &&
|
|||
|
((y[e].title = t.event.title),
|
|||
|
(y[e].start = t.event.start),
|
|||
|
(y[e].end = t.event.end || null),
|
|||
|
(y[e].allDay = t.event.allDay),
|
|||
|
(y[e].className = t.event.classNames[0]),
|
|||
|
(y[e].description =
|
|||
|
t.event._def.extendedProps.description || ""),
|
|||
|
(y[e].location =
|
|||
|
t.event._def.extendedProps.location || "")),
|
|||
|
upcomingEvent(y);
|
|||
|
},
|
|||
|
});
|
|||
|
b.render(),
|
|||
|
upcomingEvent(y),
|
|||
|
i.addEventListener("submit", function (e) {
|
|||
|
e.preventDefault();
|
|||
|
var t,
|
|||
|
n,
|
|||
|
e = document.getElementById("event-title").value,
|
|||
|
a = document.getElementById("event-category").value,
|
|||
|
d = document
|
|||
|
.getElementById("event-start-date")
|
|||
|
.value.split("to"),
|
|||
|
l = new Date(d[0].trim()),
|
|||
|
i = new Date(d[1]),
|
|||
|
i = (i.setDate(i.getDate() + 1), d[1] ? i : ""),
|
|||
|
o = null,
|
|||
|
r = document.getElementById("event-location").value,
|
|||
|
c = document.getElementById("event-description").value,
|
|||
|
s = document.getElementById("eventid").value,
|
|||
|
m = !1,
|
|||
|
u =
|
|||
|
(1 < d.length
|
|||
|
? ((o = new Date(d[1])).setDate(o.getDate() + 1),
|
|||
|
(d = new Date(d[0])),
|
|||
|
(m = !0))
|
|||
|
: ((t = d),
|
|||
|
(u = document
|
|||
|
.getElementById("timepicker1")
|
|||
|
.value.trim()),
|
|||
|
(n = document
|
|||
|
.getElementById("timepicker2")
|
|||
|
.value.trim()),
|
|||
|
(d = new Date(d + "T" + u)),
|
|||
|
(o = new Date(t + "T" + n))),
|
|||
|
y.length + 1);
|
|||
|
!1 === p[0].checkValidity()
|
|||
|
? p[0].classList.add("was-validated")
|
|||
|
: (v
|
|||
|
? (v.setProp("id", s),
|
|||
|
v.setProp("title", e),
|
|||
|
v.setProp("classNames", [a]),
|
|||
|
v.setStart(l),
|
|||
|
v.setEnd(i),
|
|||
|
v.setAllDay(m),
|
|||
|
v.setExtendedProp("description", c),
|
|||
|
v.setExtendedProp("location", r),
|
|||
|
(t = y.findIndex(function (e) {
|
|||
|
return e.id == v.id;
|
|||
|
})),
|
|||
|
y[t] &&
|
|||
|
((y[t].title = e),
|
|||
|
(y[t].start = l),
|
|||
|
(y[t].end = i),
|
|||
|
(y[t].allDay = m),
|
|||
|
(y[t].className = a),
|
|||
|
(y[t].description = c),
|
|||
|
(y[t].location = r)),
|
|||
|
b.render())
|
|||
|
: (b.addEvent(
|
|||
|
(n = {
|
|||
|
id: u,
|
|||
|
title: e,
|
|||
|
start: d,
|
|||
|
end: o,
|
|||
|
allDay: m,
|
|||
|
className: a,
|
|||
|
description: c,
|
|||
|
location: r,
|
|||
|
})
|
|||
|
),
|
|||
|
y.push(n)),
|
|||
|
g.hide(),
|
|||
|
upcomingEvent(y));
|
|||
|
}),
|
|||
|
document
|
|||
|
.getElementById("btn-delete-event")
|
|||
|
.addEventListener("click", function (e) {
|
|||
|
if (v) {
|
|||
|
for (var t = 0; t < y.length; t++)
|
|||
|
y[t].id == v.id && (y.splice(t, 1), t--);
|
|||
|
upcomingEvent(y), v.remove(), (v = null), g.hide();
|
|||
|
}
|
|||
|
}),
|
|||
|
document
|
|||
|
.getElementById("btn-new-event")
|
|||
|
.addEventListener("click", function (e) {
|
|||
|
flatpicekrValueClear(),
|
|||
|
flatPickrInit(),
|
|||
|
o(),
|
|||
|
document
|
|||
|
.getElementById("edit-event-btn")
|
|||
|
.setAttribute("data-id", "new-event"),
|
|||
|
document.getElementById("edit-event-btn").click(),
|
|||
|
document
|
|||
|
.getElementById("edit-event-btn")
|
|||
|
.setAttribute("hidden", !0);
|
|||
|
});
|
|||
|
});
|
|||
|
var str_dt = function (e) {
|
|||
|
var e = new Date(e),
|
|||
|
t =
|
|||
|
"" +
|
|||
|
[
|
|||
|
"January",
|
|||
|
"February",
|
|||
|
"March",
|
|||
|
"April",
|
|||
|
"May",
|
|||
|
"June",
|
|||
|
"July",
|
|||
|
"August",
|
|||
|
"September",
|
|||
|
"October",
|
|||
|
"November",
|
|||
|
"December",
|
|||
|
][e.getMonth()],
|
|||
|
n = "" + e.getDate(),
|
|||
|
e = e.getFullYear();
|
|||
|
return (
|
|||
|
t.length < 2 && (t = "0" + t),
|
|||
|
[(n = n.length < 2 ? "0" + n : n) + " " + t, e].join(",")
|
|||
|
);
|
|||
|
};
|