[+] BO Customers > Customers / Customers > Groups

This commit is contained in:
Kevin Granger
2013-07-30 18:47:13 +02:00
parent 24a70479d3
commit a1cc4d14d0
9 changed files with 502 additions and 472 deletions
+2 -3
View File
@@ -5073,14 +5073,13 @@ body.fixed-top {
margin: 0 0 0 240px;
border-left: 2px solid black;
border-right: 2px solid black;
background-color: #f6f5f3;
background-image: url("../img/patterns/bedge_grunge.png");
background-color: white;
-webkit-box-shadow: #b4ac9c 0 0 0 4px;
box-shadow: #b4ac9c 0 0 0 4px; }
#content fieldset {
padding: 20px;
margin-bottom: 10px;
border: solid 1px #cac4b9;
border: solid 1px #e0ddd6;
background-color: #f6f5f3;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
@@ -43,13 +43,14 @@ body.fixed-top
margin: 0 0 0 240px
border-left: 2px solid black
border-right: 2px solid black
background-color: $bg-content-color
background-image: url('../img/patterns/bedge_grunge.png')
background-color: white
//background-color: $bg-content-color
//background-image: url('../img/patterns/bedge_grunge.png')
@include box-shadow(darken($bg-content-color,30%) 0 0 0 4px)
fieldset
padding: 20px
margin-bottom: 10px
border: solid 1px darken($bg-content-color,20%)
border: solid 1px darken($bg-content-color,10%)
background-color: $bg-content-color
@include border-radius(5px)
@include box-shadow(rgba(black,0.10) 0 0 7px, white 0 0 0 4px inset)
@@ -62,8 +62,7 @@
{if isset($params.active)}
{$tr.$key}
{elseif isset($params.activeVisu)}
<img src="../img/admin/{if $tr.$key}enabled.gif{else}disabled.gif{/if}"
alt="{if $tr.$key}{l s='Enabled'}{else}{l s='Disabled'}{/if}" title="{if $tr.$key}{l s='Enabled'}{else}{l s='Disabled'}{/if}" />
<i class="{if $tr.$key}icon-check-sign{else}icon-ban-circle{/if}"></i>
{elseif isset($params.position)}
{if $order_by == 'position' && $order_way != 'DESC'}
<a href="{$tr.$key.position_url_down}" {if !($tr.$key.position != $positions[count($positions) - 1])}style="display: none;"{/if}>
@@ -54,438 +54,477 @@
}
</script>
<div id="container-customer">
<div class="info-customer-left">
<div style="float: right">
<a href="{$current}&updatecustomer&id_customer={$customer->id}&token={$token}">
<img src="../img/admin/edit.gif" />
</a>
</div>
<span style="font-size: 14px;">
{$customer->firstname} {$customer->lastname}
</span>
<img src="{$gender_image}" style="margin-bottom: 5px" /><br />
<a href="mailto:{$customer->email}" style="text-decoration: underline; color:#268CCD;">{$customer->email}</a>
<br /><br />
{l s='ID:'} {$customer->id|string_format:"%06d"}<br />
{l s='Registration date:'} {$registration_date}<br />
{l s='Last visit:'} {if $customer_stats['last_visit']}{$last_visit}{else}{l s='Never'}{/if}<br />
{if $count_better_customers != '-'}{l s='Rank: #'} {$count_better_customers}<br />{/if}
{if $shop_is_feature_active}{l s='Shop:'} {$name_shop}<br />{/if}
</div>
<div class="info-customer-right">
<div style="float: right">
<a href="{$current}&updatecustomer&id_customer={$customer->id}&token={$token}">
<img src="../img/admin/edit.gif" />
</a>
</div>
{l s='Language:'} {if isset($customerLanguage)}{$customerLanguage->name}{else}{l s='undefined'}{/if}<br />
{l s='Newsletter:'} {if $customer->newsletter}<img src="../img/admin/enabled.gif" />{else}<img src="../img/admin/disabled.gif" />{/if}<br />
{l s='Opt in:'} {if $customer->optin}<img src="../img/admin/enabled.gif" />{else}<img src="../img/admin/disabled.gif" />{/if}<br />
{l s='Age:'} {$customer_stats['age']} {if isset($customer->birthday['age'])}({$customer_birthday}){else}{l s='Unknown'}{/if}<br /><br />
{l s='Last update:'} {$last_update}<br />
{l s='Status:'} {if $customer->active}<img src="../img/admin/enabled.gif" />{else}<img src="../img/admin/disabled.gif" />{/if}
{if $customer->isGuest()}
<div>
{l s='This customer is registered as.'} <b>{l s='Guest'}</b>
{if !$customer_exists}
<div id="container-customer"></div>
<div class="row">
<div class="col-lg-6">
<fieldset>
<a class="btn btn-default pull-right" href="{$current}&updatecustomer&id_customer={$customer->id}&token={$token}">
<i class="icon-edit"></i> {l s='Edit'}
</a>
<h2>
{$customer->firstname} {$customer->lastname} <img src="{$gender_image}"/>
</h2>
<ul>
<li><a href="mailto:{$customer->email}">{$customer->email}</a></li>
<li>{l s='ID:'} {$customer->id|string_format:"%06d"}</li>
<li>{l s='Registration date:'} {$registration_date}</li>
<li>{l s='Last visit:'} {if $customer_stats['last_visit']}{$last_visit}{else}{l s='Never'}{/if}</li>
<li>{if $count_better_customers != '-'}{l s='Rank: #'} {$count_better_customers}{/if}</li>
<li>{if $shop_is_feature_active}{l s='Shop:'} {$name_shop}{/if}</li>
<li>{l s='Language:'} {if isset($customerLanguage)}{$customerLanguage->name}{else}{l s='undefined'}{/if}</li>
<li>{l s='Newsletter:'} {if $customer->newsletter}<img src="../img/admin/enabled.gif" />{else}<img src="../img/admin/disabled.gif" />{/if}</li>
<li>{l s='Opt in:'} {if $customer->optin}<img src="../img/admin/enabled.gif" />{else}<img src="../img/admin/disabled.gif" />{/if}</li>
<li>{l s='Age:'} {$customer_stats['age']} {if isset($customer->birthday['age'])}({$customer_birthday}){else}{l s='Unknown'}{/if}</li>
<li>{l s='Last update:'} {$last_update}</li>
<li>{l s='Status:'} {if $customer->active}<img src="../img/admin/enabled.gif" />{else}<img src="../img/admin/disabled.gif" />{/if}</li>
</ul>
{if $customer->isGuest()}
<div>
{l s='This customer is registered as.'} <b>{l s='Guest'}</b>
{if !$customer_exists}
<form method="post" action="index.php?tab=AdminCustomers&id_customer={$customer->id}&token={getAdminToken tab='AdminCustomers'}">
<input type="hidden" name="id_lang" value="{$id_lang}" />
<p class="center"><input class="button" type="submit" name="submitGuestToCustomer" value="{l s='Transform to a customer account'}" /></p>
<p class="center">
<input class="button" type="submit" name="submitGuestToCustomer" value="{l s='Transform to a customer account'}" />
</p>
{l s='This feature generates a random password before sending an email to your customer.'}
</form>
{else}
</div><div><b style="color:red;">{l s='A registered customer account using the defined email address already exists. '}</b>
{else}
</div>
<div>
{l s='A registered customer account using the defined email address already exists. '}
{/if}
</div>
{/if}
</div>
{/if}
</fieldset>
</div>
<div class="clear"></div>
<div class="separation"></div>
<div>
<h2>
<img src="../img/admin/cms.gif" /> {l s='Add a private note'}
</h2>
<p>{l s='This note will be displayed to all employees but not to customers.'}</p>
<form action="ajax.php" method="post" onsubmit="saveCustomerNote();return false;" id="customer_note">
<textarea name="note" id="noteContent" style="width:600px;height:100px" onkeydown="$('#submitCustomerNote').removeAttr('disabled');">{$customer_note}</textarea><br />
<input type="submit" id="submitCustomerNote" class="button" value="{l s='Save '}" style="float:left;margin-top:5px" disabled="disabled" />
<span id="note_feedback" style="position:relative; top:10px; left:10px;"></span>
</form>
</div>
<div class="clear"></div>
<div class="separation"></div>
<div style="width:50%;float:left;">
<h2>{l s='Messages'} ({count($messages)})</h2>
{if count($messages)}
<table cellspacing="0" cellpadding="0" class="table" style="width:100%;">
<tr>
<th class="left">{l s='Status'}</th>
<th class="left">{l s='Message'}</th>
<th class="left">{l s='Sent on'}</th>
</tr>
{foreach $messages AS $message}
<tr>
<td class="left">{$message['status']}</td>
<td class="left">
<a href="index.php?tab=AdminCustomerThreads&id_customer_thread={$message.id_customer_thread}&viewcustomer_thread&token={getAdminToken tab='AdminCustomerThreads'}">
{$message['message']}...
</a>
</td>
<td class="left">{$message['date_add']}</td>
</tr>
{/foreach}
</table>
<div class="clear">&nbsp;</div>
{else}
{l s='%1$s %2$s has never contacted you' sprintf=[$customer->firstname, $customer->lastname]}
{/if}
</div>
<div style="width:50%;float:left;">
<div style="margin-left:15px;"
<h2>{l s='Vouchers'} ({count($discounts)})</h2>
{if count($discounts)}
<table cellspacing="0" cellpadding="0" class="table">
<tr>
<th>{l s='ID'}</th>
<th>{l s='Code'}</th>
<th>{l s='Name'}</th>
<div class="col-lg-6">
<fieldset>
<h3>
<i class="icon-eye-close"></i> {l s='Add a private note'}
</h3>
<div class="alert alert-info">{l s='This note will be displayed to all employees but not to customers.'}</div>
<form action="ajax.php" method="post" onsubmit="saveCustomerNote();return false;" id="customer_note">
<textarea name="note" id="noteContent" onkeydown="$('#submitCustomerNote').removeAttr('disabled');">{$customer_note}</textarea>
<button type="submit" id="submitCustomerNote" class="btn btn-primary" disabled="disabled" />{l s='Save'}</button>
<span id="note_feedback"></span>
</form>
</fieldset>
</div>
</div>
<fieldset>
<div class="col col-lg-12">
<h3><i class="icon-envelope-alt"></i> {l s='Messages'} <span class="badge">{count($messages)}</span></h3>
{if count($messages)}
<table class="table">
<thead>
<th>{l s='Status'}</th>
<th>{l s='Actions'}</th>
</tr>
<th>{l s='Message'}</th>
<th>{l s='Sent on'}</th>
</thead>
{foreach $messages AS $message}
<tr>
<td>{$message['status']}</td>
<td>
<a href="index.php?tab=AdminCustomerThreads&id_customer_thread={$message.id_customer_thread}&viewcustomer_thread&token={getAdminToken tab='AdminCustomerThreads'}">
{$message['message']}...
</a>
</td>
<td>{$message['date_add']}</td>
</tr>
{/foreach}
</table>
{else}
{l s='%1$s %2$s has never contacted you' sprintf=[$customer->firstname, $customer->lastname]}
{/if}
</div>
</fieldset>
<fieldset>
<div class="col col-lg-12">
<h3><i class="icon-gift"></i> {l s='Vouchers'} <span class="badge">{count($discounts)}</span></h3>
{if count($discounts)}
<table class="table">
<thead>
<tr>
<th>{l s='ID'}</th>
<th>{l s='Code'}</th>
<th>{l s='Name'}</th>
<th>{l s='Status'}</th>
<th>{l s='Actions'}</th>
<tr/>
</thead>
<tbody>
{foreach $discounts AS $key => $discount}
<tr {if $key %2}class="alt_row"{/if}>
<td align="center">{$discount['id_cart_rule']}</td>
<td>{$discount['code']}</td>
<td>{$discount['name']}</td>
<td align="center"><img src="../img/admin/{if $discount['active']}enabled.gif{else}disabled.gif{/if}" alt="{l s='Status'}" title="{l s='Status'}" /></td>
<td align="center">
<a href="?tab=AdminCartRules&id_cart_rule={$discount['id_cart_rule']}&addcart_rule&token={getAdminToken tab='AdminCartRules'}"><img src="../img/admin/edit.gif" /></a>
<a href="?tab=AdminCartRules&id_cart_rule={$discount['id_cart_rule']}&deletecart_rule&token={getAdminToken tab='AdminCartRules'}"><img src="../img/admin/delete.gif" /></a>
</td>
</tr>
<tr>
<td align="center">{$discount['id_cart_rule']}</td>
<td>{$discount['code']}</td>
<td>{$discount['name']}</td>
<td align="center">
<img src="../img/admin/{if $discount['active']}enabled.gif{else}disabled.gif{/if}" alt="{l s='Status'}" title="{l s='Status'}" />
</td>
<td align="center">
<a href="?tab=AdminCartRules&id_cart_rule={$discount['id_cart_rule']}&addcart_rule&token={getAdminToken tab='AdminCartRules'}">
<img src="../img/admin/edit.gif" />
</a>
<a href="?tab=AdminCartRules&id_cart_rule={$discount['id_cart_rule']}&deletecart_rule&token={getAdminToken tab='AdminCartRules'}">
<img src="../img/admin/delete.gif" />
</a>
</td>
</tr>
</tbody>
{/foreach}
</table>
{else}
{l s='%1$s %2$s has no discount vouchers' sprintf=[$customer->firstname, $customer->lastname]}.
{/if}
</div>
</div>
{* display hook specified to this page : AdminCustomers *}
<div>{hook h="displayAdminCustomers" id_customer=$customer->id}</div>
<div class="clear">&nbsp;</div>
<div style="width:50%;float:left;">
<h2>{l s='Orders'} ({count($orders)})</h2>
{if $orders AND count($orders)}
{assign var=count_ok value=count($orders_ok)}
{if $count_ok}
<div>
<h3 style="color:green;font-weight:700;clear:both;">
{l s='Valid orders:'} {$count_ok} {l s='for'} {$total_ok}
</h3>
<table cellspacing="0" cellpadding="0" class="table" style="width:100%; text-align:left;">
<colgroup>
<col width="10px">
<col width="100px">
<col width="100px">
<col width="">
<col width="50px">
<col width="80px">
<col width="70px">
</colgroup>
<tr>
<th height="39px" class="center">{l s='ID'}</th>
<th class="left">{l s='Date'}</th>
<th class="left">{l s='Payment: '}</th>
<th class="left">{l s='State'}</th>
<th class="right">{l s='Products'}</th>
<th class="right">{l s='Total spent'}</th>
<th class="center">{l s='Actions'}</th>
</tr>
{foreach $orders_ok AS $key => $order}
<tr {if $key %2}class="alt_row"{/if} style="cursor: pointer" onclick="document.location = '?tab=AdminOrders&id_order={$order['id_order']}&vieworder&token={getAdminToken tab='AdminOrders'}'">
<td class="left">{$order['id_order']}</td>
<td class="left">{$order['date_add']}</td>
<td class="left">{$order['payment']}</td>
<td class="left">{$order['order_state']}</td>
<td align="right">{$order['nb_products']}</td>
<td align="right">{$order['total_paid_real']}</td>
<td align="center"><a href="?tab=AdminOrders&id_order={$order['id_order']}&vieworder&token={getAdminToken tab='AdminOrders'}"><img src="../img/admin/details.gif" /></a></td>
</tr>
{/foreach}
</table>
</div>
{/if}
{assign var=count_ko value=count($orders_ko)}
{if $count_ko}
<div>
<table cellspacing="0" cellpadding="0" class="table" style="width:100%;">
<colgroup>
<col width="10px">
<col width="100px">
<col width="">
<col width="">
<col width="100px">
<col width="100px">
<col width="52px">
</colgroup>
<tr>
<th height="39px" class="left">{l s='ID'}</th>
<th class="left">{l s='Date'}</th>
<th class="left">{l s='Payment: '}</th>
<th class="left">{l s='State'}</th>
<th class="right">{l s='Products'}</th>
<th class="right">{l s='Total spent'}</th>
<th class="center">{l s='Actions'}</th>
</tr>
{foreach $orders_ko AS $key => $order}
<tr {if $key %2}class="alt_row"{/if} style="cursor: pointer" onclick="document.location = '?tab=AdminOrders&id_order={$order['id_order']}&vieworder&token={getAdminToken tab='AdminOrders'}'">
<td class="left">{$order['id_order']}</td>
<td class="left">{$order['date_add']}</td>
<td class="left">{$order['payment']}</td>
<td class="left">{$order['order_state']}</td>
<td align="right">{$order['nb_products']}</td>
<td align="right">{$order['total_paid_real']}</td>
<td align="center"><a href="?tab=AdminOrders&id_order={$order['id_order']}&vieworder&token={getAdminToken tab='AdminOrders'}"><img src="../img/admin/details.gif" /></a></td>
</tr>
{/foreach}
</table>
<h3 style="color:red;font-weight:normal;">{l s='Invalid orders:'} {$count_ko}</h3>
</div>
{/if}
{else}
{l s='%1$s %2$s has not placed any orders yet' sprintf=[$customer->firstname, $customer->lastname]}
{/if}
</div>
<div style="float:left;width:50%">
<div style="margin-left:15px;">
<h2>{l s='Carts'} ({count($carts)})</h2>
</fieldset>
<fieldset>
{* display hook specified to this page : AdminCustomers *}
<div>{hook h="displayAdminCustomers" id_customer=$customer->id}</div>
</fieldset>
<fieldset>
<div class="col col-lg-12">
<h3>{l s='Orders'} <span class="badge">{count($orders)}</span></h3>
{if $orders AND count($orders)}
{assign var=count_ok value=count($orders_ok)}
{if $count_ok}
<h3>
<i class="icon-ok-circle"></i> {l s='Valid orders:'} {$count_ok} {l s='for'} {$total_ok}
</h3>
<table class="table">
<thead>
<tr>
<th class="center">{l s='ID'}</th>
<th>{l s='Date'}</th>
<th>{l s='Payment: '}</th>
<th>{l s='State'}</th>
<th class="right">{l s='Products'}</th>
<th class="right">{l s='Total spent'}</th>
<th class="center">{l s='Actions'}</th>
</tr>
</thead>
<tbody>
{foreach $orders_ok AS $key => $order}
<tr onclick="document.location = '?tab=AdminOrders&id_order={$order['id_order']}&vieworder&token={getAdminToken tab='AdminOrders'}'">
<td>{$order['id_order']}</td>
<td>{$order['date_add']}</td>
<td>{$order['payment']}</td>
<td>{$order['order_state']}</td>
<td align="right">{$order['nb_products']}</td>
<td align="right">{$order['total_paid_real']}</td>
<td align="center">
<a class="btn btn-default" href="?tab=AdminOrders&id_order={$order['id_order']}&vieworder&token={getAdminToken tab='AdminOrders'}">
<i class='icon-eye-open'></i> {l s='View'}
</a>
</td>
</tr>
{/foreach}
</tbody>
</table>
{/if}
{assign var=count_ko value=count($orders_ko)}
{if $count_ko}
<table class="table">
<thead>
<tr>
<th>{l s='ID'}</th>
<th>{l s='Date'}</th>
<th>{l s='Payment: '}</th>
<th>{l s='State'}</th>
<th class="right">{l s='Products'}</th>
<th class="right">{l s='Total spent'}</th>
<th class="center">{l s='Actions'}</th>
</tr>
</thead>
<tbody>
{foreach $orders_ko AS $key => $order}
<tr {if $key %2}class="alt_row"{/if} style="cursor: pointer" onclick="document.location = '?tab=AdminOrders&id_order={$order['id_order']}&vieworder&token={getAdminToken tab='AdminOrders'}'">
<td>{$order['id_order']}</td>
<td>{$order['date_add']}</td>
<td>{$order['payment']}</td>
<td>{$order['order_state']}</td>
<td align="right">{$order['nb_products']}</td>
<td align="right">{$order['total_paid_real']}</td>
<td align="center">
<a class="btn btn-default" href="?tab=AdminOrders&id_order={$order['id_order']}&vieworder&token={getAdminToken tab='AdminOrders'}">
<i class='icon-eye-open'></i> {l s='View'}
</a>
</td>
</tr>
{/foreach}
</tbody>
</table>
<div class="alert alert-info">{l s='Invalid orders:'} <span class="badge">{$count_ko}</span></div>
{/if}
{else}
{l s='%1$s %2$s has not placed any orders yet' sprintf=[$customer->firstname, $customer->lastname]}
{/if}
</div>
</fieldset>
<fieldset>
<div class="col-lg-12">
<h3><i class="icon-shopping-cart"></i> {l s='Carts'} <span class="badge">{count($carts)}</span></h3>
{if $carts AND count($carts)}
<table cellspacing="0" cellpadding="0" class="table" style="width:100%">
<colgroup>
<col width="50px">
<col width="150px">
<col width="">
<col width="70px">
<col width="50px">
</colgroup>
<tr>
<th height="39px" class="left">{l s='ID'}</th>
<th class="left">{l s='Date'}</th>
<th class="left">{l s='Carrier'}</th>
<th class="right">{l s='Total'}</th>
<th class="center">{l s='Actions'}</th>
</tr>
<table class="table">
<thead>
<tr>
<th>{l s='ID'}</th>
<th>{l s='Date'}</th>
<th>{l s='Carrier'}</th>
<th class="right">{l s='Total'}</th>
<th class="center">{l s='Actions'}</th>
</tr>
</thead>
<tbody>
{foreach $carts AS $key => $cart}
<tr {if $key %2}class="alt_row"{/if} style="cursor: pointer" onclick="document.location = '?tab=AdminCarts&id_cart={$cart['id_cart']}&viewcart&token={getAdminToken tab='AdminCarts'}'">
<td class="left">{$cart['id_cart']}</td>
<td class="left">{$cart['date_add']}</td>
<td class="left">{$cart['name']}</td>
<tr onclick="document.location = '?tab=AdminCarts&id_cart={$cart['id_cart']}&viewcart&token={getAdminToken tab='AdminCarts'}'">
<td>{$cart['id_cart']}</td>
<td>{$cart['date_add']}</td>
<td>{$cart['name']}</td>
<td align="right">{$cart['total_price']}</td>
<td align="center"><a href="index.php?tab=AdminCarts&id_cart={$cart['id_cart']}&viewcart&token={getAdminToken tab='AdminCarts'}"><img src="../img/admin/details.gif" /></a></td>
<td align="center">
<a class="btn btn-default" href="index.php?tab=AdminCarts&id_cart={$cart['id_cart']}&viewcart&token={getAdminToken tab='AdminCarts'}">
<i class='icon-eye-open'></i> {l s='View'}
</a>
</td>
</tr>
{/foreach}
</tbody>
</table>
{else}
{l s='No cart is available'}.
{/if}
</div>
</div>
</fieldset>
<div class="clear">&nbsp;</div>
{if $products AND count($products)}
<div class="clear">&nbsp;</div>
<h2>{l s='Products:'} ({count($products)})</h2>
<table cellspacing="0" cellpadding="0" class="table" style="width:100%;">
<colgroup>
<col width="50px">
<col width="">
<col width="60px">
<col width="70px">
</colgroup>
<tr>
<th height="39px" class="center">{l s='Date'}</th>
<th class="center">{l s='Name'}</th>
<th class="center">{l s='Quantity'}</th>
<th class="center">{l s='Actions'}</th>
</tr>
{foreach $products AS $key => $product}
<tr {if $key %2}class="alt_row"{/if} style="cursor: pointer" onclick="document.location = '?tab=AdminOrders&id_order={$product['id_order']}&vieworder&token={getAdminToken tab='AdminOrders'}'">
<td>{$product['date_add']}</td>
<td>{$product['product_name']}</td>
<td align="right">{$product['product_quantity']}</td>
<td align="center"><a href="?tab=AdminOrders&id_order={$product['id_order']}&vieworder&token={getAdminToken tab='AdminOrders'}"><img src="../img/admin/details.gif" /></a></td>
</tr>
{/foreach}
</table>
{/if}
<div class="clear">&nbsp;</div>
<div style="float:left;width:50%">
<h2>{l s='Addresses'} ({count($addresses)})</h2>
{if count($addresses)}
<table cellspacing="0" cellpadding="0" class="table" style="width:100%;">
<colgroup>
<col width="120px">
<col width="120px">
<col width="">
<col width="100px">
<col width="170px">
<col width="70px">
</colgroup>
<tr>
<th class="left" height="39px">{l s='Company'}</th>
<th class="left">{l s='Name'}</th>
<th class="left">{l s='Address'}</th>
<th class="left">{l s='Country'}</th>
<th class="right">{l s='Phone number(s)'}</th>
<th class="center">{l s='Actions'}</th>
</tr>
{foreach $addresses AS $key => $address}
<tr {if $key %2}class="alt_row"{/if}>
<td class="left">{if $address['company']}{$address['company']}{else}--{/if}</td>
<td class="left">{$address['firstname']} {$address['lastname']}</td>
<td class="left">{$address['address1']} {if $address['address2']}{$address['address2']}{/if} {$address['postcode']} {$address['city']}</td>
<td class="left">{$address['country']}</td>
<td class="right">
{if $address['phone']}
{$address['phone']}
{if $address['phone_mobile']}<br />{$address['phone_mobile']}{/if}
{else}
{if $address['phone_mobile']}<br />{$address['phone_mobile']}{else}--{/if}
{/if}
</td>
<td class="center">
<a href="?tab=AdminAddresses&id_address={$address['id_address']}&addaddress&token={getAdminToken tab='AdminAddresses'}"><img src="../img/admin/edit.gif" /></a>
<a href="?tab=AdminAddresses&id_address={$address['id_address']}&deleteaddress&token={getAdminToken tab='AdminAddresses'}"><img src="../img/admin/delete.gif" /></a>
</td>
</tr>
{/foreach}
</table>
{else}
{l s='%1$s %2$s has not registered any addresses yet' sprintf=[$customer->firstname, $customer->lastname]}
{/if}
</div>
<div style="float:left;width:50%">
<div style="margin-left:15px">
<h2>
{l s='Groups'} ({count($groups)})
<a href="{$current}&updatecustomer&id_customer={$customer->id}&token={$token}">
<img src="../img/admin/edit.gif" />
</a>
</h2>
{if $groups AND count($groups)}
<table cellspacing="0" cellpadding="0" class="table" style="width:100%;">
<colgroup>
<col width="10px">
<col width="">
<col width="70px">
</colgroup>
<fieldset>
{if $products AND count($products)}
<div class="col-lg-12">
<h3><i class="icon-archive"></i> {l s='Products:'} <span class="badge">{count($products)}</span></h3>
<table class="table">
<thead>
<tr>
<th height="39px" class="left">{l s='ID'}</th>
<th class="left">{l s='Name'}</th>
<th class="center">{l s='Date'}</th>
<th class="center">{l s='Name'}</th>
<th class="center">{l s='Quantity'}</th>
<th class="center">{l s='Actions'}</th>
</tr>
{foreach $groups AS $key => $group}
<tr {if $key %2}class="alt_row"{/if} style="cursor: pointer" onclick="document.location = '?tab=AdminGroups&id_group={$group['id_group']}&viewgroup&token={getAdminToken tab='AdminGroups'}'">
<td class="left">{$group['id_group']}</td>
<td class="left">{$group['name']}</td>
<td class="center"><a href="?tab=AdminGroups&id_group={$group['id_group']}&viewgroup&token={getAdminToken tab='AdminGroups'}"><img src="../img/admin/details.gif" /></a></td>
</thead>
<tbody>
{foreach $products AS $key => $product}
<tr onclick="document.location = '?tab=AdminOrders&id_order={$product['id_order']}&vieworder&token={getAdminToken tab='AdminOrders'}'">
<td>{$product['date_add']}</td>
<td>{$product['product_name']}</td>
<td align="right">{$product['product_quantity']}</td>
<td align="center">
<a class="btn btn-default" href="?tab=AdminOrders&id_order={$product['id_order']}&vieworder&token={getAdminToken tab='AdminOrders'}">
<i class='icon-eye-open'></i> {l s='View'}
</a>
</td>
</tr>
{/foreach}
</table>
{/if}
</div>
</div>
<div class="clear">&nbsp;</div>
{if count($interested)}
<div>
<h2>{l s='Products:'} ({count($interested)})</h2>
<table cellspacing="0" cellpadding="0" class="table" style="width:100%;">
<colgroup>
<col width="10px">
<col width="">
<col width="50px">
</colgroup>
{foreach $interested as $key => $p}
<tr {if $key %2}class="alt_row"{/if} style="cursor: pointer" onclick="document.location = '{$p['url']}'">
<td>{$p['id']}</td>
<td>{$p['name']}</td>
<td align="center"><a href="{$p['url']}"><img src="../img/admin/details.gif" /></a></td>
</tr>
{/foreach}
{/foreach}
</tbody>
</table>
</div>
{/if}
{/if}
</fieldset>
<div class="clear">&nbsp;</div>
<div style="float:left;width:50%">
{* Last connections *}
{if count($connections)}
<h2>{l s='Last connections'}</h2>
<table cellspacing="0" cellpadding="0" class="table" style="width:100%;">
<colgroup>
<col width="150px">
<col width="100px">
<col width="100px">
<col width="">
<col width="150px">
</colgroup>
<tr>
<th class="left" height="39px;">{l s='Date'}</th>
<th class="left">{l s='Pages viewed'}</th>
<th class="left">{l s='Total time'}</th>
<th class="left">{l s='Origin'}</th>
<th class="left">{l s='IP Address'}</th>
</tr>
{foreach $connections as $connection}
<tr>
<td class="left">{$connection['date_add']}</td>
<td class="left">{$connection['pages']}</td>
<td class="left">{$connection['time']}</td>
<td class="left">{$connection['http_referer']}</td>
<td class="left">{$connection['ipaddress']}</td>
</tr>
{/foreach}
</table>
<div class="clear">&nbsp;</div>
{/if}
</div>
<div style="float:left;width:50%">
<div style="margin-left:15px">
{if count($referrers)}
<h2>{l s='Referrers'}</h2>
<table cellspacing="0" cellpadding="0" class="table" style="width:100%">
<tr>
<th class="left">{l s='Date'}</th>
<th class="left">{l s='Name'}</th>
{if $shop_is_feature_active}<th class="left">{l s='Shop'}</th>{/if}
</tr>
{foreach $referrers as $referrer}
<fieldset>
<div class="col-lg-12">
<h3><i class="icon-building"></i> {l s='Addresses'} <span class="badge">{count($addresses)}</span></h3>
{if count($addresses)}
<table class="table">
<thead>
<tr>
<td class="left">{$referrer['date_add']}</td>
<td class="left">{$referrer['name']}</td>
{if $shop_is_feature_active}<td class="left">{$referrer['shop_name']}</td>{/if}
<th>{l s='Company'}</th>
<th>{l s='Name'}</th>
<th>{l s='Address'}</th>
<th>{l s='Country'}</th>
<th class="right">{l s='Phone number(s)'}</th>
<th class="center">{l s='Actions'}</th>
</tr>
{/foreach}
</thead>
<tbody>
{foreach $addresses AS $key => $address}
<tr {if $key %2}class="alt_row"{/if}>
<td>{if $address['company']}{$address['company']}{else}--{/if}</td>
<td>{$address['firstname']} {$address['lastname']}</td>
<td>{$address['address1']} {if $address['address2']}{$address['address2']}{/if} {$address['postcode']} {$address['city']}</td>
<td>{$address['country']}</td>
<td class="right">
{if $address['phone']}
{$address['phone']}
{if $address['phone_mobile']}<br />{$address['phone_mobile']}{/if}
{else}
{if $address['phone_mobile']}<br />{$address['phone_mobile']}{else}--{/if}
{/if}
</td>
<td class="center">
<a href="?tab=AdminAddresses&id_address={$address['id_address']}&addaddress&token={getAdminToken tab='AdminAddresses'}">
<img src="../img/admin/edit.gif" />
</a>
<a href="?tab=AdminAddresses&id_address={$address['id_address']}&deleteaddress&token={getAdminToken tab='AdminAddresses'}">
<img src="../img/admin/delete.gif" />
</a>
</td>
</tr>
{/foreach}
</tbody>
</table>
{else}
{l s='%1$s %2$s has not registered any addresses yet' sprintf=[$customer->firstname, $customer->lastname]}
{/if}
</div>
</fieldset>
<fieldset>
<div class="col-lg-12">
<h3>
<i class="icon-group"></i> {l s='Groups'} <span class="badge">{count($groups)}</span>
<a class="btn btn-default pull-right" href="{$current}&updatecustomer&id_customer={$customer->id}&token={$token}">
<i class="icon-edit"></i> {l s='Edit'}
</a>
</h3>
{if $groups AND count($groups)}
<table class="table">
<thead>
<tr>
<th>{l s='ID'}</th>
<th>{l s='Name'}</th>
<th class="center">{l s='Actions'}</th>
</tr>
</thead>
<tbody>
{foreach $groups AS $key => $group}
<tr {if $key %2}class="alt_row"{/if} style="cursor: pointer" onclick="document.location = '?tab=AdminGroups&id_group={$group['id_group']}&viewgroup&token={getAdminToken tab='AdminGroups'}'">
<td>{$group['id_group']}</td>
<td>{$group['name']}</td>
<td class="center">
<a class="btn btn-default" href="?tab=AdminGroups&id_group={$group['id_group']}&viewgroup&token={getAdminToken tab='AdminGroups'}">
<i class='icon-eye-open'></i> {l s='View'}
</a>
</td>
</tr>
{/foreach}
</tbody>
</table>
{/if}
</div>
</fieldset>
<fieldset>
{if count($interested)}
<div class="col-lg-12">
<h3><i class="icon-archive"></i> {l s='Products:'} <span class="badge">{count($interested)}</span></h3>
<table class="table">
<thead>
<tr>
<th>{l s='ID'}</th>
<th>{l s='Name'}</th>
<th class="center">{l s='Actions'}</th>
</tr>
</thead>
<tbody>
{foreach $interested as $key => $p}
<tr {if $key %2}class="alt_row"{/if} style="cursor: pointer" onclick="document.location = '{$p['url']}'">
<td>{$p['id']}</td>
<td>{$p['name']}</td>
<td align="center">
<a class="btn btn-default" href="{$p['url']}">
<i class='icon-eye-open'></i> {l s='View'}
</a>
</td>
</tr>
{/foreach}
</tbody>
</table>
</div>
<div >
{/if}
</fieldset>
<fieldset>
{if count($connections)}
<div class="col-lg-12">
<h3><i class="icon-time"></i> {l s='Last connections'}</h3>
<table class="table">
<thead>
<tr>
<th>{l s='Date'}</th>
<th>{l s='Pages viewed'}</th>
<th>{l s='Total time'}</th>
<th>{l s='Origin'}</th>
<th>{l s='IP Address'}</th>
</tr>
</thead>
<tbody>
{foreach $connections as $connection}
<tr>
<td>{$connection['date_add']}</td>
<td>{$connection['pages']}</td>
<td>{$connection['time']}</td>
<td>{$connection['http_referer']}</td>
<td>{$connection['ipaddress']}</td>
</tr>
{/foreach}
</tbody>
</table>
</div>
{/if}
</fieldset>
<fieldset>
<div class="col-lg-12">
{if count($referrers)}
<h3><i class="icon-share-alt"></i> {l s='Referrers'}</h3>
<table class="table">
<thead>
<tr>
<th>{l s='Date'}</th>
<th>{l s='Name'}</th>
{if $shop_is_feature_active}<th>{l s='Shop'}</th>{/if}
</tr>
</thead>
<tbody>
{foreach $referrers as $referrer}
<tr>
<td>{$referrer['date_add']}</td>
<td>{$referrer['name']}</td>
{if $shop_is_feature_active}<td>{$referrer['shop_name']}</td>{/if}
</tr>
{/foreach}
</tbody>
</table>
{/if}
</div>
</fieldset>
</div>
{/block}
</div>
<div class="clear">&nbsp;</div>
@@ -23,10 +23,10 @@
* International Registered Trademark & Property of PrestaShop SA
*}
<a href="{$url_enable}" {if isset($confirm)}onclick="return confirm('{$confirm}');"{/if} title="{if $enabled}{l s='Enabled'}{else}{l s='Disabled'}{/if}">
<a class="label {if $enabled}label-success{else}label-warning{/if}" href="{$url_enable}" {if isset($confirm)}onclick="return confirm('{$confirm}');"{/if} title="{if $enabled}{l s='Enabled'}{else}{l s='Disabled'}{/if}">
{if $enabled}
<span class="label label-success"><i class="icon-check-sign"></i> {l s='Enabled'}</span>
<i class="icon-check-sign"></i> {l s='Yes'}
{else}
<span class="label label-important"><i class="icon-ban-circle"></i> {l s='Disabled'}</span>
<i class="icon-ban-circle"></i> {l s='No'}
{/if}
</a>
@@ -23,39 +23,42 @@
* International Registered Trademark & Property of PrestaShop SA
*}
<a class="btn btn-default" href="#" onclick="if ($('.requiredFieldsParameters:visible').length == 0) $('.requiredFieldsParameters').slideDown('slow'); else $('.requiredFieldsParameters').slideUp('slow'); return false;">
<i class="icon-plus-sign"></i> {l s='Set required fields for this section'}
</a>
<a class="btn btn-default" href="#" onclick="if ($('.requiredFieldsParameters:visible').length == 0) $('.requiredFieldsParameters').slideDown('slow'); else $('.requiredFieldsParameters').slideUp('slow'); return false;">
<i class="icon-plus-sign"></i> {l s='Set required fields for this section'}
</a>
<fieldset style="display:none" class="requiredFieldsParameters">
<h3><i class="icon-asterisk"></i> {l s='Required Fields'}</h3>
<form name="updateFields" action="{$current}&submitFields=1&token={$token}" method="post">
<div class="alert alert-info">
{l s='Select the fields you would like to be required for this section.'}
</div>
<table class="table">
<thead>
<tr>
<th><input type="checkbox" onclick="checkDelBoxes(this.form, 'fieldsBox[]', this.checked)" class="noborder" name="checkme"></th>
<th>{l s='Field Name'}</th>
</tr>
</thead>
<tbody>
{foreach $table_fields as $field}
{if !in_array($field, $required_class_fields)}
<tr class="{if $irow++ % 2}alt_row{/if}">
<td class="noborder"><input type="checkbox" name="fieldsBox[]" value="{$field}" {if in_array($field, $required_fields)} checked="checked"{/if} /></td>
<td>{$field}</td>
</tr>
{/if}
{/foreach}
</tbody>
</table>
<button class="btn btn-primary pull-right" type="submit" name="submitFields"><i class="icon-save"></i> {l s='Save'}</button>
<div class="alert alert-info">
{l s='Select the fields you would like to be required for this section.'}
</div>
<table class="table">
<thead>
<tr>
<th>
<input type="checkbox" onclick="checkDelBoxes(this.form, 'fieldsBox[]', this.checked)" class="noborder" name="checkme">
</th>
<th>
{l s='Field Name'}
</th>
</tr>
</thead>
<tbody>
{foreach $table_fields as $field}
{if !in_array($field, $required_class_fields)}
<tr>
<td class="noborder">
<input type="checkbox" name="fieldsBox[]" value="{$field}" {if in_array($field, $required_fields)} checked="checked"{/if} />
</td>
<td>
{$field}
</td>
</tr>
{/if}
{/foreach}
</tbody>
</table>
<button class="btn btn-primary pull-right" type="submit" name="submitFields"><i class="icon-save"></i> {l s='Save'}</button>
</form>
</fieldset>
</fieldset>
+8 -7
View File
@@ -47,15 +47,16 @@
{/if}
{if isset($informations) && count($informations) && $informations}
<div class="alert alert-info">
<span id="see_more_infos">
<b><a href="#" onclick="$('#see_more_infos').hide(); $('#infos_block').show();return false;">{l s='Click here to see more informations'}</a></b>
</span>
<div id="infos_block" style="display:none;">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<a id="see_more_infos" href="#" class="btn btn-link" onclick="$('#see_more_infos').hide(); $('#infos_block').show();return false;">
<i class="icon-info-sign"></i> {l s='Click here to see more informations'}
</a>
<ul id="infos_block" class="list-unstyled" style="display:none;">
{foreach $informations as $info}
{$info}<br />
<li>{$info}</li>
{/foreach}
</div>
</div><br />
</ul>
</div>
{/if}
{if isset($confirmations) && count($confirmations) && $confirmations}
<div class="alert" style="display:block;">
+12 -24
View File
@@ -268,30 +268,26 @@ class AdminCustomersControllerCore extends AdminController
'type' => 'text',
'label' => $this->l('First name:'),
'name' => 'firstname',
'size' => 33,
'required' => true,
'hint' => $this->l('Forbidden characters:').' 0-9!<>,;?=+()@#"{}_$%:'
'hint' => $this->l('Forbidden characters:').' 0-9!&lt;&gt;,;?=+()@#"{}_$%:'
),
array(
'type' => 'text',
'label' => $this->l('Last name:'),
'name' => 'lastname',
'size' => 33,
'required' => true,
'hint' => $this->l('Invalid characters:').' 0-9!<>,;?=+()@#"{}_$%:'
'hint' => $this->l('Invalid characters:').' 0-9!&lt;&gt;,;?=+()@#"{}_$%:'
),
array(
'type' => 'text',
'label' => $this->l('Email address:'),
'name' => 'email',
'size' => 33,
'required' => true
),
array(
'type' => 'password',
'label' => $this->l('Password:'),
'name' => 'passwd',
'size' => 33,
'required' => ($obj->id ? false : true),
'hint' => ($obj->id ? $this->l('Leave this field blank if there\'s no change') : $this->l('Minimum of five characters (only letters and numbers).').' -_')
),
@@ -430,32 +426,27 @@ class AdminCustomersControllerCore extends AdminController
$this->fields_form['input'][] = array(
'type' => 'text',
'label' => $this->l('Company:'),
'name' => 'company',
'size' => 33
'name' => 'company'
);
$this->fields_form['input'][] = array(
'type' => 'text',
'label' => $this->l('SIRET:'),
'name' => 'siret',
'size' => 14
'name' => 'siret'
);
$this->fields_form['input'][] = array(
'type' => 'text',
'label' => $this->l('APE:'),
'name' => 'ape',
'size' => 5
'name' => 'ape'
);
$this->fields_form['input'][] = array(
'type' => 'text',
'label' => $this->l('Website:'),
'name' => 'website',
'size' => 33
'name' => 'website'
);
$this->fields_form['input'][] = array(
'type' => 'text',
'label' => $this->l('Outstanding allowed:'),
'name' => 'outstanding_allow_amount',
'size' => 10,
'hint' => $this->l('Valid characters:').' 0-9',
'suffix' => '¤'
);
@@ -463,7 +454,6 @@ class AdminCustomersControllerCore extends AdminController
'type' => 'text',
'label' => $this->l('Maximum number of payment days:'),
'name' => 'max_payment_days',
'size' => 10,
'hint' => $this->l('Valid characters:').' 0-9'
);
$this->fields_form['input'][] = array(
@@ -846,19 +836,19 @@ class AdminCustomersControllerCore extends AdminController
Tools::redirectAdmin(self::$currentIndex.'&token='.$this->token);
}
public static function printNewsIcon($value, $customer)
public function printNewsIcon($value, $customer)
{
return '<a href="index.php?tab=AdminCustomers&id_customer='
return '<a class="label '.($value ? 'label-success' : 'label-warning').'" href="index.php?tab=AdminCustomers&id_customer='
.(int)$customer['id_customer'].'&changeNewsletterVal&token='.Tools::getAdminTokenLite('AdminCustomers').'">
'.($value ? '<img src="../img/admin/enabled.gif" />' : '<img src="../img/admin/disabled.gif" />').
'.($value ? '<i class="icon-check-sign"></i> '.$this->l('Yes') : '<i class="icon-ban-circle"></i> '.$this->l('No')).
'</a>';
}
public static function printOptinIcon($value, $customer)
public function printOptinIcon($value, $customer)
{
return '<a href="index.php?tab=AdminCustomers&id_customer='
return '<a class="label '.($value ? 'label-success' : 'label-warning').'" href="index.php?tab=AdminCustomers&id_customer='
.(int)$customer['id_customer'].'&changeOptinVal&token='.Tools::getAdminTokenLite('AdminCustomers').'">
'.($value ? '<img src="../img/admin/enabled.gif" />' : '<img src="../img/admin/disabled.gif" />').
'.($value ? '<i class="icon-check-sign"></i> '.$this->l('Yes') : '<i class="icon-ban-circle"></i> '.$this->l('No')).
'</a>';
}
@@ -924,5 +914,3 @@ class AdminCustomersControllerCore extends AdminController
}
}
}
+5 -5
View File
@@ -224,13 +224,13 @@ class AdminGroupsControllerCore extends AdminController
'name' => 'name',
'required' => true,
'lang' => true,
'hint' => $this->l('Forbidden characters:').' 0-9!&lt;&gt;,;?=+()@#"{}_$%:'
'hint' => $this->l('Forbidden characters:').' 0-9!&amp;lt;&amp;gt;,;?=+()@#"{}_$%:'
),
array(
'type' => 'text',
'label' => $this->l('Discount (%):'),
'name' => 'reduction',
'desc' => $this->l('Automatically apply this value as a discount on all products for members of this customer group.')
'hint' => $this->l('Automatically apply this value as a discount on all products for members of this customer group.')
),
array(
'type' => 'select',
@@ -496,13 +496,13 @@ class AdminGroupsControllerCore extends AdminController
* @param $tr array Row data
* @return string HTML link and icon
*/
public static function printShowPricesIcon($id_group, $tr)
public function printShowPricesIcon($id_group, $tr)
{
$group = new Group($tr['id_group']);
if (!Validate::isLoadedObject($group))
return;
return '<a href="index.php?tab=AdminGroups&id_group='.(int)$group->id.'&changeShowPricesVal&token='.Tools::getAdminTokenLite('AdminGroups').'">
'.($group->show_prices ? '<img src="../img/admin/enabled.gif" />' : '<img src="../img/admin/disabled.gif" />').
return '<a class="label '.($group->show_prices ? 'label-success' : 'label-warning').'" href="index.php?tab=AdminGroups&id_group='.(int)$group->id.'&changeShowPricesVal&token='.Tools::getAdminTokenLite('AdminGroups').'">
'.($group->show_prices ? '<i class="icon-check-sign"></i> '.$this->l('Yes') : '<i class="icon-ban-circle"></i> '.$this->l('No')).
'</a>';
}