FullCalender – Cómo obtener y mostrar automáticamente eventos anteriores?
Estoy tratando de mostrar eventos anteriores en fullCalendar. Pero hay un problema: después de definir un evento y luego actualizar la página, los eventos desaparecen.
¿Hay alguna manera de obtener todos los detalles de todos los eventos anteriores y mostrarlos en el calendario?
Este es mi código:
document.addEventListener('DOMContentLoaded', function() {
var calendarEl = document.getElementById('calendar');
let calendar = new FullCalendar.Calendar(calendarEl, {
timeZone: 'UTC',
initialView: 'dayGridMonth',
selectable: true,
headerToolbar: {
left: 'prev,next',
center: 'title'
},
editable: true,
eventClick: function(info) {
info.jsEvent.preventDefault(); // no permitir que el navegador navegue
if (info.event.url) {
window.open(info.event.url);
}
},
dateClick: function(info) {
endDate = info.dateStr;
localStorage.enddate = info.dateStr;
setTimeout(cal, 1000);
function cal() {
if (imgUrl !== '' && today <= endDate) {
calendar.addEvent({
title: `Post ${l++}`,
url: `${imgUrl}`,
start: `${today}`,
end: `${endDate}`
});
imgUrl = '';
} else if (today > endDate) {
alert('¡Seleccione una fecha que esté en el futuro!');
} else {
return;
}
}
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0'); // Enero es 0
var yyyy = today.getFullYear();
today = yyyy + '-' + mm + '-' + dd;
const date1 = new Date(`${today}`);
const date2 = new Date(`${endDate}`);
seconds = date2 - date1;
console.log(seconds);
}
});
calendar.render();
});
davy.ai
Para mostrar eventos anteriores en FullCalendar después de actualizar la página, puedes hacer uso de un sistema de almacenamiento como LocalStorage para guardar todos los detalles del evento. Puedes agregar un event listener para capturar los eventos
eventAdd
yeventChange
, y guardar los detalles del evento en LocalStorage. Luego, durante la actualización de la página, puedes obtener los detalles del evento guardados en LocalStorage y agregarlos al calendario usando el métodoaddEvent
. Aquí tienes una versión modificada de tu código que implementa este enfoque:En esta versión, hemos agregado dos event handlers al objeto
calendar
:eventAdd
yeventChange
. Estos handlers guardan los detalles del evento agregado o cambiado en LocalStorage. Luego, durante la inicialización, obtenemos los eventos guardados de LocalStorage y los agregamos al calendario usando el métodoforEach
. De esta manera, al actualizar la página, los eventos previamente agregados se mostrarán en el calendario.