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
|
* Define and validate the form
|
||||||
*/
|
*/
|
||||||
$form = new ExportForm($this->getRequest());
|
$form = new ExportForm(
|
||||||
$form->setArchiveBuilderNames($archiveBuilders);
|
$this->getRequest(),
|
||||||
$form->setFormatters($formatters);
|
"form",
|
||||||
|
array(),
|
||||||
|
array(),
|
||||||
|
$archiveBuilders,
|
||||||
|
$formatters
|
||||||
|
);
|
||||||
$errorMessage = null;
|
$errorMessage = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -118,7 +123,9 @@ class ImportExportController extends BaseAdminController
|
|||||||
200,
|
200,
|
||||||
[
|
[
|
||||||
"Content-Type" => $formatter->getMimeType(),
|
"Content-Type" => $formatter->getMimeType(),
|
||||||
"Content-Disposition" => $formatter::FILENAME . "." . $formatter->getExtension(),
|
"Content-Disposition" =>
|
||||||
|
"attachment; filename=\"".$formatter::FILENAME .
|
||||||
|
"." . $formatter->getExtension() ."\"",
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ class ArchiveBuilderManager
|
|||||||
{
|
{
|
||||||
throw new \OutOfBoundsException(
|
throw new \OutOfBoundsException(
|
||||||
Translator::getInstance()->trans(
|
Translator::getInstance()->trans(
|
||||||
"The archive creator %name doesn't exist",
|
"The archive builder \"%name\" doesn't exist",
|
||||||
[
|
[
|
||||||
"%name" => $name
|
"%name" => $name
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ class FormatterManager
|
|||||||
{
|
{
|
||||||
throw new \OutOfBoundsException(
|
throw new \OutOfBoundsException(
|
||||||
Translator::getInstance()->trans(
|
Translator::getInstance()->trans(
|
||||||
"The formatter %name doesn't exist",
|
"The formatter \"%name\" doesn't exist",
|
||||||
[
|
[
|
||||||
"%name" => $name
|
"%name" => $name
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -22,16 +22,9 @@ use Thelia\Form\BaseForm;
|
|||||||
*/
|
*/
|
||||||
class ExportForm extends BaseForm
|
class ExportForm extends BaseForm
|
||||||
{
|
{
|
||||||
protected $archiveBuilderManager = array();
|
|
||||||
|
|
||||||
protected $formattersNames = array();
|
|
||||||
|
|
||||||
protected $exportTypes = array();
|
|
||||||
|
|
||||||
protected $translator;
|
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();
|
$this->translator = Translator::getInstance();
|
||||||
|
|
||||||
parent::__construct($request, $type, $data, $options);
|
parent::__construct($request, $type, $data, $options);
|
||||||
@@ -40,24 +33,20 @@ class ExportForm extends BaseForm
|
|||||||
protected function buildForm()
|
protected function buildForm()
|
||||||
{
|
{
|
||||||
$this->formBuilder
|
$this->formBuilder
|
||||||
->add("formatter", "choice", array(
|
->add("formatter", "text", array(
|
||||||
"label" => $this->translator->trans("File format"),
|
"label" => $this->translator->trans("File format"),
|
||||||
"label_attr" => ["for" => "formatter"],
|
"label_attr" => ["for" => "formatter"],
|
||||||
"required" => true,
|
"required" => true,
|
||||||
"multiple" => false,
|
|
||||||
"choices" => $this->formattersNames,
|
|
||||||
))
|
))
|
||||||
->add("do_compress", "checkbox", array(
|
->add("do_compress", "checkbox", array(
|
||||||
"label" => $this->translator->trans("Do compress"),
|
"label" => $this->translator->trans("Do compress"),
|
||||||
"label_attr" => ["for" => "do_compress"],
|
"label_attr" => ["for" => "do_compress"],
|
||||||
"required" => false,
|
"required" => false,
|
||||||
))
|
))
|
||||||
->add("archive_builder", "choice", array(
|
->add("archive_builder", "text", array(
|
||||||
"label" => $this->translator->trans("Archive Format"),
|
"label" => $this->translator->trans("Archive Format"),
|
||||||
"label_attr" => ["for" => "archive_builder"],
|
"label_attr" => ["for" => "archive_builder"],
|
||||||
"required" => true,
|
"required" => false,
|
||||||
"multiple" => false,
|
|
||||||
"choices" => $this->archiveBuilderManager,
|
|
||||||
))
|
))
|
||||||
->add("images", "checkbox", array(
|
->add("images", "checkbox", array(
|
||||||
"label" => $this->translator->trans("Include images"),
|
"label" => $this->translator->trans("Include images"),
|
||||||
@@ -69,34 +58,9 @@ class ExportForm extends BaseForm
|
|||||||
"label_attr" => ["for" => "with_documents"],
|
"label_attr" => ["for" => "with_documents"],
|
||||||
"required" => false,
|
"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()
|
public function getName()
|
||||||
{
|
{
|
||||||
return "thelia_export";
|
return "thelia_export";
|
||||||
|
|||||||
@@ -14,15 +14,23 @@
|
|||||||
{ifloop rel="export-formatters"}
|
{ifloop rel="export-formatters"}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
{custom_render_form_field form=$form field="formatter"}
|
{form_field form=$form field="formatter"}
|
||||||
<select>
|
<div class="form-group {if $error}has-error{/if}">
|
||||||
{loop name="export-formatters" type="formatter" export=$ID}
|
<label for="{$label_attr.for}">
|
||||||
<option value="{$NAME}" {if $value == $NAME}selected{/if}>
|
{$label}
|
||||||
{$NAME} (.{$EXTENSION})
|
</label>
|
||||||
</option>
|
<select name="{$name}" id="{$label_attr.for}">
|
||||||
{/loop}
|
{loop name="export-formatters" type="formatter" export=$ID}
|
||||||
</select>
|
<option value="{$NAME}" {if $value == $NAME}selected{/if}>
|
||||||
{/custom_render_form_field}
|
{$NAME} (.{$EXTENSION})
|
||||||
|
</option>
|
||||||
|
{/loop}
|
||||||
|
</select>
|
||||||
|
{if $error}
|
||||||
|
<div class="error-field">{$message}</div>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{/form_field}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
{form_field form=$form field="do_compress"}
|
{form_field form=$form field="do_compress"}
|
||||||
@@ -38,7 +46,7 @@
|
|||||||
<div class="row export-compression-selection-row">
|
<div class="row export-compression-selection-row">
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
{custom_render_form_field form=$form field="archive_builder"}
|
{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"}
|
{loop name="export-archive-builder" type="archive-builder"}
|
||||||
<option value="{$NAME}" {if $value == $NAME}selected{/if}>
|
<option value="{$NAME}" {if $value == $NAME}selected{/if}>
|
||||||
{$NAME} (.{$EXTENSION})
|
{$NAME} (.{$EXTENSION})
|
||||||
|
|||||||
@@ -47,15 +47,23 @@
|
|||||||
{ifloop rel="export-formatters"}
|
{ifloop rel="export-formatters"}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
{custom_render_form_field form=$form field="formatter"}
|
{form_field form=$form field="formatter"}
|
||||||
<select>
|
<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}
|
{loop name="export-formatters" type="formatter" export=$ID}
|
||||||
<option value="{$NAME}" {if $value == $NAME}selected{/if}>
|
<option value="{$NAME}" {if $value == $NAME}selected{/if}>
|
||||||
{$NAME} (.{$EXTENSION})
|
{$NAME} (.{$EXTENSION})
|
||||||
</option>
|
</option>
|
||||||
{/loop}
|
{/loop}
|
||||||
</select>
|
</select>
|
||||||
{/custom_render_form_field}
|
{if $error}
|
||||||
|
<div class="error-field">{$message}</div>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{/form_field}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
{form_field form=$form field="do_compress"}
|
{form_field form=$form field="do_compress"}
|
||||||
@@ -70,15 +78,24 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="row export-compression-selection-row">
|
<div class="row export-compression-selection-row">
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
{custom_render_form_field form=$form field="archive_builder"}
|
{form_field form=$form field="archive_builder"}
|
||||||
<select name="{$name}">
|
<div class="form-group {if $error}has-error{/if}">
|
||||||
{loop name="export-archive-builder" type="archive-builder"}
|
<label for="{$label_attr.for}">
|
||||||
<option value="{$NAME}" {if $value == $NAME}selected{/if}>
|
{$label}
|
||||||
{$NAME} (.{$EXTENSION})
|
</label>
|
||||||
</option>
|
<select name="{$name}" id="{$label_attr.for}">
|
||||||
{/loop}
|
{loop name="export-archive-builder" type="archive-builder"}
|
||||||
</select>
|
<option value="{$NAME}" {if $value == $NAME}selected{/if}>
|
||||||
{/custom_render_form_field}
|
{$NAME} (.{$EXTENSION})
|
||||||
|
</option>
|
||||||
|
{/loop}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
{if $error}
|
||||||
|
<div class="error-field">{$message}</div>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{/form_field}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
{form_field form=$form field="images"}
|
{form_field form=$form field="images"}
|
||||||
|
|||||||
Reference in New Issue
Block a user