[+] BO Customers WIP
This commit is contained in:
@@ -5089,12 +5089,12 @@ body.fixed-top {
|
||||
border-radius: 5px;
|
||||
-webkit-box-shadow: rgba(0, 0, 0, 0.1) 0 0 7px, white 0 0 0 4px inset;
|
||||
box-shadow: rgba(0, 0, 0, 0.1) 0 0 7px, white 0 0 0 4px inset; }
|
||||
#content legend {
|
||||
float: left;
|
||||
padding: 0 0 0 0;
|
||||
margin: 5px 0 15px 0;
|
||||
color: #bfb8b3;
|
||||
font-weight: 300; }
|
||||
#content h3 {
|
||||
padding: 0 0 5px 0;
|
||||
margin: 0 0 15px 0;
|
||||
color: #cac4b9;
|
||||
font-weight: 300;
|
||||
border-bottom: solid 1px #e0ddd6; }
|
||||
#content form .alert {
|
||||
clear: both;
|
||||
color: #756b64;
|
||||
@@ -5223,6 +5223,7 @@ body.fixed-top {
|
||||
color: #313a45; }
|
||||
|
||||
#footer {
|
||||
z-index: 9999;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
bottom: 0;
|
||||
|
||||
@@ -53,12 +53,12 @@ body.fixed-top
|
||||
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)
|
||||
legend
|
||||
float: left
|
||||
padding: 0 0 0 0
|
||||
margin: 5px 0 15px 0
|
||||
color: darken(#D6D2CF,10%)
|
||||
h3
|
||||
padding: 0 0 5px 0
|
||||
margin: 0 0 15px 0
|
||||
color: darken($bg-content-color,20%)
|
||||
font-weight: 300
|
||||
border-bottom: solid 1px darken($bg-content-color,10%)
|
||||
form .alert
|
||||
clear: both
|
||||
color: darken(#D6D2CF,40%)
|
||||
@@ -178,6 +178,7 @@ body.fixed-top
|
||||
color: $brand-primary
|
||||
|
||||
#footer
|
||||
z-index: 9999
|
||||
position: fixed
|
||||
width: 100%
|
||||
bottom: 0
|
||||
|
||||
+30
-46
@@ -27,7 +27,7 @@
|
||||
|
||||
{block name="override_header"}
|
||||
|
||||
<div id="CustomerThreadContacts">
|
||||
<div id="CustomerThreadContacts" class="row">
|
||||
|
||||
{assign var=nb_categories value=count($categories)}
|
||||
|
||||
@@ -38,64 +38,48 @@
|
||||
|
||||
{foreach $contacts as $tmp => $tmp2}
|
||||
{if $val.id_contact == $tmp2.id_contact}
|
||||
|
||||
{assign var=total_thread value=$tmp2.total}
|
||||
{assign var=id_customer_thread value=$tmp2.id_customer_thread}
|
||||
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
<div class="blocSAV">
|
||||
|
||||
<h3>{$val.name}</h3>
|
||||
|
||||
{if $nb_categories < 6}
|
||||
<p>{$val.description}</p>
|
||||
{/if}
|
||||
|
||||
{if $total_thread == 0}
|
||||
<span class="message-mail">{l s='No new messages'}</span>
|
||||
{else}
|
||||
<a href="{$currentIndex}&token={$token}&id_customer_thread={$id_customer_thread}&viewcustomer_thread" class="button">
|
||||
{$total_thread}
|
||||
{if $total_thread > 1}{l s='New messages'}{else}{l s='New message'}{/if}
|
||||
</a>
|
||||
{/if}
|
||||
<div class="col-lg-3">
|
||||
<h3>{$val.name}</h3>
|
||||
{if $nb_categories < 6}
|
||||
<p>{$val.description}</p>
|
||||
{/if}
|
||||
{if $total_thread == 0}
|
||||
<span class="message-mail">{l s='No new messages'}</span>
|
||||
{else}
|
||||
<a href="{$currentIndex}&token={$token}&id_customer_thread={$id_customer_thread}&viewcustomer_thread" class="button">
|
||||
{$total_thread}
|
||||
{if $total_thread > 1}{l s='New messages'}{else}{l s='New message'}{/if}
|
||||
</a>
|
||||
{/if}
|
||||
</div>
|
||||
{/foreach}
|
||||
|
||||
<div id="MeaningStatus" class="blocSAV">
|
||||
<h3> {l s='Meaning of status'}</h3>
|
||||
<div id="MeaningStatus" class="col-lg-3">
|
||||
<h3>{l s='Meaning of status'}</h3>
|
||||
<ul>
|
||||
<li><img src="../img/admin/status_green.png" alt="{l s='Open'}">{l s='Open'}</li>
|
||||
<li><img src="../img/admin/status_red.png" alt="{l s='Closed'}">{l s='Closed'}</li>
|
||||
<li><img src="../img/admin/status_orange.png" alt="{l s='Pending 1'}">{l s='Pending 1'}</li>
|
||||
<li><img src="../img/admin/status_orange.png" alt="{l s='Pending 2'}">{l s='Pending 2'}</li>
|
||||
<li class="label label-success">{l s='Open'}</li>
|
||||
<li class="label label-danger">{l s='Closed'}</li>
|
||||
<li class="label label-warning">{l s='Pending 1'}</li>
|
||||
<li class="label label-warning">{l s='Pending 2'}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="CustomerService">
|
||||
<table ccellspacing="0" cellpadding="0" class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2">{l s='Customer service'} : {l s='Statistics'}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{assign var=count value=0}
|
||||
{foreach $params as $key => $val}
|
||||
{assign var=count value=$count+1}
|
||||
<tr {if $count % 2 == 0}class="alt_row"{/if}>
|
||||
<td>{$key}</td>
|
||||
<td><span>{$val}</span></td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
<div id="CustomerService" class="col-lg-3">
|
||||
<h3>{l s='Statistics'}</h3>
|
||||
<ul>
|
||||
{assign var=count value=0}
|
||||
{foreach $params as $key => $val}
|
||||
{assign var=count value=$count+1}
|
||||
<li>{$key} <span class="badge">{$val}</span></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<p class="clear"> </p>
|
||||
<hr/>
|
||||
|
||||
{/block}
|
||||
+5
-3
@@ -25,16 +25,18 @@
|
||||
{extends file="helpers/options/options.tpl"}
|
||||
{block name="after"}
|
||||
{if $use_sync}
|
||||
<fieldset><legend>{l s='Sync'}</legend>
|
||||
<fieldset>
|
||||
<legend>{l s='Sync'}</legend>
|
||||
<label>{l s='Run sync:'}</label>
|
||||
<div class="margin-form">
|
||||
<button class="button" id="run_sync" onclick="run_sync();">{l s='Run sync'}</button>
|
||||
<button class="btn" id="run_sync" onclick="run_sync();">{l s='Run sync'}</button>
|
||||
<p>{l s='Click to synchronize mail automatically'}</p>
|
||||
<div id="ajax_loader"></div>
|
||||
<div class="error" style="display:none" id="ajax_error"></div>
|
||||
<div class="alert" style="display:none" id="ajax_conf"></div>
|
||||
</div>
|
||||
</fieldset><br/>
|
||||
</fieldset>
|
||||
|
||||
<script type="text/javascript">
|
||||
var ajaxQueries = new Array();
|
||||
function run_sync()
|
||||
|
||||
+6
-6
@@ -39,9 +39,9 @@
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<img src="../img/admin/email_go.png" alt="" style="vertical-align: middle;" />
|
||||
<img src="../img/admin/email_go.png" alt="" />
|
||||
{l s='Forward this discussion to an employee:'}
|
||||
<select name="id_employee_forward" style="vertical-align: middle;">
|
||||
<select name="id_employee_forward">
|
||||
<option value="-1">{l s='-- Choose --'}</option>
|
||||
{foreach $employees as $employee}
|
||||
<option value="{$employee.id_employee}"> {Tools::substr($employee.firstname, 0, 1)}. {$employee.lastname}</option>
|
||||
@@ -61,16 +61,16 @@
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
<div class="clear"> </div>
|
||||
|
||||
|
||||
{if $thread->id_customer}
|
||||
|
||||
<div style="float:right;margin-left:20px;">
|
||||
<div>
|
||||
{if $orders && count($orders)}
|
||||
{if $count_ok}
|
||||
<div>
|
||||
<h2>{l s='Orders'}</h2>
|
||||
<table cellspacing="0" cellpadding="0" class="table float">
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th class="center">{l s='ID'}</th>
|
||||
<th class="center">{l s='Date'}</th>
|
||||
@@ -136,7 +136,7 @@
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div style="margin-top:10px">
|
||||
<div>
|
||||
{foreach $messages as $message}
|
||||
{$message}
|
||||
{/foreach}
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<div class="leadin">{block name="leadin"}{/block}</div>
|
||||
{/if}
|
||||
|
||||
{if isset($fields.title)}<legend>{$fields.title}</legend>{/if}
|
||||
{if isset($fields.title)}<h3>{$fields.title}</h3>{/if}
|
||||
{block name="defaultForm"}
|
||||
<form id="{$table}_form" class="form-horizontal defaultForm {$name_controller}" action="{$current}&{if !empty($submit_action)}{$submit_action}=1{/if}&token={$token}" method="post" enctype="multipart/form-data" {if isset($style)}style="{$style}"{/if}>
|
||||
{if $form_id}
|
||||
@@ -38,11 +38,11 @@
|
||||
<fieldset id="fieldset_{$f}" class="col-lg-12">
|
||||
{foreach $fieldset.form as $key => $field}
|
||||
{if $key == 'legend'}
|
||||
<legend>
|
||||
<h3>
|
||||
{if isset($field.image)}<img src="{$field.image}" alt="{$field.title|escape:'htmlall':'UTF-8'}" />{/if}
|
||||
{if isset($field.icon)}<i class="{$field.icon}"/></i>{/if}
|
||||
{$field.title}
|
||||
</legend>
|
||||
</h3>
|
||||
{elseif $key == 'description' && $field}
|
||||
<div class="alert alert-info">{$field}</div>
|
||||
{elseif $key == 'input'}
|
||||
@@ -229,18 +229,19 @@
|
||||
{/if}
|
||||
{elseif $input.type == 'radio'}
|
||||
{foreach $input.values as $value}
|
||||
<input type="radio" name="{$input.name}"id="{$value.id}" value="{$value.value|escape:'htmlall':'UTF-8'}"
|
||||
|
||||
<label class="checkbox-inline" {if isset($input.class)}class="{$input.class}"{/if} for="{$value.id}">
|
||||
<input type="radio" name="{$input.name}"id="{$value.id}" value="{$value.value|escape:'htmlall':'UTF-8'}"
|
||||
{if $fields_value[$input.name] == $value.value}checked="checked"{/if}
|
||||
{if isset($input.disabled) && $input.disabled}disabled="disabled"{/if} />
|
||||
<label {if isset($input.class)}class="{$input.class}"{/if} for="{$value.id}">
|
||||
{if isset($input.is_bool) && $input.is_bool == true}
|
||||
{if $value.value == 1}
|
||||
<img src="../img/admin/enabled.gif" alt="{$value.label}" title="{$value.label}" />
|
||||
{else}
|
||||
<img src="../img/admin/disabled.gif" alt="{$value.label}" title="{$value.label}" />
|
||||
{/if}
|
||||
{else}
|
||||
{$value.label}
|
||||
{if isset($input.is_bool) && $input.is_bool == true}
|
||||
{if $value.value == 1}
|
||||
<img src="../img/admin/enabled.gif" alt="{$value.label}" title="{$value.label}" />
|
||||
{else}
|
||||
<img src="../img/admin/disabled.gif" alt="{$value.label}" title="{$value.label}" />
|
||||
{/if}
|
||||
{else}
|
||||
{$value.label}
|
||||
{/if}
|
||||
</label>
|
||||
{if isset($input.br) && $input.br}<br />{/if}
|
||||
|
||||
@@ -43,10 +43,10 @@
|
||||
{if isset($categoryData['top'])}{$categoryData['top']}{/if}
|
||||
<fieldset {if isset($categoryData['class'])}class="{$categoryData['class']}"{/if} class="col-lg-12">
|
||||
{* Options category title *}
|
||||
<legend>
|
||||
<h3>
|
||||
<i class="icon-cogs"></i>
|
||||
{if isset($categoryData['title'])}{$categoryData['title']}{else}{l s='Options'}{/if}
|
||||
</legend>
|
||||
</h3>
|
||||
|
||||
{* Category description *}
|
||||
|
||||
@@ -74,9 +74,9 @@
|
||||
</div>
|
||||
{/if}
|
||||
{block name="label"}
|
||||
{if isset($field['title']) && isset($field['desc'])}
|
||||
{if isset($field['title']) && isset($field['hint'])}
|
||||
<label class="control-label col-lg-3">
|
||||
<span title="" data-toggle="tooltip" class="label-tooltip" data-original-title="{$field['desc']}">
|
||||
<span title="" data-toggle="tooltip" class="label-tooltip" data-original-title="{$field['hint']}">
|
||||
{$field['title']}
|
||||
</span>
|
||||
</label>
|
||||
@@ -276,7 +276,7 @@
|
||||
{if isset($field['required']) && $field['required'] && $field['type'] != 'radio'}
|
||||
<sup>*</sup>
|
||||
{/if}
|
||||
{if isset($field['hint'])}<span class="alert alert-info" name="help_box">{$field['hint']}<span class="hint-pointer"> </span></span>{/if}
|
||||
|
||||
{/block}{* end block input *}
|
||||
{if $field['is_invisible']}
|
||||
<p class="alert alert-block">
|
||||
|
||||
@@ -28,6 +28,7 @@ class AdminCustomerThreadsControllerCore extends AdminController
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->bootstrap = true;
|
||||
$this->context = Context::getContext();
|
||||
$this->table = 'customer_thread';
|
||||
$this->className = 'CustomerThread';
|
||||
@@ -57,23 +58,19 @@ class AdminCustomerThreadsControllerCore extends AdminController
|
||||
|
||||
$this->fields_list = array(
|
||||
'id_customer_thread' => array(
|
||||
'title' => $this->l('ID'),
|
||||
'width' => 25,
|
||||
'title' => $this->l('ID')
|
||||
),
|
||||
'customer' => array(
|
||||
'title' => $this->l('Customer'),
|
||||
'width' => 100,
|
||||
'filter_key' => 'customer',
|
||||
'tmpTableFilter' => true,
|
||||
),
|
||||
'email' => array(
|
||||
'title' => $this->l('Email'),
|
||||
'width' => 100,
|
||||
'filter_key' => 'a!email',
|
||||
),
|
||||
'contact' => array(
|
||||
'title' => $this->l('Type'),
|
||||
'width' => 75,
|
||||
'type' => 'select',
|
||||
'list' => $contact_array,
|
||||
'filter_key' => 'cl!id_contact',
|
||||
@@ -81,7 +78,6 @@ class AdminCustomerThreadsControllerCore extends AdminController
|
||||
),
|
||||
'language' => array(
|
||||
'title' => $this->l('Language'),
|
||||
'width' => 60,
|
||||
'type' => 'select',
|
||||
'list' => $language_array,
|
||||
'filter_key' => 'l!id_lang',
|
||||
@@ -89,7 +85,6 @@ class AdminCustomerThreadsControllerCore extends AdminController
|
||||
),
|
||||
'status' => array(
|
||||
'title' => $this->l('Status'),
|
||||
'width' => 50,
|
||||
'type' => 'select',
|
||||
'list' => $status_array,
|
||||
'icon' => $images_array,
|
||||
@@ -99,20 +94,17 @@ class AdminCustomerThreadsControllerCore extends AdminController
|
||||
),
|
||||
'employee' => array(
|
||||
'title' => $this->l('Employee'),
|
||||
'width' => 100,
|
||||
'filter_key' => 'employee',
|
||||
'tmpTableFilter' => true,
|
||||
),
|
||||
'messages' => array(
|
||||
'title' => $this->l('Messages'),
|
||||
'width' => 50,
|
||||
'filter_key' => 'messages',
|
||||
'tmpTableFilter' => true,
|
||||
'maxlength' => 40,
|
||||
),
|
||||
'date_upd' => array(
|
||||
'title' => $this->l('Last message'),
|
||||
'width' => 90,
|
||||
'havingFilter' => true,
|
||||
),
|
||||
);
|
||||
@@ -132,16 +124,14 @@ class AdminCustomerThreadsControllerCore extends AdminController
|
||||
'fields' => array(
|
||||
'PS_CUSTOMER_SERVICE_FILE_UPLOAD' => array(
|
||||
'title' => $this->l('Allow file uploading'),
|
||||
'desc' => $this->l('Allow customers to upload files using the contact page.'),
|
||||
'hint' => $this->l('Allow customers to upload files using the contact page.'),
|
||||
'type' => 'bool'
|
||||
),
|
||||
'PS_CUSTOMER_SERVICE_SIGNATURE' => array(
|
||||
'title' => $this->l('Default message'),
|
||||
'desc' => $this->l('Please fill out the message fields that appear by default when you answer a thread on the customer service page.'),
|
||||
'hint' => $this->l('Please fill out the message fields that appear by default when you answer a thread on the customer service page.'),
|
||||
'type' => 'textareaLang',
|
||||
'lang' => true,
|
||||
'rows' => 10,
|
||||
'cols' => 40
|
||||
'lang' => true
|
||||
)
|
||||
),
|
||||
),
|
||||
@@ -150,67 +140,64 @@ class AdminCustomerThreadsControllerCore extends AdminController
|
||||
'fields' => array(
|
||||
'PS_SAV_IMAP_URL' => array(
|
||||
'title' => $this->l('IMAP URL'),
|
||||
'desc' => $this->l('URL for IMAP server (mail.server.com)'),
|
||||
'type' => 'text',
|
||||
'size' => 40,
|
||||
'hint' => $this->l('URL for IMAP server (mail.server.com)'),
|
||||
'type' => 'text'
|
||||
),
|
||||
'PS_SAV_IMAP_PORT' => array(
|
||||
'title' => $this->l('IMAP port'),
|
||||
'desc' => $this->l('Port to use to connect to IMAP server'),
|
||||
'hint' => $this->l('Port to use to connect to IMAP server'),
|
||||
'type' => 'text',
|
||||
'defaultValue' => 143,
|
||||
),
|
||||
'PS_SAV_IMAP_USER' => array(
|
||||
'title' => $this->l('IMAP user'),
|
||||
'desc' => $this->l('User to use to connect to IMAP server'),
|
||||
'type' => 'text',
|
||||
'size' => 40,
|
||||
'hint' => $this->l('User to use to connect to IMAP server'),
|
||||
'type' => 'text'
|
||||
),
|
||||
'PS_SAV_IMAP_PWD' => array(
|
||||
'title' => $this->l('IMAP password'),
|
||||
'desc' => $this->l('Password used to connect IMAP server'),
|
||||
'type' => 'text',
|
||||
'size' => 40,
|
||||
'hint' => $this->l('Password used to connect IMAP server'),
|
||||
'type' => 'text'
|
||||
),
|
||||
'PS_SAV_IMAP_DELETE_MSG' => array(
|
||||
'title' => $this->l('Delete messages'),
|
||||
'desc' => $this->l('Delete messages after sync. If you do not active this option, the sync will take more time.'),
|
||||
'hint' => $this->l('Delete messages after sync. If you do not active this option, the sync will take more time.'),
|
||||
'type' => 'bool',
|
||||
),
|
||||
'PS_SAV_IMAP_CREATE_THREADS' => array(
|
||||
'title' => $this->l('Create new threads'),
|
||||
'desc' => $this->l('Create new threads for unrecognized emails'),
|
||||
'hint' => $this->l('Create new threads for unrecognized emails'),
|
||||
'type' => 'bool',
|
||||
),
|
||||
'PS_SAV_IMAP_OPT_NORSH' => array(
|
||||
'title' => $this->l('IMAP options').' (/norsh)',
|
||||
'type' => 'bool',
|
||||
'desc' => $this->l('Do not use RSH or SSH to establish a preauthenticated IMAP sessions.'),
|
||||
'hint' => $this->l('Do not use RSH or SSH to establish a preauthenticated IMAP sessions.'),
|
||||
),
|
||||
'PS_SAV_IMAP_OPT_SSL' => array(
|
||||
'title' => $this->l('IMAP options').' (/ssl)',
|
||||
'type' => 'bool',
|
||||
'desc' => $this->l('Use the Secure Socket Layer to encrypt the session.'),
|
||||
'hint' => $this->l('Use the Secure Socket Layer to encrypt the session.'),
|
||||
),
|
||||
'PS_SAV_IMAP_OPT_VALIDATE-CERT' => array(
|
||||
'title' => $this->l('IMAP options').' (/validate-cert)',
|
||||
'type' => 'bool',
|
||||
'desc' => $this->l('Validate certificates from the TLS/SSL server'),
|
||||
'hint' => $this->l('Validate certificates from the TLS/SSL server'),
|
||||
),
|
||||
'PS_SAV_IMAP_OPT_NOVALIDATE-CERT' => array(
|
||||
'title' => $this->l('IMAP options').' (/novalidate-cert)',
|
||||
'type' => 'bool',
|
||||
'desc' => $this->l('Do not validate certificates from the TLS/SSL server. This is only needed if a server uses self-signed certificates'),
|
||||
'hint' => $this->l('Do not validate certificates from the TLS/SSL server. This is only needed if a server uses self-signed certificates'),
|
||||
),
|
||||
'PS_SAV_IMAP_OPT_TLS' => array(
|
||||
'title' => $this->l('IMAP options').' (/tls)',
|
||||
'type' => 'bool',
|
||||
'desc' => $this->l('Force use of start-TLS to encrypt the session, and reject connection to servers that do not support it.'),
|
||||
'hint' => $this->l('Force use of start-TLS to encrypt the session, and reject connection to servers that do not support it.'),
|
||||
),
|
||||
'PS_SAV_IMAP_OPT_NOTLS' => array(
|
||||
'title' => $this->l('IMAP options').' (/notls)',
|
||||
'type' => 'bool',
|
||||
'desc' => $this->l('Do not use start-TLS to encrypt the session, even with servers that support it.'),
|
||||
'hint' => $this->l('Do not use start-TLS to encrypt the session, even with servers that support it.'),
|
||||
),
|
||||
),
|
||||
'submit' => array('title' => $this->l('Save'), 'class' => 'button'),
|
||||
|
||||
Reference in New Issue
Block a user