Fix form
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:
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
]
|
||||
|
||||
@@ -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
|
||||
]
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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})
|
||||
|
||||
@@ -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"}
|
||||
|
||||
Reference in New Issue
Block a user