From b088bbd23151f01185ca71c08170b9ca9c819cfb Mon Sep 17 00:00:00 2001 From: Damien <damien.burel@maarch.org> Date: Mon, 5 Aug 2019 15:22:00 +0200 Subject: [PATCH] FEAT #11404 TIME 1:30 Folders list in basket list --- .../controllers/ResourceListController.php | 28 ++++++++++++++++++- .../list/list-administration.component.ts | 6 ++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/app/resource/controllers/ResourceListController.php b/src/app/resource/controllers/ResourceListController.php index f1b19c05b44..329150768bc 100644 --- a/src/app/resource/controllers/ResourceListController.php +++ b/src/app/resource/controllers/ResourceListController.php @@ -24,6 +24,7 @@ use Basket\models\RedirectBasketModel; use Contact\models\ContactModel; use Entity\models\EntityModel; use Entity\models\ListInstanceModel; +use Folder\models\FolderModel; use Group\models\GroupModel; use Group\models\ServiceModel; use Note\models\NoteModel; @@ -978,6 +979,29 @@ class ResourceListController return $notes[0]['count']; } + private static function getFolders(array $args) + { + ValidatorModel::notEmpty($args, ['resId', 'userId']); + ValidatorModel::intVal($args, ['resId', 'userId']); + + $user = UserModel::getById(['id' => $args['userId'], 'select' => ['user_id']]); + + $entities = UserModel::getEntitiesById(['userId' => $user['user_id']]); + $entities = array_column($entities, 'id'); + + if (empty($entities)) { + $entities = [0]; + } + + $folders = FolderModel::getWithEntitiesAndResources([ + 'select' => ['folders.id', 'folders.label'], + 'where' => ['res_id = ?', '(user_id = ? OR entity_id in (?))'], + 'data' => [$args['resId'], $args['userId'], $entities] + ]); + + return $folders; + } + public static function getIdsWithOffsetAndLimit(array $args) { ValidatorModel::arrayType($args, ['resources']); @@ -1085,9 +1109,11 @@ class ResourceListController } elseif ($value['value'] == 'getOpinionLimitDate') { $value['displayValue'] = $resource['opinion_limit_date']; $display[] = $value; + } elseif ($value['value'] == 'getFolders') { + $value['displayValue'] = ResourceListController::getFolders(['resId' => $resource['res_id'], 'userId' => $args['userId']]); + $display[] = $value; } } - $formattedResources[$key]['display'] = $display; } } diff --git a/src/frontend/app/administration/basket/list/list-administration.component.ts b/src/frontend/app/administration/basket/list/list-administration.component.ts index 195d7bd5cce..98c6280e01c 100644 --- a/src/frontend/app/administration/basket/list/list-administration.component.ts +++ b/src/frontend/app/administration/basket/list/list-administration.component.ts @@ -120,6 +120,12 @@ export class ListAdministrationComponent implements OnInit { 'cssClasses': ['align_leftData'], 'icon': 'fa-comment-alt' }, + { + 'value': 'getFolders', + 'label': 'Afficher les dossiers', + 'sample': '', + 'cssClasses': ['align_leftData'] + } ]; availableDataClone: any = []; -- GitLab