- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/integration/ui/entityselector/departmentprovider.php
- Класс: BitrixIntranetIntegrationUIEntitySelectorDepartmentProvider
- Вызов: DepartmentProvider::doSearch
public function doSearch(SearchQuery $searchQuery, Dialog $dialog): void
{
if ($this->getSelectMode() === self::MODE_USERS_ONLY)
{
return;
}
$limit = $this->getLimit();
// Try to select all departments
$departments = $this->getStructure([
'searchQuery'=> $searchQuery->getQuery(),
'limit' => $limit,
]);
$limitExceeded = $limit <= $departments->count();
if ($limitExceeded)
{
$searchQuery->setCacheable(false);
}
foreach ($departments as $department)
{
$isRootDepartment = $department->getDepthLevel() === 1;
$hideRootDepartment = $isRootDepartment && !$this->options['allowSelectRootDepartment'];
if ($hideRootDepartment)
{
continue;
}
$dialog->addItem(new Item([
'id' => $department->getId(),
'entityId' => 'department',
'title' => $department->getName(),
]));
if ($this->getSelectMode() === self::MODE_USERS_AND_DEPARTMENTS && $this->options['allowFlatDepartments'])
{
$dialog->addItem(new Item([
'id' => $department->getId().':F',
'entityId' => 'department',
'title' => $department->getName() . ' ' . Loc::getMessage('INTRANET_ENTITY_SELECTOR_ONLY_EMPLOYEES'),
]));
}
}
}