- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/kanban/timeline.php
- Класс: BitrixTasksKanbanTimeLineTable
- Вызов: TimeLineTable::getStages
static function getStages()
{
static $timeLineStages = [];
if ($timeLineStages)
{
return $timeLineStages;
}
$timeClient = self::getDateTimeClient();
$dateClient1 = self::getDateClient();
$dateClient2 = $dateClient1 . ' 23:59:59';
$format = self::getDatePhpFormat();
$timeClientTS = MakeTimeStamp($timeClient);
$dateClient31TS = MakeTimeStamp($dateClient1);
$dateClient2TS = MakeTimeStamp($dateClient2);
$currentWeekDay = date('N', $timeClientTS);
$timeLineStages = [
// overdue
'PERIOD1' => [
'COLOR' => 'FF5752',
'FILTER' => [
'<=DEADLINE' => date($format, $timeClientTS)
],
'UPDATE' => [],
'UPDATE_ACCESS' => false
],
// today
'PERIOD2' => [
'COLOR' => '9DCF00',
'FILTER' => [
'>DEADLINE' => date($format, $timeClientTS),
'<=DEADLINE' => date($format, $dateClient2TS)
],
'UPDATE' => [
'DEADLINE' => self::getClosestWorkHour($dateClient2TS)
],
'UPDATE_ACCESS' => CTaskItem::ACTION_CHANGE_DEADLINE
],
// on this week
'PERIOD3' => [
'COLOR' => '2FC6F6',
'FILTER' => [
'>DEADLINE' => date($format, $dateClient2TS),
'<=DEADLINE' => date($format, ($endTimeWeek = $dateClient2TS + (7 - $currentWeekDay) * 86400))
],
'UPDATE' => [
'DEADLINE' => self::getClosestWorkHour($endTimeWeek)
],
'UPDATE_ACCESS' => CTaskItem::ACTION_CHANGE_DEADLINE
],
// on next week
'PERIOD4' => [
'COLOR' => '55D0E0',
'FILTER' => [
'>DEADLINE' => date($format, $endTimeWeek),
'<=DEADLINE' => date($format, ($endTimeNextWeek = $endTimeWeek + 7 * 86400))
],
'UPDATE' => [
'DEADLINE' => self::getClosestWorkHour($endTimeNextWeek)
],
'UPDATE_ACCESS' => CTaskItem::ACTION_CHANGE_DEADLINE
],
// without deadline
'PERIOD5' => [
'COLOR' => 'A8ADB4',
'FILTER' => [
'DEADLINE' => false
],
'UPDATE' => [
'DEADLINE' => false
],
'UPDATE_ACCESS' => CTaskItem::ACTION_CHANGE_DEADLINE
],
// over next week
'PERIOD6' => [
'COLOR' => '468EE5',
'FILTER' => [
'>DEADLINE' => date($format, $endTimeNextWeek),
],
'UPDATE' => [
'DEADLINE' => self::getClosestWorkHour($endTimeNextWeek + 7 * 86400)
],
'UPDATE_ACCESS' => CTaskItem::ACTION_CHANGE_DEADLINE
],
];
return $timeLineStages;
}