Bonjour,
Je dev actuellement un calendrier pour ma boite. Or j'aimerais rendre non droppable les jours passés afin que les rendez-vous ne puisse être déplacé en arrière.
J'ai déjà effectué le fait que les éléments passés ne soient pas modifiables. Mais un événement présent ou futur peut être déplacé dans le passé.
Si quelqu'un passait par la en ayant déjà utilisé ce plugin et déjà rencontrer ce problème alors un petit coup de main me serait d'une grande aide.
Merci.
edit:
je pense que la solution est au milieu de cette pagaille :
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
38
39
40
41
42
43
44
45
46
47
48 /* Dragging ----------------------------------------------------------------------------*/ function draggableDayEvent(event, eventElement) { var hoverListener = getHoverListener(); var dayDelta; eventElement.draggable({ zIndex: 9, delay: 50, opacity: opt('dragOpacity'), revertDuration: opt('dragRevertDuration'), start: function(ev, ui) { trigger('eventDragStart', eventElement, event, ev, ui); hideEvents(event, eventElement); hoverListener.start(function(cell, origCell, rowDelta, colDelta) { eventElement.draggable('option', 'revert', !cell || !rowDelta && !colDelta); clearOverlays(); if (cell) { //setOverflowHidden(true); dayDelta = rowDelta*7 + colDelta * (opt('isRTL') ? -1 : 1); renderDayOverlay( addDays(cloneDate(event.start), dayDelta), addDays(exclEndDay(event), dayDelta) ); }else{ //setOverflowHidden(false); dayDelta = 0; } }, ev, 'drag'); }, stop: function(ev, ui) { hoverListener.stop(); clearOverlays(); trigger('eventDragStop', eventElement, event, ev, ui); if (dayDelta) { eventDrop(this, event, dayDelta, 0, event.allDay, ev, ui); }else{ eventElement.css('filter', ''); // clear IE opacity side-effects showEvents(event, eventElement); } //setOverflowHidden(false); } }); } }
EDIT SOLUTION:
Voila à force de chercher et de me tirer les cheveux (avec l'aide du chat aussi) voici la solution:
Dans le fichier fullcalendar.js:2810
En espérant que cela fonctionne pour d'autre.
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 stop: function(ev, ui) { hoverListener.stop(); clearOverlays(); trigger('eventDragStop', eventElement, event, ev, ui); if (dayDelta) { if ((Date.parse($.fullCalendar.formatDate(event.start, "yyyy-MM-dd")) + (24 * 60 * 60 * 1000 * dayDelta)) >= Date.parse($.fullCalendar.formatDate(new Date(), "yyyy-MM-dd"))) { //alert($.fullCalendar.formatDate(event.start,"yyyy-MM-dd")+dayDelta); eventDrop(this, event, dayDelta, 0, event.allDay, ev, ui); } else { alert("Le déplacement d'un evènement dans le passé est interdit."); eventDrop(this, event, 0, 0, event.allDay, ev, ui); } } else { eventElement.css('filter', ''); // clear IE opacity side-effects showEvents(event, eventElement); } //setOverflowHidden(false); }
Partager