Youstice - Version 1.5.5

Version Notes

Retail version of the youstice resolution system package

Download this release

Release Info

Developer Youstice
Extension Youstice
Version 1.5.5
Comparing to
See all releases


Code changes from version 1.3.9 to 1.5.5

Files changed (41) hide show
  1. app/code/community/Youstice/YousticeResolutionSystem/SDK/Api.php +85 -10
  2. app/code/community/Youstice/YousticeResolutionSystem/SDK/Helpers/HelperFunctions.php +1 -1
  3. app/code/community/Youstice/YousticeResolutionSystem/SDK/Helpers/LanguageCodes.php +1 -1
  4. app/code/community/Youstice/YousticeResolutionSystem/SDK/Local.php +127 -73
  5. app/code/community/Youstice/YousticeResolutionSystem/SDK/LocalInterface.php +1 -1
  6. app/code/community/Youstice/YousticeResolutionSystem/SDK/Providers/SessionProviderInterface.php +1 -1
  7. app/code/community/Youstice/YousticeResolutionSystem/SDK/Remote.php +1 -1
  8. app/code/community/Youstice/YousticeResolutionSystem/SDK/Reports/BaseReport.php +3 -3
  9. app/code/community/Youstice/YousticeResolutionSystem/SDK/Reports/OrderReport.php +1 -1
  10. app/code/community/Youstice/YousticeResolutionSystem/SDK/Reports/ProductReport.php +1 -1
  11. app/code/community/Youstice/YousticeResolutionSystem/SDK/Reports/WebReport.php +1 -1
  12. app/code/community/Youstice/YousticeResolutionSystem/SDK/Request.php +1 -1
  13. app/code/community/Youstice/YousticeResolutionSystem/SDK/ShopItem.php +44 -14
  14. app/code/community/Youstice/YousticeResolutionSystem/SDK/ShopOrder.php +7 -7
  15. app/code/community/Youstice/YousticeResolutionSystem/SDK/ShopProduct.php +1 -1
  16. app/code/community/Youstice/YousticeResolutionSystem/SDK/SimpleApi.php +1 -1
  17. app/code/community/Youstice/YousticeResolutionSystem/SDK/Tools.php +20 -2
  18. app/code/community/Youstice/YousticeResolutionSystem/SDK/Translator.php +1 -1
  19. app/code/community/Youstice/YousticeResolutionSystem/SDK/Widgets/OrderDetail.php +1 -1
  20. app/code/community/Youstice/YousticeResolutionSystem/SDK/Widgets/OrderDetailButton.php +1 -1
  21. app/code/community/Youstice/YousticeResolutionSystem/SDK/Widgets/OrderReportButton.php +1 -1
  22. app/code/community/Youstice/YousticeResolutionSystem/SDK/Widgets/OrdersPage.php +2 -2
  23. app/code/community/Youstice/YousticeResolutionSystem/SDK/Widgets/ProductReportButton.php +1 -1
  24. app/code/community/Youstice/YousticeResolutionSystem/SDK/Widgets/ReportClaimsForm.php +1 -1
  25. app/code/community/Youstice/YousticeResolutionSystem/SDK/Widgets/ShowButtons.php +1 -1
  26. app/code/community/Youstice/YousticeResolutionSystem/SDK/Widgets/WebReportButton.php +1 -1
  27. app/code/community/Youstice/YousticeResolutionSystem/SDK/languageStrings/cs.php +43 -46
  28. app/code/community/Youstice/YousticeResolutionSystem/SDK/languageStrings/de.php +19 -21
  29. app/code/community/Youstice/YousticeResolutionSystem/SDK/languageStrings/en.php +11 -13
  30. app/code/community/Youstice/YousticeResolutionSystem/SDK/languageStrings/es.php +18 -21
  31. app/code/community/Youstice/YousticeResolutionSystem/SDK/languageStrings/fr.php +18 -21
  32. app/code/community/Youstice/YousticeResolutionSystem/SDK/languageStrings/pt.php +20 -23
  33. app/code/community/Youstice/YousticeResolutionSystem/SDK/languageStrings/ru.php +19 -22
  34. app/code/community/Youstice/YousticeResolutionSystem/SDK/languageStrings/sk.php +18 -18
  35. app/code/community/Youstice/YousticeResolutionSystem/controllers/IndexController.php +4 -3
  36. app/code/community/Youstice/YousticeResolutionSystem/etc/config.xml +1 -1
  37. app/code/community/Youstice/YousticeResolutionSystem/sql/youstice_setup/mysql4-install-0.9.8.php +9 -2
  38. app/design/adminhtml/default/default/template/youstice/adminForm.phtml +16 -1
  39. package.xml +4 -4
  40. skin/adminhtml/default/default/yousticeAdmin.css +9 -1
  41. skin/frontend/base/default/css/youstice.css +10 -6
app/code/community/Youstice/YousticeResolutionSystem/SDK/Api.php CHANGED
@@ -4,7 +4,7 @@
4
  * Main Youstice class.
5
  *
6
  * @author Youstice
7
- * @copyright (c) 2014, Youstice
8
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
9
  */
10
 
