zendesk - Version 2.1.0

Version Notes

Sideload users instead of caching them all while making multiple API calls

Fixes
- Memory limit is reached when retrieving a huge number of users

Changes
- Removes the Priority field from the admin tickets grid

Download this release

Release Info

Developer Jason Smale
Extension zendesk
Version 2.1.0
Comparing to
See all releases


Code changes from version 2.0.9 to 2.1.0

app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Tab/Tickets/Grid/Abstract.php CHANGED
@@ -171,10 +171,11 @@ abstract class Zendesk_Zendesk_Block_Adminhtml_Dashboard_Tab_Tickets_Grid_Abstra
171
  'filter' => $filter,
172
  'index' => $index,
173
  'type' => $this->getColumnType($index),
 
174
  );
175
 
176
  $renderer = $this->getColumnRenderer($index);
177
-
178
  if($renderer !== null) {
179
  $column['renderer'] = $renderer;
180
  }
@@ -241,5 +242,18 @@ abstract class Zendesk_Zendesk_Block_Adminhtml_Dashboard_Tab_Tickets_Grid_Abstra
241
 
242
  return $js;
243
  }
244
-
 
 
 
 
 
 
 
 
 
 
 
 
 
245
  }
171
  'filter' => $filter,
172
  'index' => $index,
173
  'type' => $this->getColumnType($index),
174
+ 'users' => $this->getCollection()->users,
175
  );
176
 
177
  $renderer = $this->getColumnRenderer($index);
178
+
179
  if($renderer !== null) {
180
  $column['renderer'] = $renderer;
181
  }
242
 
243
  return $js;
244
  }
245
+
246
+ /**
247
+ * Override the parent method so that $this->_prepareCollection() is called first
248
+ *
249
+ * @return $this
250
+ */
251
+ protected function _prepareGrid()
252
+ {
253
+ $this->_prepareCollection();
254
+ $this->_prepareColumns();
255
+ $this->_prepareMassactionBlock();
256
+
257
+ return $this;
258
+ }
259
  }
app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Tab/Tickets/Grid/All.php CHANGED
@@ -55,6 +55,7 @@ class Zendesk_Zendesk_Block_Adminhtml_Dashboard_Tab_Tickets_Grid_All extends Zen
55
  'renderer' => 'zendesk/adminhtml_dashboard_tab_tickets_grid_renderer_email',
56
  'index' => 'requester_id',
57
  'sortable' => false,
 
58
  ));
59
 
60
  $this->addColumn('type', array(
@@ -75,15 +76,6 @@ class Zendesk_Zendesk_Block_Adminhtml_Dashboard_Tab_Tickets_Grid_All extends Zen
75
  'options' => Mage::helper('zendesk')->getStatusMap(),
76
  ));
77
 
78
- $this->addColumn('priority', array(
79
- 'header' => Mage::helper('zendesk')->__('Priority'),
80
- 'sortable' => true,
81
- 'width' => '100px',
82
- 'index' => 'priority',
83
- 'type' => 'options',
84
- 'options' => Mage::helper('zendesk')->getPriorityMap(),
85
- ));
86
-
87
  $this->addColumn('created_at', array(
88
  'header' => Mage::helper('zendesk')->__('Requested'),
89
  'sortable' => true,
55
  'renderer' => 'zendesk/adminhtml_dashboard_tab_tickets_grid_renderer_email',
56
  'index' => 'requester_id',
57
  'sortable' => false,
58
+ 'users' => $this->getCollection()->users,
59
  ));
60
 
61
  $this->addColumn('type', array(
76
  'options' => Mage::helper('zendesk')->getStatusMap(),
77
  ));
