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