2012-03-08 14 views
1

GoogleカレンダーとfullCalendarの間に完全な同期カレンダーを作成しようとしています。 今はサイズ変更時に日付オブジェクトに問題があります。"オブジェクト#<Object>にはメソッドがありません" fullcalendar

eventResize: function(event,dayDelta,minuteDelta,revertFunc,start,end) { 
      alert($.fullCalendar.formatDate(end, 'u')); 
      // alert($.fullCalendar.formatDate(start, 'yyyy-MM-dd')); 
      alert(
       "The end date of " + event.title + "has been moved " + 
       dayDelta + " days and " + 
       minuteDelta + " minutes." 
      ); 
      // Demande la confirmation du redimenssionnement 
      if (!confirm("Confirmation la modification?")) { 
       revertFunc(); 
      } 
     }, 

だから、私は間違って何かをすることを確信している...

calendrier.js:

/* 
* Mise en forme du calendrier et des différentes fonctions/interactions avec 
* celui ci 
*/ 

$(document).ready(function() { 
    var date = new Date(); 
    var d = date.getDate(); 
    var m = date.getMonth(); 
    var y = date.getFullYear(); 

    $('#calendar').fullCalendar({ 
     // Chargement des énévements depuis le calendrier google 
     events: { 
      // calendrier partager en public 
      url : 'https://www.google.com/calendar/feeds/riat.tom%40gmail.com/public/basic', 
      editable: true  
     }, 

     // Entete du calendrier 
     header: { 
       left: 'prev,next today', 
       center: 'title', 
       right: 'month,agendaWeek,agendaDay' 
     }, 

     // Vue par défaut mise en semaine 
     defaultView: 'agendaWeek', 
     // Permet de sélectionner les events 
     selectable: true, 

     // Aide à la sélection 
     selectHelper: true, 

     // Rend le calendrier éditable 
     editable: true, 

     /////////////////////////////////////////////////////////////////////////// 
     // Lors d'une sélection d'une plage on propose un ajout avec entré de titre 
     /////////////////////////////////////////////////////////////////////////// 
     select: function(start, end) { 
      // Recois un texte entré 
      var title = prompt('Event Title:'); 
      // Création de l'évenement dans un format de date ISO8601 UTC 
      if(title != '' && title != null){ 
       createEvent(
         title, 
         $.fullCalendar.formatDate(start, 'yyyy-MM-dd') + 'T' + $.fullCalendar.formatDate(start, 'HH:mm:ss.000+01:00'),  
         $.fullCalendar.formatDate(end, 'yyyy-MM-dd') + 'T' + $.fullCalendar.formatDate(end, 'HH:mm:ss.000+01:00') 
       ); 
      } 


      // on enleve la sélection pour laisser place à l'évenement 
      $('#calendar').fullCalendar('unselect'); 

      // On actualise le calendrier en rappelant toutes les sources 
      $('#calendar').fullCalendar('refetchEvents'); 
     }, 
     /////////////////////////////////////////////////////////////////////////// 
     // Après un drag'n'drop d'un évenement 
     /////////////////////////////////////////////////////////////////////////// 
     eventDrop: function(event,dayDelta,minuteDelta,revertFunc) { 
      alert(
       event.title + " was moved " + 
       dayDelta + " days and " + 
       minuteDelta + " minutes." 
      ); 

      if (!confirm("Are you sure about this change?")) { 
       revertFunc(); 
      } 

     }, 

     /////////////////////////////////////////////////////////////////////////// 
     // Après une modification de temps d'intervention 
     /////////////////////////////////////////////////////////////////////////// 
     eventResize: function(event,dayDelta,minuteDelta,revertFunc,start,end) { 
      alert($.fullCalendar.formatDate(end, 'u')); 
      // alert($.fullCalendar.formatDate(start, 'yyyy-MM-dd')); 
      alert(
       "The end date of " + event.title + "has been moved " + 
       dayDelta + " days and " + 
       minuteDelta + " minutes." 
      ); 
      // Demande la confirmation du redimenssionnement 
      if (!confirm("Confirmation la modification?")) { 
       revertFunc(); 
      } 
     }, 

     /////////////////////////////////////////////////////////////////////////// 
     // ouverture d'une popup lors du clic sur l'évenement 
     /////////////////////////////////////////////////////////////////////////// 
     eventClick: function(calEvent) { 
      /////////////////////////////////////////////////////////////////////////// 
      // Suppression de l'évenement au clic 
      /////////////////////////////////////////////////////////////////////////// 
      /* 
      deleteEvent(calEvent.title); 
      // Empeche la redirection vers le calendrier google 
      if (!confirm("Confirmation la modification?")) { 
       revertFunc(); 
      } 
      */ 

      /////////////////////////////////////////////////////////////////////////// 
      // Modification de l'évenement au clic 
      /////////////////////////////////////////////////////////////////////////// 
      var newEvent = prompt('Entrer un nouveau nom'); 
      editEvent('test a', newEvent); 

      return false; 
     } 
    }); 
}); 

