- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/grid/task/row/content/date/deadline.php
- Класс: BitrixTasksGridTaskRowContentDateDeadline
- Вызов: Deadline::prepare
public function prepare()
{
$row = $this->getRowData();
$state = $this->getDeadlineStateData();
$timestamp = ($row['DEADLINE'] ? $this->getDateTimestamp($row['DEADLINE']) : $this->getCompanyWorkTimeEnd());
$jsDeadline = DateTime::createFromTimestamp($timestamp - CTimeZone::GetOffset());
$text = ($state['state'] ?: $this->formatDate($row['DEADLINE']));
$onClick = '';
$link = '';
$gridLabel = [
'html' => ''.$text.'',
];
if ($row['ACTION']['CHANGE_DEADLINE'])
{
$taskId = (int)$row['ID'];
$onClick = "onclick="BX.Tasks.GridActions.onDeadlineChangeClick({$taskId}, this, '{$jsDeadline}'); event.stopPropagation();"";
$link = ' task-deadline-date';
$gridLabel['events'] = [
'click' => "BX.Tasks.GridActions.onDeadlineChangeClick.bind(BX.Tasks.GridActions, {$taskId}, null, '{$jsDeadline}', event);",
];
}
if ($state['state'])
{
$color = mb_strtoupper($state['color']);
$gridLabel['color'] = constant("BitrixMainGridCellLabelColor::{$color}");
$gridLabel['light'] = !$state['fill'];
return [$gridLabel];
}
$link = ($link ?: 'task-deadline-datetime');
$link .= ' '.self::BXT_SELECTOR;
return "{$text}";
}