From 05cc2f13b3493ebcaa59d7e3d05b2760fa648ff4 Mon Sep 17 00:00:00 2001 From: Guillaume Heurtier <guillaume.heurtier@maarch.org> Date: Fri, 24 Jan 2020 15:27:45 +0100 Subject: [PATCH] FEAT #12842 TIME 1:30 update filter list when filtering on folders --- .../controllers/ResourceListController.php | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/app/resource/controllers/ResourceListController.php b/src/app/resource/controllers/ResourceListController.php index f2963472876..c5189dd9be5 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 -- GitLab