2016-02-23 2 views
1

Я работаю с fullcalander. Я хочу ограничить количество событий, созданных за день, до 4 в неделю. Я видел эту ссылку, но это не очень помогает stackoverflow question Параметры eventLimit ограничивают только отображаемые события, но я хочу прекратить создавать события, как только в течение недели было создано 6 событий в день. Любая помощь была бы высоко оценена и, пожалуйста, несите меня, поскольку я новичок в этом поле.Ограничить количество событий, созданных за день в fullcalander

+0

Что вы пробовали – madalinivascu

+0

прямо сейчас я пытаюсь сосчитать события с кодом, который я нашел на StackOverflow eventAfterAllRender:. Функции (вид) { вар AllEvents = $ («# календарь») fullCalendar («clientEvents»); var countevents = 0; if (allevents.length) { countevents = countevents + allevents.length; } if (! Countevents) { // alert ('количество событий' + countevents); console.log ('event count is', countevents); } }; –

+0

Где вы пишете свой код для создания событий? Пожалуйста, предоставьте больше вещей, которые вы пробовали. –

ответ

0

ОК после глубокой глубокой разведки и получения дополнительной информации о fullcalender, вот как я это сделал. это было очень легко, я должен сказать. `

var event_count=0;// to count the number of events starting from zero 
 
\t $(document).ready(function() { 
 
\t 
 
\t \t $('#calendar').fullCalendar({ 
 
\t \t \t header: { 
 
\t \t \t \t left: 'prev,next today', 
 
\t \t \t \t center: 'title', 
 
\t \t \t \t right: 'month,agendaWeek,agendaDay' 
 
\t \t \t }, 
 
\t \t \t defaultDate: '2016-01-12', 
 
\t \t \t editable: true, 
 
\t \t \t selectable: true, 
 
\t \t \t minTime: '09:00:00', 
 
\t \t \t maxTime: '18:00:00', 
 
\t \t \t columnFormat: 'dddd', 
 
\t \t \t eventLimit: true, 
 
\t \t \t select: function(start, end) { 
 
\t \t \t \t \t var eventData = { 
 
\t \t \t \t \t \t start: start, 
 
\t \t \t \t \t \t end: end 
 
\t \t \t \t \t }; 
 
\t \t \t \t event_count+=1;//if the control is inside this function increment eventcount 
 
\t \t \t \t if(event_count<4){ 
 
        //if the counter is less than four then do this 
 
\t \t \t \t \t $('#calendar').fullCalendar('renderEvent', eventData, true); // stick? = true 
 
\t \t \t \t \t $('#calendar').fullCalendar('unselect'); 
 
\t \t \t \t \t } 
 
\t \t \t }, 
 
\t \t \t eventClick: function(event){ 
 
\t \t \t \t 
 
\t \t \t $('#calendar').fullCalendar('removeEvents',event._id); 
 
\t \t \t event_count-=event_count;//decrement event_count when event is removed 
 
\t \t \t }, 
 
\t \t \t loading: function(bool) { 
 
\t \t \t \t $('#loading').toggle(bool); 
 
\t \t \t } 
 
\t \t \t 
 
\t \t }); 
 
\t \t 
 
\t \t $('#view_calendar').on('shown.bs.modal', function() { 
 
    \t \t $("#calendar").fullCalendar('render'); 
 
\t \t 
 
}); 
 
\t \t 
 
\t })

`

1

Попробуйте это.

select: function(start, end, jsEvent, view) { 
    var eventCounter = 0; 
    $('#calendar').fullCalendar('clientEvents', function(event) { 
     if (start.format('YYYY-MM-DD') == event.start.format('YYYY-MM-DD')) { 
      eventCounter++; 
     } 
    }); 
    if (eventCounter < 6) { 
     // Code to create event 
    } 
} 

Это работает для меня локально.

Смежные вопросы