diff --git a/src/app/resource/controllers/ResourceListController.php b/src/app/resource/controllers/ResourceListController.php index 660c37694719036ee00714500f9077a550b5860b..f29634728764d7b9de879f7f5aacbd4d6291d6d3 100644 --- a/src/app/resource/controllers/ResourceListController.php +++ b/src/app/resource/controllers/ResourceListController.php @@ -281,6 +281,17 @@ class ResourceListController $where[] = 'doctypes.type_id in (?)'; $queryData[] = explode(',', $args['data']['doctypes']); } + if (!empty($args['data']['folders'])) { + $resourcesInFolders = FolderModel::getWithResources([ + 'select' => ['resources_folders.res_id'], + 'where' => ['resources_folders.folder_id in (?)'], + 'data' => [explode(',', $args['data']['folders'])] + ]); + $resourcesInFolders = array_column($resourcesInFolders, 'res_id'); + + $where[] = 'res_id in (?)'; + $queryData[] = $resourcesInFolders; + } if (!empty($args['data']['order']) && strpos($args['data']['order'], 'alt_identifier') !== false) { $order = 'order_alphanum(alt_identifier) ' . explode(' ', $args['data']['order'])[1]; diff --git a/src/frontend/service/filtersList.service.ts b/src/frontend/service/filtersList.service.ts index 6f016c50d5dee50c124f917c9874643461262644..70c8d677efc4bfe8c89bfae45a258ce72676c030 100644 --- a/src/frontend/service/filtersList.service.ts +++ b/src/frontend/service/filtersList.service.ts @@ -160,6 +160,14 @@ export class FiltersListService { filters += '&doctypes=' + doct.join(','); } + if (this.listsProperties[this.listsPropertiesIndex].folders.length > 0) { + let folders: any[] = []; + this.listsProperties[this.listsPropertiesIndex].folders.forEach((element: any) => { + folders.push(element.id); + }); + + filters += '&folders=' + folders.join(','); + } } return filters; }