modifié:         core/lib/Thelia/Controller/Admin/ImportExportController.php
	modifié:         core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilderManager.php
	modifié:         core/lib/Thelia/Core/FileFormat/Formatting/FormatterManager.php
	modifié:         core/lib/Thelia/Form/ExportForm.php
	modifié:         templates/backOffice/default/ajax/export-modal.html
	modifié:         templates/backOffice/default/export-page.html
This commit is contained in:
Benjamin Perche
2014-07-15 10:02:47 +02:00
parent 8d93a3c7ab
commit 44de50c805
6 changed files with 64 additions and 68 deletions

View File

@@ -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 {

View File

@@ -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
]

View File

@@ -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
]

View File

@@ -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";