allow to edit existing saved export with new export options

This commit is contained in:
2023-06-06 10:49:00 +02:00
parent c3ac382711
commit b4614974c0
4 changed files with 55 additions and 12 deletions

View File

@@ -127,6 +127,7 @@ class ExportController extends AbstractController
'alias' => $alias,
'export' => $export,
'export_group' => $this->getExportGroup($export),
'saved_export' => $savedExport,
];
if ($formater instanceof \Chill\MainBundle\Export\Formatter\CSVListFormatter) {
@@ -245,6 +246,28 @@ class ExportController extends AbstractController
}
}
/**
* @Route("/{_locale}/export/saved/update-from-key/{id}/{key}", name="chill_main_export_saved_edit_options_from_key")
*/
public function editSavedExportOptionsFromKey(SavedExport $savedExport, string $key): Response
{
$this->denyAccessUnlessGranted('ROLE_USER');
$user = $this->getUser();
if (!$user instanceof User) {
throw new AccessDeniedHttpException();
}
$data = $this->rebuildRawData($key);
$savedExport
->setOptions($data);
$this->entityManager->flush();
return $this->redirectToRoute('chill_main_export_saved_edit', ['id' => $savedExport->getId()]);
}
/**
* @Route("/{_locale}/export/save-from-key/{alias}/{key}", name="chill_main_export_save_from_key")
*/
@@ -478,7 +501,9 @@ class ExportController extends AbstractController
if (null === $dataFormatter && $export instanceof \Chill\MainBundle\Export\ExportInterface) {
return $this->redirectToRoute('chill_main_export_new', [
'alias' => $alias, 'step' => $this->getNextStep('generate', $export, true),
'alias' => $alias,
'step' => $this->getNextStep('generate', $export, true),
'from_saved' => $savedExport?->getId() ?? '',
]);
}
@@ -499,7 +524,11 @@ class ExportController extends AbstractController
$this->session->remove('formatter_step_raw');
$this->session->remove('formatter_step');
return $this->redirectToRoute('chill_main_export_download', ['key' => $key, 'alias' => $alias]);
return $this->redirectToRoute('chill_main_export_download', [
'key' => $key,
'alias' => $alias,
'from_saved' => $savedExport?->getId(),
]);
}
private function rebuildData($key, ?SavedExport $savedExport)