のindex.php:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Test calendrier</title> 
    <link rel='stylesheet' media="" type='text/css' href='css/fullcalendar.css' /> 
    <script type='text/javascript' src='js/jquery.js'></script> 
    <script type='text/javascript' src='js/fullcalendar.min.js'></script> 
    <script type='text/javascript' src='js/gcal.js'></script> 
    <script type='text/javascript' src='js/jquery-ui.min.js'></script> 

    <script type='text/javascript' src='js/account.js'></script> 
    <script type='text/javascript' src='js/event.js'></script> 
    <script type='text/javascript' src='js/calendrier.js'></script> 

    <!-- <script src="http://www.google.com/jsapi?key=ABQIAAAAEobLGDxmyE-A9YknRQOjkBT2yXp_ZAY8_ufC3CFXhHIE1NvwkxRAbim8Zaj8QsHGwbTcqgYmr1rXlg" type="text/javascript"></script> 
    Clé localhost --> 
    <script src="http://www.google.com/jsapi?key=ABQIAAAAEobLGDxmyE-A9YknRQOjkBRBSQP7kN3nJ0TG1omTe6BwHiHeOBSf0Z4zFlArCAZ6g9Hu-lT6VojEeQ" type="text/javascript"></script> 

    <script type="text/javascript"> 
     // Récupération des données utilisateurs 
     google.load("gdata", "1") 
    </script> 
</head> 

<body> 
    <input type='checkbox' id='drop-remove' /> <label for='drop-remove'>remove after drop</label> 
    <div class='external-event'>My Event 1</div> 
    <div class='external-event'>My Event 2</div> 
    <div class='external-event'>My Event 3</div> 
    <div class='external-event'>My Event 4</div> 
    <div class='external-event'>My Event 5</div> 


    <div id="calendar" style="width:900px; margin: 0 px auto;"></div> 
    <img src="images/any.jpg" style="position:absolute; top:-10000px;" /> 

    <input type="button" value="Affiche Event private" onclick="alert(retriveEvent())" /> 
    <input type="button" value="login" onclick="getMyFeed();" /> 
    <input type="button" value="info" onclick="alert(doCheck());" /> 
    <input type="button" value="logout" onclick="doLogout();" /> 
    <input type ="button" value="refresh" onclick="$('#calendar').fullCalendar('refetchEvents');" /> 
    <input type="button" value="affiche date" /> 

    <div id="val"></div> 
</body> 
</html> 
+0

どの言語:この1は私が代わりに「イベント」

も良いコードの「スタート」を使用しようとしたのですか?タグを付けてください。 – vulkanino

+0

完了、申し訳ありません:) – Biwaa

+2

あなた自身であなたの質問への答えを思いついた場合は、その質問への回答を編集するのではなく、回答として投稿してください。 – josh3736

答えて

0

さて、私が間違っていました。

答えは、私が悪いオブジェクトを使用しているということです。

eventResize: function(event,dayDelta,minuteDelta,revertFunc) { 
     alert(event.start); 
     alert(event.end); 
     /* 
     alert(
      "The end date of " + event.title + "has been moved " + 
      dayDelta + " days and " + 
      minuteDelta + " minutes." 
     ); 
     */ 
     // Demande la confirmation du redimenssionnement 
     if (!confirm("Confirmation la modification?")) { 
      revertFunc(); 
     } else { 
      alert(event.title); 
      alert('event édité'); 
     } 
    }, 
+0

あなた自身の回答を受け入れることができます(FYI) – rlemon

+0

あなたは正しいです:D完了;) – Biwaa

関連する問題