Bonjour,
Voilà plusieurs heures que j'essaie d'arriver à ajouter des évènements provenant d'un calendrier google public dans un plugin calendario qui accepte les éléments sous la forme :
Pour un futur besoin, il n'est pas possible d'avoir 2 fois la même date dans 2 entrées différentes. Une date équivaut à une valeur. Or à l'avenir je vais avoir besoin de sélectionner 2 calendriers... il va me falloir merger des évènements pour une même date. Ca me semble compliqué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 var calendarEvents = { 'mm-dd-yyyy' : 'Event', 'mm-dd-yyyy' : 'Event', 'mm-dd-yyyy' : 'Event', 'mm-dd-yyyy' : 'Event', 'mm-dd-yyyy' : 'Event', 'mm-dd-yyyy' : 'Event', }
Pour le moment mon problème n'est pas là. J'ai récupéré le JSON du calendrier sauf que j'ai eu des soucis. Tout d'abord, le plugin ne permet pas d'utiliser une date de début et une date de fin, donc, vu que GC me fournit ces dates de début et de fin, j'ai utilisé une fonction permettant de récupérer l'ensemble des jours entre 2 dates (j'ai bien galéré).
Mais pour faire tout ça, j'ai utilisé un tableau et des .push().
Quand je fais un alert de mon tableau final, il semble comporter les bonnes data, sauf que je suis obligé (le suis-je vraiment) de faire fonctionner mon plugin calendario au sein de $.getJSON car sinon, je perds mon tableau (qui redevient vide).
Or dès que je l'intègre, ça ne fonctionne plus.
Quelqu'un aurait-il une idée sur comment faire (puis après comment merger les events) ?
Voici mon code :
Merci d'avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 $.getJSON("url", function(data) { var calendarEvents = []; $.each(data.items, function (items, data) { var startDate = data.start.dateTime, endDate = data.end.dateTime ; startDate = startDate.slice(0, -15); endDate = endDate.slice(0, -15); startDate = startDate.replace(/-/gi, ','); endDate = endDate.replace(/-/gi, ','); var currentDate = new Date(startDate), endDate = new Date(endDate) allDays = []; ; while (currentDate <= endDate) { dateTemp = new Date(currentDate); dateTemp = dateTemp.toLocaleDateString(); dateTemp = dateTemp.replace(/\//gi, '-'); allDays.push('\''+ dateTemp +'\' : \'<span class="event">Occupé</span>\''); currentDate.setDate(currentDate.getDate() + 1); } calendarEvents.push(allDays); }); $('#calendar').calendario({ caldata : calendarEvents }), $month = $('#custom-month').html(cal.getMonthName()), $year = $('#custom-year').html(cal.getYear()); });
Bonne journée,
Partager