Files
aux-bieaux-legumes/templates/backOffice/default/customers.html
2021-01-14 18:04:26 +01:00

432 lines
21 KiB
HTML

{extends file="admin-layout.tpl"}
{block name="no-return-functions"}
{$admin_current_location = 'customer'}
{/block}
{block name="page-title"}{intl l='Customer'}{/block}
{block name="check-resource"}admin.customer{/block}
{block name="check-access"}view{/block}
{block name="main-content"}
<div class="customer">
<div id="wrapper" class="container">
<ul class="breadcrumb">
<li><a href="{url path='/admin/home'}">{intl l="Home"}</a></li>
<li><a href="{url path='/admin/customers'}">{intl l="Customers"}</a></li>
</ul>
{hook name="customer.top" location="customer_top" }
<div class="row">
<div class="col-md-12">
<div class="general-block-decorator">
{if $removal_error }
<div class="alert alert-danger">
{$error_message}
</div>
{/if}
<div class="table-responsive">
<table class="table table-striped table-condensed" id="customer_list">
<caption>
{intl l="Customers list"}
{hook name="customers.caption" location="customer_list_caption" }
{include file='renderer/buttons.html' btn_group=false buttons=[
[
'type' => 'create',
'class' => 'action-btn',
'title' => {intl l='Add a new Customer'},
'href' => '#add_customer_dialog',
'auth' => ['resource' => 'admin.customer'],
'data' => [
'toggle' => 'modal'
]
]
]}
</caption>
{ifloop rel="customer_list"}
<thead>
<tr>
<th class="object-title">
{admin_sortable_header
current_order=$customer_order
order='reference'
reverse_order='reference_reverse'
path={url path='/admin/customers'}
request_parameter_name='customer_order'
label="{intl l='Reference'}"
}
</th>
<th class="object-title">
{admin_sortable_header
current_order=$customer_order
order='lastname'
reverse_order='lastname_reverse'
path={url path='/admin/customers'}
request_parameter_name='customer_order'
label="{intl l='Last name'}"
}
</th>
<th class="object-title">
{admin_sortable_header
current_order=$customer_order
order='firstname'
reverse_order='firstname_reverse'
path={url path='/admin/customers'}
request_parameter_name='customer_order'
label="{intl l='First name'}"
}
</th>
{hook name="customers.header" location="customer_list_header" }
<th class="object-title">
{admin_sortable_header
current_order=$customer_order
order='registration_date'
reverse_order='registration_date_reverse'
path={url path='/admin/customers'}
request_parameter_name='customer_order'
label="{intl l='Registration date'}"
}
</th>
<th class="object-title">{intl l='Date of last order'}</th>
<th class="object-title">{intl l='Last order amount'}</th>
{* TODO
<th class="object-title">
{admin_sortable_header
current_order=$customer_order
order='last_order'
reverse_order='last_order_reverse'
path={url path='/admin/customers'}
request_parameter_name='customer_order'
label="{intl l='Date of last order'}"
}
</th>
<th class="object-title">
{admin_sortable_header
current_order=$customer_order
order='order_amount'
reverse_order='order_amount_reverse'
path={url path='/admin/customers'}
request_parameter_name='customer_order'
label="{intl l='Last order amount'}"
}
</th>
*}
<th class="actions">{intl l='Actions'}</th>
</tr>
</thead>
<tbody>
{loop name="customer_list" type="customer" current="false" visible="*" order=$customer_order backend_context="1" page=$page limit={config key="number_default_results_per_page.customer_list" default=20} search_term=$search search_in="ref,firstname,lastname,email"}
{$lastOrderDate = ''}
{$lastOrderAmount = ''}
{$lastOrderCurrency = ''}
{$hasOrders = false}
{loop type="order" name="last-order" customer=$ID order="create-date-reverse" limit="1"}
{$lastOrderDate = {format_date date=$CREATE_DATE}}
{$lastOrderAmount = {format_number number=$TOTAL_TAXED_AMOUNT}}
{loop type="currency" name="order-currency" id=$CURRENCY}
{$lastOrderCurrency = $SYMBOL}
{$hasOrders = true}
{/loop}
{/loop}
<tr>
<td><a href="{url path="/admin/customer/update" customer_id=$ID page=$page}">{$REF}</a></td>
<td class="object-title">
{$LASTNAME}
</td>
<td class="object-title">
{$FIRSTNAME}
</td>
{hook name="customers.row" location="customer_list_row" customer_id={$ID}}
<td>
{format_date date=$CREATE_DATE}
</td>
<td>
{$lastOrderDate}
</td>
<td>
{$lastOrderCurrency} {$lastOrderAmount}
</td>
<td class="actions">
{if $hasOrders}
{$deleteClass = 'disabled'}
{$deleteTitle = {intl l='This customer has orders, and can\'t be deleted.'}}
{$deleteHref = ''}
{else}
{$deleteClass = 'customer-delete'}
{$deleteTitle = {intl l='Delete this customer and all his orders'}}
{$deleteHref = '#delete_customer_dialog'}
{/if}
{include file='renderer/buttons.html' buttons=[
[
'type' => 'edit',
'title' => {intl l='Edit this customer'},
'href' => {url path='/admin/customer/update' customer_id=$ID page=$page},
'auth' => ['resource' => 'admin.customer']
],
[
'title' => {intl l="Send a mail to this customer"},
'href' => "mailto:$EMAIL",
'icon' => ['class' => 'glyphicon glyphicon-envelope'],
'auth' => ['resource' => 'admin.customer']
],
[
'type' => 'delete',
'class' => $deleteClass,
'title' => $deleteTitle,
'href' => $deleteHref,
'data' => [
'id' => $ID,
'toggle' => 'modal'
],
'auth' => ['resource' => 'admin.customer']
]
]}
</td>
</tr>
{/loop}
</tbody>
<tfoot>
<tr>
<td colspan="100">
{include
file = "includes/pagination.html"
loop_ref = "customer_list"
max_page_count = 10
page_url = {url path="/admin/customers" search_term=$search search_in="ref,firstname,lastname,email" customer_order=$customer_order}
}
</td>
</tr>
</tfoot>
{/ifloop}
{elseloop rel="customer_list"}
<tr>
<td colspan="7">
<div class="alert alert-info">
{intl l='You have no registred customers for the moment.'}
</div>
</td>
</tr>
{/elseloop}
</table>
</div>
</div>
</div>
</div>
{hook name="customer.bottom" location="customer_bottom" }
</div>
</div>
{* Adding a new Category *}
{form name="thelia.admin.customer.create"}
{* Capture the dialog body, to pass it to the generic dialog *}
{capture "customer_creation_dialog"}
{form_hidden_fields}
{form_field field='success_url'}
{* on success, redirect to the edition page, _ID_ is replaced with the created object ID, see controller *}
<input type="hidden" name="{$name}" value="{url path='/admin/customer/update' customer_id='_ID_'}" />
{/form_field}
{*
We use "dummmy-password" here, because the creation form is common to back & front, and that we need a
valid password. This is just a workaround.
The password will be forced to a more secure value in the CustomerController.
*}
{form_field field="password"}
<input type="hidden" name="{$name}" value="dummmy-password" />
{/form_field}
{form_field field="password_confirm"}
<input type="hidden" name="{$name}" value="dummmy-password" />
{/form_field}
{render_form_field field="company"}
<div class="row">
<div class="col-sm-6">
{custom_render_form_field field='title'}
<select {form_field_attributes field='title'} >
{loop type="title" name="title1"}
<option value="{$ID}"{if $value == $ID} selected{/if}>{$LONG}</option>
{/loop}
</select>
{/custom_render_form_field}
</div>
</div>
<div class="row">
<div class="col-sm-6">{render_form_field field="firstname"}</div>
<div class="col-sm-6">{render_form_field field='lastname'}</div>
</div>
<div class="row">
<div class="col-sm-6">
{custom_render_form_field field='lang_id'}
<select {form_field_attributes field='lang_id'}>
{loop type="lang" name="lang.list" visible="*" order="alpha"}
<option value="{$ID}" {if {$value} == $ID}selected{/if}>{$TITLE}</option>
{/loop}
</select>
{/custom_render_form_field}
</div>
</div>
{render_form_field field='address1'}
{render_form_field field='address2' show_label=false}
{render_form_field field='address3' show_label=false}
<div class="row">
<div class="col-md-4">{render_form_field field='zipcode'}</div>
<div class="col-md-8">{render_form_field field='city'}</div>
</div>
<div class="row">
<div class="col-sm-6">
{custom_render_form_field field='country'}
<select {form_field_attributes field='country'} >
<option value="">-- {intl l="Select Country"} --</option>
{loop type="country" name="country.list" order="alpha"}
<option value="{$ID}"
{if $value != ""}
{if $value == $ID}selected{/if}
{else}
{if $IS_DEFAULT}selected{/if}
{/if}
>{$TITLE}</option>
{/loop}
</select>
{$countryFieldId=$label_attr.for}
{/custom_render_form_field}
</div>
<div class="col-md-6 group-state">
{custom_render_form_field field='state'}
<select {form_field_attributes field='state'}
data-thelia-state="1" data-thelia-country="#{$countryFieldId}" data-thelia-toggle=".group-state">
<option value="">-- {intl l="Select State"} --</option>
{loop type="state" name="state.list" order="alpha"}
<option value="{$ID}" data-country="{$COUNTRY}"
{if $value != ""}
{if $value == $ID}selected{/if}
{/if}
>{$TITLE}</option>
{/loop}
</select>
{/custom_render_form_field}
</div>
</div>
<div class="row">
{if {config key="customer_confirm_email"}}
<div class="col-sm-6">{render_form_field field="email"}</div>
<div class="col-sm-6">{render_form_field field="email_confirm"}</div>
{else}
<div class="col-sm-12">{render_form_field field="email"}</div>
{/if}
</div>
<div class="row">
<div class="col-sm-6">
{render_form_field field='phone'}
</div>
<div class="col-sm-6">
{render_form_field field='cellphone'}
</div>
</div>
{hook name="customer.create-form" location="customer_create_form" }
{/capture}
{include
file = "includes/generic-create-dialog.html"
dialog_id = "add_customer_dialog"
dialog_title = {intl l="Create a new customer"}
dialog_body = {$smarty.capture.customer_creation_dialog nofilter}
dialog_ok_label = {intl l="Create this customer"}
dialog_cancel_label = {intl l="Cancel"}
form_action = {url path='/admin/customer/create'}
form_enctype = {form_enctype}
form_error_message = $form_error_message
}
{/form}
{* Delete confirmation dialog *}
{capture "delete_customer_dialog"}
<input type="hidden" name="page" value="{$page}">
<input type="hidden" name="customer_id" id="delete_customer_id">
{hook name="customer.delete-form" location="customer_delete_form" }
{/capture}
{include
file = "includes/generic-confirm-dialog.html"
dialog_id = "delete_customer_dialog"
dialog_title = {intl l="Delete customer"}
dialog_message = {intl l="Do you really want to delete this customer ?"}
form_action = {token_url path='/admin/customer/delete'}
form_content = {$smarty.capture.delete_customer_dialog nofilter}
form_id = "form_delete_customer"
}
{/block}
{block name="javascript-initialization"}
{javascripts file='assets/js/thelia-states.js'}
<script src="{$asset_url}"></script>
{/javascripts}
<script type="text/javascript">
$(".customer-delete").click(function(){
$("#delete_customer_id").val($(this).attr("data-id"));
});
</script>
{/block}
{block name="javascript-last-call"}
{hook name="customers.js" location="customers-js" }
{/block}