2010-08-23 3 views
0

J'ai récemment commencé à utiliser le plugin jaguar wdClendar pour l'un de mes sites intranet. Cela fonctionne très bien mais il y a eu quelques demandes faites que je n'arrive pas à faire. J'ai le calendrier par défaut pour afficher une vue mensuelle. Lorsque la page est chargée pour la première fois, l'emplacement où la plage de dates doit être simplement indique "Chargement". J'ai essayé plusieurs façons de le forcer à se rafraîchir mais ce ne sera pas jusqu'à ce que je change des mois ou change la vue. C'est le premier problème et même le site de démonstration montre le même comportement.Comment puis-je afficher le nom du mois au lieu de la plage de dates dans wdCalendar jquery plugin?

Loading http://lh6.ggpht.com/_HzVXTmY0YG8/THKs5Gk_WRI/AAAAAAAAAFY/h10ozDSY_OE/s800/loading.PNG

J'utilise Firefox/Firebug pour le débogage javascript. Si je mets un point d'arrêt dans le code au var p = $("#gridcontainer").bcalendar(op).BcalGetOp(); et le franchis, cela fonctionne. L'affichage de la plage de dates est mis à jour. Mais pas sur un affichage régulier de la page et il n'y a pas d'erreurs lorsque la page se charge. Il semble que le morceau de code s'exécute avant que la page soit entièrement chargée. Voici un extrait.

$(document).ready(function() {  
    $("#content_table").width("95%"); 
     var view="month";   

     var DATA_FEED_URL = "/media/js/wdCalendar/php/datafeed.php"; 
     var op = { 
      view: view, 
      theme:3, 
weekstartday:0, 
      showday: new Date(), 
      EditCmdhandler:Edit, 
      DeleteCmdhandler:Delete, 
      ViewCmdhandler:View,  
      onWeekOrMonthToDay:wtd, 
      onBeforeRequestData: cal_beforerequest, 
      onAfterRequestData: cal_afterrequest, 
      onRequestDataError: cal_onerror, 
      autoload:true, 
      url: DATA_FEED_URL + "?method=list", 
      quickAddUrl: DATA_FEED_URL + "?method=add", 
      quickUpdateUrl: DATA_FEED_URL + "?method=update", 
      quickDeleteUrl: DATA_FEED_URL + "?method=remove"   
     }; 
     var $dv = $("#calhead"); 
     var _MH = document.documentElement.clientHeight; 
     var dvH = $dv.height() + 2; 
     op.height = _MH - dvH; 
     op.eventItems =[]; 

     var p = $("#gridcontainer").bcalendar(op).BcalGetOp(); 
     if (p && p.datestrshow) { 
      $("#txtdatetimeshow").text(p.datestrshow); 
     } 
     ...}); 

Les 4 dernières lignes sont ce qui devrait changer l'affichage. Tout le reste (...) dans le fichier sont des fonctions et des sélecteurs jQuery.

Le deuxième problème est que mon client souhaite que le nom du mois s'affiche, au lieu de la plage de dates, en mode mensuel. Je ne suis pas assez avancé avec javascript pour effectuer ce changement moi-même.

Loading http://lh6.ggpht.com/_HzVXTmY0YG8/THKs5ZTCdBI/AAAAAAAAAFc/sFBC8GLiqFY/s800/range.PNG

Toute aide sera grandement appréciée.

Répondre

2

Je pense que cela résoudra vos deux problèmes ... remplacez votre méthode cal_afterrequest par celle ci-dessous.

Cheers,

Mike

 function cal_afterrequest(type) 
     { 
      switch(type) 
      { 
       case 1: 
        $("#loadingpannel").hide(); 
        var theMonths= new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); 
        //$("#txtdatetimeshow").text(this.datestrshow); 
        $("#txtdatetimeshow").text(theMonths[this.showday.getMonth()] + " " + this.showday.getFullYear()); 
        break; 
       case 2: 
       case 3: 
       case 4: 
        $("#loadingpannel").html("Success!"); 
        window.setTimeout(function(){ $("#loadingpannel").hide();},2000); 
       break; 
      } 
     } 
+0

J'ai effectivement résolu ceci par moi-même mais j'ai oublié de mettre à jour la question. En tant que tel, je n'ai pas testé cela mais merci pour la réponse tout de même. – DewBoy3d

0

J'ai aussi rencontré un problème et a constaté que le problème est dans le fichier ajax

"datafeed.php"

de changement à ce

case "week": 
    //suppose first day of a week is monday 
    //$monday = date("d", $phpTime) - date('N', $phpTime) + 1; 
    if (date('N', $phpTime) == 7) { 
     $sunday = date("d", $phpTime); 
    } else { 
     $sunday = date("d", $phpTime) - date('N', $phpTime); 
    } 
    //echo date('N', $phpTime); 
    $st = mktime(0,0,0,date("m", $phpTime), $sunday, date("Y", $phpTime)); 
    $et = mktime(0,0,-1,date("m", $phpTime), $sunday+7, date("Y", $phpTime)); 
    break; 
Questions connexes