2016-07-21 29 views
3

Ich habe Vollkalender v2 Ressourcen Kalender implementiert. Was ich nicht beheben kann, ist die Einstellung minTime und maxTime basierend auf dem Tag. Jeder Tag hat unterschiedliche Arbeitszeiten.Vollkalender setzen minTime und maxTime dynamisch

Montag 10.00 bis 14.00

Dienstag 16:00 bis 24:00 ...

Ich hatte meinen Kalender auf diese Weise initilized:

$('#calendar').fullCalendar({ 
header: { 
    left: 'prev,next today', 
    center: 'title', 
    right: 'month,agendaWeek,resourceDay' 
}, 
defaultView: 'resourceDay', 
titleFormat: {'day':'dddd, MMMM D'}, 
minTime: "08:00", 
maxTime: "20:00", 
scrollTime: moment().format('H:m'), 
eventLimit: true, // allow "more" link when too many events 
resources:[ 
    resource1,resource2 
    ], 
slotDuration: '00:15:00', 
allDaySlot: false, 
lazyFetching: false, 
droppable: true, 
defaultTimedEventDuration: '00:30:00', 
selectable: true, 
selectHelper: true, 
unselectAuto: 'true', 
timeFormat: {'agenda':'hh:mm A','':'hh:mm A'}, 

// Calender Method-1: AJAX events will loaded from this code 
events:function(start, end, timezone,callback) { 

$.ajax({ 
     url: "http://www.domainn.com/dashboard/index", 
     dataType: 'json', 
     type:'POST', 
     // async: false, //blocks window close 
     data: { 
      start: start.unix(), 
      end: end.unix(), 
      viewtype: $('#calendar').fullCalendar('getView').name, 
     }, 
     success:function(response){ 
      var calendarOptions = $('#calendar').fullCalendar('getView').calendar.options; 
      // console.log(calendarOptions); 
     calendarOptions.minTime = response.timings.start; 
      calendarOptions.maxTime = response.timings.end; 

      $('#calendar').fullCalendar('destroy'); 

      $("#calendar").fullCalendar(
       $.extend(calendarOptions, { 
        events:response.resources 
       }) 
     ); 


     } 
    }); 
}, 
eventRender: function (event, element) { 
    // code here 
}, 
// other events follows..... 
}); 

Von diesem Ajax Anruf und basierend auf dem Tag bekomme ich dynamische Arbeitszeiten für diesen bestimmten Tag und versuchen, es mit

einzustellen
response.timings.start 
response.timings.end 

Aber mit diesen Optionen und dann ändern/goingTo jeden anderen Tag, ruft nicht die Ereignisse! Grundsätzlich ruft es die gleiche Funktion unendlich oft in einer Schleife auf.

versuchte viele Optionen, aber kein Glück. Jede Hilfe/Anleitung wird sehr geschätzt. Vielen Dank.

+0

können Sie ein funktionierendes https://jsfiddle.net/ hinzufügen? – fehrlich

+0

Hast du das gelöst? Wenn Sie Version 2.9.0 von FC nicht verwenden können, sollten Sie, nachdem Sie die Mindest- und Höchstzeiten festgelegt haben, die Ereignisse abrufen können, die $ ('# calendar') aufrufen. FullCalendar ('render'); anstatt den Kalender zu zerstören. –

Antwort

2

Ab Version 2.9.0 unterstützt FullCalendar setting options dynamically.

Sie sollten in der Lage sein, so etwas zu tun:

$('#calendar').fullCalendar('option', 'minTime', response.timings.start); 

ich andere SO Beiträge gesehen haben, wo die Menschen versucht haben Optionen, um die Art und Weise Einstellung, die Sie haben, sagte, einige haben es funktionierte und andere sagten, es nicht tat .

GitHub issue Anforderung dieser Funktionalität.

GitHub issue, die diese Funktionalität implementiert.

+0

Ich habe diese Option versucht, aber das funktioniert nicht. Ich benutze 2.0.2 mit Ressourcen-Setup. – Tarunn

+0

Haben Sie müde $ ('# Kalender'). FullCalendar ('render'); anstatt den Kalender zu zerstören? –