diff --git a/src/app/resource/controllers/ResourceListController.php b/src/app/resource/controllers/ResourceListController.php index f29634728764d7b9de879f7f5aacbd4d6291d6d3..c5189dd9be5824b9b667aaecd6c7b44a96f717ef 100644 --- a/src/app/resource/controllers/ResourceListController.php +++ b/src/app/resource/controllers/ResourceListController.php @@ -1013,6 +1013,32 @@ class ResourceListController } } + if (!empty($data['folders'])) { + $folders = explode(',', $data['folders']); + $resIdsInFolders = []; + foreach ($folders as $folderId) { + $resources = FolderModel::getWithResources([ + 'select' => ['res_id'], + 'where' => ['folder_id in (?)'], + 'data' => [$folderId] + ]); + $resources = array_column($resources, 'res_id'); + $resIdsInFolders = array_merge($resIdsInFolders, $resources); + } + if (!empty($resIdsInFolders)) { + $wherePriorities[] = 'res_id in (?)'; + $dataPriorities[] = $resIdsInFolders; + $whereCategories[] = 'res_id in (?)'; + $dataCategories[] = $resIdsInFolders; + $whereEntities[] = 'res_id in (?)'; + $dataEntities[] = $resIdsInFolders; + $whereStatuses[] = 'res_id in (?)'; + $dataStatuses[] = $resIdsInFolders; + $whereDocTypes[] = 'res_id in (?)'; + $dataDocTypes[] = $resIdsInFolders; + } + } + $priorities = []; $rawPriorities = ResModel::getOnView([ 'select' => ['count(res_id)', 'priority'], @@ -1111,7 +1137,7 @@ class ResourceListController $folders = []; - $resIds = ResModel::getOnView([ + $resIds = ResModel::get([ 'select' => ['res_id'], 'where' => $whereFolders, 'data' => $dataFolders