我正在尝试在谷歌日历和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>
我错了。
答案是我用了坏物体。我尝试使用"开始"而不是"事件"
好的代码是这样的:
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é');
}
},