2015-12-21 1 views
0

EDIT TL; DR: compris ce qui était à l'origine du problème temporairement, le mode de compatibilité IE brise ce plugin (v2.5) dans IE10 10.0.34JQuery FullCalendar rendu des événements sur le mauvais jour en mode mois

EDIT: Je Suis un Noob c'est IE10. Même en considérant que j'avais désactivé le glisser-déposer et l'édition d'IE10, je me suis trompé. Je fais presque tous mes tests dans IE10 car il est le navigateur mandaté pour les applications web internes, fullcalendar montre la compatibilité IE8 + sur leur page, donc je ne l'avais pas testé sur les navigateurs jusqu'à maintenant en désespoir de cause/rage. Quelqu'un at-il eu des problèmes avec cela? Des idées comment je peux le réparer ou comment s'y prendre peut-être tracer le problème? C'est un peu hors de ma timonerie mais je veux que cette chose fonctionne et par les dieux je vais le faire fonctionner ou mourir en essayant.

J'essayais d'utiliser fullcalendar comme partie d'un frontal pour un affichage simple. L'application Web est fournie avec Oracle Portal, ce qui peut avoir une incidence.

Voici le script d'initialisation du calendrier, il se lie à un div donc rien de fantaisie:

<script> 
$(document).ready(function() { 
    var events = []; 
    var e = {} 
    <%FOR event_rec in month_events LOOP%> 
    e = { 
       id: "<%=event_rec.event_id%>", 
       title: "<%=event_rec.event_name%>", 
       start: "<%=event_rec.event_day%>T<%=to_char(event_rec.start_hr,'FM00')%>:<%=to_char(event_rec.start_min,'FM00')%>:00", 
       end: "<%=event_rec.event_day%>T<%=to_char(event_rec.end_hr,'FM00')%>:<%=to_char(event_rec.end_min,'FM00')%>:00", 
       description: "<%=event_rec.notes%>" 
     }; 
    events.push(e); 
    <%end LOOP;%> 

    $("#calendar").fullCalendar({ 
     header: { 
      left: "prev,next", 
      center: "title", 
      right: "month,basicWeek,basicDay" 
     }, 
     titleFormat: 'MMMM D, YYYY', 
     buttonText: { 
      prev: 'Previous', 
      next: 'Next' 
     }, 
     defaultDate: "<%=v_default_date%>", 
     editable:false, 
     allDayDefault:false, 
     eventStartEditable:false, 
     eventDurationEditable:false, 
     eventLimit:true, 
     eventOrder:"start", 
     dayClick: function(date, jsEvent, view) { 
       //Open day by clicking on tile 
       $('#calendar').fullCalendar('gotoDate', date); 
       $('#calendar').fullCalendar('changeView', "basicDay"); 
     }, 
     timezone : 'local'  
    }); 

    $('#calendar').fullCalendar('addEventSource',events); 

}); 

Les <% =%> balises indiquent où qu'il appelle le code de faux derrière c'est le portail Oracle , c'est en boucle à travers un petit curseur que oui, c'est moins qu'un moyen idéal de le faire mais c'est tout ce que je peux faire.

Il ressemble à ceci à la page de chargement/render:

e = { 
       id: "1", 
       title: "Test Event 1", 
       start: "2015-12-10T11:00:00", 
       end: "2015-12-10T14:00:00", 
       description: "Testing Notes" 
     }; 

Maintenant pour la partie amusante:

Image

Voir les jours encerclés en rouge? Ces jours n'ont aucun événement, tous les événements sont les 10 et 12. Je ne peux pas pour la vie de moi comprendre pourquoi ces événements affichent dans les mauvais jours. J'ai d'abord pensé à un problème de données avec ce tableau, comme si quelque chose avait été mal typé ou mal formaté mais toutes les dates ont des dates de début/fin identiques car je n'ai pas changé ces valeurs au début.

Des idées? Je suis complètement hors d'eux. Habituellement, dans ces situations, c'est quelque chose de petit que j'ai oublié, et dès que je demande de l'aide, je le repère. Je parie sur ceci, ou quelqu'un de plus intelligent que moi pour repérer le bousillage.

+0

Êtes-vous sûr que les dates sont analysées correctement? – Matheno

+0

Raisonnablement sûr, cette valeur de chaîne pour début et fin dans l'exemple est conforme à ce que moment.js utilise dans le plugin (ISO8601). Leur API fait la conversion. Cela m'inquiétait aussi, étant donné que je ne connais pas toutes les bizarreries d'Oracle Portal (ce qui est très nouveau), mais tout est analysé par rapport à la valeur de chaîne avant d'être jeté dans ce tableau. Je dirais que je suis sûr à 99%, mais je suis toujours en train de ruminer dans les docs Oracle en ligne pour voir si ça fait des choses bizarres lors de la conversion d'objets de date que je ne connais pas. – user5704032

Répondre

0

Le mode de compatibilité dans IE10 (10.0.34) interrompt l'application fullcalendar (ou JQuery) à partir de la version 2.5, rendant les événements restitués sur les cellules de date erronées dans la vue mensuelle mais restent corrects dans les vues de date ou de semaine. Désactiver le problème a résolu mon problème au moins pour le moment (si vous exécutez des applications héritées qui nécessitent un mode de compatibilité pour certains cas dans un méli-mélo de code spaghetti obsolète comme je le suis, ce n'est peut-être pas une solution viable correction à long terme)