202 lines
6.9 KiB
JavaScript
202 lines
6.9 KiB
JavaScript
|
|
document.addEventListener("DOMContentLoaded", function () {
|
|
var timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
|
|
/*var slotMin = new Date("2021-09-13:14:00Z")
|
|
var slotMax = new Date("2021-09-13:23:30Z")
|
|
|
|
if(slotMax.getHours()<slotMin.getHours()){
|
|
slotMax.setHours(23)
|
|
slotMax.setMinutes(59)
|
|
}
|
|
console.log(slotMin.toLocaleTimeString(),slotMax.toLocaleTimeString())*/
|
|
|
|
//document.getElementById("timezone").innerHTML=`Zona Horaria: ${timeZone}`;
|
|
var timeZoneSelectorEl = document.getElementById("time-zone-selector");
|
|
if(timeZone !== "America/Montevideo"){
|
|
var optionEl = document.createElement('option');
|
|
optionEl.value = "local";
|
|
optionEl.innerText = timeZone;
|
|
timeZoneSelectorEl.appendChild(optionEl)
|
|
}
|
|
var calendarEl = document.getElementById("calendar");
|
|
var calendar = new FullCalendar.Calendar(calendarEl, {
|
|
schedulerLicenseKey: "CC-Attribution-NonCommercial-NoDerivatives",
|
|
|
|
eventDidMount: function (info) {
|
|
|
|
if(info.backgroundColor == "gray"){
|
|
var tooltip = tippy(info.el, {
|
|
content: `${info.event.extendedProps.description.replaceAll("|",',<br/>')}`,
|
|
|
|
// content: `<strong>${info.event.title}</strong><br/><ul>${info.event.extendedProps.description.split('|').map(ses=>`<li>${ses}</li>`)}</ul>`,
|
|
|
|
allowHTML: true,
|
|
});
|
|
|
|
}
|
|
else{
|
|
|
|
var tooltip = tippy(info.el, {
|
|
content: `<strong>${info.event.title}</strong><br/><strong>${info.event.extendedProps.speaker.nombre}</strong><br/>${info.event.extendedProps.description}`,
|
|
allowHTML: true,
|
|
});
|
|
}
|
|
|
|
},
|
|
eventSources: [
|
|
{url: "/api/eventos/cursos", color: "#755baf"},
|
|
{url: "/api/eventos/plenarias", color: "#578e44"},
|
|
{url: "/api/eventos/semiplenarias", color: "#3383cb"},
|
|
{url: "/api/eventos/publicas", color: "#a57b00"},
|
|
{url: "/api/eventos/premiados", color: "darkred"},
|
|
{ url: "/api/eventos/sesiones/", color: "gray", display:'list-item', eventDidMount:function(info){
|
|
console.log(info)
|
|
}},
|
|
{url: "/api/eventos/genero", color: "#812c64"},
|
|
{
|
|
events: function (info, success, fail) {
|
|
let asamblea = {
|
|
title: "Asamblea UMALCA",
|
|
start: "2021-09-13T19:00-0300",
|
|
end: "2019-09-13T20:00-0300",
|
|
url: 'https://us02web.zoom.us/j/88195214460',
|
|
speaker: {
|
|
nombre:
|
|
"Representantes de cada una de las sociedades que integran UMALCA",
|
|
},
|
|
description:
|
|
"Estatutariamente, la asamblea reúne a los representantes de cada una de las sociedades que integran UMALCA. Las autoridades de los distintos comités (ejecutivo, científico, etc) están presentes para dar cuentas de lo actuado. No está abierta al público en general.",
|
|
color: "black",
|
|
};
|
|
success([asamblea]);
|
|
},
|
|
},
|
|
],
|
|
|
|
headerToolbar: {
|
|
center: "timeGridAll,timeGridThree,timeGridOne,listView",
|
|
},
|
|
eventTimeFormat: {
|
|
hour: "numeric",
|
|
minute: "2-digit",
|
|
meridiem: false,
|
|
},
|
|
timeZone: "America/Montevideo",
|
|
locale: "es",
|
|
initialView: "timeGridAll",
|
|
initialDate: "2021-09-13",
|
|
validRange: {
|
|
start: "2021-09-13",
|
|
end: "2021-09-18",
|
|
},
|
|
nowIndicator: true,
|
|
now: "2021-09-12",
|
|
slotMinTime: "11:00:00",
|
|
slotMaxTime: "21:00:00",
|
|
slotDuration: "00:15",
|
|
allDaySlot: false,
|
|
slotLabelFormat: {
|
|
hour: "numeric",
|
|
minute: "2-digit",
|
|
omitZeroMinute: false,
|
|
meridiem: "short",
|
|
},
|
|
eventTimeFormat: {
|
|
hour: "numeric",
|
|
minute: "2-digit",
|
|
omitZeroMinute: false,
|
|
meridiem: "short",
|
|
},
|
|
eventDisplay: "block",
|
|
views: {
|
|
timeGridAll: {
|
|
type: "timeGrid",
|
|
duration: { days: 5 },
|
|
buttonText: "Todos los dias",
|
|
},
|
|
timeGridThree: {
|
|
type: "timeGrid",
|
|
duration: { days: 2 },
|
|
buttonText: "2 dias",
|
|
},
|
|
timeGridOne: {
|
|
type: "timeGrid",
|
|
duration: { days: 1 },
|
|
buttonText: "1 dia",
|
|
},
|
|
dayGridD: {
|
|
type: "dayGridDay",
|
|
},
|
|
dayGridW: {
|
|
type: "dayGridWeek",
|
|
duration: { days: 2 },
|
|
},
|
|
listView: {
|
|
type: "listWeek",
|
|
buttonText: "Lista",
|
|
duration: { days: 2 },
|
|
},
|
|
},
|
|
});
|
|
calendar.render();
|
|
|
|
timeZoneSelectorEl.addEventListener("change", function () {
|
|
console.log(calendar.getOption('slotMinTime'))
|
|
calendar.setOption("timeZone", this.value);
|
|
switch (this.value) {
|
|
case "America/Montevideo":
|
|
calendar.setOption("locale", "es");
|
|
calendar.setOption("slotMinTime", "11:00:00");
|
|
calendar.setOption("slotMaxTime", "21:00:00");
|
|
calendar.setOption("initialDate", "2021-09-13");
|
|
calendar.setOption("validRange", {
|
|
start: "2021-09-13",
|
|
end: "2021-09-18",
|
|
});
|
|
calendar.changeView("timeGridAll");
|
|
break;
|
|
case "UTC":
|
|
calendar.setOption("locale", "en");
|
|
calendar.setOption("slotMinTime", "14:00:00");
|
|
calendar.setOption("slotMaxTime", "23:59:00");
|
|
calendar.setOption("initialDate", "2021-09-13");
|
|
calendar.setOption("validRange", {
|
|
start: "2021-09-13",
|
|
end: "2021-09-18",
|
|
});
|
|
calendar.changeView("timeGridAll");
|
|
break;
|
|
default:
|
|
calendar.setOption("locale",'en')
|
|
let initial = moment("2021-09-13T14:00Z");
|
|
let final = moment("2021-09-17T23:30Z");
|
|
let offset = initial.utcOffset();
|
|
calendar.setOption("initialDate", initial.format("Y-MM-DD"));
|
|
|
|
if(offset>0 && offset < 600){
|
|
//calendar.setOption("slotMinTime", "initial.format("H:mm")");
|
|
calendar.setOption("slotMinTime", "00:00");
|
|
//calendar.setOption("slotMaxTime", {days:1,hours:offset/60});
|
|
calendar.setOption("slotMaxTime", "24:00");
|
|
calendar.changeView("listView");
|
|
|
|
}
|
|
//let currentOffset = moment().utcOffset();
|
|
//initial.add(currentOffset, "minutes");
|
|
//calendar.setOption('slotMinTime', initial.utc().format('H:mm'))
|
|
//calendar.setOption("slotMaxTime", {days:1,hours:currentOffset/60});
|
|
else{
|
|
|
|
calendar.setOption("slotMaxTime",final.format("H:mm"));
|
|
calendar.setOption("slotMinTime", initial.format("H:mm"));
|
|
}
|
|
|
|
calendar.setOption("validRange", {
|
|
start: initial.format("Y-MM-DD"),
|
|
end:final.add(1,'d').format("Y-MM-DD")
|
|
});
|
|
}
|
|
});
|
|
});
|