• Модуль: 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}";
}