78
 
 
 
 
 
 
 
 
 
 
79
  $this->addColumn('created_at', array(
80
  'header' => Mage::helper('zendesk')->__('Requested'),
81
  'sortable' => true,
app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Tab/Tickets/Grid/Renderer/Email.php CHANGED
@@ -19,7 +19,7 @@
19
  class Zendesk_Zendesk_Block_Adminhtml_Dashboard_Tab_Tickets_Grid_Renderer_Email extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract {
20
 
21
  public function render(Varien_Object $row) {
22
- $users = Mage::registry('zendesk_users');
23
  $value = (int) $row->getData($this->getColumn()->getIndex());
24
 
25
  if ($users) {
19
  class Zendesk_Zendesk_Block_Adminhtml_Dashboard_Tab_Tickets_Grid_Renderer_Email extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract {
20
 
21
  public function render(Varien_Object $row) {
22
+ $users = $this->getColumn()->users;
23
  $value = (int) $row->getData($this->getColumn()->getIndex());
24
 
25
  if ($users) {
app/code/community/Zendesk/Zendesk/Block/Adminhtml/Dashboard/Tab/Tickets/Grid/Renderer/User.php CHANGED
@@ -19,19 +19,19 @@
19
  class Zendesk_Zendesk_Block_Adminhtml_Dashboard_Tab_Tickets_Grid_Renderer_User extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract {
20
 
21
  public function render(Varien_Object $row) {
22
- $users = Mage::registry('zendesk_users') ? Mage::registry('zendesk_users') : array();
23
  $value = (int) $row->getData($this->getColumn()->getIndex());
24
-
25
  $found = array_filter($users, function($user) use($value) {
26
  return (int) $user['id'] === $value;
27
  });
28
-
29
  if( count($found) ) {
30
  $user = array_shift($found);
31
-
32
  return $user['name'];
33
  }
34
-
35
  return '';
36
  }
37
 
19
  class Zendesk_Zendesk_Block_Adminhtml_Dashboard_Tab_Tickets_Grid_Renderer_User extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract {
20
 
21
  public function render(Varien_Object $row) {
22
+ $users = $this->getColumn()->users;
23
  $value = (int) $row->getData($this->getColumn()->getIndex());
24
+
25
  $found = array_filter($users, function($user) use($value) {
26
  return (int) $user['id'] === $value;
27
  });
28
+
29
  if( count($found) ) {
30
  $user = array_shift($found);
31
+
32
  return $user['name'];
33
  }
34
+
35
  return '';
36
  }
37
 
app/code/community/Zendesk/Zendesk/Helper/Data.php CHANGED
@@ -395,16 +395,6 @@ class Zendesk_Zendesk_Helper_Data extends Mage_Core_Helper_Abstract
395
  public function storeDependenciesInCachedRegistry() {
396
  $cache = Mage::app()->getCache();
397
 
398
- if (null == Mage::registry('zendesk_users')) {
399
- if( $cache->load('zendesk_users') === false) {
400
- $users = serialize( Mage::getModel('zendesk/api_users')->all() );
401
- $cache->save($users, 'zendesk_users', array('zendesk', 'zendesk_users'), 300);
402
- }
403
-
404
- $users = unserialize( $cache->load('zendesk_users') );
405
- Mage::register('zendesk_users', $users);
406
- }
407
-
408
  if (null == Mage::registry('zendesk_groups')) {
409
  if( $cache->load('zendesk_groups') === false) {
410
  $groups = serialize( Mage::getModel('zendesk/api_groups')->all() );
395
  public function storeDependenciesInCachedRegistry() {
396
  $cache = Mage::app()->getCache();
397
 
 
 
 
 
 
 
 
 
 
 
398
  if (null == Mage::registry('zendesk_groups')) {
399
  if( $cache->load('zendesk_groups') === false) {
400
  $groups = serialize( Mage::getModel('zendesk/api_groups')->all() );
app/code/community/Zendesk/Zendesk/Model/Api/Tickets.php CHANGED
@@ -82,20 +82,21 @@ class Zendesk_Zendesk_Model_Api_Tickets extends Zendesk_Zendesk_Model_Api_Abstra
82
 
83
  public function recent()
84
  {
85
- $response = $this->_call('tickets/recent.json');
86
 
87
  return $response['tickets'];
88
  }
89
 
90
  public function all()
91
  {
92
- $response = $this->_call('tickets.json');
93
  return $response['tickets'];
94
  }
95
 
96
  public function search($data)
97
  {
98
- return $this->_call('search.json', $data);
 
99
  }
100
 
101
  public function forOrder($orderIncrementId)
82
 
83
  public function recent()
84
  {
85
+ $response = $this->_call('tickets/recent.json', array('include' => 'users,groups'));
86
 
87
  return $response['tickets'];
88
  }
89
 
90
  public function all()
91
  {
92
+ $response = $this->_call('tickets.json', array('include' => 'users,groups'));
93
  return $response['tickets'];
94
  }
95
 
96
  public function search($data)
97
  {
98
+ $data['include'] = 'users,groups';
99
+ return $this->_call('search/incremental', $data);
100
  }
101
 
102
  public function forOrder($orderIncrementId)
app/code/community/Zendesk/Zendesk/Model/Api/Views.php CHANGED
@@ -39,6 +39,7 @@ class Zendesk_Zendesk_Model_Api_Views extends Zendesk_Zendesk_Model_Api_Abstract
39
  throw new InvalidArgumentException('View ID not provided');
40
  }
41
 
 
42
  $paramsString = count($params) ? '?' . http_build_query($params) : '';
43
 
44
  $response = $this->_call('views/' . $id . '/execute.json' . $paramsString);
39
  throw new InvalidArgumentException('View ID not provided');
40
  }
41
 
42
+ $params['include'] = 'users,groups';
43
  $paramsString = count($params) ? '?' . http_build_query($params) : '';
44
 
45
  $response = $this->_call('views/' . $id . '/execute.json' . $paramsString);
app/code/community/Zendesk/Zendesk/Model/Resource/Tickets/Collection.php CHANGED
@@ -23,15 +23,17 @@ class Zendesk_Zendesk_Model_Resource_Tickets_Collection extends Varien_Data_Coll
23
  protected $_viewColumns = array();
24
  protected static $_excludedColumns = array('score');
25
 
 
 
26
  public function __construct() {
27
  $this->_search = new Zendesk_Zendesk_Model_Search( Zendesk_Zendesk_Model_Search::TYPE_TICKET );
28
  }
29
 
30
  public function addFieldToFilter($fieldName, $condition = null) {
31
  if(is_string($condition) OR is_array($condition)) {
32
-
33
  $searchFields = array();
34
-
35
  switch($fieldName) {
36
  case 'subject':
37
  $searchFields[] = array(
@@ -82,7 +84,7 @@ class Zendesk_Zendesk_Model_Resource_Tickets_Collection extends Varien_Data_Coll
82
  case 'created_at':
83
  case 'updated_at':
84
  $fieldName = substr($fieldName, 0, -3);
85
-
86
  if( isset($condition['from']) AND Mage::helper('zendesk')->isValidDate($condition['from']) ) {
87
  $value = Mage::helper('zendesk')->getFormatedDataForAPI( $condition['from'] );
88
  $searchFields[] = array(
@@ -91,7 +93,7 @@ class Zendesk_Zendesk_Model_Resource_Tickets_Collection extends Varien_Data_Coll
91
  'operator' => '>'
92
  );
93
  }
94
-
95
  if( isset($condition['to']) AND Mage::helper('zendesk')->isValidDate($condition['to']) ) {
96
  $value = Mage::helper('zendesk')->getFormatedDataForAPI( $condition['to'] );
97
  $searchFields[] = array(
@@ -111,14 +113,14 @@ class Zendesk_Zendesk_Model_Resource_Tickets_Collection extends Varien_Data_Coll
111
 
112
  return $this;
113
  }
114
-
115
  public function getCollection(array $params = array()) {
116
  $searchQuery = array(
117
  'query' => $this->_search->getString(),
118
  );
119
-
120
  $params = array_merge($searchQuery, $params);
121
-
122
  $all = Mage::getModel('zendesk/api_tickets')->search($params);
123
 
124
  foreach ($all['results'] as $ticket) {
@@ -127,54 +129,61 @@ class Zendesk_Zendesk_Model_Resource_Tickets_Collection extends Varien_Data_Coll
127
  $this->addItem($obj);
128
  }
129
 
 
 
 
130
  $this->setPageSize($params['per_page']);
131
  $this->setCurPage($params['page']);
132
  $this->setOrder($params['sort_by'], $params['sort_order']);
133
  $this->_count = $all['count'];
134
-
135
  Mage::unregister('zendesk_tickets_all');
136
  Mage::register('zendesk_tickets_all', $all['count']);
137
-
138
  return $this;
139
  }
140
-
141
  public function getCollectionFromView($viewId, array $params = array()) {
142
  $view = Mage::getModel('zendesk/api_views')->execute($viewId, $params);
 
143
  if (is_array($view['rows'])) {
144
  foreach ($view['rows'] as $row) {
145
  $ticket = array_merge($row, $row['ticket']);
146
-
147
  $this->appendParamsWithoutIdPostfix($ticket, array('requester', 'assignee', 'group'));
148
-
149
  $obj = new Varien_Object();
150
  $obj->setData($ticket);
151
  $this->addItem($obj);
152
  }
153
  }
154
-
 
 
 
155
  $this->_viewColumns = $view['columns'] ? $view['columns'] : array();
156
 
157
  $this->setPageSize($params['per_page']);
158
  $this->setCurPage($params['page']);
159
  $this->setOrder($params['sort_by'], $params['sort_order']);
160
  $this->_count = $view['count'];
161
-
162
  Mage::unregister('zendesk_tickets_view_'.$viewId);
163
  Mage::register('zendesk_tickets_view_'.$viewId, $view['count']);
164
-
165
  return $this;
166
  }
167
-
168
  protected function appendParamsWithoutIdPostfix(& $item, array $params = array()) {
169
  foreach($params as $param) {
170
  $name = $param . '_id';
171
-
172
  if(isset($item[$name])) {
173
  $item[$param] = $item[$name];
174
  }
175
  }
176
  }
177
-
178
  public function getColumnsForView() {
179
  $excludedColumns = static::$_excludedColumns;
180
 
23
  protected $_viewColumns = array();
24
  protected static $_excludedColumns = array('score');
25
 
26
+ public $users = array();
27
+
28
  public function __construct() {
29
  $this->_search = new Zendesk_Zendesk_Model_Search( Zendesk_Zendesk_Model_Search::TYPE_TICKET );
30
  }
31
 
32
  public function addFieldToFilter($fieldName, $condition = null) {
33
  if(is_string($condition) OR is_array($condition)) {
34
+
35
  $searchFields = array();
36
+
37
  switch($fieldName) {
38
  case 'subject':
39
  $searchFields[] = array(
84
  case 'created_at':
85
  case 'updated_at':
86
  $fieldName = substr($fieldName, 0, -3);
87
+
88
  if( isset($condition['from']) AND Mage::helper('zendesk')->isValidDate($condition['from']) ) {
89
  $value = Mage::helper('zendesk')->getFormatedDataForAPI( $condition['from'] );
90
  $searchFields[] = array(
93
  'operator' => '>'
94
  );
95
  }
96
+
97
  if( isset($condition['to']) AND Mage::helper('zendesk')->isValidDate($condition['to']) ) {
98
  $value = Mage::helper('zendesk')->getFormatedDataForAPI( $condition['to'] );
99
  $searchFields[] = array(
113
 
114
  return $this;
115
  }
116
+
117
  public function getCollection(array $params = array()) {
118
  $searchQuery = array(
119
  'query' => $this->_search->getString(),
120
  );
121
+
122
  $params = array_merge($searchQuery, $params);
123
+
124
  $all = Mage::getModel('zendesk/api_tickets')->search($params);
125
 
126
  foreach ($all['results'] as $ticket) {
129
  $this->addItem($obj);
130
  }
131
 
132
+ // Set the users for this collection
133
+ $this->users = $all['users'];
134
+
135
  $this->setPageSize($params['per_page']);
136
  $this->setCurPage($params['page']);
137
  $this->setOrder($params['sort_by'], $params['sort_order']);
138
  $this->_count = $all['count'];
139
+
140
  Mage::unregister('zendesk_tickets_all');
141
  Mage::register('zendesk_tickets_all', $all['count']);
142
+
143
  return $this;
144
  }
145
+
146
  public function getCollectionFromView($viewId, array $params = array()) {
147
  $view = Mage::getModel('zendesk/api_views')->execute($viewId, $params);
148
+
149
  if (is_array($view['rows'])) {
150
  foreach ($view['rows'] as $row) {
151
  $ticket = array_merge($row, $row['ticket']);
152
+
153
  $this->appendParamsWithoutIdPostfix($ticket, array('requester', 'assignee', 'group'));
154
+
155
  $obj = new Varien_Object();
156
  $obj->setData($ticket);
157
  $this->addItem($obj);
158
  }
159
  }
160
+
161
+ // Set the users for this collection
162
+ $this->users = (isset($view['users'])) ? $view['users'] : array();
163
+
164
  $this->_viewColumns = $view['columns'] ? $view['columns'] : array();
165
 
166
  $this->setPageSize($params['per_page']);
167
  $this->setCurPage($params['page']);
168
  $this->setOrder($params['sort_by'], $params['sort_order']);
169
  $this->_count = $view['count'];
170
+
171
  Mage::unregister('zendesk_tickets_view_'.$viewId);
172
  Mage::register('zendesk_tickets_view_'.$viewId, $view['count']);
173
+
174
  return $this;
175
  }
176
+
177
  protected function appendParamsWithoutIdPostfix(& $item, array $params = array()) {
178
  foreach($params as $param) {
179
  $name = $param . '_id';
180
+
181
  if(isset($item[$name])) {
182
  $item[$param] = $item[$name];
183
  }
184
  }
185
  }
186
+
187
  public function getColumnsForView() {
188
  $excludedColumns = static::$_excludedColumns;
189
 
app/code/community/Zendesk/Zendesk/etc/config.xml CHANGED
@@ -19,7 +19,7 @@
19
  <config>
20
  <modules>
21
  <Zendesk_Zendesk>
22
- <version>2.0.9</version>
23
  </Zendesk_Zendesk>
24
  </modules>
25
  <zendesk>
19
  <config>
20
  <modules>
21
  <Zendesk_Zendesk>
22
+ <version>2.1.0</version>
23
  </Zendesk_Zendesk>
24
  </modules>
25
  <zendesk>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>zendesk</name>
4
- <version>2.0.9</version>
5
  <stability>stable</stability>
6
  <license>Apache Software License v2</license>
7
  <channel>community</channel>
@@ -17,14 +17,17 @@
17
  - Create support tickets from Contact Us requests&lt;br /&gt;&#xD;
18
  - Easily add the Web Widget to your site&#xD;
19
  </description>
20
- <notes>Bug fixes:&#xD;
21
- * Memory leak on admin order creation&#xD;
22
- * Ticket link always points to the agent backend&#xD;
23
- * Division by zero when customer has no orders</notes>
 
 
 
24
  <authors><author><name>Jason Smale</name><user>zendesk</user><email>jsmale@zendesk.com</email></author><author><name>Fontis</name><user>fontis</user><email>magento@fontis.com.au</email></author></authors>
25
- <date>2015-09-07</date>
26
- <time>08:06:16</time>
27
- <contents><target name="magecommunity"><dir name="Zendesk"><dir name="Zendesk"><dir name="Block"><dir name="Adminhtml"><dir name="Config"><dir name="Buttons"><file name="Generate.php" hash="7fa35e3e71b4bfb94f2dceddb19e86a0"/><file name="MagentoTest.php" hash="005323c12510f8ac07b46bede8df6349"/><file name="Signup.php" hash="f0d9ec9bc9a99f8643f1c2e6ac9989f2"/><file name="Sync.php" hash="d561b6fcbf69d284e866113e7d9afd44"/><file name="ZendeskTest.php" hash="83b67b5e66f8a9757ec424a72121133c"/></dir><file name="Link.php" hash="779827427e11db311b6e1de9d42818f2"/></dir><dir name="Create"><dir name="Customer"><dir name="Grid"><dir name="Renderer"><file name="Action.php" hash="4c599ec0b7210b32733318ca40b403f1"/></dir></dir><file name="Grid.php" hash="d5da59c8bd8f939a578d776648a1920c"/></dir><file name="Customer.php" hash="afe5c04c6ac7aa0cfaefded4ceacef37"/><dir name="Edit"><file name="Form.php" hash="c94acf32924a5140edeef7eae238aa4e"/></dir><file name="Edit.php" hash="fae5df1b1f5c5f524257bdf31bd569b4"/><dir name="Order"><dir name="Grid"><dir name="Renderer"><file name="Action.php" hash="7e9aa2cbd5600865fc77ce35fd6cb73a"/></dir></dir><file name="Grid.php" hash="0e4f085158ce9cc9d3566411b80d4592"/></dir><file name="Order.php" hash="857150ae3de0e3ded29ff972732060b3"/></dir><dir name="Dashboard"><file name="Grids.php" hash="70ed1b41f5a0ea5370ef2ec949117412"/><dir name="Tab"><dir name="Tickets"><dir name="Grid"><file name="Abstract.php" hash="4e89bd48c01f7e8549ef6cf410072f1d"/><file name="All.php" hash="b545bedb568c6ce6fe2696197b1729f5"/><file name="Massaction.php" hash="9d3ba44e00b40f4585e167c200b4bfa6"/><dir name="Renderer"><file name="Action.php" hash="53a3b787e3f473a86bd896a0f8d7992e"/><file name="Email.php" hash="0c435db5c2d0a5540e9b2269ff8d04f5"/><file name="Group.php" hash="814178c8eabb9d8444d2beadd1c07a84"/><file name="Type.php" hash="4f0cd9a88be44fbe7faa4e1f1ba55a38"/><file name="User.php" hash="1e838a9f5f87af3c6411c32c83c6fce6"/></dir><file name="View.php" hash="5b5320a258e838e680bfbde6a8491d88"/></dir></dir></dir></dir><file name="Dashboard.php" hash="3b2ff1e8355be7750f19b93dcfcb50ec"/><file name="Log.php" hash="da85421d71f2e50c1ef2384eedd5688a"/><file name="Menu.php" hash="0f6a56232356c46cd1da31c910985d3b"/><dir name="Order"><dir name="View"><file name="Tickets.php" hash="a83a2ad42801ddbddad2d761779a597b"/></dir></dir></dir><dir name="Customer"><dir name="Tickets"><file name="List.php" hash="eddae13553494e6689ba1736896327a7"/></dir><file name="Tickets.php" hash="619b990e39222018831a42b9bee3f07b"/></dir><file name="WebWidget.php" hash="292d16516b754c0ff0609ac3a8b8e5d2"/></dir><dir name="Helper"><file name="Data.php" hash="fba26b097514a3da62f18607459fa348"/><file name="JWT.php" hash="6610b92191eccedb8edcf993730c3dc0"/><file name="Log.php" hash="358c44a7a478dc6166208eb59ccd53fb"/></dir><file name="LICENSE.txt" hash="d9922043f61f536de5d4d7af831e7f73"/><dir name="Model"><dir name="Api"><file name="Abstract.php" hash="86a16008112175b4448e6abd729fce17"/><file name="Groups.php" hash="7c2694b292399083c8209d297a1e6746"/><file name="Requesters.php" hash="9cb06bc83c45b4874ee29750bfc91f0b"/><file name="SupportAddresses.php" hash="819b2e43055e97c58d80ab867c305db3"/><file name="Tickets.php" hash="4c2105374c6f428e30f319acabdfbbe2"/><file name="Users.php" hash="cb9fa80ef3b4f0a362a6f024df9d37be"/><file name="Views.php" hash="757dac0b088d8cac6d591d41b622b682"/></dir><file name="Observer.php" hash="8097cbd3fcd0352b1b317a55d97f5804"/><dir name="Resource"><dir name="Tickets"><file name="Collection.php" hash="d701073df94f1775b4b4f8cb28f435e3"/></dir><file name="Tickets.php" hash="8eed34a07f8d65e3680ba3e735a3a4a1"/></dir><dir name="Search"><file name="Field.php" hash="2961022121af96a4bc599141d82e6732"/></dir><file name="Search.php" hash="cac21f222a240bab7ea813023c4523f0"/><dir name="Source"><file name="Sortdir.php" hash="916a3319d52661df8a77438935bae56f"/><file name="Sortorder.php" hash="1c58234e5253987027c174aa192a2b5f"/><file name="Views.php" hash="1c7527338bf40082016a62e45fe44622"/></dir><file name="Tickets.php" hash="796782889d46c6bc658f3cd03ee74a1c"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="ZendeskController.php" hash="a0dccfd6cca44f9f00c26b5a4eaa46a8"/></dir><file name="ApiController.php" hash="84672fb7c6110ebadb9414e9c99ddfd0"/><dir name="Customer"><file name="TicketsController.php" hash="89164100a9640def75e94345e0fe1a14"/></dir><file name="IndexController.php" hash="f2caa943c4619d5add2149ef26443108"/><file name="SsoController.php" hash="2b99171f2c81573405d2258df835fa26"/></dir><dir name="data"><dir name="zendesk_setup"><file name="data-upgrade-1.3.0-1.4.0.php" hash="bcf2b209ab108ed2fc045176262d35ad"/><file name="data-upgrade-1.3.1-1.4.0.php" hash="bcf2b209ab108ed2fc045176262d35ad"/><file name="data-upgrade-1.4.2-2.0.0.php" hash="2b8f26c843de7435cc2bc53ad9e5cdb9"/><file name="data-upgrade-2.0.1-2.0.2.php" hash="2b8f26c843de7435cc2bc53ad9e5cdb9"/><file name="data-upgrade-2.0.5-2.0.6.php" hash="da5a78a75da35ec27e4cbea9704c9f36"/></dir></dir><dir name="etc"><file name="config.xml" hash="f58e38b1dbc7cd382574f536a66581b3"/><file name="jstranslator.xml" hash="3f3bd74e4b6484613126a2b2f7e34aac"/><file name="system.xml" hash="2f37034472542a19e7fa67e37bb05da4"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="zendesk.xml" hash="b824f0f7099d22a7f1c0a31d83cd9efc"/></dir><dir name="template"><dir name="zendesk"><file name="autocomplete.phtml" hash="01f42e0bbe3337c058ebc0a8832ddca9"/><dir name="config"><file name="button-generate.phtml" hash="21a25898c1fdea93d31b02ae91c1dd6f"/><file name="button-signup.phtml" hash="8871a0aa0bad7f85a7419853db8e0ce4"/><file name="button-sync.phtml" hash="0a79ffa3cb7021e2883844d37133af3e"/><file name="button-test-magento.phtml" hash="e86287ab32a2ee29ce44aad62249bcab"/><file name="button-test-zendesk.phtml" hash="434623e895e3044fe826639824f90dc9"/><file name="link.phtml" hash="ce55d65900113183e770b2905a31b0eb"/></dir><dir name="create"><file name="customer.phtml" hash="4195705109186f619780613f31d3799d"/><file name="order.phtml" hash="6565383d06a6428ce91238d90a1a0a1a"/></dir><dir name="customer"><file name="tickets.phtml" hash="8e0ecab043f1f988a51e57f848c51348"/></dir><dir name="dashboard"><file name="empty.phtml" hash="d0c30af25f17ff45215d210b48063a46"/><file name="index.phtml" hash="2ea21311d37450c55adff7b44601f00b"/></dir><file name="left-menu.phtml" hash="167b660cb9e7f0bf9fadfbd15a950c42"/><dir name="log"><file name="index.phtml" hash="c54c187ce5f09da6f56078cbfdf3ca29"/></dir><dir name="order"><file name="tickets.phtml" hash="4fe433f11c40708b0eb56aef5b0ce663"/></dir><dir name="tickets"><file name="tickets.phtml" hash="fc60966507ec30a2521413cb9b998770"/></dir><file name="translations.phtml" hash="663af777fa809b84ea9001afa740109f"/><dir name="widget"><file name="grid.phtml" hash="5e7beb2c7e37c9efe225ea3e80f1ffd7"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="zendesk.xml" hash="09058ecabaf99b91c7a57e12c74b0b0d"/></dir><dir name="template"><dir name="zendesk"><dir name="customer"><dir name="tickets"><file name="list.phtml" hash="70faead25efe6e55d4e45d0923ba55e2"/></dir><file name="tickets.phtml" hash="1a33c2429f13b16a98225b43e345ac37"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Zendesk_Zendesk.xml" hash="a630cf18c788dafb70d4c156a33eaa07"/></dir></target><target name="magelocale"><dir name="da_DA"><file name="Zendesk_Zendesk.csv" hash="7c20868dcfedb4be3d4c3acd688d0572"/></dir><dir name="de_DE"><file name="Zendesk_Zendesk.csv" hash="3892feb95f2173d3f934fe964708b75b"/></dir><dir name="en_CA"><file name="Zendesk_Zendesk.csv" hash="96f26f9fa0b6060ec5e47ceb5bfee923"/></dir><dir name="en_GB"><file name="Zendesk_Zendesk.csv" hash="6d38497b88ad5da6d2eafa6a7677fd1a"/></dir><dir name="en_US"><file name="Zendesk_Zendesk.csv" hash="82849b0c8a98daf56f6153bbccd8e957"/><file name="Zendesk_Zendesk.yml" hash="ac0019dc50c32ae173adb76cca430214"/></dir><dir name="es_419"><file name="Zendesk_Zendesk.csv" hash="59edae01cec3de6fd62228f391222529"/></dir><dir name="es_ES"><file name="Zendesk_Zendesk.csv" hash="a0c3268b8136b65ee5a5a961212323c0"/></dir><dir name="fr_CA"><file name="Zendesk_Zendesk.csv" hash="e8fba8cc289173cec7db70a527cd5ceb"/></dir><dir name="fr_FR"><file name="Zendesk_Zendesk.csv" hash="7a7609df060c812fb3c30c935b157a75"/></dir><dir name="it_IT"><file name="Zendesk_Zendesk.csv" hash="64de62c856de4c83a69dac292c2f04a7"/></dir><dir name="ja_JA"><file name="Zendesk_Zendesk.csv" hash="d0b39c43faa0a858cf89602d6424d652"/></dir><dir name="ja_JP"><file name="Zendesk_Zendesk.csv" hash="8d0ab1a39457a8ba2dcf986faf4eb742"/></dir><dir name="ko_KO"><file name="Zendesk_Zendesk.csv" hash="46a5072434274f035a34272c5fbf5042"/></dir><dir name="ko_KR"><file name="Zendesk_Zendesk.csv" hash="38aee57e5520d82f607999ce25ba5dc2"/></dir><dir name="nl_NL"><file name="Zendesk_Zendesk.csv" hash="985790d52273a6127c9e941dacc6a25d"/></dir><dir name="no_NO"><file name="Zendesk_Zendesk.csv" hash="455b220ca4d9a2362f78855032ad2482"/></dir><dir name="pt_BR"><file name="Zendesk_Zendesk.csv" hash="90568149b111a18cc7db9debf82f9dfc"/></dir><dir name="pt_PT"><file name="Zendesk_Zendesk.csv" hash="ab137db1555f19a61cfffef603bed878"/></dir><dir name="ru_RU"><file name="Zendesk_Zendesk.csv" hash="534791f7ae25eb537b9fa5c2be70d2d3"/></dir><dir name="sv_SV"><file name="Zendesk_Zendesk.csv" hash="7e0b337874ff0352c1020c56a0649b62"/></dir><dir name="tr_TR"><file name="Zendesk_Zendesk.csv" hash="a0c73068b30d7c1ab4f3100123415249"/></dir><dir name="uk_UK"><file name="Zendesk_Zendesk.csv" hash="cc4e4541ff307b51be5a089e6c5e0f38"/></dir><dir name="zh_CN"><file name="Zendesk_Zendesk.csv" hash="c8bfa3b4398c99ec8fd498b1635be1db"/></dir><dir name="zh_TW"><file name="Zendesk_Zendesk.csv" hash="2fff120a9ee211608f505400b60c733f"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="zendesk"><file name="button.png" hash="58e62edb7f4be46e3b29c0bb774c7ad7"/><file name="icon.png" hash="b5bfce535c987d1e9e604823ac4b3943"/><file name="zendesk-logo.png" hash="ad03156afe04a9dcc8fbf82e1913ac23"/><file name="zendesk-tab.png" hash="0f322d15c392528c212d6491732bc133"/><file name="zendesk.css" hash="b5db959c683981f11b9a83c8787fa461"/></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="zendesk"><file name="validation.js" hash="488b2fe21b2d34ce0814815e745771a0"/></dir></dir></target></contents>
28
  <compatible/>
29
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
30
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>zendesk</name>
4
+ <version>2.1.0</version>
5
  <stability>stable</stability>
6
  <license>Apache Software License v2</license>
7
  <channel>community</channel>
17
  - Create support tickets from Contact Us requests&lt;br /&gt;&#xD;
18
  - Easily add the Web Widget to your site&#xD;
19
  </description>
20
+ <notes>Sideload users instead of caching them all while making multiple API calls&#xD;
21
+ &#xD;
22
+ Fixes&#xD;
23
+ - Memory limit is reached when retrieving a huge number of users&#xD;
24
+ &#xD;
25
+ Changes&#xD;
26
+ - Removes the Priority field from the admin tickets grid</notes>
27
  <authors><author><name>Jason Smale</name><user>zendesk</user><email>jsmale@zendesk.com</email></author><author><name>Fontis</name><user>fontis</user><email>magento@fontis.com.au</email></author></authors>
28
+ <date>2015-09-09</date>
29
+ <time>06:04:59</time>
30
+ <contents><target name="magecommunity"><dir name="Zendesk"><dir name="Zendesk"><dir name="Block"><dir name="Adminhtml"><dir name="Config"><dir name="Buttons"><file name="Generate.php" hash="7fa35e3e71b4bfb94f2dceddb19e86a0"/><file name="MagentoTest.php" hash="005323c12510f8ac07b46bede8df6349"/><file name="Signup.php" hash="f0d9ec9bc9a99f8643f1c2e6ac9989f2"/><file name="Sync.php" hash="d561b6fcbf69d284e866113e7d9afd44"/><file name="ZendeskTest.php" hash="83b67b5e66f8a9757ec424a72121133c"/></dir><file name="Link.php" hash="779827427e11db311b6e1de9d42818f2"/></dir><dir name="Create"><dir name="Customer"><dir name="Grid"><dir name="Renderer"><file name="Action.php" hash="4c599ec0b7210b32733318ca40b403f1"/></dir></dir><file name="Grid.php" hash="d5da59c8bd8f939a578d776648a1920c"/></dir><file name="Customer.php" hash="afe5c04c6ac7aa0cfaefded4ceacef37"/><dir name="Edit"><file name="Form.php" hash="c94acf32924a5140edeef7eae238aa4e"/></dir><file name="Edit.php" hash="fae5df1b1f5c5f524257bdf31bd569b4"/><dir name="Order"><dir name="Grid"><dir name="Renderer"><file name="Action.php" hash="7e9aa2cbd5600865fc77ce35fd6cb73a"/></dir></dir><file name="Grid.php" hash="0e4f085158ce9cc9d3566411b80d4592"/></dir><file name="Order.php" hash="857150ae3de0e3ded29ff972732060b3"/></dir><dir name="Dashboard"><file name="Grids.php" hash="70ed1b41f5a0ea5370ef2ec949117412"/><dir name="Tab"><dir name="Tickets"><dir name="Grid"><file name="Abstract.php" hash="24ef0eb0b5f1a69a07123514f7572ac8"/><file name="All.php" hash="b3cd0bc57392c5d768aa062913d61587"/><file name="Massaction.php" hash="9d3ba44e00b40f4585e167c200b4bfa6"/><dir name="Renderer"><file name="Action.php" hash="53a3b787e3f473a86bd896a0f8d7992e"/><file name="Email.php" hash="6cddcfb5e5517c36f65d9f5a7c938bf2"/><file name="Group.php" hash="814178c8eabb9d8444d2beadd1c07a84"/><file name="Type.php" hash="4f0cd9a88be44fbe7faa4e1f1ba55a38"/><file name="User.php" hash="daae7903e33255421e5ad94eea7f9f31"/></dir><file name="View.php" hash="5b5320a258e838e680bfbde6a8491d88"/></dir></dir></dir></dir><file name="Dashboard.php" hash="3b2ff1e8355be7750f19b93dcfcb50ec"/><file name="Log.php" hash="da85421d71f2e50c1ef2384eedd5688a"/><file name="Menu.php" hash="0f6a56232356c46cd1da31c910985d3b"/><dir name="Order"><dir name="View"><file name="Tickets.php" hash="a83a2ad42801ddbddad2d761779a597b"/></dir></dir></dir><dir name="Customer"><dir name="Tickets"><file name="List.php" hash="eddae13553494e6689ba1736896327a7"/></dir><file name="Tickets.php" hash="619b990e39222018831a42b9bee3f07b"/></dir><file name="WebWidget.php" hash="292d16516b754c0ff0609ac3a8b8e5d2"/></dir><dir name="Helper"><file name="Data.php" hash="1396235bbd7bd575eecdabfa5d03b8bc"/><file name="JWT.php" hash="6610b92191eccedb8edcf993730c3dc0"/><file name="Log.php" hash="358c44a7a478dc6166208eb59ccd53fb"/></dir><file name="LICENSE.txt" hash="d9922043f61f536de5d4d7af831e7f73"/><dir name="Model"><dir name="Api"><file name="Abstract.php" hash="86a16008112175b4448e6abd729fce17"/><file name="Groups.php" hash="7c2694b292399083c8209d297a1e6746"/><file name="Requesters.php" hash="9cb06bc83c45b4874ee29750bfc91f0b"/><file name="SupportAddresses.php" hash="819b2e43055e97c58d80ab867c305db3"/><file name="Tickets.php" hash="827e7b286ba74629bb3effd24571864b"/><file name="Users.php" hash="cb9fa80ef3b4f0a362a6f024df9d37be"/><file name="Views.php" hash="e7198804886820e685afedfc65ebadab"/></dir><file name="Observer.php" hash="8097cbd3fcd0352b1b317a55d97f5804"/><dir name="Resource"><dir name="Tickets"><file name="Collection.php" hash="40a539ebc315cd476cbc345d8a1c2654"/></dir><file name="Tickets.php" hash="8eed34a07f8d65e3680ba3e735a3a4a1"/></dir><dir name="Search"><file name="Field.php" hash="2961022121af96a4bc599141d82e6732"/></dir><file name="Search.php" hash="cac21f222a240bab7ea813023c4523f0"/><dir name="Source"><file name="Sortdir.php" hash="916a3319d52661df8a77438935bae56f"/><file name="Sortorder.php" hash="1c58234e5253987027c174aa192a2b5f"/><file name="Views.php" hash="1c7527338bf40082016a62e45fe44622"/></dir><file name="Tickets.php" hash="796782889d46c6bc658f3cd03ee74a1c"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="ZendeskController.php" hash="a0dccfd6cca44f9f00c26b5a4eaa46a8"/></dir><file name="ApiController.php" hash="84672fb7c6110ebadb9414e9c99ddfd0"/><dir name="Customer"><file name="TicketsController.php" hash="89164100a9640def75e94345e0fe1a14"/></dir><file name="IndexController.php" hash="f2caa943c4619d5add2149ef26443108"/><file name="SsoController.php" hash="2b99171f2c81573405d2258df835fa26"/></dir><dir name="data"><dir name="zendesk_setup"><file name="data-upgrade-1.3.0-1.4.0.php" hash="bcf2b209ab108ed2fc045176262d35ad"/><file name="data-upgrade-1.3.1-1.4.0.php" hash="bcf2b209ab108ed2fc045176262d35ad"/><file name="data-upgrade-1.4.2-2.0.0.php" hash="2b8f26c843de7435cc2bc53ad9e5cdb9"/><file name="data-upgrade-2.0.1-2.0.2.php" hash="2b8f26c843de7435cc2bc53ad9e5cdb9"/><file name="data-upgrade-2.0.5-2.0.6.php" hash="da5a78a75da35ec27e4cbea9704c9f36"/></dir></dir><dir name="etc"><file name="config.xml" hash="9a54236e8732f2bb86c6beba0d3a9526"/><file name="jstranslator.xml" hash="3f3bd74e4b6484613126a2b2f7e34aac"/><file name="system.xml" hash="2f37034472542a19e7fa67e37bb05da4"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="zendesk.xml" hash="b824f0f7099d22a7f1c0a31d83cd9efc"/></dir><dir name="template"><dir name="zendesk"><file name="autocomplete.phtml" hash="01f42e0bbe3337c058ebc0a8832ddca9"/><dir name="config"><file name="button-generate.phtml" hash="21a25898c1fdea93d31b02ae91c1dd6f"/><file name="button-signup.phtml" hash="8871a0aa0bad7f85a7419853db8e0ce4"/><file name="button-sync.phtml" hash="0a79ffa3cb7021e2883844d37133af3e"/><file name="button-test-magento.phtml" hash="e86287ab32a2ee29ce44aad62249bcab"/><file name="button-test-zendesk.phtml" hash="434623e895e3044fe826639824f90dc9"/><file name="link.phtml" hash="ce55d65900113183e770b2905a31b0eb"/></dir><dir name="create"><file name="customer.phtml" hash="4195705109186f619780613f31d3799d"/><file name="order.phtml" hash="6565383d06a6428ce91238d90a1a0a1a"/></dir><dir name="customer"><file name="tickets.phtml" hash="8e0ecab043f1f988a51e57f848c51348"/></dir><dir name="dashboard"><file name="empty.phtml" hash="d0c30af25f17ff45215d210b48063a46"/><file name="index.phtml" hash="2ea21311d37450c55adff7b44601f00b"/></dir><file name="left-menu.phtml" hash="167b660cb9e7f0bf9fadfbd15a950c42"/><dir name="log"><file name="index.phtml" hash="c54c187ce5f09da6f56078cbfdf3ca29"/></dir><dir name="order"><file name="tickets.phtml" hash="4fe433f11c40708b0eb56aef5b0ce663"/></dir><dir name="tickets"><file name="tickets.phtml" hash="fc60966507ec30a2521413cb9b998770"/></dir><file name="translations.phtml" hash="663af777fa809b84ea9001afa740109f"/><dir name="widget"><file name="grid.phtml" hash="5e7beb2c7e37c9efe225ea3e80f1ffd7"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="zendesk.xml" hash="09058ecabaf99b91c7a57e12c74b0b0d"/></dir><dir name="template"><dir name="zendesk"><dir name="customer"><dir name="tickets"><file name="list.phtml" hash="70faead25efe6e55d4e45d0923ba55e2"/></dir><file name="tickets.phtml" hash="1a33c2429f13b16a98225b43e345ac37"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Zendesk_Zendesk.xml" hash="a630cf18c788dafb70d4c156a33eaa07"/></dir></target><target name="magelocale"><dir name="da_DA"><file name="Zendesk_Zendesk.csv" hash="7c20868dcfedb4be3d4c3acd688d0572"/></dir><dir name="de_DE"><file name="Zendesk_Zendesk.csv" hash="3892feb95f2173d3f934fe964708b75b"/></dir><dir name="en_CA"><file name="Zendesk_Zendesk.csv" hash="96f26f9fa0b6060ec5e47ceb5bfee923"/></dir><dir name="en_GB"><file name="Zendesk_Zendesk.csv" hash="6d38497b88ad5da6d2eafa6a7677fd1a"/></dir><dir name="en_US"><file name="Zendesk_Zendesk.csv" hash="82849b0c8a98daf56f6153bbccd8e957"/><file name="Zendesk_Zendesk.yml" hash="ac0019dc50c32ae173adb76cca430214"/></dir><dir name="es_419"><file name="Zendesk_Zendesk.csv" hash="59edae01cec3de6fd62228f391222529"/></dir><dir name="es_ES"><file name="Zendesk_Zendesk.csv" hash="a0c3268b8136b65ee5a5a961212323c0"/></dir><dir name="fr_CA"><file name="Zendesk_Zendesk.csv" hash="e8fba8cc289173cec7db70a527cd5ceb"/></dir><dir name="fr_FR"><file name="Zendesk_Zendesk.csv" hash="7a7609df060c812fb3c30c935b157a75"/></dir><dir name="it_IT"><file name="Zendesk_Zendesk.csv" hash="64de62c856de4c83a69dac292c2f04a7"/></dir><dir name="ja_JA"><file name="Zendesk_Zendesk.csv" hash="d0b39c43faa0a858cf89602d6424d652"/></dir><dir name="ja_JP"><file name="Zendesk_Zendesk.csv" hash="8d0ab1a39457a8ba2dcf986faf4eb742"/></dir><dir name="ko_KO"><file name="Zendesk_Zendesk.csv" hash="46a5072434274f035a34272c5fbf5042"/></dir><dir name="ko_KR"><file name="Zendesk_Zendesk.csv" hash="38aee57e5520d82f607999ce25ba5dc2"/></dir><dir name="nl_NL"><file name="Zendesk_Zendesk.csv" hash="985790d52273a6127c9e941dacc6a25d"/></dir><dir name="no_NO"><file name="Zendesk_Zendesk.csv" hash="455b220ca4d9a2362f78855032ad2482"/></dir><dir name="pt_BR"><file name="Zendesk_Zendesk.csv" hash="90568149b111a18cc7db9debf82f9dfc"/></dir><dir name="pt_PT"><file name="Zendesk_Zendesk.csv" hash="ab137db1555f19a61cfffef603bed878"/></dir><dir name="ru_RU"><file name="Zendesk_Zendesk.csv" hash="534791f7ae25eb537b9fa5c2be70d2d3"/></dir><dir name="sv_SV"><file name="Zendesk_Zendesk.csv" hash="7e0b337874ff0352c1020c56a0649b62"/></dir><dir name="tr_TR"><file name="Zendesk_Zendesk.csv" hash="a0c73068b30d7c1ab4f3100123415249"/></dir><dir name="uk_UK"><file name="Zendesk_Zendesk.csv" hash="cc4e4541ff307b51be5a089e6c5e0f38"/></dir><dir name="zh_CN"><file name="Zendesk_Zendesk.csv" hash="c8bfa3b4398c99ec8fd498b1635be1db"/></dir><dir name="zh_TW"><file name="Zendesk_Zendesk.csv" hash="2fff120a9ee211608f505400b60c733f"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="zendesk"><file name="button.png" hash="58e62edb7f4be46e3b29c0bb774c7ad7"/><file name="icon.png" hash="b5bfce535c987d1e9e604823ac4b3943"/><file name="zendesk-logo.png" hash="ad03156afe04a9dcc8fbf82e1913ac23"/><file name="zendesk-tab.png" hash="0f322d15c392528c212d6491732bc133"/><file name="zendesk.css" hash="b5db959c683981f11b9a83c8787fa461"/></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="zendesk"><file name="validation.js" hash="488b2fe21b2d34ce0814815e745771a0"/></dir></dir></target></contents>
31
  <compatible/>
32
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
33
  </package>