• Модуль: crmmobile
  • Путь к файлу: ~/bitrix/modules/crmmobile/lib/Kanban/ControllerStrategy/Base.php
  • Класс: BitrixCrmMobileKanbanControllerStrategyBase
  • Вызов: Base::setFilterPreset
protected function setFilterPreset(string $presetId, Options $filterOptions): void
{
	if ($presetId === 'default_filter')
	{
		$presetId = 'tmp_filter';
	}

	$presets = $filterOptions->getPresets();

	if ($presetId !== self::TMP_FILTER_PRESET_ID && !empty($presets[$presetId]))
	{
		$preset = $presets[$presetId];

		$data = [
			'fields' => $preset['fields'] ?? [],
			'preset_id' => $presetId,
			'rows' => (empty($preset['fields']) || !is_array($preset['fields'])) ? [] : array_keys($preset['fields']),
			'name' => $preset['name'],
		];
	}
	elseif ($presetId === self::TMP_FILTER_PRESET_ID)
	{
		$tmpFilter = ($this->params['filter']['tmpFields'] ?? []);
		$fields = [];
		foreach ($tmpFilter as $fieldName => $field)
		{
			$fields[$fieldName] = $field;
		}

		$data = [
			'fields' => $fields,
			'preset_id' => self::TMP_FILTER_PRESET_ID,
			'rows' => array_keys($fields),
		];
	}
	else
	{
		return;
	}

	$filterOptions->setFilterSettings($presetId, $data);
	$filterOptions->save();
}