Блокировка и выделение дат

В данной библиотеке доступно расширение Limit, которое позволяет блокировать и выделять определённые даты или диапазоны дат.

Чтобы начать использовать этот плагин, просто активируйте его на вашей странице.

Обратите внимание, если вы используете Вид "Timeline", расширение 'limit' должно быть подключено раньше, чем 'timeline':

scheduler.plugins({
    limit: true,     timeline: true
});

Параметры конфигурации

Ниже представлены параметры конфигурации, доступные для этого расширения:

  • display_marked_timespans - управляет отображением выделенных (заблокированных) промежутков времени в gantt
  • check_limits - включает или отключает проверку ограничений
  • mark_now - включает или отключает маркер текущего времени
  • now_date - задаёт дату, используемую опцией mark_now
  • limit_end - определяет конечную границу допустимого диапазона дат
  • limit_start - определяет начальную границу допустимого диапазона дат
  • limit_view - ограничивает просмотр событий

Related sample:  Current time marking

Связанные события

Если пользователь попытается создать или изменить событие на недопустимую дату, будет вызвано событие onLimitViolation.

Как заблокировать определённые даты?

Существует несколько способов задать ограничения в Gantt:

  • addMarkedTimespan - выделяет даты и может блокировать их с помощью пользовательских стилей
  • markTimespan - выделяет или блокирует даты с использованием стандартных или пользовательских стилей; выделение удаляется после любого внутреннего обновления, удобно для подсветки

Related sample:  Blocking dates

Как выделить определённые даты?

Вы можете использовать эти два метода для подсветки определённых дат:

  • addMarkedTimespan - выделяет даты и может блокировать их с помощью пользовательских стилей
  • markTimespan - выделяет или блокирует даты с использованием стандартных или пользовательских стилей; выделение удаляется после любого внутреннего обновления, удобно для подсветки

Related sample:  Handling the pointer highlighting

Удаление выделения/блокировки

Чтобы снять текущее выделение или блокировку промежутков времени, используйте следующие методы:

Related sample:  Handling the pointer highlighting

Приоритет блокировки

Если используются несколько методов блокировки для разных диапазонов, приоритет блокировки работает следующим образом (от наивысшего к низшему):

  1. Даты, указанные с помощью объектов Date() для конкретных элементов;
  2. Даты для конкретных элементов (когда установлен параметр sections);
  3. Даты, указанные с помощью объектов Date();
  4. Прочие даты.
  • Блокировка или выделение с более высоким приоритетом перекроет те, что с более низким приоритетом, если у них одинаковый type.
  • Методы блокировки или выделения с одинаковым приоритетом (перекрывающиеся по времени) будут применяться одновременно.

Например:

scheduler.addMarkedTimespan({ // блокирует 4 июля 2012 года (среда).
    days:  new Date(2019, 7, 4),
    zones: "fullday", 
    type:  "dhx_time_block",
    css:   "red_section" // применён CSS-класс
});
scheduler.addMarkedTimespan({ // блокирует каждое воскресенье, понедельник, среду
    days:  [0, 1, 3], 
    zones: "fullday",
    type:  "dhx_time_block", 
    css:   "blue_section" // применён CSS-класс
});
// блокирует только воскресенье и среду для элемента с id=2 
scheduler.addMarkedTimespan({  
    days:  [0,3], 
    zones: "fullday",
    type:  "dhx_time_block", 
    css:   "gray_section",  // применён CSS-класс
    sections: { timeline: 2} 
});

После этих вызовов Gantt будет работать следующим образом:

  1. Сначала будут заблокированы все воскресенья и среды для элемента с id=2 в Timeline, они будут выделены серым цветом.
  2. Затем будет заблокировано 4 июля 2012 года, выделено красным.
  3. В завершение будут заблокированы все воскресенья, понедельники и среды, выделены синим.

limits_priority.png

Если вы хотите отображать все маркеры вне зависимости от их приоритета, установите параметр overwrite_marked_timespans следующим образом:

scheduler.config.overwrite_marked_timespans_config = false;
Наверх