Version Notes
Possibility of creating new ticket in BO
Download this release
Release Info
Developer | Magento Core Team |
Extension | Order_tickets |
Version | 1.1.0 |
Comparing to | |
See all releases |
Code changes from version 1.0.7 to 1.1.0
- app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat.php +11 -1
- app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/Create.php +45 -0
- app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/Create/Form.php +26 -0
- app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/Create/Order.php +27 -0
- app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/Create/Order/Grid.php +121 -0
- app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/Create/Steptwo.php +48 -0
- app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/Create/Steptwo/Form.php +104 -0
- app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/View.php +4 -1
- app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/View/Form.php +5 -1
- app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/View/Tab/Main.php +35 -1
- app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/View/Tab/Tickets.php +35 -6
- app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/View/Tabs.php +14 -22
- app/code/community/Laurent/OrderTickets/Controller/Adminhtml/Chat.php +40 -0
- app/code/community/Laurent/OrderTickets/Helper/Data.php +15 -0
- app/code/community/Laurent/OrderTickets/Model/Chat.php +10 -0
- app/code/community/Laurent/OrderTickets/controllers/Adminhtml/ChatController.php +6 -28
- app/code/community/Laurent/OrderTickets/controllers/Adminhtml/CreateController.php +153 -0
- app/code/community/Laurent/OrderTickets/controllers/ChatController.php +1 -1
- app/code/community/Laurent/OrderTickets/doc/CREATE-IN-BO.txt +12 -0
- app/code/community/Laurent/OrderTickets/doc/EVOLUTIONS.txt +3 -2
- app/code/community/Laurent/OrderTickets/etc/adminhtml.xml +13 -12
- app/code/community/Laurent/OrderTickets/etc/config.xml +8 -1
- app/design/adminhtml/default/default/layout/ordertickets.xml +50 -2
- app/design/adminhtml/default/default/template/ordertickets/chat/create/abstract.phtml +19 -0
- app/design/adminhtml/default/default/template/ordertickets/chat/create/form.phtml +16 -0
- app/design/adminhtml/default/default/template/ordertickets/order/view/tab/tickets.phtml +31 -29
- app/locale/fr_FR/Laurent_OrderTickets.csv +16 -0
- package.xml +6 -6
app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat.php
CHANGED
@@ -22,7 +22,17 @@ class Laurent_OrderTickets_Block_Adminhtml_Chat extends Mage_Adminhtml_Block_Wid
|
|
22 |
$this->_headerText = $this->__('Order tickets');
|
23 |
$this->_blockGroup = 'ordertickets';
|
24 |
parent::__construct();
|
25 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
}
|
27 |
}
|
28 |
|
22 |
$this->_headerText = $this->__('Order tickets');
|
23 |
$this->_blockGroup = 'ordertickets';
|
24 |
parent::__construct();
|
25 |
+
|
26 |
+
$userAllowedToCreate = Mage::getSingleton('admin/session')->isAllowed('sales/ordertickets/create');
|
27 |
+
if(!$userAllowedToCreate){
|
28 |
+
$this->_removeButton('add');
|
29 |
+
}
|
30 |
+
|
31 |
+
}
|
32 |
+
|
33 |
+
public function getCreateUrl()
|
34 |
+
{
|
35 |
+
return $this->getUrl('*/adminhtml_create');
|
36 |
}
|
37 |
}
|
38 |
|
app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/Create.php
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* @category Laurent
|
5 |
+
* @package Laurent_OrderTickets
|
6 |
+
* @copyright Copyright (c) 2012 Laurent Clouet
|
7 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
8 |
+
* @author Laurent Clouet <laurent35240@gmail.com>
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Description of New
|
13 |
+
*
|
14 |
+
*/
|
15 |
+
class Laurent_OrderTickets_Block_Adminhtml_Chat_Create extends Mage_Adminhtml_Block_Widget_Form_Container{
|
16 |
+
|
17 |
+
public function __construct()
|
18 |
+
{
|
19 |
+
$this->_controller = 'adminhtml_chat';
|
20 |
+
$this->_blockGroup = 'ordertickets';
|
21 |
+
$this->_mode = 'create';
|
22 |
+
parent::__construct();
|
23 |
+
|
24 |
+
$this->_removeButton('save');
|
25 |
+
$this->_removeButton('reset');
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Page title
|
30 |
+
* @return string
|
31 |
+
*/
|
32 |
+
public function getHeaderText(){
|
33 |
+
return $this->__('Create new order tickets');
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Url to go back to grid of order tickets
|
38 |
+
* @return string
|
39 |
+
*/
|
40 |
+
public function getBackUrl() {
|
41 |
+
return $this->getUrl('*/adminhtml_chat/');
|
42 |
+
}
|
43 |
+
|
44 |
+
}
|
45 |
+
?>
|
app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/Create/Form.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* @category Laurent
|
5 |
+
* @package Laurent_OrderTickets
|
6 |
+
* @copyright Copyright (c) 2012 Laurent Clouet
|
7 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
8 |
+
* @author Laurent Clouet <laurent35240@gmail.com>
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Description of Form
|
13 |
+
*
|
14 |
+
*/
|
15 |
+
class Laurent_OrderTickets_Block_Adminhtml_Chat_Create_Form extends Mage_Adminhtml_Block_Widget_Form{
|
16 |
+
|
17 |
+
protected function _prepareForm()
|
18 |
+
{
|
19 |
+
$form = new Varien_Data_Form(array('id' => 'create_form', 'action' => $this->getData('action'), 'method' => 'post'));
|
20 |
+
$form->setUseContainer(true);
|
21 |
+
$this->setForm($form);
|
22 |
+
return parent::_prepareForm();
|
23 |
+
}
|
24 |
+
}
|
25 |
+
|
26 |
+
?>
|
app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/Create/Order.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* @category Laurent
|
5 |
+
* @package Laurent_OrderTickets
|
6 |
+
* @copyright Copyright (c) 2012 Laurent Clouet
|
7 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
8 |
+
* @author Laurent Clouet <laurent35240@gmail.com>
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Description of Order
|
13 |
+
*
|
14 |
+
*/
|
15 |
+
class Laurent_OrderTickets_Block_Adminhtml_Chat_Create_Order extends Mage_Adminhtml_Block_Widget{
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Header text for order grid
|
19 |
+
* @return string
|
20 |
+
*/
|
21 |
+
public function getHeaderText(){
|
22 |
+
return $this->__('Please select an order');
|
23 |
+
}
|
24 |
+
|
25 |
+
}
|
26 |
+
|
27 |
+
?>
|
app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/Create/Order/Grid.php
ADDED
@@ -0,0 +1,121 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* @category Laurent
|
5 |
+
* @package Laurent_OrderTickets
|
6 |
+
* @copyright Copyright (c) 2012 Laurent Clouet
|
7 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
8 |
+
* @author Laurent Clouet <laurent35240@gmail.com>
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Description of Grid
|
13 |
+
*
|
14 |
+
*/
|
15 |
+
class Laurent_OrderTickets_Block_Adminhtml_Chat_Create_Order_Grid extends Mage_Adminhtml_Block_Widget_Grid {
|
16 |
+
|
17 |
+
public function __construct()
|
18 |
+
{
|
19 |
+
parent::__construct();
|
20 |
+
$this->setId('ordertickets_chat_create_order_grid');
|
21 |
+
$this->setUseAjax(true);
|
22 |
+
$this->setDefaultSort('entity_id');
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Preparing colllectio of orders
|
27 |
+
* @return Laurent_OrderTickets_Block_Adminhtml_Chat_Create_Order_Grid
|
28 |
+
*/
|
29 |
+
protected function _prepareCollection()
|
30 |
+
{
|
31 |
+
$collection = Mage::getResourceModel('sales/order_grid_collection');
|
32 |
+
$this->setCollection($collection);
|
33 |
+
return parent::_prepareCollection();
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Columns of order Grid
|
38 |
+
* @return Laurent_OrderTickets_Block_Adminhtml_Chat_Create_Order_Grid
|
39 |
+
*/
|
40 |
+
protected function _prepareColumns()
|
41 |
+
{
|
42 |
+
|
43 |
+
$this->addColumn('real_order_id', array(
|
44 |
+
'header'=> Mage::helper('sales')->__('Order #'),
|
45 |
+
'width' => '80px',
|
46 |
+
'type' => 'text',
|
47 |
+
'index' => 'increment_id',
|
48 |
+
));
|
49 |
+
|
50 |
+
if (!Mage::app()->isSingleStoreMode()) {
|
51 |
+
$this->addColumn('store_id', array(
|
52 |
+
'header' => Mage::helper('sales')->__('Purchased From (Store)'),
|
53 |
+
'index' => 'store_id',
|
54 |
+
'type' => 'store',
|
55 |
+
'store_view'=> true,
|
56 |
+
'display_deleted' => true,
|
57 |
+
));
|
58 |
+
}
|
59 |
+
|
60 |
+
$this->addColumn('created_at', array(
|
61 |
+
'header' => Mage::helper('sales')->__('Purchased On'),
|
62 |
+
'index' => 'created_at',
|
63 |
+
'type' => 'datetime',
|
64 |
+
'width' => '100px',
|
65 |
+
));
|
66 |
+
|
67 |
+
$this->addColumn('billing_name', array(
|
68 |
+
'header' => Mage::helper('sales')->__('Bill to Name'),
|
69 |
+
'index' => 'billing_name',
|
70 |
+
));
|
71 |
+
|
72 |
+
$this->addColumn('shipping_name', array(
|
73 |
+
'header' => Mage::helper('sales')->__('Ship to Name'),
|
74 |
+
'index' => 'shipping_name',
|
75 |
+
));
|
76 |
+
|
77 |
+
$this->addColumn('base_grand_total', array(
|
78 |
+
'header' => Mage::helper('sales')->__('G.T. (Base)'),
|
79 |
+
'index' => 'base_grand_total',
|
80 |
+
'type' => 'currency',
|
81 |
+
'currency' => 'base_currency_code',
|
82 |
+
));
|
83 |
+
|
84 |
+
$this->addColumn('grand_total', array(
|
85 |
+
'header' => Mage::helper('sales')->__('G.T. (Purchased)'),
|
86 |
+
'index' => 'grand_total',
|
87 |
+
'type' => 'currency',
|
88 |
+
'currency' => 'order_currency_code',
|
89 |
+
));
|
90 |
+
|
91 |
+
$this->addColumn('status', array(
|
92 |
+
'header' => Mage::helper('sales')->__('Status'),
|
93 |
+
'index' => 'status',
|
94 |
+
'type' => 'options',
|
95 |
+
'width' => '70px',
|
96 |
+
'options' => Mage::getSingleton('sales/order_config')->getStatuses(),
|
97 |
+
));
|
98 |
+
|
99 |
+
return parent::_prepareColumns();
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* Url of Grid for reloading it with Ajax
|
104 |
+
* @return string
|
105 |
+
*/
|
106 |
+
public function getGridUrl()
|
107 |
+
{
|
108 |
+
return $this->getUrl('*/*/loadOrderGrid');
|
109 |
+
}
|
110 |
+
|
111 |
+
/**
|
112 |
+
* Url when clicking on a row
|
113 |
+
* @param Mage_Sales_Model8order $order order of the row
|
114 |
+
* @return string
|
115 |
+
*/
|
116 |
+
public function getRowUrl($order){
|
117 |
+
return $this->getUrl('*/*/stepTwo', array('order_id' => $order->getId()));
|
118 |
+
}
|
119 |
+
}
|
120 |
+
|
121 |
+
?>
|
app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/Create/Steptwo.php
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* @category Laurent
|
5 |
+
* @package Laurent_OrderTickets
|
6 |
+
* @copyright Copyright (c) 2012 Laurent Clouet
|
7 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
8 |
+
* @author Laurent Clouet <laurent35240@gmail.com>
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Description of Steptwo
|
13 |
+
*
|
14 |
+
*/
|
15 |
+
class Laurent_OrderTickets_Block_Adminhtml_Chat_Create_Steptwo extends Mage_Adminhtml_Block_Widget_Form_Container {
|
16 |
+
|
17 |
+
public function __construct()
|
18 |
+
{
|
19 |
+
$this->_controller = 'adminhtml_chat_create';
|
20 |
+
$this->_blockGroup = 'ordertickets';
|
21 |
+
$this->_mode = 'steptwo';
|
22 |
+
parent::__construct();
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Gives header text
|
27 |
+
* @return string
|
28 |
+
*/
|
29 |
+
public function getHeaderText() {
|
30 |
+
return $this->__('Create new order tickets for order #%s', $this->getOrder()->getIncrementId());
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Get order selected for this chat creation
|
35 |
+
* @return Mage_Sales_Model_Order
|
36 |
+
*/
|
37 |
+
public function getOrder(){
|
38 |
+
$order = Mage::getModel('sales/order');
|
39 |
+
/* @var $order Mage_Sales_Model_Order */
|
40 |
+
$orderId = Mage::registry('chat_order_id');
|
41 |
+
$order->load($orderId);
|
42 |
+
|
43 |
+
return $order;
|
44 |
+
}
|
45 |
+
|
46 |
+
}
|
47 |
+
|
48 |
+
?>
|
app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/Create/Steptwo/Form.php
ADDED
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* @category Laurent
|
5 |
+
* @package Laurent_OrderTickets
|
6 |
+
* @copyright Copyright (c) 2012 Laurent Clouet
|
7 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
8 |
+
* @author Laurent Clouet <laurent35240@gmail.com>
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Description of Form
|
13 |
+
*
|
14 |
+
*/
|
15 |
+
class Laurent_OrderTickets_Block_Adminhtml_Chat_Create_Steptwo_Form extends Mage_Adminhtml_Block_Widget_Form {
|
16 |
+
|
17 |
+
protected function _prepareForm() {
|
18 |
+
$helper = Mage::helper('ordertickets');
|
19 |
+
/* @var $helper Laurent_OrderTickets_Helper_Data */
|
20 |
+
$order = $this->getOrder();
|
21 |
+
|
22 |
+
$form = new Varien_Data_Form(array(
|
23 |
+
'id' => 'edit_form',
|
24 |
+
'action' => $this->getUrl('*/*/save'),
|
25 |
+
'method' => 'post',
|
26 |
+
));
|
27 |
+
|
28 |
+
$fieldset = $form->addFieldset('create_steptwo_form_fildset', array(
|
29 |
+
'legend' => $this->__('Order tickets details'),
|
30 |
+
));
|
31 |
+
|
32 |
+
$fieldset->addField('customer_firstname', 'text', array(
|
33 |
+
'label' => $this->__('Customer firstname'),
|
34 |
+
'name' => 'chat[customer_firstname]',
|
35 |
+
'required' => true,
|
36 |
+
'value' => $order->getCustomerFirstname(),
|
37 |
+
));
|
38 |
+
|
39 |
+
$fieldset->addField('customer_lastname', 'text', array(
|
40 |
+
'label' => $this->__('Customer lastname'),
|
41 |
+
'name' => 'chat[customer_lastname]',
|
42 |
+
'required' => true,
|
43 |
+
'value' => $order->getCustomerLastname(),
|
44 |
+
));
|
45 |
+
|
46 |
+
$fieldset->addField('customer_email', 'text', array(
|
47 |
+
'label' => $this->__('Customer email'),
|
48 |
+
'name' => 'chat[customer_email]',
|
49 |
+
'required' => true,
|
50 |
+
'class' => 'validate-email',
|
51 |
+
'value' => $order->getCustomerEmail(),
|
52 |
+
));
|
53 |
+
|
54 |
+
$fieldset->addField('status', 'select', array(
|
55 |
+
'label' => $this->__('Status'),
|
56 |
+
'name' => 'chat[status]',
|
57 |
+
'required' => true,
|
58 |
+
'options' => $helper->getChatStatuses(),
|
59 |
+
'value' => Laurent_OrderTickets_Model_Chat::STATUS_OPEN,
|
60 |
+
));
|
61 |
+
|
62 |
+
$fieldset->addField('ticket_type', 'select', array(
|
63 |
+
'label' => $this->__('Ticket type'),
|
64 |
+
'name' => 'ticket[type]',
|
65 |
+
'required' => true,
|
66 |
+
'options' => $helper->getTicketTypes(),
|
67 |
+
'value' => Laurent_OrderTickets_Model_Ticket::TYPE_REQUEST,
|
68 |
+
));
|
69 |
+
|
70 |
+
$fieldset->addField('ticket_message', 'textarea', array(
|
71 |
+
'label' => $this->__('Message'),
|
72 |
+
'name' => 'ticket[message]',
|
73 |
+
'required' => true,
|
74 |
+
));
|
75 |
+
|
76 |
+
$fieldset->addField('order_id', 'hidden', array(
|
77 |
+
'name' => 'chat[order_id]',
|
78 |
+
'required' => true,
|
79 |
+
'value' => $order->getId(),
|
80 |
+
));
|
81 |
+
|
82 |
+
$form->setUseContainer(true);
|
83 |
+
|
84 |
+
$this->setForm($form);
|
85 |
+
|
86 |
+
return parent::_prepareForm();
|
87 |
+
}
|
88 |
+
|
89 |
+
/**
|
90 |
+
* Get order selected for this chat creation
|
91 |
+
* @return Mage_Sales_Model_Order
|
92 |
+
*/
|
93 |
+
public function getOrder(){
|
94 |
+
$order = Mage::getModel('sales/order');
|
95 |
+
/* @var $order Mage_Sales_Model_Order */
|
96 |
+
$orderId = Mage::registry('chat_order_id');
|
97 |
+
$order->load($orderId);
|
98 |
+
|
99 |
+
return $order;
|
100 |
+
}
|
101 |
+
|
102 |
+
}
|
103 |
+
|
104 |
+
?>
|
app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/View.php
CHANGED
@@ -22,9 +22,12 @@ class Laurent_OrderTickets_Block_Adminhtml_Chat_View extends Mage_Adminhtml_Bloc
|
|
22 |
$this->_mode = 'view';
|
23 |
parent::__construct();
|
24 |
$this->_removeButton('delete');
|
25 |
-
|
26 |
}
|
27 |
|
|
|
|
|
|
|
|
|
28 |
public function getHeaderText(){
|
29 |
return $this->__('Tickets for order %s', $this->getChat()->getOrder()->getIncrementId());
|
30 |
}
|
22 |
$this->_mode = 'view';
|
23 |
parent::__construct();
|
24 |
$this->_removeButton('delete');
|
|
|
25 |
}
|
26 |
|
27 |
+
/**
|
28 |
+
* Gives Header text
|
29 |
+
* @return string
|
30 |
+
*/
|
31 |
public function getHeaderText(){
|
32 |
return $this->__('Tickets for order %s', $this->getChat()->getOrder()->getIncrementId());
|
33 |
}
|
app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/View/Form.php
CHANGED
@@ -16,7 +16,11 @@ class Laurent_OrderTickets_Block_Adminhtml_Chat_View_Form extends Mage_Adminhtml
|
|
16 |
|
17 |
protected function _prepareForm()
|
18 |
{
|
19 |
-
$form = new Varien_Data_Form(array(
|
|
|
|
|
|
|
|
|
20 |
$form->setUseContainer(true);
|
21 |
$this->setForm($form);
|
22 |
return parent::_prepareForm();
|
16 |
|
17 |
protected function _prepareForm()
|
18 |
{
|
19 |
+
$form = new Varien_Data_Form(array(
|
20 |
+
'id' => 'edit_form',
|
21 |
+
'action' => $this->getData('action'),
|
22 |
+
'method' => 'post'
|
23 |
+
));
|
24 |
$form->setUseContainer(true);
|
25 |
$this->setForm($form);
|
26 |
return parent::_prepareForm();
|
app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/View/Tab/Main.php
CHANGED
@@ -12,7 +12,9 @@
|
|
12 |
* Description of Main
|
13 |
*
|
14 |
*/
|
15 |
-
class Laurent_OrderTickets_Block_Adminhtml_Chat_View_Tab_Main
|
|
|
|
|
16 |
|
17 |
protected function _prepareForm()
|
18 |
{
|
@@ -78,6 +80,38 @@ class Laurent_OrderTickets_Block_Adminhtml_Chat_View_Tab_Main extends Mage_Admin
|
|
78 |
|
79 |
return parent::_prepareForm();
|
80 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
|
82 |
}
|
83 |
|
12 |
* Description of Main
|
13 |
*
|
14 |
*/
|
15 |
+
class Laurent_OrderTickets_Block_Adminhtml_Chat_View_Tab_Main
|
16 |
+
extends Mage_Adminhtml_Block_Widget_Form
|
17 |
+
implements Mage_Adminhtml_Block_Widget_Tab_Interface {
|
18 |
|
19 |
protected function _prepareForm()
|
20 |
{
|
80 |
|
81 |
return parent::_prepareForm();
|
82 |
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* Can sho tab?
|
86 |
+
* @return boolean
|
87 |
+
*/
|
88 |
+
public function canShowTab() {
|
89 |
+
return true;
|
90 |
+
}
|
91 |
+
|
92 |
+
/**
|
93 |
+
* Tab label
|
94 |
+
* @return string
|
95 |
+
*/
|
96 |
+
public function getTabLabel() {
|
97 |
+
return $this->__('Details');
|
98 |
+
}
|
99 |
+
|
100 |
+
/**
|
101 |
+
* Tab title
|
102 |
+
* @return string
|
103 |
+
*/
|
104 |
+
public function getTabTitle() {
|
105 |
+
return $this->__('Details');
|
106 |
+
}
|
107 |
+
|
108 |
+
/**
|
109 |
+
* Tab is hidden?
|
110 |
+
* @return boolean
|
111 |
+
*/
|
112 |
+
public function isHidden() {
|
113 |
+
return false;
|
114 |
+
}
|
115 |
|
116 |
}
|
117 |
|
app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/View/Tab/Tickets.php
CHANGED
@@ -12,12 +12,9 @@
|
|
12 |
* Description of Tickets
|
13 |
*
|
14 |
*/
|
15 |
-
class Laurent_OrderTickets_Block_Adminhtml_Chat_View_Tab_Tickets
|
16 |
-
|
17 |
-
|
18 |
-
parent::__construct();
|
19 |
-
$this->setTemplate('ordertickets/chat/view/tab/tickets.phtml');
|
20 |
-
}
|
21 |
|
22 |
/**
|
23 |
* Give collection of tickets for currenty seen chat
|
@@ -38,6 +35,38 @@ class Laurent_OrderTickets_Block_Adminhtml_Chat_View_Tab_Tickets extends Mage_Ad
|
|
38 |
public function getPostAnswerUrl(){
|
39 |
return $this->getUrl('*/*/answerPost');
|
40 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
}
|
42 |
|
43 |
?>
|
12 |
* Description of Tickets
|
13 |
*
|
14 |
*/
|
15 |
+
class Laurent_OrderTickets_Block_Adminhtml_Chat_View_Tab_Tickets
|
16 |
+
extends Mage_Adminhtml_Block_Template
|
17 |
+
implements Mage_Adminhtml_Block_Widget_Tab_Interface {
|
|
|
|
|
|
|
18 |
|
19 |
/**
|
20 |
* Give collection of tickets for currenty seen chat
|
35 |
public function getPostAnswerUrl(){
|
36 |
return $this->getUrl('*/*/answerPost');
|
37 |
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* Can show tab?
|
41 |
+
* @return boolean
|
42 |
+
*/
|
43 |
+
public function canShowTab() {
|
44 |
+
return true;
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Tab label
|
49 |
+
* @return string
|
50 |
+
*/
|
51 |
+
public function getTabLabel() {
|
52 |
+
return $this->__('Tickets');
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Tab title
|
57 |
+
* @return string
|
58 |
+
*/
|
59 |
+
public function getTabTitle() {
|
60 |
+
return $this->__('Tickets');
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Tab is hidden?
|
65 |
+
* @return boolean
|
66 |
+
*/
|
67 |
+
public function isHidden() {
|
68 |
+
return false;
|
69 |
+
}
|
70 |
}
|
71 |
|
72 |
?>
|
app/code/community/Laurent/OrderTickets/Block/Adminhtml/Chat/View/Tabs.php
CHANGED
@@ -13,31 +13,23 @@
|
|
13 |
*
|
14 |
*/
|
15 |
class Laurent_OrderTickets_Block_Adminhtml_Chat_View_Tabs extends Mage_Adminhtml_Block_Widget_Tabs{
|
|
|
|
|
16 |
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
}
|
24 |
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
'active' => true
|
32 |
-
));
|
33 |
-
|
34 |
-
$this->addTab('tickets', array(
|
35 |
-
'label' => $this->__('Tickets'),
|
36 |
-
'title' => $this->__('Tickets'),
|
37 |
-
'content' => $this->getLayout()->createBlock('ordertickets/adminhtml_chat_view_tab_tickets')->toHtml(),
|
38 |
-
));
|
39 |
-
|
40 |
-
return parent::_beforeToHtml();
|
41 |
}
|
42 |
}
|
43 |
|
13 |
*
|
14 |
*/
|
15 |
class Laurent_OrderTickets_Block_Adminhtml_Chat_View_Tabs extends Mage_Adminhtml_Block_Widget_Tabs{
|
16 |
+
|
17 |
+
protected $_destElementId = 'edit_form';
|
18 |
|
19 |
+
/**
|
20 |
+
* Tabs id
|
21 |
+
* @return string
|
22 |
+
*/
|
23 |
+
public function getId() {
|
24 |
+
return 'chat_tabs';
|
25 |
}
|
26 |
|
27 |
+
/**
|
28 |
+
* Tabs title
|
29 |
+
* @return string
|
30 |
+
*/
|
31 |
+
public function getTitle(){
|
32 |
+
return $this->__('Chat Information');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
}
|
34 |
}
|
35 |
|
app/code/community/Laurent/OrderTickets/Controller/Adminhtml/Chat.php
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* @category Laurent
|
5 |
+
* @package Laurent_OrderTickets
|
6 |
+
* @copyright Copyright (c) 2012 Laurent Clouet
|
7 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
8 |
+
* @author Laurent Clouet <laurent35240@gmail.com>
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Description of Chat
|
13 |
+
*
|
14 |
+
*/
|
15 |
+
class Laurent_OrderTickets_Controller_Adminhtml_Chat extends Mage_Adminhtml_Controller_Action {
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Initialize action
|
19 |
+
*
|
20 |
+
* @return Mage_Adminhtml_Controller_Action
|
21 |
+
*/
|
22 |
+
protected function _initAction()
|
23 |
+
{
|
24 |
+
$this->loadLayout()
|
25 |
+
->_setActiveMenu('sales/ordertickets')
|
26 |
+
->_addBreadcrumb($this->__('Sales'), $this->__('Sales'))
|
27 |
+
->_addBreadcrumb($this->__('Order tickets'), $this->__('Order tickets'));
|
28 |
+
return $this;
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Set base title for order tickets actions
|
33 |
+
*/
|
34 |
+
protected function _baseTitle(){
|
35 |
+
$this->_title($this->__('Sales'))->_title($this->__('Order tickets'));
|
36 |
+
}
|
37 |
+
|
38 |
+
}
|
39 |
+
|
40 |
+
?>
|
app/code/community/Laurent/OrderTickets/Helper/Data.php
CHANGED
@@ -29,6 +29,10 @@ class Laurent_OrderTickets_Helper_Data extends Mage_Core_Helper_Abstract{
|
|
29 |
return $chat;
|
30 |
}
|
31 |
|
|
|
|
|
|
|
|
|
32 |
public function getChatStatuses(){
|
33 |
return array(
|
34 |
Laurent_OrderTickets_Model_Chat::STATUS_CLOSED => $this->__('Closed'),
|
@@ -36,6 +40,17 @@ class Laurent_OrderTickets_Helper_Data extends Mage_Core_Helper_Abstract{
|
|
36 |
Laurent_OrderTickets_Model_Chat::STATUS_PENDING_ANSWER => $this->__('Pending answer')
|
37 |
);
|
38 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
}
|
40 |
|
41 |
?>
|
29 |
return $chat;
|
30 |
}
|
31 |
|
32 |
+
/**
|
33 |
+
* Get associative array of chat statuses
|
34 |
+
* @return array status code => status label
|
35 |
+
*/
|
36 |
public function getChatStatuses(){
|
37 |
return array(
|
38 |
Laurent_OrderTickets_Model_Chat::STATUS_CLOSED => $this->__('Closed'),
|
40 |
Laurent_OrderTickets_Model_Chat::STATUS_PENDING_ANSWER => $this->__('Pending answer')
|
41 |
);
|
42 |
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Get associative array of ticket types
|
46 |
+
* @return array type code => type label
|
47 |
+
*/
|
48 |
+
public function getTicketTypes() {
|
49 |
+
return array(
|
50 |
+
Laurent_OrderTickets_Model_Ticket::TYPE_REQUEST => $this->__('Customer request'),
|
51 |
+
Laurent_OrderTickets_Model_Ticket::TYPE_ANSWER => $this->__('Store answer'),
|
52 |
+
);
|
53 |
+
}
|
54 |
}
|
55 |
|
56 |
?>
|
app/code/community/Laurent/OrderTickets/Model/Chat.php
CHANGED
@@ -72,6 +72,16 @@ class Laurent_OrderTickets_Model_Chat extends Laurent_OrderTickets_Model_Abstrac
|
|
72 |
return $this->getStatus();
|
73 |
}
|
74 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
}
|
76 |
|
77 |
?>
|
72 |
return $this->getStatus();
|
73 |
}
|
74 |
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Try to load a chat by a given order id
|
78 |
+
* @param int $orderId
|
79 |
+
* @return LaurentOrderTickets_Model_Chat
|
80 |
+
*/
|
81 |
+
public function loadByOrderId($orderId) {
|
82 |
+
$orderId = (int) $orderId;
|
83 |
+
return $this->load($orderId, 'order_id');
|
84 |
+
}
|
85 |
}
|
86 |
|
87 |
?>
|
app/code/community/Laurent/OrderTickets/controllers/Adminhtml/ChatController.php
CHANGED
@@ -12,11 +12,11 @@
|
|
12 |
* Description of ChatController
|
13 |
*
|
14 |
*/
|
15 |
-
class Laurent_OrderTickets_Adminhtml_ChatController extends
|
16 |
|
17 |
public function indexAction(){
|
|
|
18 |
$this->_initAction();
|
19 |
-
$this->_addContent($this->getLayout()->createBlock('ordertickets/adminhtml_chat'));
|
20 |
$this->renderLayout();
|
21 |
}
|
22 |
|
@@ -27,12 +27,14 @@ class Laurent_OrderTickets_Adminhtml_ChatController extends Mage_Adminhtml_Contr
|
|
27 |
$chatId = $this->getRequest()->getParam('chat_id');
|
28 |
|
29 |
$chat = Mage::getModel('ordertickets/chat')->load($chatId);
|
|
|
30 |
|
31 |
if($chat->getId()){
|
32 |
Mage::register('ordertickets_chat', $chat);
|
|
|
|
|
|
|
33 |
$this->_initAction();
|
34 |
-
$this->_addContent($this->getLayout()->createBlock('ordertickets/adminhtml_chat_view'));
|
35 |
-
$this->_addLeft($this->getLayout()->createBlock('ordertickets/adminhtml_chat_view_tabs'));
|
36 |
$this->renderLayout();
|
37 |
}
|
38 |
else{
|
@@ -120,30 +122,6 @@ class Laurent_OrderTickets_Adminhtml_ChatController extends Mage_Adminhtml_Contr
|
|
120 |
|
121 |
$this->getResponse()->setBody($this->getLayout()->createBlock('ordertickets/adminhtml_customer_edit_tab_tickets')->toHtml());
|
122 |
}
|
123 |
-
|
124 |
-
/**
|
125 |
-
* Initialize action
|
126 |
-
*
|
127 |
-
* @return Mage_Adminhtml_Controller_Action
|
128 |
-
*/
|
129 |
-
protected function _initAction()
|
130 |
-
{
|
131 |
-
$this->loadLayout()
|
132 |
-
->_setActiveMenu('sales/ordertickets')
|
133 |
-
->_addBreadcrumb($this->__('Sales'), $this->__('Sales'))
|
134 |
-
->_addBreadcrumb($this->__('Order tickets'), $this->__('Order tickets'));
|
135 |
-
return $this;
|
136 |
-
}
|
137 |
-
|
138 |
-
/**
|
139 |
-
* Create a new Chat Action
|
140 |
-
*/
|
141 |
-
public function newAction()
|
142 |
-
{
|
143 |
-
$this->_initAction();
|
144 |
-
$this->renderLayout();
|
145 |
-
}
|
146 |
-
|
147 |
}
|
148 |
|
149 |
?>
|
12 |
* Description of ChatController
|
13 |
*
|
14 |
*/
|
15 |
+
class Laurent_OrderTickets_Adminhtml_ChatController extends Laurent_OrderTickets_Controller_Adminhtml_Chat {
|
16 |
|
17 |
public function indexAction(){
|
18 |
+
$this->_baseTitle();
|
19 |
$this->_initAction();
|
|
|
20 |
$this->renderLayout();
|
21 |
}
|
22 |
|
27 |
$chatId = $this->getRequest()->getParam('chat_id');
|
28 |
|
29 |
$chat = Mage::getModel('ordertickets/chat')->load($chatId);
|
30 |
+
/* @var $chat Laurent_OrderTickets_Model_Chat */
|
31 |
|
32 |
if($chat->getId()){
|
33 |
Mage::register('ordertickets_chat', $chat);
|
34 |
+
|
35 |
+
$this->_baseTitle();
|
36 |
+
$this->_title($this->__('Tickets for order %s', $chat->getOrder()->getIncrementId()));
|
37 |
$this->_initAction();
|
|
|
|
|
38 |
$this->renderLayout();
|
39 |
}
|
40 |
else{
|
122 |
|
123 |
$this->getResponse()->setBody($this->getLayout()->createBlock('ordertickets/adminhtml_customer_edit_tab_tickets')->toHtml());
|
124 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
}
|
126 |
|
127 |
?>
|
app/code/community/Laurent/OrderTickets/controllers/Adminhtml/CreateController.php
ADDED
@@ -0,0 +1,153 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* @category Laurent
|
5 |
+
* @package Laurent_OrderTickets
|
6 |
+
* @copyright Copyright (c) 2012 Laurent Clouet
|
7 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
8 |
+
* @author Laurent Clouet <laurent35240@gmail.com>
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Description of CreateController
|
13 |
+
*
|
14 |
+
*/
|
15 |
+
class Laurent_OrderTickets_Adminhtml_CreateController extends Laurent_OrderTickets_Controller_Adminhtml_Chat {
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Create a new Chat Action
|
19 |
+
*/
|
20 |
+
public function indexAction() {
|
21 |
+
$this->_baseTitle();
|
22 |
+
$this->_title($this->__('Create new order tickets'));
|
23 |
+
$this->_initAction();
|
24 |
+
$this->renderLayout();
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Rendering order grid for creating new ordertickets
|
29 |
+
*/
|
30 |
+
public function loadOrderGridAction() {
|
31 |
+
$this->loadLayout(false);
|
32 |
+
$this->renderLayout();
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Check if we can create order tickets for required order
|
37 |
+
*/
|
38 |
+
public function stepTwoAction() {
|
39 |
+
$session = $this->_getSession();
|
40 |
+
|
41 |
+
try {
|
42 |
+
//Checking if we receive an order id
|
43 |
+
$orderId = (int) $this->getRequest()->getParam('order_id');
|
44 |
+
$this->_checkOrderId($orderId);
|
45 |
+
$order = Mage::getModel('sales/order')->load($orderId);
|
46 |
+
/* @var $order Mage_Sales_Model_Order */
|
47 |
+
|
48 |
+
//Checking if there is already started order chat for this order
|
49 |
+
//If chat is found we redirect then to chat edit page
|
50 |
+
$orderChat = Mage::getModel('ordertickets/chat');
|
51 |
+
/* @var $orderChat Laurent_OrderTickets_Model_Chat */
|
52 |
+
$orderChat->loadByOrderId($orderId);
|
53 |
+
if($orderChat->getId()){
|
54 |
+
$message = $this->__('Tickets already exist for this order. Please add new here.');
|
55 |
+
$session->addNotice($message);
|
56 |
+
$this->_redirect('*/adminhtml_chat/view', array('chat_id' => $orderChat->getId()));
|
57 |
+
return false;
|
58 |
+
}
|
59 |
+
|
60 |
+
//Displaying form
|
61 |
+
Mage::register('chat_order_id', $orderId);
|
62 |
+
$this->_baseTitle();
|
63 |
+
$this->_title($this->__('Create new order tickets for order #%s', $order->getIncrementId()));
|
64 |
+
$this->_initAction();
|
65 |
+
$this->renderLayout();
|
66 |
+
|
67 |
+
} catch (Mage_Core_Exception $e) {
|
68 |
+
$message = $this->__("Error while creating new order tickets: %s", $e->getMessage());
|
69 |
+
$session->addError($message);
|
70 |
+
$this->_redirect('*/adminhtml_chat');
|
71 |
+
}
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Processing data to save
|
76 |
+
*/
|
77 |
+
public function saveAction(){
|
78 |
+
$session = $this->_getSession();
|
79 |
+
|
80 |
+
try {
|
81 |
+
$request = $this->getRequest();
|
82 |
+
$postData = $request->getPost();
|
83 |
+
if (!$postData) {
|
84 |
+
$exceptionMsg = $this->__('There is no data to save.');
|
85 |
+
throw new Mage_Core_Exception($exceptionMsg);
|
86 |
+
}
|
87 |
+
|
88 |
+
$chatData = $request->getParam('chat');
|
89 |
+
$ticketData = $request->getParam('ticket');
|
90 |
+
|
91 |
+
$orderId = (isset($chatData['order_id']) ? $chatData['order_id'] : null);
|
92 |
+
$this->_checkOrderId($orderId);
|
93 |
+
|
94 |
+
$chat = Mage::getModel('ordertickets/chat');
|
95 |
+
/* @var $chat Laurent_OrderTickets_Model_Chat */
|
96 |
+
$chat->setData($chatData);
|
97 |
+
$chat->save();
|
98 |
+
|
99 |
+
$ticketData['chat_id'] = $chat->getId();
|
100 |
+
$ticket = Mage::getModel('ordertickets/ticket');
|
101 |
+
/* @var $ticket Laurent_OrderTickets_Model_Ticket */
|
102 |
+
$ticket->setData($ticketData);
|
103 |
+
$ticket->save();
|
104 |
+
|
105 |
+
$successMessage = $this->__('Ticket has been correctly saved.');
|
106 |
+
$session->addSuccess($successMessage);
|
107 |
+
$this->_redirect('*/adminhtml_chat');
|
108 |
+
return false;
|
109 |
+
|
110 |
+
} catch (Mage_Core_Exception $e) {
|
111 |
+
$errorMesage = $this->__("Error while creating new order tickets: %s", $e->getMessage());
|
112 |
+
$session->addError($errorMesage);
|
113 |
+
$this->_redirect('*/adminhtml_chat');
|
114 |
+
}
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* Check if order id is correct and correspond to an order
|
119 |
+
* @param int $orderId
|
120 |
+
* @return boolean true if it is ok
|
121 |
+
* @throws Mage_Core_Exception If order id is incorrect
|
122 |
+
*/
|
123 |
+
protected function _checkOrderId($orderId) {
|
124 |
+
if (!$orderId) {
|
125 |
+
$message = $this->__('No order selected for creating new order tickets.');
|
126 |
+
throw new Mage_Core_Exception($message);
|
127 |
+
}
|
128 |
+
|
129 |
+
|
130 |
+
//Checking if order exists
|
131 |
+
$order = Mage::getModel('sales/order');
|
132 |
+
/* @var $order Mage_Sales_Model_Order */
|
133 |
+
$order->load($orderId);
|
134 |
+
if (!$order->getId()) {
|
135 |
+
$message = $this->__('Order not found.');
|
136 |
+
throw new Mage_Core_Exception($message);
|
137 |
+
}
|
138 |
+
|
139 |
+
return true;
|
140 |
+
}
|
141 |
+
|
142 |
+
/**
|
143 |
+
* Tells if user can use actions of this controller
|
144 |
+
* @return boolean
|
145 |
+
*/
|
146 |
+
protected function _isAllowed()
|
147 |
+
{
|
148 |
+
return Mage::getSingleton('admin/session')->isAllowed('sales/ordertickets/create');
|
149 |
+
}
|
150 |
+
|
151 |
+
}
|
152 |
+
|
153 |
+
?>
|
app/code/community/Laurent/OrderTickets/controllers/ChatController.php
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
<?php
|
2 |
|
3 |
/*
|
4 |
* @category Laurent
|
1 |
+
g<?php
|
2 |
|
3 |
/*
|
4 |
* @category Laurent
|
app/code/community/Laurent/OrderTickets/doc/CREATE-IN-BO.txt
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Creation of new ticket in BO:
|
2 |
+
|
3 |
+
- First step after clicking on button Create New, will be to select for which
|
4 |
+
order this ticket will be related too.
|
5 |
+
- Possibility of creating new ticket while viewing an order in BO
|
6 |
+
- Customer data will then be prefilled with the one from the order. But it can
|
7 |
+
be edited if needed
|
8 |
+
- Status will be put by default to Open but it can be changed if needed
|
9 |
+
- We can set what type of message we want to register: Message from customer or
|
10 |
+
message from the shop. By default this option will be put on message from the
|
11 |
+
shop
|
12 |
+
- New created message will not have to be reported by cron
|
app/code/community/Laurent/OrderTickets/doc/EVOLUTIONS.txt
CHANGED
@@ -16,6 +16,7 @@ specific action
|
|
16 |
- More straightforward relations between tickets for being able to indicate to
|
17 |
which message an answer is dedicated
|
18 |
|
19 |
-
- Possibility of
|
20 |
|
21 |
-
- Notifying customer by email about a new answer
|
|
16 |
- More straightforward relations between tickets for being able to indicate to
|
17 |
which message an answer is dedicated
|
18 |
|
19 |
+
- Possibility of editing/deleting every message in BO
|
20 |
|
21 |
+
- Notifying customer by email about a new answer
|
22 |
+
- Possibility for a customer to attach a file to his message
|
app/code/community/Laurent/OrderTickets/etc/adminhtml.xml
CHANGED
@@ -1,16 +1,12 @@
|
|
1 |
-
<?xml version="1.0"?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
<config>
|
3 |
-
<menu>
|
4 |
-
<sales>
|
5 |
-
<children>
|
6 |
-
<ordertickets translate="title">
|
7 |
-
<title>Order tickets</title>
|
8 |
-
<action>ordertickets/adminhtml_chat</action>
|
9 |
-
<sort_order>600</sort_order>
|
10 |
-
</ordertickets>
|
11 |
-
</children>
|
12 |
-
</sales>
|
13 |
-
</menu>
|
14 |
<acl>
|
15 |
<resources>
|
16 |
<admin>
|
@@ -19,6 +15,11 @@
|
|
19 |
<children>
|
20 |
<ordertickets translate="title" module="ordertickets">
|
21 |
<title>Order tickets</title>
|
|
|
|
|
|
|
|
|
|
|
22 |
</ordertickets>
|
23 |
</children>
|
24 |
</sales>
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<!--
|
3 |
+
@category Laurent
|
4 |
+
@package Tower
|
5 |
+
@copyright Copyright (c) 2012 Laurent Clouet
|
6 |
+
@license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
7 |
+
@author Laurent Clouet <laurent35240@gmail.com>
|
8 |
+
-->
|
9 |
<config>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
<acl>
|
11 |
<resources>
|
12 |
<admin>
|
15 |
<children>
|
16 |
<ordertickets translate="title" module="ordertickets">
|
17 |
<title>Order tickets</title>
|
18 |
+
<children>
|
19 |
+
<create translate="title" module="ordertickets">
|
20 |
+
<title>Create</title>
|
21 |
+
</create>
|
22 |
+
</children>
|
23 |
</ordertickets>
|
24 |
</children>
|
25 |
</sales>
|
app/code/community/Laurent/OrderTickets/etc/config.xml
CHANGED
@@ -1,8 +1,15 @@
|
|
1 |
<?xml version="1.0"?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Laurent_OrderTickets>
|
5 |
-
<version>1.0
|
6 |
</Laurent_OrderTickets>
|
7 |
</modules>
|
8 |
<global>
|
1 |
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
+
@category Laurent
|
4 |
+
@package Tower
|
5 |
+
@copyright Copyright (c) 2012 Laurent Clouet
|
6 |
+
@license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
7 |
+
@author Laurent Clouet <laurent35240@gmail.com>
|
8 |
+
-->
|
9 |
<config>
|
10 |
<modules>
|
11 |
<Laurent_OrderTickets>
|
12 |
+
<version>1.1.0</version>
|
13 |
</Laurent_OrderTickets>
|
14 |
</modules>
|
15 |
<global>
|
app/design/adminhtml/default/default/layout/ordertickets.xml
CHANGED
@@ -2,12 +2,60 @@
|
|
2 |
<layout>
|
3 |
<adminhtml_customer_edit>
|
4 |
<reference name="customer_edit_tabs">
|
5 |
-
<action method="addTab"
|
|
|
|
|
|
|
6 |
</reference>
|
7 |
</adminhtml_customer_edit>
|
8 |
<adminhtml_sales_order_view>
|
9 |
<reference name="sales_order_tabs">
|
10 |
-
<action method="addTab"
|
|
|
|
|
|
|
11 |
</reference>
|
12 |
</adminhtml_sales_order_view>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
</layout>
|
2 |
<layout>
|
3 |
<adminhtml_customer_edit>
|
4 |
<reference name="customer_edit_tabs">
|
5 |
+
<action method="addTab">
|
6 |
+
<name>customer_tickets</name>
|
7 |
+
<block>ordertickets/adminhtml_customer_edit_tab_tickets</block>
|
8 |
+
</action>
|
9 |
</reference>
|
10 |
</adminhtml_customer_edit>
|
11 |
<adminhtml_sales_order_view>
|
12 |
<reference name="sales_order_tabs">
|
13 |
+
<action method="addTab">
|
14 |
+
<name>order_tickets</name>
|
15 |
+
<block>ordertickets/adminhtml_order_view_tab_tickets</block>
|
16 |
+
</action>
|
17 |
</reference>
|
18 |
</adminhtml_sales_order_view>
|
19 |
+
<ordertickets_adminhtml_chat_index>
|
20 |
+
<reference name="content">
|
21 |
+
<block type="ordertickets/adminhtml_chat" name="chat_grid"></block>
|
22 |
+
</reference>
|
23 |
+
</ordertickets_adminhtml_chat_index>
|
24 |
+
<ordertickets_adminhtml_chat_view>
|
25 |
+
<reference name="content">
|
26 |
+
<block type="ordertickets/adminhtml_chat_view" name="chat_view"></block>
|
27 |
+
</reference>
|
28 |
+
<reference name="left">
|
29 |
+
<block type="ordertickets/adminhtml_chat_view_tabs" name="chat_view_tabs">
|
30 |
+
<block type="ordertickets/adminhtml_chat_view_tab_tickets" name="chat_view_tab_tickets" template="ordertickets/chat/view/tab/tickets.phtml"></block>
|
31 |
+
<action method="addTab">
|
32 |
+
<name>chat_view_tab_main</name>
|
33 |
+
<block>ordertickets/adminhtml_chat_view_tab_main</block>
|
34 |
+
</action>
|
35 |
+
<action method="addTab">
|
36 |
+
<name>chat_view_tab_tickets</name>
|
37 |
+
<block>chat_view_tab_tickets</block>
|
38 |
+
</action>
|
39 |
+
</block>
|
40 |
+
</reference>
|
41 |
+
</ordertickets_adminhtml_chat_view>
|
42 |
+
<ordertickets_adminhtml_create_index>
|
43 |
+
<reference name="content">
|
44 |
+
<block type="ordertickets/adminhtml_chat_create" name="chat_create">
|
45 |
+
<block type="ordertickets/adminhtml_chat_create_form" template="ordertickets/chat/create/form.phtml" name="form">
|
46 |
+
<block type="ordertickets/adminhtml_chat_create_order" template="ordertickets/chat/create/abstract.phtml" name="order">
|
47 |
+
<block type="ordertickets/adminhtml_chat_create_order_grid" name="grid" />
|
48 |
+
</block>
|
49 |
+
</block>
|
50 |
+
</block>
|
51 |
+
</reference>
|
52 |
+
</ordertickets_adminhtml_create_index>
|
53 |
+
<ordertickets_adminhtml_create_loadordergrid>
|
54 |
+
<block type="ordertickets/adminhtml_chat_create_order_grid" name="grid" output="toHtml" />
|
55 |
+
</ordertickets_adminhtml_create_loadordergrid>
|
56 |
+
<ordertickets_adminhtml_create_steptwo>
|
57 |
+
<reference name="content">
|
58 |
+
<block type="ordertickets/adminhtml_chat_create_steptwo" name="chat_create_steptwo"></block>
|
59 |
+
</reference>
|
60 |
+
</ordertickets_adminhtml_create_steptwo>
|
61 |
</layout>
|
app/design/adminhtml/default/default/template/ordertickets/chat/create/abstract.phtml
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @category Laurent
|
4 |
+
* @package Laurent_OrderTickets
|
5 |
+
* @copyright Copyright (c) 2012 Laurent Clouet
|
6 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
7 |
+
* @author Laurent Clouet <laurent35240@gmail.com>
|
8 |
+
* @see Laurent_OrderTickets_Block_Adminhtml_Chat_Create_Order
|
9 |
+
*/
|
10 |
+
|
11 |
+
?>
|
12 |
+
<div class="entry-edit">
|
13 |
+
<div class="entry-edit-head">
|
14 |
+
<h4 class="fieldset-legend <?php echo ($this->getHeaderCssClass()) ? $this->getHeaderCssClass().' icon-head' : '' ?>"><?php echo $this->getHeaderText() ?></h4>
|
15 |
+
</div>
|
16 |
+
<div class="fieldset">
|
17 |
+
<?php echo $this->getChildHtml('', true, true) ?>
|
18 |
+
</div>
|
19 |
+
</div>
|
app/design/adminhtml/default/default/template/ordertickets/chat/create/form.phtml
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @category Laurent
|
4 |
+
* @package Laurent_OrderTickets
|
5 |
+
* @copyright Copyright (c) 2012 Laurent Clouet
|
6 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
7 |
+
* @author Laurent Clouet <laurent35240@gmail.com>
|
8 |
+
* @see Laurent_OrderTickets_Block_Adminhtml_Chat_Create_Form
|
9 |
+
*/
|
10 |
+
|
11 |
+
?>
|
12 |
+
<form id="edit_form" action="<?php echo $this->getSaveUrl() ?>" method="post" >
|
13 |
+
<div id="orderticket-order" >
|
14 |
+
<?php echo $this->getChildHtml('order') ?>
|
15 |
+
</div>
|
16 |
+
</form>
|
app/design/adminhtml/default/default/template/ordertickets/order/view/tab/tickets.phtml
CHANGED
@@ -1,38 +1,40 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
-
* @see Laurent_OrderTickets_Block_Adminhtml_Order_View_Tab_Tickets
|
4 |
-
*/
|
5 |
?>
|
6 |
<div class="entry-edit">
|
7 |
<div class="entry-edit-head">
|
8 |
<h4><?php echo $this->__('Order tickets'); ?></h4>
|
9 |
</div>
|
10 |
<div class="fieldset fieldset-wide">
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
<?php echo $this->__('There is no ticket associated to this order')
|
36 |
-
|
|
|
|
|
|
|
|
|
37 |
</div>
|
38 |
</div>
|
1 |
<?php
|
2 |
+
/* @var $this Laurent_OrderTickets_Block_Adminhtml_Order_View_Tab_Tickets */
|
|
|
|
|
3 |
?>
|
4 |
<div class="entry-edit">
|
5 |
<div class="entry-edit-head">
|
6 |
<h4><?php echo $this->__('Order tickets'); ?></h4>
|
7 |
</div>
|
8 |
<div class="fieldset fieldset-wide">
|
9 |
+
<?php if ($this->hasChat()): ?>
|
10 |
+
<table cellspacing="0" class="form-list">
|
11 |
+
<tr>
|
12 |
+
<td class="label"><?php echo $this->__('Created at') ?></td>
|
13 |
+
<td class="value"><?php echo Mage::helper('core')->formatDate($this->getChat()->getCreatedAt(), 'full', true) ?></td>
|
14 |
+
</tr>
|
15 |
+
<tr>
|
16 |
+
<td class="label"><?php echo $this->__('Last answer date') ?></td>
|
17 |
+
<td class="value"><?php echo Mage::helper('core')->formatDate($this->getChat()->getLastAnswerDate(), 'full', true) ?></td>
|
18 |
+
</tr>
|
19 |
+
<tr>
|
20 |
+
<td class="label"><?php echo $this->__('Status') ?></td>
|
21 |
+
<td class="value"><?php echo $this->getChat()->getStatusLabel() ?></td>
|
22 |
+
</tr>
|
23 |
+
<tr>
|
24 |
+
<td class="label">
|
25 |
+
<a href="<?php echo $this->getChatViewUrl() ?>">
|
26 |
+
> <?php echo $this->__('Details') ?>
|
27 |
+
</a>
|
28 |
+
</td>
|
29 |
+
<td class="value"></td>
|
30 |
+
</tr>
|
31 |
+
</table>
|
32 |
+
<?php else: ?>
|
33 |
+
<?php echo $this->__('There is no ticket associated to this order') ?><br />
|
34 |
+
<button type="button" class="scalable add"
|
35 |
+
onclick="setLocation('<?php echo $this->getUrl('ordertickets/adminhtml_create/steptwo', array('order_id' => $this->getOrder()->getId()))?>')">
|
36 |
+
<span><?php echo $this->__('Create ticket') ?></span>
|
37 |
+
</button>
|
38 |
+
<?php endif; ?>
|
39 |
</div>
|
40 |
</div>
|
app/locale/fr_FR/Laurent_OrderTickets.csv
CHANGED
@@ -8,13 +8,19 @@
|
|
8 |
"Chat Information","Informations sur le chat"
|
9 |
"Chat was succesfully saved","Le chat a bien été enregistré"
|
10 |
"Closed","Clôturé"
|
|
|
|
|
|
|
|
|
11 |
"Created at","Créé le"
|
12 |
"Cron frequency","Fréquence du cron"
|
13 |
"Cron recipients","Destinataires de l'email du cron"
|
14 |
"Customer email","Email du client"
|
15 |
"Customer firstname","Prénom du client"
|
16 |
"Customer lastname","Nom du client"
|
|
|
17 |
"Details","Détails"
|
|
|
18 |
"Error while saving your message. Please try again","Erreur lors de l'enregistrement de votre message. Veuillez réessayer."
|
19 |
"Firstname","Prénom"
|
20 |
"General Information","Informations générales"
|
@@ -25,16 +31,26 @@
|
|
25 |
"Message date","Date du message"
|
26 |
"Message from %s send the","Message de %s envoyé le"
|
27 |
"Messages","Messages"
|
|
|
28 |
"Open","Ouvert"
|
29 |
"Order","Commande"
|
30 |
"Order #%s - Messages","Commande n°%s - Messages"
|
|
|
31 |
"Order tickets","Tickets de la commande"
|
32 |
"Orders tickets","Tickets des commandes"
|
|
|
33 |
"Pending answer","En attente de réponse"
|
|
|
34 |
"Send","Envoyer"
|
35 |
"Separate recipients with comma","Séparer les destinataires avec des virgules"
|
36 |
"Status","Statut"
|
|
|
|
|
37 |
"There is no ticket associated to this order","Il n'y a pas de ticket associé à cette commande"
|
38 |
"This chat does not exist","Cette discussion n'existe pas"
|
|
|
|
|
|
|
|
|
39 |
"Your message send the","Votre message envoyé le"
|
40 |
"Your message was successfully recorded","Votre message a bien été enregistré"
|
8 |
"Chat Information","Informations sur le chat"
|
9 |
"Chat was succesfully saved","Le chat a bien été enregistré"
|
10 |
"Closed","Clôturé"
|
11 |
+
"Create","Création"
|
12 |
+
"Create new order tickets","Créer un ticket pour une commande"
|
13 |
+
"Create new order tickets for order #%s","Créer un ticket pour la commande n°%s"
|
14 |
+
"Create ticket","Créer un ticket"
|
15 |
"Created at","Créé le"
|
16 |
"Cron frequency","Fréquence du cron"
|
17 |
"Cron recipients","Destinataires de l'email du cron"
|
18 |
"Customer email","Email du client"
|
19 |
"Customer firstname","Prénom du client"
|
20 |
"Customer lastname","Nom du client"
|
21 |
+
"Customer request","Demande du client"
|
22 |
"Details","Détails"
|
23 |
+
"Error while creating new order tickets: %s","Erreur lors de la création d'un nouveau ticket de commande : %s"
|
24 |
"Error while saving your message. Please try again","Erreur lors de l'enregistrement de votre message. Veuillez réessayer."
|
25 |
"Firstname","Prénom"
|
26 |
"General Information","Informations générales"
|
31 |
"Message date","Date du message"
|
32 |
"Message from %s send the","Message de %s envoyé le"
|
33 |
"Messages","Messages"
|
34 |
+
"No order selected for creating new order tickets.","Aucune commande n'a été sélectionnée pour créer un nouveau ticket."
|
35 |
"Open","Ouvert"
|
36 |
"Order","Commande"
|
37 |
"Order #%s - Messages","Commande n°%s - Messages"
|
38 |
+
"Order not found.","Commande inconnue."
|
39 |
"Order tickets","Tickets de la commande"
|
40 |
"Orders tickets","Tickets des commandes"
|
41 |
+
"Order tickets details","Détails du ticket de la commande"
|
42 |
"Pending answer","En attente de réponse"
|
43 |
+
"Please select an order","Veuillez sélectionner une commande"
|
44 |
"Send","Envoyer"
|
45 |
"Separate recipients with comma","Séparer les destinataires avec des virgules"
|
46 |
"Status","Statut"
|
47 |
+
"Store answer","Réponse du magasin"
|
48 |
+
"There is no data to save.","Il n'y a aucune donnée à sauvegarder."
|
49 |
"There is no ticket associated to this order","Il n'y a pas de ticket associé à cette commande"
|
50 |
"This chat does not exist","Cette discussion n'existe pas"
|
51 |
+
"Tickets already exist for this order. Please add new here.","Il existe déjà des tickets pour cette commande. Ajoutez les nouveaux ici."
|
52 |
+
"Tickets for order %s","Tickets de la commande %s"
|
53 |
+
"Ticket type","Type de ticket"
|
54 |
+
"Ticket has been correctly saved.","Le ticket a bien été enregistré."
|
55 |
"Your message send the","Votre message envoyé le"
|
56 |
"Your message was successfully recorded","Votre message a bien été enregistré"
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Order_tickets</name>
|
4 |
-
<version>1.0
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/afl-3.0.php">Academic Free License (AFL 3.0)</license>
|
7 |
<channel>community</channel>
|
@@ -9,13 +9,13 @@
|
|
9 |
<summary>Ticketing system to order</summary>
|
10 |
<description>Ticketing system to order:
|
11 |
- customer can add message to orders
|
12 |
-
- administrator can see
|
13 |
- a cron also exists to send a reminder email to administrator about new messages</description>
|
14 |
-
<notes>Possibility
|
15 |
<authors><author><name>Laurent Clouet</name><user>auto-converted</user><email>laurent35240@gmail.com</email></author></authors>
|
16 |
-
<date>2012-
|
17 |
-
<time>21:
|
18 |
-
<contents><target name="magecommunity"><dir name="Laurent"><dir name="OrderTickets"><dir name="Block"><dir name="Adminhtml"><dir name="Chat"><dir name="View"><dir name="Tab"><file name="Main.php" hash="
|
19 |
<compatible/>
|
20 |
<dependencies/>
|
21 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Order_tickets</name>
|
4 |
+
<version>1.1.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/afl-3.0.php">Academic Free License (AFL 3.0)</license>
|
7 |
<channel>community</channel>
|
9 |
<summary>Ticketing system to order</summary>
|
10 |
<description>Ticketing system to order:
|
11 |
- customer can add message to orders
|
12 |
+
- administrator can see these messages, reply to them, change status of a chat and create new messages
|
13 |
- a cron also exists to send a reminder email to administrator about new messages</description>
|
14 |
+
<notes>Possibility of creating new ticket in BO</notes>
|
15 |
<authors><author><name>Laurent Clouet</name><user>auto-converted</user><email>laurent35240@gmail.com</email></author></authors>
|
16 |
+
<date>2012-03-01</date>
|
17 |
+
<time>21:34:19</time>
|
18 |
+
<contents><target name="magecommunity"><dir name="Laurent"><dir name="OrderTickets"><dir name="Block"><dir name="Adminhtml"><dir name="Chat"><dir name="Create"><dir name="Order"><file name="Grid.php" hash="3eae3e84411fe25ef8cd9527de9ccd5e"/></dir><dir name="Steptwo"><file name="Form.php" hash="29a476319b5159084d5cf6e4d6db2472"/></dir><file name="Form.php" hash="6d2c2ec969e93f9293a02f973af6b6b7"/><file name="Order.php" hash="f8b1633a38bfbb4d7e393778d8ac7682"/><file name="Steptwo.php" hash="31d7d6f07b7049c5ff6cb564b71c3758"/></dir><dir name="View"><dir name="Tab"><file name="Main.php" hash="01c4e17cd2090fadb21b0ad32e3f23ae"/><file name="Tickets.php" hash="69859743a6a76c6cc365d8868bf1b23d"/></dir><file name="Form.php" hash="e8a4cc66db1c60ce2ae7da6da8d43a56"/><file name="Tabs.php" hash="ccd6226bff2e9a8f079d9f22396313eb"/></dir><file name="Create.php" hash="c9e05324c1373948577ac91cf5388ac2"/><file name="Grid.php" hash="1254b6c710f7c3c77a1e78c188372727"/><file name="View.php" hash="26f5062f80f8f0a63c15ad2089e3c866"/></dir><dir name="Customer"><dir name="Edit"><dir name="Tab"><file name="Tickets.php" hash="4be3b09ea9ad7265fc04ac82db5e8653"/></dir></dir></dir><dir name="Order"><dir name="View"><dir name="Tab"><file name="Tickets.php" hash="39efa19606e5a65d92a3cafa4e83f72e"/></dir></dir></dir><file name="Chat.php" hash="44389d41bc3926b8cdc86d1a373e3c45"/></dir><dir name="Order"><file name="Tabs.php" hash="362c07b1138c110dc270d26b1636f59b"/></dir><file name="Chat.php" hash="77536ef68fe6a21ee58c6672d78a0120"/></dir><dir name="Controller"><dir name="Adminhtml"><file name="Chat.php" hash="abe202058ba182ff65c9f811b6d2dd76"/></dir></dir><dir name="Helper"><file name="Data.php" hash="cb84c7e814bc6247d8f9fe5007e5e76b"/></dir><dir name="Model"><dir name="Config"><file name="Cron.php" hash="1c4e850b9f7c772390e89b2ce4971a86"/></dir><dir name="Mysql4"><dir name="Chat"><file name="Collection.php" hash="2bc9017a38a52d99f5af7716df5724a3"/></dir><dir name="Ticket"><file name="Collection.php" hash="83b7bd93adc9b8e8c2767aa814d38c08"/></dir><file name="Chat.php" hash="bf438bbfe69eb42c73ef6f1774c74ebe"/><file name="Ticket.php" hash="bb305039b5fc4640efce960d039979cd"/></dir><file name="Abstract.php" hash="5ec0482cd76b8273c555ddaaaa339b22"/><file name="Chat.php" hash="929046b23851405043fc169b4d4b020f"/><file name="Observer.php" hash="74716dbbfd538381a08aa6e68479c286"/><file name="Ticket.php" hash="acef6bed5b8e78250123c652f5a610ac"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="ChatController.php" hash="06f9d4808e4184d269940c9d50a424f4"/><file name="CreateController.php" hash="a5ab5f6647a58d8f44e0aefccac98616"/></dir><file name="ChatController.php" hash="0a3ed9336507aa7d06353a90c16443ba"/></dir><dir name="doc"><dir name="screeenshots"><file name="bo_order_tickets_tab.png" hash="ca1d6d13d53cc6a1c2af3c9b4bfa61a9"/><file name="bo_ticket_details.png" hash="7228ed41de8dfe0626bdcadbeae05f4b"/><file name="bo_ticket_tickets.png" hash="7491fb1b62a9352d1abe9bdbbd6bc845"/><file name="bo_tickets_grid.png" hash="1270d49ebe5bb6c93420ad8f7a9ba08f"/><file name="fo_tickets_on_order.png" hash="e8a7af6d00a3c19d8de4a66d022b2988"/></dir><file name="CREATE-IN-BO.txt" hash="020114172e426f95d7a1d733fcaaf49a"/><file name="EVOLUTIONS.txt" hash="f7916ea0d3d00122873970c678f026a6"/><file name="INSTALL.txt" hash="316098ba4cebfa621753e18d550880fe"/><file name="logo.png" hash="2a863ae353401ed20c679782b8e694bf"/><file name="logo.svg" hash="eb6d4bd165834e3fd308c421c6a6e9bd"/><file name="tables_scheme.graphml" hash="66b71ac524ad926ba5a4c110840f5b57"/><file name="tables_scheme.jpg" hash="c26b66b1381efa32c7140892e11932ba"/></dir><dir name="etc"><file name="adminhtml.xml" hash="83a3d5ef9d9fb1041b7e6dba8fa66dd5"/><file name="config.xml" hash="9609ddadd6f7b4b3007c281e8577f64d"/><file name="system.xml" hash="37739c5007d90bdf7ee8cbe567e98b6a"/></dir><dir name="sql"><dir name="ordertickets_setup"><file name="mysql4-install-0.1.0.php" hash="d0b81bbbd209f3741f3a1610197155f8"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="00f3ac0bcd2b467affce40b6f507cbcc"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="ordertickets.xml" hash="f3802540ee8a0f81c288dcfc19c0a589"/></dir><dir name="template"><dir name="ordertickets"><dir name="chat"><dir name="create"><file name="abstract.phtml" hash="19cbea5ac678b9197b08c6d9e8f55880"/><file name="form.phtml" hash="5a45de144e3f0b6b52a2e2ee19450413"/></dir><dir name="view"><dir name="tab"><file name="tickets.phtml" hash="8843f45ab15ab1159cd78daa9af1e5a5"/></dir></dir></dir><dir name="order"><dir name="view"><dir name="tab"><file name="tickets.phtml" hash="f3aa00997858afcf85373b8e0f1716db"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="ordertickets.xml" hash="ff2e6b3a75dcf121fdc5a11bc320d46f"/></dir><dir name="template"><dir name="ordertickets"><dir name="order"><file name="tabs.phtml" hash="3a146acbd5ef5af0a7c939f60ee4c383"/></dir><file name="chat.phtml" hash="2c87d7b906dd80ebdfd86dcf2aadd755"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Laurent_OrderTickets.xml" hash="46fdc0a685ad8d9144f4db4cb99f97fe"/></dir></target><target name="magelocale"><dir name="fr_FR"><file name="Laurent_OrderTickets.csv" hash="c8eafd1da65d14384b589d3db5c1537e"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><file name="ordertickets.css" hash="f009140fffa838b6b3a3bfe011cebaa2"/></dir></dir></dir></dir></target></contents>
|
19 |
<compatible/>
|
20 |
<dependencies/>
|
21 |
</package>
|