Merge branch 'master' of https://github.com/thelia/thelia
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -22,6 +22,6 @@ web/cache/*
|
|||||||
web/.htaccess
|
web/.htaccess
|
||||||
phpdoc*.log
|
phpdoc*.log
|
||||||
php-cs
|
php-cs
|
||||||
xhprof
|
xhprof/
|
||||||
phpunit.phar
|
phpunit.phar
|
||||||
.DS_Store
|
.DS_Store
|
||||||
@@ -37,6 +37,11 @@
|
|||||||
<default key="_controller">Thelia\Controller\Admin\CustomerController::indexAction</default>
|
<default key="_controller">Thelia\Controller\Admin\CustomerController::indexAction</default>
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
|
<route id="admin.customer.update.view" path="/admin/customer/update/{customer_id}">
|
||||||
|
<default key="_controller">Thelia\Controller\Admin\CustomerController::viewAction</default>
|
||||||
|
<requirement key="customer_id">\d+</requirement>
|
||||||
|
</route>
|
||||||
|
|
||||||
<!-- end Customer rule management -->
|
<!-- end Customer rule management -->
|
||||||
|
|
||||||
<!-- Categories management -->
|
<!-- Categories management -->
|
||||||
|
|||||||
@@ -35,4 +35,12 @@ class CustomerController extends BaseAdminController
|
|||||||
if (null !== $response = $this->checkAuth("admin.customers.view")) return $response;
|
if (null !== $response = $this->checkAuth("admin.customers.view")) return $response;
|
||||||
return $this->render("customers", array("display_customer" => 20));
|
return $this->render("customers", array("display_customer" => 20));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
public function viewAction($customer_id)
|
||||||
|
{
|
||||||
|
|
||||||
|
return $this->render("customer-edit", array(
|
||||||
|
"customer_id" => $customer_id
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/*************************************************************************************/
|
/*************************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* Thelia */
|
/* Thelia */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright (c) OpenStudio */
|
/* Copyright (c) OpenStudio */
|
||||||
/* email : info@thelia.net */
|
/* email : info@thelia.net */
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
/* GNU General Public License for more details. */
|
/* GNU General Public License for more details. */
|
||||||
/* */
|
/* */
|
||||||
/* You should have received a copy of the GNU General Public License */
|
/* You should have received a copy of the GNU General Public License */
|
||||||
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
/* */
|
/* */
|
||||||
/*************************************************************************************/
|
/*************************************************************************************/
|
||||||
namespace Thelia\Form;
|
namespace Thelia\Form;
|
||||||
@@ -217,4 +217,4 @@ class CustomerCreation extends BaseForm
|
|||||||
{
|
{
|
||||||
return "thelia_customer_creation";
|
return "thelia_customer_creation";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 49 KiB |
@@ -7,7 +7,8 @@
|
|||||||
// -------------------------
|
// -------------------------
|
||||||
|
|
||||||
body {
|
body {
|
||||||
background: url("@{imgDir}/bg.jpg") repeat;
|
background: #FFF url("@{imgDir}/bg.jpg") top left no-repeat;
|
||||||
|
background-size: cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,99 +10,99 @@
|
|||||||
|
|
||||||
|
|
||||||
<div class="catalog">
|
<div class="catalog">
|
||||||
<div id="wrapper" class="container">
|
<div id="wrapper" class="container">
|
||||||
|
|
||||||
|
|
||||||
{module_include location='customer_top'}
|
{module_include location='customer_top'}
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="general-block-decorator">
|
<div class="general-block-decorator">
|
||||||
<table class="table table-striped table-condensed" id="customer_list">
|
<table class="table table-striped table-condensed" id="customer_list">
|
||||||
<caption>
|
<caption>
|
||||||
{intl l="Customers list"}
|
{intl l="Customers list"}
|
||||||
|
|
||||||
{module_include location='customer_list_caption'}
|
{module_include location='customer_list_caption'}
|
||||||
|
|
||||||
{loop type="auth" name="can_create" roles="ADMIN" permissions="admin.customers.create"}
|
{loop type="auth" name="can_create" roles="ADMIN" permissions="admin.customers.create"}
|
||||||
<a class="btn btn-default btn-primary action-btn" title="{intl l='Add a new Customer'}" href="#add_customer_dialog" data-toggle="modal">
|
<a class="btn btn-default btn-primary action-btn" title="{intl l='Add a new Customer'}" href="#add_customer_dialog" data-toggle="modal">
|
||||||
<span class="glyphicon glyphicon-plus-sign"></span>
|
<span class="glyphicon glyphicon-plus-sign"></span>
|
||||||
</a>
|
</a>
|
||||||
{/loop}
|
{/loop}
|
||||||
</caption>
|
</caption>
|
||||||
|
|
||||||
{ifloop rel="customer_list"}
|
{ifloop rel="customer_list"}
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="object-title">
|
<th class="object-title">
|
||||||
{intl l="customer ref"}
|
{intl l="customer ref"}
|
||||||
</th>
|
</th>
|
||||||
|
|
||||||
<th class="object-title">
|
<th class="object-title">
|
||||||
{intl l="company"}
|
{intl l="company"}
|
||||||
</th>
|
</th>
|
||||||
|
|
||||||
{module_include location='category_list_header'}
|
{module_include location='category_list_header'}
|
||||||
|
|
||||||
<th>
|
<th>
|
||||||
{intl l="firstname & lastname"}
|
{intl l="firstname & lastname"}
|
||||||
</th>
|
</th>
|
||||||
|
|
||||||
<th>
|
<th>
|
||||||
{intl l="last order"}
|
{intl l="last order"}
|
||||||
</th>
|
</th>
|
||||||
|
|
||||||
<th>{intl l='order amount'}</th>
|
<th>{intl l='order amount'}</th>
|
||||||
|
|
||||||
<th>{intl l='Actions'}</th>
|
<th>{intl l='Actions'}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
<tbody>
|
<tbody>
|
||||||
{loop name="customer_list" type="customer" current="false" visible="*" last_order="1" backend_context="1" page={$customer_page} limit={$display_customer}}
|
{loop name="customer_list" type="customer" current="false" visible="*" last_order="1" backend_context="1" page={$customer_page} limit={$display_customer}}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{$REF}</td>
|
<td>{$REF}</td>
|
||||||
|
|
||||||
<td>
|
<td>
|
||||||
{$COMPANY}
|
{$COMPANY}
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td class="object-title">
|
<td class="object-title">
|
||||||
{$FIRSTNAME} {$LASTNAME}
|
{$FIRSTNAME} {$LASTNAME}
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
{module_include location='customer_list_row'}
|
{module_include location='customer_list_row'}
|
||||||
|
|
||||||
<td>
|
<td>
|
||||||
{format_date date=$LASTORDER_DATE}
|
{format_date date=$LASTORDER_DATE}
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td>
|
<td>
|
||||||
{format_number number=$LASTORDER_AMOUNT}
|
{format_number number=$LASTORDER_AMOUNT}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
|
|
||||||
{loop type="auth" name="can_change" roles="ADMIN" permissions="admin.customer.edit"}
|
{loop type="auth" name="can_change" roles="ADMIN" permissions="admin.customer.edit"}
|
||||||
<a class="btn btn-default btn-xs" title="{intl l='Edit this customer'}" href="{url path="/admin/customer/update/{$ID}" }"><i class="glyphicon glyphicon-edit"></i></a>
|
<a class="btn btn-default btn-xs" title="{intl l='Edit this customer'}" href="{url path="/admin/customer/update/{$ID}" }"><i class="glyphicon glyphicon-edit"></i></a>
|
||||||
{/loop}
|
{/loop}
|
||||||
{loop type="auth" name="can_send_mail" roles="ADMIN" permissions="admin.customer.sendMail"}
|
{loop type="auth" name="can_send_mail" roles="ADMIN" permissions="admin.customer.sendMail"}
|
||||||
<a class="btn btn-default btn-xs" title="{intl l="Send a mail to this customer"}" href="mailto:{$EMAIL}"><span class="glyphicon glyphicon-envelope"></span></a>
|
<a class="btn btn-default btn-xs" title="{intl l="Send a mail to this customer"}" href="mailto:{$EMAIL}"><span class="glyphicon glyphicon-envelope"></span></a>
|
||||||
{/loop}
|
{/loop}
|
||||||
{loop type="auth" name="can_delete" roles="ADMIN" permissions="admin.customer.delete"}
|
{loop type="auth" name="can_delete" roles="ADMIN" permissions="admin.customer.delete"}
|
||||||
<a class="btn btn-default btn-xs customer-delete" title="{intl l='Delete this customer and all his orders'}" href="#delete_customer_dialog" data-id="{$ID}" data-toggle="modal"><i class="glyphicon glyphicon-trash"></i></a>
|
<a class="btn btn-default btn-xs customer-delete" title="{intl l='Delete this customer and all his orders'}" href="#delete_customer_dialog" data-id="{$ID}" data-toggle="modal"><span class="glyphicon glyphicon-trash"></span></a>
|
||||||
{/loop}
|
{/loop}
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
{/loop}
|
{/loop}
|
||||||
</tbody>
|
</tbody>
|
||||||
{/ifloop}
|
{/ifloop}
|
||||||
</table>
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
{module_include location='customer_bottom'}
|
{module_include location='customer_bottom'}
|
||||||
@@ -131,10 +131,136 @@
|
|||||||
{/if}
|
{/if}
|
||||||
{/pageloop}
|
{/pageloop}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
{* Adding a new Category *}
|
||||||
</div>
|
|
||||||
|
|
||||||
|
{form name="thelia.customer.creation"}
|
||||||
|
|
||||||
|
{* Capture the dialog body, to pass it to the generic dialog *}
|
||||||
|
{capture "customer_creation_dialog"}
|
||||||
|
|
||||||
|
{form_hidden_fields form=$form}
|
||||||
|
|
||||||
|
{form_field form=$form 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/_ID_'}" />
|
||||||
|
{/form_field}
|
||||||
|
|
||||||
|
|
||||||
|
{form_field form=$form field='title'}
|
||||||
|
<div class="form-group {if $error}has-error{/if}">
|
||||||
|
<label for="{$label_attr.for}" class="control-label">{intl l="{$label}"} : </label>
|
||||||
|
|
||||||
|
<select name="{$name}" id="{$label_attr.for}" class="form-control">
|
||||||
|
{loop type="title" name="title1"}
|
||||||
|
<option value="{$ID}">{$LONG}</option>
|
||||||
|
{/loop}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
{/form_field}
|
||||||
|
|
||||||
|
{form_field form=$form field='firstname'}
|
||||||
|
<div class="form-group {if $error}has-error{/if}">
|
||||||
|
<label for="{$label_attr.for}" class="control-label">{intl l="{$label}"} : </label>
|
||||||
|
<input type="text" id="{$label_attr.for}" name="{$name}" class="form-control" value="{$value}" title="{intl l="{$label}"}" placeholder="{intl l='Firstname'}">
|
||||||
|
</div>
|
||||||
|
{/form_field}
|
||||||
|
|
||||||
|
{form_field form=$form field='lastname'}
|
||||||
|
<div class="form-group {if $error}has-error{/if}">
|
||||||
|
<label for="{$label_attr.for}" class="control-label">{intl l="{$label}"} : </label>
|
||||||
|
<input type="text" id="{$label_attr.for}" name="{$name}" class="form-control" value="{$value}" title="{intl l="{$label}"}" placeholder="{intl l='Lastname'}">
|
||||||
|
</div>
|
||||||
|
{/form_field}
|
||||||
|
|
||||||
|
{form_field form=$form field='address1'}
|
||||||
|
<div class="form-group {if $error}has-error{/if}">
|
||||||
|
<label for="{$label_attr.for}" class="control-label">{intl l="{$label}"} : </label>
|
||||||
|
<input type="text" id="{$label_attr.for}" name="{$name}" class="form-control" value="{$value}" title="{intl l="{$label}"}" placeholder="{intl l='Address'}">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
{form_field form=$form field='address2'}
|
||||||
|
<input type="text" id="{$label_attr.for}" name="{$name}" class="form-control" value="{$value}" title="{intl l="{$label}"}" placeholder="{intl l='Additional address'}">
|
||||||
|
{/form_field}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
{form_field form=$form field='address3'}
|
||||||
|
<input type="text" id="{$label_attr.for}" name="{$name}" class="form-control" value="{$value}" title="{intl l="{$label}"}" placeholder="{intl l='Additional address'}">
|
||||||
|
{/form_field}
|
||||||
|
</div>
|
||||||
|
{/form_field}
|
||||||
|
|
||||||
|
{form_field form=$form field='zipcode'}
|
||||||
|
<div class="form-group {if $error}has-error{/if}">
|
||||||
|
<label for="{$label_attr.for}" class="control-label">{intl l="{$label}"} : </label>
|
||||||
|
<input type="text" id="{$label_attr.for}" name="{$name}" class="form-control" value="{$value}" title="{intl l="{$label}"}" placeholder="{intl l='Zip code'}">
|
||||||
|
</div>
|
||||||
|
{/form_field}
|
||||||
|
|
||||||
|
{form_field form=$form field='city'}
|
||||||
|
<div class="form-group {if $error}has-error{/if}">
|
||||||
|
<label for="{$label_attr.for}" class="control-label">{intl l="{$label}"} : </label>
|
||||||
|
<input type="text" id="{$label_attr.for}" name="{$name}" class="form-control" value="{$value}" title="{intl l="{$label}"}" placeholder="{intl l='City'}">
|
||||||
|
</div>
|
||||||
|
{/form_field}
|
||||||
|
|
||||||
|
{form_field form=$form field='country'}
|
||||||
|
<div class="form-group {if $error}has-error{/if}">
|
||||||
|
<label for="{$label_attr.for}" class="control-label">{intl l="{$label}"} : </label>
|
||||||
|
<select name="{$name}" id="{$label_attr.for}" class="form-control">
|
||||||
|
{loop type="country" name="country1"}
|
||||||
|
<option value="{$ID}">{$TITLE}</option>
|
||||||
|
{/loop}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
{/form_field}
|
||||||
|
|
||||||
|
{form_field form=$form field='email'}
|
||||||
|
<div class="form-group {if $error}has-error{/if}">
|
||||||
|
<label for="{$label_attr.for}" class="control-label">{intl l="{$label}"} : </label>
|
||||||
|
<input type="text" id="{$label_attr.for}" name="{$name}" class="form-control" value="{$value}" title="{intl l="{$label}"}" placeholder="{intl l='Email address'}">
|
||||||
|
</div>
|
||||||
|
{/form_field}
|
||||||
|
|
||||||
|
{/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=$form}
|
||||||
|
form_error_message = $form_error_message
|
||||||
|
}
|
||||||
|
{/form}
|
||||||
|
|
||||||
|
{* Delete confirmation dialog *}
|
||||||
|
|
||||||
|
{capture "delete_customer_dialog"}
|
||||||
|
<input type="hidden" name="customer_id" id="customer_delete_id" value="" />
|
||||||
|
{/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 = {url path='/admin/customer/delete'}
|
||||||
|
form_content = {$smarty.capture.delete_dialog nofilter}
|
||||||
|
}
|
||||||
|
|
||||||
{/block}
|
{/block}
|
||||||
@@ -1 +0,0 @@
|
|||||||
test
|
|
||||||
@@ -34,7 +34,8 @@ require __DIR__ . '/../core/bootstrap.php';
|
|||||||
// List of allowed IP
|
// List of allowed IP
|
||||||
$trustedIp = array(
|
$trustedIp = array(
|
||||||
'::1',
|
'::1',
|
||||||
'127.0.0.1'
|
'127.0.0.1',
|
||||||
|
'192.168.56.1'
|
||||||
);
|
);
|
||||||
|
|
||||||
$request = Request::createFromGlobals();
|
$request = Request::createFromGlobals();
|
||||||
|
|||||||
Reference in New Issue
Block a user