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

View File

@@ -14,15 +14,23 @@
{ifloop rel="export-formatters"}
<div class="row">
<div class="col-md-6">
{custom_render_form_field form=$form field="formatter"}
<select>
{loop name="export-formatters" type="formatter" export=$ID}
<option value="{$NAME}" {if $value == $NAME}selected{/if}>
{$NAME} (.{$EXTENSION})
</option>
{/loop}
</select>
{/custom_render_form_field}
{form_field form=$form field="formatter"}
<div class="form-group {if $error}has-error{/if}">
<label for="{$label_attr.for}">
{$label}
</label>
<select name="{$name}" id="{$label_attr.for}">
{loop name="export-formatters" type="formatter" export=$ID}
<option value="{$NAME}" {if $value == $NAME}selected{/if}>
{$NAME} (.{$EXTENSION})
</option>
{/loop}
</select>
{if $error}
<div class="error-field">{$message}</div>
{/if}
</div>
{/form_field}
</div>
<div class="col-md-6">
{form_field form=$form field="do_compress"}
@@ -38,7 +46,7 @@
<div class="row export-compression-selection-row">
<div class="col-md-4">
{custom_render_form_field form=$form field="archive_builder"}
<select name="{$name}">
<select name="{$name}" id="{$label_attr.for}">
{loop name="export-archive-builder" type="archive-builder"}
<option value="{$NAME}" {if $value == $NAME}selected{/if}>
{$NAME} (.{$EXTENSION})

View File

@@ -47,15 +47,23 @@
{ifloop rel="export-formatters"}
<div class="row">
<div class="col-md-6">
{custom_render_form_field form=$form field="formatter"}
<select>
{form_field form=$form field="formatter"}
<div class="form-group {if $error}has-error{/if}">
<label for="{$label_attr.for}">
{$label}
</label>
<select name="{$name}" id="{$label_attr.for}">
{loop name="export-formatters" type="formatter" export=$ID}
<option value="{$NAME}" {if $value == $NAME}selected{/if}>
{$NAME} (.{$EXTENSION})
</option>
{/loop}
</select>
{/custom_render_form_field}
{if $error}
<div class="error-field">{$message}</div>
{/if}
</div>
{/form_field}
</div>
<div class="col-md-6">
{form_field form=$form field="do_compress"}
@@ -70,15 +78,24 @@
</div>
<div class="row export-compression-selection-row">
<div class="col-md-4">
{custom_render_form_field form=$form field="archive_builder"}
<select name="{$name}">
{loop name="export-archive-builder" type="archive-builder"}
<option value="{$NAME}" {if $value == $NAME}selected{/if}>
{$NAME} (.{$EXTENSION})
</option>
{/loop}
</select>
{/custom_render_form_field}
{form_field form=$form field="archive_builder"}
<div class="form-group {if $error}has-error{/if}">
<label for="{$label_attr.for}">
{$label}
</label>
<select name="{$name}" id="{$label_attr.for}">
{loop name="export-archive-builder" type="archive-builder"}
<option value="{$NAME}" {if $value == $NAME}selected{/if}>
{$NAME} (.{$EXTENSION})
</option>
{/loop}
</select>
{if $error}
<div class="error-field">{$message}</div>
{/if}
</div>
{/form_field}
</div>
<div class="col-md-4">
{form_field form=$form field="images"}