2015-11-03 27 views
5

Ho iniziato a utilizzare il plug-in FullCalendar di recente. Sto cercando di implementare una funzione su come eliminare gli eventi nel calendario. Ma prima di salvare nel database, voglio controllare e disabilitare/prevenire la caduta di eventi esterni nelle date precedenti.Disabilita la disattivazione delle date passate in FullCalendar

Qualche idea su come fare questo ?? Sto cercando qualcosa di simile ai giorni passati a diventare grigio o qualcosa del genere in modo da poter visualizzare anche gli eventi già presenti. Voglio solo impedire all'utente di abbandonare un evento in una data passata.

EDIT:

drop: function (date, jsEvent, ui) { 

    if(date<currentDate) { 
     $('#calendar').fullCalendar('removeEvents', event.id); 
    } 

Ho provato ad utilizzare questo metodo per rimuovere l'evento è sceso dal calendario e per aggiungere al div di nuovo. Anche allora, non viene rimosso.

Grazie. :)

+0

qualche esempio di codice sarebbe grande + qualsiasi cosa hai provato già. –

+0

Scusa .. Non ho idea di come implementare questa funzione. Ho provato a cercare. ma nessuna serratura finora. – FireDrakon

risposta

8

eventConstraint può disabilitare trascinando al di fuori dei confini stabiliti

da disattivare giorni scorsi

/* SHADE DAYS IN THE PAST */ 
td.fc-day.fc-past { 
    background-color: #EEEEEE; 
} 

E per eventConstraint

 /* This constrains it to today or later */ 
     eventConstraint: { 
      start: moment().format('YYYY-MM-DD'), 
      end: '2100-01-01' // hard coded goodness unfortunately 
     } 

http://jsfiddle.net/1qsrjffL/

Per la 'fine' di eventConstraint, si potrebbe aggiungere giorni alla data corrente, se volete vs hard coded

EDIT:

al grigio out nella vista giorno è possibile utilizzare BusinessHours

businessHours: { 
    start: moment().format('HH:mm'), /* Current Hour/Minute 24H format */ 
    end: '17:00', // 5pm? set to whatever 
    dow: [0,1,2,3,4,5,6] // Day of week. If you don't set it, Sat/Sun are gray too 
} 

cadente di eventi esterni sul agendaDay in passato è consentito t o si verificano Modifica del eventConstraint per includere il tempo funziona 'AAAA-MM-GG HH: MM' ma impedisce cadere oggi in vista Mese ...

http://jsfiddle.net/1qsrjffL/1/

+0

Questo è perfetto !! Grazie.Puoi dirmi dove posso trovare le classi css per le fasce orarie in modalità agendaDay? Devo oscurare anche le fasce orarie passate per il giorno corrente. – FireDrakon

+0

L'uso di businessHours ti consente di disattivarlo e impostare Hour/Minute in eventConstraint impedisce il rilascio nel passato nella vista di settimana o giorno. Tuttavia, come effetto collaterale, impedisce anche di far cadere un evento oggi nella vista Mese. Risposta aggiornata e collegamento al violino. Potrebbe essere necessario un aggiornamento periodico del calendario; Ad esempio, qualcuno apre il sito all'inizio di oggi, lo lascia aperto nel browser e intorno a pranzo potrebbe essere in grado di trascinare un evento alle 9 di oggi. – smcd

+0

Grazie. Ma quello che mi aspetto è, ad esempio, che l'orario di lavoro sia impostato dalle 9 alle 5. L'ora attuale è 10. Non voglio che l'utente lasci cadere un istante prima di 10. È possibile? Se c'è una classe css o qualcosa per segnare le fasce orarie passate, sarà facile. Spero che tu capisca cosa intendo. – FireDrakon

3

eventDrop dovrebbe arrivare lì:

eventDrop: function(event, delta, revertFunc) { 
     if(event.start < currentDate) { 
      revertFunc(); 
     } 
    } 
+0

Grazie per la risposta .. Il fatto è che quando rilascio un evento, vengono attivati ​​solo gli eventi "drop" e "eventReceive". Quindi non c'è modo di annullare un evento abbandonato in caso di incidente. qualche idea? – FireDrakon

+0

Quale versione di fullcalendar stai usando? eventDrop (disponibile nella versione 2) funziona come previsto. [esempio dal codice snid di slyvain] (http://jsfiddle.net/uro5p3rL/) – smcd

+0

Spiacente, rileggi la tua domanda e stavi discutendo di drop di eventi esterni. – smcd