Skip to content
Snippets Groups Projects
Commit fc18ab6b authored by Guillaume Heurtier's avatar Guillaume Heurtier
Browse files

FEAT #12091 TIME 0:40 fix export folder resources in multiple folders

parent 90dfbbea
No related branches found
No related tags found
No related merge requests found
...@@ -148,12 +148,6 @@ class ExportController ...@@ -148,12 +148,6 @@ class ExportController
$select[] = 'priorities.label AS "priorities.label"'; $select[] = 'priorities.label AS "priorities.label"';
$tableFunction[] = 'priorities'; $tableFunction[] = 'priorities';
$leftJoinFunction[] = 'res_view_letterbox.priority = priorities.id'; $leftJoinFunction[] = 'res_view_letterbox.priority = priorities.id';
} elseif ($value['value'] == 'getFolder') {
$select[] = 'res_folder2.label AS "folders.label"';
$tableFunction[] = 'resources_folders as res_folders2';
$leftJoinFunction[] = 'res_view_letterbox.res_id = res_folders2.res_id';
$tableFunction[] = 'folders as res_folder2';
$leftJoinFunction[] = 'res_folder2.id = res_folders2.folder_id';
} elseif ($value['value'] == 'getCategory') { } elseif ($value['value'] == 'getCategory') {
$select[] = 'res_view_letterbox.category_id'; $select[] = 'res_view_letterbox.category_id';
} elseif ($value['value'] == 'getInitiatorEntity') { } elseif ($value['value'] == 'getInitiatorEntity') {
...@@ -251,7 +245,7 @@ class ExportController ...@@ -251,7 +245,7 @@ class ExportController
} elseif ($value['value'] == 'getParentFolder') { } elseif ($value['value'] == 'getParentFolder') {
$csvContent[] = ExportController::getParentFolderLabel(['res_id' => $resource['res_id']]); $csvContent[] = ExportController::getParentFolderLabel(['res_id' => $resource['res_id']]);
} elseif ($value['value'] == 'getFolder') { } elseif ($value['value'] == 'getFolder') {
$csvContent[] = $resource['folders.label']; $csvContent[] = ExportController::getFolderLabel(['res_id' => $resource['res_id']]);
} elseif ($value['value'] == 'getCategory') { } elseif ($value['value'] == 'getCategory') {
$csvContent[] = ResModel::getCategoryLabel(['categoryId' => $resource['category_id']]); $csvContent[] = ResModel::getCategoryLabel(['categoryId' => $resource['category_id']]);
} elseif ($value['value'] == 'getInitiatorEntity') { } elseif ($value['value'] == 'getInitiatorEntity') {
...@@ -363,7 +357,7 @@ class ExportController ...@@ -363,7 +357,7 @@ class ExportController
} elseif ($value['value'] == 'getParentFolder') { } elseif ($value['value'] == 'getParentFolder') {
$content[] = ExportController::getParentFolderLabel(['res_id' => $resource['res_id']]); $content[] = ExportController::getParentFolderLabel(['res_id' => $resource['res_id']]);
} elseif ($value['value'] == 'getFolder') { } elseif ($value['value'] == 'getFolder') {
$content[] = $resource['folders.label']; $content[] = ExportController::getFolderLabel(['res_id' => $resource['res_id']]);
} elseif ($value['value'] == 'getCategory') { } elseif ($value['value'] == 'getCategory') {
$content[] = ResModel::getCategoryLabel(['categoryId' => $resource['category_id']]); $content[] = ResModel::getCategoryLabel(['categoryId' => $resource['category_id']]);
} elseif ($value['value'] == 'getInitiatorEntity') { } elseif ($value['value'] == 'getInitiatorEntity') {
...@@ -765,30 +759,52 @@ class ExportController ...@@ -765,30 +759,52 @@ class ExportController
return $maxHeight + 2; return $maxHeight + 2;
} }
private static function getFolderLabel(array $args)
{
$folders = FolderModel::getWithEntitiesAndResources([
'select' => ['folders.label'],
'where' => ['resources_folders.res_id = ?'],
'data' => [$args['res_id']]
]);
if (empty($folders)) {
return '';
}
$labels = [];
foreach ($folders as $folder) {
$labels[] = $folder['label'];
}
return implode(',', $labels);
}
private static function getParentFolderLabel(array $args) private static function getParentFolderLabel(array $args)
{ {
$folder = FolderModel::getWithEntitiesAndResources([ $folders = FolderModel::getWithEntitiesAndResources([
'select' => ['folders.parent_id'], 'select' => ['folders.parent_id'],
'where' => ['resources_folders.res_id = ?'], 'where' => ['resources_folders.res_id = ?'],
'data' => [$args['res_id']] 'data' => [$args['res_id']]
]); ]);
if (empty($folder)) { if (empty($folders)) {
return ''; return '';
} }
$folder = $folder[0];
$hasFolder = FolderController::hasFolders([ $parentLabels = [];
'userId' => $GLOBALS['id'], foreach ($folders as $folder) {
'folders' => [$folder['parent_id']] $hasFolder = FolderController::hasFolders([
]); 'userId' => $GLOBALS['id'],
'folders' => [$folder['parent_id']]
]);
if (!$hasFolder) { if (!$hasFolder) {
return ''; continue;
}
$parentFolder = FolderModel::getById([
'id' => $folder['parent_id']
]);
$parentLabels[] = $parentFolder['label'];
} }
$parentFolder = FolderModel::getById([
'id' => $folder['parent_id']
]);
return $parentFolder['label']; return implode(',', $parentLabels);
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment