Estoy tratando de implementar this solution para "agotar" eventos pasados en Fullcalendar, pero no estoy teniendo suerte. Aunque no estoy muy bien versado en Javascript, asumo que estoy cometiendo algunos errores tontos.Cambiar el color de eventos pasados en Fullcalendar
me ha estado poniendo el código sugerido en fullcalendar.js, dentro de la convocatoria de daySegHTML (segs) alrededor de la línea 4587.
añadí las dos primeras líneas al final de la lista var inicial de la función (¿Por qué no, pensé) -SO algo como esto:
...
var leftCol;
var rightCol;
var left;
var right;
var skinCss;
var hoy = new Date;// get today's date
hoy = parseInt((hoy.getTime())/1000); //get today date in unix
var html = '';
...
Entonces, justo debajo, añadí las otras dos líneas dentro del ciclo:
for (i=0; i<segCnt; i++) {
seg = segs[i];
event = seg.event;
classes = ['fc-event', 'fc-event-skin', 'fc-event-hori'];
if (isEventDraggable(event)) {
classes.push('fc-event-draggable');
}
unixevent = parseInt((event.end.getTime())/1000); //event date in Unix
if (unixevent < hoy) {classes.push('fc-past');} //add class if event is old
if (rtl) {
if (seg.isStart) {
classes.push('fc-corner-right');
}
...
al ejecutar este código da como resultado un calendario renderizado sin eventos mostrados y un mensaje de error: UnEught TypeError: no se puede llamar al método 'getTime' de null
El "nulo" al que se hace referencia es, aparentemente, event.end.getTime(). Pero no estoy seguro de entender qué es exactamente lo que está mal o cómo se están ejecutando las cosas. Como está escrito, parece que debería funcionar. En este punto del código, por lo que puedo decir, event.end contiene un código de tiempo IETF válido, pero por alguna razón no está "allí" cuando intento ejecutarlo a través de getTime()?
Este no es un cambio de misión crítica para mí, pero igual sería bueno, ¡y también me gustaría entender qué está pasando y qué estoy haciendo mal! Cualquier ayuda muy apreciada!
¡Impresionante! Intenté trabajar con una devolución de llamada, pero no pude entender bien la sintaxis. (Como dije, Javascript chops desconcertantemente falta!) - desafortunadamente, esto (con una sustitución "alguna vez()" apropiada, por supuesto) está expulsando un "TypeError no detectado: no se puede llamar al método 'getTime' de null" por alguna razón. .. Por lo que puedo decir, no me gusta calev.end.getTime(). – Jeff
Sí, defina la comparación de fecha/hora como desee. En cuanto a que el calendario es nulo, rastrearlo con su depurador; se supone que es una propiedad del objeto Evento: [link] (http://arshaw.com/fullcalendar/docs/event_data/Event_Object/) – MaxD
Ah, parece que estaba persiguiendo a un poco de aversión. El primero (de varios) eventos en el calendario en cuestión fue un evento de "todo el día", por lo que la propiedad calev.end fue aparentemente "nula", lo que detuvo la ejecución posterior del código. Estoy extrayendo eventos de un calendario de Google ... ¿hay algo más que deba usar como prueba para detectar eventos de todo el día que suceden antes de "hoy"? – Jeff