Begin import export management

modifié:         core/lib/Thelia/Config/Resources/config.xml
	modifié:         core/lib/Thelia/Config/Resources/form.xml
	modifié:         core/lib/Thelia/Config/Resources/loop.xml
	modifié:         core/lib/Thelia/Config/Resources/routing/admin.xml
	renommé:         core/lib/Thelia/Form/ImportExport/BaseExportForm.php -> core/lib/Thelia/Controller/Admin/CustomerExportController.php
	modifié:         core/lib/Thelia/Controller/Admin/ExportController.php
	modifié:         core/lib/Thelia/Core/DependencyInjection/Compiler/RegisterArchiveBuilderPass.php
	modifié:         core/lib/Thelia/Core/DependencyInjection/Compiler/RegisterFormatterPass.php
	nouveau fichier: core/lib/Thelia/Core/Template/Loop/ArchiveBuilder.php
	nouveau fichier: core/lib/Thelia/Core/Template/Loop/Formatter.php
	nouveau fichier: core/lib/Thelia/Model/Base/ImportExportCategory.php
	nouveau fichier: core/lib/Thelia/Model/Base/ImportExportCategoryI18n.php
	nouveau fichier: core/lib/Thelia/Model/Base/ImportExportCategoryI18nQuery.php
	nouveau fichier: core/lib/Thelia/Model/Base/ImportExportCategoryQuery.php
	nouveau fichier: core/lib/Thelia/Model/Base/ImportExportType.php
	nouveau fichier: core/lib/Thelia/Model/Base/ImportExportTypeI18n.php
	nouveau fichier: core/lib/Thelia/Model/Base/ImportExportTypeI18nQuery.php
	nouveau fichier: core/lib/Thelia/Model/Base/ImportExportTypeQuery.php
	nouveau fichier: core/lib/Thelia/Model/ImportExportCategory.php
	nouveau fichier: core/lib/Thelia/Model/ImportExportCategoryI18n.php
	nouveau fichier: core/lib/Thelia/Model/ImportExportCategoryI18nQuery.php
	nouveau fichier: core/lib/Thelia/Model/ImportExportCategoryQuery.php
	nouveau fichier: core/lib/Thelia/Model/ImportExportType.php
	nouveau fichier: core/lib/Thelia/Model/ImportExportTypeI18n.php
	nouveau fichier: core/lib/Thelia/Model/ImportExportTypeI18nQuery.php
	nouveau fichier: core/lib/Thelia/Model/ImportExportTypeQuery.php
	nouveau fichier: core/lib/Thelia/Model/Map/ImportExportCategoryI18nTableMap.php
	nouveau fichier: core/lib/Thelia/Model/Map/ImportExportCategoryTableMap.php
	nouveau fichier: core/lib/Thelia/Model/Map/ImportExportTypeI18nTableMap.php
	nouveau fichier: core/lib/Thelia/Model/Map/ImportExportTypeTableMap.php
	modifié:         local/config/schema.xml
	modifié:         setup/thelia.sql
	modifié:         templates/backOffice/default/export.html
	nouveau fichier: templates/backOffice/default/includes/export-form-definition.html
This commit is contained in:
Benjamin Perche
2014-07-09 15:57:23 +02:00
parent 168cb31253
commit d1f5087d00
34 changed files with 11313 additions and 75 deletions

View File

