2016-11-22 12 views
5

FullCalendar eklentisini kullanıyorum ve yapmaya çalışıyorum, böylece iş saatleri dışında bir şeye sürüklendiğinde yeni bir etkinliği bırakamazsınız. Anladığım kadarıyla mevcut tarihten önce herhangi bir tarihe sürükleyemezsiniz, ancak hafta sonunun sürüklenmesinin nasıl önleneceğini anlayamazsınız.FullCalendar, etkinlik saatlerinin dışında düştü önleme

Özellikle haftasonu için özel bir ifadeden ziyade bir iş yapmak istediğimde sabit kodlu bir çözüm istemiyorum çünkü eğer iş saatlerini Çarşamba günü belirli bir haftaya eklemek isterim ve sadece 1 pm ile 16:00 arasında izin veriyorum? Bu yüzden bazı JSON'ları olaylardan farklı olarak geçirebileceğim dinamik bir çözüme ihtiyacım var: kulplar ve businessHours da işleyebilir. Burada

$(document).ready(function() { 
    /* initialize the external events 
    -----------------------------------------------------------------*/ 
    $('#external-events .fc-event').each(function() { 
     // store data so the calendar knows to render an event upon drop 
     $(this).data('event', { 
      title: $.trim($(this).text()), // use the element's text as the event title 
      stick: true // maintain when user navigates (see docs on the renderEvent method) 
     }); 
     // make the event draggable using jQuery UI 
     $(this).draggable({ 
      zIndex: 999, 
      revert: true,  // will cause the event to go back to its 
      revertDuration: 0 // original position after the drag 
     }); 
    }); 
    /* initialize the calendar 
    -----------------------------------------------------------------*/ 
    $('#calendar').fullCalendar({ 
     header: { 
      left: 'prev,next today', 
      center: 'title', 
      right: 'month,agendaWeek,agendaDay' 
     }, 
     editable: true, 
     droppable: true, // this allows things to be dropped onto the calendar 
     drop: function() { 
      // is the "remove after drop" checkbox checked? 
      if ($('#drop-remove').is(':checked')) { 
       // if so, remove the element from the "Draggable Events" list 
       $(this).remove(); 
      } 
     }, 
     /* This constrains it to today or later */ 
     eventConstraint: { 
      start: moment().format('YYYY-MM-DD'), 
      end: '2100-01-01' // hard coded must have 
     }, 
     businessHours: { 
      start: moment().format('HH:mm'), /* Current Hour/Minute 24H format */ 
      end: '17:00' // 5pm 
     } 
    }); 
}); 

benim şimdiki örnek bir keman olduğunu http://jsfiddle.net/htexjtg6/

cevap

3

bir sen başlatıldı olaylar bir süre olmadığı için olduğu yaşıyorsanız sorun - olaylar kısıtlamaları ve businessHours üst üste eğer öyleyse fullcalendar bilmez düştüğünde. Basitçe başlangıç ​​/ bitiş ayarı bunu çözebilir.

$(this).data('event', { 
    title: $.trim($(this).text()), // use the element's text as the event title 
    stick: true, // maintain when user navigates (see docs on the renderEvent method) 
    start: moment(), 
    end: moment(), 
}); 

ikramiye: fullcalendar in başlatıcısı defaultTimedEventDuration:'01:00:00', (olayların varsayılan süresi 2 saattir) set - Uygulama için geçerlidir etki alanına göre bu değeri ayarlayın.

Farklı günlerde farklı zamanlar hakkında; BusinessHours bir dizi olabilir -. (JsonArrays tam js olduğundan (bir işlev dönen jsonarray gelebilir) https://fullcalendar.io/docs/display/businessHours/

businessHours: [ 
    { 
     dow: [ 1, 2, 3 ], // Monday, Tuesday, Wednesday 
     start: '08:00', // 8am 
     end: '18:00' // 6pm 
    }, 
    { 
     dow: [ 4, 5 ], // Thursday, Friday 
     start: '10:00', // 10am 
     end: '16:00' // 4pm 
    } 
], 
eventConstraint:"businessHours", 

) çalışma businessHours ile (kodunuzun bir çatal için

bu keman http://jsfiddle.net/htexjtg6/11/ bkz bkz
+0

Belirli bir zaman kısıtlaması olsa bile yeni olayı tarihe sürükleyebilmeyi dilediğimde bahsettim ... muhtemelen iş saatlerinde listelenen en erken saat için varsayılan süredir. Bu FullCalendar ile yapmak imkansız ve sadece olayları günlük görünümüne ekleyebilir miyim? – eqiz

+0

@eqiz Eğer doğru bir şekilde anlıyorsam, kemanda çalışıyor . – VisualBean

+0

Ödülde aylık görünümde yapabilmek için yapılan referanstan bahsetmek istedim. Kısmen değil, olayın sürüklenmesiyle haftalık veya günlük bir görüşme yapmanın imkânsız olduğunu söylediğiniz şeyin bir parçası olduğunu mu söylüyordum? – eqiz

İlgili konular