FullCalendar.io - как использовать рабочее время, чтобы предотвратить определенные даты в определенные часы - PullRequest
1 голос
/ 08 марта 2020

Я использую https://fullcalendar.io, в частности функцию dateClick, как показано ниже

dateClick: function(info) {
                //alert('clicked ' + info.dateStr);
                calendar.changeView('timeGridDay', info.dateStr);
                console.log(info);
                if (info.view.type == 'timeGridDay') {
                    date = info.dateStr;
                    var modal = $('#add-event-modal');
                    modal.modal('show');
                    $(modal).find('input[name=parade_start]').val(info.dateStr.substring(0, 10) + ' ' + info.dateStr.substring(11, 19));
                }
            },

Я также использую рабочие часы с 9:00 до 17:00. В данный момент пользователь может щелкнуть любое время в представлении, чтобы открыть модальное окно, но я хочу, чтобы модальное окно открывалось только в том случае, если оно щелкает по рабочим часам.

Пожалуйста, сообщите - не уверен, возможно ли это

Спасибо

1 Ответ

1 голос
/ 10 марта 2020

Лучше использовать обратный вызов select (вместо dateClick), чтобы определить выбор пользователя.

После того, как вы это сделаете, вы можете установить для параметра selectConstraint значение "businessHours", которое автоматически не дает людям выбирать время вне указанных рабочих часов.

Например:

selectable: true,
select: function(info) {
  alert("selected " + info.startStr + " to " + info.endStr);
},
businessHours: {
  // days of week. an array of zero-based day of week integers (0=Sunday)
  daysOfWeek: [1, 2, 3, 4], // Monday - Thursday
  startTime: "10:00", // a start time (10am in this example)
  endTime: "18:00" // an end time (6pm in this example)
},
selectConstraint: "businessHours"

Рабочая демоверсия: https://codepen.io/ADyson82/pen/xxGpJXG

...