@@ -10,49 +10,85 @@
{block name="check-access"}view{/block}
{block name="main-content"}
<div class="configuration">
<div id="wrapper" class="container">
{form name="thelia.admin.export"}
<form id="export-form" method="post" {form_enctype form=$form} class="clearfix">
<div class="configuration">
<nav>
<ul class="breadcrumb">
<li><a href="{url path='admin/home'}">{intl l='Home'}</a></li>
<li><a href="{url path='admin/tools'}">{intl l='Tools'}</a></li>
<li>{intl l="Exports"}</li>
</ul>
</nav>
<div id="wrapper" class="container">
{module_include location='tools_top'}
<nav>
<ul class="breadcrumb">
<li><a href="{url path='admin/home'}">{intl l='Home'}</a></li>
<li><a href="{url path='admin/tools'}">{intl l='Tools'}</a></li>
<li>{intl l="Exports"}</li>
</ul>
</nav>
<div class="row">
{module_include location='tools_top'}
<div class="col-md-4">
<div class="menu-list-table general-block-decorator">
<div class="table-responsive">
<table class="table table-striped table-condensed">
<caption>{intl l='Customer export'}</caption>
{include file='includes/export-form-definition.html' form=$form}
<div class="row">
{module_include location='tools_col1_top'}
<div class="col-md-4">
<div class="menu-list-table general-block-decorator">
<div class="table-responsive">
<table class="table table-striped table-condensed">
<caption>{intl l='Customer export'}</caption>
{loop name="auth-export" type="auth" role="ADMIN" resource="admin.export.customer.newsletter" access="VIEW"}
<tr>
<td><a href="{url path='/admin/export/customer/newsletter'}">{intl l="newsletter subscribers"}</a></td>
<td><a class="btn btn-default btn-xs" href="{url path='/admin/export/customer/newsletter'}"><i class="glyphicon glyphicon-edit"></i></a></td>
</tr>
{/loop}
{module_include location='tools_col1_top'}
{module_include location='tools_col1_bottom'}
</table>
{loop name="auth-export" type="auth" role="ADMIN" resource="admin.export.customer.newsletter" access="VIEW"}
<tr>
<td><a href="{url path='/admin/export/customer/newsletter'}">{intl l="newsletter subscribers"}</a></td>
</tr>
{/loop}
{module_include location='tools_col1_bottom'}
</table>
</div>
</div>
</div>
</div>
{module_include location='configuration_bottom'}
{module_include location='configuration_bottom'}
</div>
</div>
</div>
</div>
</form>
{/form}
{/block}
{block name="javascript-initialization"}
{javascripts file='assets/js/bootstrap-switch/bootstrap-switch.js'}
<script src="{$asset_url}"></script>
{/javascripts}
{/block}
{block name="javascript-last-call"}
<!-- -->
<script>
$(document).ready(function() {
var compression_switch = $(".export-compression-switch");
var compression_row = $(".export-compression-selection-row");
compression_switch.on("switch-change", function(e, data) {
var is_checked = data.value;
if (is_checked) {
compression_row.show();
} else {
compression_row.hide();
}
});
if ($("input[type=checkbox]", compression_switch).is(":checked")) {
compression_row.show();
} else {
compression_row.hide();
}
});
</script>
{module_include location='configuration-js'}
{/block}

View File

@@ -0,0 +1,96 @@
{*
This file defines the fields used for export configuration:
- Export format
- With images ? documents ?
- archive format ?
*}
<div class="row">
<div class="col-md-12">
<div class="general-block-decorator">
<div class="title block-title">
{intl l="Export options"}
</div>
<div class="block-content">
{ifloop rel="export-formatters"}
<div class="row">
<div class="col-md-12">
<div class="col-md-3">
{custom_render_form_field form=$form field="formatter"}
<select>
{loop name="export-formatters" type="formatter"}
<option value="{$NAME}" {if $value == $NAME}selected{/if}>
{$NAME} (.{$EXTENSION})
</option>
{/loop}
</select>
{/custom_render_form_field}
</div>
<div class="col-md-3">
<div class="row">
<div class="col-md-12">
<label>
{intl l="Do compress"}
</label>
<div data-off-label="&lt;i class='glyphicon glyphicon-remove-circle'&gt;&lt;/i&gt;" data-on-label="&lt;i class='glyphicon glyphicon-ok-circle'&gt;&lt;/i&gt;" data-on="success" class="make-switch switch-small export-compression-switch">
<input type="checkbox" />
</div>
</div>
</div>
<div class="row export-compression-selection-row">
<div class="col-md-12">
{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}
</div>
</div>
</div>
<div class="col-md-3">
{form_field form=$form field="images"}
<label for="{$label_attr.for}">
{$label}
</label>
<div data-off-label="&lt;i class='glyphicon glyphicon-remove-circle'&gt;&lt;/i&gt;" data-on-label="&lt;i class='glyphicon glyphicon-ok-circle'&gt;&lt;/i&gt;" data-on="success" class="make-switch switch-small ">
<input type="checkbox" name="{$name}" id="{$label_attr.for}"/>
</div>
{/form_field}
</div>
<div class="col-md-3">
{form_field form=$form field="documents"}
<label for="{$label_attr.for}">
{$label}
</label>
<div data-off-label="&lt;i class='glyphicon glyphicon-remove-circle'&gt;&lt;/i&gt;" data-on-label="&lt;i class='glyphicon glyphicon-ok-circle'&gt;&lt;/i&gt;" data-on="success" class="make-switch switch-small ">
<input type="checkbox" name="{$name}" id="{$label_attr.for}"/>
</div>
{/form_field}
</div>
</div>
</div>
</div>
{/ifloop}
{elseloop rel="export-formatters"}
<div class="row">
<div class="col-md-12">
<div class="alert alert-warning">
{intl l="You can't do exports, you don't have any formatter"}
</div>
</div>
</div>
{/elseloop}
</div>
</div>
</div>