diff --git a/core/lib/Thelia/Controller/Admin/ImportExportController.php b/core/lib/Thelia/Controller/Admin/ImportExportController.php index dac540626..c44e9e762 100644 --- a/core/lib/Thelia/Controller/Admin/ImportExportController.php +++ b/core/lib/Thelia/Controller/Admin/ImportExportController.php @@ -96,9 +96,14 @@ class ImportExportController extends BaseAdminController /** * Define and validate the form */ - $form = new ExportForm($this->getRequest()); - $form->setArchiveBuilderNames($archiveBuilders); - $form->setFormatters($formatters); + $form = new ExportForm( + $this->getRequest(), + "form", + array(), + array(), + $archiveBuilders, + $formatters + ); $errorMessage = null; try { @@ -118,7 +123,9 @@ class ImportExportController extends BaseAdminController 200, [ "Content-Type" => $formatter->getMimeType(), - "Content-Disposition" => $formatter::FILENAME . "." . $formatter->getExtension(), + "Content-Disposition" => + "attachment; filename=\"".$formatter::FILENAME . + "." . $formatter->getExtension() ."\"", ] ); } else { diff --git a/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilderManager.php b/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilderManager.php index 938445822..4ad09e5fc 100644 --- a/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilderManager.php +++ b/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilderManager.php @@ -96,7 +96,7 @@ class ArchiveBuilderManager { throw new \OutOfBoundsException( Translator::getInstance()->trans( - "The archive creator %name doesn't exist", + "The archive builder \"%name\" doesn't exist", [ "%name" => $name ] diff --git a/core/lib/Thelia/Core/FileFormat/Formatting/FormatterManager.php b/core/lib/Thelia/Core/FileFormat/Formatting/FormatterManager.php index 254982fe8..f2334aebe 100644 --- a/core/lib/Thelia/Core/FileFormat/Formatting/FormatterManager.php +++ b/core/lib/Thelia/Core/FileFormat/Formatting/FormatterManager.php @@ -92,7 +92,7 @@ class FormatterManager { throw new \OutOfBoundsException( Translator::getInstance()->trans( - "The formatter %name doesn't exist", + "The formatter \"%name\" doesn't exist", [ "%name" => $name ] diff --git a/core/lib/Thelia/Form/ExportForm.php b/core/lib/Thelia/Form/ExportForm.php index c791d357e..62ba68065 100644 --- a/core/lib/Thelia/Form/ExportForm.php +++ b/core/lib/Thelia/Form/ExportForm.php @@ -22,16 +22,9 @@ use Thelia\Form\BaseForm; */ class ExportForm extends BaseForm { - protected $archiveBuilderManager = array(); - - protected $formattersNames = array(); - - protected $exportTypes = array(); - protected $translator; - public function __construct(Request $request, $type= "form", $data = array(), $options = array()) - { + public function __construct(Request $request, $type= "form", $data = array(), $options = array()) { $this->translator = Translator::getInstance(); parent::__construct($request, $type, $data, $options); @@ -40,24 +33,20 @@ class ExportForm extends BaseForm protected function buildForm() { $this->formBuilder - ->add("formatter", "choice", array( + ->add("formatter", "text", array( "label" => $this->translator->trans("File format"), "label_attr" => ["for" => "formatter"], "required" => true, - "multiple" => false, - "choices" => $this->formattersNames, )) ->add("do_compress", "checkbox", array( "label" => $this->translator->trans("Do compress"), "label_attr" => ["for" => "do_compress"], "required" => false, )) - ->add("archive_builder", "choice", array( + ->add("archive_builder", "text", array( "label" => $this->translator->trans("Archive Format"), "label_attr" => ["for" => "archive_builder"], - "required" => true, - "multiple" => false, - "choices" => $this->archiveBuilderManager, + "required" => false, )) ->add("images", "checkbox", array( "label" => $this->translator->trans("Include images"), @@ -69,34 +58,9 @@ class ExportForm extends BaseForm "label_attr" => ["for" => "with_documents"], "required" => false, )) - ->add("export_type", "choice", array( - "required" => true, - "choices" => $this->exportTypes, - )) ; } - - public function setFormatters(array $formattersNames) { - $this->formattersNames = $formattersNames; - - return $this; - } - - public function setArchiveBuilderNames(array $archiveBuildersNames) - { - $this->archiveBuilderManager += $archiveBuildersNames; - - return $this; - } - - public function setExportTypes(array $exportType) - { - $this->exportTypes = $exportType; - - return $this; - } - public function getName() { return "thelia_export"; diff --git a/templates/backOffice/default/ajax/export-modal.html b/templates/backOffice/default/ajax/export-modal.html index 7b10a6250..46a32cbce 100644 --- a/templates/backOffice/default/ajax/export-modal.html +++ b/templates/backOffice/default/ajax/export-modal.html @@ -14,15 +14,23 @@ {ifloop rel="export-formatters"}
- {custom_render_form_field form=$form field="formatter"} - - {/custom_render_form_field} + {form_field form=$form field="formatter"} +
+ + + {if $error} +
{$message}
+ {/if} +
+ {/form_field}
{form_field form=$form field="do_compress"} @@ -38,7 +46,7 @@
{custom_render_form_field form=$form field="archive_builder"} - {loop name="export-archive-builder" type="archive-builder"}