@@ -87,6 +87,15 @@ class Youstice_Api {
87
  */
88
  protected $shop_software_version;
89
 
 
 
 
 
 
 
 
 
 
90
  /**
91
  *
92
  * @param array $db_credentials associative array for PDO connection with must fields: driver, host, name, user, pass
@@ -148,12 +157,14 @@ class Youstice_Api {
148
  * @return YousticeApi
149
  */
150
  public function runWithoutUpdates()
151
- {
152
  $this->checkShopSells();
153
 
154
- if ($this->session === null)
155
  $this->setSession(new Youstice_Providers_SessionProvider());
156
 
 
 
157
  $this->remote = new Youstice_Remote($this->api_key, $this->use_sandbox, $this->language, $this->shop_sells, $this->shop_software_type, $this->shop_software_version);
158
 
159
  return $this;
@@ -184,6 +195,9 @@ class Youstice_Api {
184
  if (!trim($this->api_key))
185
  return "Invalid shop's api key";
186
 
 
 
 
187
  $widget = new Youstice_Widgets_ReportClaimsForm($this->language);
188
 
189
  return $widget->toString();
@@ -194,6 +208,9 @@ class Youstice_Api {
194
  if (!trim($this->api_key))
195
  return '';
196
 
 
 
 
197
  $reports_count = count($this->local->getReportsByUser($this->user_id));
198
 
199
  $widget = new Youstice_Widgets_ShowButtons($this->language, $reports_count > 0);
@@ -204,9 +221,12 @@ class Youstice_Api {
204
  public function getOrdersPageWidgetHtml($webReportHref, $shopName, array $shopOrders)
205
  {
206
  if (!trim($this->api_key))
 
 
 
207
  return '';
208
 
209
- if(empty($shopOrders))
210
  return '';
211
 
212
  $widget = new Youstice_Widgets_OrdersPage($this->language, $webReportHref, $shopName, $shopOrders, $this);
@@ -224,13 +244,15 @@ class Youstice_Api {
224
  if (!trim($this->api_key))
225
  return '';
226
 
227
- if($isOnOrderHistoryPage)
 
 
 
228
  $claim_url .= (parse_url($claim_url, PHP_URL_QUERY) ? '&' : '?') . 'ordersPage';
229
 
230
  try {
231
  $html = $this->remote->getLogoWidgetData($this->local->getChangedReportStatusesCount(), $claim_url, $this->user_id !== null);
232
- }
233
- catch(Exception $e) {
234
  return '';
235
  }
236
 
@@ -247,6 +269,9 @@ class Youstice_Api {
247
  if (!trim($this->api_key))
248
  return '';
249
 
 
 
 
250
  $report = $this->local->getWebReport($this->user_id);
251
 
252
  //exists, just redirect
@@ -275,6 +300,9 @@ class Youstice_Api {
275
  if (!trim($this->api_key))
276
  return '';
277
 
 
 
 
278
  $report = $this->local->getProductReport($product_id, $order_id);
279
 
280
  //exists, just redirect
@@ -302,6 +330,9 @@ class Youstice_Api {
302
  if (!trim($this->api_key))
303
  return '';
304
 
 
 
 
305
  $report = $this->local->getOrderReport($order_id);
306
 
307
  //exists, just redirect
@@ -328,6 +359,9 @@ class Youstice_Api {
328
  if (!trim($this->api_key))
329
  return '';
330
 
 
 
 
331
  $products = $order->getProducts();
332
  $product_codes = array();
333
 
@@ -350,6 +384,9 @@ class Youstice_Api {
350
  if (!trim($this->api_key))
351
  return '';
352
 
 
 
 
353
  $products = $order->getProducts();
354
  $product_codes = array();
355
 
@@ -505,9 +542,13 @@ class Youstice_Api {
505
  /**
506
  * Create necessary table
507
  * @return boolean success
 
508
  */
509
  public function install()
510
  {
 
 
 
511
  return $this->local->install();
512
  }
513
 
@@ -547,6 +588,9 @@ class Youstice_Api {
547
  if (Youstice_Tools::strlen($this->api_key) == 0)
548
  return false;
549
 
 
 
 
550
  $last_often_update = 0;
551
  if ($this->session->get('last_often_update'))
552
  $last_often_update = $this->session->get('last_often_update');
@@ -730,6 +774,34 @@ class Youstice_Api {
730
  throw new InvalidArgumentException('Shop selling "' . $this->shop_sells . '" is not allowed.');
731
  }
732
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
733
  /**
734
  * Set on which software is eshop running
735
  * @param string $shop_type "prestashop|magento|ownSoftware"
@@ -761,11 +833,14 @@ class Youstice_Api {
761
 
762
  }
763
 
764
- class Youstice_InvalidApiKeyException extends Exception {
 
 
765
 
 
 
766
  }
767
 
768
  class Youstice_FailedRemoteConnectionException extends Exception {
769
-
770
  }
771
-
4
  * Main Youstice class.
5
  *
6
  * @author Youstice
7
+ * @copyright (c) 2015, Youstice
8
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
9
  */
10
 
87
  */
88
  protected $shop_software_version;
89
 
90
+ /*
91
+ * Is true when curl, PDO and fileinfo are available
92
+ */
93
+ protected $is_properly_installed = false;
94
+
95
+ const CURL_NOT_INSTALLED = 1;
96
+ const PDO_NOT_INSTALLED = 2;
97
+ const FINFO_NOT_INSTALLED = 3;
98
+
99
  /**
100
  *
101
  * @param array $db_credentials associative array for PDO connection with must fields: driver, host, name, user, pass
157
  * @return YousticeApi
158
  */
159
  public function runWithoutUpdates()
160
+ {
161
  $this->checkShopSells();
162
 
163
+ if (!$this->session)
164
  $this->setSession(new Youstice_Providers_SessionProvider());
165
 
166
+ $this->is_properly_installed = $this->checkIsProperlyInstalled();
167
+
168
  $this->remote = new Youstice_Remote($this->api_key, $this->use_sandbox, $this->language, $this->shop_sells, $this->shop_software_type, $this->shop_software_version);
169
 
170
  return $this;
195
  if (!trim($this->api_key))
196
  return "Invalid shop's api key";
197
 
198
+ if (!$this->is_properly_installed)
199
+ return 'Youstice plugin is not properly installed';
200
+
201
  $widget = new Youstice_Widgets_ReportClaimsForm($this->language);
202
 
203
  return $widget->toString();
208
  if (!trim($this->api_key))
209
  return '';
210
 
211
+ if (!$this->is_properly_installed)
212
+ return '';
213
+
214
  $reports_count = count($this->local->getReportsByUser($this->user_id));
215
 
216
  $widget = new Youstice_Widgets_ShowButtons($this->language, $reports_count > 0);
221
  public function getOrdersPageWidgetHtml($webReportHref, $shopName, array $shopOrders)
222
  {
223
  if (!trim($this->api_key))
224
+ return 'No orders have been found';
225
+
226
+ if (!$this->is_properly_installed)
227
  return '';
228
 
229
+ if (empty($shopOrders))
230
  return '';
231
 
232
  $widget = new Youstice_Widgets_OrdersPage($this->language, $webReportHref, $shopName, $shopOrders, $this);
244
  if (!trim($this->api_key))
245
  return '';
246
 
247
+ if (!$this->is_properly_installed)
248
+ return '';
249
+
250
+ if ($isOnOrderHistoryPage)
251
  $claim_url .= (parse_url($claim_url, PHP_URL_QUERY) ? '&' : '?') . 'ordersPage';
252
 
253
  try {
254
  $html = $this->remote->getLogoWidgetData($this->local->getChangedReportStatusesCount(), $claim_url, $this->user_id !== null);
255
+ } catch (Exception $e) {
 
256
  return '';
257
  }
258
 
269
  if (!trim($this->api_key))
270
  return '';
271
 
272
+ if (!$this->is_properly_installed)
273
+ return '';
274
+
275
  $report = $this->local->getWebReport($this->user_id);
276
 
277
  //exists, just redirect
300
  if (!trim($this->api_key))
301
  return '';
302
 
303
+ if (!$this->is_properly_installed)
304
+ return '';
305
+
306
  $report = $this->local->getProductReport($product_id, $order_id);
307
 
308
  //exists, just redirect
330
  if (!trim($this->api_key))
331
  return '';
332
 
333
+ if (!$this->is_properly_installed)
334
+ return '';
335
+
336
  $report = $this->local->getOrderReport($order_id);
337
 
338
  //exists, just redirect
359
  if (!trim($this->api_key))
360
  return '';
361
 
362
+ if (!$this->is_properly_installed)
363
+ return '';
364
+
365
  $products = $order->getProducts();
366
  $product_codes = array();
367
 
384
  if (!trim($this->api_key))
385
  return '';
386
 
387
+ if (!$this->is_properly_installed)
388
+ return '';
389
+
390
  $products = $order->getProducts();
391
  $product_codes = array();
392
 
542
  /**
543
  * Create necessary table
544
  * @return boolean success
545
+ * @throws
546
  */
547
  public function install()
548
  {
549
+ //raise exceptions
550
+ $this->checkIsProperlyInstalledWithExceptions();
551
+
552
  return $this->local->install();
553
  }
554
 
588
  if (Youstice_Tools::strlen($this->api_key) == 0)
589
  return false;
590
 
591
+ if (!$this->is_properly_installed)
592
+ return false;
593
+
594
  $last_often_update = 0;
595
  if ($this->session->get('last_often_update'))
596
  $last_often_update = $this->session->get('last_often_update');
774
  throw new InvalidArgumentException('Shop selling "' . $this->shop_sells . '" is not allowed.');
775
  }
776
 
777
+ /**
778
+ * Check if curl, PDO and fileinfo are available
779
+ * @return boolean
780
+ */
781
+ public function checkIsProperlyInstalled()
782
+ {
783
+ if ((!in_array(ini_get('allow_url_fopen'), array('On', 'on', '1')) && !function_exists('curl_exec')) || !extension_loaded('PDO') || !function_exists('finfo_open') || !$this->local)
784
+ return false;
785
+
786
+ return true;
787
+ }
788
+
789
+ /**
790
+ * Check if curl, PDO and fileinfo are available
791
+ * @throws Youstice_ApiException
792
+ */
793
+ public function checkIsProperlyInstalledWithExceptions()
794
+ {
795
+ if (!in_array(ini_get('allow_url_fopen'), array('On', 'on', '1')) && !function_exists('curl_exec'))
796
+ throw new Youstice_ApiException($this->t('Youstice: cURL is not installed, please install it.'), self::CURL_NOT_INSTALLED);
797
+
798
+ if (!extension_loaded('PDO'))
799
+ throw new Youstice_ApiException($this->t('Youstice: PDO is not installed, please install it.'), self::PDO_NOT_INSTALLED);
800
+
801
+ if (!function_exists('finfo_open'))
802
+ throw new Youstice_ApiException($this->t('Youstice: PECL finfo is not installed, please install it.'), self::FINFO_NOT_INSTALLED);
803
+ }
804
+
805
  /**
806
  * Set on which software is eshop running
807
  * @param string $shop_type "prestashop|magento|ownSoftware"
833
 
834
  }
835
 
836
+ class Youstice_ApiException extends Exception {
837
+
838
+ }
839
 
840
+ class Youstice_InvalidApiKeyException extends Exception {
841
+
842
  }
843
 
844
  class Youstice_FailedRemoteConnectionException extends Exception {
845
+
846
  }
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/Helpers/HelperFunctions.php CHANGED
@@ -3,7 +3,7 @@
3
  * Various helpers for the Youstice API
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
3
  * Various helpers for the Youstice API
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/Helpers/LanguageCodes.php CHANGED
@@ -3,7 +3,7 @@
3
  * Class handling all ISO 639-1 language codes
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
3
  * Class handling all ISO 639-1 language codes
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/Local.php CHANGED
@@ -1,9 +1,10 @@
1
  <?php
 
2
  /**
3
  * Handles localy stored reports
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
@@ -26,52 +27,96 @@ class Youstice_Local implements Youstice_LocalInterface {
26
  */
27
  public function __construct(array $db)
28
  {
29
- $connection_string = $this->getConnectionString($db);
 
 
 
30
 
31
- try {
32
- $pdo = new PDO($connection_string, $db['user'], $db['pass'], array(
33
- PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
34
- PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
35
- PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
36
- ));
37
- } catch (PDOException $e) {
38
- throw new InvalidArgumentException('PDOException was thrown while connecting');
 
 
 
 
 
 
 
 
 
 
39
  }
40
 
41
- $this->connection = $pdo;
42
- $this->table_prefix = isset($db['prefix']) ? $db['prefix'] : '';
43
- $this->db_driver = $db['driver'];
 
 
 
 
 
 
 
44
  }
45
-
46
- private function getConnectionString(array $db)
47
  {
48
  if (isset($db['host']) && isset($db['socket']))
49
  throw new Exception("Host and socket can't be specified simultaneously");
50
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  if ($db['driver'] == 'mysqli')
52
  $db['driver'] = 'mysql';
53
-
54
  //host can be socket, check first param of mysql_connect
55
- if(isset($db['host']) && $db['host'][0] == ':')
56
  {
57
  $db['socket'] = $db['host'];
58
  $db['host'] = null;
59
  }
60
 
61
- $connection_string = $db['driver'].':dbname='.$db['name'];
62
-
63
- if($db['driver'] == 'mysql')
64
  $connection_string .= ';charset=utf8';
65
 
66
  if (isset($db['host']))
67
- $connection_string .= ';host='.$db['host'];
68
 
69
  if (isset($db['port']))
70
- $connection_string .= ';port='.$db['port'];
71
 
72
  if (isset($db['socket']))
73
- $connection_string .= ';unix_socket='.$db['socket'];
74
-
75
  return $connection_string;
76
  }
77
 
@@ -94,15 +139,15 @@ class Youstice_Local implements Youstice_LocalInterface {
94
  */
95
  public function getCachedRemoteReportLink($code)
96
  {
97
- if ($this->session->get('report'.$code.'remoteLink'))
98
- return $this->session->get('report'.$code.'remoteLink');
99
 
100
  return null;
101
  }
102
 
103
  public function setCachedRemoteReportLink($code, $link)
104
  {
105
- $this->session->set('report'.$code.'remoteLink', $link);
106
  }
107
 
108
  public function getChangedReportStatusesCount()
@@ -117,9 +162,9 @@ class Youstice_Local implements Youstice_LocalInterface {
117
 
118
  public function getWebReport($user_id)
119
  {
120
- $code = 'WEB_REPORT__'.$user_id;
121
 
122
- $result = $this->getReport($code.'__%');
123
 
124
  return new Youstice_Reports_WebReport($result);
125
  }
@@ -129,22 +174,21 @@ class Youstice_Local implements Youstice_LocalInterface {
129
  $code = $product_id;
130
 
131
  if (isset($order_code))
132
- $code = $order_code.'__'.$product_id;
133
 
134
- $result = $this->getReport($code.'__%');
135
 
136
  return new Youstice_Reports_ProductReport($result);
137
  }
138
 
139
  public function getOrderReport($order_code, $product_codes = array())
140
  {
141
- $result = $this->getReport('^'.$order_code.'__[0-9]*$', true);
142
 
143
  if (count($product_codes))
144
  {
145
  //get products
146
- foreach ($product_codes as $code)
147
- {
148
  $found_report = $this->getProductReport($code);
149
 
150
  if ($found_report->exists())
@@ -154,21 +198,34 @@ class Youstice_Local implements Youstice_LocalInterface {
154
 
155
  return new Youstice_Reports_OrderReport($result);
156
  }
157
-
158
- protected function getReport($searchValue, $useRegexp = false) {
159
- if(isset($this->cached[$searchValue]))
 
160
  return $this->cached[$searchValue];
161
-
162
  $searchBy = $useRegexp ? "REGEXP" : "LIKE";
163
 
164
  //try to find filled report
165
- $query_filled = $this->prepareRegexpQuery('SELECT * FROM '.$this->table_prefix.'yrs_reports WHERE code '.$searchBy.' ? AND status IS NOT NULL ORDER BY created_at DESC, code DESC LIMIT 1');
 
 
 
 
 
 
166
  $query_res = $this->executeQueryFetch($query_filled, array($searchValue));
167
 
168
  //otherwise select last
169
- if(!$query_res) {
170
- $query_last = $this->prepareRegexpQuery('SELECT * FROM '.$this->table_prefix.'yrs_reports WHERE code '.$searchBy.' ? ORDER BY created_at DESC, code DESC LIMIT 1');
171
-
 
 
 
 
 
 
172
  $query_res = $this->executeQueryFetch($query_last, array($searchValue));
173
  }
174
 
@@ -177,34 +234,34 @@ class Youstice_Local implements Youstice_LocalInterface {
177
 
178
  public function createWebReport($user_id)
179
  {
180
- return $this->createReport('WEB_REPORT__'.$user_id, $user_id);
181
  }
182
 
183
  public function createReport($code, $user_id, $remaining_time = 0)
184
  {
185
  $this->connection->beginTransaction();
186
  $this->lockTable();
187
-
188
- $query_count = $this->prepareRegexpQuery('SELECT count(1) count FROM '.$this->table_prefix.'yrs_reports WHERE code REGEXP ?');
189
- $result_count = $this->executeQueryFetch($query_count, array('^'.$code.'__[0-9]*$'));
190
 
191
- $code .= '__'.($result_count['count'] + 1);
 
192
 
193
- $stmt = $this->connection->prepare('INSERT INTO '.$this->table_prefix.'yrs_reports
 
 
194
  (code, user_id, status, remaining_time, created_at, updated_at) VALUES (?, ?, null, ?, NOW(), NOW())');
195
 
196
  try {
197
  $stmt->execute(array($code, $user_id, $remaining_time));
198
-
199
  $this->unlockTable();
200
  $this->connection->commit();
201
  } catch (PDOException $e) {
202
  $this->connection->rollBack();
203
-
204
- if ((int)$e->getCode() === 23000)
205
- throw new Exception('Report with code '.$code.' already exists');
206
  else
207
- throw new Exception ('Creating report failed');
208
  }
209
 
210
  return $code;
@@ -215,24 +272,24 @@ class Youstice_Local implements Youstice_LocalInterface {
215
  if (!trim($status))
216
  return;
217
 
218
- $stmt = $this->connection->prepare('UPDATE '.$this->table_prefix.'yrs_reports SET status = ?, updated_at = NOW() WHERE code = ?');
219
 
220
  return $stmt->execute(array($status, $code));
221
  }
222
 
223
  public function updateReportRemainingTime($code, $time)
224
  {
225
- if ((int)$time < 0 || $time == null)
226
  return;
227
 
228
- $stmt = $this->connection->prepare('UPDATE '.$this->table_prefix.'yrs_reports SET remaining_time = ?, updated_at = NOW() WHERE code = ?');
229
 
230
  return $stmt->execute(array($time, $code));
231
  }
232
 
233
  public function getReportsByUser($user_id)
234
  {
235
- $stmt = $this->connection->prepare('SELECT * FROM '.$this->table_prefix.'yrs_reports WHERE user_id = ?');
236
  $stmt->execute(array($user_id));
237
 
238
  return $stmt->fetchAll();
@@ -246,30 +303,29 @@ class Youstice_Local implements Youstice_LocalInterface {
246
 
247
  return $stmt->fetch();
248
  }
249
-
250
  protected function prepareRegexpQuery($query = '')
251
  {
252
- if($this->db_driver === 'pgsql')
253
  $query = str_replace('REGEXP', '~', $query);
254
 
255
  return $query;
256
  }
257
-
258
  protected function lockTable()
259
  {
260
  if ($this->db_driver == 'pgsql')
261
  {
262
- $this->connection->exec('LOCK TABLE '.$this->table_prefix.'yrs_reports IN ACCESS EXCLUSIVE MODE');
263
- }
264
- else
265
  {
266
- $this->connection->exec('LOCK TABLES '.$this->table_prefix.'yrs_reports WRITE');
267
  }
268
  }
269
-
270
  protected function unlockTable()
271
  {
272
- if($this->db_driver !== 'pgsql')
273
  $this->connection->exec('UNLOCK TABLES');
274
  }
275
 
@@ -278,8 +334,7 @@ class Youstice_Local implements Youstice_LocalInterface {
278
  $queries = $this->installPrepareQueries();
279
 
280
  $installed = 0;
281
- foreach ($queries as $query)
282
- {
283
  if ($this->db_driver == 'pgsql')
284
  {
285
  $query = str_replace('remaining_time INTEGER DEFAULT NULL', 'remaining_time INTEGER', $query);
@@ -300,7 +355,7 @@ class Youstice_Local implements Youstice_LocalInterface {
300
 
301
  protected function installPrepareQueries()
302
  {
303
- return array('CREATE TABLE IF NOT EXISTS '.$this->table_prefix."yrs_reports(\n
304
  code VARCHAR(255) NOT NULL DEFAULT '',
305
  user_id int(10) unsigned NOT NULL,
306
  status VARCHAR(200) NULL,
@@ -313,11 +368,10 @@ class Youstice_Local implements Youstice_LocalInterface {
313
 
314
  public function uninstall()
315
  {
316
- if($this->session !== null)
317
  $this->session->destroy();
318
-
319
- return $this->connection->query('DROP TABLE IF EXISTS `'.$this->table_prefix.'yrs_reports`');
320
  }
321
 
322
  }
323
-
1
  <?php
2
+
3
  /**
4
  * Handles localy stored reports
5
  *
6
  * @author Youstice
7
+ * @copyright (c) 2015, Youstice
8
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
9
  */
10
 
27
  */
28
  public function __construct(array $db)
29
  {
30
+ $this->connection = $this->getPdoConnection($db);
31
+ $this->table_prefix = isset($db['prefix']) ? $db['prefix'] : '';
32
+ $this->db_driver = $this->connection->getAttribute(PDO::ATTR_DRIVER_NAME);
33
+ }
34
 
35
+ private function getPdoConnection(array $db)
36
+ {
37
+ $connection_strings = $this->getConnectionStrings($db);
38
+
39
+ if (!is_array($connection_strings))
40
+ return $this->connect($db, $connection_strings);
41
+
42
+ //test multiple drivers
43
+ foreach ($connection_strings as $connection_string) {
44
+ $pdo = null;
45
+ try {
46
+ $pdo = $this->connect($db, $connection_string);
47
+ } catch (Exception $e) {
48
+
49
+ }
50
+
51
+ if ($pdo !== null)
52
+ return $pdo;
53
  }
54
 
55
+ throw new InvalidArgumentException('Unable to connect to database');
56
+ }
57
+
58
+ private function connect(array $db, $connection_string)
59
+ {
60
+ return new PDO($connection_string, $db['user'], $db['pass'], array(
61
+ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
62
+ PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
63
+ PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
64
+ ));
65
  }
66
+
67
+ private function getConnectionStrings(array $db)
68
  {
69
  if (isset($db['host']) && isset($db['socket']))
70
  throw new Exception("Host and socket can't be specified simultaneously");
71
 
72
+ if (isset($db['driver']))
73
+ return $this->_getConnectionString($db);
74
+
75
+ // no driver specified, guess it
76
+ $drivers = PDO::getAvailableDrivers();
77
+
78
+ if (empty($drivers))
79
+ throw new InvalidArgumentException('No PDO driver found');
80
+
81
+ $connectionStrings = [];
82
+
83
+ foreach ($drivers as $driver) {
84
+ $db['driver'] = $driver;
85
+ $connectionStrings[] = $this->_getConnectionString($db);
86
+ }
87
+
88
+ return $connectionStrings;
89
+ }
90
+
91
+ private function _getConnectionString(array $db)
92
+ {
93
+ if (strpos($db['driver'], 'pdo_') !== false)
94
+ $db['driver'] = str_replace('pdo_', '', $db['driver']);
95
+
96
  if ($db['driver'] == 'mysqli')
97
  $db['driver'] = 'mysql';
98
+
99
  //host can be socket, check first param of mysql_connect
100
+ if (isset($db['host']) && $db['host'][0] == ':')
101
  {
102
  $db['socket'] = $db['host'];
103
  $db['host'] = null;
104
  }
105
 
106
+ $connection_string = $db['driver'] . ':dbname=' . $db['name'];
107
+
108
+ if ($db['driver'] == 'mysql')
109
  $connection_string .= ';charset=utf8';
110
 
111
  if (isset($db['host']))
112
+ $connection_string .= ';host=' . $db['host'];
113
 
114
  if (isset($db['port']))
115
+ $connection_string .= ';port=' . $db['port'];
116
 
117
  if (isset($db['socket']))
118
+ $connection_string .= ';unix_socket=' . $db['socket'];
119
+
120
  return $connection_string;
121
  }
122
 
139
  */
140
  public function getCachedRemoteReportLink($code)
141
  {
142
+ if ($this->session->get('report' . $code . 'remoteLink'))
143
+ return $this->session->get('report' . $code . 'remoteLink');
144
 
145
  return null;
146
  }
147
 
148
  public function setCachedRemoteReportLink($code, $link)
149
  {
150
+ $this->session->set('report' . $code . 'remoteLink', $link);
151
  }
152
 
153
  public function getChangedReportStatusesCount()
162
 
163
  public function getWebReport($user_id)
164
  {
165
+ $code = 'WEB_REPORT__' . $user_id;
166
 
167
+ $result = $this->getReport($code . '__%');
168
 
169
  return new Youstice_Reports_WebReport($result);
170
  }
174
  $code = $product_id;
175
 
176
  if (isset($order_code))
177
+ $code = $order_code . '__' . $product_id;
178
 
179
+ $result = $this->getReport($code . '__%');
180
 
181
  return new Youstice_Reports_ProductReport($result);
182
  }
183
 
184
  public function getOrderReport($order_code, $product_codes = array())
185
  {
186
+ $result = $this->getReport('^' . $order_code . '__[0-9]*$', true);
187
 
188
  if (count($product_codes))
189
  {
190
  //get products
191
+ foreach ($product_codes as $code) {
 
192
  $found_report = $this->getProductReport($code);
193
 
194
  if ($found_report->exists())
198
 
199
  return new Youstice_Reports_OrderReport($result);
200
  }
201
+
202
+ protected function getReport($searchValue, $useRegexp = false)
203
+ {
204
+ if (isset($this->cached[$searchValue]))
205
  return $this->cached[$searchValue];
206
+
207
  $searchBy = $useRegexp ? "REGEXP" : "LIKE";
208
 
209
  //try to find filled report
210
+ $query_filled = $this->prepareRegexpQuery(
211
+ 'SELECT code, user_id, status, remaining_time, UNIX_TIMESTAMP(created_at) created_at, UNIX_TIMESTAMP(updated_at) updated_at '
212
+ . 'FROM ' . $this->table_prefix . 'yrs_reports '
213
+ . 'WHERE code ' . $searchBy . ' ? AND status IS NOT NULL '
214
+ . 'ORDER BY created_at DESC, code DESC '
215
+ . 'LIMIT 1');
216
+
217
  $query_res = $this->executeQueryFetch($query_filled, array($searchValue));
218
 
219
  //otherwise select last
220
+ if (!$query_res)
221
+ {
222
+ $query_last = $this->prepareRegexpQuery(
223
+ 'SELECT code, user_id, status, remaining_time, UNIX_TIMESTAMP(created_at) created_at, UNIX_TIMESTAMP(updated_at) updated_at '
224
+ . 'FROM ' . $this->table_prefix . 'yrs_reports '
225
+ . 'WHERE code ' . $searchBy . ' ? '
226
+ . 'ORDER BY created_at DESC, code DESC '
227
+ . 'LIMIT 1');
228
+
229
  $query_res = $this->executeQueryFetch($query_last, array($searchValue));
230
  }
231
 
234
 
235
  public function createWebReport($user_id)
236
  {
237
+ return $this->createReport('WEB_REPORT__' . $user_id, $user_id);
238
  }
239
 
240
  public function createReport($code, $user_id, $remaining_time = 0)
241
  {
242
  $this->connection->beginTransaction();
243
  $this->lockTable();
 
 
 
244
 
245
+ $query_count = $this->prepareRegexpQuery('SELECT count(1) count FROM ' . $this->table_prefix . 'yrs_reports WHERE code REGEXP ?');
246
+ $result_count = $this->executeQueryFetch($query_count, array('^' . $code . '__[0-9]*$'));
247
 
248
+ $code .= '__' . ($result_count['count'] + 1);
249
+
250
+ $stmt = $this->connection->prepare('INSERT INTO ' . $this->table_prefix . 'yrs_reports
251
  (code, user_id, status, remaining_time, created_at, updated_at) VALUES (?, ?, null, ?, NOW(), NOW())');
252
 
253
  try {
254
  $stmt->execute(array($code, $user_id, $remaining_time));
255
+
256
  $this->unlockTable();
257
  $this->connection->commit();
258
  } catch (PDOException $e) {
259
  $this->connection->rollBack();
260
+
261
+ if ((int) $e->getCode() === 23000)
262
+ throw new Exception('Report with code ' . $code . ' already exists');
263
  else
264
+ throw new Exception('Creating report failed');
265
  }
266
 
267
  return $code;
272
  if (!trim($status))
273
  return;
274
 
275
+ $stmt = $this->connection->prepare('UPDATE ' . $this->table_prefix . 'yrs_reports SET status = ?, updated_at = NOW() WHERE code = ?');
276
 
277
  return $stmt->execute(array($status, $code));
278
  }
279
 
280
  public function updateReportRemainingTime($code, $time)
281
  {
282
+ if ((int) $time < 0 || $time == null)
283
  return;
284
 
285
+ $stmt = $this->connection->prepare('UPDATE ' . $this->table_prefix . 'yrs_reports SET remaining_time = ?, updated_at = NOW() WHERE code = ?');
286
 
287
  return $stmt->execute(array($time, $code));
288
  }
289
 
290
  public function getReportsByUser($user_id)
291
  {
292
+ $stmt = $this->connection->prepare('SELECT * FROM ' . $this->table_prefix . 'yrs_reports WHERE user_id = ?');
293
  $stmt->execute(array($user_id));
294
 
295
  return $stmt->fetchAll();
303
 
304
  return $stmt->fetch();
305
  }
306
+
307
  protected function prepareRegexpQuery($query = '')
308
  {
309
+ if ($this->db_driver === 'pgsql')
310
  $query = str_replace('REGEXP', '~', $query);
311
 
312
  return $query;
313
  }
314
+
315
  protected function lockTable()
316
  {
317
  if ($this->db_driver == 'pgsql')
318
  {
319
+ $this->connection->exec('LOCK TABLE ' . $this->table_prefix . 'yrs_reports IN ACCESS EXCLUSIVE MODE');
320
+ } else
 
321
  {
322
+ $this->connection->exec('LOCK TABLES ' . $this->table_prefix . 'yrs_reports WRITE');
323
  }
324
  }
325
+
326
  protected function unlockTable()
327
  {
328
+ if ($this->db_driver !== 'pgsql')
329
  $this->connection->exec('UNLOCK TABLES');
330
  }
331
 
334
  $queries = $this->installPrepareQueries();
335
 
336
  $installed = 0;
337
+ foreach ($queries as $query) {
 
338
  if ($this->db_driver == 'pgsql')
339
  {
340
  $query = str_replace('remaining_time INTEGER DEFAULT NULL', 'remaining_time INTEGER', $query);
355
 
356
  protected function installPrepareQueries()
357
  {
358
+ return array('CREATE TABLE IF NOT EXISTS ' . $this->table_prefix . "yrs_reports(
359
  code VARCHAR(255) NOT NULL DEFAULT '',
360
  user_id int(10) unsigned NOT NULL,
361
  status VARCHAR(200) NULL,
368
 
369
  public function uninstall()
370
  {
371
+ if ($this->session !== null)
372
  $this->session->destroy();
373
+
374
+ return $this->connection->query('DROP TABLE IF EXISTS `' . $this->table_prefix . 'yrs_reports`');
375
  }
376
 
377
  }
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/LocalInterface.php CHANGED
@@ -3,7 +3,7 @@
3
  * Handles localy stored reports
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
3
  * Handles localy stored reports
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/Providers/SessionProviderInterface.php CHANGED
@@ -3,7 +3,7 @@
3
  * Interface for session providers.
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
3
  * Interface for session providers.
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/Remote.php CHANGED
@@ -4,7 +4,7 @@
4
  * Handles remote API communication
5
  *
6
  * @author Youstice
7
- * @copyright (c) 2014, Youstice
8
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
9
  */
10
 
4
  * Handles remote API communication
5
  *
6
  * @author Youstice
7
+ * @copyright (c) 2015, Youstice
8
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
9
  */
10
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/Reports/BaseReport.php CHANGED
@@ -3,7 +3,7 @@
3
  * Represents base class for orders
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
@@ -51,7 +51,7 @@ class Youstice_Reports_BaseReport {
51
  if (count($this->data) && isset($this->data['status']))
52
  return $this->data['status'];
53
 
54
- if(isset($this->data['created_at']) && strtotime($this->data['created_at']) + 600 > time())
55
  return 'Problem reported';
56
 
57
  return null;
@@ -64,7 +64,7 @@ class Youstice_Reports_BaseReport {
64
  if (!$remaining_time || !isset($this->data['updated_at']))
65
  return 0;
66
 
67
- $actual_remaining_time = $remaining_time - (time() - strtotime($this->data['updated_at']));
68
 
69
  return $actual_remaining_time >= 0 ? $actual_remaining_time : 0;
70
  }
3
  * Represents base class for orders
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
51
  if (count($this->data) && isset($this->data['status']))
52
  return $this->data['status'];
53
 
54
+ if(isset($this->data['created_at']) && $this->data['created_at'] + 600 > time())
55
  return 'Problem reported';
56
 
57
  return null;
64
  if (!$remaining_time || !isset($this->data['updated_at']))
65
  return 0;
66
 
67
+ $actual_remaining_time = $remaining_time - (time() - $this->data['updated_at']);
68
 
69
  return $actual_remaining_time >= 0 ? $actual_remaining_time : 0;
70
  }
app/code/community/Youstice/YousticeResolutionSystem/SDK/Reports/OrderReport.php CHANGED
@@ -3,7 +3,7 @@
3
  * Represents one order report.
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
3
  * Represents one order report.
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/Reports/ProductReport.php CHANGED
@@ -3,7 +3,7 @@
3
  * Represents one product report.
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
3
  * Represents one product report.
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/Reports/WebReport.php CHANGED
@@ -3,7 +3,7 @@
3
  * Represents one web report.
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
3
  * Represents one web report.
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/Request.php CHANGED
@@ -3,7 +3,7 @@
3
  * Base communication interface
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
3
  * Base communication interface
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/ShopItem.php CHANGED
@@ -3,7 +3,7 @@
3
  * Class representing one shop item (order or product)
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
@@ -22,6 +22,20 @@ abstract class Youstice_ShopItem {
22
  'products' => array(),
23
  'href' => ''
24
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
  public function __construct($description, $name = '', $currency = 'EUR', $price = 0.0, $id = null, $delivery_date = null,
27
  $order_date = null, $image = null, $other_info = '', $products = array())
@@ -203,8 +217,7 @@ abstract class Youstice_ShopItem {
203
  if (Youstice_Tools::strlen($image) > 0)
204
  {
205
  $image_data = $this->resize($image, 300, 300);
206
- $a = 'base64_encode';
207
- $this->data['image'] = $a($image_data);
208
  }
209
 
210
  return $this;
@@ -248,12 +261,13 @@ abstract class Youstice_ShopItem {
248
  if ($image_data === false)
249
  throw new Exception('Image does not exists');
250
 
 
 
251
  //correct image
252
  if (Youstice_Tools::strlen($image_data) > 0)
253
  {
254
- $image_data = $this->resize($image_data, 300, 300);
255
- $a = 'base64_encode';
256
- return $a($image_data);
257
  }
258
 
259
  return null;
@@ -262,7 +276,7 @@ abstract class Youstice_ShopItem {
262
  throw new Exception('Image path is not readable');
263
  }
264
 
265
- protected function resize($image_data, $width = 100, $height = 100, $stretch = false)
266
  {
267
  $file = tempnam(sys_get_temp_dir(), md5(time().'YRS'));
268
 
@@ -273,9 +287,10 @@ abstract class Youstice_ShopItem {
273
  fwrite($file_handle, $image_data);
274
  fclose($file_handle);
275
 
276
- $mime = $this->getMimeType($file);
 
277
 
278
- switch ($mime)
279
  {
280
  case 'image/bmp':
281
  $handle = imagecreatefromwbmp($file);
@@ -290,7 +305,7 @@ abstract class Youstice_ShopItem {
290
  $handle = imagecreatefrompng($file);
291
  break;
292
  default:
293
- throw new Exception('Unsupported image type '.$mime);
294
  }
295
 
296
  $dimensions = getimagesize($file);
@@ -372,10 +387,25 @@ abstract class Youstice_ShopItem {
372
 
373
  protected function getMimeType($filename)
374
  {
375
- $finfo = finfo_open(FILEINFO_MIME_TYPE);
376
- $mime = finfo_file($finfo, $filename);
377
- finfo_close($finfo);
378
- return $mime;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
379
  }
380
 
381
  }
3
  * Class representing one shop item (order or product)
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
22
  'products' => array(),
23
  'href' => ''
24
  );
25
+
26
+ protected $mime_types = array(
27
+ 'png' => 'image/png',
28
+ 'jpe' => 'image/jpeg',
29
+ 'jpeg' => 'image/jpeg',
30
+ 'jpg' => 'image/jpeg',
31
+ 'gif' => 'image/gif',
32
+ 'bmp' => 'image/bmp',
33
+ 'ico' => 'image/vnd.microsoft.icon',
34
+ 'tiff' => 'image/tiff',
35
+ 'tif' => 'image/tiff',
36
+ 'svg' => 'image/svg+xml',
37
+ 'svgz' => 'image/svg+xml'
38
+ );
39
 
40
  public function __construct($description, $name = '', $currency = 'EUR', $price = 0.0, $id = null, $delivery_date = null,
41
  $order_date = null, $image = null, $other_info = '', $products = array())
217
  if (Youstice_Tools::strlen($image) > 0)
218
  {
219
  $image_data = $this->resize($image, 300, 300);
220
+ $this->data['image'] = base64_encode($image_data);
 
221
  }
222
 
223
  return $this;
261
  if ($image_data === false)
262
  throw new Exception('Image does not exists');
263
 
264
+ $mime_type = $this->getMimeType($path);
265
+
266
  //correct image
267
  if (Youstice_Tools::strlen($image_data) > 0)
268
  {
269
+ $image_data = $this->resize($image_data, 300, 300, false, $mime_type);
270
+ return base64_encode($image_data);
 
271
  }
272
 
273
  return null;
276
  throw new Exception('Image path is not readable');
277
  }
278
 
279
+ protected function resize($image_data, $width = 100, $height = 100, $stretch = false, $mime_type = null)
280
  {
281
  $file = tempnam(sys_get_temp_dir(), md5(time().'YRS'));
282
 
287
  fwrite($file_handle, $image_data);
288
  fclose($file_handle);
289
 
290
+ if(!$mime_type)
291
+ $mime_type = $this->getMimeType($file);
292
 
293
+ switch ($mime_type)
294
  {
295
  case 'image/bmp':
296
  $handle = imagecreatefromwbmp($file);
305
  $handle = imagecreatefrompng($file);
306
  break;
307
  default:
308
+ throw new Exception('Unsupported image type '.$mime_type);
309
  }
310
 
311
  $dimensions = getimagesize($file);
387
 
388
  protected function getMimeType($filename)
389
  {
390
+ if(function_exists('finfo_open') && function_exists('finfo_file'))
391
+ {
392
+ $finfo = finfo_open(FILEINFO_MIME_TYPE);
393
+ $mime = finfo_file($finfo, $filename);
394
+ finfo_close($finfo);
395
+
396
+ return $mime;
397
+ }
398
+
399
+ if(function_exists('mime_content_type'))
400
+ return mime_content_type($filename);
401
+
402
+ $extension = Tools::strtolower(array_pop(explode('.',$filename)));
403
+
404
+ if(array_key_exists($extension, $this->mime_types)){
405
+ return $this->mime_types[$extension];
406
+ }
407
+
408
+ throw new Exception('Please install PECL fileinfo extension');
409
  }
410
 
411
  }
app/code/community/Youstice/YousticeResolutionSystem/SDK/ShopOrder.php CHANGED
@@ -3,7 +3,7 @@
3
  * The shop order it self.
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
@@ -11,8 +11,8 @@ class Youstice_ShopOrder extends Youstice_ShopItem {
11
 
12
  const NOT_DELIVERED = 1;
13
  const DELIVERED = 2;
14
- const NOT_PAYED = 1;
15
- const PAYED = 2;
16
 
17
  public static function create($description = array(), $name = '', $currency = 'EUR', $price = 0.0, $product_id = null,
18
  $delivery_date = null, $order_date = null, $image = null, $other_info = '', $products = array())
@@ -70,7 +70,7 @@ class Youstice_ShopOrder extends Youstice_ShopItem {
70
  }
71
 
72
  public function getDeliveryState() {
73
- return isset($this->data['deliveryState']) ? $this->data['deliveryState'] : self::NOT_DELIVERED;
74
  }
75
 
76
  public function isDelivered() {
@@ -78,18 +78,18 @@ class Youstice_ShopOrder extends Youstice_ShopItem {
78
  }
79
 
80
  public function setPaymentState($paymentState) {
81
- if($paymentState == self::PAYED || $paymentState == self::NOT_PAYED)
82
  $this->data['paymentState'] = $paymentState;
83
 
84
  return $this;
85
  }
86
 
87
  public function getPaymentState() {
88
- return isset($this->data['paymentState']) ? $this->data['paymentState'] : self::NOT_PAYED;
89
  }
90
 
91
  public function isPaid() {
92
- return isset($this->data['paymentState']) && $this->data['paymentState'] == self::PAYED;
93
  }
94
 
95
  }
3
  * The shop order it self.
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
11
 
12
  const NOT_DELIVERED = 1;
13
  const DELIVERED = 2;
14
+ const NOT_PAID = 1;
15
+ const PAID = 2;
16
 
17
  public static function create($description = array(), $name = '', $currency = 'EUR', $price = 0.0, $product_id = null,
18
  $delivery_date = null, $order_date = null, $image = null, $other_info = '', $products = array())
70
  }
71
 
72
  public function getDeliveryState() {
73
+ return $this->isDelivered() ? 'delivered' : 'undelivered';
74
  }
75
 
76
  public function isDelivered() {
78
  }
79
 
80
  public function setPaymentState($paymentState) {
81
+ if($paymentState == self::PAID || $paymentState == self::NOT_PAID)
82
  $this->data['paymentState'] = $paymentState;
83
 
84
  return $this;
85
  }
86
 
87
  public function getPaymentState() {
88
+ return $this->isPaid() ? 'paid' : 'unpaid';
89
  }
90
 
91
  public function isPaid() {
92
+ return isset($this->data['paymentState']) && $this->data['paymentState'] == self::PAID;
93
  }
94
 
95
  }
app/code/community/Youstice/YousticeResolutionSystem/SDK/ShopProduct.php CHANGED
@@ -3,7 +3,7 @@
3
  * Class represents one shop product
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
3
  * Class represents one shop product
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/SimpleApi.php CHANGED
@@ -4,7 +4,7 @@
4
  * Main Youstice simple class.
5
  *
6
  * @author Youstice
7
- * @copyright (c) 2014, Youstice
8
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
9
  */
10
 
4
  * Main Youstice simple class.
5
  *
6
  * @author Youstice
7
+ * @copyright (c) 2015, Youstice
8
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
9
  */
10
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/Tools.php CHANGED
@@ -37,15 +37,33 @@ class Youstice_Tools {
37
  if ($stream_context != null)
38
  {
39
  $opts = stream_context_get_options($stream_context);
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  if (isset($opts['http']['method']) && Youstice_Tools::strtolower($opts['http']['method']) == 'post')
41
  {
42
  curl_setopt($curl, CURLOPT_POST, true);
43
  if (isset($opts['http']['content']))
44
  {
45
- parse_str($opts['http']['content'], $datas);
46
- curl_setopt($curl, CURLOPT_POSTFIELDS, $datas);
 
 
 
47
  }
48
  }
 
 
49
  }
50
  $content = curl_exec($curl);
51
  curl_close($curl);
37
  if ($stream_context != null)
38
  {
39
  $opts = stream_context_get_options($stream_context);
40
+ $headers = [];
41
+
42
+ //add headers from stream context
43
+ if (isset($opts['http']['header']))
44
+ {
45
+ $_headers = explode("\r\n", $opts['http']['header']);
46
+ //remove last or empty
47
+ $_headers = array_filter($_headers, 'strlen');
48
+
49
+ array_merge($headers, $_headers);
50
+ }
51
+
52
+ //set POST fields
53
  if (isset($opts['http']['method']) && Youstice_Tools::strtolower($opts['http']['method']) == 'post')
54
  {
55
  curl_setopt($curl, CURLOPT_POST, true);
56
  if (isset($opts['http']['content']))
57
  {
58
+ $jsonData = $opts['http']['content'];
59
+ curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonData);
60
+
61
+ $headers[] = 'Content-Type: application/json';
62
+ $headers[] = 'Content-Length: ' . strlen($jsonData);
63
  }
64
  }
65
+
66
+ curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
67
  }
68
  $content = curl_exec($curl);
69
  curl_close($curl);
app/code/community/Youstice/YousticeResolutionSystem/SDK/Translator.php CHANGED
@@ -3,7 +3,7 @@
3
  * Class handles local module translations
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
3
  * Class handles local module translations
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/Widgets/OrderDetail.php CHANGED
@@ -3,7 +3,7 @@
3
  * Renders order detail (usually in popup form)
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
3
  * Renders order detail (usually in popup form)
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/Widgets/OrderDetailButton.php CHANGED
@@ -3,7 +3,7 @@
3
  * Renders button to open order detail
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
3
  * Renders button to open order detail
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/Widgets/OrderReportButton.php CHANGED
@@ -3,7 +3,7 @@
3
  * Renders button to report an order
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
3
  * Renders button to report an order
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/Widgets/OrdersPage.php CHANGED
@@ -3,7 +3,7 @@
3
  * Renders order detail (usually in popup form)
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
@@ -50,7 +50,7 @@ class Youstice_Widgets_OrdersPage {
50
  $orderDateFormated = Youstice_Helpers_HelperFunctions::sh(date($orderDateFormat, $orderDate));
51
 
52
  $totalLabel = $this->translator->t('Total');
53
- $totalText = Youstice_Helpers_HelperFunctions::sh($order->getPrice()).' '.Youstice_Helpers_HelperFunctions::sh($order->getCurrency());
54
 
55
  $output .= '<tr><td>'
56
  . '<b>'.Youstice_Helpers_HelperFunctions::sh($order->getName()).'</b>'
3
  * Renders order detail (usually in popup form)
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
50
  $orderDateFormated = Youstice_Helpers_HelperFunctions::sh(date($orderDateFormat, $orderDate));
51
 
52
  $totalLabel = $this->translator->t('Total');
53
+ $totalText = Youstice_Helpers_HelperFunctions::sh(number_format($order->getPrice(), 2)).' '.Youstice_Helpers_HelperFunctions::sh($order->getCurrency());
54
 
55
  $output .= '<tr><td>'
56
  . '<b>'.Youstice_Helpers_HelperFunctions::sh($order->getName()).'</b>'
app/code/community/Youstice/YousticeResolutionSystem/SDK/Widgets/ProductReportButton.php CHANGED
@@ -3,7 +3,7 @@
3
  * Renders button to report a product
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
3
  * Renders button to report a product
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/Widgets/ReportClaimsForm.php CHANGED
@@ -3,7 +3,7 @@
3
  * Youstice form for reporting claims.
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
3
  * Youstice form for reporting claims.
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/Widgets/ShowButtons.php CHANGED
@@ -3,7 +3,7 @@
3
  * Youstice show buttons widget.
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
3
  * Youstice show buttons widget.
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/Widgets/WebReportButton.php CHANGED
@@ -3,7 +3,7 @@
3
  * Renders the "unrelated to orders" report button (web report / generic claim)
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
3
  * Renders the "unrelated to orders" report button (web report / generic claim)
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
app/code/community/Youstice/YousticeResolutionSystem/SDK/languageStrings/cs.php CHANGED
@@ -3,13 +3,13 @@
3
  * Local Czech translations
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
10
  return array(
11
  "Would you like to file a complaint?" => "Chceli by jste podat sťížnost?",
12
- "Order number" => "Číslo objednavky",
13
  "File a complaint" => "Podat sťížnost",
14
  "Would you like to file a complaint and report on your shopping issue? Simply enter the details below:" => "Chceli by jste podat sťížnost a nahlásit váš problém s nakupováním? Jen vyplňte tyhle údaje:",
15
  "In case you want to complain about a product or service, please follow this link." => "V případe, že chcete nahlásit stížnost na produkt nebo službu, prosiḿ kliknete na tento odkaz.",
@@ -31,20 +31,8 @@ return array(
31
  "Waiting for retailer's response" => "Čeká na odpověd od prodajcu",
32
 
33
  //admin
34
- "Youstice" => "Youstice",
35
- "Your online justice" => "Your online justice",
36
- "We help customers and retailers resolve shopping issues quickly and effectively." => "We help customers and retailers resolve shopping issues quickly and effectively.",
37
- "Youstice is a global online application for customers and retailers" => "Youstice is a global online application for customers and retailers",
38
- "It allows quick and efficient communication between shops and customers" => "It allows quick and efficient communication between shops and customers",
39
- "Complaints are resolved in just a few clicks." => "Complaints are resolved in just a few clicks.",
40
  "Yes" => "Ano",
41
  "No" => "Ne",
42
- "Products" => "Products",
43
- "Services" => "Services",
44
- "Settings" => "Settings",
45
- "Api Key" => "Api Key",
46
- "Use sandbox environment" => "Use sandbox environment",
47
- "This e-shop sells" => "This e-shop sells",
48
  "Default language" => "Předvolený jazyk",
49
  "Auto detection" => "Automatická detekcia",
50
  "Are you sure you want to uninstall?" => "Jste si jistý, že chcete odinstalovat?",
@@ -53,51 +41,60 @@ return array(
53
  "Invalid Configuration value" => "Neplatní hodnota v nastaveních",
54
 
55
  //NEW ADMIN
56
- "Increase customer satisfaction and become a trusted retailer. Negotiate and resolve customer complaints just in a few clicks" => "Maximalizujte spokojenost zákazníků a staňte se důvěryhodným predajcem. ",
57
  'Resolve customer complaints in a few clicks.' => 'Vyřešte stížnosti několika klikmi.',
58
- 'For more information' => 'Pro více informací',
59
  'about Youstice visit' => 'o Youstice navštivte',
60
  'It only takes a few minutes to get started with Youstice.' => 'Začít s Youstice zabere jenom pár minut.',
61
- 'Already have a Youstice account?' => 'Already have a Youstice account?',
62
- 'START FREE TRIAL' => 'START FREE TRIAL',
63
- 'Stop scathing reviews' => 'Stop scathing reviews',
64
- 'Stop scathing reviews. Handle customer complaints fast and right.' => 'Stop scathing reviews. Handle customer complaints fast and right.',
65
- 'It’s a storeowner’s worst nightmare.' => 'It’s a storeowner’s worst nightmare.',
66
- 'A disgruntled customer criticizes your business on social media. You are instantly thrown into crisis mode, trying as best you can to save your reputation.' => 'A disgruntled customer criticizes your business on social media. You are instantly thrown into crisis mode, trying as best you can to save your reputation.',
67
- 'It matters little whether the criticism is justified. Prevention is the best cure.' => 'It matters little whether the criticism is justified. Prevention is the best cure.',
68
- 'You can resolve customer complaints effectively. You just need the right tool.' => 'You can resolve customer complaints effectively. You just need the right tool.',
69
- 'Resolving complaints rapidly and effectively can place a heavy burden on your small business. The longer customers wait for your reply, the angrier they get. Yet you can’t be behind your computer screen 24/7.' => 'Resolving complaints rapidly and effectively can place a heavy burden on your small business. The longer customers wait for your reply, the angrier they get. Yet you can’t be behind your computer screen 24/7.',
70
- 'Let us take the pain out of handling customer complaints. Thanks to our award-winning app, your customers know that you stand by your products and they trust your business.' => 'Let us take the pain out of handling customer complaints. Thanks to our award-winning app, your customers know that you stand by your products and they trust your business.',
71
  'Configure Youstice for your website' => 'Nastavte Youstice pro vaši stránku',
72
  'Is the API key for Live or Sandbox environment?' => 'API klíč je pro Live nebo Sandbox přostredí?',
73
  'Sandbox' => 'Sandbox',
74
  'Live' => 'Live',
75
  'API Key of your shop' => 'API klíč vašeho obchodu',
76
- 'For testing purposes use our Sandbox environment. Please keep in mind that there are different API keys for Sandbox and Live environments. To start using Sandbox and get the matching API key you need to' => 'For testing purposes use our Sandbox environment. Please keep in mind that there are different API keys for Sandbox and Live environments. To start using Sandbox and get the matching API key you need to',
77
- 'register specifically for Sandbox' => 'register specifically for Sandbox',
78
- 'GET YOUR API KEY' => 'GET YOUR API KEY',
79
  'Your API key can be found in Youstice application. Log in to Youstice' => 'Váš API klíč je uvedený v Youstice aplikaci. Přihlaste se do Youstice',
80
  'or' => 'nebo',
81
  'go to menu SHOPS, click on your shop and see API key on the bottom of the page.' => 'jeďte do menu OBCHODY, kliknete na konkrétný obchod a API klíč najdete v spodní části stránky.',
82
- 'Need some help?' => 'Need some help?',
83
- 'Our support team is here for you' => 'Our support team is here for you',
84
- 'Filing a claim without login' => 'Filing a claim without login',
85
- 'Optionally, copy & paste the code below to any place on your website if you want to allow your customers to file claims without logging in based on the customer’s email address and order reference.' => 'Optionally, copy & paste the code below to any place on your website if you want to allow your customers to file claims without logging in based on the customer’s email address and order reference.',
86
- 'Feel free to use this link on social networks. Post it proactively on Facebook, Google+, Twitter, etc. It will help to redirect negative opinions and potential complaints into Youstice and keep your wall clean.' => 'Feel free to use this link on social networks. Post it proactively on Facebook, Google+, Twitter, etc. It will help to redirect negative opinions and potential complaints into Youstice and keep your wall clean.',
87
- 'How the Youstice plugin works' => 'How the Youstice plugin works',
88
- 'New button ‘Would you like to file a complaint?’ appears in an order history of each customer.' => 'New buttonWould you like to file a complaint?’ appears in an order history of each customer.',
89
- 'The customer can use this option to report a problem, whether related to a specific order or not.' => 'The customer can use this option to report a problem, whether related to a specific order or not.',
90
- 'It is also possible to report a problem with a specific item within an order.' => 'It is also possible to report a problem with a specific item within an order.',
91
- 'Screenshots' => 'Screenshots',
92
  "SAVE" => "ULOŽIT",
93
- "Remote service unavailable, please try again later" => "Remote service unavailable, please try again later",
 
 
 
 
 
 
 
94
 
95
  //orders page
96
- "Order date" => "Order date",
97
- "Total" => "Total",
 
 
98
  "_orderDateFormat" => "j.n.Y G:i:s",
99
- "paid" => "paid",
100
- "unpaid" => "unpaid",
101
- "delivered" => "delivered",
102
- "undelivered" => "undelivered",
103
  );
3
  * Local Czech translations
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
10
  return array(
11
  "Would you like to file a complaint?" => "Chceli by jste podat sťížnost?",
12
+ "Order number" => "Číslo objednávky",
13
  "File a complaint" => "Podat sťížnost",
14
  "Would you like to file a complaint and report on your shopping issue? Simply enter the details below:" => "Chceli by jste podat sťížnost a nahlásit váš problém s nakupováním? Jen vyplňte tyhle údaje:",
15
  "In case you want to complain about a product or service, please follow this link." => "V případe, že chcete nahlásit stížnost na produkt nebo službu, prosiḿ kliknete na tento odkaz.",
31
  "Waiting for retailer's response" => "Čeká na odpověd od prodajcu",
32
 
33
  //admin
 
 
 
 
 
 
34
  "Yes" => "Ano",
35
  "No" => "Ne",
 
 
 
 
 
 
36
  "Default language" => "Předvolený jazyk",
37
  "Auto detection" => "Automatická detekcia",
38
  "Are you sure you want to uninstall?" => "Jste si jistý, že chcete odinstalovat?",
41
  "Invalid Configuration value" => "Neplatní hodnota v nastaveních",
42
 
43
  //NEW ADMIN
44
+ "Increase customer satisfaction and become a trusted retailer. Negotiate and resolve customer complaints just in a few clicks" => "Maximalizujte spokojenost zákazníků a staňte se důvěryhodným predajcem.",
45
  'Resolve customer complaints in a few clicks.' => 'Vyřešte stížnosti několika klikmi.',
46
+ 'For more information' => 'pro více informací',
47
  'about Youstice visit' => 'o Youstice navštivte',
48
  'It only takes a few minutes to get started with Youstice.' => 'Začít s Youstice zabere jenom pár minut.',
49
+ 'Already have a Youstice account?' => 'Jste již zaregistrovaný v Youstice?',
50
+ 'START FREE TRIAL' => 'ZAČNĚTE VÁŠ ZKUŠEBNÍ PROVOZ ZDARMA',
51
+ 'Stop scathing reviews' => 'Skoncujte s kritickými hodnoceními',
52
+ 'Stop scathing reviews. Handle customer complaints fast and right.' => 'Skoncujte s kritickými hodnoceními. Řešte stížnosti zákazníků férově a rychle.',
53
+ 'It’s a storeowner’s worst nightmare.' => 'Je to noční můra majitelů obchodů.',
54
+ 'A disgruntled customer criticizes your business on social media. You are instantly thrown into crisis mode, trying as best you can to save your reputation.' => 'Nespokojení zákazníci kritizují váš obchod na sociálních sítích. Neustále musíte řešit krizové situace, abyste zachránili dobré jméno vašeho podniku.',
55
+ 'It matters little whether the criticism is justified. Prevention is the best cure.' => 'Nezáleží mnoho na tom, jestli je kritika oprávněná nebo ne. Nejlepší obranou je prevence.',
56
+ 'You can resolve customer complaints effectively. You just need the right tool.' => 'Určitě můžete řešit stížnosti vašich zákazníků férově a přitom efektivně. Jen musíte mít správný nástroj.',
57
+ 'Resolving complaints rapidly and effectively can place a heavy burden on your small business. The longer customers wait for your reply, the angrier they get. Yet you can’t be behind your computer screen 24/7.' => 'Rychlé a efektivní řešení stížností může být pro váš podnik náročné. Čím déle zákazník čeká na vaši odpověď, tím víc je obvykle naštvaný. Přitom nemůžete být za vaším počítačem bez přestání, 24/7.',
58
+ 'Let us take the pain out of handling customer complaints. Thanks to our award-winning app, your customers know that you stand by your products and they trust your business.' => 'Změňme řešení zákaznických stížností z problému na klíčový prodejní argument. Díky naší aplikaci, která získala mezinárodní ocenění Customer Game Changer 2014, vaši zákazníci budou vědět, že je chápete jako partnery a budou vám více důvěřovat.',
59
  'Configure Youstice for your website' => 'Nastavte Youstice pro vaši stránku',
60
  'Is the API key for Live or Sandbox environment?' => 'API klíč je pro Live nebo Sandbox přostredí?',
61
  'Sandbox' => 'Sandbox',
62
  'Live' => 'Live',
63
  'API Key of your shop' => 'API klíč vašeho obchodu',
64
+ 'For testing purposes use our Sandbox environment. Please keep in mind that there are different API keys for Sandbox and Live environments. To start using Sandbox and get the matching API key you need to' => 'Pro účely testování využijte naše testovací prostředí (Sandbox). Vezměte na vědomí, že je třeba mít odlišný API klíč pro Sandbox a pro živý provoz. Proto, abyste mohli využít náš Sandbox a dostat příslušný API klíč, musíte učinit následující',
65
+ 'register specifically for Sandbox' => 'registruj se speciálně pro Sandbox',
66
+ 'GET YOUR API KEY' => 'ZÍSKEJ SVŮJ API KLÍČ',
67
  'Your API key can be found in Youstice application. Log in to Youstice' => 'Váš API klíč je uvedený v Youstice aplikaci. Přihlaste se do Youstice',
68
  'or' => 'nebo',
69
  'go to menu SHOPS, click on your shop and see API key on the bottom of the page.' => 'jeďte do menu OBCHODY, kliknete na konkrétný obchod a API klíč najdete v spodní části stránky.',
70
+ 'Need some help?' => 'Potřebujete pomoct?',
71
+ 'Our support team is here for you' => 'Náš tým podpory je vám k dispozici',
72
+ 'Filing a claim without login' => 'Podávání stížností bez loginu',
73
+ 'Optionally, copy & paste the code below to any place on your website if you want to allow your customers to file claims without logging in based on the customer’s email address and order reference.' => 'Máte rovněž možnost zkopírovat níže uvedený kód na libovolné místo vaší webové stránky, pokud chcete umožnit vašim zákazníkům podávat stížnosti bez nutnosti se zalogovat na základě emailové adresy zákazníka a čísla objednávky.',
74
+ 'Feel free to use this link on social networks. Post it proactively on Facebook, Google+, Twitter, etc. It will help to redirect negative opinions and potential complaints into Youstice and keep your wall clean.' => 'Následující link můžete použít na vašich sociálních sítích. Umistěte jej na Facebook, Google+, Twitter, aj. Toto řešení vám pomůže přesměrovávat kritická hodnocení a potenciální stížnosti do systému Youstice a tím pádem omezit kritická hodnocení!',
75
+ 'How the Youstice plugin works' => 'Jak Youstice plugin pracuje',
76
+ 'New button ‘Would you like to file a complaint?’ appears in an order history of each customer.' => 'Nové tlačítkoChcete podat stížnost?’ se objeví v seznamu objednávek každého zákazníka.',
77
+ 'The customer can use this option to report a problem, whether related to a specific order or not.' => 'Zákazník může využít tuto možnost, aby podal stížnost, se týká konkrétní objednávky nebo ne.',
78
+ 'It is also possible to report a problem with a specific item within an order.' => 'Je rovněž možné podat stížnost na konkrétní položku v rámci příslušné objednávky.',
79
+ 'Screenshots' => 'Screenshoty',
80
  "SAVE" => "ULOŽIT",
81
+ 'Check Our' => 'Podívejte se na naše',
82
+ 'LIVE DEMO' => 'DEMO',
83
+ 'Youstice: cURL is not installed, please install it.' => 'Youstice: cURL není nainstalován, prosím nainstalujte jej.',
84
+ 'Youstice: PDO is not installed, please install it.' => 'YYoustice: PDO není nainstalován, prosím nainstalujte jej.',
85
+ 'Youstice: PECL finfo is not installed, please install it.' => 'Youstice: PECL finfo není nainstalován, prosím nainstalujte jej.',
86
+ "Remote service unavailable, please try again later" => "Služba na dálku není dostupná, zkuste to prosím později",
87
+ "Invalid email" => "Neplatný e-mail",
88
+ "Email or order number not found" => "E-mail nebo číslo objednávky nenalezeno",
89
 
90
  //orders page
91
+ "Report claims on" => "Reportuj stížnosti na",
92
+ "Your orders (%d)" => "Vaše objednávky (%d)",
93
+ "Order date" => "Datum objednávky",
94
+ "Total" => "Celkem",
95
  "_orderDateFormat" => "j.n.Y G:i:s",
96
+ "paid" => "zaplaceno",
97
+ "unpaid" => "nezaplaceno",
98
+ "delivered" => "doručeno",
99
+ "undelivered" => "nedoručeno",
100
  );
app/code/community/Youstice/YousticeResolutionSystem/SDK/languageStrings/de.php CHANGED
@@ -3,7 +3,7 @@
3
  * Local Deutsch translations
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
@@ -31,22 +31,10 @@ return array(
31
  "Waiting for retailer's response" => "Warten auf Antwort des Verkäufers",
32
 
33
  //admin
34
- "Youstice" => "Youstice",
35
- "Your online justice" => "Your online justice",
36
- "We help customers and retailers resolve shopping issues quickly and effectively." => "We help customers and retailers resolve shopping issues quickly and effectively.",
37
- "Youstice is a global online application for customers and retailers" => "Youstice is a global online application for customers and retailers",
38
- "It allows quick and efficient communication between shops and customers" => "It allows quick and efficient communication between shops and customers",
39
- "Complaints are resolved in just a few clicks." => "Complaints are resolved in just a few clicks.",
40
  "Yes" => "Ja",
41
  "No" => "Nein",
42
- "Products" => "Products",
43
- "Services" => "Services",
44
- "Settings" => "Settings",
45
- "Api Key" => "Api Key",
46
- "Use sandbox environment" => "Use sandbox environment",
47
- "This e-shop sells" => "This e-shop sells",
48
- "Default language" => "Default language",
49
- "Auto detection" => "Auto detection",
50
  "Are you sure you want to uninstall?" => "Sind Sie sicher dass Sie deinstallieren möchten?",
51
  "Settings were saved successfully." => "Einstellungen wurden erfolgreich gespeichert.",
52
  "Invalid API KEY" => "Ungültiges API-Schlüssel",
@@ -90,13 +78,23 @@ return array(
90
  'It is also possible to report a problem with a specific item within an order.' => 'Es ist ebenso möglich, ein spezielles Problem innerhalb einer Bestellung zu melden.',
91
  'Screenshots' => 'Screenshots',
92
  "SAVE" => "SPEICHERN",
 
 
 
 
 
 
 
 
93
 
94
  //orders page
95
- "Order date" => "Order date",
96
- "Total" => "Total",
 
 
97
  "_orderDateFormat" => "j.n.Y G:i:s",
98
- "paid" => "paid",
99
- "unpaid" => "unpaid",
100
- "delivered" => "delivered",
101
- "undelivered" => "undelivered",
102
  );
3
  * Local Deutsch translations
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
31
  "Waiting for retailer's response" => "Warten auf Antwort des Verkäufers",
32
 
33
  //admin
 
 
 
 
 
 
34
  "Yes" => "Ja",
35
  "No" => "Nein",
36
+ "Default language" => "Standardsprache",
37
+ "Auto detection" => "Autoerkennung",
 
 
 
 
 
 
38
  "Are you sure you want to uninstall?" => "Sind Sie sicher dass Sie deinstallieren möchten?",
39
  "Settings were saved successfully." => "Einstellungen wurden erfolgreich gespeichert.",
40
  "Invalid API KEY" => "Ungültiges API-Schlüssel",
78
  'It is also possible to report a problem with a specific item within an order.' => 'Es ist ebenso möglich, ein spezielles Problem innerhalb einer Bestellung zu melden.',
79
  'Screenshots' => 'Screenshots',
80
  "SAVE" => "SPEICHERN",
81
+ 'Check Our' => 'Checken Sie unsere',
82
+ 'LIVE DEMO' => 'LIVEDEMO',
83
+ 'Youstice: cURL is not installed, please install it.' => 'Youstice: cURL ist nicht installiert, bitte installieren Sie es.',
84
+ 'Youstice: PDO is not installed, please install it.' => 'Youstice: PDO ist nicht installiert, bitte installieren Sie es.',
85
+ 'Youstice: PECL finfo is not installed, please install it.' => 'Youstice: PECL finfo ist nicht installiert, bitte installieren Sie es',
86
+ "Remote service unavailable, please try again later" => "Fernservice nicht verfügbar, bitte versuchen Sie es später erneut",
87
+ "Invalid email" => "Ungültige Email",
88
+ "Email or order number not found" => "Email oder Bestellungsnummer nicht gefunden",
89
 
90
  //orders page
91
+ "Report claims on" => "Beschwerde einreichen gegen",
92
+ "Your orders (%d)" => "Ihre Bestellungen",
93
+ "Order date" => "Bestelldatum",
94
+ "Total" => "Gesamt",
95
  "_orderDateFormat" => "j.n.Y G:i:s",
96
+ "paid" => "bezahlt",
97
+ "unpaid" => "unbezahlt",
98
+ "delivered" => "geliefert",
99
+ "undelivered" => "nicht zugestellt",
100
  );
app/code/community/Youstice/YousticeResolutionSystem/SDK/languageStrings/en.php CHANGED
@@ -3,7 +3,7 @@
3
  * Local English translations
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
@@ -31,20 +31,8 @@ return array(
31
  "Waiting for retailer's response" => "Waiting for retailer's response",
32
 
33
  //admin
34
- "Youstice" => "Youstice",
35
- "Your online justice" => "Your online justice",
36
- "We help customers and retailers resolve shopping issues quickly and effectively." => "We help customers and retailers resolve shopping issues quickly and effectively.",
37
- "Youstice is a global online application for customers and retailers" => "Youstice is a global online application for customers and retailers",
38
- "It allows quick and efficient communication between shops and customers" => "It allows quick and efficient communication between shops and customers",
39
- "Complaints are resolved in just a few clicks." => "Complaints are resolved in just a few clicks.",
40
  "Yes" => "Yes",
41
  "No" => "No",
42
- "Products" => "Products",
43
- "Services" => "Services",
44
- "Settings" => "Settings",
45
- "Api Key" => "Api Key",
46
- "Use sandbox environment" => "Use sandbox environment",
47
- "This e-shop sells" => "This e-shop sells",
48
  "Default language" => "Default language",
49
  "Auto detection" => "Auto detection",
50
  "Are you sure you want to uninstall?" => "Are you sure you want to uninstall?",
@@ -90,9 +78,19 @@ return array(
90
  'It is also possible to report a problem with a specific item within an order.' => 'It is also possible to report a problem with a specific item within an order.',
91
  'Screenshots' => 'Screenshots',
92
  "SAVE" => "SAVE",
 
 
 
 
 
93
  "Remote service unavailable, please try again later" => "Remote service unavailable, please try again later",
94
 
 
 
 
95
  //orders page
 
 
96
  "Order date" => "Order date",
97
  "Total" => "Total",
98
  "_orderDateFormat" => "j.n.Y G:i:s",
3
  * Local English translations
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
31
  "Waiting for retailer's response" => "Waiting for retailer's response",
32
 
33
  //admin
 
 
 
 
 
 
34
  "Yes" => "Yes",
35
  "No" => "No",
 
 
 
 
 
 
36
  "Default language" => "Default language",
37
  "Auto detection" => "Auto detection",
38
  "Are you sure you want to uninstall?" => "Are you sure you want to uninstall?",
78
  'It is also possible to report a problem with a specific item within an order.' => 'It is also possible to report a problem with a specific item within an order.',
79
  'Screenshots' => 'Screenshots',
80
  "SAVE" => "SAVE",
81
+ 'Check Our' => 'Check Our',
82
+ 'LIVE DEMO' => 'LIVE DEMO',
83
+ 'Youstice: cURL is not installed, please install it.' => 'Youstice: cURL is not installed, please install it.',
84
+ 'Youstice: PDO is not installed, please install it.' => 'Youstice: PDO is not installed, please install it.',
85
+ 'Youstice: PECL finfo is not installed, please install it.' => 'Youstice: PECL finfo is not installed, please install it.',
86
  "Remote service unavailable, please try again later" => "Remote service unavailable, please try again later",
87
 
88
+ "Invalid email" => "Invalid email",
89
+ "Email or order number not found" => "Email or order number not found",
90
+
91
  //orders page
92
+ "Report claims on" => "Report claims on",
93
+ "Your orders (%d)" => "Your orders (%d)",
94
  "Order date" => "Order date",
95
  "Total" => "Total",
96
  "_orderDateFormat" => "j.n.Y G:i:s",
app/code/community/Youstice/YousticeResolutionSystem/SDK/languageStrings/es.php CHANGED
@@ -3,7 +3,7 @@
3
  * Local Spain translations
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
@@ -31,22 +31,10 @@ return array(
31
  "Waiting for retailer's response" => "Esperando la respuesta del comerciante",
32
 
33
  //admin
34
- "Youstice " => "Youstice",
35
- "Your online justice" => "Tu justicia en línea",
36
- "We help customers and retailers resolve shopping issues quickly and effectively." => "Facilitamos la resolución rápida y efectiva de conflictos entre clientes y comerciantes.",
37
- "Youstice is a global online application for customers and retailers" => "Youstice es una plataforma global en línea para clientes y comerciantes",
38
- "It allows quick and efficient communication between shops and customers" => "Facilita la comunicación rápida y eficaz entre clientes y comerciantes",
39
- "Complaints are resolved in just a few clicks." => "Las reclamaciones se resuelven con tan solo unos clics.",
40
  "Yes" => "Sí",
41
  "No" => "No",
42
- "Products" => "Productos",
43
- "Services" => "Servicios",
44
- "Settings" => "Configuraciones",
45
- "Api Key" => "Llave Api",
46
- "Use sandbox environment" => "Utiliza el entorno de prueba sandbox",
47
- "This e-shop sells" => "Este comercio electrónico vende",
48
- "Default language" => "Default language",
49
- "Auto detection" => "Auto detection",
50
  "Are you sure you want to uninstall?" => "¿Estás seguro que quieres desinstalar?",
51
  "Settings were saved successfully." => "Configuración se ha guardado correctamente",
52
  "Invalid API KEY" => "Clave de API no válida",
@@ -90,14 +78,23 @@ return array(
90
  'It is also possible to report a problem with a specific item within an order.' => 'Es posible también notificar un problema sobre un artículo concreto de un pedido.',
91
  'Screenshots' => 'CAPTURAS DE PANTALLA',
92
  "SAVE" => "GUARDAR",
93
- "Remote service unavailable, please try again later" => "Remote service unavailable, please try again later",
 
 
 
 
 
 
 
94
 
95
  //orders page
96
- "Order date" => "Order date",
 
 
97
  "Total" => "Total",
98
  "_orderDateFormat" => "j.n.Y G:i:s",
99
- "paid" => "paid",
100
- "unpaid" => "unpaid",
101
- "delivered" => "delivered",
102
- "undelivered" => "undelivered",
103
  );
3
  * Local Spain translations
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
31
  "Waiting for retailer's response" => "Esperando la respuesta del comerciante",
32
 
33
  //admin
 
 
 
 
 
 
34
  "Yes" => "Sí",
35
  "No" => "No",
36
+ "Default language" => "El idioma predeterminado",
37
+ "Auto detection" => "Detección automática",
 
 
 
 
 
 
38
  "Are you sure you want to uninstall?" => "¿Estás seguro que quieres desinstalar?",
39
  "Settings were saved successfully." => "Configuración se ha guardado correctamente",
40
  "Invalid API KEY" => "Clave de API no válida",
78
  'It is also possible to report a problem with a specific item within an order.' => 'Es posible también notificar un problema sobre un artículo concreto de un pedido.',
79
  'Screenshots' => 'CAPTURAS DE PANTALLA',
80
  "SAVE" => "GUARDAR",
81
+ 'Check Our' => 'Verifique nuestro',
82
+ 'LIVE DEMO' => 'LIVE DEMO',
83
+ 'Youstice: cURL is not installed, please install it.' => 'Youstice: cURL no está instalado, por favor, instálelo.',
84
+ 'Youstice: PDO is not installed, please install it.' => 'Youstice: PDO no está instalado, por favor, instálelo.',
85
+ 'Youstice: PECL finfo is not installed, please install it.' => 'Youstice: PECL finfo no está instalado, por favor, instálelo.',
86
+ "Remote service unavailable, please try again later" => "Servicio remoto no disponible, por favor, vuelva a intentarlo más tarde",
87
+ "Invalid email" => "La dirección de correo electrónico no es válida",
88
+ "Email or order number not found" => "Correo electrónico o número de pedido no fue encontrado",
89
 
90
  //orders page
91
+ "Report claims on" => "Presenta una reclamación en",
92
+ "Your orders (%d)" => "Sus órdenes (%d)",
93
+ "Order date" => "La fecha de la orden",
94
  "Total" => "Total",
95
  "_orderDateFormat" => "j.n.Y G:i:s",
96
+ "paid" => "Pagado",
97
+ "unpaid" => "No pagado",
98
+ "delivered" => "Entregado",
99
+ "undelivered" => "No entregado",
100
  );
app/code/community/Youstice/YousticeResolutionSystem/SDK/languageStrings/fr.php CHANGED
@@ -3,7 +3,7 @@
3
  * Local French translations
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
@@ -31,22 +31,10 @@ return array(
31
  "Waiting for retailer's response" => "Attendre la réponse du détaillant",
32
 
33
  //admin
34
- "Youstice" => "Youstice",
35
- "Your online justice" => "Your online justice",
36
- "We help customers and retailers resolve shopping issues quickly and effectively." => "We help customers and retailers resolve shopping issues quickly and effectively.",
37
- "Youstice is a global online application for customers and retailers" => "Youstice is a global online application for customers and retailers",
38
- "It allows quick and efficient communication between shops and customers" => "It allows quick and efficient communication between shops and customers",
39
- "Complaints are resolved in just a few clicks." => "Complaints are resolved in just a few clicks.",
40
  "Yes" => "Oui",
41
  "No" => "Non",
42
- "Products" => "Products",
43
- "Services" => "Services",
44
- "Settings" => "Settings",
45
- "Api Key" => "Api Key",
46
- "Use sandbox environment" => "Use sandbox environment",
47
- "This e-shop sells" => "This e-shop sells",
48
- "Default language" => "Default language",
49
- "Auto detection" => "Auto detection",
50
  "Are you sure you want to uninstall?" => "Vous êtes sûr de vouloir désinstaller",
51
  "Settings were saved successfully." => "Vos paramètres ont été enregistrés avec succès",
52
  "Invalid API KEY" => "Clé d´API ne peut être acceptée/ Clé d´API non valable",
@@ -90,14 +78,23 @@ return array(
90
  'It is also possible to report a problem with a specific item within an order.' => 'Il peut aussi signaler un problème relatif à un article d’une commande.',
91
  'Screenshots' => 'COPIES D’ÉCRAN',
92
  "SAVE" => "ENREGISTER",
93
- "Remote service unavailable, please try again later" => "Remote service unavailable, please try again later",
 
 
 
 
 
 
 
94
 
95
  //orders page
96
- "Order date" => "Order date",
 
 
97
  "Total" => "Total",
98
  "_orderDateFormat" => "j.n.Y G:i:s",
99
- "paid" => "paid",
100
- "unpaid" => "unpaid",
101
- "delivered" => "delivered",
102
- "undelivered" => "undelivered",
103
  );
3
  * Local French translations
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
31
  "Waiting for retailer's response" => "Attendre la réponse du détaillant",
32
 
33
  //admin
 
 
 
 
 
 
34
  "Yes" => "Oui",
35
  "No" => "Non",
36
+ "Default language" => "Langue par défaut",
37
+ "Auto detection" => "Détection automatique",
 
 
 
 
 
 
38
  "Are you sure you want to uninstall?" => "Vous êtes sûr de vouloir désinstaller",
39
  "Settings were saved successfully." => "Vos paramètres ont été enregistrés avec succès",
40
  "Invalid API KEY" => "Clé d´API ne peut être acceptée/ Clé d´API non valable",
78
  'It is also possible to report a problem with a specific item within an order.' => 'Il peut aussi signaler un problème relatif à un article d’une commande.',
79
  'Screenshots' => 'COPIES D’ÉCRAN',
80
  "SAVE" => "ENREGISTER",
81
+ 'Check Our' => 'Consultez Notre',
82
+ 'LIVE DEMO' => 'DÉMONSTRATION EN DIRECT',
83
+ 'Youstice: cURL is not installed, please install it.' => 'Youstice: cURL n’est pas installé, s’il vous plaît, installez-le.',
84
+ 'Youstice: PDO is not installed, please install it.' => 'Youstice: PDO n’est pas installé, s’il vous plaît, installez-le.',
85
+ 'Youstice: PECL finfo is not installed, please install it.' => 'Youstice: PECL finfo n’est pas installé, s’il vous plaît, installez-le.',
86
+ "Remote service unavailable, please try again later" => "Service à distance indisponible, s’il vous plaît, réessayez plus tard",
87
+ "Invalid email" => "E-mail invalide",
88
+ "Email or order number not found" => "E-mail ou numéro de commande non trouvée",
89
 
90
  //orders page
91
+ "Report claims on" => "Déposer une réclamation sur",
92
+ "Your orders (%d)" => "Vos commandes (%d)",
93
+ "Order date" => "Date de la commande",
94
  "Total" => "Total",
95
  "_orderDateFormat" => "j.n.Y G:i:s",
96
+ "paid" => "Payé",
97
+ "unpaid" => "Non rémunéré",
98
+ "delivered" => "Livré",
99
+ "undelivered" => "Non livré",
100
  );
app/code/community/Youstice/YousticeResolutionSystem/SDK/languageStrings/pt.php CHANGED
@@ -3,7 +3,7 @@
3
  * Local Portugese translations
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
@@ -31,22 +31,10 @@ return array(
31
  "Waiting for retailer's response" => "Aguardando a resposta do varejista",
32
 
33
  //admin
34
- "Youstice" => "Youstice",
35
- "Your online justice" => "Your online justice",
36
- "We help customers and retailers resolve shopping issues quickly and effectively." => "We help customers and retailers resolve shopping issues quickly and effectively.",
37
- "Youstice is a global online application for customers and retailers" => "Youstice is a global online application for customers and retailers",
38
- "It allows quick and efficient communication between shops and customers" => "It allows quick and efficient communication between shops and customers",
39
- "Complaints are resolved in just a few clicks." => "Complaints are resolved in just a few clicks.",
40
  "Yes" => "Sim",
41
  "No" => "Não",
42
- "Products" => "Products",
43
- "Services" => "Services",
44
- "Settings" => "Settings",
45
- "Api Key" => "Api Key",
46
- "Use sandbox environment" => "Use sandbox environment",
47
- "This e-shop sells" => "This e-shop sells",
48
- "Default language" => "Default language",
49
- "Auto detection" => "Auto detection",
50
  "Are you sure you want to uninstall?" => "Tem certeza de que deseja desinstalar?",
51
  "Settings were saved successfully." => "As configurações foram salvas com sucesso.",
52
  "Invalid API KEY" => "API KEY Inválida",
@@ -79,8 +67,8 @@ return array(
79
  'Your API key can be found in Youstice application. Log in to Youstice' => 'Sua chave de API pode ser encontrada no aplicativo Youstice. Entre na Youstice',
80
  'or' => 'ou',
81
  'go to menu SHOPS, click on your shop and see API key on the bottom of the page.' => 'vá ao menu de lojas, clique na sua loja e veja a chave de API na parte inferior da página.',
82
- 'Need some help?' => 'Need some help?',
83
- 'Our support team is here for you' => 'Our support team is here for you',
84
  'Filing a claim without login' => 'INICIANDO UMA RECLAMAÇÃO SEM LOGIN',
85
  'Optionally, copy & paste the code below to any place on your website if you want to allow your customers to file claims without logging in based on the customer’s email address and order reference.' => 'Há também a opção de copiar e colar o código abaixo em qualquer lugar no seu site, Se você quiser permitir que os seus clientes iniciem uma reclamação sem fazer o login, utilizando apenas o email e o número da encomenda.',
86
  'Feel free to use this link on social networks. Post it proactively on Facebook, Google+, Twitter, etc. It will help to redirect negative opinions and potential complaints into Youstice and keep your wall clean.' => 'Feel free to use this link on social networks. Post it proactively on Facebook, Google+, Twitter, etc. It will help to redirect negative opinions and potential complaints into Youstice and keep your wall clean.',
@@ -90,14 +78,23 @@ return array(
90
  'It is also possible to report a problem with a specific item within an order.' => 'Também é possível relatar problema em um item específico da encomenda.',
91
  'Screenshots' => 'IMAGENS',
92
  "SAVE" => "SALVAR",
93
- "Remote service unavailable, please try again later" => "Remote service unavailable, please try again later",
 
 
 
 
 
 
 
94
 
95
  //orders page
96
- "Order date" => "Order date",
 
 
97
  "Total" => "Total",
98
  "_orderDateFormat" => "j.n.Y G:i:s",
99
- "paid" => "paid",
100
- "unpaid" => "unpaid",
101
- "delivered" => "delivered",
102
- "undelivered" => "undelivered",
103
  );
3
  * Local Portugese translations
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
31
  "Waiting for retailer's response" => "Aguardando a resposta do varejista",
32
 
33
  //admin
 
 
 
 
 
 
34
  "Yes" => "Sim",
35
  "No" => "Não",
36
+ "Default language" => "Idioma padrão",
37
+ "Auto detection" => "Detecção automática",
 
 
 
 
 
 
38
  "Are you sure you want to uninstall?" => "Tem certeza de que deseja desinstalar?",
39
  "Settings were saved successfully." => "As configurações foram salvas com sucesso.",
40
  "Invalid API KEY" => "API KEY Inválida",
67
  'Your API key can be found in Youstice application. Log in to Youstice' => 'Sua chave de API pode ser encontrada no aplicativo Youstice. Entre na Youstice',
68
  'or' => 'ou',
69
  'go to menu SHOPS, click on your shop and see API key on the bottom of the page.' => 'vá ao menu de lojas, clique na sua loja e veja a chave de API na parte inferior da página.',
70
+ 'Need some help?' => 'Precisa de ajuda?',
71
+ 'Our support team is here for you' => 'O nosso suporte está aqui para te ajudar',
72
  'Filing a claim without login' => 'INICIANDO UMA RECLAMAÇÃO SEM LOGIN',
73
  'Optionally, copy & paste the code below to any place on your website if you want to allow your customers to file claims without logging in based on the customer’s email address and order reference.' => 'Há também a opção de copiar e colar o código abaixo em qualquer lugar no seu site, Se você quiser permitir que os seus clientes iniciem uma reclamação sem fazer o login, utilizando apenas o email e o número da encomenda.',
74
  'Feel free to use this link on social networks. Post it proactively on Facebook, Google+, Twitter, etc. It will help to redirect negative opinions and potential complaints into Youstice and keep your wall clean.' => 'Feel free to use this link on social networks. Post it proactively on Facebook, Google+, Twitter, etc. It will help to redirect negative opinions and potential complaints into Youstice and keep your wall clean.',
78
  'It is also possible to report a problem with a specific item within an order.' => 'Também é possível relatar problema em um item específico da encomenda.',
79
  'Screenshots' => 'IMAGENS',
80
  "SAVE" => "SALVAR",
81
+ 'Check Our' => 'Veja a nossa',
82
+ 'LIVE DEMO' => 'LIVE DEMO',
83
+ 'Youstice: cURL is not installed, please install it.' => 'Youstice: cURL não foi instalada. Instale, por favor.',
84
+ 'Youstice: PDO is not installed, please install it.' => 'Youstice: PDO não foi instalado. Instale, por favor.',
85
+ 'Youstice: PECL finfo is not installed, please install it.' => 'Youstice: PECL finfo não foi instalado. Instale, por favor.',
86
+ "Remote service unavailable, please try again later" => "O serviço remoto não está disponível, por favor, tente novamente mais tarde",
87
+ "Invalid email" => "O endereço de email é inválido",
88
+ "Email or order number not found" => "O endereço de email ou o número do pedido não foi encontrado",
89
 
90
  //orders page
91
+ "Report claims on" => "Apresente uma reclamação",
92
+ "Your orders (%d)" => "Os seus pedidos (%d)",
93
+ "Order date" => "Data do pedido",
94
  "Total" => "Total",
95
  "_orderDateFormat" => "j.n.Y G:i:s",
96
+ "paid" => "pago",
97
+ "unpaid" => "não pago",
98
+ "delivered" => "entregue",
99
+ "undelivered" => "não entregue",
100
  );
app/code/community/Youstice/YousticeResolutionSystem/SDK/languageStrings/ru.php CHANGED
@@ -3,7 +3,7 @@
3
  * Local Russian translations
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
@@ -31,22 +31,10 @@ return array(
31
  "Waiting for retailer's response" => "В ожидании ответа розничного торговца",
32
 
33
  //admin
34
- "Youstice" => "Юстис",
35
- "Your online justice" => "Your online justice",
36
- "We help customers and retailers resolve shopping issues quickly and effectively." => "We help customers and retailers resolve shopping issues quickly and effectively.",
37
- "Youstice is a global online application for customers and retailers" => "Youstice is a global online application for customers and retailers",
38
- "It allows quick and efficient communication between shops and customers" => "It allows quick and efficient communication between shops and customers",
39
- "Complaints are resolved in just a few clicks." => "Complaints are resolved in just a few clicks.",
40
  "Yes" => "Да",
41
  "No" => "Нет",
42
- "Products" => "Products",
43
- "Services" => "Services",
44
- "Settings" => "Settings",
45
- "Api Key" => "Api Key",
46
- "Use sandbox environment" => "Use sandbox environment",
47
- "This e-shop sells" => "This e-shop sells",
48
- "Default language" => "Default language",
49
- "Auto detection" => "Auto detection",
50
  "Are you sure you want to uninstall?" => "Вы уверены, что хотите удалить?",
51
  "Settings were saved successfully." => "Настройки успешно сохранены.",
52
  "Invalid API KEY" => "Недействительный API-ключ",
@@ -90,14 +78,23 @@ return array(
90
  'It is also possible to report a problem with a specific item within an order.' => 'Также возможно сообщить о проблеме, связанной с определённым товаром в рамках отдельных заказов.',
91
  'Screenshots' => 'СКРИНШОТЫ (Снимки экрана)',
92
  "SAVE" => "СОХРАНИТЬ",
93
- "Remote service unavailable, please try again later" => "Remote service unavailable, please try again later",
 
 
 
 
 
 
 
94
 
95
  //orders page
96
- "Order date" => "Order date",
97
- "Total" => "Total",
 
 
98
  "_orderDateFormat" => "j.n.Y G:i:s",
99
- "paid" => "paid",
100
- "unpaid" => "unpaid",
101
- "delivered" => "delivered",
102
- "undelivered" => "undelivered",
103
  );
3
  * Local Russian translations
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
31
  "Waiting for retailer's response" => "В ожидании ответа розничного торговца",
32
 
33
  //admin
 
 
 
 
 
 
34
  "Yes" => "Да",
35
  "No" => "Нет",
36
+ "Default language" => "Язык по умолчанию",
37
+ "Auto detection" => "Автоматическая детекция",
 
 
 
 
 
 
38
  "Are you sure you want to uninstall?" => "Вы уверены, что хотите удалить?",
39
  "Settings were saved successfully." => "Настройки успешно сохранены.",
40
  "Invalid API KEY" => "Недействительный API-ключ",
78
  'It is also possible to report a problem with a specific item within an order.' => 'Также возможно сообщить о проблеме, связанной с определённым товаром в рамках отдельных заказов.',
79
  'Screenshots' => 'СКРИНШОТЫ (Снимки экрана)',
80
  "SAVE" => "СОХРАНИТЬ",
81
+ 'Check Our' => 'Попробуйте наше',
82
+ 'LIVE DEMO' => 'LIVE ДЕМО',
83
+ 'Youstice: cURL is not installed, please install it.' => 'Юстис: cURL не установлен, пожалуйста, установите его.',
84
+ 'Youstice: PDO is not installed, please install it.' => 'Юстис: PDO не установлен, пожалуйста, установите его.',
85
+ 'Youstice: PECL finfo is not installed, please install it.' => 'Юстис: PECL finfo не установлен, пожалуйста, установите его.',
86
+ "Remote service unavailable, please try again later" => "Дистанционное обслуживание недоступно, пожалуйста, попробуйте позже",
87
+ "Invalid email" => "Неверный адрес электронной почты",
88
+ "Email or order number not found" => "Адрес электронной почты или номер заказа не найдены",
89
 
90
  //orders page
91
+ "Report claims on" => "Предъявить претензию к",
92
+ "Your orders (%d)" => "Ваши заказы (%d)",
93
+ "Order date" => "Дата заказа",
94
+ "Total" => "Сума",
95
  "_orderDateFormat" => "j.n.Y G:i:s",
96
+ "paid" => "оплаченные",
97
+ "unpaid" => "неоплаченные",
98
+ "delivered" => "доставленные",
99
+ "undelivered" => "недоставленные",
100
  );
app/code/community/Youstice/YousticeResolutionSystem/SDK/languageStrings/sk.php CHANGED
@@ -3,7 +3,7 @@
3
  * Local Slovak translations
4
  *
5
  * @author Youstice
6
- * @copyright (c) 2014, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
@@ -31,18 +31,8 @@ return array(
31
  "Waiting for retailer's response" => "Čakanie na odpoveď od obchodníka",
32
 
33
  //admin
34
- "Youstice" => "Youstice",
35
- "Your online justice" => "Vaša online justícia",
36
- "We help customers and retailers resolve shopping issues quickly and effectively." => "Pomáhame spotrebiteľom a predajcom rýchlo a efektívne riešiť problémy spojené s nakupovaním.", "Youstice is a global online application for customers and retailers" => "Youstice je globálna online aplikácia pre spotrebiteľov a predajcov", "It allows quick and efficient communication between shops and customers" => "Umožňuje rýchlu a efektívnu komunikáciu medzi obchodmi a kupujúcimi.",
37
- "Complaints are resolved in just a few clicks." => "Sťažnosti je možné vyriešiť niekoľkými kliknutiami myšou.",
38
  "Yes" => "Áno",
39
  "No" => "Nie",
40
- "Products" => "Produkty",
41
- "Services" => "Služby",
42
- "Settings" => "Nastavenia",
43
- "Api Key" => "Api Kľúč",
44
- "Use sandbox environment" => "Používať testovacie prostredie",
45
- "This e-shop sells" => "Tento e-shop predáva",
46
  "Default language" => "Predvolený jazyk",
47
  "Auto detection" => "Automatická detekcia",
48
  "Are you sure you want to uninstall?" => "Naozaj si želáte odinštalovať?",
@@ -88,14 +78,24 @@ return array(
88
  'It is also possible to report a problem with a specific item within an order.' => 'Je tiež možné nahlásiť problém ohľadom konkrétnej položky, ktorá je súčasťou objednávky.',
89
  'Screenshots' => 'Screenshoty',
90
  "SAVE" => "ULOŽIŤ",
91
- "Remote service unavailable, please try again later" => "Remote service unavailable, please try again later",
 
 
 
 
 
 
 
 
92
 
93
  //orders page
94
- "Order date" => "Order date",
95
- "Total" => "Total",
 
 
96
  "_orderDateFormat" => "j.n.Y G:i:s",
97
- "paid" => "paid",
98
- "unpaid" => "unpaid",
99
- "delivered" => "delivered",
100
- "undelivered" => "undelivered",
101
  );
3
  * Local Slovak translations
4
  *
5
  * @author Youstice
6
+ * @copyright (c) 2015, Youstice
7
  * @license http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0
8
  */
9
 
31
  "Waiting for retailer's response" => "Čakanie na odpoveď od obchodníka",
32
 
33
  //admin
 
 
 
 
34
  "Yes" => "Áno",
35
  "No" => "Nie",
 
 
 
 
 
 
36
  "Default language" => "Predvolený jazyk",
37
  "Auto detection" => "Automatická detekcia",
38
  "Are you sure you want to uninstall?" => "Naozaj si želáte odinštalovať?",
78
  'It is also possible to report a problem with a specific item within an order.' => 'Je tiež možné nahlásiť problém ohľadom konkrétnej položky, ktorá je súčasťou objednávky.',
79
  'Screenshots' => 'Screenshoty',
80
  "SAVE" => "ULOŽIŤ",
81
+ 'Check Our' => 'Pozrite si naše',
82
+ 'LIVE DEMO' => 'DEMO',
83
+ 'Youstice: cURL is not installed, please install it.' => 'Youstice: cURL nie je nainštalované, prosím nainštalujte ho.',
84
+ 'Youstice: PDO is not installed, please install it.' => 'Youstice: PDO nie je nainštalované, prosím nainštalujte ho.',
85
+ 'Youstice: PECL finfo is not installed, please install it.' => 'Youstice: PECL finfo nie je nainštalované, prosím nainštalujte ho.',
86
+ "Remote service unavailable, please try again later" => "Vzdialená služba je nedostupná, skúste to neskôr prosím",
87
+
88
+ "Invalid email" => "Neplatný email",
89
+ "Email or order number not found" => "Email alebo číslo objednávky neboli nájdené",
90
 
91
  //orders page
92
+ "Report claims on" => "Reportuj sťažnosť na",
93
+ "Your orders (%d)" => "Vaše objednávky (%d)",
94
+ "Order date" => "Dátum objednávky",
95
+ "Total" => "Celkom",
96
  "_orderDateFormat" => "j.n.Y G:i:s",
97
+ "paid" => "zaplatené",
98
+ "unpaid" => "nezaplatené",
99
+ "delivered" => "doručené",
100
+ "undelivered" => "nedoručené",
101
  );
app/code/community/Youstice/YousticeResolutionSystem/controllers/IndexController.php CHANGED
@@ -45,7 +45,7 @@ class Youstice_YousticeResolutionSystem_IndexController extends Mage_Core_Contro
45
  $order_number = $this->getOrderNumber();
46
 
47
  if (!$this->customer_id) {
48
- echo json_encode(array('error' => 'Invalid email'));
49
  exit;
50
  }
51
 
@@ -60,7 +60,7 @@ class Youstice_YousticeResolutionSystem_IndexController extends Mage_Core_Contro
60
  }
61
 
62
  //order number not found in customer's orders
63
- echo json_encode(array('error' => 'Email or order number not found'));
64
  exit;
65
  }
66
 
@@ -94,6 +94,7 @@ class Youstice_YousticeResolutionSystem_IndexController extends Mage_Core_Contro
94
  }
95
 
96
  public function getLogoWidgetAction() {
 
97
  echo $this->api->get()->getLogoWidgetHtml(Mage::getUrl('youstice/index/getReportClaimsPage'), true);
98
  }
99
 
@@ -284,7 +285,7 @@ class Youstice_YousticeResolutionSystem_IndexController extends Mage_Core_Contro
284
 
285
  //how much left to pay
286
  if($order->getBaseTotalDue() == 0)
287
- $shopOrder->setPaymentState(Youstice_ShopOrder::PAYED);
288
 
289
  if($order->hasShipments())
290
  $shopOrder->setDeliveryState(Youstice_ShopOrder::DELIVERED);
45
  $order_number = $this->getOrderNumber();
46
 
47
  if (!$this->customer_id) {
48
+ echo json_encode(array('error' => $this->api->get()->t('Invalid email')));
49
  exit;
50
  }
51
 
60
  }
61
 
62
  //order number not found in customer's orders
63
+ echo json_encode(array('error' => $this->api->get()->t('Email or order number not found')));
64
  exit;
65
  }
66
 
94
  }
95
 
96
  public function getLogoWidgetAction() {
97
+ $this->api->get()->runWithoutUpdates();
98
  echo $this->api->get()->getLogoWidgetHtml(Mage::getUrl('youstice/index/getReportClaimsPage'), true);
99
  }
100
 
285
 
286
  //how much left to pay
287
  if($order->getBaseTotalDue() == 0)
288
+ $shopOrder->setPaymentState(Youstice_ShopOrder::PAID);
289
 
290
  if($order->hasShipments())
291
  $shopOrder->setDeliveryState(Youstice_ShopOrder::DELIVERED);
app/code/community/Youstice/YousticeResolutionSystem/etc/config.xml CHANGED
@@ -3,7 +3,7 @@
3
  <config>
4
  <modules>
5
  <Youstice_YousticeResolutionSystem>
6
- <version>1.3.3</version>
7
  </Youstice_YousticeResolutionSystem>
8
  </modules>
9
 
3
  <config>
4
  <modules>
5
  <Youstice_YousticeResolutionSystem>
6
+ <version>1.4.5</version>
7
  </Youstice_YousticeResolutionSystem>
8
  </modules>
9
 
app/code/community/Youstice/YousticeResolutionSystem/sql/youstice_setup/mysql4-install-0.9.8.php CHANGED
@@ -4,10 +4,17 @@ $this->setConfigData('youstice/api_key', '');
4
  $this->setConfigData('youstice/use_sandbox', 1);
5
  $this->setConfigData('youstice/shop_sells', 'product');
6
  $this->setConfigData('youstice/default_language', 'en');
 
7
 
8
  Mage::getConfig()->reinit();
9
  Mage::app()->reinitStores();
10
-
11
  $api = Mage::getSingleton('Youstice_YousticeResolutionSystem_Helper_ApiSingleton');
12
 
13
- $api->get()->install();
 
 
 
 
 
 
4
  $this->setConfigData('youstice/use_sandbox', 1);
5
  $this->setConfigData('youstice/shop_sells', 'product');
6
  $this->setConfigData('youstice/default_language', 'en');
7
+ $this->setConfigData('youstice/db_installed', 1);
8
 
9
  Mage::getConfig()->reinit();
10
  Mage::app()->reinitStores();
11
+
12
  $api = Mage::getSingleton('Youstice_YousticeResolutionSystem_Helper_ApiSingleton');
13
 
14
+ try {
15
+ $api->get()->install();
16
+ }
17
+ catch (Youstice_ApiException $e) {
18
+ //do nothing here, raise error in admin
19
+ $this->setConfigData('youstice/db_installed', 0);
20
+ }
app/design/adminhtml/default/default/template/youstice/adminForm.phtml CHANGED
@@ -1,5 +1,20 @@
1
  <?php
2
  $api = Mage::getSingleton('Youstice_YousticeResolutionSystem_Helper_ApiSingleton')->get();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  $apiKey = Mage::getStoreConfig('youstice/api_key');
4
  $useSandbox = Mage::getStoreConfig('youstice/use_sandbox');
5
  //$shopSells = Mage::getStoreConfig('youstice/shop_sells');
@@ -109,7 +124,7 @@ $reportClaimsLink = $this->getUrl('', array('_absolute' => true, '_secure' => tr
109
  <p class="empty">&nbsp;</p>
110
  <p>
111
  <b><?= $api->t('Need some help?') ?></b><br />
112
- <?= $api->t('Our support team is here for you') ?>: <a href="http://support.youstice.com/?utm_source=eshop&amp;utm_medium=cpc&amp;utm_content=magento_weblink&amp;utm_campaign=plugins" target="_blank">support.youstice.com</a>
113
  </p>
114
  </div>
115
 
1
  <?php
2
  $api = Mage::getSingleton('Youstice_YousticeResolutionSystem_Helper_ApiSingleton')->get();
3
+
4
+ //is properly installed?
5
+ try {
6
+ $api->checkIsProperlyInstalledWithExceptions();
7
+ } catch (Youstice_ApiException $e) {
8
+ exit('<ul class="messages"><li class="error-msg">'.$e->getMessage().'</li></ul>');
9
+ Mage::getSingleton('core/session')->addError($e->getMessage());
10
+ }
11
+
12
+ if(!Mage::getStoreConfig('youstice/db_installed')) {
13
+ $api = Mage::getSingleton('Youstice_YousticeResolutionSystem_Helper_ApiSingleton')->get();
14
+ $api->install();
15
+ Mage::getModel('core/config')->saveConfig('youstice/db_installed', 1);
16
+ }
17
+
18
  $apiKey = Mage::getStoreConfig('youstice/api_key');
19
  $useSandbox = Mage::getStoreConfig('youstice/use_sandbox');
20
  //$shopSells = Mage::getStoreConfig('youstice/shop_sells');
124
  <p class="empty">&nbsp;</p>
125
  <p>
126
  <b><?= $api->t('Need some help?') ?></b><br />
127
+ <?= $api->t('Our support team is here for you') ?>: <a href="http://support.youstice.com/?utm_source=eshop&amp;utm_medium=cpc&amp;utm_content=magento_weblink&amp;utm_campaign=plugins" target="_blank">support.youstice.com</a>
128
  </p>
129
  </div>
130
 
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Youstice</name>
4
- <version>1.3.9</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</license>
7
  <channel>community</channel>
@@ -10,9 +10,9 @@
10
  <description>Your online youstice</description>
11
  <notes>Retail version of the youstice resolution system package</notes>
12
  <authors><author><name>Youstice</name><user>Youstice</user><email>info@youstice.com</email></author></authors>
13
- <date>2014-12-14</date>
14
- <time>17:24:52</time>
15
- <contents><target name="magecommunity"><dir name="Youstice"><dir name="YousticeResolutionSystem"><dir name="Helper"><file name="ApiSingleton.php" hash="37f05528eca3a4ae9dd156831e3a09a5"/></dir><dir name="SDK"><file name="Api.php" hash="e06a2101e1a7cc6700d5875a28df08d9"/><dir name="Helpers"><file name="HelperFunctions.php" hash="6b617b0dd77c96cb7c6ed52fd15b01a6"/><file name="LanguageCodes.php" hash="488fc1c06161aab5cbcb580377eea934"/></dir><file name="Local.php" hash="9993f464c62fc7c3421436342392875c"/><file name="LocalInterface.php" hash="fcfc41d1ea328c20f54fc1baa94b673e"/><dir name="Providers"><file name="SessionProvider.php" hash="90d811d9d73a0651af38c2df00b91467"/><file name="SessionProviderInterface.php" hash="3ade50afbcedc08f75880735d8d2d5ab"/></dir><file name="Remote.php" hash="78317afb3158c65ae2d76910953ce0a9"/><dir name="Reports"><file name="BaseReport.php" hash="e78e9b72a9ee74ec85cb0b999770a660"/><file name="OrderReport.php" hash="668d077abe681e561b241af863eb593e"/><file name="ProductReport.php" hash="d80b87d96e692be612797f5093daaff0"/><file name="WebReport.php" hash="a4059750c3b4bdb3678048a11fe35ec2"/></dir><file name="Request.php" hash="27a0322619a27fa627e6f9884db879e2"/><file name="ShopItem.php" hash="6ca5e4db6310e70ff7af47e4b68db893"/><file name="ShopOrder.php" hash="8807822040c6e2314c34598d691010ec"/><file name="ShopProduct.php" hash="c3d4fac07e260945e8add8907d1acf33"/><file name="SimpleApi.php" hash="8cd5fd640fc4638f94728e2df17bc96d"/><file name="Tools.php" hash="cd5150d93f83d31effa08449499c9b71"/><file name="Translator.php" hash="72dec403567aecb42b754f228cc98cd9"/><dir name="Widgets"><file name="OrderDetail.php" hash="7dcee72310b3d78af5db714307a33c47"/><file name="OrderDetailButton.php" hash="8d4e9a37bf356eb0142fa3c3e27eee2b"/><file name="OrderReportButton.php" hash="b0a3f58aa55023d9a42bdfbc8dcd1f9a"/><file name="OrdersPage.php" hash="e564e2465e79c0e667a532efc5e15cf3"/><file name="ProductReportButton.php" hash="cb97d9630a9ba947f5fb560d42797628"/><file name="ReportClaimsForm.php" hash="fb95a3dce472b26442cfe8a2e32afe61"/><file name="ShowButtons.php" hash="8c5104a61e0d4911838f289b13d965ef"/><file name="WebReportButton.php" hash="109aee1464d97f4591adac8201b30691"/></dir><dir name="languageStrings"><file name="cs.php" hash="fef62157dc122372dd3ca7ba8acbcae5"/><file name="de.php" hash="00061fadd6cb73e43c549a97037e8ea4"/><file name="en.php" hash="83fabc3bb64bb46ef601ae9154ba5563"/><file name="es.php" hash="b94065c6007765ee7770b8b42d2bd46f"/><file name="fr.php" hash="75261d3f02b816f348fc83b347dbdcfa"/><file name="pt.php" hash="9b0923c7e573a55792b58de8f40a0845"/><file name="ru.php" hash="75f4d72d5decd27b9b352dfb9b0670ee"/><file name="sk.php" hash="4d2716d9d760469b3e656b594bbc2e2c"/></dir></dir><dir name="controllers"><file name="AdminController.php" hash="de146da6598df8ccfd9697c516b1044c"/><file name="IndexController.php" hash="69c88031ed132699d551f2e28f9f7fdc"/></dir><dir name="etc"><file name="adminhtml.xml" hash="cedaa07c7d693302a23daaad79fcca3d"/><file name="config.xml" hash="4bec55f4cbb26f9d8cc22c98164ab5bd"/></dir><dir name="sql"><dir name="youstice_setup"><file name="mysql4-install-0.9.8.php" hash="819cb1bb6743e9765910c1123ab3d4e2"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="youstice_layout_update.xml" hash="1cb43a482e15bea8cd356999d8b66f3e"/></dir><dir name="template"><dir name="youstice"><file name="baseUrl.phtml" hash="3d4dacc70fad8853838edb17774750a3"/><file name="reportClaims.phtml" hash="91251ca1bb8a9e6f6453ca7e979f53fb"/><file name="reportClaimsOgTags.phtml" hash="c149c54db5885d8045eff405dac24c2e"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="youstice_layout_update.xml" hash="f5a64acda38bcb12c039fe13f340f9de"/></dir><dir name="template"><dir name="youstice"><file name="adminForm.phtml" hash="cd78e7206792a9791a154cfaf721e7ac"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Youstice_YousticeResolutionSystem.xml" hash="96f910a20f7fa55ccd25f82da9974341"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><file name="youstice.css" hash="9473797b2476eef00cb57e5780b10243"/><file name="youstice_magento.css" hash="9a88cdb943794db3fa4d2f171ce83d63"/><dir name="fancybox"><file name="blank.gif" hash="325472601571f31e1bf00674c368d335"/><file name="fancybox_loading.gif" hash="328cc0f6c78211485058d460e80f4fa8"/><file name="fancybox_loading@2x.gif" hash="f92938639fa894a0e8ded1c3368abe98"/><file name="fancybox_overlay.png" hash="77aeaa52715b898b73c74d68c630330e"/><file name="fancybox_sprite.png" hash="783d4031fe50c3d83c960911e1fbc705"/><file name="fancybox_sprite@2x.png" hash="ed9970ce22242421e66ff150aa97fe5f"/><file name="jquery.fancybox.css" hash="6c55951ce1e3115711f63f99b7501f3a"/></dir></dir><dir name="images"><dir name="youstice"><file name="logo.png" hash="64c2b8699997d46dce66e75da28c247b"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><file name="yousticeAdmin.css" hash="e2cd7aaae3dbac09a16d32221a187e14"/><dir name="images"><dir name="youstice"><file name="screenshot_1.png" hash="fd032fb3ccdc167ed588e6a962acc973"/><file name="screenshot_2.png" hash="b9c9308c0ea193cbf84d70b4635d1f22"/><file name="screenshot_3.png" hash="defd41dc513159eb5a58c26d95030fc4"/></dir></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="youstice"><file name="admin.js" hash="94c0295707277b801da120abaf47b1be"/><file name="jquery.fancybox.js" hash="921e9cb04ad6e2559869ec845c5be39b"/><file name="jquery.min.js" hash="96ef50d4f9b32f3413c46f83c12b279e"/><file name="logoWidget.js" hash="92e0f982382f4dd47b3db05304139b5e"/><file name="orders.js" hash="33c3436a301b8a7646084795a4a37a9a"/><file name="products.js" hash="8dcdd7a917ec0a095bfc1447cbed0c01"/><file name="reportClaims.js" hash="2f3fce230dfc8a1c359f43df04fd83dc"/></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.3.0</min><max>10.0.0</max></php></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Youstice</name>
4
+ <version>1.5.5</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</license>
7
  <channel>community</channel>
10
  <description>Your online youstice</description>
11
  <notes>Retail version of the youstice resolution system package</notes>
12
  <authors><author><name>Youstice</name><user>Youstice</user><email>info@youstice.com</email></author></authors>
13
+ <date>2015-02-10</date>
14
+ <time>12:20:10</time>
15
+ <contents><target name="magecommunity"><dir name="Youstice"><dir name="YousticeResolutionSystem"><dir name="Helper"><file name="ApiSingleton.php" hash="37f05528eca3a4ae9dd156831e3a09a5"/></dir><dir name="SDK"><file name="Api.php" hash="a0bcb30607f0e3c9787891c9457df76c"/><dir name="Helpers"><file name="HelperFunctions.php" hash="58fb74b2aef5f65b1f177b8ca5d6eab4"/><file name="LanguageCodes.php" hash="d6fea8fc0e0f0a09e214dc4de78e9883"/></dir><file name="Local.php" hash="afb5907fde3bff1b4e20a33a0465a808"/><file name="LocalInterface.php" hash="0c5c0aa59c3d07b9f20772e7f12a0fa1"/><dir name="Providers"><file name="SessionProvider.php" hash="90d811d9d73a0651af38c2df00b91467"/><file name="SessionProviderInterface.php" hash="df678e30107fe22b7140262be6ab8361"/></dir><file name="Remote.php" hash="3a96dfbc0b08363a6d449be194018a72"/><dir name="Reports"><file name="BaseReport.php" hash="7228bf34cb41f7314b2a8bdf5f07c1b4"/><file name="OrderReport.php" hash="5eac58c771e3a39c0a9a49417c53831d"/><file name="ProductReport.php" hash="71ce3ecabd7b0912be653f2b7b2662cf"/><file name="WebReport.php" hash="15c4d7d43b5a054a41cf420d033f915e"/></dir><file name="Request.php" hash="e9685cf1f24a32b9ddcb95368c6c1203"/><file name="ShopItem.php" hash="ba28026aef2865433a258d50dd015660"/><file name="ShopOrder.php" hash="dd97b5ecdba73a552be6dc127c0f27dd"/><file name="ShopProduct.php" hash="b85df78aecc1313a572d288da145323f"/><file name="SimpleApi.php" hash="3bc52595d6c630190331f6370a4cb1fa"/><file name="Tools.php" hash="ce2bba77d083f2cb74a56bb826f970ce"/><file name="Translator.php" hash="e463e16d3bbf1f765ab563f9bf63b919"/><dir name="Widgets"><file name="OrderDetail.php" hash="a9128b170a1d3cc9d51cb84727b4c46c"/><file name="OrderDetailButton.php" hash="0a070b700596246bfc84b142d2fac779"/><file name="OrderReportButton.php" hash="93baf83cfb90ebecbcb51ba695a59307"/><file name="OrdersPage.php" hash="ff0dfdd1fbbb77e633d98c57436e935f"/><file name="ProductReportButton.php" hash="83bb7921379b8b66bd3c731e07da42d0"/><file name="ReportClaimsForm.php" hash="73e36515f7dea0f9bef2cfc0346535f3"/><file name="ShowButtons.php" hash="a76e11c748434e3c07dbb8e38cba9b2e"/><file name="WebReportButton.php" hash="d2266f276f9b2906694fa32a924871d9"/></dir><dir name="languageStrings"><file name="cs.php" hash="52198658b4dc0cb2ef3d62d9888c4841"/><file name="de.php" hash="35fe75e49b3f236460e59a1c84529d7a"/><file name="en.php" hash="76215e7c165407b498b27219d47a29b6"/><file name="es.php" hash="3b0e9a0d066c39183079473d7e63a67f"/><file name="fr.php" hash="e9cbdb88a5563ad8981e14feb35d822a"/><file name="pt.php" hash="e6c0cf239ea77447f4d9cf09a0729755"/><file name="ru.php" hash="47a3eda2999c1dd55ea058f77d6e8b10"/><file name="sk.php" hash="b29c3d3d3fea7500b05a555063e8b12e"/></dir></dir><dir name="controllers"><file name="AdminController.php" hash="de146da6598df8ccfd9697c516b1044c"/><file name="IndexController.php" hash="5f8a7f9a0ac9a8945ad684d396ebf85e"/></dir><dir name="etc"><file name="adminhtml.xml" hash="cedaa07c7d693302a23daaad79fcca3d"/><file name="config.xml" hash="9eb822794f463a1993a0b7b9be414137"/></dir><dir name="sql"><dir name="youstice_setup"><file name="mysql4-install-0.9.8.php" hash="f8aaefdf6e687a48645392956fb76ffa"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="youstice_layout_update.xml" hash="1cb43a482e15bea8cd356999d8b66f3e"/></dir><dir name="template"><dir name="youstice"><file name="baseUrl.phtml" hash="3d4dacc70fad8853838edb17774750a3"/><file name="reportClaims.phtml" hash="91251ca1bb8a9e6f6453ca7e979f53fb"/><file name="reportClaimsOgTags.phtml" hash="c149c54db5885d8045eff405dac24c2e"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="youstice_layout_update.xml" hash="f5a64acda38bcb12c039fe13f340f9de"/></dir><dir name="template"><dir name="youstice"><file name="adminForm.phtml" hash="5c81cbfd47bf26ad7beb9b32619c2f62"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Youstice_YousticeResolutionSystem.xml" hash="96f910a20f7fa55ccd25f82da9974341"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><file name="youstice.css" hash="4097610e91c36600f67fc2d6e421c07b"/><file name="youstice_magento.css" hash="9a88cdb943794db3fa4d2f171ce83d63"/><dir name="fancybox"><file name="blank.gif" hash="325472601571f31e1bf00674c368d335"/><file name="fancybox_loading.gif" hash="328cc0f6c78211485058d460e80f4fa8"/><file name="fancybox_loading@2x.gif" hash="f92938639fa894a0e8ded1c3368abe98"/><file name="fancybox_overlay.png" hash="77aeaa52715b898b73c74d68c630330e"/><file name="fancybox_sprite.png" hash="783d4031fe50c3d83c960911e1fbc705"/><file name="fancybox_sprite@2x.png" hash="ed9970ce22242421e66ff150aa97fe5f"/><file name="jquery.fancybox.css" hash="6c55951ce1e3115711f63f99b7501f3a"/></dir></dir><dir name="images"><dir name="youstice"><file name="logo.png" hash="64c2b8699997d46dce66e75da28c247b"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><file name="yousticeAdmin.css" hash="d5cf0ee9616b202df9fce3fb084ddd22"/><dir name="images"><dir name="youstice"><file name="screenshot_1.png" hash="fd032fb3ccdc167ed588e6a962acc973"/><file name="screenshot_2.png" hash="b9c9308c0ea193cbf84d70b4635d1f22"/><file name="screenshot_3.png" hash="defd41dc513159eb5a58c26d95030fc4"/></dir></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="youstice"><file name="admin.js" hash="94c0295707277b801da120abaf47b1be"/><file name="jquery.fancybox.js" hash="921e9cb04ad6e2559869ec845c5be39b"/><file name="jquery.min.js" hash="96ef50d4f9b32f3413c46f83c12b279e"/><file name="logoWidget.js" hash="92e0f982382f4dd47b3db05304139b5e"/><file name="orders.js" hash="33c3436a301b8a7646084795a4a37a9a"/><file name="products.js" hash="8dcdd7a917ec0a095bfc1447cbed0c01"/><file name="reportClaims.js" hash="2f3fce230dfc8a1c359f43df04fd83dc"/></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.3.0</min><max>10.0.0</max></php></required></dependencies>
18
  </package>
skin/adminhtml/default/default/yousticeAdmin.css CHANGED
@@ -28,9 +28,10 @@
28
  }
29
 
30
  .yContainer a.roundedAnchor.centered {
 
31
  display: block;
32
  margin: 0 auto;
33
- max-width: 120px;
34
  }
35
 
36
  .yContainer p {
@@ -135,6 +136,7 @@
135
  background-repeat: no-repeat;
136
  background-size : 38px;
137
  line-height: 38px;
 
138
  margin: 9px 0 14px;
139
  color: #7d277d;
140
  padding-left: 65px;
@@ -142,6 +144,12 @@
142
  text-transform: uppercase;
143
  }
144
 
 
 
 
 
 
 
145
  .yContainer .yBlock.yHidden h2 {
146
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA6CAYAAADspTpvAAAABHNCSVQICAgIfAhkiAAABcdJREFUaIHtWr1uG0cQntkjCAHU6ZjCoHG3huk3kLp0prqkCvUEprq4slWltPQEkstUlMtUpqsklegunZgnEAPsHuIqpJYELMu3k0JH43Tco3nH4yIB+FW63dXON/szOz8E2GCDDf7PQJvCfN/fZYy9RcQmAAARnQkhjmxycGwJ8jyvvrW1dYmID2dtiPjtzs5O/fr6+ndbPJgtQbVarY2IdUNXxxYHAIsKZyhrHdYU/vz5cy+jK6t9LbB2h6fT6Wh7e/svRGwh4hYAABH1lVKHNzc3H23xsLbDAADT6TS9m8PxeDyyycGqwgbD1fY8z+rdtqowY+xF8hsR67VarW2Vgy1Bvu/vIuLuHAHGXtniAGBR4fTuzoCIzSAIWtZ42BDieV4dETtZ/Yj4zAYPAEsKb29vdxb1I2Kn0Wg0bXCxojAiGo9zEpVKpWOByvoV5py3Z9HRDER0RkT33l9bx3rtChPRnCK3t7evieh1sg0Rm77vd9bNxxgPNxqN5uyIEdEwDMPzIpM3Go1mtVq9SrZprXtSygNTHxH1hRD7RWQBfHn62vFcvTAMB+kxcwrHQfpF0iMionMhxGFeApzzU0R8mWwjogMhRC/u76at96dPn558+PBhmFeW7/sdx3G6ybYoig7TmzWnMOf80uQgRFF0iIhDgDsPiYi+jEHExwDQTAxvpu8twN1pEUI8mX0HQdBijF2YFCCiAQCMEt/vU0P69xRBfJsOQYloJIT45t64tKBHjx6RiUAZ0FofSSnPkm2c8yvT4pQoc19K2Z99zxmteGVLBxGNJpPJuYHQyTrkzTCZTO7pY7LS6yLQM4WC0+m0l36iygIRnaVlGq107Nu+iO/qOyIaMcZOTWkaIholnph+st1kJZdB0rcmoiYiNhHxcZZ7SkQDpdR+rVZrM8aeAQBord+YXpel07Sx9e6aDNpM4LqCec55GwC6GQueK9WbKy/teV7ddd1T00oT0UhrvV90V7MQBMGxKYSM5R3l9RFy5bRubm4+Xl9fv3Ndd4yI3yX7EHGLMfaj67pjpdQfeeY1wfO8+oMHD35ljHXSfUQ01Fp/H4bhb3nnLVx5MDkoCULnSqmjokc8XaFIQmvdm0wmh0XnXqnUEh/xt4jYSvcR0eD29vYgr9fk+34ny0BqrU+klMeFCUNJtSWTCwlwd8+UUk+W3Y0gCF4yxk5N8xDRQdKBKIpSoiUhxFEURYem9zTP0Zu5rknEJ2WvDGUBSgwPTdaSiPp55lBKmcb3iwQTWShN4Tg0Szvv7/LMMR6PRwbXtrUqtyRKU9hkuKIo6pvG+r7fycpUphcJEXfLzHeVqfAPyW8iGqaPYhAELc75peM4XcbYBef81FB56KfndhynVRbPde5wf/aH53l1znk3freTcfRL13Wvkqkdk3FijD0ti2cpCse+7j1ord8D3B1f13Wvshx/RKw7jtPlnF/4vr8b/2+66NYqgydAeTs8twOIOOScXziOY3T6DeNbjuNcBkFwDAB/pvqas8VYFZUyJgHDDixI3YyI6AQAnjLG5k4GY+yV6T2Pr8zKgcnKOxyXUZZafa11L3YizqSUB0R0QETD9LiME1HKPV5Z4WXKnUQ0jF3De761EKKnlNpbJs1jevaKYGWFv2ZBtdYnSqm9WWo2jfF4PJJSHkdRtLfIM0PEehlVxjKMlpEEEfWjKNqTUh4v40+HYTgQQuxn+eSLZOVB4R+1+L6/63neT+lEQJyJeC6lPFJK/Z13XqXUABF/rlarDw22oem67jc7OzuglBoW4V0oPFyQdlkp8DfIaSHiaUYerdDPFnMrbKoJxQQGQoi9vPMtA875PybLXaQsk/sOVyqVpql92aepCLIclywui1CaL72uZPqiuYvIzK2wlLJvKsek671lwjS31tpYDv0aCllpRPylWq0+hLvq3lBrfRKG4dnX/q8olFL9+GeLdQAYEtEbKeXzdcnbYIMNNvjP4F+2NOCNC6gMhAAAAABJRU5ErkJggg==);
147
  color: #7f7f7f;
28
  }
29
 
30
  .yContainer a.roundedAnchor.centered {
31
+ box-sizing: content-box;
32
  display: block;
33
  margin: 0 auto;
34
+ max-width: 220px;
35
  }
36
 
37
  .yContainer p {
136
  background-repeat: no-repeat;
137
  background-size : 38px;
138
  line-height: 38px;
139
+ font-size: 1.7em;
140
  margin: 9px 0 14px;
141
  color: #7d277d;
142
  padding-left: 65px;
144
  text-transform: uppercase;
145
  }
146
 
147
+ .yContainer .yBlock hr {
148
+ width: calc(100% + 40px);
149
+ position: relative;
150
+ left: -20px;
151
+ }
152
+
153
  .yContainer .yBlock.yHidden h2 {
154
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA6CAYAAADspTpvAAAABHNCSVQICAgIfAhkiAAABcdJREFUaIHtWr1uG0cQntkjCAHU6ZjCoHG3huk3kLp0prqkCvUEprq4slWltPQEkstUlMtUpqsklegunZgnEAPsHuIqpJYELMu3k0JH43Tco3nH4yIB+FW63dXON/szOz8E2GCDDf7PQJvCfN/fZYy9RcQmAAARnQkhjmxycGwJ8jyvvrW1dYmID2dtiPjtzs5O/fr6+ndbPJgtQbVarY2IdUNXxxYHAIsKZyhrHdYU/vz5cy+jK6t9LbB2h6fT6Wh7e/svRGwh4hYAABH1lVKHNzc3H23xsLbDAADT6TS9m8PxeDyyycGqwgbD1fY8z+rdtqowY+xF8hsR67VarW2Vgy1Bvu/vIuLuHAHGXtniAGBR4fTuzoCIzSAIWtZ42BDieV4dETtZ/Yj4zAYPAEsKb29vdxb1I2Kn0Wg0bXCxojAiGo9zEpVKpWOByvoV5py3Z9HRDER0RkT33l9bx3rtChPRnCK3t7evieh1sg0Rm77vd9bNxxgPNxqN5uyIEdEwDMPzIpM3Go1mtVq9SrZprXtSygNTHxH1hRD7RWQBfHn62vFcvTAMB+kxcwrHQfpF0iMionMhxGFeApzzU0R8mWwjogMhRC/u76at96dPn558+PBhmFeW7/sdx3G6ybYoig7TmzWnMOf80uQgRFF0iIhDgDsPiYi+jEHExwDQTAxvpu8twN1pEUI8mX0HQdBijF2YFCCiAQCMEt/vU0P69xRBfJsOQYloJIT45t64tKBHjx6RiUAZ0FofSSnPkm2c8yvT4pQoc19K2Z99zxmteGVLBxGNJpPJuYHQyTrkzTCZTO7pY7LS6yLQM4WC0+m0l36iygIRnaVlGq107Nu+iO/qOyIaMcZOTWkaIholnph+st1kJZdB0rcmoiYiNhHxcZZ7SkQDpdR+rVZrM8aeAQBord+YXpel07Sx9e6aDNpM4LqCec55GwC6GQueK9WbKy/teV7ddd1T00oT0UhrvV90V7MQBMGxKYSM5R3l9RFy5bRubm4+Xl9fv3Ndd4yI3yX7EHGLMfaj67pjpdQfeeY1wfO8+oMHD35ljHXSfUQ01Fp/H4bhb3nnLVx5MDkoCULnSqmjokc8XaFIQmvdm0wmh0XnXqnUEh/xt4jYSvcR0eD29vYgr9fk+34ny0BqrU+klMeFCUNJtSWTCwlwd8+UUk+W3Y0gCF4yxk5N8xDRQdKBKIpSoiUhxFEURYem9zTP0Zu5rknEJ2WvDGUBSgwPTdaSiPp55lBKmcb3iwQTWShN4Tg0Szvv7/LMMR6PRwbXtrUqtyRKU9hkuKIo6pvG+r7fycpUphcJEXfLzHeVqfAPyW8iGqaPYhAELc75peM4XcbYBef81FB56KfndhynVRbPde5wf/aH53l1znk3freTcfRL13Wvkqkdk3FijD0ti2cpCse+7j1ord8D3B1f13Wvshx/RKw7jtPlnF/4vr8b/2+66NYqgydAeTs8twOIOOScXziOY3T6DeNbjuNcBkFwDAB/pvqas8VYFZUyJgHDDixI3YyI6AQAnjLG5k4GY+yV6T2Pr8zKgcnKOxyXUZZafa11L3YizqSUB0R0QETD9LiME1HKPV5Z4WXKnUQ0jF3De761EKKnlNpbJs1jevaKYGWFv2ZBtdYnSqm9WWo2jfF4PJJSHkdRtLfIM0PEehlVxjKMlpEEEfWjKNqTUh4v40+HYTgQQuxn+eSLZOVB4R+1+L6/63neT+lEQJyJeC6lPFJK/Z13XqXUABF/rlarDw22oem67jc7OzuglBoW4V0oPFyQdlkp8DfIaSHiaUYerdDPFnMrbKoJxQQGQoi9vPMtA875PybLXaQsk/sOVyqVpql92aepCLIclywui1CaL72uZPqiuYvIzK2wlLJvKsek671lwjS31tpYDv0aCllpRPylWq0+hLvq3lBrfRKG4dnX/q8olFL9+GeLdQAYEtEbKeXzdcnbYIMNNvjP4F+2NOCNC6gMhAAAAABJRU5ErkJggg==);
155
  color: #7f7f7f;
skin/frontend/base/default/css/youstice.css CHANGED
@@ -78,7 +78,7 @@ form#yReportClaims p {
78
  min-width: 790px;
79
  min-height: 320px;
80
  margin: 8px;
81
- font-family:"Times New Roman", Times, serif;
82
  color: #000;
83
  }
84
 
@@ -100,10 +100,12 @@ form#yReportClaims p {
100
  text-align: left;
101
  font-weight: bold;
102
  color: #000;
 
103
  }
104
 
105
  .orderDetailWrap table {
106
- font-size: 15px
 
107
  }
108
 
109
  .orderDetailWrap .topRightWrap {
@@ -143,10 +145,11 @@ form#yReportClaims p {
143
  text-align: left;
144
  border: 0;
145
  color: #000;
 
146
  }
147
 
148
  .orderDetailWrap table tr td:last-child {
149
- width: 250px;
150
  font-size: 11px;
151
  }
152
 
@@ -237,19 +240,19 @@ form#yReportClaims p {
237
 
238
  /* ORANGE */
239
  .yrsButton-escalated-to-odr {
240
- background-color: #f67130;
241
  border-color: #d5473b;
242
  }
243
 
244
  /* YELLOW */
245
  .yrsButton-waiting-for-decision {
246
- background-color: #e79f22;
247
  border-color: #bd7100;
248
  }
249
 
250
  /* GREEN */
251
  .yrsButton-to-be-implemented, .yrsButton-waiting-for-retailer-s-response {
252
- background-color: #367f3a;
253
  border-color: #116e42
254
  }
255
 
@@ -298,3 +301,4 @@ form#yReportClaims p {
298
  .ordersPageWrap table tr td:last-child a {
299
  float: none;
300
  }
 
78
  min-width: 790px;
79
  min-height: 320px;
80
  margin: 8px;
81
+ font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
82
  color: #000;
83
  }
84
 
100
  text-align: left;
101
  font-weight: bold;
102
  color: #000;
103
+ font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
104
  }
105
 
106
  .orderDetailWrap table {
107
+ font-size: 15px;
108
+ border: 0 !important;
109
  }
110
 
111
  .orderDetailWrap .topRightWrap {
145
  text-align: left;
146
  border: 0;
147
  color: #000;
148
+ line-height: 1.6;
149
  }
150
 
151
  .orderDetailWrap table tr td:last-child {
152
+ width: 275px;
153
  font-size: 11px;
154
  }
155
 
240
 
241
  /* ORANGE */
242
  .yrsButton-escalated-to-odr {
243
+ background-color: #f67130 !important;
244
  border-color: #d5473b;
245
  }
246
 
247
  /* YELLOW */
248
  .yrsButton-waiting-for-decision {
249
+ background-color: #e79f22 !important;
250
  border-color: #bd7100;
251
  }
252
 
253
  /* GREEN */
254
  .yrsButton-to-be-implemented, .yrsButton-waiting-for-retailer-s-response {
255
+ background-color: #367f3a !important;
256
  border-color: #116e42
257
  }
258
 
301
  .ordersPageWrap table tr td:last-child a {
302
  float: none;
303
  }
304
+