From d081dde35934d8b1d07bac9dc6fde3657a56f76e Mon Sep 17 00:00:00 2001 From: Damien <damien.burel@maarch.org> Date: Mon, 11 Feb 2019 18:20:41 +0100 Subject: [PATCH] FEAT #9156 List display fixes --- .../controllers/ResourceListController.php | 60 +++++++++++-------- 1 file changed, 36 insertions(+), 24 deletions(-) diff --git a/src/app/resource/controllers/ResourceListController.php b/src/app/resource/controllers/ResourceListController.php index 74ba8a1cd25..9973cf281e8 100644 --- a/src/app/resource/controllers/ResourceListController.php +++ b/src/app/resource/controllers/ResourceListController.php @@ -86,7 +86,7 @@ class ResourceListController $allResources[] = $resource['res_id']; } - $resources = []; + $formattedResources = []; if (!empty($resIds)) { $attachments = AttachmentModel::getOnView([ 'select' => ['COUNT(res_id)', 'res_id_master'], @@ -96,29 +96,26 @@ class ResourceListController ]); $listDisplay = GroupBasketModel::get(['select' => ['list_display'], 'where' => ['basket_id = ?', 'group_id = ?'], 'data' => [$basket['basket_id'], $group['group_id']]]); - $listDisplay = json_decode($listDisplay[0]); + $listDisplay = json_decode($listDisplay[0]['list_display']); - $select = ['res_letterbox.res_id', 'res_letterbox.subject', 'status.label_status AS "status.label_status"']; - $tableFunction = ['status']; - $leftJoinFunction = ['res_letterbox.status = status.id']; + $select = ['res_letterbox.res_id', 'res_letterbox.subject', 'mlb_coll_ext.alt_identifier', 'status.label_status AS "status.label_status"', 'status.img_filename AS "status.img_filename"']; + $tableFunction = ['status', 'mlb_coll_ext']; + $leftJoinFunction = ['res_letterbox.status = status.id', 'res_letterbox.res_id = mlb_coll_ext.res_id']; foreach ($listDisplay as $value) { + $value = (array)$value; if ($value['value'] == 'getPriority') { $select[] = 'priorities.label AS "priorities.label"'; $tableFunction[] = 'priorities'; - $leftJoinFunction[] = 'res_view_letterbox.priority = priorities.id'; + $leftJoinFunction[] = 'res_letterbox.priority = priorities.id'; } elseif ($value['value'] == 'getCategory') { - $select[] = 'mlbone.category_id AS "mlbone.category_id"'; - $tableFunction[] = 'mlb_coll_ext mlbone'; - $leftJoinFunction[] = 'res_letterbox.res_id = mlbone.res_id'; + $select[] = 'mlb_coll_ext.category_id'; } elseif ($value['value'] == 'getDoctype') { $select[] = 'doctypes.description AS "doctypes.description"'; $tableFunction[] = 'doctypes'; $leftJoinFunction[] = 'res_letterbox.type_id = doctypes.type_id'; } elseif ($value['value'] == 'getCreationAndProcessLimitDates') { $select[] = 'res_letterbox.creation_date'; - $select[] = 'mlbtwo.process_limit_date AS "mlbtwo.process_limit_date"'; - $tableFunction[] = 'mlb_coll_ext mlbtwo'; - $leftJoinFunction[] = 'res_letterbox.res_id = mlbtwo.res_id'; + $select[] = 'mlb_coll_ext.process_limit_date AS "mlb_coll_ext.process_limit_date"'; } } @@ -138,39 +135,54 @@ class ResourceListController ]); foreach ($resources as $key => $resource) { - $resources[$key]['countAttachments'] = 0; + $formattedResources[$key]['res_id'] = $resource['res_id']; + $formattedResources[$key]['alt_identifier'] = $resource['alt_identifier']; + $formattedResources[$key]['subject'] = $resource['subject']; + $formattedResources[$key]['statusLabel'] = $resource['status.label_status']; + $formattedResources[$key]['statusImage'] = $resource['status.img_filename']; + $formattedResources[$key]['countAttachments'] = 0; foreach ($attachments as $attachment) { if ($attachment['res_id_master'] == $resource['res_id']) { - $resources[$key]['countAttachments'] = $attachment['count']; + $formattedResources[$key]['countAttachments'] = $attachment['count']; } } - $resources[$key]['countNotes'] = NoteModel::countByResId(['resId' => $resource['res_id'], 'login' => $GLOBALS['userId']]); + $formattedResources[$key]['countNotes'] = NoteModel::countByResId(['resId' => $resource['res_id'], 'login' => $GLOBALS['userId']]); $display = []; foreach ($listDisplay as $value) { + $value = (array)$value; if ($value['value'] == 'getPriority') { - $display[] = ['value' => $resource['priorities.label'], 'cssClasses' => $value['cssClasses']]; + $value['displayValue'] = $resource['priorities.label']; + $display[] = $value; } elseif ($value['value'] == 'getCategory') { - $display[] = ['value' => $resource['mlbone.category_id'], 'cssClasses' => $value['cssClasses']]; + $value['displayValue'] = ResModel::getCategoryLabel(['categoryId' => $resource['category_id']]); + $display[] = $value; } elseif ($value['value'] == 'getDoctype') { - $display[] = ['value' => $resource['doctypes.description'], 'cssClasses' => $value['cssClasses']]; + $value['displayValue'] = $resource['doctypes.description']; + $display[] = $value; } elseif ($value['value'] == 'getAssignee') { - $display[] = ['value' => ResourceListController::getAssignee(['resId' => $resource['res_id']]), 'cssClasses' => $value['cssClasses']]; + $value['displayValue'] = ResourceListController::getAssignee(['resId' => $resource['res_id']]); + $display[] = $value; } elseif ($value['value'] == 'getSenders') { - $display[] = ['value' => ResourceListController::getSenders(['resId' => $resource['res_id']]), 'cssClasses' => $value['cssClasses']]; + $value['displayValue'] = ResourceListController::getSenders(['resId' => $resource['res_id']]); + $display[] = $value; } elseif ($value['value'] == 'getRecipients') { - $display[] = ['value' => ResourceListController::getRecipients(['resId' => $resource['res_id']]), 'cssClasses' => $value['cssClasses']]; + $value['displayValue'] = ResourceListController::getRecipients(['resId' => $resource['res_id']]); + $display[] = $value; } elseif ($value['value'] == 'getVisaWorkflow') { - $display[] = ['value' => ResourceListController::getVisaWorkflow(['resId' => $resource['res_id']]), 'cssClasses' => $value['cssClasses']]; + $value['displayValue'] = ResourceListController::getVisaWorkflow(['resId' => $resource['res_id']]); + $display[] = $value; } elseif ($value['value'] == 'getOpinionWorkflow') { } elseif ($value['value'] == 'getCreationAndProcessLimitDates') { - $display[] = ['value' => "{$resource['creation_date']} - {$resource['mlbtwo.process_limit_date']}", 'cssClasses' => $value['cssClasses']]; + $value['displayValue'] = "{$resource['creation_date']} - {$resource['process_limit_date']}"; + $display[] = $value; } } + $formattedResources[$key]['display'] = $display; } } - return $response->withJson(['resources' => $resources, 'count' => $count, 'basketLabel' => $basket['basket_name'], 'allResources' => $allResources]); + return $response->withJson(['resources' => $formattedResources, 'count' => $count, 'basketLabel' => $basket['basket_name'], 'allResources' => $allResources]); } public function getFilters(Request $request, Response $response, array $aArgs) -- GitLab