Chargeback - Version 1.0.0

Version Notes

Connect Magento to Chargeback app.

Download this release

Release Info

Developer Scott Stone
Extension Chargeback
Version 1.0.0
Comparing to
See all releases


Version 1.0.0

Files changed (183) hide show
  1. app/code/community/Chargeback/Auth/Block/Completed.php +12 -0
  2. app/code/community/Chargeback/Auth/Block/Hidden.php +9 -0
  3. app/code/community/Chargeback/Auth/Helper/Data.php +95 -0
  4. app/code/community/Chargeback/Auth/Model/Observer.php +43 -0
  5. app/code/community/Chargeback/Auth/etc/adminhtml.xml +22 -0
  6. app/code/community/Chargeback/Auth/etc/api.xml +41 -0
  7. app/code/community/Chargeback/Auth/etc/config.xml +52 -0
  8. app/code/community/Chargeback/Auth/etc/system.xml +64 -0
  9. app/design/adminhtml/default/default/etc/theme.xml +30 -0
  10. app/design/adminhtml/default/default/layout/admin.xml +96 -0
  11. app/design/adminhtml/default/default/layout/adminnotification.xml +38 -0
  12. app/design/adminhtml/default/default/layout/api2.xml +147 -0
  13. app/design/adminhtml/default/default/layout/authorizenet.xml +35 -0
  14. app/design/adminhtml/default/default/layout/bundle.xml +118 -0
  15. app/design/adminhtml/default/default/layout/captcha.xml +48 -0
  16. app/design/adminhtml/default/default/layout/catalog.xml +332 -0
  17. app/design/adminhtml/default/default/layout/centinel.xml +70 -0
  18. app/design/adminhtml/default/default/layout/chargeback/auth.xml +10 -0
  19. app/design/adminhtml/default/default/layout/chargeback/htmlBlock.phtml +17 -0
  20. app/design/adminhtml/default/default/layout/cms.xml +97 -0
  21. app/design/adminhtml/default/default/layout/compiler.xml +35 -0
  22. app/design/adminhtml/default/default/layout/connect.xml +73 -0
  23. app/design/adminhtml/default/default/layout/currencysymbol.xml +34 -0
  24. app/design/adminhtml/default/default/layout/customer.xml +126 -0
  25. app/design/adminhtml/default/default/layout/dataflow.xml +59 -0
  26. app/design/adminhtml/default/default/layout/default/htmlBlock.phtml +17 -0
  27. app/design/adminhtml/default/default/layout/downloadable.xml +97 -0
  28. app/design/adminhtml/default/default/layout/giftmessage.xml +82 -0
  29. app/design/adminhtml/default/default/layout/htmlBlock.phtml +17 -0
  30. app/design/adminhtml/default/default/layout/importexport.xml +59 -0
  31. app/design/adminhtml/default/default/layout/index.xml +51 -0
  32. app/design/adminhtml/default/default/layout/main.xml +293 -0
  33. app/design/adminhtml/default/default/layout/moneybookers.xml +28 -0
  34. app/design/adminhtml/default/default/layout/newsletter.xml +67 -0
  35. app/design/adminhtml/default/default/layout/oauth.xml +194 -0
  36. app/design/adminhtml/default/default/layout/pagecache.xml +35 -0
  37. app/design/adminhtml/default/default/layout/promo.xml +101 -0
  38. app/design/adminhtml/default/default/layout/report.xml +55 -0
  39. app/design/adminhtml/default/default/layout/rss.xml +45 -0
  40. app/design/adminhtml/default/default/layout/sales.xml +1080 -0
  41. app/design/adminhtml/default/default/layout/search.xml +35 -0
  42. app/design/adminhtml/default/default/layout/tag.xml +88 -0
  43. app/design/adminhtml/default/default/layout/tax.xml +34 -0
  44. app/design/adminhtml/default/default/layout/widget.xml +69 -0
  45. app/design/adminhtml/default/default/layout/xmlconnect.xml +282 -0
  46. app/design/adminhtml/default/default/locale/en_US/translate.csv +201 -0
  47. app/design/adminhtml/default/default/template/access_denied.phtml +40 -0
  48. app/design/adminhtml/default/default/template/api/role_users_grid_js.phtml +105 -0
  49. app/design/adminhtml/default/default/template/api/roleinfo.phtml +47 -0
  50. app/design/adminhtml/default/default/template/api/roles.phtml +37 -0
  51. app/design/adminhtml/default/default/template/api/rolesedit.phtml +143 -0
  52. app/design/adminhtml/default/default/template/api/rolesusers.phtml +28 -0
  53. app/design/adminhtml/default/default/template/api/user_roles_grid_js.phtml +85 -0
  54. app/design/adminhtml/default/default/template/api/userinfo.phtml +52 -0
  55. app/design/adminhtml/default/default/template/api/usernroles.phtml +31 -0
  56. app/design/adminhtml/default/default/template/api/userroles.phtml +45 -0
  57. app/design/adminhtml/default/default/template/api/users.phtml +40 -0
  58. app/design/adminhtml/default/default/template/api2/attribute/buttons.phtml +53 -0
  59. app/design/adminhtml/default/default/template/api2/attribute/resource.phtml +158 -0
  60. app/design/adminhtml/default/default/template/api2/permissions/user/edit/tab/roles/js.phtml +59 -0
  61. app/design/adminhtml/default/default/template/api2/role/buttons.phtml +52 -0
  62. app/design/adminhtml/default/default/template/api2/role/users_grid_js.phtml +122 -0
  63. app/design/adminhtml/default/default/template/authorizenet/directpost/iframe.phtml +56 -0
  64. app/design/adminhtml/default/default/template/authorizenet/directpost/info.phtml +157 -0
  65. app/design/adminhtml/default/default/template/backup/dialogs.phtml +190 -0
  66. app/design/adminhtml/default/default/template/backup/left.phtml +27 -0
  67. app/design/adminhtml/default/default/template/backup/list.phtml +40 -0
  68. app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/bundle.phtml +95 -0
  69. app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/type/checkbox.phtml +52 -0
  70. app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/type/multi.phtml +49 -0
  71. app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/type/radio.phtml +65 -0
  72. app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/type/select.phtml +55 -0
  73. app/design/adminhtml/default/default/template/bundle/product/edit/bundle.phtml +85 -0
  74. app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option.phtml +235 -0
  75. app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option/search.phtml +35 -0
  76. app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option/selection.phtml +352 -0
  77. app/design/adminhtml/default/default/template/bundle/sales/creditmemo/create/items/renderer.phtml +411 -0
  78. app/design/adminhtml/default/default/template/bundle/sales/creditmemo/view/items/renderer.phtml +341 -0
  79. app/design/adminhtml/default/default/template/bundle/sales/invoice/create/items/renderer.phtml +398 -0
  80. app/design/adminhtml/default/default/template/bundle/sales/invoice/view/items/renderer.phtml +340 -0
  81. app/design/adminhtml/default/default/template/bundle/sales/order/view/items/renderer.phtml +415 -0
  82. app/design/adminhtml/default/default/template/bundle/sales/shipment/create/items/renderer.phtml +118 -0
  83. app/design/adminhtml/default/default/template/bundle/sales/shipment/view/items/renderer.phtml +115 -0
  84. app/design/adminhtml/default/default/template/captcha/zend.phtml +56 -0
  85. app/design/adminhtml/default/default/template/catalog/category/checkboxes/tree.phtml +199 -0
  86. app/design/adminhtml/default/default/template/catalog/category/edit.phtml +198 -0
  87. app/design/adminhtml/default/default/template/catalog/category/edit/form.phtml +258 -0
  88. app/design/adminhtml/default/default/template/catalog/category/tree.phtml +480 -0
  89. app/design/adminhtml/default/default/template/catalog/category/widget/tree.phtml +202 -0
  90. app/design/adminhtml/default/default/template/catalog/form/renderer/fieldset/element.phtml +60 -0
  91. app/design/adminhtml/default/default/template/catalog/product.phtml +47 -0
  92. app/design/adminhtml/default/default/template/catalog/product/attribute/js.phtml +338 -0
  93. app/design/adminhtml/default/default/template/catalog/product/attribute/new/created.phtml +54 -0
  94. app/design/adminhtml/default/default/template/catalog/product/attribute/options.phtml +224 -0
  95. app/design/adminhtml/default/default/template/catalog/product/attribute/set/main.phtml +461 -0
  96. app/design/adminhtml/default/default/template/catalog/product/attribute/set/main/tree/attribute.phtml +26 -0
  97. app/design/adminhtml/default/default/template/catalog/product/attribute/set/main/tree/group.phtml +27 -0
  98. app/design/adminhtml/default/default/template/catalog/product/attribute/set/toolbar/add.phtml +41 -0
  99. app/design/adminhtml/default/default/template/catalog/product/attribute/set/toolbar/main.phtml +36 -0
  100. app/design/adminhtml/default/default/template/catalog/product/composite/configure.phtml +54 -0
  101. app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/configurable.phtml +60 -0
  102. app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/grouped.phtml +95 -0
  103. app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options.phtml +45 -0
  104. app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/js.phtml +106 -0
  105. app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/date.phtml +94 -0
  106. app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/default.phtml +31 -0
  107. app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/file.phtml +103 -0
  108. app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/select.phtml +39 -0
  109. app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/text.phtml +42 -0
  110. app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/qty.phtml +36 -0
  111. app/design/adminhtml/default/default/template/catalog/product/created.phtml +59 -0
  112. app/design/adminhtml/default/default/template/catalog/product/edit.phtml +133 -0
  113. app/design/adminhtml/default/default/template/catalog/product/edit/action/attribute.phtml +61 -0
  114. app/design/adminhtml/default/default/template/catalog/product/edit/action/inventory.phtml +181 -0
  115. app/design/adminhtml/default/default/template/catalog/product/edit/action/websites.phtml +120 -0
  116. app/design/adminhtml/default/default/template/catalog/product/edit/categories.phtml +148 -0
  117. app/design/adminhtml/default/default/template/catalog/product/edit/options.phtml +57 -0
  118. app/design/adminhtml/default/default/template/catalog/product/edit/options/option.phtml +351 -0
  119. app/design/adminhtml/default/default/template/catalog/product/edit/options/type/date.phtml +53 -0
  120. app/design/adminhtml/default/default/template/catalog/product/edit/options/type/file.phtml +61 -0
  121. app/design/adminhtml/default/default/template/catalog/product/edit/options/type/select.phtml +173 -0
  122. app/design/adminhtml/default/default/template/catalog/product/edit/options/type/text.phtml +55 -0
  123. app/design/adminhtml/default/default/template/catalog/product/edit/price/group.phtml +170 -0
  124. app/design/adminhtml/default/default/template/catalog/product/edit/price/tier.phtml +171 -0
  125. app/design/adminhtml/default/default/template/catalog/product/edit/serializer.phtml +33 -0
  126. app/design/adminhtml/default/default/template/catalog/product/edit/super/config.phtml +153 -0
  127. app/design/adminhtml/default/default/template/catalog/product/edit/websites.phtml +100 -0
  128. app/design/adminhtml/default/default/template/catalog/product/helper/gallery.phtml +126 -0
  129. app/design/adminhtml/default/default/template/catalog/product/js.phtml +94 -0
  130. app/design/adminhtml/default/default/template/catalog/product/price.phtml +383 -0
  131. app/design/adminhtml/default/default/template/catalog/product/tab/alert.phtml +37 -0
  132. app/design/adminhtml/default/default/template/catalog/product/tab/inventory.phtml +263 -0
  133. app/design/adminhtml/default/default/template/catalog/product/widget/chooser/container.phtml +37 -0
  134. app/design/adminhtml/default/default/template/catalog/wysiwyg/js.phtml +119 -0
  135. app/design/adminhtml/default/default/template/centinel/authentication/complete.phtml +38 -0
  136. app/design/adminhtml/default/default/template/centinel/authentication/start.phtml +38 -0
  137. app/design/adminhtml/default/default/template/centinel/validation/form.phtml +37 -0
  138. app/design/adminhtml/default/default/template/cms/browser/content.phtml +49 -0
  139. app/design/adminhtml/default/default/template/cms/browser/content/files.phtml +54 -0
  140. app/design/adminhtml/default/default/template/cms/browser/content/newfolder.phtml +33 -0
  141. app/design/adminhtml/default/default/template/cms/browser/content/uploader.phtml +31 -0
  142. app/design/adminhtml/default/default/template/cms/browser/js.phtml +39 -0
  143. app/design/adminhtml/default/default/template/cms/browser/tree.phtml +82 -0
  144. app/design/adminhtml/default/default/template/cms/page/edit/form/renderer/content.phtml +32 -0
  145. app/design/adminhtml/default/default/template/coming.phtml +30 -0
  146. app/design/adminhtml/default/default/template/compiler/process.phtml +94 -0
  147. app/design/adminhtml/default/default/template/connect/extension/custom/authors.phtml +91 -0
  148. app/design/adminhtml/default/default/template/connect/extension/custom/contents.phtml +91 -0
  149. app/design/adminhtml/default/default/template/connect/extension/custom/depends.phtml +137 -0
  150. app/design/adminhtml/default/default/template/connect/extension/custom/load.phtml +35 -0
  151. app/design/adminhtml/default/default/template/connect/extension/custom/package.phtml +91 -0
  152. app/design/adminhtml/default/default/template/connect/extension/custom/release.phtml +29 -0
  153. app/design/adminhtml/default/default/template/currencysymbol/grid.phtml +100 -0
  154. app/design/adminhtml/default/default/template/customer/edit/js.phtml +33 -0
  155. app/design/adminhtml/default/default/template/customer/edit/tab/account/form/renderer/group.phtml +52 -0
  156. app/design/adminhtml/default/default/template/customer/edit/tab/view/grid/item.phtml +46 -0
  157. app/design/adminhtml/default/default/template/customer/online.phtml +34 -0
  158. app/design/adminhtml/default/default/template/customer/sales/order/create/address/form/renderer/vat.phtml +52 -0
  159. app/design/adminhtml/default/default/template/customer/system/config/validatevat.phtml +65 -0
  160. app/design/adminhtml/default/default/template/customer/tab/addresses.phtml +640 -0
  161. app/design/adminhtml/default/default/template/customer/tab/cart.phtml +96 -0
  162. app/design/adminhtml/default/default/template/customer/tab/newsletter.phtml +30 -0
  163. app/design/adminhtml/default/default/template/customer/tab/view.phtml +82 -0
  164. app/design/adminhtml/default/default/template/customer/tab/view/sales.phtml +85 -0
  165. app/design/adminhtml/default/default/template/customer/tab/wishlist.phtml +79 -0
  166. app/design/adminhtml/default/default/template/dashboard/graph.phtml +65 -0
  167. app/design/adminhtml/default/default/template/dashboard/graph/disabled.phtml +31 -0
  168. app/design/adminhtml/default/default/template/dashboard/grid.phtml +86 -0
  169. app/design/adminhtml/default/default/template/dashboard/index.phtml +133 -0
  170. app/design/adminhtml/default/default/template/dashboard/salebar.phtml +36 -0
  171. app/design/adminhtml/default/default/template/dashboard/searches.phtml +35 -0
  172. app/design/adminhtml/default/default/template/dashboard/store/switcher.phtml +77 -0
  173. app/design/adminhtml/default/default/template/dashboard/totalbar.phtml +42 -0
  174. app/design/adminhtml/default/default/template/directory/js/optional_zip_countries.phtml +66 -0
  175. app/design/adminhtml/default/default/template/downloadable/product/composite/fieldset/downloadable.phtml +91 -0
  176. app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable.phtml +302 -0
  177. app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable/links.phtml +390 -0
  178. app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable/samples.phtml +219 -0
  179. app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/creditmemo/name.phtml +62 -0
  180. app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/invoice/name.phtml +62 -0
  181. app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/name.phtml +62 -0
  182. app/design/adminhtml/default/default/template/downloadable/sales/order/creditmemo/create/items/renderer/downloadable.phtml +246 -0
  183. app/design/adminhtml/default/default/template/downloadable/sales/order/creditmemo/view/items/renderer/downloadable.phtml +116 -0
app/code/community/Chargeback/Auth/Block/Completed.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Chargeback_Auth_Block_Completed extends Mage_Adminhtml_Block_Abstract implements Varien_Data_Form_Element_Renderer_Interface
4
+ {
5
+ public function render(Varien_Data_Form_Element_Abstract $element)
6
+ {
7
+ Mage::app()->getCacheInstance()->cleanType('config');
8
+ Mage::dispatchEvent('adminhtml_cache_refresh_type', array('type' => 'config'));
9
+
10
+ return $this->getBlockHtml('htmlBlock');
11
+ }
12
+ }
app/code/community/Chargeback/Auth/Block/Hidden.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Chargeback_Auth_Block_Hidden extends Mage_Adminhtml_Block_Abstract implements Varien_Data_Form_Element_Renderer_Interface
4
+ {
5
+ public function render(Varien_Data_Form_Element_Abstract $element)
6
+ {
7
+ return '';
8
+ }
9
+ }
app/code/community/Chargeback/Auth/Helper/Data.php ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Chargeback_Auth_Helper_Data extends Mage_Core_Helper_Abstract {
4
+ public function checkAPIAccount()
5
+ {
6
+ if (is_object($this->role()) && $this->role()->getId() > 0) {
7
+ if (is_object($this->consumer()) && $this->consumer()->getId() > 0) {
8
+ return $this->consumer();
9
+ }
10
+ }
11
+ return false;
12
+ }
13
+
14
+ public function role()
15
+ {
16
+ return Mage::getModel('api/roles')->getCollection()->addFieldToFilter('role_name',array('eq'=>"Chargeback Admin"))->load()->getFirstItem();
17
+ }
18
+
19
+ public function consumer()
20
+ {
21
+ return Mage::getModel('api/user')->getCollection()->addFieldToFilter('username',array('eq'=>'chargeback'))->load()->getFirstItem();
22
+ }
23
+
24
+ public function buildApiUrl(/*.string.*/ $token, /*.string.*/ $key, /*.string.*/ $pass)
25
+ {
26
+ return Mage::getStoreConfig('chargeback/general/url')."auth_tokens/connect?_cb_auth_token=$token&username=$key&password=$pass&name=Magento&url=".Mage::getBaseUrl().'api/xmlrpc';
27
+ }
28
+
29
+ public function connect()
30
+ {
31
+ $this->createAPIAccount();
32
+ return $this->buildApiUrl(Mage::getSingleton('admin/session')->getCbAuthToken(),'chargeback',Mage::getSingleton('admin/session')->getData('chargeback_password'));
33
+ }
34
+
35
+ public function resetPluginSettingsRemoveUser()
36
+ {
37
+ $this->role()->delete()->save();
38
+ $this->consumer()->delete()->save();
39
+ $this->setComplete(false);
40
+ }
41
+
42
+ public function setComplete($complete = true)
43
+ {
44
+ Mage::getConfig()->saveConfig('chargeback/general/completed', $complete ? true : false, 'default', 0);
45
+ }
46
+
47
+ public function getComplete()
48
+ {
49
+ Mage::app()->getStore()->resetConfig();
50
+ return Mage::getStoreConfig('chargeback/general/completed');
51
+ }
52
+
53
+ public function createAPIAccount()
54
+ {
55
+ $account = $this->checkAPIAccount();
56
+
57
+ if (!is_object($account)) {
58
+
59
+ $apiPassword = md5(time());
60
+
61
+ $api_role = Mage::getModel('api/roles')
62
+ ->setName('Chargeback Admin')
63
+ ->setRoleType('G')
64
+ ->save();
65
+
66
+ Mage::getModel('api/rules')
67
+ ->setRoleId($api_role->getId())
68
+ ->setResources(array('all'))
69
+ ->saveRel();
70
+
71
+ $userapi = Mage::getModel('api/user')
72
+ ->setData(array(
73
+ 'username' => 'chargeback',
74
+ 'firstname' => 'Chargeback',
75
+ 'lastname' => 'User',
76
+ 'email' => 'apiuser@chargeback.com',
77
+ 'is_active' => 1,
78
+ 'api_key' => $apiPassword,
79
+ 'api_key_confirmation' => $apiPassword,
80
+ 'roles' => array($api_role->getId()) // your created custom role
81
+ ));
82
+
83
+
84
+ $userapi->save();
85
+
86
+ $userapi->setRoleIds(array($api_role->getId()))->setRoleUserId($userapi->getUserId())
87
+ ->saveRelations();
88
+
89
+ Mage::getSingleton('admin/session')->setData('chargeback_password',$apiPassword);
90
+
91
+ }
92
+
93
+ }
94
+
95
+ }
app/code/community/Chargeback/Auth/Model/Observer.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Class Chargeback_Auth_Model_Observer
4
+ *
5
+ *
6
+ * @author Matt Kammersell <matt.kammersell@chargeback.com>
7
+ */
8
+ class Chargeback_Auth_Model_Observer
9
+ {
10
+
11
+ public function system_configuration_view(Varien_Event_Observer $observer)
12
+ {
13
+ $helper = Mage::helper('chargeback_auth');
14
+ $admin = Mage::getSingleton('admin/session');
15
+ $action = $observer->getEvent()->getControllerAction();
16
+ $r = $action->getRequest();
17
+
18
+ if ($r->getControllerName()."::".$r->getActionName()!=="system_config::edit") return;
19
+
20
+ if ($r->getParam('remove') == "1" && $r->getParam('_cb_auth_token') == null) {
21
+ $helper->resetPluginSettingsRemoveUser();
22
+ return;
23
+ }
24
+
25
+ Mage::app()->getCacheInstance()->cleanType('config');
26
+ Mage::dispatchEvent('adminhtml_cache_refresh_type', array('type' => 'config'));
27
+
28
+ /* @var $action Mage_Adminhtml_Controller_Action */
29
+ if ($r->getParam("_cb_auth_token",false) && !$r->getParam("cb_return_status",false)) {
30
+ $admin->setCbAuthToken($r->getParam('_cb_auth_token'));
31
+ return;
32
+ }
33
+
34
+ if ($r->getParam("cb_return_status") == "failure"){
35
+ $helper->setComplete(0);
36
+ }
37
+ if ($r->getParam("cb_return_status") == "success") {
38
+ $helper->setComplete();
39
+ $admin->unsetData('chargeback_password');
40
+ }
41
+
42
+ }
43
+ }
app/code/community/Chargeback/Auth/etc/adminhtml.xml ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <acl>
4
+ <resources>
5
+ <admin>
6
+ <children>
7
+ <system>
8
+ <children>
9
+ <config>
10
+ <children>
11
+ <chargeback>
12
+ <title>Chargeback</title> <!-- Used in resources tree -->
13
+ </chargeback>
14
+ </children>
15
+ </config>
16
+ </children>
17
+ </system>
18
+ </children>
19
+ </admin>
20
+ </resources>
21
+ </acl>
22
+ </config>
app/code/community/Chargeback/Auth/etc/api.xml ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <config>
2
+ <api>
3
+ <resources>
4
+ <gateways translate="title" module="chargeback_auth">
5
+ <model>chargeback_auth/gateways_api</model>
6
+ <title>Gateways Resource</title>
7
+ <acl>gateways</acl>
8
+ <methods>
9
+ <list translate="title" module="chargeback_auth">
10
+ <title>Retrieve Gateway List</title>
11
+ <method>gateways</method>
12
+ <acl>gateways/list</acl>
13
+ </list>
14
+ </methods>
15
+ <faults module="chargeback_auth">
16
+ <data_invalid>
17
+ <code>100</code >
18
+ <message>Invalid gateway data. Details in error message.</message>
19
+ </data_invalid>
20
+ <filters_invalid>
21
+ <code>101</code >
22
+ <message>Invalid filters specified. Details in error message.</message>
23
+ </filters_invalid>
24
+ </faults>
25
+ </gateways>
26
+ </resources>
27
+ <acl>
28
+ <resources>
29
+ <all>
30
+ </all>
31
+ <gateways translate="title" module="chargeback_auth">
32
+ <title>Gateways Resource</title>
33
+ <list translate="title" module="customer">
34
+ <title>Retrieve Gateway List</title>
35
+ <acl>gateways/list</acl>
36
+ </list>
37
+ </gateways>
38
+ </resources>
39
+ </acl>
40
+ </api>
41
+ </config>
app/code/community/Chargeback/Auth/etc/config.xml ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <Chargeback_Auth>
5
+ <version>1.0.0</version>
6
+ </Chargeback_Auth>
7
+ </modules>
8
+ <global>
9
+ <blocks>
10
+ <chargeback_auth>
11
+ <class>Chargeback_Auth_Block</class>
12
+ </chargeback_auth>
13
+ </blocks>
14
+ <models>
15
+ <chargeback_auth>
16
+ <class>Chargeback_Auth_Model</class>
17
+ </chargeback_auth>
18
+ </models>
19
+ <helpers>
20
+ <chargeback_auth>
21
+ <class>Chargeback_Auth_Helper</class>
22
+ </chargeback_auth>
23
+ </helpers>
24
+ </global>
25
+ <adminhtml>
26
+ <events>
27
+ <controller_action_predispatch_adminhtml>
28
+ <observers>
29
+ <check_api>
30
+ <class>chargeback_auth/observer</class>
31
+ <method>system_configuration_view</method>
32
+ </check_api>
33
+ </observers>
34
+ </controller_action_predispatch_adminhtml>
35
+ </events>
36
+ <layout>
37
+ <updates>
38
+ <chargeback_auth>
39
+ <file>chargeback/auth.xml</file>
40
+ </chargeback_auth>
41
+ </updates>
42
+ </layout>
43
+ </adminhtml>
44
+ <default>
45
+ <chargeback>
46
+ <general>
47
+ <url>https://app.chargeback.com/</url>
48
+ <completed>false</completed>
49
+ </general>
50
+ </chargeback>
51
+ </default>
52
+ </config>
app/code/community/Chargeback/Auth/etc/system.xml ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <tabs>
4
+ <chargeback_auth translate="label" module="chargeback_auth">
5
+ <label>Chargeback</label>
6
+ <class>chargeback-logo</class>
7
+ </chargeback_auth>
8
+ </tabs>
9
+ <sections>
10
+ <chargeback translate="label" module="chargeback_auth">
11
+ <label>Setup</label>
12
+ <tab>chargeback_auth</tab>
13
+ <sort_order>120</sort_order>
14
+ <show_in_default>1</show_in_default>
15
+ <show_in_website>0</show_in_website>
16
+ <show_in_store>0</show_in_store>
17
+ <expanded>0</expanded>
18
+ <groups>
19
+ <connection translate="label" module="chargeback_auth">
20
+ <label>Connection</label>
21
+ <sort_order>120</sort_order>
22
+ <show_in_default>1</show_in_default>
23
+ <show_in_website>1</show_in_website>
24
+ <show_in_store>1</show_in_store>
25
+ <expanded>1</expanded>
26
+ <fields>
27
+ <url translate="label">
28
+ <label>URL</label>
29
+ <frontend_model>chargeback_auth/hidden</frontend_model>
30
+ <sort_order>120</sort_order>
31
+ <show_in_default>1</show_in_default>
32
+ <show_in_website>1</show_in_website>
33
+ <show_in_store>1</show_in_store>
34
+ </url>
35
+ <completed translate="label">
36
+ <label>Completed</label>
37
+ <frontend_model>chargeback_auth/completed</frontend_model>
38
+ <frontend_type>text</frontend_type>
39
+ <show_in_default>1</show_in_default>
40
+ <show_in_website>1</show_in_website>
41
+ <show_in_store>1</show_in_store>
42
+ </completed>
43
+ <key translate="label">
44
+ <label>Key</label>
45
+ <frontend_model>chargeback_auth/hidden</frontend_model>
46
+ <frontend_type>text</frontend_type>
47
+ <show_in_default>1</show_in_default>
48
+ <show_in_website>1</show_in_website>
49
+ <show_in_store>1</show_in_store>
50
+ </key>
51
+ <pass translate="label">
52
+ <label>Pass</label>
53
+ <frontend_model>chargeback_auth/hidden</frontend_model>
54
+ <frontend_type>text</frontend_type>
55
+ <show_in_default>1</show_in_default>
56
+ <show_in_website>1</show_in_website>
57
+ <show_in_store>1</show_in_store>
58
+ </pass>
59
+ </fields>
60
+ </connection>
61
+ </groups>
62
+ </chargeback>
63
+ </sections>
64
+ </config>
app/design/adminhtml/default/default/etc/theme.xml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+ <theme>
29
+ <parent />
30
+ </theme>
app/design/adminhtml/default/default/layout/admin.xml ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+ <!-- admin acl users edit page -->
31
+ <adminhtml_permissions_user_edit>
32
+ <reference name="left">
33
+ <block type="adminhtml/permissions_user_edit_tabs" name="adminhtml.permissions.user.edit.tabs"/>
34
+ </reference>
35
+ <reference name="content">
36
+ <block type="adminhtml/permissions_user_edit" name="adminhtml.permissions.user.edit"/>
37
+ </reference>
38
+ <reference name="js">
39
+ <block type="adminhtml/template" name="adminhtml.permissions.user.roles.grid.js" template="permissions/user_roles_grid_js.phtml"/>
40
+ </reference>
41
+ </adminhtml_permissions_user_edit>
42
+ <!-- admin permissions block edit page -->
43
+ <adminhtml_permissions_block_edit>
44
+ <reference name="content">
45
+ <block type="adminhtml/permissions_block_edit" name="adminhtml.permissions.block.edit"/>
46
+ </reference>
47
+ </adminhtml_permissions_block_edit>
48
+ <!-- admin permissions variable edit page -->
49
+ <adminhtml_permissions_variable_edit>
50
+ <reference name="content">
51
+ <block type="adminhtml/permissions_variable_edit" name="adminhtml.permissions.variable.edit"/>
52
+ </reference>
53
+ </adminhtml_permissions_variable_edit>
54
+ <!-- admin acl roles grid page -->
55
+ <adminhtml_permissions_role_index>
56
+ <reference name="content">
57
+ <block type="adminhtml/permissions_roles" name="adminhtml.permission.role.index" template="permissions/roles.phtml">
58
+ <block type="adminhtml/permissions_grid_role" name="adminhtml.permission.role.grid" as="grid"/>
59
+ </block>
60
+ </reference>
61
+ </adminhtml_permissions_role_index>
62
+ <adminhtml_permissions_role_rolegrid>
63
+ <remove name="root"/>
64
+ <block type="adminhtml/permissions_grid_role" name="adminhtml.permission.role.grid"/>
65
+ </adminhtml_permissions_role_rolegrid>
66
+
67
+ <!-- admin acl roles edit page -->
68
+ <adminhtml_permissions_role_editrole>
69
+ <reference name="left">
70
+ <block type="adminhtml/permissions_editroles" name="adminhtml.permissions.editroles"/>
71
+ </reference>
72
+ </adminhtml_permissions_role_editrole>
73
+ <adminhtml_system_config_edit>
74
+ <reference name="content">
75
+ <block type="adminhtml/notification_curl" name="notification_curl" as="notification_curl" template="notification/curl.phtml"/>
76
+ </reference>
77
+ <reference name="left">
78
+ <block type="adminhtml/system_config_switcher" name="adminhtml.system.config.switcher" before="-"/>
79
+ </reference>
80
+ </adminhtml_system_config_edit>
81
+ <adminhtml_dashboard_index>
82
+ <reference name="content">
83
+ <block type="adminhtml/dashboard" name="dashboard">
84
+ <block type="adminhtml/store_switcher" name="store_switcher" as="store_switcher" template="store/switcher.phtml">
85
+ <action method="setUseConfirm"><params>0</params></action>
86
+ </block>
87
+ </block>
88
+ </reference>
89
+ </adminhtml_dashboard_index>
90
+ <adminhtml_cache_index>
91
+ <reference name="content">
92
+ <block type="adminhtml/cache" name="cache"></block>
93
+ <block type="adminhtml/cache_additional" name="cache.additional" template="system/cache/additional.phtml"></block>
94
+ </reference>
95
+ </adminhtml_cache_index>
96
+ </layout>
app/design/adminhtml/default/default/layout/adminnotification.xml ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+ <default>
31
+ <reference name="notifications">
32
+ <block type="adminhtml/notification_toolbar" name="notification_toolbar" as="notification_toolbar" acl="system/adminnotification/show_toolbar" template="notification/toolbar.phtml" />
33
+ </reference>
34
+ <reference name="notifications">
35
+ <block type="adminhtml/notification_window" name="notification_window" as="notification_window" acl="system/adminnotification/show_toolbar" template="notification/window.phtml" />
36
+ </reference>
37
+ </default>
38
+ </layout>
app/design/adminhtml/default/default/layout/api2.xml ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+ <layout>
29
+ <adminhtml_api2_role_index>
30
+ <reference name="content">
31
+ <block type="api2/adminhtml_roles" name="api2_roles"/>
32
+ </reference>
33
+ </adminhtml_api2_role_index>
34
+
35
+ <adminhtml_api2_role_new>
36
+ <reference name="left">
37
+ <block type="api2/adminhtml_roles_tabs" name="adminhtml.role.edit.tabs">
38
+ <block type="api2/adminhtml_roles_tab_info" name="adminhtml.role.edit.tab.info"/>
39
+ <block type="api2/adminhtml_roles_tab_resources" name="adminhtml.role.edit.tab.resources" template="permissions/rolesedit.phtml"/>
40
+ <action method="addTab">
41
+ <id>api2_role_section_info</id>
42
+ <block>adminhtml.role.edit.tab.info</block>
43
+ </action>
44
+ <action method="addTab">
45
+ <id>api2_role_section_resources</id>
46
+ <block>adminhtml.role.edit.tab.resources</block>
47
+ </action>
48
+ </block>
49
+ </reference>
50
+ <reference name="content">
51
+ <block type="api2/adminhtml_roles_buttons" name="adminhtml.roles.buttons"/>
52
+ </reference>
53
+ <reference name="head">
54
+ <action method="setCanLoadExtJs">
55
+ <flag>1</flag>
56
+ </action>
57
+ </reference>
58
+ </adminhtml_api2_role_new>
59
+
60
+ <adminhtml_api2_role_edit>
61
+ <reference name="left">
62
+ <block type="api2/adminhtml_roles_tabs" name="adminhtml.role.edit.tabs">
63
+ <block type="api2/adminhtml_roles_tab_info" name="adminhtml.role.edit.tab.info"/>
64
+ <block type="api2/adminhtml_roles_tab_resources" name="adminhtml.role.edit.tab.resources" template="permissions/rolesedit.phtml"/>
65
+ <block type="api2/adminhtml_roles_tab_users" name="adminhtml.role.edit.tab.users"/>
66
+ <action method="addTab">
67
+ <id>api2_role_section_info</id>
68
+ <block>adminhtml.role.edit.tab.info</block>
69
+ </action>
70
+ <action method="addTab">
71
+ <id>api2_role_section_resources</id>
72
+ <block>adminhtml.role.edit.tab.resources</block>
73
+ </action>
74
+ <action method="addTab">
75
+ <id>roleUsersGrid</id>
76
+ <block>adminhtml.role.edit.tab.users</block>
77
+ </action>
78
+ </block>
79
+ </reference>
80
+ <reference name="content">
81
+ <block type="api2/adminhtml_roles_buttons" name="adminhtml.roles.buttons"/>
82
+ </reference>
83
+ <reference name="head">
84
+ <action method="setCanLoadExtJs">
85
+ <flag>1</flag>
86
+ </action>
87
+ </reference>
88
+ <reference name="js">
89
+ <block type="adminhtml/template" name="adminhtml.role.js.users.grid" template="api2/role/users_grid_js.phtml"/>
90
+ </reference>
91
+ </adminhtml_api2_role_edit>
92
+
93
+ <adminhtml_api2_role_grid>
94
+ <remove name="root"/>
95
+ <block type="api2/adminhtml_roles_grid" name="api2_roles.grid" output="toHtml"/>
96
+ </adminhtml_api2_role_grid>
97
+
98
+ <adminhtml_api2_role_usersgrid>
99
+ <remove name="root"/>
100
+ <block type="api2/adminhtml_roles_tab_users" name="adminhtml.role.edit.tab.users" output="toHtml"/>
101
+ </adminhtml_api2_role_usersgrid>
102
+
103
+ <!-- admin acl users edit page -->
104
+ <adminhtml_permissions_user_edit>
105
+ <reference name="adminhtml.permissions.user.edit.tabs">
106
+ <block type="api2/adminhtml_permissions_user_edit_tab_roles" name="adminhtml.permissions.user.edit.tab.roles"/>
107
+ <action method="addTabAfter">
108
+ <id>api2_roles_section</id>
109
+ <block>adminhtml.permissions.user.edit.tab.roles</block>
110
+ <after>roles_section</after>
111
+ </action>
112
+ </reference>
113
+ <reference name="js">
114
+ <block type="adminhtml/template" name="adminhtml.permissions.user.edit.tab.roles.js" template="api2/permissions/user/edit/tab/roles/js.phtml"/>
115
+ </reference>
116
+ </adminhtml_permissions_user_edit>
117
+
118
+ <!-- ACL attributes -->
119
+ <adminhtml_api2_attribute_index>
120
+ <reference name="content">
121
+ <block type="api2/adminhtml_attribute" name="api2.attribute"/>
122
+ </reference>
123
+ </adminhtml_api2_attribute_index>
124
+
125
+ <adminhtml_api2_attribute_edit>
126
+ <reference name="left">
127
+ <block type="api2/adminhtml_attribute_tabs" name="api2.attribute.edit.tabs">
128
+ <block type="api2/adminhtml_attribute_tab_resource" name="api2.attribute.tab.resource" template="api2/attribute/resource.phtml"/>
129
+ <action method="addTab">
130
+ <name>api2_attribute_section_resources</name>
131
+ <block>api2.attribute.tab.resource</block>
132
+ </action>
133
+ </block>
134
+ </reference>
135
+ <reference name="content">
136
+ <block type="api2/adminhtml_attribute_edit" name="edit_form">
137
+ <block type="api2/adminhtml_attribute_edit_form" name="form"/>
138
+ </block>
139
+ </reference>
140
+ <reference name="head">
141
+ <action method="setCanLoadExtJs">
142
+ <flag>1</flag>
143
+ </action>
144
+ </reference>
145
+ </adminhtml_api2_attribute_edit>
146
+ <!-- EOF ACL attributes -->
147
+ </layout>
app/design/adminhtml/default/default/layout/authorizenet.xml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+
28
+ -->
29
+ <layout version="0.1.0">
30
+ <adminhtml_sales_order_create_index>
31
+ <reference name="head">
32
+ <action method="addJs"><file>mage/directpost.js</file></action>
33
+ </reference>
34
+ </adminhtml_sales_order_create_index>
35
+ </layout>
app/design/adminhtml/default/default/layout/bundle.xml ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+
31
+ <!--
32
+ Layout handle for budle products
33
+ -->
34
+
35
+ <!--<default>
36
+ <reference name="left">
37
+ <action method="setData"><attribute>attributeTabs</attribute><attributeType>bundle/adminhtml_catalog_product_edit_tab_attributes</attributeType></action>
38
+ </reference>
39
+ </default>-->
40
+
41
+ <adminhtml_catalog_product_bundle>
42
+ <reference name="product_tabs">
43
+ <action method="addTab"><name>bundle_items</name><block>bundle/adminhtml_catalog_product_edit_tab_bundle</block></action>
44
+ <action method="bindShadowTabs"><first>bundle_items</first><second>customer_options</second></action>
45
+ </reference>
46
+ </adminhtml_catalog_product_bundle>
47
+
48
+ <adminhtml_sales_order_view>
49
+ <reference name="order_items">
50
+ <action method="addItemRender"><type>bundle</type><block>bundle/adminhtml_sales_order_view_items_renderer</block><template>bundle/sales/order/view/items/renderer.phtml</template></action>
51
+ </reference>
52
+ </adminhtml_sales_order_view>
53
+
54
+ <adminhtml_sales_order_invoice_new>
55
+ <reference name="order_items">
56
+ <action method="addItemRender"><type>bundle</type><block>bundle/adminhtml_sales_order_items_renderer</block><template>bundle/sales/invoice/create/items/renderer.phtml</template></action>
57
+ </reference>
58
+ </adminhtml_sales_order_invoice_new>
59
+
60
+ <adminhtml_sales_order_invoice_updateqty>
61
+ <reference name="order_items">
62
+ <action method="addItemRender"><type>bundle</type><block>bundle/adminhtml_sales_order_items_renderer</block><template>bundle/sales/invoice/create/items/renderer.phtml</template></action>
63
+ </reference>
64
+ </adminhtml_sales_order_invoice_updateqty>
65
+
66
+ <adminhtml_sales_order_invoice_view>
67
+ <reference name="invoice_items">
68
+ <action method="addItemRender"><type>bundle</type><block>bundle/adminhtml_sales_order_items_renderer</block><template>bundle/sales/invoice/view/items/renderer.phtml</template></action>
69
+ </reference>
70
+ </adminhtml_sales_order_invoice_view>
71
+
72
+ <adminhtml_sales_order_shipment_new>
73
+ <reference name="order_items">
74
+ <action method="addItemRender"><type>bundle</type><block>bundle/adminhtml_sales_order_items_renderer</block><template>bundle/sales/shipment/create/items/renderer.phtml</template></action>
75
+ </reference>
76
+ </adminhtml_sales_order_shipment_new>
77
+
78
+ <adminhtml_sales_order_shipment_view>
79
+ <reference name="shipment_items">
80
+ <action method="addItemRender"><type>bundle</type><block>bundle/adminhtml_sales_order_items_renderer</block><template>bundle/sales/shipment/view/items/renderer.phtml</template></action>
81
+ </reference>
82
+ </adminhtml_sales_order_shipment_view>
83
+
84
+ <adminhtml_sales_order_creditmemo_new>
85
+ <reference name="order_items">
86
+ <action method="addItemRender"><type>bundle</type><block>bundle/adminhtml_sales_order_items_renderer</block><template>bundle/sales/creditmemo/create/items/renderer.phtml</template></action>
87
+ </reference>
88
+ </adminhtml_sales_order_creditmemo_new>
89
+
90
+ <adminhtml_sales_order_creditmemo_updateqty>
91
+ <reference name="order_items">
92
+ <action method="addItemRender"><type>bundle</type><block>bundle/adminhtml_sales_order_items_renderer</block><template>bundle/sales/creditmemo/create/items/renderer.phtml</template></action>
93
+ </reference>
94
+ </adminhtml_sales_order_creditmemo_updateqty>
95
+
96
+ <adminhtml_sales_order_creditmemo_view>
97
+ <reference name="creditmemo_items">
98
+ <action method="addItemRender"><type>bundle</type><block>bundle/adminhtml_sales_order_items_renderer</block><template>bundle/sales/creditmemo/view/items/renderer.phtml</template></action>
99
+ </reference>
100
+ </adminhtml_sales_order_creditmemo_view>
101
+
102
+ <adminhtml_customer_wishlist>
103
+ <reference name="customer.wishlist.edit.tab">
104
+ <action method="addProductConfigurationHelper"><type>bundle</type><name>bundle/catalog_product_configuration</name></action>
105
+ </reference>
106
+ </adminhtml_customer_wishlist>
107
+
108
+ <PRODUCT_TYPE_bundle>
109
+ <reference name="product.composite.fieldset">
110
+ <block type="bundle/adminhtml_catalog_product_composite_fieldset_bundle" before="product.composite.fieldset.options" name="product.composite.fieldset.bundle" template="bundle/product/composite/fieldset/options/bundle.phtml">
111
+ <action method="addRenderer"><type>select</type><block>bundle/adminhtml_catalog_product_composite_fieldset_options_type_select</block></action>
112
+ <action method="addRenderer"><type>multi</type><block>bundle/adminhtml_catalog_product_composite_fieldset_options_type_multi</block></action>
113
+ <action method="addRenderer"><type>radio</type><block>bundle/adminhtml_catalog_product_composite_fieldset_options_type_radio</block></action>
114
+ <action method="addRenderer"><type>checkbox</type><block>bundle/adminhtml_catalog_product_composite_fieldset_options_type_checkbox</block></action>
115
+ </block>
116
+ </reference>
117
+ </PRODUCT_TYPE_bundle>
118
+ </layout>
app/design/adminhtml/default/default/layout/captcha.xml ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+
28
+ -->
29
+ <layout version="0.1.0">
30
+ <adminhtml_index_login>
31
+ <reference name="form.additional.info">
32
+ <block type="captcha/captcha" name="captcha">
33
+ <action method="setFormId"><formId>backend_login</formId></action>
34
+ <action method="setImgWidth"><width>226</width></action>
35
+ <action method="setImgHeight"><width>50</width></action>
36
+ </block>
37
+ </reference>
38
+ </adminhtml_index_login>
39
+ <adminhtml_index_forgotpassword>
40
+ <reference name="form.additional.info">
41
+ <block type="captcha/captcha" name="captcha">
42
+ <action method="setFormId"><formId>backend_forgotpassword</formId></action>
43
+ <action method="setImgWidth"><width>226</width></action>
44
+ <action method="setImgHeight"><width>50</width></action>
45
+ </block>
46
+ </reference>
47
+ </adminhtml_index_forgotpassword>
48
+ </layout>
app/design/adminhtml/default/default/layout/catalog.xml ADDED
@@ -0,0 +1,332 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+ <adminhtml_catalog_product_index>
31
+ <referense name="head">
32
+ <action method="setTitle" translate="title"><title>Catalog</title></action>
33
+ </referense>
34
+ <reference name="menu">
35
+ <action method="setActive"><menupath>catalog/products</menupath></action>
36
+ </reference>
37
+ <reference name="content">
38
+ <block type="adminhtml/catalog_product" name="products_list">
39
+ <block type="adminhtml/store_switcher" name="store_switcher" as="store_switcher">
40
+ <action method="setUseConfirm"><params>0</params></action>
41
+ </block>
42
+ </block>
43
+ </reference>
44
+ </adminhtml_catalog_product_index>
45
+
46
+ <adminhtml_catalog_product_new>
47
+ <update handle="editor"/>
48
+ <reference name="content">
49
+ <block type="adminhtml/catalog_product_edit" name="product_edit"></block>
50
+ </reference>
51
+ <reference name="left">
52
+ <block type="adminhtml/catalog_product_edit_tabs" name="product_tabs"></block>
53
+ </reference>
54
+ <reference name="js">
55
+ <block type="adminhtml/catalog_product_edit_js" template="catalog/product/js.phtml" name="catalog_product_js"></block>
56
+ <block type="core/template" template="catalog/wysiwyg/js.phtml"/>
57
+ </reference>
58
+ </adminhtml_catalog_product_new>
59
+
60
+ <adminhtml_catalog_product_edit>
61
+ <update handle="editor"/>
62
+ <reference name="content">
63
+ <block type="adminhtml/catalog_product_edit" name="product_edit"></block>
64
+ </reference>
65
+ <reference name="left">
66
+ <block type="adminhtml/store_switcher" name="store_switcher" before="-"></block>
67
+ <block type="adminhtml/catalog_product_edit_tabs" name="product_tabs"></block>
68
+ </reference>
69
+ <reference name="js">
70
+ <block type="adminhtml/catalog_product_edit_js" template="catalog/product/js.phtml" name="catalog_product_js"></block>
71
+ <block type="core/template" name="catalog.wysiwyg.js" template="catalog/wysiwyg/js.phtml"/>
72
+ </reference>
73
+ </adminhtml_catalog_product_edit>
74
+
75
+ <adminhtml_catalog_product_categories>
76
+ <block type="core/text_list" name="root" output="toHtml">
77
+ <block type="adminhtml/catalog_product_edit_tab_categories" name="catalog.product.edit.tab.categories"/>
78
+ </block>
79
+ </adminhtml_catalog_product_categories>
80
+
81
+ <adminhtml_catalog_product_reviews>
82
+ <block type="core/text_list" name="root" output="toHtml">
83
+ <block type="adminhtml/catalog_product_edit_tab_reviews" name="admin.product.reviews"/>
84
+ </block>
85
+ </adminhtml_catalog_product_reviews>
86
+
87
+ <adminhtml_catalog_product_taggrid>
88
+ <block type="core/text_list" name="root" output="toHtml">
89
+ <block type="adminhtml/catalog_product_edit_tab_tag" name="admin.product.tags"/>
90
+ </block>
91
+ </adminhtml_catalog_product_taggrid>
92
+
93
+ <adminhtml_catalog_product_tagcustomergrid>
94
+ <block type="core/text_list" name="root" output="toHtml">
95
+ <block type="adminhtml/catalog_product_edit_tab_tag_customer" name="admin.product.tags.customers"/>
96
+ </block>
97
+ </adminhtml_catalog_product_tagcustomergrid>
98
+
99
+ <adminhtml_catalog_product_options>
100
+ <block type="core/text_list" name="root" output="toHtml">
101
+ <block type="adminhtml/catalog_product_edit_tab_options" name="admin.product.options"/>
102
+ </block>
103
+ </adminhtml_catalog_product_options>
104
+
105
+ <adminhtml_catalog_product_grid>
106
+ <block type="core/text_list" name="root" output="toHtml">
107
+ <block type="adminhtml/catalog_product_grid" name="admin.product.grid"/>
108
+ </block>
109
+ </adminhtml_catalog_product_grid>
110
+
111
+ <adminhtml_catalog_product_related>
112
+ <block type="core/text_list" name="root" output="toHtml">
113
+ <block type="adminhtml/catalog_product_edit_tab_related" name="catalog.product.edit.tab.related"/>
114
+ <block type="adminhtml/widget_grid_serializer" name="related_grid_serializer">
115
+ <reference name="related_grid_serializer">
116
+ <action method="initSerializerBlock">
117
+ <grid_block_name>catalog.product.edit.tab.related</grid_block_name>
118
+ <data_callback>getSelectedRelatedProducts</data_callback>
119
+ <hidden_input_name>links[related]</hidden_input_name>
120
+ <reload_param_name>products_related</reload_param_name>
121
+ </action>
122
+ <action method="addColumnInputName">
123
+ <input_name>position</input_name>
124
+ </action>
125
+ </reference>
126
+ </block>
127
+ </block>
128
+ </adminhtml_catalog_product_related>
129
+
130
+ <adminhtml_catalog_product_relatedgrid>
131
+ <block type="core/text_list" name="root" output="toHtml">
132
+ <block type="adminhtml/catalog_product_edit_tab_related" name="catalog.product.edit.tab.related"/>
133
+ </block>
134
+ </adminhtml_catalog_product_relatedgrid>
135
+
136
+ <adminhtml_catalog_product_superconfig>
137
+ <block type="adminhtml/catalog_product_edit_tab_super_config_grid" name="admin.product.edit.tab.super.config.grid" output="toHtml" />
138
+ </adminhtml_catalog_product_superconfig>
139
+
140
+ <adminhtml_catalog_product_alertspricegrid>
141
+ <block type="adminhtml/catalog_product_edit_tab_alerts_price" name="admin.product.edit.tab.alerts.price" output="toHtml" />
142
+ </adminhtml_catalog_product_alertspricegrid>
143
+
144
+ <adminhtml_catalog_product_alertsstockgrid>
145
+ <block type="adminhtml/catalog_product_edit_tab_alerts_stock" name="admin.product.edit.tab.alerts.stock" output="toHtml" />
146
+ </adminhtml_catalog_product_alertsstockgrid>
147
+
148
+ <adminhtml_catalog_product_upsell>
149
+ <block type="core/text_list" name="root" output="toHtml">
150
+ <block type="adminhtml/catalog_product_edit_tab_upsell" name="catalog.product.edit.tab.upsell"/>
151
+ <block type="adminhtml/widget_grid_serializer" name="upsell_grid_serializer">
152
+ <reference name="upsell_grid_serializer">
153
+ <action method="initSerializerBlock">
154
+ <grid_block_name>catalog.product.edit.tab.upsell</grid_block_name>
155
+ <data_callback>getSelectedUpsellProducts</data_callback>
156
+ <hidden_input_name>links[upsell]</hidden_input_name>
157
+ <reload_param_name>products_upsell</reload_param_name>
158
+ </action>
159
+ <action method="addColumnInputName">
160
+ <input_name>position</input_name>
161
+ </action>
162
+ </reference>
163
+ </block>
164
+ </block>
165
+ </adminhtml_catalog_product_upsell>
166
+
167
+ <adminhtml_catalog_product_upsellgrid>
168
+ <block type="core/text_list" name="root" output="toHtml">
169
+ <block type="adminhtml/catalog_product_edit_tab_upsell" name="catalog.product.edit.tab.upsell"/>
170
+ </block>
171
+ </adminhtml_catalog_product_upsellgrid>
172
+
173
+ <adminhtml_catalog_product_crosssell>
174
+ <block type="core/text_list" name="root" output="toHtml">
175
+ <block type="adminhtml/catalog_product_edit_tab_crosssell" name="catalog.product.edit.tab.crosssell"/>
176
+ <block type="adminhtml/widget_grid_serializer" name="crosssell_grid_serializer">
177
+ <reference name="crosssell_grid_serializer">
178
+ <action method="initSerializerBlock">
179
+ <grid_block_name>catalog.product.edit.tab.crosssell</grid_block_name>
180
+ <data_callback>getSelectedCrossSellProducts</data_callback>
181
+ <hidden_input_name>links[crosssell]</hidden_input_name>
182
+ <reload_param_name>products_crosssell</reload_param_name>
183
+ </action>
184
+ <action method="addColumnInputName">
185
+ <input_name>position</input_name>
186
+ </action>
187
+ </reference>
188
+ </block>
189
+ </block>
190
+ </adminhtml_catalog_product_crosssell>
191
+
192
+ <adminhtml_catalog_product_crosssellgrid>
193
+ <block type="core/text_list" name="root" output="toHtml">
194
+ <block type="adminhtml/catalog_product_edit_tab_crosssell" name="catalog.product.edit.tab.crosssell"/>
195
+ </block>
196
+ </adminhtml_catalog_product_crosssellgrid>
197
+ <!--
198
+ Layout handle for simple products
199
+ -->
200
+
201
+ <adminhtml_catalog_product_simple />
202
+
203
+ <!--
204
+ Layout handle for grouped products
205
+ -->
206
+ <adminhtml_catalog_product_grouped>
207
+ <reference name="product_tabs">
208
+ <action method="addTab"><name>super</name><block>adminhtml/catalog_product_edit_tab_super_group</block></action>
209
+ </reference>
210
+ </adminhtml_catalog_product_grouped>
211
+
212
+ <adminhtml_catalog_product_supergroup>
213
+ <block type="core/text_list" name="root" output="toHtml">
214
+ <block type="adminhtml/catalog_product_edit_tab_super_group" name="catalog.product.edit.tab.super.group" />
215
+ <block type="adminhtml/widget_grid_serializer" name="grouped_grid_serializer">
216
+ <reference name="grouped_grid_serializer">
217
+ <action method="initSerializerBlock">
218
+ <grid_block_name>catalog.product.edit.tab.super.group</grid_block_name>
219
+ <data_callback>getSelectedGroupedProducts</data_callback>
220
+ <hidden_input_name>links[grouped]</hidden_input_name>
221
+ <reload_param_name>products_grouped</reload_param_name>
222
+ </action>
223
+ <action method="addColumnInputName">
224
+ <input_name>qty</input_name>
225
+ <input_name>position</input_name>
226
+ </action>
227
+ </reference>
228
+ </block>
229
+ </block>
230
+ </adminhtml_catalog_product_supergroup>
231
+
232
+ <adminhtml_catalog_product_supergroupgridonly>
233
+ <block type="core/text_list" name="root">
234
+ <block type="adminhtml/catalog_product_edit_tab_super_group" name="catalog.product.edit.tab.super.group" />
235
+ </block>
236
+ </adminhtml_catalog_product_supergroupgridonly>
237
+ <!--
238
+ Layout handle for configurable products
239
+ -->
240
+
241
+ <adminhtml_catalog_product_configurable_new>
242
+ <remove name="product_tabs"/>
243
+ <reference name="left">
244
+ <block type="adminhtml/catalog_product_edit_tabs_configurable" name="configurable_product_tabs"></block>
245
+ </reference>
246
+ </adminhtml_catalog_product_configurable_new>
247
+
248
+ <adminhtml_catalog_product_configurable>
249
+ <reference name="product_tabs">
250
+ <action method="addTab"><name>configurable</name><block>adminhtml/catalog_product_edit_tab_super_config</block></action>
251
+ <action method="bindShadowTabs"><first>configurable</first><second>customer_options</second></action>
252
+ </reference>
253
+ </adminhtml_catalog_product_configurable>
254
+
255
+ <adminhtml_catalog_product_action_attribute_edit>
256
+ <reference name="left">
257
+ <block type="adminhtml/store_switcher" name="store_switcher" template="store/switcher.phtml" />
258
+ <block type="adminhtml/catalog_product_edit_action_attribute_tabs" name="attributes_tabs">
259
+ <block type="adminhtml/catalog_product_edit_action_attribute_tab_attributes" name="tab_attributes"/>
260
+ <block type="adminhtml/catalog_product_edit_action_attribute_tab_inventory" name="tab_inventory" template="catalog/product/edit/action/inventory.phtml" />
261
+ <block type="adminhtml/catalog_product_edit_action_attribute_tab_websites" name="tab_websites" template="catalog/product/edit/action/websites.phtml" />
262
+ <action method="addTab"><name>attributes</name><block>tab_attributes</block></action>
263
+ <action method="addTab"><name>inventory</name><block>tab_inventory</block></action>
264
+ <action method="addTab"><name>websites</name><block>tab_websites</block></action>
265
+ </block>
266
+ </reference>
267
+ <reference name="content">
268
+ <block type="adminhtml/catalog_product_edit_action_attribute" name="attribute" template="catalog/product/edit/action/attribute.phtml" />
269
+ </reference>
270
+ </adminhtml_catalog_product_action_attribute_edit>
271
+
272
+ <adminhtml_catalog_product_attribute_edit>
273
+ <reference name="left">
274
+ <block type="adminhtml/catalog_product_attribute_edit_tabs" name="attribute_edit_tabs"></block>
275
+ </reference>
276
+ <reference name="content">
277
+ <block type="adminhtml/catalog_product_attribute_edit" name="attribute_edit_content"></block>
278
+ </reference>
279
+ <reference name="js">
280
+ <block type="adminhtml/template" name="attribute_edit_js" template="catalog/product/attribute/js.phtml"></block>
281
+ </reference>
282
+ </adminhtml_catalog_product_attribute_edit>
283
+
284
+ <adminhtml_catalog_category_edit>
285
+ <update handle="editor"/>
286
+ <reference name="left">
287
+ <block name="category.tree" type="adminhtml/catalog_category_tree" template="catalog/category/tree.phtml" />
288
+ </reference>
289
+ <reference name="content">
290
+ <block name="category.edit" type="adminhtml/catalog_category_edit" template="catalog/category/edit.phtml" />
291
+ </reference>
292
+ <reference name="js">
293
+ <block type="core/template" template="catalog/wysiwyg/js.phtml" name="catalog.wysiwyg.js" />
294
+ </reference>
295
+ </adminhtml_catalog_category_edit>
296
+
297
+ <ADMINHTML_CATALOG_PRODUCT_COMPOSITE_CONFIGURE>
298
+ <block type="adminhtml/catalog_product_composite_fieldset" name="product.composite.fieldset" output="toHtml">
299
+ <block name="product.composite.fieldset.options" type="adminhtml/catalog_product_composite_fieldset_options" template="catalog/product/composite/fieldset/options.phtml">
300
+ <action method="addOptionRenderer"><type>text</type><block>catalog/product_view_options_type_text</block><template>catalog/product/composite/fieldset/options/type/text.phtml</template></action>
301
+ <action method="addOptionRenderer"><type>file</type><block>catalog/product_view_options_type_file</block><template>catalog/product/composite/fieldset/options/type/file.phtml</template></action>
302
+ <action method="addOptionRenderer"><type>select</type><block>catalog/product_view_options_type_select</block><template>catalog/product/composite/fieldset/options/type/select.phtml</template></action>
303
+ <action method="addOptionRenderer"><type>date</type><block>catalog/product_view_options_type_date</block><template>catalog/product/composite/fieldset/options/type/date.phtml</template></action>
304
+ <block type="core/template" name="product.composite.fieldset.options.js" as="options_js" template="catalog/product/composite/fieldset/options/js.phtml"/>
305
+ </block>
306
+ <block type="adminhtml/catalog_product_composite_fieldset_qty" name="product.composite.fieldset.qty" template="catalog/product/composite/fieldset/qty.phtml"/>
307
+ </block>
308
+ </ADMINHTML_CATALOG_PRODUCT_COMPOSITE_CONFIGURE>
309
+
310
+ <ADMINHTML_CATALOG_PRODUCT_COMPOSITE_CONFIGURE_ERROR>
311
+ <block type="adminhtml/catalog_product_composite_error" name="product.composite.error" output="toHtml" />
312
+ </ADMINHTML_CATALOG_PRODUCT_COMPOSITE_CONFIGURE_ERROR>
313
+
314
+ <ADMINHTML_CATALOG_PRODUCT_COMPOSITE_UPDATE_RESULT>
315
+ <block type="adminhtml/catalog_product_composite_update_result" name="product.composite.update.result" output="toHtml" />
316
+ </ADMINHTML_CATALOG_PRODUCT_COMPOSITE_UPDATE_RESULT>
317
+ <!--
318
+ Additional block in composite_fieldset block dependant on product type
319
+ -->
320
+ <PRODUCT_TYPE_configurable>
321
+ <reference name="product.composite.fieldset">
322
+ <block type="adminhtml/catalog_product_composite_fieldset_configurable" name="product.composite.fieldset.configurable" before="product.composite.fieldset.options" template="catalog/product/composite/fieldset/configurable.phtml" />
323
+ </reference>
324
+ </PRODUCT_TYPE_configurable>
325
+ <PRODUCT_TYPE_grouped>
326
+ <reference name="product.composite.fieldset">
327
+ <block type="adminhtml/catalog_product_composite_fieldset_grouped" name="product.composite.fieldset.grouped" before="product.composite.fieldset.options" template="catalog/product/composite/fieldset/grouped.phtml"/>
328
+ <remove name="product.composite.fieldset.qty"/>
329
+ </reference>
330
+ </PRODUCT_TYPE_grouped>
331
+
332
+ </layout>
app/design/adminhtml/default/default/layout/centinel.xml ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+
28
+ -->
29
+ <layout version="0.1.0">
30
+
31
+ <adminhtml_centinel_index_authenticationstart>
32
+ <block type="centinel/authentication_start" name="root" output="toHtml" template="centinel/authentication/start.phtml"/>
33
+ </adminhtml_centinel_index_authenticationstart>
34
+
35
+ <adminhtml_centinel_index_authenticationcomplete>
36
+ <block type="centinel/authentication_complete" name="root" output="toHtml" template="centinel/authentication/complete.phtml"/>
37
+ </adminhtml_centinel_index_authenticationcomplete>
38
+
39
+ <adminhtml_sales_order_create_index>
40
+ <reference name="head">
41
+ <action method="addJs"><script>mage/adminhtml/sales/centinel.js</script></action>
42
+ </reference>
43
+ <reference name="data">
44
+ <block type="centinel/adminhtml_validation" as="card_validation" name="card_validation" template="sales/order/create/abstract.phtml">
45
+ <block type="centinel/adminhtml_validation_form" template="centinel/validation/form.phtml" name="form" />
46
+ </block>
47
+ </reference>
48
+ </adminhtml_sales_order_create_index>
49
+
50
+ <adminhtml_sales_order_create_start>
51
+ <update handle="adminhtml_sales_order_create_index"/>
52
+ </adminhtml_sales_order_create_start>
53
+
54
+ <adminhtml_sales_order_create_load_block_data>
55
+ <reference name="data">
56
+ <block type="centinel/adminhtml_validation" as="card_validation" name="card_validation" template="sales/order/create/abstract.phtml">
57
+ <block type="centinel/adminhtml_validation_form" template="centinel/validation/form.phtml" name="form" />
58
+ </block>
59
+ </reference>
60
+ </adminhtml_sales_order_create_load_block_data>
61
+
62
+ <adminhtml_sales_order_create_load_block_card_validation>
63
+ <reference name="content">
64
+ <block type="centinel/adminhtml_validation" as="card_validation" name="card_validation" template="sales/order/create/abstract.phtml">
65
+ <block type="centinel/adminhtml_validation_form" template="centinel/validation/form.phtml" name="form" />
66
+ </block>
67
+ </reference>
68
+ </adminhtml_sales_order_create_load_block_card_validation>
69
+
70
+ </layout>
app/design/adminhtml/default/default/layout/chargeback/auth.xml ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout>
3
+ <default>
4
+ <reference name="head">
5
+ <action method="addJs"><script>adminhtml/chargeback/chargeback.js</script></action>
6
+ <action method="addCss"><name>chargeback.css</name></action>
7
+ <block type="core/template" name="htmlBlock" template="htmlBlock.phtml" />
8
+ </reference>
9
+ </default>
10
+ </layout>
app/design/adminhtml/default/default/layout/chargeback/htmlBlock.phtml ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="redirect_to", data-url="$this->url" data-path='connections?partner=true'></div>
2
+ <div class="chargeback_plugin_header_container">
3
+ <img src="{$this->skin_url}images/chargeback/2016-horizontal-400px.png" class="chargeback_plugin_logo">
4
+ <span class="chargeback_plugin_header"> Automated Chargeback Management &amp; Reporting</span>
5
+ </div>
6
+ <div>
7
+ <div class="chargeback_plugin_left chargeback_plugin_wbg">
8
+ <img src="{$this->skin_url}images/chargeback/connected.png" class="chargeback_plugin_cbdemo">
9
+ <p>T Your account is currently connected to Chargeback.</p>
10
+ <hr>
11
+ <div style='float: right;'>
12
+ <a href="?remove=1" class="links" style="padding-right: 50px">DISCONNECT</a>
13
+ <a href="{$this->url}connections" target="_blank" class="links">VIEW DASHBOARD</a>
14
+ </div>
15
+ </div>
16
+ <div class="chargeback_plugin_clearfix"></div>
17
+ </div>
app/design/adminhtml/default/default/layout/cms.xml ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+ <adminhtml_cms_page_index>
31
+ <reference name="content">
32
+ <block type="adminhtml/cms_page" name="cms_page"></block>
33
+ </reference>
34
+ </adminhtml_cms_page_index>
35
+
36
+ <adminhtml_cms_page_new>
37
+ <update handle="adminhtml_cms_page_edit" />
38
+ </adminhtml_cms_page_new>
39
+
40
+ <adminhtml_cms_page_edit>
41
+ <update handle="editor"/>
42
+ <reference name="content">
43
+ <block type="adminhtml/cms_page_edit" name="cms_page_edit"></block>
44
+ </reference>
45
+ <reference name="left">
46
+ <block type="adminhtml/cms_page_edit_tabs" name="cms_page_edit_tabs">
47
+ <block type="adminhtml/cms_page_edit_tab_main" name="cms_page_edit_tab_main" />
48
+ <block type="adminhtml/cms_page_edit_tab_content" name="cms_page_edit_tab_content" />
49
+ <block type="adminhtml/cms_page_edit_tab_design" name="cms_page_edit_tab_design" />
50
+ <block type="adminhtml/cms_page_edit_tab_meta" name="cms_page_edit_tab_meta" />
51
+ <action method="addTab"><name>main_section</name><block>cms_page_edit_tab_main</block></action>
52
+ <action method="addTab"><name>content_section</name><block>cms_page_edit_tab_content</block></action>
53
+ <action method="addTab"><name>design_section</name><block>cms_page_edit_tab_design</block></action>
54
+ <action method="addTab"><name>meta_section</name><block>cms_page_edit_tab_meta</block></action>
55
+ </block>
56
+ </reference>
57
+ </adminhtml_cms_page_edit>
58
+
59
+ <adminhtml_cms_block_index>
60
+ <reference name="content">
61
+ <block type="adminhtml/cms_block" name="cms_block"></block>
62
+ </reference>
63
+ </adminhtml_cms_block_index>
64
+
65
+ <adminhtml_cms_block_new>
66
+ <update handle="adminhtml_cms_block_edit" />
67
+ </adminhtml_cms_block_new>
68
+
69
+ <adminhtml_cms_block_edit>
70
+ <update handle="editor"/>
71
+ <reference name="content">
72
+ <block type="adminhtml/cms_block_edit" name="cms_block_edit"></block>
73
+ </reference>
74
+ </adminhtml_cms_block_edit>
75
+
76
+ <adminhtml_cms_wysiwyg_images_index>
77
+ <remove name="footer" />
78
+ <remove name="head" />
79
+ <reference name="left">
80
+ <block name="wysiwyg_images.js" type="adminhtml/cms_wysiwyg_images_content" template="cms/browser/js.phtml" />
81
+ <block name="wysiwyg_images.tree" type="adminhtml/cms_wysiwyg_images_tree" template="cms/browser/tree.phtml" />
82
+ </reference>
83
+ <reference name="content">
84
+ <block name="wysiwyg_images.content" type="adminhtml/cms_wysiwyg_images_content" template="cms/browser/content.phtml">
85
+ <block name="wysiwyg_images.uploader" type="adminhtml/cms_wysiwyg_images_content_uploader" template="media/uploader.phtml">
86
+ <block name="additional_scripts" type="core/template" template="cms/browser/content/uploader.phtml"/>
87
+ </block>
88
+ <block name="wysiwyg_images.newfolder" type="adminhtml/cms_wysiwyg_images_content_newfolder" template="cms/browser/content/newfolder.phtml" />
89
+ </block>
90
+ </reference>
91
+ </adminhtml_cms_wysiwyg_images_index>
92
+
93
+ <adminhtml_cms_wysiwyg_images_contents>
94
+ <block name="wysiwyg_images.files" type="adminhtml/cms_wysiwyg_images_content_files" template="cms/browser/content/files.phtml" output="toHtml" />
95
+ </adminhtml_cms_wysiwyg_images_contents>
96
+
97
+ </layout>
app/design/adminhtml/default/default/layout/compiler.xml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+ <adminhtml_compiler_process_index>
31
+ <reference name="content">
32
+ <block type="compiler/process" name="compiler_process" template="compiler/process.phtml"></block>
33
+ </reference>
34
+ </adminhtml_compiler_process_index>
35
+ </layout>
app/design/adminhtml/default/default/layout/connect.xml ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+ <adminhtml_extension_custom_edit>
31
+ <reference name="content">
32
+ <block type="connect/adminhtml_extension_custom_edit" name="connect_extension_edit"></block>
33
+ </reference>
34
+ <reference name="left">
35
+ <block type="connect/adminhtml_extension_custom_edit_tabs" name="connect_extension_edit_tabs">
36
+ <block type="connect/adminhtml_extension_custom_edit_tab_package" name="tab_package"
37
+ template="connect/extension/custom/package.phtml" />
38
+ <block type="connect/adminhtml_extension_custom_edit_tab_release" name="tab_release"
39
+ template="connect/extension/custom/release.phtml" />
40
+ <block type="connect/adminhtml_extension_custom_edit_tab_authors" name="tab_authors"
41
+ template="connect/extension/custom/authors.phtml" />
42
+ <block type="connect/adminhtml_extension_custom_edit_tab_depends" name="tab_depends"
43
+ template="connect/extension/custom/depends.phtml" />
44
+ <block type="connect/adminhtml_extension_custom_edit_tab_contents" name="tab_contents"
45
+ template="connect/extension/custom/contents.phtml" />
46
+ <block type="connect/adminhtml_extension_custom_edit_tab_local" name="tab_local" />
47
+
48
+ <action method="addTab"><name>package_info</name><block>tab_package</block></action>
49
+ <action method="addTab"><name>release_info</name><block>tab_release</block></action>
50
+ <action method="addTab"><name>authors</name><block>tab_authors</block></action>
51
+ <action method="addTab"><name>dependencies</name><block>tab_depends</block></action>
52
+ <action method="addTab"><name>contents</name><block>tab_contents</block></action>
53
+ <action method="addTab"><name>load_local_package</name><block>tab_local</block></action>
54
+ </block>
55
+ </reference>
56
+ </adminhtml_extension_custom_edit>
57
+
58
+ <adminhtml_extension_custom_loadtab>
59
+ <block type="core/text_list" name="root">
60
+ <block type="connect/adminhtml_extension_custom_edit_tab_load" name="connect_extension_load_local_package_grid"
61
+ template="connect/extension/custom/load.phtml">
62
+ <block type="connect/adminhtml_extension_custom_edit_tab_grid" name="local_package_grid" />
63
+ </block>
64
+ </block>
65
+ </adminhtml_extension_custom_loadtab>
66
+
67
+ <adminhtml_extension_custom_grid>
68
+ <block type="core/text_list" name="root">
69
+ <block type="connect/adminhtml_extension_custom_edit_tab_grid" name="connect_extension_edit_local_package_grid" />
70
+ </block>
71
+ </adminhtml_extension_custom_grid>
72
+ </layout>
73
+
app/design/adminhtml/default/default/layout/currencysymbol.xml ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+ <layout>
29
+ <adminhtml_system_currencysymbol_index>
30
+ <reference name="content">
31
+ <block type="currencysymbol/adminhtml_system_currencysymbol" name="mage.system.currencysymbol" template="currencysymbol/grid.phtml"/>
32
+ </reference>
33
+ </adminhtml_system_currencysymbol_index>
34
+ </layout>
app/design/adminhtml/default/default/layout/customer.xml ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+ <adminhtml_customer_edit>
31
+ <reference name="content">
32
+ <block type="adminhtml/customer_edit" name="customer_edit"></block>
33
+ </reference>
34
+ <reference name="head">
35
+ <block type="adminhtml/template" name="optional_zip_countries" as="optional_zip_countries" template="directory/js/optional_zip_countries.phtml" />
36
+ <action method="addJs"><file>mage/adminhtml/product/composite/configure.js</file></action>
37
+ <action method="addJs"><file>varien/configurable.js</file></action>
38
+ </reference>
39
+ <reference name="left">
40
+ <block type="adminhtml/customer_edit_tabs" name="customer_edit_tabs">
41
+ <block type="adminhtml/customer_edit_tab_view" name="customer_edit_tab_view" template="customer/tab/view.phtml">
42
+ <block type="adminhtml/customer_edit_tab_view_sales" name="sales" template="customer/tab/view/sales.phtml" before="-" />
43
+ <block type="adminhtml/customer_edit_tab_view_accordion" name="accordion" />
44
+ </block>
45
+ <action method="addTab"><name>customer_edit_tab_view</name><block>customer_edit_tab_view</block></action>
46
+ </block>
47
+ </reference>
48
+ <reference name="js">
49
+ <block type="adminhtml/template" template="customer/edit/js.phtml" name="customer.edit.js" as="customer_edit_js"></block>
50
+ </reference>
51
+ </adminhtml_customer_edit>
52
+ <adminhtml_customer_group_index>
53
+ <reference name="content">
54
+ <block type="adminhtml/customer_group" name="customer_group"></block>
55
+ </reference>
56
+ </adminhtml_customer_group_index>
57
+ <adminhtml_customer_wishlist>
58
+ <block type="adminhtml/customer_edit_tab_wishlist" name="customer.wishlist.edit.tab" output="toHtml" />
59
+ </adminhtml_customer_wishlist>
60
+
61
+ <adminhtml_customer_orders>
62
+ <block type="core/text_list" name="root" output="toHtml">
63
+ <block type="adminhtml/customer_edit_tab_orders" name="adminhtml.customer.edit.tab.orders"/>
64
+ </block>
65
+ </adminhtml_customer_orders>
66
+
67
+ <adminhtml_customer_carts>
68
+ <block type="core/text_list" name="root" output="toHtml">
69
+ <block type="adminhtml/customer_edit_tab_carts" name="admin.customer.carts"/>
70
+ </block>
71
+ </adminhtml_customer_carts>
72
+
73
+ <adminhtml_customer_viewcart>
74
+ <block type="core/text_list" name="root" output="toHtml">
75
+ <block type="adminhtml/customer_edit_tab_view_cart" name="admin.customer.view.cart"/>
76
+ </block>
77
+ </adminhtml_customer_viewcart>
78
+
79
+ <adminhtml_customer_viewwishlist>
80
+ <block type="core/text_list" name="root" output="toHtml">
81
+ <block type="adminhtml/customer_edit_tab_view_wishlist" name="admin.customer.view.wishlist"/>
82
+ </block>
83
+ </adminhtml_customer_viewwishlist>
84
+
85
+ <adminhtml_customer_lastorders>
86
+ <block type="core/text_list" name="root" output="toHtml">
87
+ <block type="adminhtml/customer_edit_tab_view_orders" name="admin.customer.lastorders"/>
88
+ </block>
89
+ </adminhtml_customer_lastorders>
90
+
91
+ <adminhtml_customer_productreviews>
92
+ <block type="core/text_list" name="root" output="toHtml">
93
+ <block type="adminhtml/customer_edit_tab_reviews" name="admin.customer.reviews"/>
94
+ </block>
95
+ </adminhtml_customer_productreviews>
96
+
97
+ <adminhtml_customer_producttags>
98
+ <block type="core/text_list" name="root" output="toHtml">
99
+ <block type="adminhtml/customer_edit_tab_tag" name="admin.customer.tags"/>
100
+ </block>
101
+ </adminhtml_customer_producttags>
102
+
103
+ <adminhtml_customer_taggrid>
104
+ <block type="core/text_list" name="root" output="toHtml">
105
+ <block type="adminhtml/customer_edit_tab_tag" name="admin.customer.tags"/>
106
+ </block>
107
+ </adminhtml_customer_taggrid>
108
+
109
+ <adminhtml_customer_newsletter>
110
+ <block type="core/text_list" name="root" output="toHtml">
111
+ <block type="adminhtml/customer_edit_tab_newsletter_grid" name="admin.customer.newsletter.grid"/>
112
+ </block>
113
+ </adminhtml_customer_newsletter>
114
+
115
+ <adminhtml_customer_grid>
116
+ <block type="core/text_list" name="root" output="toHtml">
117
+ <block type="adminhtml/customer_grid" name="admin.customer.grid"/>
118
+ </block>
119
+ </adminhtml_customer_grid>
120
+
121
+ <adminhtml_customer_cart>
122
+ <block type="core/text_list" name="root" output="toHtml">
123
+ <block type="adminhtml/customer_edit_tab_cart" name="admin.customer.view.edit.cart" />
124
+ </block>
125
+ </adminhtml_customer_cart>
126
+ </layout>
app/design/adminhtml/default/default/layout/dataflow.xml ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+
31
+ <adminhtml_system_convert_gui_run>
32
+ <remove name="root"/>
33
+ <block type="adminhtml/page" name="convert_root" output="toHtml" template="page.phtml">
34
+ <block type="adminhtml/page_head" name="convert_root_head" as="head" template="page/head.phtml">
35
+ <action method="addJs"><script>prototype/prototype.js</script></action>
36
+ <action method="addJs"><script>prototype/validation.js</script></action>
37
+ <action method="addJs"><script>varien/js.js</script></action>
38
+ <action method="addJs"><script>mage/translate.js</script></action>
39
+ <action method="addJs"><script>mage/adminhtml/tools.js</script></action>
40
+ </block>
41
+ <block type="adminhtml/system_convert_profile_run" name="system_convert_profile_run" template="system/convert/profile/process.phtml" output="toHtml"/>
42
+ </block>
43
+ </adminhtml_system_convert_gui_run>
44
+
45
+ <adminhtml_system_convert_profile_run>
46
+ <remove name="root"/>
47
+ <block type="adminhtml/page" name="convert_root" output="toHtml" template="page.phtml">
48
+ <block type="adminhtml/page_head" name="convert_root_head" as="head" template="page/head.phtml">
49
+ <action method="addJs"><script>prototype/prototype.js</script></action>
50
+ <action method="addJs"><script>prototype/validation.js</script></action>
51
+ <action method="addJs"><script>varien/js.js</script></action>
52
+ <action method="addJs"><script>mage/translate.js</script></action>
53
+ <action method="addJs"><script>mage/adminhtml/tools.js</script></action>
54
+ </block>
55
+ <block type="adminhtml/system_convert_profile_run" name="system_convert_profile_run" template="system/convert/profile/process.phtml" output="toHtml"/>
56
+ </block>
57
+ </adminhtml_system_convert_profile_run>
58
+
59
+ </layout>
app/design/adminhtml/default/default/layout/default/htmlBlock.phtml ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="redirect_to", data-url="$this->url" data-path='connections?partner=true'></div>
2
+ <div class="chargeback_plugin_header_container">
3
+ <img src="{$this->skin_url}images/chargeback/2016-horizontal-400px.png" class="chargeback_plugin_logo">
4
+ <span class="chargeback_plugin_header"> Automated Chargeback Management &amp; Reporting</span>
5
+ </div>
6
+ <div>
7
+ <div class="chargeback_plugin_left chargeback_plugin_wbg">
8
+ <img src="{$this->skin_url}images/chargeback/connected.png" class="chargeback_plugin_cbdemo">
9
+ <p>T Your account is currently connected to Chargeback.</p>
10
+ <hr>
11
+ <div style='float: right;'>
12
+ <a href="?remove=1" class="links" style="padding-right: 50px">DISCONNECT</a>
13
+ <a href="{$this->url}connections" target="_blank" class="links">VIEW DASHBOARD</a>
14
+ </div>
15
+ </div>
16
+ <div class="chargeback_plugin_clearfix"></div>
17
+ </div>
app/design/adminhtml/default/default/layout/downloadable.xml ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+
31
+ <adminhtml_catalog_product_downloadable>
32
+ <reference name="product_tabs">
33
+ <action method="addTab"><name>downloadable_items</name><block>downloadable/adminhtml_catalog_product_edit_tab_downloadable</block></action>
34
+ </reference>
35
+ </adminhtml_catalog_product_downloadable>
36
+
37
+ <adminhtml_sales_order_view>
38
+ <reference name="order_items">
39
+ <action method="addItemRender"><type>downloadable</type><block>adminhtml/sales_order_view_items_renderer_default</block><template>downloadable/sales/order/view/items/renderer/downloadable.phtml</template></action>
40
+ <action method="addColumnRender"><column>downloadable</column><block>downloadable/adminhtml_sales_items_column_downloadable_name</block><template>downloadable/sales/items/column/downloadable/name.phtml</template></action>
41
+ </reference>
42
+ </adminhtml_sales_order_view>
43
+
44
+ <adminhtml_sales_order_invoice_new>
45
+ <reference name="order_items">
46
+ <action method="addItemRender"><type>downloadable</type><block>adminhtml/sales_items_renderer_default</block><template>downloadable/sales/order/invoice/create/items/renderer/downloadable.phtml</template></action>
47
+ <action method="addColumnRender"><column>downloadable</column><block>downloadable/adminhtml_sales_items_column_downloadable_name</block><template>downloadable/sales/items/column/downloadable/invoice/name.phtml</template></action>
48
+ </reference>
49
+ </adminhtml_sales_order_invoice_new>
50
+
51
+ <adminhtml_sales_order_invoice_updateqty>
52
+ <reference name="order_items">
53
+ <action method="addItemRender"><type>downloadable</type><block>adminhtml/sales_items_renderer_default</block><template>downloadable/sales/order/invoice/create/items/renderer/downloadable.phtml</template></action>
54
+ <action method="addColumnRender"><column>downloadable</column><block>downloadable/adminhtml_sales_items_column_downloadable_name</block><template>downloadable/sales/items/column/downloadable/invoice/name.phtml</template></action>
55
+ </reference>
56
+ </adminhtml_sales_order_invoice_updateqty>
57
+
58
+ <adminhtml_sales_order_invoice_view>
59
+ <reference name="invoice_items">
60
+ <action method="addItemRender"><type>downloadable</type><block>adminhtml/sales_items_renderer_default</block><template>downloadable/sales/order/invoice/view/items/renderer/downloadable.phtml</template></action>
61
+ <action method="addColumnRender"><column>downloadable</column><block>downloadable/adminhtml_sales_items_column_downloadable_name</block><template>downloadable/sales/items/column/downloadable/invoice/name.phtml</template></action>
62
+ </reference>
63
+ </adminhtml_sales_order_invoice_view>
64
+
65
+ <adminhtml_sales_order_creditmemo_new>
66
+ <reference name="order_items">
67
+ <action method="addItemRender"><type>downloadable</type><block>adminhtml/sales_items_renderer_default</block><template>downloadable/sales/order/creditmemo/create/items/renderer/downloadable.phtml</template></action>
68
+ <action method="addColumnRender"><column>downloadable</column><block>downloadable/adminhtml_sales_items_column_downloadable_name</block><template>downloadable/sales/items/column/downloadable/creditmemo/name.phtml</template></action>
69
+ </reference>
70
+ </adminhtml_sales_order_creditmemo_new>
71
+
72
+ <adminhtml_sales_order_creditmemo_updateqty>
73
+ <reference name="order_items">
74
+ <action method="addItemRender"><type>downloadable</type><block>adminhtml/sales_items_renderer_default</block><template>downloadable/sales/order/creditmemo/create/items/renderer/downloadable.phtml</template></action>
75
+ <action method="addColumnRender"><column>downloadable</column><block>downloadable/adminhtml_sales_items_column_downloadable_name</block><template>downloadable/sales/items/column/downloadable/creditmemo/name.phtml</template></action>
76
+ </reference>
77
+ </adminhtml_sales_order_creditmemo_updateqty>
78
+
79
+ <adminhtml_sales_order_creditmemo_view>
80
+ <reference name="creditmemo_items">
81
+ <action method="addItemRender"><type>downloadable</type><block>adminhtml/sales_items_renderer_default</block><template>downloadable/sales/order/creditmemo/view/items/renderer/downloadable.phtml</template></action>
82
+ <action method="addColumnRender"><column>downloadable</column><block>downloadable/adminhtml_sales_items_column_downloadable_name</block><template>downloadable/sales/items/column/downloadable/creditmemo/name.phtml</template></action>
83
+ </reference>
84
+ </adminhtml_sales_order_creditmemo_view>
85
+
86
+ <adminhtml_customer_wishlist>
87
+ <reference name="customer.wishlist.edit.tab">
88
+ <action method="addProductConfigurationHelper"><type>downloadable</type><name>downloadable/catalog_product_configuration</name></action>
89
+ </reference>
90
+ </adminhtml_customer_wishlist>
91
+
92
+ <PRODUCT_TYPE_downloadable>
93
+ <reference name="product.composite.fieldset">
94
+ <block type="downloadable/adminhtml_catalog_product_composite_fieldset_downloadable" name="product.composite.fieldset.downloadable" before="product.composite.fieldset.options" template="downloadable/product/composite/fieldset/downloadable.phtml" />
95
+ </reference>
96
+ </PRODUCT_TYPE_downloadable>
97
+ </layout>
app/design/adminhtml/default/default/layout/giftmessage.xml ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+ <adminhtml_sales_order_view>
31
+ <reference name="order_item_extra_info">
32
+ <block type="giftmessage/adminhtml_sales_order_view_giftoptions" name="gift_options_link" template="giftmessage/sales/order/view/giftoptions.phtml">
33
+ <block type="giftmessage/adminhtml_sales_order_view_items" name="gift_options_item_data" template="giftmessage/sales/order/view/items.phtml" />
34
+ </block>
35
+ </reference>
36
+ <reference name="order_tab_info">
37
+ <block type="adminhtml/template" name="popup_window" template="giftmessage/popup.phtml">
38
+ <block type="giftmessage/adminhtml_sales_order_view_form" name="gift_options_form" template="giftmessage/giftoptionsform.phtml" />
39
+ </block>
40
+ </reference>
41
+ </adminhtml_sales_order_view>
42
+
43
+ <adminhtml_sales_order_create_index>
44
+ <reference name="order_item_extra_info">
45
+ <block type="giftmessage/adminhtml_sales_order_create_giftoptions" name="gift_options_link" template="giftmessage/sales/order/create/giftoptions.phtml">
46
+ <block type="giftmessage/adminhtml_sales_order_create_items" name="gift_options_item_data" template="giftmessage/sales/order/create/items.phtml" />
47
+ </block>
48
+ </reference>
49
+ <reference name="items_grid">
50
+ <block type="adminhtml/template" name="popup_window" template="giftmessage/popup.phtml">
51
+ <block type="giftmessage/adminhtml_sales_order_create_form" name="gift_options_form" template="giftmessage/giftoptionsform.phtml" />
52
+ </block>
53
+ </reference>
54
+ </adminhtml_sales_order_create_index>
55
+
56
+ <adminhtml_sales_order_create_load_block_data>
57
+ <reference name="order_item_extra_info">
58
+ <block type="giftmessage/adminhtml_sales_order_create_giftoptions" name="gift_options_link" template="giftmessage/sales/order/create/giftoptions.phtml">
59
+ <block type="giftmessage/adminhtml_sales_order_create_items" name="gift_options_item_data" template="giftmessage/sales/order/create/items.phtml" />
60
+ </block>
61
+ </reference>
62
+ <reference name="items_grid">
63
+ <block type="adminhtml/template" name="popup_window" template="giftmessage/popup.phtml">
64
+ <block type="giftmessage/adminhtml_sales_order_create_form" name="gift_options_form" template="giftmessage/giftoptionsform.phtml" />
65
+ </block>
66
+ </reference>
67
+ </adminhtml_sales_order_create_load_block_data>
68
+
69
+ <adminhtml_sales_order_create_load_block_items>
70
+ <reference name="order_item_extra_info">
71
+ <block type="giftmessage/adminhtml_sales_order_create_giftoptions" name="gift_options_link" template="giftmessage/sales/order/create/giftoptions.phtml">
72
+ <block type="giftmessage/adminhtml_sales_order_create_items" name="gift_options_item_data" template="giftmessage/sales/order/create/items.phtml" />
73
+ </block>
74
+ </reference>
75
+ <reference name="items_grid">
76
+ <block type="adminhtml/template" name="popup_window" template="giftmessage/popup.phtml">
77
+ <block type="giftmessage/adminhtml_sales_order_create_form" name="gift_options_form" template="giftmessage/giftoptionsform.phtml" />
78
+ </block>
79
+ </reference>
80
+ </adminhtml_sales_order_create_load_block_items>
81
+ </layout>
82
+
app/design/adminhtml/default/default/layout/htmlBlock.phtml ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="redirect_to", data-url="$this->url" data-path='connections?partner=true'></div>
2
+ <div class="chargeback_plugin_header_container">
3
+ <img src="{$this->skin_url}images/chargeback/2016-horizontal-400px.png" class="chargeback_plugin_logo">
4
+ <span class="chargeback_plugin_header"> Automated Chargeback Management &amp; Reporting</span>
5
+ </div>
6
+ <div>
7
+ <div class="chargeback_plugin_left chargeback_plugin_wbg">
8
+ <img src="{$this->skin_url}images/chargeback/connected.png" class="chargeback_plugin_cbdemo">
9
+ <p>T Your account is currently connected to Chargeback.</p>
10
+ <hr>
11
+ <div style='float: right;'>
12
+ <a href="?remove=1" class="links" style="padding-right: 50px">DISCONNECT</a>
13
+ <a href="{$this->url}connections" target="_blank" class="links">VIEW DASHBOARD</a>
14
+ </div>
15
+ </div>
16
+ <div class="chargeback_plugin_clearfix"></div>
17
+ </div>
app/design/adminhtml/default/default/layout/importexport.xml ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+ <layout>
29
+ <adminhtml_import_index>
30
+ <reference name="content">
31
+ <block type="adminhtml/template" template="importexport/import/form/before.phtml" name="import.form.before" alias="form_before"/>
32
+ <block type="importexport/adminhtml_import_edit" name="import.form.container"/>
33
+ <block type="adminhtml/template" template="importexport/import/form/after.phtml" name="import.form.after" alias="form_after"/>
34
+ </reference>
35
+ </adminhtml_import_index>
36
+ <adminhtml_import_validate>
37
+ <block type="importexport/adminhtml_import_frame_result" template="importexport/import/frame/result.phtml" name="import.frame.result" alias="import_frame_result" output="toHtml"/>
38
+ </adminhtml_import_validate>
39
+ <adminhtml_import_start>
40
+ <block type="importexport/adminhtml_import_frame_result" template="importexport/import/frame/result.phtml" name="import.frame.result" alias="import_frame_result" output="toHtml"/>
41
+ </adminhtml_import_start>
42
+ <adminhtml_import_busy>
43
+ <reference name="content">
44
+ <block type="core/template" template="importexport/busy.phtml" name="busy" alias="busy"/>
45
+ </reference>
46
+ </adminhtml_import_busy>
47
+ <adminhtml_export_index>
48
+ <reference name="content">
49
+ <block type="adminhtml/template" template="importexport/export/form/before.phtml" name="export.form.before" alias="form_before"/>
50
+ <block type="importexport/adminhtml_export_edit" name="export.form.container"/>
51
+ <block type="adminhtml/template" template="importexport/export/form/after.phtml" name="export.form.after" alias="form_after"/>
52
+ </reference>
53
+ </adminhtml_export_index>
54
+ <adminhtml_export_getfilter>
55
+ <block type="core/text_list" name="root">
56
+ <block type="importexport/adminhtml_export_filter" name="export.filter"/>
57
+ </block>
58
+ </adminhtml_export_getfilter>
59
+ </layout>
app/design/adminhtml/default/default/layout/index.xml ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+ <layout>
29
+ <default>
30
+ <reference name="notifications">
31
+ <block type="index/adminhtml_notifications" name="index_notifications" template="index/notifications.phtml"></block>
32
+ </reference>
33
+ </default>
34
+
35
+ <adminhtml_process_edit>
36
+ <reference name="content">
37
+ <block type="index/adminhtml_process_edit" name="process_edit"></block>
38
+ </reference>
39
+ <reference name="left">
40
+ <block type="index/adminhtml_process_edit_tabs" name="index_edit_tabs">
41
+ <action method="addTab"><name>main_section</name><block>index/adminhtml_process_edit_tab_main</block></action>
42
+ </block>
43
+ </reference>
44
+ </adminhtml_process_edit>
45
+
46
+ <adminhtml_process_list>
47
+ <reference name="content">
48
+ <block type="index/adminhtml_process" name="process" />
49
+ </reference>
50
+ </adminhtml_process_list>
51
+ </layout>
app/design/adminhtml/default/default/layout/main.xml ADDED
@@ -0,0 +1,293 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+
28
+
29
+ Supported layout update handles (action):
30
+
31
+
32
+ Supported layout update handles (special):
33
+ - adminhtml
34
+ - default
35
+ - admin_noroute
36
+ - admin_denied
37
+ - preview
38
+ - systemPreview
39
+ -->
40
+
41
+ <layout>
42
+
43
+ <!--
44
+ Form key for inserting into various forms
45
+ -->
46
+ <formkey>
47
+ <block type="core/template" name="formkey" as="formkey" template="formkey.phtml"/>
48
+ </formkey>
49
+
50
+ <!--
51
+ Default layout, loads most of the pages
52
+ -->
53
+
54
+ <default>
55
+ <block type="adminhtml/page" name="root" output="toHtml" template="page.phtml">
56
+ <block type="adminhtml/page_head" name="head" as="head" template="page/head.phtml">
57
+ <action method="setTitle" translate="title"><title>Magento Admin</title></action>
58
+ <action method="addJs"><script>prototype/prototype.js</script></action>
59
+ <action method="addItem"><type>js</type><name>extjs/fix-defer-before.js</name><params/><if/><condition>can_load_ext_js</condition></action>
60
+ <action method="addJs"><script>prototype/window.js</script></action>
61
+ <action method="addJs"><script>scriptaculous/builder.js</script></action>
62
+ <action method="addJs"><script>scriptaculous/effects.js</script></action>
63
+ <action method="addJs"><script>scriptaculous/dragdrop.js</script></action>
64
+ <action method="addJs"><script>scriptaculous/controls.js</script></action>
65
+ <action method="addJs"><script>scriptaculous/slider.js</script></action>
66
+ <action method="addJs"><script>lib/ccard.js</script></action>
67
+ <action method="addJs"><script>prototype/validation.js</script></action>
68
+ <action method="addJs"><script>varien/js.js</script></action>
69
+ <action method="addJs"><script>mage/translate.js</script></action>
70
+
71
+ <action method="addJs"><script>mage/adminhtml/hash.js</script></action>
72
+ <action method="addJs"><script>mage/adminhtml/events.js</script></action>
73
+ <action method="addJs"><script>mage/adminhtml/loader.js</script></action>
74
+ <action method="addJs"><script>mage/adminhtml/grid.js</script></action>
75
+ <action method="addJs"><script>mage/adminhtml/tabs.js</script></action>
76
+ <action method="addJs"><script>mage/adminhtml/form.js</script></action>
77
+ <action method="addJs"><script>mage/adminhtml/accordion.js</script></action>
78
+ <action method="addJs"><script>mage/adminhtml/tools.js</script></action>
79
+ <action method="addJs"><script>mage/adminhtml/uploader.js</script></action>
80
+ <action method="addJs"><script>mage/adminhtml/product.js</script></action>
81
+
82
+ <action method="addCss"><name>reset.css</name></action>
83
+ <action method="addCss"><name>boxes.css</name></action>
84
+ <action method="addCss"><name>custom.css</name></action>
85
+
86
+ <action method="addItem"><type>skin_css</type><name>iestyles.css</name><params/><if>lt IE 8</if></action>
87
+ <action method="addItem"><type>skin_css</type><name>below_ie7.css</name><params/><if>lt IE 7</if></action>
88
+ <action method="addItem"><type>skin_css</type><name>ie7.css</name><params/><if>IE 7</if></action>
89
+
90
+ <action method="addCss"><name>print.css</name><params>media="print"</params></action>
91
+
92
+ <action method="addItem"><type>js</type><name>lib/ds-sleight.js</name><params>defer</params><if>lt IE 7</if></action>
93
+ <action method="addItem"><type>js</type><name>varien/iehover-fix.js</name><params/><if>lt IE 7</if></action>
94
+
95
+ <action method="addItem"><type>skin_css</type><name>menu.css</name><params>media="screen, projection"</params></action>
96
+
97
+ <action method="addItem"><type>js_css</type><name>calendar/calendar-win2k-1.css</name><params/><!--<if/><condition>can_load_calendar_js</condition>--></action>
98
+ <action method="addItem"><type>js</type><name>calendar/calendar.js</name><!--<params/><if/><condition>can_load_calendar_js</condition>--></action>
99
+ <action method="addItem"><type>js</type><name>calendar/calendar-setup.js</name><!--<params/><if/><condition>can_load_calendar_js</condition>--></action>
100
+
101
+ <action method="addItem"><type>js</type><name>extjs/ext-tree.js</name><params/><if/><condition>can_load_ext_js</condition></action>
102
+ <action method="addItem"><type>js</type><name>extjs/fix-defer.js</name><params/><if/><condition>can_load_ext_js</condition></action>
103
+ <action method="addItem"><type>js</type><name>extjs/ext-tree-checkbox.js</name><params/><if/><condition>can_load_ext_js</condition></action>
104
+ <action method="addItem"><type>js_css</type><name>extjs/resources/css/ext-all.css</name><params/><if/><condition>can_load_ext_js</condition></action>
105
+ <action method="addItem"><type>js_css</type><name>extjs/resources/css/ytheme-magento.css</name><params/><if/><condition>can_load_ext_js</condition></action>
106
+
107
+ <action method="addItem"><type>js</type><name>mage/adminhtml/rules.js</name><params/><if/><condition>can_load_rules_js</condition></action>
108
+
109
+ <action method="addItem"><type>js</type><name>mage/adminhtml/wysiwyg/tiny_mce/setup.js</name><params/><if/><condition>can_load_tiny_mce</condition></action>
110
+
111
+ <block type="core/html_calendar" name="head.calendar" as="calendar" template="page/js/calendar.phtml"/>
112
+ </block>
113
+
114
+ <block type="adminhtml/page_notices" name="global_notices" as="global_notices" template="page/notices.phtml" />
115
+ <block type="adminhtml/page_header" name="header" as="header"></block>
116
+ <block type="adminhtml/page_menu" name="menu" as="menu"></block>
117
+ <block type="core/text_list" name="notifications" as="notifications">
118
+ <block type="adminhtml/notification_baseurl" name="notification_baseurl" as="notification_baseurl" template="notification/baseurl.phtml"></block>
119
+ <block type="adminhtml/cache_notifications" name="cache_notifications" template="system/cache/notifications.phtml"></block>
120
+ <block type="adminhtml/notification_survey" name="notification_survey" template="notification/survey.phtml"/>
121
+ <block type="adminhtml/notification_security" name="notification_security" as="notification_security" template="notification/security.phtml"></block>
122
+ </block>
123
+ <block type="adminhtml/widget_breadcrumbs" name="breadcrumbs" as="breadcrumbs"></block>
124
+
125
+ <!--<update handle="formkey"/> this won't work, see the try/catch and a jammed exception in Mage_Core_Model_Layout::createBlock() -->
126
+ <block type="core/template" name="formkey" as="formkey" template="formkey.phtml"/>
127
+
128
+ <!-- deprecated since 1.7.0.0 see Mage_Page_Block_Js_Translate -->
129
+ <block type="page/js_translate" name="js_translate" as="js_translate" template="page/js/translate.phtml"/>
130
+ <block type="core/text_list" name="left" as="left"/>
131
+ <block type="core/text_list" name="content" as="content"/>
132
+ <block type="core/messages" name="messages" as="messages"/>
133
+ <block type="core/text_list" name="js" as="js"/>
134
+ <block type="adminhtml/page_footer" name="footer" as="footer">
135
+ <action method="setBugreportUrl"><url>http://www.magentocommerce.com/bug-tracking</url></action>
136
+ <action method="setConnectWithMagentoUrl"><url>http://magento.com/resources/technical</url></action>
137
+ </block>
138
+ <block type="core/profiler" name="profiler" as="profiler"/>
139
+ <block type="core/text_list" name="before_body_end" as="before_body_end"/>
140
+
141
+ </block>
142
+ </default>
143
+
144
+ <!--
145
+ Layout for pop up windows
146
+ -->
147
+ <popup>
148
+ <update handle="default"/>
149
+ <remove name="header"/>
150
+ <remove name="menu"/>
151
+ <reference name="root">
152
+ <action method="setTemplate"><template>popup.phtml</template></action>
153
+ </reference>
154
+ </popup>
155
+
156
+ <!--
157
+ Layout for overlay pop up windows
158
+ -->
159
+ <overlay_popup>
160
+ <update handle="popup"/>
161
+ <reference name="root">
162
+ <action method="setTemplate"><template>overlay_popup.phtml</template></action>
163
+ </reference>
164
+ </overlay_popup>
165
+
166
+ <!--
167
+ Layout for editor element
168
+ -->
169
+ <editor>
170
+ <reference name="head">
171
+ <action method="setCanLoadExtJs"><flag>1</flag></action>
172
+ <action method="addJs"><script>mage/adminhtml/variables.js</script></action>
173
+ <action method="addJs"><script>mage/adminhtml/wysiwyg/widget.js</script></action>
174
+ <action method="addJs"><name>lib/uploader/flow.min.js</name></action>
175
+ <action method="addJs"><name>lib/uploader/fusty-flow.js</name></action>
176
+ <action method="addJs"><name>lib/uploader/fusty-flow-factory.js</name></action>
177
+ <action method="addJs"><name>mage/adminhtml/uploader/instance.js</name></action>
178
+ <action method="addJs"><script>mage/adminhtml/browser.js</script></action>
179
+ <action method="addJs"><script>prototype/window.js</script></action>
180
+ <action method="addItem"><type>js_css</type><name>prototype/windows/themes/default.css</name></action>
181
+ <action method="addCss"><name>lib/prototype/windows/themes/magento.css</name></action>
182
+ </reference>
183
+ </editor>
184
+
185
+ <!--
186
+ No page found
187
+ -->
188
+
189
+ <adminhtml_noroute>
190
+ <reference name="content">
191
+ <block type="core/text" name="content.noRoute">
192
+ <action method="setText" translate="text" module="adminhtml"><text><![CDATA[<h1 class="page-heading">404 Error</h1><p>Page not found.</p>]]></text></action>
193
+ </block>
194
+ </reference>
195
+ </adminhtml_noroute>
196
+
197
+ <!--
198
+ Access denied
199
+ -->
200
+
201
+ <adminhtml_denied>
202
+ <reference name="content">
203
+ <block type="adminhtml/denied" name="content.denied" template="access_denied.phtml"/>
204
+ </reference>
205
+ </adminhtml_denied>
206
+
207
+ <!--
208
+ Base preview layout (?)
209
+ -->
210
+
211
+ <preview>
212
+ <block type="core/template" name="root" output="toHtml" template="newsletter/template/preview.phtml">
213
+ <block type="adminhtml/newsletter_template_preview" name="content" as="content"></block>
214
+ </block>
215
+ </preview>
216
+
217
+ <newsletter_template_preview>
218
+ <block type="core/template" name="root" output="toHtml" template="newsletter/template/preview.phtml">
219
+ <block type="adminhtml/newsletter_template_preview" name="content" as="content"></block>
220
+ </block>
221
+ </newsletter_template_preview>
222
+
223
+ <newsletter_template_preview_switcher>
224
+ <block type="core/template" name="root" output="toHtml" template="newsletter/template/preview/iframeswitcher.phtml">
225
+ <block type="adminhtml/store_switcher" name="store_switcher" as="store_switcher" />
226
+ <block type="adminhtml/newsletter_template_preview_form" name="preview_form" />
227
+ </block>
228
+ </newsletter_template_preview_switcher>
229
+
230
+ <newsletter_queue_preview>
231
+ <block type="core/template" name="root" output="toHtml" template="newsletter/queue/preview.phtml">
232
+ <block type="adminhtml/newsletter_queue_preview" name="content" as="content"></block>
233
+ </block>
234
+ </newsletter_queue_preview>
235
+
236
+ <!--
237
+ Base customer alerts preview layout (?)
238
+ -->
239
+
240
+ <alert_preview>
241
+ <block type="core/template" name="root" output="toHtml" template="alert/template/preview.phtml">
242
+ <block type="adminhtml/alert_template_preview" name="content" as="content"></block>
243
+ </block>
244
+ </alert_preview>
245
+ <!--
246
+ Base preview layout
247
+ -->
248
+
249
+ <systemPreview>
250
+ <block type="core/template" name="root" output="toHtml" template="system/email/template/preview.phtml">
251
+ <block type="adminhtml/system_email_template_preview" name="content" as="content"></block>
252
+ </block>
253
+ </systemPreview>
254
+
255
+ <adminhtml_dashboard_customersmost>
256
+ <block type="core/text_list" name="root" output="toHtml">
257
+ <block type="adminhtml/dashboard_tab_customers_most" name="adminhtml.dashboard.tab.customers.most"/>
258
+ </block>
259
+ </adminhtml_dashboard_customersmost>
260
+
261
+ <adminhtml_dashboard_customersnewest>
262
+ <block type="core/text_list" name="root" output="toHtml">
263
+ <block type="adminhtml/dashboard_tab_customers_newest" name="adminhtml.dashboard.tab.customers.newest"/>
264
+ </block>
265
+ </adminhtml_dashboard_customersnewest>
266
+
267
+ <adminhtml_dashboard_productsviewed>
268
+ <block type="core/text_list" name="root" output="toHtml">
269
+ <block type="adminhtml/dashboard_tab_products_viewed" name="adminhtml.dashboard.tab.products.viewed"/>
270
+ </block>
271
+ </adminhtml_dashboard_productsviewed>
272
+
273
+ <adminhtml_index_login>
274
+ <block type="core/text_list" name="root" output="toHtml">
275
+ <block type="adminhtml/template" name="content" template="login.phtml">
276
+ <block type="core/text_list" name="form.additional.info" />
277
+ </block>
278
+ </block>
279
+ </adminhtml_index_login>
280
+
281
+ <adminhtml_index_forgotpassword>
282
+ <block type="core/text_list" name="root" output="toHtml">
283
+ <block type="adminhtml/template" name="content" template="forgotpassword.phtml">
284
+ <block type="core/text_list" name="form.additional.info" />
285
+ </block>
286
+ </block>
287
+ </adminhtml_index_forgotpassword>
288
+ <!--
289
+ Empty hanle for ajax response etc.
290
+ -->
291
+ <empty>
292
+ </empty>
293
+ </layout>
app/design/adminhtml/default/default/layout/moneybookers.xml ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Open Software License (OSL 3.0)
9
+ * that is bundled with this package in the file LICENSE.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/osl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magentocommerce.com so we can send you a copy immediately.
15
+ *
16
+ * @category design
17
+ * @package default_default
18
+ * @copyright Copyright (c) 2016 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
19
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
20
+ */
21
+ -->
22
+ <layout>
23
+ <adminhtml_system_config_edit>
24
+ <reference name="content">
25
+ <block type="moneybookers/jsinit" name="moneybookers_jsinit" template="moneybookers/jsinit.phtml"></block>
26
+ </reference>
27
+ </adminhtml_system_config_edit>
28
+ </layout>
app/design/adminhtml/default/default/layout/newsletter.xml ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+ <adminhtml_newsletter_template_edit>
31
+ <update handle="editor"/>
32
+ <reference name="content">
33
+ <block type="adminhtml/newsletter_template_edit" name="template_edit" template="newsletter/template/edit.phtml" />
34
+ </reference>
35
+ </adminhtml_newsletter_template_edit>
36
+
37
+ <adminhtml_newsletter_queue_edit>
38
+ <update handle="editor"/>
39
+ <reference name="content">
40
+ <block type="adminhtml/newsletter_queue_edit" name="queue_edit" template="newsletter/queue/edit.phtml" />
41
+ </reference>
42
+ </adminhtml_newsletter_queue_edit>
43
+
44
+ <adminhtml_newsletter_queue_preview>
45
+ <reference name="root">
46
+ <action method="setTemplate"><template>newsletter/preview/iframeswitcher.phtml</template></action>
47
+ <block type="adminhtml/newsletter_queue_preview_form" name="preview_form" />
48
+ <block type="adminhtml/store_switcher" name="store_switcher" template="newsletter/preview/store.phtml" />
49
+ </reference>
50
+ </adminhtml_newsletter_queue_preview>
51
+
52
+ <adminhtml_newsletter_template_preview>
53
+ <reference name="root">
54
+ <action method="setTemplate"><template>newsletter/preview/iframeswitcher.phtml</template></action>
55
+ <block type="adminhtml/newsletter_template_preview_form" name="preview_form" />
56
+ <block type="adminhtml/store_switcher" name="store_switcher" template="newsletter/preview/store.phtml" />
57
+ </reference>
58
+ </adminhtml_newsletter_template_preview>
59
+
60
+ <newsletter_queue_preview>
61
+ <block type="adminhtml/newsletter_queue_preview" name="preview_template" />
62
+ </newsletter_queue_preview>
63
+
64
+ <newsletter_template_preview>
65
+ <block type="adminhtml/newsletter_template_preview" name="preview_template" />
66
+ </newsletter_template_preview>
67
+ </layout>
app/design/adminhtml/default/default/layout/oauth.xml ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+ <layout>
29
+ <!-- Consumers -->
30
+ <adminhtml_oauth_consumer_index>
31
+ <reference name="content">
32
+ <block type="oauth/adminhtml_oauth_consumer" name="oauth_consumer"/>
33
+ </reference>
34
+ </adminhtml_oauth_consumer_index>
35
+
36
+ <adminhtml_oauth_consumer_grid>
37
+ <remove name="root"/>
38
+ <block type="oauth/adminhtml_oauth_consumer_grid" name="oauth_consumer.grid" output="toHtml"/>
39
+ </adminhtml_oauth_consumer_grid>
40
+
41
+ <adminhtml_oauth_consumer_new>
42
+ <reference name="content">
43
+ <block type="oauth/adminhtml_oauth_consumer_edit" name="oauth_consumer.edit">
44
+ <block type="oauth/adminhtml_oauth_consumer_edit_form" name="form"/>
45
+ </block>
46
+ </reference>
47
+ </adminhtml_oauth_consumer_new>
48
+
49
+ <adminhtml_oauth_consumer_edit>
50
+ <reference name="content">
51
+ <block type="oauth/adminhtml_oauth_consumer_edit" name="oauth_consumer.edit">
52
+ <block type="oauth/adminhtml_oauth_consumer_edit_form" name="form"/>
53
+ </block>
54
+ </reference>
55
+ </adminhtml_oauth_consumer_edit>
56
+ <!-- EOF Consumers -->
57
+
58
+ <!-- My Applications -->
59
+ <adminhtml_oauth_admin_token_index>
60
+ <reference name="content">
61
+ <block type="oauth/adminhtml_oauth_admin_token" name="oauth_admin_token"/>
62
+ </reference>
63
+ </adminhtml_oauth_admin_token_index>
64
+
65
+ <adminhtml_oauth_admin_token_grid>
66
+ <remove name="root"/>
67
+ <block type="oauth/adminhtml_oauth_admin_token_grid" name="oauth_admin_token.grid" output="toHtml"/>
68
+ </adminhtml_oauth_admin_token_grid>
69
+ <!-- EOF My Applications -->
70
+
71
+
72
+
73
+ <oauth_root_handle>
74
+ <reference name="root">
75
+ <action method="setTemplate">
76
+ <template>empty.phtml</template>
77
+ </action>
78
+ </reference>
79
+ <reference name="head">
80
+ <action method="removeItem"><type>js</type><name>scriptaculous/controls.js</name></action>
81
+ <action method="removeItem"><type>js</type><name>prototype/window.js</name></action>
82
+ <action method="removeItem"><type>js</type><name>scriptaculous/builder.js</name></action>
83
+ <action method="removeItem"><type>js</type><name>scriptaculous/dragdrop.js</name></action>
84
+ <action method="removeItem"><type>js</type><name>scriptaculous/controls.js</name></action>
85
+ <action method="removeItem"><type>js</type><name>scriptaculous/slider.js</name></action>
86
+ <action method="removeItem"><type>js</type><name>lib/ccard.js</name></action>
87
+ <action method="removeItem"><type>js</type><name>varien/js.js</name></action>
88
+ <action method="removeItem"><type>js</type><name>mage/adminhtml/hash.js</name></action>
89
+ <action method="removeItem"><type>js</type><name>mage/adminhtml/events.js</name></action>
90
+ <action method="removeItem"><type>js</type><name>mage/adminhtml/loader.js</name></action>
91
+ <action method="removeItem"><type>js</type><name>mage/adminhtml/grid.js</name></action>
92
+ <action method="removeItem"><type>js</type><name>mage/adminhtml/tabs.js</name></action>
93
+ <action method="removeItem"><type>js</type><name>mage/adminhtml/accordion.js</name></action>
94
+ <!-- <action method="removeItem"><type>js</type><name>mage/adminhtml/tools.js</name></action>-->
95
+ <action method="removeItem"><type>js</type><name>mage/adminhtml/uploader.js</name></action>
96
+ <action method="removeItem"><type>js</type><name>mage/adminhtml/product.js</name></action>
97
+ <action method="removeItem"><type>js</type><name>mage/adminhtml/rules.js</name></action>
98
+ <action method="removeItem"><type>js</type><name>mage/adminhtml/wysiwyg/tiny_mce/setup.js</name></action>
99
+ <action method="removeItem"><type>js</type><name>lib/ds-sleight.js</name></action>
100
+ <action method="removeItem"><type>js</type><name>varien/iehover-fix.js</name></action>
101
+
102
+ <action method="removeItem"><type>css</type><name>print.css</name></action>
103
+ <action method="removeItem"><type>js_css</type><name>calendar/calendar-win2k-1.css</name></action>
104
+ <action method="removeItem"><type>js_css</type><name>extjs/resources/css/ext-all.css</name></action>
105
+ <action method="removeItem"><type>js_css</type><name>extjs/resources/css/ytheme-magento.css</name></action>
106
+ <action method="removeItem"><type>skin_css</type><name>menu.css</name></action>
107
+
108
+ <action method="removeItem"><type>js</type><name>calendar/calendar.js</name></action>
109
+ <action method="removeItem"><type>js</type><name>calendar/calendar-setup.js</name></action>
110
+ <action method="removeItem"><type>js</type><name>extjs/fix-defer-before.js</name></action>
111
+ <action method="removeItem"><type>js</type><name>extjs/ext-tree.js</name></action>
112
+ <action method="removeItem"><type>js</type><name>extjs/fix-defer.js</name></action>
113
+ <action method="removeItem"><type>js</type><name>extjs/ext-tree-checkbox.js</name></action>
114
+ </reference>
115
+ </oauth_root_handle>
116
+
117
+ <oauth_root_handle_simple>
118
+ <remove name="js_cookie" />
119
+ <block type="adminhtml/page" name="root" output="toHtml" template="empty.phtml">
120
+ <block type="adminhtml/page_head" name="head" as="head" template="oauth/authorize/head-simple.phtml">
121
+ <action method="addCss"><name>oauth-simple.css</name></action>
122
+ </block>
123
+ <block type="core/text_list" name="content"/>
124
+ </block>
125
+ </oauth_root_handle_simple>
126
+
127
+ <!-- Authorize -->
128
+ <!--Handle for simple pages-->
129
+ <adminhtml_oauth_authorize_index translate="label">
130
+ <update handle="oauth_root_handle"/>
131
+ <label>OAuth authorization for admin</label>
132
+ <reference name="content">
133
+ <block type="oauth/adminhtml_oauth_authorize" name="oauth.authorize.form" template="oauth/authorize/form/login.phtml"/>
134
+ <block type="oauth/adminhtml_oauth_authorize_button" name="oauth.authorize.button" template="oauth/authorize/button.phtml" />
135
+ </reference>
136
+ </adminhtml_oauth_authorize_index>
137
+
138
+ <adminhtml_oauth_authorize_simple translate="label">
139
+ <update handle="oauth_root_handle_simple"/>
140
+ <label>OAuth authorization simple for admin</label>
141
+ <reference name="content">
142
+ <block type="oauth/adminhtml_oauth_authorize" name="oauth.authorize.form" template="oauth/authorize/form/login-simple.phtml"/>
143
+ <block type="oauth/adminhtml_oauth_authorize_button" name="oauth.authorize.button" template="oauth/authorize/button-simple.phtml" />
144
+ </reference>
145
+ </adminhtml_oauth_authorize_simple>
146
+ <!-- EOF Authorize -->
147
+
148
+ <!-- Confirm Authorization -->
149
+ <adminhtml_oauth_authorize_confirm translate="label">
150
+ <update handle="oauth_root_handle"/>
151
+ <label>Confirm token authorization for admin</label>
152
+ <reference name="content">
153
+ <block type="core/template" name="oauth.authorize.confirm" template="oauth/authorize/confirm.phtml" />
154
+ </reference>
155
+ </adminhtml_oauth_authorize_confirm>
156
+
157
+ <adminhtml_oauth_authorize_confirmsimple translate="label">
158
+ <update handle="oauth_root_handle_simple"/>
159
+ <label>Confirm token authorization Pop Up for admin</label>
160
+ <reference name="content">
161
+ <block type="core/template" name="oauth.authorize.confirm" template="oauth/authorize/confirm-simple.phtml" />
162
+ </reference>
163
+ </adminhtml_oauth_authorize_confirmsimple>
164
+ <!-- EOF Confirm Authorization -->
165
+
166
+ <!-- Reject Authorization -->
167
+ <adminhtml_oauth_authorize_reject translate="label">
168
+ <update handle="oauth_root_handle"/>
169
+ <label>Reject token authorization for admin</label>
170
+ <reference name="content">
171
+ <block type="core/template" name="oauth.authorize.reject" template="oauth/authorize/reject.phtml" />
172
+ </reference>
173
+ </adminhtml_oauth_authorize_reject>
174
+
175
+ <adminhtml_oauth_authorize_rejectsimple translate="label">
176
+ <update handle="oauth_root_handle_simple"/>
177
+ <label>Reject token authorization Pop Up for admin</label>
178
+ <reference name="content">
179
+ <block type="core/template" name="oauth.authorize.reject" template="oauth/authorize/reject-simple.phtml" />
180
+ </reference>
181
+ </adminhtml_oauth_authorize_rejectsimple>
182
+ <!-- EOF Reject Authorization -->
183
+
184
+ <adminhtml_oauth_authorizedtokens_index>
185
+ <reference name="content">
186
+ <block type="oauth/adminhtml_oauth_authorizedTokens" name="oauth_authorizedTokens"/>
187
+ </reference>
188
+ </adminhtml_oauth_authorizedtokens_index>
189
+
190
+ <adminhtml_oauth_authorizedtokens_grid>
191
+ <remove name="root"/>
192
+ <block type="oauth/adminhtml_oauth_authorizedTokens_grid" name="oauth_authorizedTokens.grid" output="toHtml"/>
193
+ </adminhtml_oauth_authorizedtokens_grid>
194
+ </layout>
app/design/adminhtml/default/default/layout/pagecache.xml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+ <adminhtml_cache_index>
31
+ <reference name="cache.additional">
32
+ <block type="pagecache/adminhtml_cache_additional" name="page.cache.additional" template = "pagecache/cache/additional.phtml" />
33
+ </reference>
34
+ </adminhtml_cache_index>
35
+ </layout>
app/design/adminhtml/default/default/layout/promo.xml ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+ <!-- Catalog Price Rule -->
31
+ <adminhtml_promo_catalog_index>
32
+ <reference name="content">
33
+ <block type="adminhtml/promo_catalog" name="promo_catalog"/>
34
+ </reference>
35
+ </adminhtml_promo_catalog_index>
36
+ <adminhtml_promo_catalog_edit>
37
+ <reference name="head">
38
+ <action method="setCanLoadExtJs"><flag>1</flag></action>
39
+ <action method="setCanLoadRulesJs"><flag>1</flag></action>
40
+ </reference>
41
+ <reference name="left">
42
+ <block type="adminhtml/promo_catalog_edit_tabs" name="promo_catalog_edit_tabs">
43
+ <block type="adminhtml/promo_catalog_edit_tab_main" name="promo_catalog_edit_tab_main"/>
44
+ <block type="adminhtml/promo_catalog_edit_tab_conditions" name="promo_catalog_edit_tab_conditions"/>
45
+ <block type="adminhtml/promo_catalog_edit_tab_actions" name="promo_catalog_edit_tab_actions"/>
46
+ <action method="addTab"><name>main_section</name><block>promo_catalog_edit_tab_main</block></action>
47
+ <action method="addTab"><name>conditions_section</name><block>promo_catalog_edit_tab_conditions</block></action>
48
+ <action method="addTab"><name>actions_section</name><block>promo_catalog_edit_tab_actions</block></action>
49
+ </block>
50
+ </reference>
51
+ <reference name="content">
52
+ <block type="adminhtml/promo_catalog_edit" name="promo_catalog_edit"/>
53
+ </reference>
54
+ <reference name="js">
55
+ <block type="adminhtml/promo_catalog_edit_js" template="promo/js.phtml" />
56
+ </reference>
57
+ </adminhtml_promo_catalog_edit>
58
+
59
+ <!-- Shopping Cart Price Rule -->
60
+ <adminhtml_promo_quote_index>
61
+ <reference name="content">
62
+ <block type="adminhtml/promo_quote" name="promo_quote"></block>
63
+ </reference>
64
+ </adminhtml_promo_quote_index>
65
+ <adminhtml_promo_quote_edit>
66
+ <reference name="head">
67
+ <action method="setCanLoadExtJs"><flag>1</flag></action>
68
+ <action method="setCanLoadRulesJs"><flag>1</flag></action>
69
+ </reference>
70
+ <reference name="left">
71
+ <block type="adminhtml/promo_quote_edit_tabs" name="promo_quote_edit_tabs">
72
+ <block type="adminhtml/promo_quote_edit_tab_main" name="promo_quote_edit_tab_main" />
73
+ <block type="adminhtml/promo_quote_edit_tab_conditions" name="promo_quote_edit_tab_conditions"/>
74
+ <block type="adminhtml/promo_quote_edit_tab_actions" name="promo_quote_edit_tab_actions"/>
75
+ <block type="adminhtml/promo_quote_edit_tab_labels" name="promo_quote_edit_tab_labels"/>
76
+ <block type="adminhtml/promo_quote_edit_tab_coupons" name="promo_quote_edit_tab_coupons">
77
+ <block type="adminhtml/promo_quote_edit_tab_coupons_form" name="promo_quote_edit_tab_coupons_form"/>
78
+ <block type="adminhtml/promo_quote_edit_tab_coupons_grid" name="promo_quote_edit_tab_coupons_grid"/>
79
+ </block>
80
+ <action method="addTab"><name>main_section</name><block>promo_quote_edit_tab_main</block></action>
81
+ <action method="addTab"><name>conditions_section</name><block>promo_quote_edit_tab_conditions</block></action>
82
+ <action method="addTab"><name>actions_section</name><block>promo_quote_edit_tab_actions</block></action>
83
+ <action method="addTab"><name>labels_section</name><block>promo_quote_edit_tab_labels</block></action>
84
+ <action method="addTab"><name>coupons_section</name><block>promo_quote_edit_tab_coupons</block></action>
85
+ </block>
86
+ <block type="adminhtml/template" template="promo/salesrulejs.phtml" name="promo_quote_edit_jsinit"/>
87
+ </reference>
88
+ <reference name="content">
89
+ <block type="adminhtml/promo_quote_edit" name="promo_quote_edit"></block>
90
+ </reference>
91
+ </adminhtml_promo_quote_edit>
92
+ <adminhtml_promo_quote_grid>
93
+ <remove name="root" />
94
+ <block type="adminhtml/promo_quote_edit_tab_product" name="promo_quote_grid" output="toHtml" />
95
+ </adminhtml_promo_quote_grid>
96
+ <adminhtml_promo_quote_couponsgrid>
97
+ <block type="core/text_list" name="root" output="toHtml">
98
+ <block type="adminhtml/promo_quote_edit_tab_coupons_grid" name="promo_quote_edit_tab_coupons_grid" />
99
+ </block>
100
+ </adminhtml_promo_quote_couponsgrid>
101
+ </layout>
app/design/adminhtml/default/default/layout/report.xml ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+ <adminhtml_report_statistics_index>
31
+ <reference name="content">
32
+ <block type="adminhtml/report_refresh_statistics" template="report/refresh/statistics.phtml" name="sales.report.refreshstatistics" />
33
+ </reference>
34
+ </adminhtml_report_statistics_index>
35
+ <adminhtml_report_product_viewed>
36
+ <reference name="messages">
37
+ <action method="addNotice" translate="message">
38
+ <message>This report depends on timezone configuration. Once timezone is changed, the lifetime statistics need to be refreshed.</message>
39
+ </action>
40
+ </reference>
41
+ <reference name="content">
42
+ <block type="adminhtml/report_product_viewed" template="report/grid/container.phtml" name="product.report.grid.container">
43
+ <block type="adminhtml/store_switcher" template="report/store/switcher/enhanced.phtml" name="store.switcher">
44
+ <action method="setStoreVarName"><var_name>store_ids</var_name></action>
45
+ </block>
46
+ <block type="adminhtml/report_filter_form" name="grid.filter.form">
47
+ <action method="setFieldVisibility">
48
+ <field>report_type</field>
49
+ <visibility>0</visibility>
50
+ </action>
51
+ </block>
52
+ </block>
53
+ </reference>
54
+ </adminhtml_report_product_viewed>
55
+ </layout>
app/design/adminhtml/default/default/layout/rss.xml ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+
31
+ <!--
32
+
33
+ -->
34
+ <adminhtml_rss_catalog_review>
35
+ <block type="rss/catalog_review" output="toHtml" name="rss.catalog.review" />
36
+ </adminhtml_rss_catalog_review>
37
+
38
+ <adminhtml_rss_catalog_notifystock>
39
+ <block type="rss/catalog_notifyStock" output="toHtml" name="rss.catalog.notifystock" />
40
+ </adminhtml_rss_catalog_notifystock>
41
+
42
+ <adminhtml_rss_order_new>
43
+ <block type="rss/order_new" output="toHtml" name="rss.order.new"/>
44
+ </adminhtml_rss_order_new>
45
+ </layout>
app/design/adminhtml/default/default/layout/sales.xml ADDED
@@ -0,0 +1,1080 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+ <adminhtml_sales_order_grid>
31
+ <update handle="formkey"/>
32
+ <block type="adminhtml/sales_order_grid" name="sales_order.grid" output="toHtml"></block>
33
+ </adminhtml_sales_order_grid>
34
+
35
+ <adminhtml_sales_order_index>
36
+ <reference name="content">
37
+ <block type="adminhtml/sales_order" name="sales_order.grid.container"></block>
38
+ </reference>
39
+ </adminhtml_sales_order_index>
40
+
41
+ <adminhtml_sales_order_transactions>
42
+ <block type="adminhtml/sales_transactions_grid" name="sales_transactions.grid" output="toHtml"></block>
43
+ </adminhtml_sales_order_transactions>
44
+
45
+ <adminhtml_sales_billing_agreement_index>
46
+ <reference name="content">
47
+ <block type="sales/adminhtml_billing_agreement" name="sales.billing.agreement.grid.container"></block>
48
+ </reference>
49
+ </adminhtml_sales_billing_agreement_index>
50
+
51
+ <adminhtml_sales_billing_agreement_grid>
52
+ <block type="sales/adminhtml_billing_agreement_grid" name="sales.billing.agreement.grid" output="toHtml"></block>
53
+ </adminhtml_sales_billing_agreement_grid>
54
+
55
+ <adminhtml_sales_billing_agreement_view>
56
+ <reference name="content">
57
+ <block type="sales/adminhtml_billing_agreement_view" name="sales.billing.agreement.view"></block>
58
+ </reference>
59
+ <reference name="left">
60
+ <block type="sales/adminhtml_billing_agreement_view_tabs" name="sales.billing.agreement.tabs">
61
+ <action method="addTab"><name>billing_agreement_info</name><block>sales/adminhtml_billing_agreement_view_tab_info</block></action>
62
+ <action method="addTab"><name>billing_agreement_orders</name><block>sales/adminhtml_billing_agreement_view_tab_orders</block></action>
63
+ </block>
64
+ </reference>
65
+ </adminhtml_sales_billing_agreement_view>
66
+
67
+ <adminhtml_sales_billing_agreement_ordersgrid>
68
+ <block type="sales/adminhtml_billing_agreement_view_tab_orders" name="related.orders.grid" output="toHtml"></block>
69
+ </adminhtml_sales_billing_agreement_ordersgrid>
70
+
71
+ <adminhtml_sales_billing_agreement_customergrid>
72
+ <block type="sales/adminhtml_customer_edit_tab_agreement" name="customer.billing.agreement.grid" output="toHtml"></block>
73
+ </adminhtml_sales_billing_agreement_customergrid>
74
+
75
+ <adminhtml_sales_order_view>
76
+ <reference name="head">
77
+ <action method="addJs"><file>mage/adminhtml/giftmessage.js</file></action>
78
+ <action method="addJs"><file>mage/adminhtml/giftoptions/tooltip.js</file></action>
79
+ </reference>
80
+ <reference name="content">
81
+ <block type="adminhtml/sales_order_view" name="sales_order_edit"></block>
82
+ </reference>
83
+ <reference name="left">
84
+ <block type="adminhtml/sales_order_view_tabs" name="sales_order_tabs">
85
+ <block type="adminhtml/sales_order_view_tab_info" name="order_tab_info" template="sales/order/view/tab/info.phtml">
86
+ <block type="adminhtml/sales_order_view_messages" name="order_messages"></block>
87
+ <block type="adminhtml/sales_order_view_info" name="order_info" template="sales/order/view/info.phtml"></block>
88
+ <block type="adminhtml/sales_order_view_items" name="order_items" template="sales/order/view/items.phtml">
89
+ <action method="addItemRender"><type>default</type><block>adminhtml/sales_order_view_items_renderer_default</block><template>sales/order/view/items/renderer/default.phtml</template></action>
90
+ <action method="addColumnRender"><column>qty</column><block>adminhtml/sales_items_column_qty</block><template>sales/items/column/qty.phtml</template></action>
91
+ <action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name</block><template>sales/items/column/name.phtml</template></action>
92
+ <action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name_grouped</block><template>sales/items/column/name.phtml</template><type>grouped</type></action>
93
+ <block type="core/text_list" name="order_item_extra_info" />
94
+ </block>
95
+ <block type="adminhtml/sales_order_payment" name="order_payment"/>
96
+ <block type="adminhtml/sales_order_view_history" name="order_history" template="sales/order/view/history.phtml"></block>
97
+ <block type="adminhtml/template" name="gift_options" template="sales/order/giftoptions.phtml">
98
+ <block type="adminhtml/sales_order_view_giftmessage" name="order_giftmessage" template="sales/order/view/giftmessage.phtml"></block>
99
+ </block>
100
+ <block type="adminhtml/sales_order_totals" name="order_totals" template="sales/order/totals.phtml">
101
+ <block type="adminhtml/sales_order_totals_tax" name="tax" template="sales/order/totals/tax.phtml" />
102
+ <!--<block type="adminhtml/sales_order_totals_item" name="footer" template="sales/order/totals/footer.phtml">
103
+ <block type="adminhtml/sales_order_totals_item" name="grand" template="sales/order/totals/grand.phtml" />
104
+ <block type="adminhtml/sales_order_totals_item" name="paid" template="sales/order/totals/paid.phtml" />
105
+ <block type="adminhtml/sales_order_totals_item" name="refunded" template="sales/order/totals/refunded.phtml" />
106
+ <block type="adminhtml/sales_order_totals_item" name="due" template="sales/order/totals/due.phtml" />
107
+ </block>
108
+ <block type="adminhtml/sales_order_totals_item" name="sales.order.view.totals.main" as="main" template="sales/order/totals/main.phtml">
109
+ <block type="adminhtml/sales_order_totals_subtotal" name="subtotal" template="sales/order/totals/subtotal.phtml" />
110
+ <block type="adminhtml/sales_order_totals_tax" name="tax" template="sales/order/totals/tax.phtml" />
111
+ <block type="adminhtml/sales_order_totals_item" name="shipping" template="sales/order/totals/shipping.phtml" />
112
+ <block type="adminhtml/sales_order_totals_item" name="discount" template="sales/order/totals/discount.phtml" />
113
+ <block type="adminhtml/sales_order_totals_item" name="giftcert" template="sales/order/totals/item.phtml">
114
+ <action method="setSourceField"><value>giftcert_amount</value></action>
115
+ <action method="setLabel"><value>Gift Certificate</value></action>
116
+ </block>
117
+ <block type="adminhtml/sales_order_totals_item" name="adjustment_positive" template="sales/order/totals/item.phtml">
118
+ <action method="setSourceField"><value>adjustment_positive</value></action>
119
+ <action method="setLabel"><value>Adjustment Refund</value></action>
120
+ </block>
121
+ <block type="adminhtml/sales_order_totals_item" name="adjustment_negative" template="sales/order/totals/item.phtml">
122
+ <action method="setSourceField"><value>adjustment_negative</value></action>
123
+ <action method="setLabel"><value>Adjustment Fee</value></action>
124
+ </block>
125
+ </block>-->
126
+ </block>
127
+ </block>
128
+ <action method="addTab"><name>order_info</name><block>order_tab_info</block></action>
129
+ <action method="addTab"><name>order_invoices</name><block>adminhtml/sales_order_view_tab_invoices</block></action>
130
+ <action method="addTab"><name>order_creditmemos</name><block>adminhtml/sales_order_view_tab_creditmemos</block></action>
131
+ <action method="addTab"><name>order_shipments</name><block>adminhtml/sales_order_view_tab_shipments</block></action>
132
+ <action method="addTab"><name>order_history</name><block>adminhtml/sales_order_view_tab_history</block></action>
133
+ <action method="addTab"><name>order_transactions</name><block>adminhtml/sales_order_view_tab_transactions</block></action>
134
+ </block>
135
+ </reference>
136
+ </adminhtml_sales_order_view>
137
+
138
+ <adminhtml_sales_order_addcomment>
139
+ <block type="adminhtml/sales_order_view_history" name="order_history" template="sales/order/view/history.phtml" output="toHtml"/>
140
+ </adminhtml_sales_order_addcomment>
141
+
142
+ <adminhtml_sales_order_invoice_new>
143
+ <reference name="content">
144
+ <block type="adminhtml/sales_order_invoice_create" name="sales_invoice_create">
145
+ <block type="adminhtml/sales_order_invoice_create_form" name="form" template="sales/order/invoice/create/form.phtml">
146
+ <block type="adminhtml/sales_order_view_info" name="order_info" template="sales/order/view/info.phtml"></block>
147
+ <block type="adminhtml/sales_order_payment" name="order_payment"></block>
148
+ <block type="adminhtml/sales_order_invoice_create_items" name="order_items" template="sales/order/invoice/create/items.phtml">
149
+ <action method="addItemRender"><type>default</type><block>adminhtml/sales_items_renderer_default</block><template>sales/order/invoice/create/items/renderer/default.phtml</template></action>
150
+ <action method="addColumnRender"><column>qty</column><block>adminhtml/sales_items_column_qty</block><template>sales/items/column/qty.phtml</template></action>
151
+ <action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name</block><template>sales/items/column/name.phtml</template></action>
152
+ <action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name_grouped</block><template>sales/items/column/name.phtml</template><type>grouped</type></action>
153
+ <block type="core/text_list" name="order_item_extra_info"></block>
154
+ <block type="adminhtml/sales_order_totalbar" name="order_totalbar" template="sales/order/totalbar.phtml"></block>
155
+
156
+ <block type="adminhtml/sales_order_invoice_totals" name="invoice_totals" template="sales/order/totals.phtml">
157
+ <block type="adminhtml/sales_order_totals_tax" name="tax" template="sales/order/totals/tax.phtml" />
158
+ <!--<block type="adminhtml/sales_order_totals_item" name="footer" template="sales/order/totals/footer.phtml">
159
+ <block type="adminhtml/sales_order_totals_item" name="grand" template="sales/order/totals/grand.phtml" />
160
+ <block type="adminhtml/sales_order_totals_item" name="paid" template="sales/order/totals/paid.phtml" />
161
+ <block type="adminhtml/sales_order_totals_item" name="refunded" template="sales/order/totals/refunded.phtml" />
162
+ <block type="adminhtml/sales_order_totals_item" name="due" template="sales/order/totals/due.phtml" />
163
+ </block>
164
+ <block type="adminhtml/sales_order_totals_item" name="sales.order.view.totals.main" as="main" template="sales/order/totals/main.phtml">
165
+ <block type="adminhtml/sales_order_totals_subtotal" name="subtotal" template="sales/order/totals/subtotal.phtml" />
166
+ <block type="adminhtml/sales_order_totals_item" name="tax" template="sales/order/totals/item.phtml">
167
+ <action method="setSourceField"><value>tax_amount</value></action>
168
+ <action method="setLabel"><value>Tax</value></action>
169
+ </block>
170
+ <block type="adminhtml/sales_order_totals_item" name="shipping" template="sales/order/totals/shipping.phtml" />
171
+ <block type="adminhtml/sales_order_totals_item" name="discount" template="sales/order/totals/discount.phtml" />
172
+ <block type="adminhtml/sales_order_totals_item" name="giftcert" template="sales/order/totals/item.phtml">
173
+ <action method="setSourceField"><value>giftcert_amount</value></action>
174
+ <action method="setLabel"><value>Gift Certificate</value></action>
175
+ </block>
176
+ <block type="adminhtml/sales_order_totals_item" name="adjustment_positive" template="sales/order/totals/item.phtml">
177
+ <action method="setSourceField"><value>adjustment_positive</value></action>
178
+ <action method="setLabel"><value>Adjustment Refund</value></action>
179
+ </block>
180
+ <block type="adminhtml/sales_order_totals_item" name="adjustment_negative" template="sales/order/totals/item.phtml">
181
+ <action method="setSourceField"><value>adjustment_negative</value></action>
182
+ <action method="setLabel"><value>Adjustment Fee</value></action>
183
+ </block>
184
+ </block>-->
185
+ </block>
186
+ </block>
187
+ </block>
188
+ </block>
189
+ </reference>
190
+ </adminhtml_sales_order_invoice_new>
191
+
192
+ <adminhtml_sales_order_invoice_updateqty>
193
+ <block type="adminhtml/sales_order_invoice_create_items" name="order_items" template="sales/order/invoice/create/items.phtml">
194
+ <action method="addItemRender"><type>default</type><block>adminhtml/sales_items_renderer_default</block><template>sales/order/invoice/create/items/renderer/default.phtml</template></action>
195
+ <action method="addColumnRender"><column>qty</column><block>adminhtml/sales_items_column_qty</block><template>sales/items/column/qty.phtml</template></action>
196
+ <action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name</block><template>sales/items/column/name.phtml</template></action>
197
+ <action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name_grouped</block><template>sales/items/column/name.phtml</template><type>grouped</type></action>
198
+ <block type="core/text_list" name="order_item_extra_info"></block>
199
+ <block type="adminhtml/sales_order_totalbar" name="order_totalbar" template="sales/order/totalbar.phtml"></block>
200
+ <block type="adminhtml/sales_order_invoice_totals" name="invoice_totals" template="sales/order/totals.phtml">
201
+ <block type="adminhtml/sales_order_totals_tax" name="tax" template="sales/order/totals/tax.phtml" />
202
+ <!--<block type="adminhtml/sales_order_totals_item" name="footer" template="sales/order/totals/footer.phtml">
203
+ <block type="adminhtml/sales_order_totals_item" name="grand" template="sales/order/totals/grand.phtml" />
204
+ <block type="adminhtml/sales_order_totals_item" name="paid" template="sales/order/totals/paid.phtml" />
205
+ <block type="adminhtml/sales_order_totals_item" name="refunded" template="sales/order/totals/refunded.phtml" />
206
+ <block type="adminhtml/sales_order_totals_item" name="due" template="sales/order/totals/due.phtml" />
207
+ </block>
208
+ <block type="adminhtml/sales_order_totals_item" name="sales.order.view.totals.main" as="main" template="sales/order/totals/main.phtml">
209
+ <block type="adminhtml/sales_order_totals_subtotal" name="subtotal" template="sales/order/totals/subtotal.phtml" />
210
+ <block type="adminhtml/sales_order_totals_item" name="tax" template="sales/order/totals/item.phtml">
211
+ <action method="setSourceField"><value>tax_amount</value></action>
212
+ <action method="setLabel"><value>Tax</value></action>
213
+ </block>
214
+ <block type="adminhtml/sales_order_totals_item" name="shipping" template="sales/order/totals/shipping.phtml" />
215
+ <block type="adminhtml/sales_order_totals_item" name="discount" template="sales/order/totals/discount.phtml" />
216
+ <block type="adminhtml/sales_order_totals_item" name="giftcert" template="sales/order/totals/item.phtml">
217
+ <action method="setSourceField"><value>giftcert_amount</value></action>
218
+ <action method="setLabel"><value>Gift Certificate</value></action>
219
+ </block>
220
+ <block type="adminhtml/sales_order_totals_item" name="adjustment_positive" template="sales/order/totals/item.phtml">
221
+ <action method="setSourceField"><value>adjustment_positive</value></action>
222
+ <action method="setLabel"><value>Adjustment Refund</value></action>
223
+ </block>
224
+ <block type="adminhtml/sales_order_totals_item" name="adjustment_negative" template="sales/order/totals/item.phtml">
225
+ <action method="setSourceField"><value>adjustment_negative</value></action>
226
+ <action method="setLabel"><value>Adjustment Fee</value></action>
227
+ </block>
228
+ </block>-->
229
+ </block>
230
+ </block>
231
+ </adminhtml_sales_order_invoice_updateqty>
232
+
233
+ <adminhtml_sales_order_invoice_addcomment>
234
+ <block type="adminhtml/sales_order_invoice_view_comments" name="invoice_comments">
235
+ <block type="adminhtml/sales_order_comments_view" name="order_comments" template="sales/order/comments/view.phtml"></block>
236
+ </block>
237
+ </adminhtml_sales_order_invoice_addcomment>
238
+
239
+ <adminhtml_sales_order_invoice_view>
240
+ <reference name="content">
241
+ <block type="adminhtml/sales_order_invoice_view" name="sales_invoice_view">
242
+ <block type="adminhtml/sales_order_invoice_view_form" name="form" template="sales/order/invoice/view/form.phtml">
243
+ <block type="adminhtml/sales_order_view_info" name="order_info" template="sales/order/view/info.phtml"></block>
244
+ <block type="adminhtml/sales_order_payment" name="order_payment"></block>
245
+
246
+ <block type="adminhtml/sales_order_invoice_view_items" name="invoice_items" template="sales/order/invoice/view/items.phtml">
247
+ <action method="addItemRender"><type>default</type><block>adminhtml/sales_items_renderer_default</block><template>sales/order/invoice/view/items/renderer/default.phtml</template></action>
248
+ <action method="addColumnRender"><column>qty</column><block>adminhtml/sales_items_column_qty</block><template>sales/items/column/qty.phtml</template></action>
249
+ <action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name</block><template>sales/items/column/name.phtml</template></action>
250
+ <action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name_grouped</block><template>sales/items/column/name.phtml</template><type>grouped</type></action>
251
+ <block type="core/text_list" name="order_item_extra_info"></block>
252
+ </block>
253
+ <block type="adminhtml/sales_order_comments_view" name="order_comments" template="sales/order/comments/view.phtml">
254
+ <action method="setParentType"><type>invoice</type></action>
255
+ </block>
256
+ <block type="adminhtml/sales_order_invoice_totals" name="invoice_totals" template="sales/order/totals.phtml">
257
+ <block type="adminhtml/sales_order_totals_tax" name="tax" template="sales/order/totals/tax.phtml" />
258
+ <!--<block type="adminhtml/sales_order_totals_item" name="footer" template="sales/order/totals/footer.phtml">
259
+ <block type="adminhtml/sales_order_totals_item" name="grand" template="sales/order/totals/grand.phtml" />
260
+ <block type="adminhtml/sales_order_totals_item" name="paid" template="sales/order/totals/paid.phtml" />
261
+ <block type="adminhtml/sales_order_totals_item" name="refunded" template="sales/order/totals/refunded.phtml" />
262
+ <block type="adminhtml/sales_order_totals_item" name="due" template="sales/order/totals/due.phtml" />
263
+ </block>
264
+ <block type="adminhtml/sales_order_totals_item" name="sales.order.view.totals.main" as="main" template="sales/order/totals/main.phtml">
265
+ <block type="adminhtml/sales_order_totals_subtotal" name="subtotal" template="sales/order/totals/subtotal.phtml" />
266
+ <block type="adminhtml/sales_order_totals_item" name="tax" template="sales/order/totals/item.phtml">
267
+ <action method="setSourceField"><value>tax_amount</value></action>
268
+ <action method="setLabel"><value>Tax</value></action>
269
+ </block>
270
+ <block type="adminhtml/sales_order_totals_item" name="shipping" template="sales/order/totals/shipping.phtml" />
271
+ <block type="adminhtml/sales_order_totals_item" name="discount" template="sales/order/totals/discount.phtml" />
272
+ <block type="adminhtml/sales_order_totals_item" name="giftcert" template="sales/order/totals/item.phtml">
273
+ <action method="setSourceField"><value>giftcert_amount</value></action>
274
+ <action method="setLabel"><value>Gift Certificate</value></action>
275
+ </block>
276
+ <block type="adminhtml/sales_order_totals_item" name="adjustment_positive" template="sales/order/totals/item.phtml">
277
+ <action method="setSourceField"><value>adjustment_positive</value></action>
278
+ <action method="setLabel"><value>Adjustment Refund</value></action>
279
+ </block>
280
+ <block type="adminhtml/sales_order_totals_item" name="adjustment_negative" template="sales/order/totals/item.phtml">
281
+ <action method="setSourceField"><value>adjustment_negative</value></action>
282
+ <action method="setLabel"><value>Adjustment Fee</value></action>
283
+ </block>
284
+ </block>-->
285
+ </block>
286
+ </block>
287
+ </block>
288
+ </reference>
289
+ </adminhtml_sales_order_invoice_view>
290
+
291
+ <adminhtml_sales_order_shipment_new>
292
+ <reference name="head">
293
+ <action method="addJs"><file>mage/adminhtml/sales/packaging.js</file></action>
294
+ </reference>
295
+ <reference name="content">
296
+ <block type="adminhtml/sales_order_shipment_create" name="sales_shipment_create">
297
+ <block type="adminhtml/sales_order_shipment_create_form" name="form" template="sales/order/shipment/create/form.phtml">
298
+ <block type="adminhtml/sales_order_view_info" name="order_info" template="sales/order/view/info.phtml"></block>
299
+ <block type="adminhtml/sales_order_payment" name="order_payment"></block>
300
+ <block type="adminhtml/sales_order_shipment_create_tracking" name="shipment_tracking" template="sales/order/shipment/create/tracking.phtml"></block>
301
+ <block type="adminhtml/sales_order_shipment_create_items" name="order_items" template="sales/order/shipment/create/items.phtml">
302
+ <action method="addItemRender"><type>default</type><block>adminhtml/sales_items_renderer_default</block><template>sales/order/shipment/create/items/renderer/default.phtml</template></action>
303
+ <action method="addColumnRender"><column>qty</column><block>adminhtml/sales_items_column_qty</block><template>sales/items/column/qty.phtml</template></action>
304
+ <action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name</block><template>sales/items/column/name.phtml</template></action>
305
+ <block type="core/text_list" name="order_item_extra_info"></block>
306
+ </block>
307
+ <block type="adminhtml/sales_order_shipment_packaging" name="shipment_packaging" template="sales/order/shipment/packaging/popup.phtml" />
308
+ </block>
309
+ </block>
310
+ </reference>
311
+ </adminhtml_sales_order_shipment_new>
312
+
313
+ <adminhtml_sales_order_shipment_addtrack>
314
+ <block type="adminhtml/sales_order_shipment_view_tracking" name="shipment_tracking" template="sales/order/shipment/view/tracking.phtml"></block>
315
+ </adminhtml_sales_order_shipment_addtrack>
316
+
317
+ <adminhtml_sales_order_shipment_removetrack>
318
+ <block type="adminhtml/sales_order_shipment_view_tracking" name="shipment_tracking" template="sales/order/shipment/view/tracking.phtml"></block>
319
+ </adminhtml_sales_order_shipment_removetrack>
320
+
321
+ <adminhtml_sales_order_shipment_addcomment>
322
+ <block type="adminhtml/sales_order_shipment_view_comments" name="shipment_comments">
323
+ <block type="adminhtml/sales_order_comments_view" name="order_comments" template="sales/order/comments/view.phtml"></block>
324
+ </block>
325
+ </adminhtml_sales_order_shipment_addcomment>
326
+
327
+ <adminhtml_sales_order_shipment_view>
328
+ <reference name="head">
329
+ <action method="addJs"><file>mage/adminhtml/sales/packaging.js</file></action>
330
+ </reference>
331
+ <reference name="content">
332
+ <block type="adminhtml/sales_order_shipment_view" name="sales_shipment_view">
333
+ <block type="adminhtml/sales_order_shipment_view_form" name="form" template="sales/order/shipment/view/form.phtml">
334
+ <block type="adminhtml/sales_order_view_info" name="order_info" template="sales/order/view/info.phtml"></block>
335
+ <block type="adminhtml/sales_order_payment" name="order_payment"></block>
336
+ <block type="adminhtml/sales_order_shipment_view_tracking" name="shipment_tracking" template="sales/order/shipment/view/tracking.phtml"></block>
337
+ <block type="adminhtml/sales_order_shipment_view_items" name="shipment_items" template="sales/order/shipment/view/items.phtml">
338
+ <action method="addItemRender"><type>default</type><block>adminhtml/sales_items_renderer_default</block><template>sales/order/shipment/view/items/renderer/default.phtml</template></action>
339
+ <action method="addColumnRender"><column>qty</column><block>adminhtml/sales_items_column_qty</block><template>sales/items/column/qty.phtml</template></action>
340
+ <action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name</block><template>sales/items/column/name.phtml</template></action>
341
+ <block type="core/text_list" name="order_item_extra_info"></block>
342
+ </block>
343
+ <block type="adminhtml/sales_order_invoice_create_tracking" name="invoice_tracking" template="sales/order/shipment/create/tracking.phtml"></block>
344
+ <block type="adminhtml/sales_order_comments_view" name="order_comments" template="sales/order/comments/view.phtml">
345
+ <action method="setParentType"><type>shipment</type></action>
346
+ </block>
347
+ <block type="adminhtml/sales_order_shipment_packaging" name="shipment_packaging" template="sales/order/shipment/packaging/popup.phtml" />
348
+ <block type="adminhtml/sales_order_shipment_packaging" name="shipment_packed" template="sales/order/shipment/packaging/packed.phtml"/>
349
+ </block>
350
+ </block>
351
+ </reference>
352
+ </adminhtml_sales_order_shipment_view>
353
+
354
+ <adminhtml_sales_order_creditmemo_new>
355
+ <reference name="content">
356
+ <block type="adminhtml/sales_order_creditmemo_create" name="sales_creditmemo_create">
357
+ <block type="adminhtml/sales_order_creditmemo_create_form" name="form" template="sales/order/creditmemo/create/form.phtml">
358
+ <block type="adminhtml/sales_order_view_info" name="order_info" template="sales/order/view/info.phtml"></block>
359
+ <block type="adminhtml/sales_order_payment" name="order_payment"></block>
360
+ <block type="adminhtml/sales_order_creditmemo_create_items" name="order_items" template="sales/order/creditmemo/create/items.phtml">
361
+ <action method="addItemRender"><type>default</type><block>adminhtml/sales_items_renderer_default</block><template>sales/order/creditmemo/create/items/renderer/default.phtml</template></action>
362
+ <action method="addColumnRender"><column>qty</column><block>adminhtml/sales_items_column_qty</block><template>sales/items/column/qty.phtml</template></action>
363
+ <action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name</block><template>sales/items/column/name.phtml</template></action>
364
+ <action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name_grouped</block><template>sales/items/column/name.phtml</template><type>grouped</type></action>
365
+ <block type="core/text_list" name="order_item_extra_info"></block>
366
+ <block type="adminhtml/sales_order_totalbar" name="order_totalbar" template="sales/order/totalbar.phtml"></block>
367
+
368
+ <block type="adminhtml/sales_order_creditmemo_totals" name="creditmemo_totals" template="sales/order/totals.phtml">
369
+ <block type="adminhtml/sales_order_creditmemo_create_adjustments" name="adjustments" template="sales/order/creditmemo/create/totals/adjustments.phtml" />
370
+ <block type="adminhtml/sales_order_totals_tax" name="tax" template="sales/order/totals/tax.phtml" />
371
+ <!--<block type="adminhtml/sales_order_totals_item" name="footer" template="sales/order/totals/footer.phtml">
372
+ <block type="adminhtml/sales_order_totals_item" name="grand" template="sales/order/totals/grand.phtml">
373
+ <action method="setGrandTotalTitle"><title>Total Refund</title></action>
374
+ </block>
375
+ </block>
376
+ <block type="adminhtml/sales_order_totals_item" name="sales.order.view.totals.main" as="main" template="sales/order/totals/main.phtml">
377
+ <block type="adminhtml/sales_order_totals_subtotal" name="subtotal" template="sales/order/totals/subtotal.phtml" />
378
+ <block type="adminhtml/sales_order_totals_item" name="tax" template="sales/order/totals/item.phtml">
379
+ <action method="setSourceField"><value>tax_amount</value></action>
380
+ <action method="setLabel"><value>Tax</value></action>
381
+ </block>
382
+ <block type="adminhtml/sales_order_totals_item" name="discount" template="sales/order/totals/item.phtml">
383
+ <action method="setSourceField"><value>discount_amount</value></action>
384
+ <action method="setLabel"><value>Discount</value></action>
385
+ </block>
386
+ <block type="adminhtml/sales_order_totals_item" name="adjustments" template="sales/order/creditmemo/create/totals/adjustments.phtml" />
387
+ </block>-->
388
+ </block>
389
+ <block type="core/text_list" name="submit_before" />
390
+ <block type="core/text_list" name="submit_after" />
391
+ </block>
392
+ </block>
393
+ </block>
394
+ </reference>
395
+ </adminhtml_sales_order_creditmemo_new>
396
+
397
+ <adminhtml_sales_order_creditmemo_updateqty>
398
+ <block type="adminhtml/sales_order_creditmemo_create_items" name="order_items" template="sales/order/creditmemo/create/items.phtml">
399
+ <action method="addItemRender"><type>default</type><block>adminhtml/sales_items_renderer_default</block><template>sales/order/creditmemo/create/items/renderer/default.phtml</template></action>
400
+ <action method="addColumnRender"><column>qty</column><block>adminhtml/sales_items_column_qty</block><template>sales/items/column/qty.phtml</template></action>
401
+ <action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name</block><template>sales/items/column/name.phtml</template></action>
402
+ <action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name_grouped</block><template>sales/items/column/name.phtml</template><type>grouped</type></action>
403
+ <block type="core/text_list" name="order_item_extra_info"></block>
404
+ <block type="adminhtml/sales_order_totalbar" name="order_totalbar" template="sales/order/totalbar.phtml"></block>
405
+
406
+ <block type="adminhtml/sales_order_creditmemo_totals" name="creditmemo_totals" template="sales/order/totals.phtml">
407
+ <block type="adminhtml/sales_order_creditmemo_create_adjustments" name="adjustments" template="sales/order/creditmemo/create/totals/adjustments.phtml" />
408
+ <block type="adminhtml/sales_order_totals_tax" name="tax" template="sales/order/totals/tax.phtml" />
409
+ <!--<block type="adminhtml/sales_order_totals" name="order_totals" template="sales/order/totals.phtml">
410
+ <block type="adminhtml/sales_order_totals_item" name="footer" template="sales/order/totals/footer.phtml">
411
+ <block type="adminhtml/sales_order_totals_item" name="grand" template="sales/order/totals/grand.phtml">
412
+ <action method="setGrandTotalTitle"><title>Total Refund</title></action>
413
+ </block>
414
+ </block>
415
+ <block type="adminhtml/sales_order_totals_item" name="sales.order.view.totals.main" as="main" template="sales/order/totals/main.phtml">
416
+ <block type="adminhtml/sales_order_totals_subtotal" name="subtotal" template="sales/order/totals/subtotal.phtml" />
417
+ <block type="adminhtml/sales_order_totals_item" name="tax" template="sales/order/totals/item.phtml">
418
+ <action method="setSourceField"><value>tax_amount</value></action>
419
+ <action method="setLabel"><value>Tax</value></action>
420
+ </block>
421
+ <block type="adminhtml/sales_order_totals_item" name="discount" template="sales/order/totals/item.phtml">
422
+ <action method="setSourceField"><value>discount_amount</value></action>
423
+ <action method="setLabel"><value>Discount</value></action>
424
+ </block>
425
+ <block type="adminhtml/sales_order_totals_item" name="adjustments" template="sales/order/creditmemo/create/totals/adjustments.phtml" />
426
+ </block>-->
427
+ </block>
428
+
429
+ <block type="core/text_list" name="submit_before" />
430
+ <block type="core/text_list" name="submit_after" />
431
+ </block>
432
+ </adminhtml_sales_order_creditmemo_updateqty>
433
+
434
+ <adminhtml_sales_order_creditmemo_addcomment>
435
+ <block type="adminhtml/sales_order_creditmemo_view_comments" name="creditmemo_comments">
436
+ <block type="adminhtml/sales_order_comments_view" name="order_comments" template="sales/order/comments/view.phtml"></block>
437
+ </block>
438
+ </adminhtml_sales_order_creditmemo_addcomment>
439
+
440
+ <adminhtml_sales_order_creditmemo_view>
441
+ <reference name="content">
442
+ <block type="adminhtml/sales_order_creditmemo_view" name="sales_creditmemo_view">
443
+ <block type="adminhtml/sales_order_creditmemo_view_form" name="form" template="sales/order/creditmemo/view/form.phtml">
444
+ <block type="adminhtml/sales_order_view_info" name="order_info" template="sales/order/view/info.phtml"></block>
445
+ <block type="adminhtml/sales_order_payment" name="order_payment"></block>
446
+ <block type="adminhtml/sales_order_creditmemo_view_items" name="creditmemo_items" template="sales/order/creditmemo/view/items.phtml">
447
+ <action method="addItemRender"><type>default</type><block>adminhtml/sales_items_renderer_default</block><template>sales/order/creditmemo/view/items/renderer/default.phtml</template></action>
448
+ <action method="addColumnRender"><column>qty</column><block>adminhtml/sales_items_column_qty</block><template>sales/items/column/qty.phtml</template></action>
449
+ <action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name</block><template>sales/items/column/name.phtml</template></action>
450
+ <action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name_grouped</block><template>sales/items/column/name.phtml</template><type>grouped</type></action>
451
+ <block type="core/text_list" name="order_item_extra_info"></block>
452
+ </block>
453
+ <block type="adminhtml/sales_order_comments_view" name="order_comments" template="sales/order/comments/view.phtml">
454
+ <action method="setParentType"><type>creditmemo</type></action>
455
+ </block>
456
+
457
+ <block type="adminhtml/sales_order_creditmemo_totals" name="creditmemo_totals" template="sales/order/totals.phtml">
458
+ <block type="adminhtml/sales_order_totals_tax" name="tax" template="sales/order/totals/tax.phtml" />
459
+ <!--<block type="adminhtml/sales_order_totals_item" name="footer" template="sales/order/totals/footer.phtml">
460
+ <block type="adminhtml/sales_order_totals_item" name="grand" template="sales/order/totals/grand.phtml" />
461
+ <block type="adminhtml/sales_order_totals_item" name="paid" template="sales/order/totals/paid.phtml" />
462
+ <block type="adminhtml/sales_order_totals_item" name="refunded" template="sales/order/totals/refunded.phtml" />
463
+ <block type="adminhtml/sales_order_totals_item" name="due" template="sales/order/totals/due.phtml" />
464
+ </block>
465
+ <block type="adminhtml/sales_order_totals_item" name="sales.order.view.totals.main" as="main" template="sales/order/totals/main.phtml">
466
+ <block type="adminhtml/sales_order_totals_subtotal" name="subtotal" template="sales/order/totals/subtotal.phtml" />
467
+ <block type="adminhtml/sales_order_totals_tax" name="tax" template="sales/order/totals/tax.phtml" />
468
+ <block type="adminhtml/sales_order_totals_item" name="shipping" template="sales/order/totals/shipping.phtml" />
469
+ <block type="adminhtml/sales_order_totals_item" name="discount" template="sales/order/totals/discount.phtml" />
470
+ <block type="adminhtml/sales_order_totals_item" name="giftcert" template="sales/order/totals/item.phtml">
471
+ <action method="setSourceField"><value>giftcert_amount</value></action>
472
+ <action method="setLabel"><value>Gift Certificate</value></action>
473
+ </block>
474
+ <block type="adminhtml/sales_order_totals_item" name="adjustment_positive" template="sales/order/totals/item.phtml">
475
+ <action method="setSourceField"><value>adjustment_positive</value></action>
476
+ <action method="setLabel"><value>Adjustment Refund</value></action>
477
+ </block>
478
+ <block type="adminhtml/sales_order_totals_item" name="adjustment_negative" template="sales/order/totals/item.phtml">
479
+ <action method="setSourceField"><value>adjustment_negative</value></action>
480
+ <action method="setLabel"><value>Adjustment Fee</value></action>
481
+ </block>
482
+ </block>-->
483
+ </block>
484
+ </block>
485
+ </block>
486
+ </reference>
487
+ </adminhtml_sales_order_creditmemo_view>
488
+
489
+ <adminhtml_sales_transactions_index>
490
+ <reference name="content">
491
+ <block type="adminhtml/sales_transactions" name="sales_transactions.grid.container"></block>
492
+ </reference>
493
+ </adminhtml_sales_transactions_index>
494
+ <adminhtml_sales_transactions_grid>
495
+ <block type="adminhtml/sales_transactions_grid" name="sales_transactions.grid" output="toHtml"></block>
496
+ </adminhtml_sales_transactions_grid>
497
+ <adminhtml_sales_transactions_view>
498
+ <reference name="content">
499
+ <block type="adminhtml/sales_transactions_detail" name="sales_transactions.detail" template="sales/transactions/detail.phtml">
500
+ <block type="adminhtml/sales_transactions_detail_grid" name="sales_transactions.detail.grid" as="detail_grid"/>
501
+ <block type="adminhtml/sales_transactions_child_grid" name="sales_transactions.child.grid" as="child_grid"/>
502
+ </block>
503
+ </reference>
504
+ </adminhtml_sales_transactions_view>
505
+
506
+ <adminhtml_sales_order_create_index>
507
+ <reference name="left">
508
+ <action method="setIsCollapsed"><value>true</value></action>
509
+ </reference>
510
+ <reference name="head">
511
+ <action method="addJs"><file>mage/adminhtml/sales.js</file></action>
512
+ <action method="addJs"><file>mage/adminhtml/giftmessage.js</file></action>
513
+ <action method="addJs"><file>mage/adminhtml/product/composite/configure.js</file></action>
514
+ <action method="addJs"><file>varien/configurable.js</file></action>
515
+ <action method="addJs"><file>mage/adminhtml/giftoptions/tooltip.js</file></action>
516
+ <block type="adminhtml/template" name="optional_zip_countries" as="optional_zip_countries" template="directory/js/optional_zip_countries.phtml" />
517
+ </reference>
518
+ <reference name="js">
519
+ <block type="adminhtml/template" template="sales/order/create/js.phtml" name="create" />
520
+ </reference>
521
+ <reference name="root">
522
+ <block type="adminhtml/sales_order_create" name="content">
523
+ <block type="adminhtml/sales_order_create_form" template="sales/order/create/form.phtml" name="form">
524
+ <block type="adminhtml/sales_order_create_messages" name="message" />
525
+ <block type="adminhtml/sales_order_create_customer" template="sales/order/create/abstract.phtml" name="customer">
526
+ <block type="adminhtml/sales_order_create_customer_grid" name="grid" />
527
+ </block>
528
+ <block type="adminhtml/sales_order_create_store" template="sales/order/create/abstract.phtml" name="store">
529
+ <block type="adminhtml/sales_order_create_store_select" template="sales/order/create/store/select.phtml" name="select" />
530
+ </block>
531
+ <block type="adminhtml/sales_order_create_data" template="sales/order/create/data.phtml" name="data">
532
+ <block type="adminhtml/sales_order_create_sidebar" template="sales/order/create/sidebar.phtml" name="sidebar">
533
+ <block type="adminhtml/sales_order_create_sidebar_cart" template="sales/order/create/sidebar/items.phtml" name="cart" />
534
+ <block type="adminhtml/sales_order_create_sidebar_wishlist" template="sales/order/create/sidebar/items.phtml" name="wishlist" />
535
+ <block type="adminhtml/sales_order_create_sidebar_reorder" template="sales/order/create/sidebar/items.phtml" name="reorder" />
536
+ <block type="adminhtml/sales_order_create_sidebar_viewed" template="sales/order/create/sidebar/items.phtml" name="viewed" />
537
+ <block type="adminhtml/sales_order_create_sidebar_compared" template="sales/order/create/sidebar/items.phtml" name="compared" />
538
+ <block type="adminhtml/sales_order_create_sidebar_pcompared" template="sales/order/create/sidebar/items.phtml" name="pcompared" />
539
+ <block type="adminhtml/sales_order_create_sidebar_pviewed" template="sales/order/create/sidebar/items.phtml" name="pviewed" />
540
+ </block>
541
+ <block type="adminhtml/sales_order_create_form_account" template="sales/order/create/form/account.phtml" name="form_account" />
542
+ <block type="adminhtml/sales_order_create_shipping_address" template="sales/order/create/form/address.phtml" name="shipping_address" />
543
+ <block type="adminhtml/sales_order_create_billing_address" template="sales/order/create/form/address.phtml" name="billing_address" />
544
+ <block type="adminhtml/sales_order_create_shipping_method" template="sales/order/create/abstract.phtml" name="shipping_method">
545
+ <block type="adminhtml/sales_order_create_shipping_method_form" template="sales/order/create/shipping/method/form.phtml" name="form" />
546
+ </block>
547
+ <block type="adminhtml/sales_order_create_billing_method" template="sales/order/create/abstract.phtml" name="billing_method">
548
+ <block type="adminhtml/sales_order_create_billing_method_form" template="sales/order/create/billing/method/form.phtml" name="form" />
549
+ </block>
550
+ <block type="adminhtml/sales_order_create_newsletter" template="sales/order/create/abstract.phtml" name="newsletter">
551
+ <block type="adminhtml/sales_order_create_newsletter_form" template="sales/order/create/newsletter/form.phtml" name="form" />
552
+ </block>
553
+ <block type="adminhtml/sales_order_create_search" template="sales/order/create/abstract.phtml" name="search">
554
+ <block type="adminhtml/sales_order_create_search_grid" name="grid" />
555
+ </block>
556
+ <block type="adminhtml/sales_order_create_items" template="sales/order/create/items.phtml" name="items">
557
+ <block type="adminhtml/sales_order_create_items_grid" template="sales/order/create/items/grid.phtml" name="items_grid">
558
+ <block type="adminhtml/sales_order_create_coupons" template="sales/order/create/coupons/form.phtml" name="coupons">
559
+ <block type="adminhtml/sales_order_create_coupons_form" template="sales/order/create/coupons/form.phtml" name="form" />
560
+ </block>
561
+ </block>
562
+ </block>
563
+ <block type="adminhtml/sales_order_create_comment" template="sales/order/create/comment.phtml" name="comment" />
564
+ <block type="adminhtml/sales_order_create_totals" template="sales/order/create/totals.phtml" name="totals" />
565
+ <block type="adminhtml/template" name="gift_options" template="sales/order/giftoptions.phtml">
566
+ <block type="adminhtml/sales_order_create_giftmessage" template="sales/order/create/giftmessage.phtml" name="giftmessage" />
567
+ </block>
568
+ <block type="core/text_list" name="order_item_extra_info"></block>
569
+ </block>
570
+ </block>
571
+ </block>
572
+ </reference>
573
+ </adminhtml_sales_order_create_index>
574
+
575
+ <adminhtml_sales_order_edit_index>
576
+ <update handle="adminhtml_sales_order_create_index" />
577
+ </adminhtml_sales_order_edit_index>
578
+
579
+ <adminhtml_sales_order_create_load_block_json>
580
+ <reference name="root">
581
+ <block type="adminhtml/sales_order_create_load" name="content" />
582
+ </reference>
583
+ </adminhtml_sales_order_create_load_block_json>
584
+
585
+ <adminhtml_sales_order_create_load_block_plain>
586
+ <reference name="root">
587
+ <block type="core/text_list" name="content" />
588
+ </reference>
589
+ </adminhtml_sales_order_create_load_block_plain>
590
+
591
+ <adminhtml_sales_order_create_load_block_data>
592
+ <reference name="content">
593
+ <block type="adminhtml/sales_order_create_data" template="sales/order/create/data.phtml" name="data">
594
+ <block type="adminhtml/sales_order_create_sidebar" template="sales/order/create/sidebar.phtml" name="sidebar">
595
+ <block type="adminhtml/sales_order_create_sidebar_cart" template="sales/order/create/sidebar/items.phtml" name="cart" />
596
+ <block type="adminhtml/sales_order_create_sidebar_wishlist" template="sales/order/create/sidebar/items.phtml" name="wishlist" />
597
+ <block type="adminhtml/sales_order_create_sidebar_reorder" template="sales/order/create/sidebar/items.phtml" name="reorder" />
598
+ <block type="adminhtml/sales_order_create_sidebar_viewed" template="sales/order/create/sidebar/items.phtml" name="viewed" />
599
+ <block type="adminhtml/sales_order_create_sidebar_compared" template="sales/order/create/sidebar/items.phtml" name="compared" />
600
+ <block type="adminhtml/sales_order_create_sidebar_pcompared" template="sales/order/create/sidebar/items.phtml" name="pcompared" />
601
+ <block type="adminhtml/sales_order_create_sidebar_pviewed" template="sales/order/create/sidebar/items.phtml" name="pviewed" />
602
+ </block>
603
+ <block type="adminhtml/sales_order_create_form_account" template="sales/order/create/form/account.phtml" name="form_account" />
604
+ <block type="adminhtml/sales_order_create_shipping_address" template="sales/order/create/form/address.phtml" name="shipping_address" />
605
+ <block type="adminhtml/sales_order_create_billing_address" template="sales/order/create/form/address.phtml" name="billing_address" />
606
+ <block type="adminhtml/sales_order_create_shipping_method" template="sales/order/create/abstract.phtml" name="shipping_method">
607
+ <block type="adminhtml/sales_order_create_shipping_method_form" template="sales/order/create/shipping/method/form.phtml" name="form" />
608
+ </block>
609
+ <block type="adminhtml/sales_order_create_billing_method" template="sales/order/create/abstract.phtml" name="billing_method">
610
+ <block type="adminhtml/sales_order_create_billing_method_form" template="sales/order/create/billing/method/form.phtml" name="form" />
611
+ </block>
612
+ <block type="adminhtml/sales_order_create_newsletter" template="sales/order/create/abstract.phtml" name="newsletter">
613
+ <block type="adminhtml/sales_order_create_newsletter_form" template="sales/order/create/newsletter/form.phtml" name="form" />
614
+ </block>
615
+ <block type="adminhtml/sales_order_create_search" template="sales/order/create/abstract.phtml" name="search">
616
+ <block type="adminhtml/sales_order_create_search_grid" name="grid" />
617
+ </block>
618
+ <block type="adminhtml/sales_order_create_items" template="sales/order/create/items.phtml" name="items">
619
+ <block type="adminhtml/sales_order_create_items_grid" template="sales/order/create/items/grid.phtml" name="items_grid">
620
+ <block type="adminhtml/sales_order_create_coupons" template="sales/order/create/coupons/form.phtml" name="coupons">
621
+ <block type="adminhtml/sales_order_create_coupons_form" template="sales/order/create/coupons/form.phtml" name="form" />
622
+ </block>
623
+ </block>
624
+ </block>
625
+ <block type="adminhtml/sales_order_create_comment" template="sales/order/create/comment.phtml" name="comment" />
626
+ <block type="adminhtml/sales_order_create_totals" template="sales/order/create/totals.phtml" name="totals" />
627
+ <block type="adminhtml/template" name="gift_options" template="sales/order/giftoptions.phtml">
628
+ <block type="adminhtml/sales_order_create_giftmessage" template="sales/order/create/giftmessage.phtml" name="giftmessage" />
629
+ </block>
630
+ <block type="core/text_list" name="order_item_extra_info"></block>
631
+ </block>
632
+ </reference>
633
+ </adminhtml_sales_order_create_load_block_data>
634
+
635
+ <adminhtml_sales_order_create_load_block_header>
636
+ <reference name="content">
637
+ <block type="adminhtml/sales_order_create_header" name="header" />
638
+ </reference>
639
+ </adminhtml_sales_order_create_load_block_header>
640
+
641
+
642
+ <adminhtml_sales_order_create_load_block_sidebar>
643
+ <reference name="content">
644
+ <block type="adminhtml/sales_order_create_sidebar" template="sales/order/create/sidebar.phtml" name="sidebar">
645
+ <block type="adminhtml/sales_order_create_sidebar_cart" template="sales/order/create/sidebar/items.phtml" name="cart" />
646
+ <block type="adminhtml/sales_order_create_sidebar_wishlist" template="sales/order/create/sidebar/items.phtml" name="wishlist" />
647
+ <block type="adminhtml/sales_order_create_sidebar_reorder" template="sales/order/create/sidebar/items.phtml" name="reorder" />
648
+ <block type="adminhtml/sales_order_create_sidebar_viewed" template="sales/order/create/sidebar/items.phtml" name="viewed" />
649
+ <block type="adminhtml/sales_order_create_sidebar_compared" template="sales/order/create/sidebar/items.phtml" name="compared" />
650
+ <block type="adminhtml/sales_order_create_sidebar_pcompared" template="sales/order/create/sidebar/items.phtml" name="pcompared" />
651
+ <block type="adminhtml/sales_order_create_sidebar_pviewed" template="sales/order/create/sidebar/items.phtml" name="pviewed" />
652
+ </block>
653
+ </reference>
654
+ </adminhtml_sales_order_create_load_block_sidebar>
655
+
656
+ <adminhtml_sales_order_create_load_block_form_account>
657
+ <reference name="content">
658
+ <block type="adminhtml/sales_order_create_form_account" template="sales/order/create/form/account.phtml" name="form_account" />
659
+ </reference>
660
+ </adminhtml_sales_order_create_load_block_form_account>
661
+
662
+ <adminhtml_sales_order_create_load_block_shipping_address>
663
+ <reference name="content">
664
+ <block type="adminhtml/sales_order_create_shipping_address" template="sales/order/create/form/address.phtml" name="shipping_address" />
665
+ </reference>
666
+ </adminhtml_sales_order_create_load_block_shipping_address>
667
+
668
+ <adminhtml_sales_order_create_load_block_billing_address>
669
+ <reference name="content">
670
+ <block type="adminhtml/sales_order_create_billing_address" template="sales/order/create/form/address.phtml" name="billing_address" />
671
+ </reference>
672
+ </adminhtml_sales_order_create_load_block_billing_address>
673
+
674
+ <adminhtml_sales_order_create_load_block_shipping_method>
675
+ <reference name="content">
676
+ <block type="adminhtml/sales_order_create_shipping_method" template="sales/order/create/abstract.phtml" name="shipping_method">
677
+ <block type="adminhtml/sales_order_create_shipping_method_form" template="sales/order/create/shipping/method/form.phtml" name="form" />
678
+ </block>
679
+ </reference>
680
+ </adminhtml_sales_order_create_load_block_shipping_method>
681
+
682
+ <adminhtml_sales_order_create_load_block_billing_method>
683
+ <reference name="content">
684
+ <block type="adminhtml/sales_order_create_billing_method" template="sales/order/create/abstract.phtml" name="billing_method">
685
+ <block type="adminhtml/sales_order_create_billing_method_form" template="sales/order/create/billing/method/form.phtml" name="form" />
686
+ </block>
687
+ </reference>
688
+ </adminhtml_sales_order_create_load_block_billing_method>
689
+
690
+ <adminhtml_sales_order_create_load_block_newsletter>
691
+ <reference name="content">
692
+ <block type="adminhtml/sales_order_create_newsletter" template="sales/order/create/abstract.phtml" name="newsletter">
693
+ <block type="adminhtml/sales_order_create_newsletter_form" template="sales/order/create/newsletter/form.phtml" name="form" />
694
+ </block>
695
+ </reference>
696
+ </adminhtml_sales_order_create_load_block_newsletter>
697
+
698
+ <adminhtml_sales_order_create_load_block_search>
699
+ <reference name="content">
700
+ <block type="adminhtml/sales_order_create_search" template="sales/order/create/abstract.phtml" name="search">
701
+ <block type="adminhtml/sales_order_create_search_grid" name="grid" />
702
+ </block>
703
+ </reference>
704
+ </adminhtml_sales_order_create_load_block_search>
705
+
706
+ <adminhtml_sales_order_create_load_block_search_grid>
707
+ <reference name="content">
708
+ <block type="adminhtml/sales_order_create_search_grid" name="grid" />
709
+ </reference>
710
+ </adminhtml_sales_order_create_load_block_search_grid>
711
+
712
+ <adminhtml_sales_order_create_load_block_items>
713
+ <reference name="content">
714
+ <block type="adminhtml/sales_order_create_items" template="sales/order/create/items.phtml" name="items">
715
+ <block type="adminhtml/sales_order_create_items_grid" template="sales/order/create/items/grid.phtml" name="items_grid">
716
+ <block type="adminhtml/sales_order_create_coupons" template="sales/order/create/coupons/form.phtml" name="coupons">
717
+ <block type="adminhtml/sales_order_create_coupons_form" template="sales/order/create/coupons/form.phtml" name="form" />
718
+ </block>
719
+ </block>
720
+ </block>
721
+ <block type="core/text_list" name="order_item_extra_info"></block>
722
+ </reference>
723
+ </adminhtml_sales_order_create_load_block_items>
724
+
725
+ <adminhtml_sales_order_create_load_block_comment>
726
+ <reference name="content">
727
+ <block type="adminhtml/sales_order_create_comment" template="sales/order/create/comment.phtml" name="comment" />
728
+ </reference>
729
+ </adminhtml_sales_order_create_load_block_comment>
730
+
731
+ <adminhtml_sales_order_create_load_block_totals>
732
+ <reference name="content">
733
+ <block type="adminhtml/sales_order_create_totals" template="sales/order/create/totals.phtml" name="totals" />
734
+ </reference>
735
+ </adminhtml_sales_order_create_load_block_totals>
736
+
737
+ <adminhtml_sales_order_create_load_block_giftmessage>
738
+ <reference name="content">
739
+ <block type="adminhtml/sales_order_create_giftmessage" template="sales/order/create/giftmessage.phtml" name="giftmessage" />
740
+ </reference>
741
+ </adminhtml_sales_order_create_load_block_giftmessage>
742
+
743
+ <adminhtml_sales_order_create_load_block_message>
744
+ <reference name="content">
745
+ <block type="adminhtml/sales_order_create_messages" name="message" />
746
+ </reference>
747
+ </adminhtml_sales_order_create_load_block_message>
748
+
749
+ <adminhtml_sales_order_create_load_block_customer_grid>
750
+ <reference name="content">
751
+ <block type="adminhtml/sales_order_create_customer_grid" name="grid" />
752
+ </reference>
753
+ </adminhtml_sales_order_create_load_block_customer_grid>
754
+
755
+ <adminhtml_sales_order_create_load_block_sidebar_cart>
756
+ <reference name="content">
757
+ <block type="adminhtml/sales_order_create_sidebar_cart" template="sales/order/create/sidebar/items.phtml" name="sidebar_cart" />
758
+ </reference>
759
+ </adminhtml_sales_order_create_load_block_sidebar_cart>
760
+
761
+ <adminhtml_sales_order_create_load_block_sidebar_wishlist>
762
+ <reference name="content">
763
+ <block type="adminhtml/sales_order_create_sidebar_wishlist" template="sales/order/create/sidebar/items.phtml" name="sidebar_wishlist" />
764
+ </reference>
765
+ </adminhtml_sales_order_create_load_block_sidebar_wishlist>
766
+
767
+ <adminhtml_sales_order_create_load_block_sidebar_reorder>
768
+ <reference name="content">
769
+ <block type="adminhtml/sales_order_create_sidebar_reorder" template="sales/order/create/sidebar/items.phtml" name="sidebar_reorder" />
770
+ </reference>
771
+ </adminhtml_sales_order_create_load_block_sidebar_reorder>
772
+
773
+ <adminhtml_sales_order_create_load_block_sidebar_viewed>
774
+ <reference name="content">
775
+ <block type="adminhtml/sales_order_create_sidebar_viewed" template="sales/order/create/sidebar/items.phtml" name="sidebar_viewed" />
776
+ </reference>
777
+ </adminhtml_sales_order_create_load_block_sidebar_viewed>
778
+
779
+ <adminhtml_sales_order_create_load_block_sidebar_compared>
780
+ <reference name="content">
781
+ <block type="adminhtml/sales_order_create_sidebar_compared" template="sales/order/create/sidebar/items.phtml" name="sidebar_compared" />
782
+ </reference>
783
+ </adminhtml_sales_order_create_load_block_sidebar_compared>
784
+
785
+ <adminhtml_sales_order_create_load_block_sidebar_pviewed>
786
+ <reference name="content">
787
+ <block type="adminhtml/sales_order_create_sidebar_pviewed" template="sales/order/create/sidebar/items.phtml" name="sidebar_pviewed" />
788
+ </reference>
789
+ </adminhtml_sales_order_create_load_block_sidebar_pviewed>
790
+
791
+ <adminhtml_sales_order_create_load_block_sidebar_pcompared>
792
+ <reference name="content">
793
+ <block type="adminhtml/sales_order_create_sidebar_pcompared" template="sales/order/create/sidebar/items.phtml" name="sidebar_pcompared" />
794
+ </reference>
795
+ </adminhtml_sales_order_create_load_block_sidebar_pcompared>
796
+
797
+ <report_sales>
798
+ <reference name="messages">
799
+ <action method="addNotice" translate="message">
800
+ <message>This report depends on timezone configuration. Once timezone is changed, the lifetime statistics need to be refreshed.</message>
801
+ </action>
802
+ </reference>
803
+ </report_sales>
804
+
805
+ <adminhtml_report_sales_sales>
806
+ <update handle="report_sales"/>
807
+ <reference name="content">
808
+ <block type="adminhtml/report_sales_sales" template="report/grid/container.phtml" name="sales.report.grid.container">
809
+ <block type="adminhtml/store_switcher" template="report/store/switcher/enhanced.phtml" name="store.switcher">
810
+ <action method="setStoreVarName"><var_name>store_ids</var_name></action>
811
+ </block>
812
+ <block type="sales/adminhtml_report_filter_form_order" name="grid.filter.form">
813
+ <action method="addReportTypeOption" translate="value">
814
+ <key>created_at_order</key>
815
+ <value>Order Created Date</value>
816
+ </action>
817
+ <action method="addReportTypeOption" translate="value">
818
+ <key>updated_at_order</key>
819
+ <value>Order Updated Date</value>
820
+ </action>
821
+ <action method="setFieldOption" translate="value">
822
+ <field>report_type</field>
823
+ <option>note</option>
824
+ <value>Order Updated Date report is real-time, does not need statistics refreshing.</value>
825
+ </action>
826
+ </block>
827
+ </block>
828
+ </reference>
829
+ </adminhtml_report_sales_sales>
830
+
831
+ <adminhtml_report_sales_tax>
832
+ <update handle="report_sales"/>
833
+ <reference name="content">
834
+ <block type="adminhtml/report_sales_tax" template="report/grid/container.phtml" name="sales.report.grid.container">
835
+ <block type="adminhtml/store_switcher" template="report/store/switcher/enhanced.phtml" name="store.switcher">
836
+ <action method="setStoreVarName"><var_name>store_ids</var_name></action>
837
+ </block>
838
+ <block type="sales/adminhtml_report_filter_form" name="grid.filter.form">
839
+ <action method="addReportTypeOption" translate="value">
840
+ <key>created_at_order</key>
841
+ <value>Order Created Date</value>
842
+ </action>
843
+ <action method="addReportTypeOption" translate="value">
844
+ <key>updated_at_order</key>
845
+ <value>Order Updated Date</value>
846
+ </action>
847
+ <action method="setFieldOption" translate="value">
848
+ <field>report_type</field>
849
+ <option>note</option>
850
+ <value>Order Updated Date report is real-time, does not need statistics refreshing.</value>
851
+ </action>
852
+ </block>
853
+ </block>
854
+ </reference>
855
+ </adminhtml_report_sales_tax>
856
+
857
+ <adminhtml_report_sales_shipping>
858
+ <update handle="report_sales"/>
859
+ <reference name="content">
860
+ <block type="adminhtml/report_sales_shipping" template="report/grid/container.phtml" name="sales.report.grid.container">
861
+ <block type="adminhtml/store_switcher" template="report/store/switcher/enhanced.phtml" name="store.switcher">
862
+ <action method="setStoreVarName"><var_name>store_ids</var_name></action>
863
+ </block>
864
+ <block type="sales/adminhtml_report_filter_form" name="grid.filter.form">
865
+ <action method="addReportTypeOption" translate="value">
866
+ <key>created_at_order</key>
867
+ <value>Order Created Date</value>
868
+ </action>
869
+ <action method="addReportTypeOption" translate="value">
870
+ <key>created_at_shipment</key>
871
+ <value>First Invoice Created Date</value>
872
+ </action>
873
+ </block>
874
+ </block>
875
+ </reference>
876
+ </adminhtml_report_sales_shipping>
877
+
878
+ <adminhtml_report_sales_invoiced>
879
+ <update handle="report_sales"/>
880
+ <reference name="content">
881
+ <block type="adminhtml/report_sales_invoiced" template="report/grid/container.phtml" name="sales.report.grid.container">
882
+ <block type="adminhtml/store_switcher" template="report/store/switcher/enhanced.phtml" name="store.switcher">
883
+ <action method="setStoreVarName"><var_name>store_ids</var_name></action>
884
+ </block>
885
+ <block type="sales/adminhtml_report_filter_form" name="grid.filter.form">
886
+ <action method="addReportTypeOption" translate="value">
887
+ <key>created_at_order</key>
888
+ <value>Order Created Date</value>
889
+ </action>
890
+ <action method="addReportTypeOption" translate="value">
891
+ <key>created_at_invoice</key>
892
+ <value>Last Invoice Created Date</value>
893
+ </action>
894
+ </block>
895
+ </block>
896
+ </reference>
897
+ </adminhtml_report_sales_invoiced>
898
+
899
+ <adminhtml_report_sales_refunded>
900
+ <update handle="report_sales"/>
901
+ <reference name="content">
902
+ <block type="adminhtml/report_sales_refunded" template="report/grid/container.phtml" name="sales.report.grid.container">
903
+ <block type="adminhtml/store_switcher" template="report/store/switcher/enhanced.phtml" name="store.switcher">
904
+ <action method="setStoreVarName"><var_name>store_ids</var_name></action>
905
+ </block>
906
+ <block type="sales/adminhtml_report_filter_form" name="grid.filter.form">
907
+ <action method="addReportTypeOption" translate="value">
908
+ <key>created_at_order</key>
909
+ <value>Order Created Date</value>
910
+ </action>
911
+ <action method="addReportTypeOption" translate="value">
912
+ <key>created_at_refunded</key>
913
+ <value>Last Credit Memo Created Date</value>
914
+ </action>
915
+ </block>
916
+ </block>
917
+ </reference>
918
+ </adminhtml_report_sales_refunded>
919
+
920
+ <adminhtml_report_sales_coupons>
921
+ <update handle="report_sales"/>
922
+ <reference name="content">
923
+ <block type="adminhtml/report_sales_coupons" template="report/grid/container.phtml" name="sales.report.grid.container">
924
+ <block type="adminhtml/store_switcher" template="report/store/switcher/enhanced.phtml" name="store.switcher">
925
+ <action method="setStoreVarName"><var_name>store_ids</var_name></action>
926
+ </block>
927
+ <block type="sales/adminhtml_report_filter_form_coupon" name="grid.filter.form">
928
+ <action method="addReportTypeOption" translate="value">
929
+ <key>created_at_order</key>
930
+ <value>Order Created Date</value>
931
+ </action>
932
+ <action method="addReportTypeOption" translate="value">
933
+ <key>updated_at_order</key>
934
+ <value>Order Updated Date</value>
935
+ </action>
936
+ <action method="setFieldOption" translate="value">
937
+ <field>report_type</field>
938
+ <option>note</option>
939
+ <value>Order Updated Date report is real-time, does not need statistics refreshing.</value>
940
+ </action>
941
+ </block>
942
+ </block>
943
+ </reference>
944
+ </adminhtml_report_sales_coupons>
945
+
946
+ <adminhtml_report_sales_bestsellers>
947
+ <update handle="report_sales"/>
948
+ <reference name="content">
949
+ <block type="adminhtml/report_sales_bestsellers" template="report/grid/container.phtml" name="sales.report.grid.container">
950
+ <block type="adminhtml/store_switcher" template="report/store/switcher/enhanced.phtml" name="store.switcher">
951
+ <action method="setStoreVarName"><var_name>store_ids</var_name></action>
952
+ </block>
953
+ <block type="sales/adminhtml_report_filter_form" name="grid.filter.form">
954
+ <action method="setFieldVisibility">
955
+ <field>report_type</field>
956
+ <visibility>0</visibility>
957
+ </action>
958
+ <action method="setFieldVisibility">
959
+ <field>show_order_statuses</field>
960
+ <visibility>0</visibility>
961
+ </action>
962
+ <action method="setFieldVisibility">
963
+ <field>order_statuses</field>
964
+ <visibility>0</visibility>
965
+ </action>
966
+ </block>
967
+ </block>
968
+ </reference>
969
+ </adminhtml_report_sales_bestsellers>
970
+
971
+ <adminhtml_sales_recurring_profile_index>
972
+ <reference name="content">
973
+ <block type="sales/adminhtml_recurring_profile" name="sales.recurring.profile.grid.container"/>
974
+ </reference>
975
+ </adminhtml_sales_recurring_profile_index>
976
+
977
+ <adminhtml_sales_recurring_profile_grid>
978
+ <remove name="root"/>
979
+ <block type="sales/adminhtml_recurring_profile_grid" name="sales.recurring.profile.grid" output="toHtml"/>
980
+ </adminhtml_sales_recurring_profile_grid>
981
+
982
+ <adminhtml_sales_recurring_profile_customergrid>
983
+ <block type="sales/adminhtml_customer_edit_tab_recurring_profile" name="customer.recurring.profile.grid" output="toHtml"></block>
984
+ </adminhtml_sales_recurring_profile_customergrid>
985
+
986
+ <adminhtml_sales_recurring_profile_view>
987
+ <reference name="content">
988
+ <block type="sales/adminhtml_recurring_profile_view" name="sales.recurring.profile.view" template="widget/view/container.phtml">
989
+ <action method="setDestElementId"><value>sales_recurring_profile_view</value></action>
990
+ </block>
991
+ </reference>
992
+ <reference name="left">
993
+ <block type="adminhtml/widget_tabs" name="sales.recurring.profile.view.tabs">
994
+ <action method="setDestElementId"><value>sales_recurring_profile_view</value></action>
995
+ <action method="setTitle" translate="value"><value>Recurring Profile View</value></action>
996
+ <action method="setId"><value>sales_recurring_profile_view_tabs</value></action>
997
+ <block type="sales/adminhtml_recurring_profile_view_tab_info" as="info_tab" name="sales.recurring.profile.tab.info" template="sales/recurring/profile/view.phtml">
998
+ <block type="sales/recurring_profile_view" name="sales.recurring.profile.view.general" as="general" template="sales/recurring/profile/view/info.phtml">
999
+ <action method="prepareReferenceInfo"/>
1000
+ <action method="addToParentGroup"><value>info_blocks_row_1</value></action>
1001
+ <action method="setViewColumn"><value>1</value></action>
1002
+ <action method="setViewLabel" translate="value"><value>Reference</value></action>
1003
+ </block>
1004
+ <block type="sales/recurring_profile_view" name="sales.recurring.profile.view.item" as="item" template="sales/recurring/profile/view/info.phtml">
1005
+ <action method="prepareItemInfo"/>
1006
+ <action method="addToParentGroup"><value>info_blocks_row_1</value></action>
1007
+ <action method="setViewColumn"><value>2</value></action>
1008
+ <action method="setViewLabel" translate="value"><value>Purchased Item</value></action>
1009
+ </block>
1010
+ <block type="sales/recurring_profile_view" name="sales.recurring.profile.view.schedule" as="profile" template="sales/recurring/profile/view/info.phtml">
1011
+ <action method="prepareScheduleInfo"/>
1012
+ <action method="addToParentGroup"><value>info_blocks_row_2</value></action>
1013
+ <action method="setViewColumn"><value>1</value></action>
1014
+ <action method="setViewLabel" translate="value"><value>Profile Schedule</value></action>
1015
+ </block>
1016
+ <block type="sales/recurring_profile_view" name="sales.recurring.profile.view.fees" as="fees" template="sales/recurring/profile/view/info.phtml">
1017
+ <action method="prepareFeesInfo"/>
1018
+ <action method="addToParentGroup"><value>info_blocks_row_2</value></action>
1019
+ <action method="setViewColumn"><value>2</value></action>
1020
+ <action method="setViewLabel" translate="value"><value>Profile Payments</value></action>
1021
+ </block>
1022
+ <block type="sales/recurring_profile_view" name="sales.recurring.profile.view.billing" as="billing_address" template="sales/recurring/profile/view/info.phtml">
1023
+ <action method="prepareAddressInfo"/>
1024
+ <action method="addToParentGroup"><value>info_blocks_row_3</value></action>
1025
+ <action method="setViewColumn"><value>1</value></action>
1026
+ <action method="setViewLabel" translate="value"><value>Billing Address</value></action>
1027
+ </block>
1028
+ <block type="sales/recurring_profile_view" name="sales.recurring.profile.view.shipping" as="shipping_address" template="sales/recurring/profile/view/info.phtml">
1029
+ <action method="setAddressType"><value>shipping</value></action>
1030
+ <action method="prepareAddressInfo"/>
1031
+ <action method="addToParentGroup"><value>info_blocks_row_3</value></action>
1032
+ <action method="setViewColumn"><value>2</value></action>
1033
+ <action method="setViewLabel" translate="value"><value>Shipping Address</value></action>
1034
+ </block>
1035
+ </block>
1036
+ <block type="sales/adminhtml_recurring_profile_view_tab_orders" as="orders_tab" name="sales.recurring.profile.tab.orders"/>
1037
+ <action method="addTab"><name>recurring_profile_info</name><block>info_tab</block></action>
1038
+ <action method="addTab"><name>recurring_profile_orders</name><block>orders_tab</block></action>
1039
+ </block>
1040
+ </reference>
1041
+ </adminhtml_sales_recurring_profile_view>
1042
+
1043
+ <adminhtml_sales_recurring_profile_orders>
1044
+ <remove name="root"/>
1045
+ <block type="sales/adminhtml_recurring_profile_view_tab_orders" name="sales.recurring.profile.tab.orders" output="toHtml"/>
1046
+ </adminhtml_sales_recurring_profile_orders>
1047
+
1048
+ <adminhtml_customer_edit>
1049
+ <reference name="customer_edit_tabs">
1050
+ <action method="addTab"><name>customer_edit_tab_agreements</name><block>sales/adminhtml_customer_edit_tab_agreement</block></action>
1051
+ <action method="addTab"><name>customer_edit_tab_recurring_profile</name><block>sales/adminhtml_customer_edit_tab_recurring_profile</block></action>
1052
+ </reference>
1053
+ </adminhtml_customer_edit>
1054
+
1055
+ <adminhtml_sales_order_status_index>
1056
+ <reference name="content">
1057
+ <block type="adminhtml/sales_order_status" name="sales_order_status.grid.container"></block>
1058
+ </reference>
1059
+ </adminhtml_sales_order_status_index>
1060
+ <adminhtml_sales_order_status_new>
1061
+ <reference name="content">
1062
+ <block type="adminhtml/sales_order_status_new" name="sales_order_status.new.container"></block>
1063
+ </reference>
1064
+ </adminhtml_sales_order_status_new>
1065
+ <adminhtml_sales_order_status_edit>
1066
+ <reference name="content">
1067
+ <block type="adminhtml/sales_order_status_edit" name="sales_order_status.edit.container"></block>
1068
+ </reference>
1069
+ </adminhtml_sales_order_status_edit>
1070
+ <adminhtml_sales_order_status_assign>
1071
+ <reference name="content">
1072
+ <block type="adminhtml/sales_order_status_assign" name="sales_order_status.assign.container"></block>
1073
+ </reference>
1074
+ </adminhtml_sales_order_status_assign>
1075
+ <adminhtml_sales_order_address>
1076
+ <reference name="content">
1077
+ <block type="adminhtml/sales_order_address" name="sales_order_address.form.container"></block>
1078
+ </reference>
1079
+ </adminhtml_sales_order_address>
1080
+ </layout>
app/design/adminhtml/default/default/layout/search.xml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+ <adminhtml_catalog_search_edit>
31
+ <reference name="content">
32
+ <block type="adminhtml/catalog_search_edit" name="catalog_search_edit" />
33
+ </reference>
34
+ </adminhtml_catalog_search_edit>
35
+ </layout>
app/design/adminhtml/default/default/layout/tag.xml ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+ <layout>
29
+ <adminhtml_tag_edit>
30
+ <reference name="content">
31
+ <block type="adminhtml/tag_edit" name="tag_edit" template="tag/edit/container.phtml"></block>
32
+ </reference>
33
+ </adminhtml_tag_edit>
34
+ <adminhtml_tag_assigned>
35
+ <remove name="root" />
36
+ <block type="adminhtml/tag_assigned_grid" name="tag_assigned_grid" output="toHtml" />
37
+ <block type="adminhtml/widget_grid_serializer" name="tag_grid_serializer" output="toHtml">
38
+ <reference name="tag_grid_serializer">
39
+ <action method="initSerializerBlock">
40
+ <grid_block_name>tag_assigned_grid</grid_block_name>
41
+ <data_callback>getRelatedProducts</data_callback>
42
+ <hidden_input_name>tag_assigned_products</hidden_input_name>
43
+ <reload_param_name>assigned_products</reload_param_name>
44
+ </action>
45
+ </reference>
46
+ </block>
47
+ </adminhtml_tag_assigned>
48
+ <adminhtml_tag_assignedgridonly>
49
+ <remove name="root" />
50
+ <block type="adminhtml/tag_assigned_grid" name="assigned_grid" output="toHtml" />
51
+ </adminhtml_tag_assignedgridonly>
52
+
53
+ <adminhtml_tag_index>
54
+ <reference name="content">
55
+ <block type="adminhtml/tag_tag" name="adminhtml.tag.tag"/>
56
+ </reference>
57
+ </adminhtml_tag_index>
58
+
59
+ <adminhtml_tag_pending>
60
+ <reference name="content">
61
+ <block type="adminhtml/tag_pending" name="adminhtml.tag.pending"/>
62
+ </reference>
63
+ </adminhtml_tag_pending>
64
+
65
+ <adminhtml_tag_ajaxgrid>
66
+ <block type="core/text_list" name="root" output="toHtml">
67
+ <block type="adminhtml/tag_tag_grid" name="adminhtml.tag.tag.grid"/>
68
+ </block>
69
+ </adminhtml_tag_ajaxgrid>
70
+
71
+ <adminhtml_tag_ajaxpendinggrid>
72
+ <block type="core/text_list" name="root" output="toHtml">
73
+ <block type="adminhtml/tag_grid_pending" name="adminhtml.tag.grid.pending"/>
74
+ </block>
75
+ </adminhtml_tag_ajaxpendinggrid>
76
+
77
+ <adminhtml_tag_product>
78
+ <block type="core/text_list" name="root" output="toHtml">
79
+ <block type="adminhtml/tag_product_grid" name="adminhtml.tag.product.grid"/>
80
+ </block>
81
+ </adminhtml_tag_product>
82
+
83
+ <adminhtml_tag_customer>
84
+ <block type="core/text_list" name="root" output="toHtml">
85
+ <block type="adminhtml/tag_customer_grid" name="adminhtml.tag.customer.grid"/>
86
+ </block>
87
+ </adminhtml_tag_customer>
88
+ </layout>
app/design/adminhtml/default/default/layout/tax.xml ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+ <layout>
29
+ <default>
30
+ <reference name="notifications">
31
+ <block type="tax/adminhtml_notifications" name="tax_notifications" template="tax/notifications.phtml"></block>
32
+ </reference>
33
+ </default>
34
+ </layout>
app/design/adminhtml/default/default/layout/widget.xml ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+ <adminhtml_widget_index>
31
+ <block name="wysiwyg_widget" type="widget/adminhtml_widget" output="toHtml" />
32
+ </adminhtml_widget_index>
33
+
34
+ <adminhtml_widget_loadoptions>
35
+ <block name="wysiwyg_widget.options" type="widget/adminhtml_widget_options" output="toHtml" />
36
+ </adminhtml_widget_loadoptions>
37
+
38
+ <adminhtml_widget_instance_index>
39
+ <reference name="content">
40
+ <block type="widget/adminhtml_widget_instance" name="widget_instance" />
41
+ </reference>
42
+ </adminhtml_widget_instance_index>
43
+
44
+ <adminhtml_widget_instance_edit>
45
+ <reference name="head">
46
+ <action method="setCanLoadExtJs"><flag>1</flag></action>
47
+ <action method="addJs"><script>mage/adminhtml/wysiwyg/widget.js</script></action>
48
+ <action method="addItem"><type>js</type><name>prototype/window.js</name></action>
49
+ <action method="addItem"><type>js_css</type><name>prototype/windows/themes/default.css</name></action>
50
+ <action method="addCss"><name>lib/prototype/windows/themes/magento.css</name></action>
51
+ </reference>
52
+ <reference name="content">
53
+ <block type="widget/adminhtml_widget_instance_edit" name="widget_instance_edit" />
54
+ </reference>
55
+ <reference name="left">
56
+ <block type="widget/adminhtml_widget_instance_edit_tabs" name="widget_instance_edit_tabs">
57
+ <block type="widget/adminhtml_widget_instance_edit_tab_settings" name="widget_instance_edit_tab_settings" />
58
+ <block type="widget/adminhtml_widget_instance_edit_tab_main" name="widget_instance_edit_tab_main" />
59
+ <block type="widget/adminhtml_widget_instance_edit_tab_properties" name="widget_instance_edit_tab_properties" />
60
+ <action method="addTab"><name>settings_section</name><block>widget_instance_edit_tab_settings</block></action>
61
+ <action method="addTab"><name>main_section</name><block>widget_instance_edit_tab_main</block></action>
62
+ <action method="addTab"><name>properties_section</name><block>widget_instance_edit_tab_properties</block></action>
63
+ </block>
64
+ </reference>
65
+ <reference name="js">
66
+ <block type="adminhtml/template" template="widget/instance/js.phtml" name="widget_instance_js"></block>
67
+ </reference>
68
+ </adminhtml_widget_instance_edit>
69
+ </layout>
app/design/adminhtml/default/default/layout/xmlconnect.xml ADDED
@@ -0,0 +1,282 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category design
23
+ * @package default_default
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+
29
+ <layout>
30
+ <default>
31
+ <reference name="head">
32
+ <action method="addCss"><name>xmlconnect/boxes.css</name></action>
33
+ <action method="addItem"><type>skin_css</type><name>xmlconnect/iestyles.css</name><params/><if>lte IE 8</if></action>
34
+ </reference>
35
+ </default>
36
+
37
+ <adminhtml_mobile_index>
38
+ <reference name="content">
39
+ <block type="xmlconnect/adminhtml_mobile" name="applications"/>
40
+ </reference>
41
+ </adminhtml_mobile_index>
42
+
43
+ <adminhtml_mobile_history>
44
+ <reference name="content">
45
+ <block type="xmlconnect/adminhtml_history" name="history"/>
46
+ </reference>
47
+ </adminhtml_mobile_history>
48
+
49
+ <adminhtml_mobile_queue>
50
+ <reference name="content">
51
+ <block type="xmlconnect/adminhtml_queue" name="queue"/>
52
+ </reference>
53
+ </adminhtml_mobile_queue>
54
+
55
+ <adminhtml_mobile_template>
56
+ <reference name="content">
57
+ <block type="xmlconnect/adminhtml_template" name="template"/>
58
+ </reference>
59
+ </adminhtml_mobile_template>
60
+
61
+ <adminhtml_mobile_editqueue>
62
+ <reference name="content">
63
+ <block type="xmlconnect/adminhtml_queue_edit" name="queue_edit"/>
64
+ </reference>
65
+ </adminhtml_mobile_editqueue>
66
+
67
+ <adminhtml_mobile_queuemessage>
68
+ <reference name="content">
69
+ <block type="xmlconnect/adminhtml_queue_edit" name="queue_edit"/>
70
+ </reference>
71
+ </adminhtml_mobile_queuemessage>
72
+
73
+ <adminhtml_mobile_edittemplate>
74
+ <reference name="head">
75
+ <action method="setCanLoadExtJs"><flag>1</flag></action>
76
+ <action method="addJs"><script>mage/adminhtml/variables.js</script></action>
77
+ <action method="addJs"><script>mage/adminhtml/wysiwyg/widget.js</script></action>
78
+ <action method="addJs"><name>lib/uploader/flow.min.js</name></action>
79
+ <action method="addJs"><name>lib/uploader/fusty-flow.js</name></action>
80
+ <action method="addJs"><name>lib/uploader/fusty-flow-factory.js</name></action>
81
+ <action method="addJs"><name>mage/adminhtml/uploader/instance.js</name></action>
82
+ <action method="addJs"><script>mage/adminhtml/browser.js</script></action>
83
+ <action method="addJs"><script>prototype/window.js</script></action>
84
+ <action method="addItem"><type>js_css</type><name>prototype/windows/themes/default.css</name></action>
85
+ <action method="addItem"><type>js_css</type><name>prototype/windows/themes/magento.css</name></action>
86
+ </reference>
87
+ <reference name="content">
88
+ <block type="xmlconnect/adminhtml_template_edit" name="template_edit"/>
89
+ </reference>
90
+ </adminhtml_mobile_edittemplate>
91
+
92
+ <adminhtml_mobile_new>
93
+ <reference name="left">
94
+ <block type="xmlconnect/adminhtml_mobile_edit_tabs" name="mobile_edit_tabs" />
95
+ </reference>
96
+ <reference name="content">
97
+ <block type="xmlconnect/adminhtml_mobile_edit" name="mobile_edit_content"/>
98
+ </reference>
99
+ </adminhtml_mobile_new>
100
+
101
+ <adminhtml_mobile_edit>
102
+ <update handle="editor"/>
103
+ <reference name="left">
104
+ <block type="xmlconnect/adminhtml_mobile_edit_tabs" name="mobile_edit_tabs">
105
+ <block type="xmlconnect/adminhtml_mobile_edit_tab_offlineCatalog" name="mobile_edit_tab_offlineCatalog"/>
106
+ <block type="xmlconnect/adminhtml_mobile_edit_tab_general" name="mobile_edit_tab_general"/>
107
+ <block type="xmlconnect/adminhtml_mobile_edit_tab_design" name="mobile_edit_tab_design">
108
+ <block type="xmlconnect/adminhtml_mobile_edit_tab_design_images" name="mobile_edit_tab_design_images" as="design_images" />
109
+ <block type="xmlconnect/adminhtml_mobile_edit_tab_design_accordion" name="mobile_edit_tab_design_accordion" as="design_accordion">
110
+ <block type="xmlconnect/adminhtml_mobile_edit_tab_design_accordion_themes" name="accordion_themes" />
111
+ <block type="xmlconnect/adminhtml_mobile_edit_tab_design_accordion_tabs" name="accordion_tabs" />
112
+
113
+ <action method="addAccordionItem"><name>themes</name><block>accordion_themes</block></action>
114
+ <action method="addAccordionItem"><name>tabs</name><block>accordion_tabs</block></action>
115
+ </block>
116
+ <block type="xmlconnect/adminhtml_mobile_edit_tab_design_preview" name="mobile_edit_tab_design_preview" as="app_preview" />
117
+ </block>
118
+ <block type="xmlconnect/adminhtml_mobile_edit_tab_content" name="mobile_edit_tab_content"/>
119
+ <block type="xmlconnect/adminhtml_mobile_edit_tab_payment" name="mobile_edit_tab_payment"/>
120
+ <block type="xmlconnect/adminhtml_mobile_edit_tab_flurryanalytics" name="mobile_edit_tab_flurryanalytics"/>
121
+ <block type="xmlconnect/adminhtml_mobile_edit_tab_submission_history" name="mobile_edit_tab_submission_history_grid"/>
122
+ <block type="xmlconnect/adminhtml_mobile_edit_tab_cache" name="mobile_edit_tab_cache"/>
123
+ <block type="xmlconnect/adminhtml_mobile_edit_tab_social" name="mobile_edit_tab_social" />
124
+ <block type="xmlconnect/adminhtml_mobile_edit_tab_notification" name="mobile_edit_tab_notification">
125
+ <block type="core/template" name="mobile_edit_tab_notification_helper" as="app_notification_helper" template="xmlconnect/mobile/notification_helper.phtml" />
126
+ </block>
127
+
128
+ <action method="addTab"><id>general_section</id><block>mobile_edit_tab_general</block></action>
129
+ <action method="addTab"><id>design_section</id><block>mobile_edit_tab_design</block></action>
130
+ <action method="addTab"><id>content_section</id><block>mobile_edit_tab_content</block></action>
131
+ <action method="addTab"><id>payment_methods</id><block>mobile_edit_tab_payment</block></action>
132
+ <action method="addTab"><id>flurryanalytics_section</id><block>mobile_edit_tab_flurryanalytics</block></action>
133
+ <action method="addTab"><id>history_grid</id><block>mobile_edit_tab_submission_history_grid</block></action>
134
+ <action method="addTab"><id>cache_section</id><block>mobile_edit_tab_cache</block></action>
135
+ <action method="addTab"><id>social_section</id><block>mobile_edit_tab_social</block></action>
136
+ <action method="addTab"><id>notification_section</id><block>mobile_edit_tab_notification</block></action>
137
+ <!--<action method="addTab"><id>offline_catalog</id><block>mobile_edit_tab_offlineCatalog</block></action>-->
138
+ </block>
139
+ </reference>
140
+ <reference name="content">
141
+ <block type="xmlconnect/adminhtml_mobile_edit" name="mobile_edit_content"/>
142
+ </reference>
143
+ <reference name="before_body_end">
144
+ <block type="core/template" name="image_action_block" template="xmlconnect/edit/tab/design/image_edit.phtml"/>
145
+ </reference>
146
+ <reference name="head">
147
+ <action method="addCss"><name>xmlconnect/dropdown.css</name></action>
148
+ <action method="addCss"><name>xmlconnect/styles.css</name></action>
149
+ </reference>
150
+ </adminhtml_mobile_edit>
151
+
152
+ <adminhtml_mobile_submissionhistorygrid>
153
+ <remove name="root"/>
154
+ <block type="xmlconnect/adminhtml_mobile_edit_tab_submission_history" name="submission_history_grid" output="toHtml"/>
155
+ </adminhtml_mobile_submissionhistorygrid>
156
+
157
+ <adminhtml_mobile_submission>
158
+ <reference name="left">
159
+ <block type="xmlconnect/adminhtml_mobile_submission_tabs" name="mobile_submission_tabs">
160
+ <block type="xmlconnect/adminhtml_mobile_submission_tab_container" name="mobile_submission_tab_container">
161
+ <block type="xmlconnect/adminhtml_mobile_submission_tab_container_submission" name="mobile_submission_tab_container_submission" as="edit_form"/>
162
+ <block type="xmlconnect/adminhtml_mobile_edit_tab_design_preview" name="mobile_edit_tab_design_preview" as="app_preview" />
163
+ </block>
164
+ <action method="addTab"><id>submission_section</id><block>mobile_submission_tab_container</block></action>
165
+ </block>
166
+ </reference>
167
+ <reference name="content">
168
+ <block type="xmlconnect/adminhtml_mobile_submission" name="mobile_submission_content"/>
169
+ </reference>
170
+ <reference name="head">
171
+ <action method="addCss"><name>xmlconnect/styles.css</name></action>
172
+ </reference>
173
+ </adminhtml_mobile_submission>
174
+
175
+ <adminhtml_mobile_grid>
176
+ <block type="xmlconnect/adminhtml_mobile_grid" name="mobile_grid" output="toHtml"/>
177
+ </adminhtml_mobile_grid>
178
+
179
+ <adminhtml_mobile_history_grid>
180
+ <block type="xmlconnect/adminhtml_history_grid" name="history_grid" output="toHtml"/>
181
+ </adminhtml_mobile_history_grid>
182
+
183
+ <adminhtml_mobile_template_preview>
184
+ <block type="core/template" name="root" output="toHtml" template="xmlconnect/template/preview.phtml">
185
+ <block type="xmlconnect/adminhtml_template_preview" name="content" as="content"></block>
186
+ </block>
187
+ </adminhtml_mobile_template_preview>
188
+
189
+ <adminhtml_mobile_previewhome>
190
+ <block type="core/text_list" name="root" output="toHtml">
191
+ <block type="xmlconnect/adminhtml_mobile_preview_content" name="preview_home_content">
192
+ <action method="setTemplate"><templateType>home</templateType></action>
193
+ <block type="xmlconnect/adminhtml_mobile_preview_tabitems" name="preview_tab_items" as="tab_items">
194
+ <action method="setActiveTab"><tab>home</tab></action>
195
+ </block>
196
+ </block>
197
+ <block type="core/template" template="xmlconnect/edit/tab/design/preview/banner_rotator.phtml"/>
198
+ </block>
199
+ </adminhtml_mobile_previewhome>
200
+
201
+ <adminhtml_mobile_previewhomehor>
202
+ <block type="core/text_list" name="root" output="toHtml">
203
+ <block type="xmlconnect/adminhtml_mobile_preview_content" name="preview_home_hor_content">
204
+ <action method="setTemplate"><templateType>home_hor</templateType></action>
205
+ <block type="xmlconnect/adminhtml_mobile_preview_tabitems" name="preview_tab_items" as="tab_items">
206
+ <action method="setActiveTab"><tab>home</tab></action>
207
+ </block>
208
+ </block>
209
+ <block type="core/template" template="xmlconnect/edit/tab/design/preview/banner_rotator.phtml"/>
210
+ </block>
211
+ </adminhtml_mobile_previewhomehor>
212
+
213
+ <adminhtml_mobile_previewcataloghor>
214
+ <block type="core/text_list" name="root" output="toHtml">
215
+ <block type="xmlconnect/adminhtml_mobile_preview_content" name="preview_catalog_hor_content">
216
+ <action method="setTemplate"><templateType>catalog_hor</templateType></action>
217
+ <block type="xmlconnect/adminhtml_mobile_preview_tabitems" name="preview_tab_items" as="tab_items">
218
+ <action method="setActiveTab"><tab>shop</tab></action>
219
+ </block>
220
+ </block>
221
+ </block>
222
+ </adminhtml_mobile_previewcataloghor>
223
+
224
+ <adminhtml_mobile_previewcatalog>
225
+ <block type="core/text_list" name="root" output="toHtml">
226
+ <block type="xmlconnect/adminhtml_mobile_preview_content" name="preview_catalog_content">
227
+ <action method="setTemplate"><templateType>catalog</templateType></action>
228
+ <block type="xmlconnect/adminhtml_mobile_preview_tabitems" name="preview_tab_items" as="tab_items">
229
+ <action method="setActiveTab"><tab>shop</tab></action>
230
+ </block>
231
+ </block>
232
+ </block>
233
+ </adminhtml_mobile_previewcatalog>
234
+
235
+ <adminhtml_mobile_previewproductinfo>
236
+ <block type="core/text_list" name="root" output="toHtml">
237
+ <block type="xmlconnect/adminhtml_mobile_preview_content" name="preview_productinfo_content">
238
+ <action method="setTemplate"><templateType>productinfo</templateType></action>
239
+ <block type="xmlconnect/adminhtml_mobile_preview_tabitems" name="preview_tab_items" as="tab_items">
240
+ <action method="setActiveTab"><tab>shop</tab></action>
241
+ </block>
242
+ </block>
243
+ </block>
244
+ </adminhtml_mobile_previewproductinfo>
245
+
246
+ <!-- Admin application actions -->
247
+ <adminhtml_admin_application_index>
248
+ <reference name="left">
249
+ <block type="xmlconnect/adminhtml_admin_application_edit_tabs" name="admin_app_settings_tabs"/>
250
+ </reference>
251
+ <reference name="content">
252
+ <block type="xmlconnect/adminhtml_admin_application_edit" name="admin_app_settings"/>
253
+ </reference>
254
+ </adminhtml_admin_application_index>
255
+
256
+ <adminhtml_connect_config_index>
257
+ <block type="xmlconnect/adminhtml_connect_config" name="admin.connect.config" output="toHtml"/>
258
+ </adminhtml_connect_config_index>
259
+
260
+ <adminhtml_connect_config_localization>
261
+ <block type="xmlconnect/localization" name="xmlconnect.localization" output="toHtml"/>
262
+ </adminhtml_connect_config_localization>
263
+
264
+ <adminhtml_connect_dashboard_index>
265
+ <block type="xmlconnect/adminhtml_connect_dashboard" name="admin.connect.dashboard" output="toHtml">
266
+ <block type="xmlconnect/adminhtml_connect_dashboard_storeSwitcher" name="admin.connect.store.switcher" as="store_switcher"/>
267
+ <block type="xmlconnect/adminhtml_connect_dashboard_salesInfo" name="dashboard.sales.info" as="sales_info"/>
268
+ <block type="xmlconnect/adminhtml_connect_dashboard_graphInfo" name="dashboard.graph.info" as="graph_info">
269
+ <block type="xmlconnect/adminhtml_connect_dashboard_graphOrderData" name="dashboard.graph.order.data" as="graph_order_data"/>
270
+ <block type="xmlconnect/adminhtml_connect_dashboard_graphAmountsData" name="dashboard.graph.amounts.data" as="graph_amounts_data"/>
271
+ <block type="xmlconnect/adminhtml_connect_dashboard_graphTotalsData" name="dashboard.graph.totals.data" as="graph_totals_data"/>
272
+ </block>
273
+ <block type="xmlconnect/adminhtml_connect_dashboard_lastOrders" name="dashboard.last.orders" as="last_orders"/>
274
+ <block type="xmlconnect/adminhtml_connect_dashboard_lastSearchTerms" name="dashboard.last.search.terms" as="last_search_terms"/>
275
+ <block type="xmlconnect/adminhtml_connect_dashboard_newCustomers" name="dashboard.new.customers" as="new_customers"/>
276
+ <block type="xmlconnect/adminhtml_connect_dashboard_topSearchTerms" name="dashboard.top.search.terms" as="top_search_terms"/>
277
+ <block type="xmlconnect/adminhtml_connect_dashboard_mostViewedProducts" name="dashboard.most.viewed.products" as="most_viewed"/>
278
+ <block type="xmlconnect/adminhtml_connect_dashboard_bestSellers" name="dashboard.best.sellers" as="best_sellers"/>
279
+ <block type="xmlconnect/adminhtml_connect_dashboard_customers" name="dashboard.customers" as="customers"/>
280
+ </block>
281
+ </adminhtml_connect_dashboard_index>
282
+ </layout>
app/design/adminhtml/default/default/locale/en_US/translate.csv ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "Credit Card Type","Credit Card Type"
2
+ "Add New User","Add New User"
3
+ "Items that you don","Items that you don"
4
+ "State/Province","State/Province"
5
+ "Magento Commerce - Administrative Panel","Magento Commerce - Administrative Panel"
6
+ "3 stars","3 stars"
7
+ "Credit Memo Date","Credit Memo Date"
8
+ "Double click on a group to rename it","Double click on a group to rename it"
9
+ "Rating Not Available","Rating Not Available"
10
+ "Gift Certificate","Gift Certificate"
11
+ "Assigned Answers","Assigned Answers"
12
+ "Fax","Fax"
13
+ "Magento Admin","Magento Admin"
14
+ "Newsletter Message Preview","Newsletter Message Preview"
15
+ "4 stars","4 stars"
16
+ "Company","Company"
17
+ "Invoice Date","Invoice Date"
18
+ "Qty Returned","Qty Returned"
19
+ "Add New Customer Group","Add New Customer Group"
20
+ "Visitors","Visitors"
21
+ "Shipping Method","Shipping Method"
22
+ "Subtotal","Subtotal"
23
+ "5 stars","5 stars"
24
+ "Choose Store","Choose Store"
25
+ "Import Tax Rates","Import Tax Rates"
26
+ "Roles","Roles"
27
+ "If you do not specify an option value for a store then the default value will be used.","If you do not specify an option value for a store then the default value will be used."
28
+ "Shipping","Shipping"
29
+ "Select from existing customer addresses:","Select from existing customer addresses:"
30
+ "Products","Products"
31
+ "Edit User ","Edit User "
32
+ "Item Status","Item Status"
33
+ "Set as default billing address","Set as default billing address"
34
+ "Position","Position"
35
+ "Items Ordered","Items Ordered"
36
+ "Fixed","Fixed"
37
+ "%s","%s"
38
+ "Same as Billing Address","Same as Billing Address"
39
+ "Product In Stores","Product In Stores"
40
+ "Working...","Working..."
41
+ "Apply coupon code","Apply coupon code"
42
+ "per page","per page"
43
+ "Tax","Tax"
44
+ "Telephone","Telephone"
45
+ "Wishlist","Wishlist"
46
+ "Magento","Magento"
47
+ "Expiration Date","Expiration Date"
48
+ "Add New Class","Add New Class"
49
+ "Super product attributes configuration","Super product attributes configuration"
50
+ "Previus page","Previus page"
51
+ "Something went wrong...","Something went wrong..."
52
+ "Lifetime Sales","Lifetime Sales"
53
+ "SKU","SKU"
54
+ "Log Out","Log Out"
55
+ "Failed","Failed"
56
+ "Billing Address","Billing Address"
57
+ "Log into Magento Admin Page","Log into Magento Admin Page"
58
+ "Invoice Status","Invoice Status"
59
+ "CC Type","CC Type"
60
+ "Percentage","Percentage"
61
+ "Are you sure?","Are you sure?"
62
+ "Email","Email"
63
+ "Customer Group:","Customer Group:"
64
+ "Option","Option"
65
+ "Primary Billing Address","Primary Billing Address"
66
+ "Create Backup","Create Backup"
67
+ "Manage Options (values for your attribute)","Manage Options (values for your attribute)"
68
+ "Total Due","Total Due"
69
+ "Copyright 2007","Copyright 2007"
70
+ "Newsletter Subscribers","Newsletter Subscribers"
71
+ "CC Number","CC Number"
72
+ "Add New Tax Rate","Add New Tax Rate"
73
+ "Product Name","Product Name"
74
+ "Country","Country"
75
+ "Purchase order number","Purchase order number"
76
+ "Date and Time","Date and Time"
77
+ "Categories","Categories"
78
+ "Qty Cancelled","Qty Cancelled"
79
+ "Card Verification Number","Card Verification Number"
80
+ "Order Date","Order Date"
81
+ "This tab contains invalid data. Please correct before saving.","This tab contains invalid data. Please correct before saving."
82
+ "Customer Balance","Customer Balance"
83
+ "Update Qty","Update Qty"
84
+ "Customer Groups","Customer Groups"
85
+ "Export to","Export to"
86
+ "configuration","configuration"
87
+ "Sorry, no quotes are available for this order at this time.","Sorry, no quotes are available for this order at this time."
88
+ "Options","Options"
89
+ "Attribute Name","Attribute Name"
90
+ "Total <strong>%d</strong> records found","Total <strong>%d</strong> records found"
91
+ "Comment","Comment"
92
+ "Set as default shipping address","Set as default shipping address"
93
+ "Last Name","Last Name"
94
+ "of","of"
95
+ "Newsletter Problem Reports","Newsletter Problem Reports"
96
+ "Sales Statistics","Sales Statistics"
97
+ "Qty To Return","Qty To Return"
98
+ "New Customer Address","New Customer Address"
99
+ "Roles Resources","Roles Resources"
100
+ "Zip/Post Code","Zip/Post Code"
101
+ "Order Status","Order Status"
102
+ "Store","Store"
103
+ "Product Categories","Product Categories"
104
+ "Online Customers","Online Customers"
105
+ "Next page","Next page"
106
+ "Items Shipped","Items Shipped"
107
+ "Unassigned Attributes","Unassigned Attributes"
108
+ "Not Charged Yet","Not Charged Yet"
109
+ "This group contains system attributes.\nPlease, move system attributes to another group and try again.","This group contains system attributes.\nPlease, move system attributes to another group and try again."
110
+ "copy data from","copy data from"
111
+ "Add","Add"
112
+ "Total Payed","Total Payed"
113
+ "Shopping Cart","Shopping Cart"
114
+ "Order History","Order History"
115
+ "Empty","Empty"
116
+ "Unable to complete request. Please, try again later.","Unable to complete request. Please, try again later."
117
+ "Customers","Customers"
118
+ "Customer does not have any addresses","Customer does not have any addresses"
119
+ "Add New Role","Add New Role"
120
+ "Street Address","Street Address"
121
+ "Are You Sure?","Are You Sure?"
122
+ "Shipping Address","Shipping Address"
123
+ "Paid","Paid"
124
+ "Page","Page"
125
+ "Discount","Discount"
126
+ "Set root category for this store in","Set root category for this store in"
127
+ "Groups","Groups"
128
+ "View","View"
129
+ "Qty Ordered","Qty Ordered"
130
+ "Global Record Search","Global Record Search"
131
+ "Card Number","Card Number"
132
+ "PO Number","PO Number"
133
+ "Grand Total","Grand Total"
134
+ "Please select one or more attributes.","Please select one or more attributes."
135
+ "Dashboard","Dashboard"
136
+ "Are you sure you want to do this?","Are you sure you want to do this?"
137
+ "Please add one or more options","Please add one or more options"
138
+ "Role Users","Role Users"
139
+ "Add New Tax Rule","Add New Tax Rule"
140
+ "Subscribe to newsletter","Subscribe to newsletter"
141
+ "Dashboard Control","Dashboard Control"
142
+ "Default Shipping","Default Shipping"
143
+ "Qty","Qty"
144
+ "Add to Queue","Add to Queue"
145
+ "Average Sale","Average Sale"
146
+ "Cancel","Cancel"
147
+ "All stores","All stores"
148
+ "Personal Information","Personal Information"
149
+ "City","City"
150
+ "Export Tax Rates","Export Tax Rates"
151
+ "1 star","1 star"
152
+ "Current Configuration Scope","Current Configuration Scope"
153
+ "Add New Template","Add New Template"
154
+ "Move to:","Move to:"
155
+ "First Name","First Name"
156
+ "Change Order Status","Change Order Status"
157
+ "Are you sure you want to delete this address?","Are you sure you want to delete this address?"
158
+ "Are you sure you want to do it?","Are you sure you want to do it?"
159
+ "Add to Order","Add to Order"
160
+ "Product ID","Product ID"
161
+ "Payment Method","Payment Method"
162
+ "What is this?","What is this?"
163
+ "Users","Users"
164
+ "Customer Addresses","Customer Addresses"
165
+ "Qty Backordered","Qty Backordered"
166
+ "You can not remove system attribute from this set.","You can not remove system attribute from this set."
167
+ "Price","Price"
168
+ "Who","Who"
169
+ "Rating Not Alvailable","Rating Not Alvailable"
170
+ "Order Comment","Order Comment"
171
+ "Edit Role","Edit Role"
172
+ "Tax Rates Import / Export","Tax Rates Import / Export"
173
+ "Magento Logo","Magento Logo"
174
+ "A name is required","A name is required"
175
+ "Assigned options","Assigned options"
176
+ "Please Enter New Group Name","Please Enter New Group Name"
177
+ "Name","Name"
178
+ "Email Preview","Email Preview"
179
+ "Newsletter Queue","Newsletter Queue"
180
+ "Remove","Remove"
181
+ "Last Log In:","Last Log In:"
182
+ "Logged in as <strong>%s</strong>","Logged in as <strong>%s</strong>"
183
+ "Name on Card","Name on Card"
184
+ "All Stores","All Stores"
185
+ "Send comment to customer","Send comment to customer"
186
+ "Account Created on:","Account Created on:"
187
+ "Backups Control","Backups Control"
188
+ "Add New Address","Add New Address"
189
+ "Account Created in:","Account Created in:"
190
+ "Default Billing","Default Billing"
191
+ "Manage Titles (Size, Color, etc.)","Manage Titles (Size, Color, etc.)"
192
+ "Please confirm site switching. All data not saved will be lost.","Please confirm site switching. All data not saved will be lost."
193
+ "Please select from each ratings above","Please select from each ratings above"
194
+ "Qty Shipped","Qty Shipped"
195
+ "Are you sure you want to cancel add this address?","Are you sure you want to cancel add this address?"
196
+ "The information in this tab has been changed.","The information in this tab has been changed."
197
+ "2 stars","2 stars"
198
+ "Apply","Apply"
199
+ "Total","Total"
200
+ "User roles","User roles"
201
+ "Wishlist Report","Wishlist Report"
app/design/adminhtml/default/default/template/access_denied.phtml ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * @see Mage_Adminhtml_Block_Denied
30
+ */
31
+ ?>
32
+ <h1 class="page-heading"><?php echo $this->helper('adminhtml')->__('Access denied') ?></h1>
33
+ <?php if (!$this->hasAvailaleResources()): ?>
34
+ <p>
35
+ <?php echo $this->helper('adminhtml')->__('Please try to logout and sign in again.') ?><br/>
36
+ <?php echo $this->helper('adminhtml')->__('If this message persists, please contact the store owner.') ?>
37
+ </p>
38
+ <?php else: ?>
39
+ <p><?php echo $this->helper('adminhtml')->__('Access denied.') ?></p>
40
+ <?php endif?>
app/design/adminhtml/default/default/template/api/role_users_grid_js.phtml ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type="text/javascript">
28
+ <!--
29
+ <?php $myBlock = $this->getLayout()->getBlock('roleUsersGrid'); ?>
30
+ <?php if( is_object($myBlock) && $myBlock->getJsObjectName() ): ?>
31
+ var checkBoxes = $H({});
32
+ var warning = false;
33
+ var inRoleUsers = $H(<?php echo $myBlock->_getUsers(true) ?>);
34
+ if (inRoleUsers.size() > 0) warning = true;
35
+ $('in_role_user').value = inRoleUsers.toQueryString();
36
+
37
+ function registerUserRole(grid, element, checked){
38
+ if(checked){
39
+ inRoleUsers.set(element.value, 0);
40
+ } else {
41
+ inRoleUsers.unset(element.value);
42
+ }
43
+ $('in_role_user').value = inRoleUsers.toQueryString();
44
+ grid.reloadParams = {'in_role_user[]':inRoleUsers.keys()};
45
+ }
46
+
47
+ function roleUsersRowClick(grid, event){
48
+ var trElement = Event.findElement(event, 'tr');
49
+ var isInput = Event.element(event).tagName == 'INPUT';
50
+ if(trElement){
51
+ var checkbox = Element.getElementsBySelector(trElement, 'input');
52
+ if(checkbox[0]){
53
+ var checked = isInput ? checkbox[0].checked : !checkbox[0].checked;
54
+ if (warning && checkBoxes.size() > 0) {
55
+ if ( !confirm("<?php echo Mage::helper('core')->jsQuoteEscape($this->__('Warning!\r\nThis action will remove this user from already assigned role\r\nAre you sure?')) ?>") ) {
56
+ checkbox[0].checked = false;
57
+ checkBoxes.each(function(elem) {
58
+ if (elem.value.status == 1) {
59
+ elem.value.object.checked = true;
60
+ }
61
+ });
62
+ return false;
63
+ }
64
+ warning = false;
65
+ }
66
+ <?php echo $myBlock->getJsObjectName() ?>.setCheckboxChecked(checkbox[0], checked);
67
+ }
68
+ }
69
+ }
70
+
71
+ function roleUsersRowInit(grid, row){
72
+ var checkbox = $(row).getElementsByClassName('checkbox')[0];
73
+ if (checkbox) {
74
+ checkBoxes.set(checkbox.value, {'status' : ((checkbox.checked) ? 1 : 0), 'object' : checkbox});
75
+ }
76
+ }
77
+
78
+ function myhandler(obj)
79
+ {
80
+ if (checkBoxes.size() > 0) {
81
+ if ( !confirm("<?php echo Mage::helper('core')->jsQuoteEscape($this->__('Warning!\r\nThis action will remove those users from already assigned roles\r\nAre you sure?')) ?>") ) {
82
+ obj.checked = false;
83
+ checkBoxes.each(function(elem) {
84
+ if (elem.value.status == 1) {
85
+ elem.value.object.checked = true;
86
+ }
87
+ });
88
+ return false;
89
+ }
90
+ warning = false;
91
+ }
92
+ checkBoxes.each(function(elem) {
93
+ <?php echo $myBlock->getJsObjectName() ?>.setCheckboxChecked(elem.value.object, obj.checked);
94
+ });
95
+ }
96
+
97
+ <?php echo $myBlock->getJsObjectName() ?>.rowClickCallback = roleUsersRowClick;
98
+ <?php echo $myBlock->getJsObjectName() ?>.initRowCallback = roleUsersRowInit;
99
+ <?php echo $myBlock->getJsObjectName() ?>.checkboxCheckCallback = registerUserRole;
100
+ <?php echo $myBlock->getJsObjectName() ?>.checkCheckboxes = myhandler;
101
+ <?php echo $myBlock->getJsObjectName() ?>.rows.each(function(row){roleUsersRowInit(<?php echo $myBlock->getJsObjectName() ?>, row)});
102
+ $('in_role_user_old').value = $('in_role_user').value;
103
+ <?php endif; ?>
104
+ //-->
105
+ </script>
app/design/adminhtml/default/default/template/api/roleinfo.phtml ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ /** @var $this Mage_Adminhtml_Block_Api_Tab_Roleinfo */
27
+
28
+ ?>
29
+ <div class="content-header">
30
+ <table cellspacing="0">
31
+ <tr>
32
+ <td style="width:50%;"><h3 class="icon-head head-permissions-role"><?php echo ($this->getRoleId() > 0 ) ? ($this->__('Edit Role') . " '{$this->escapeHtml($this->getRoleInfo()->getRoleName())}'") : $this->__('Add New Role') ?></h3></td>
33
+ <td class="form-buttons">
34
+ <?php echo $this->getBackButtonHtml() ?>
35
+ <?php echo $this->getResetButtonHtml() ?>
36
+ <?php echo $this->getDeleteButtonHtml() ?>
37
+ <?php echo $this->getSaveButtonHtml() ?>
38
+ </td>
39
+ </tr>
40
+ </table>
41
+ </div>
42
+ <form action="<?php echo $this->getUrl('*/*/saverole') ?>" method="post" id="role_edit_form">
43
+ <?php echo $this->getBlockHtml('formkey')?>
44
+ </form>
45
+ <script type="text/javascript">
46
+ var roleForm = new varienForm('role_edit_form');
47
+ </script>
app/design/adminhtml/default/default/template/api/roles.phtml ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="content-header">
28
+ <table cellspacing="0">
29
+ <tr>
30
+ <td style="width:50%;"><h3 class="icon-head head-permissions-role"><?php echo $this->__('Roles') ?></h3></td>
31
+ <td class="form-buttons">
32
+ <button class="scalable add" onclick="window.location='<?php echo $this->getAddNewUrl() ?>'"><span><span><span><?php echo $this->__('Add New Role') ?></span></span></span></button>
33
+ </td>
34
+ </tr>
35
+ </table>
36
+ </div>
37
+ <?php echo $this->getGridHtml() ?>
app/design/adminhtml/default/default/template/api/rolesedit.phtml ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="entry-edit">
28
+ <div class="entry-edit-head">
29
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__('Roles Resources') ?></h4>
30
+ </div>
31
+ <input type="hidden" name="resource" id="role_resources" value="">
32
+ <fieldset id="role_resources">
33
+
34
+ <span class="field-row">
35
+ <label for="all"><?php echo $this->__('Resource Access') ?></label>
36
+ <select id="all" name="all" onchange="$('resources_container').toggle()" class="select">
37
+ <option value="0" <?php echo ($this->getEverythingAllowed()?'':'selected="selected"'); ?>><?php echo $this->__('Custom') ?></option>
38
+ <option value="1" <?php echo ($this->getEverythingAllowed()?'selected="selected"':''); ?>><?php echo $this->__('All') ?></option>
39
+ </select>
40
+ </span>
41
+
42
+ <span class="field-row" id="resources_container">
43
+ <label><?php echo $this->__('Resources') ?></label>
44
+ <div class="f-left">
45
+ <div class="tree x-tree" id="resource-tree"></div>
46
+ </div>
47
+ </span>
48
+
49
+ </fieldset>
50
+ </div>
51
+ <!-- Draw Resources Tree -->
52
+ <script type="text/javascript">
53
+ <?php if($this->getEverythingAllowed()): ?>
54
+ $('resources_container').hide();
55
+ <?php endif; ?>
56
+ Ext.EventManager.onDocumentReady(function() {
57
+ var tree = new Ext.tree.TreePanel('resource-tree', {
58
+ animate:false,
59
+ loader: false,
60
+ enableDD:false,
61
+ containerScroll: true,
62
+ rootUIProvider: Ext.tree.CheckboxNodeUI,
63
+ selModel: new Ext.tree.CheckNodeMultiSelectionModel(),
64
+ rootVisible: false
65
+ });
66
+
67
+ tree.on('check', checkHandler, tree);
68
+
69
+ // set the root node
70
+ var root = new Ext.tree.TreeNode({
71
+ text: 'root',
72
+ draggable:false,
73
+ checked:'false',
74
+ id:'__root__',
75
+ uiProvider: Ext.tree.CheckboxNodeUI
76
+ });
77
+
78
+ tree.setRootNode(root);
79
+ bildResourcesTree(root, <?php echo $this->getResTreeJson() ?>);
80
+ tree.addListener('click', resourceClick.createDelegate(this));
81
+
82
+ // render the tree
83
+ tree.render();
84
+ // root.expand();
85
+ tree.expandAll();
86
+
87
+ $('role_resources').value = tree.getChecked().join(',');
88
+ });
89
+
90
+ function resourceClick(node, e){
91
+ node.getUI().check(!node.getUI().checked());
92
+ varienElementMethods.setHasChanges(Event.element(e), e);
93
+ };
94
+
95
+ function bildResourcesTree(parent, config){
96
+ if (!config) return null;
97
+
98
+ if (parent && config && config.length){
99
+ for (var i = 0; i < config.length; i++){
100
+ config[i].uiProvider = Ext.tree.CheckboxNodeUI;
101
+ var node = new Ext.tree.TreeNode(config[i]);
102
+ parent.appendChild(node);
103
+ if(config[i].children){
104
+ bildResourcesTree(node, config[i].children);
105
+ }
106
+ }
107
+ }
108
+ }
109
+
110
+ function checkHandler(node)
111
+ {
112
+ if ( node.attributes.checked && node.parentNode ) {
113
+ var n = node.parentNode;
114
+ this.removeListener('check', checkHandler);
115
+ do {
116
+ if (!n || n.attributes.id == 'admin' || n.attributes.id == '__root__') {
117
+ break;
118
+ } else {
119
+ n.ui.check(true);
120
+ }
121
+ } while (n = n.parentNode );
122
+ this.on('check', checkHandler);
123
+ }
124
+ if ( !node.isLeaf() && node.hasChildNodes() ) {
125
+ this.removeListener('check', checkHandler);
126
+ processChildren(node, node.attributes.checked);
127
+ this.on('check', checkHandler);
128
+ }
129
+ $('role_resources').value = this.getChecked().join(',');
130
+ }
131
+
132
+ function processChildren(node, state)
133
+ {
134
+ if ( !node.hasChildNodes() ) return false;
135
+ for(var i = 0; i < node.childNodes.length; i++ ) {
136
+ node.childNodes[i].ui.check(state);
137
+ if ( node.childNodes[i].hasChildNodes() ) {
138
+ processChildren(node.childNodes[i], state);
139
+ }
140
+ }
141
+ return true;
142
+ }
143
+ </script>
app/design/adminhtml/default/default/template/api/rolesusers.phtml ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__('Role Users') ?></h4>
28
+ <?php echo $this->_getGridHtml() ?>
app/design/adminhtml/default/default/template/api/user_roles_grid_js.phtml ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type="text/javascript">
28
+ <!--
29
+ <?php $myBlock = $this->getLayout()->getBlock('user.roles.grid'); ?>
30
+ <?php if( is_object($myBlock) && $myBlock->getJsObjectName()): ?>
31
+ var radioBoxes = $H({});
32
+ var warning = false;
33
+ var userRoles = $H(<?php echo $myBlock->_getSelectedRoles(true) ?>);
34
+ if (userRoles.size() > 0) warning = true;
35
+ $('user_user_roles').value = userRoles.toQueryString();
36
+
37
+ function registerUserRole(grid, element, checked){
38
+ if(checked){
39
+ userRoles.each(function(o){userRoles.remove(o[0]);});
40
+ userRoles[element.value] = 0;
41
+ } else {
42
+ userRoles.remove(element.value);
43
+ }
44
+ $('user_user_roles').value = userRoles.toQueryString();
45
+ grid.reloadParams = {'user_roles[]':userRoles.keys()};
46
+ }
47
+
48
+ function roleRowClick(grid, event){
49
+ var trElement = Event.findElement(event, 'tr');
50
+ var isInput = Event.element(event).tagName == 'INPUT';
51
+ if(trElement){
52
+ var checkbox = Element.getElementsBySelector(trElement, 'input');
53
+ if(checkbox[0] && !checkbox[0].checked){
54
+ var checked = isInput ? checkbox[0].checked : !checkbox[0].checked;
55
+ if (checked && warning && radioBoxes.size() > 0) {
56
+ if ( !confirm("<?php echo Mage::helper('core')->jsQuoteEscape($this->__('Warning!\r\nThis action will remove this user from already assigned role\r\nAre you sure?')) ?>") ) {
57
+ checkbox[0].checked = false;
58
+ for(i in radioBoxes) {
59
+ if( radioBoxes[i].status == 1) {
60
+ radioBoxes[i].object.checked = true;
61
+ }
62
+ }
63
+ return false;
64
+ }
65
+ warning = false;
66
+ }
67
+ <?php echo $myBlock->getJsObjectName() ?>.setCheckboxChecked(checkbox[0], checked);
68
+ }
69
+ }
70
+ }
71
+
72
+ function rolesRowInit(grid, row){
73
+ var checkbox = $(row).getElementsByClassName('radio')[0];
74
+ if (checkbox) {
75
+ radioBoxes[checkbox.value] = {'status' : ((checkbox.checked) ? 1 : 0), 'object' : checkbox};
76
+ }
77
+ }
78
+
79
+ <?php echo $myBlock->getJsObjectName() ?>.rowClickCallback = roleRowClick;
80
+ <?php echo $myBlock->getJsObjectName() ?>.initRowCallback = rolesRowInit;
81
+ <?php echo $myBlock->getJsObjectName() ?>.checkboxCheckCallback = registerUserRole;
82
+ <?php echo $myBlock->getJsObjectName() ?>.rows.each(function(row){rolesRowInit(<?php echo $myBlock->getJsObjectName() ?>, row)});
83
+ <?php endif; ?>
84
+ //-->
85
+ </script>
app/design/adminhtml/default/default/template/api/userinfo.phtml ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="content-header">
28
+ <table cellspacing="0">
29
+ <tr>
30
+ <td style="width:50%;">
31
+ <h3>
32
+ <?php if($this->getUser()->getUserId()): ?>
33
+ <?php $_userName = $this->getUser()->getFirstname() . ' ' . $this->getUser()->getLastname() ?>
34
+ <?php echo $this->__("Edit User '%s'", $_userName) ?>
35
+ <?php else: ?>
36
+ <?php echo $this->__('Add New User') ?>
37
+ <?php endif; ?>
38
+ </h3>
39
+ </td>
40
+ <td class="form-buttons">
41
+ <?php echo $this->getBackButtonHtml() ?>
42
+ <?php echo $this->getResetButtonHtml() ?>
43
+ <?php echo $this->getDeleteButtonHtml() ?>
44
+ <?php echo $this->getSaveButtonHtml() ?>
45
+ </table>
46
+ </div>
47
+ <form action="<?php echo $this->getUrl('*/*/saveuser') ?>" method="post" id="user_edit_form">
48
+ <?php echo $this->getBlockHtml('formkey')?>
49
+ </form>
50
+ <script type="text/javascript">
51
+ var userForm = new varienForm('user_edit_form');
52
+ </script>
app/design/adminhtml/default/default/template/api/usernroles.phtml ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div id="roles">
28
+ <li class="add"><a href="<?php echo $this->getUrl('*/*/edituser') ?>"><?php echo $this->__('Add New User') ?></a></li>
29
+ <li class="add"><a href="<?php echo $this->getUrl('*/*/editroles') ?>"><?php echo $this->__('Add New Role') ?></a></li>
30
+ </div>
31
+ <div class="clear"></div>
app/design/adminhtml/default/default/template/api/userroles.phtml ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="entry-edit">
28
+ <div class="entry-edit-head">
29
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__('User Roles') ?></h4>
30
+ </div>
31
+ <fieldset id="user_roles">
32
+ <?php foreach ($roles as $role): ?>
33
+ <?php
34
+ $checked = false;
35
+ foreach( $user_roles->getItems() as $user_role )
36
+ {
37
+ if( $user_role->getParentId() == $role->getRoleId() ) {
38
+ $checked = true;
39
+ }
40
+ }
41
+ ?>
42
+ <input type="checkbox" value="<?php echo $role->getRoleId(); ?>" <?php echo ($checked ? "checked" : ""); ?> name="roles[]" id="_<?php echo $role->getRoleId(); ?>" /> <label for="_<?php echo $role->getRoleId(); ?>" class="normal"><?php echo $role->getRoleName(); ?></label><br />
43
+ <?php endforeach; ?>
44
+ </fieldset>
45
+ </div>
app/design/adminhtml/default/default/template/api/users.phtml ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="content-header">
28
+ <table cellspacing="0">
29
+ <tr>
30
+ <td style="width:50%;"><h3><?php echo $this->__('Users') ?></h3></td>
31
+ <td class="a-right">
32
+ <button class="scalable add" onclick="window.location='<?php echo $this->getAddNewUrl() ?>'"><span><span><span><?php echo $this->__('Add New User') ?></span></span></span></button>
33
+ </td>
34
+ </tr>
35
+ </table>
36
+ </div>
37
+ <div>
38
+ <?php echo $this->getGridHtml() ?>
39
+ </div>
40
+
app/design/adminhtml/default/default/template/api2/attribute/buttons.phtml ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ /** @var $this Mage_Api2_Block_Adminhtml_Attribute_Buttons */
27
+
28
+ ?>
29
+ <div class="content-header">
30
+ <table cellspacing="0">
31
+ <tr>
32
+ <td style="width:50%;">
33
+ <h3 class="icon-head head-permissions-role">
34
+ <?php echo $this->getCaption() ?>
35
+ </h3>
36
+ </td>
37
+ <td class="form-buttons">
38
+ <?php echo $this->getBackButtonHtml() ?>
39
+ <?php echo $this->getResetButtonHtml() ?>
40
+ <?php echo $this->getDeleteButtonHtml() ?>
41
+ <?php echo $this->getSaveButtonHtml() ?>
42
+ </td>
43
+ </tr>
44
+ </table>
45
+ </div>
46
+ <form action="<?php echo $this->getUrl('*/*/save') ?>" method="post" id="role_edit_form">
47
+ <?php echo $this->getBlockHtml('formkey')?>
48
+ </form>
49
+ <script type="text/javascript">
50
+ //<![CDATA[
51
+ var roleForm = new varienForm('role_edit_form');
52
+ //]]>
53
+ </script>
app/design/adminhtml/default/default/template/api2/attribute/resource.phtml ADDED
@@ -0,0 +1,158 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <?php
29
+ /**
30
+ * @see Mage_Api2_Block_Adminhtml_Attribute_Tab_Resource
31
+ */
32
+ ?>
33
+
34
+ <?php echo $this->getChildHtml(); ?>
35
+
36
+ <div class="entry-edit">
37
+ <div class="entry-edit-head">
38
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__('User Type Resources') ?></h4>
39
+ </div>
40
+ <input type="hidden" name="resource" id="role_resources" value="" />
41
+ <fieldset id="role_resources">
42
+
43
+ <span class="field-row">
44
+ <label for="all"><?php echo $this->__('Resource Access') ?></label>
45
+ <select id="all" name="all" onchange="$('resources_container').toggle()" class="select">
46
+ <option value="0" <?php echo ($this->getEverythingAllowed()?'':'selected'); ?>><?php echo $this->__('Custom') ?></option>
47
+ <option value="1" <?php echo ($this->getEverythingAllowed()?'selected':''); ?>><?php echo $this->__('All') ?></option>
48
+ </select>
49
+ </span>
50
+
51
+ <span class="field-row" id="resources_container">
52
+ <label><?php echo $this->__('Resources') ?></label>
53
+ <div class="f-left">
54
+ <div class="tree x-tree" id="resource-tree"></div>
55
+ </div>
56
+ <?php if ($this->hasEntityOnlyAttributes()): ?>
57
+ <div class="clear"></div>
58
+ <span>* This attribute data will be returned for a single resource only.</span>
59
+ <?php endif; ?>
60
+ </span>
61
+
62
+ </fieldset>
63
+ </div>
64
+ <!-- Draw Resources Tree -->
65
+ <script type="text/javascript">
66
+ //<![CDATA[
67
+ <?php if($this->getEverythingAllowed()): ?>
68
+ $('resources_container').hide();
69
+ <?php endif; ?>
70
+ Ext.EventManager.onDocumentReady(function() {
71
+ var tree = new Ext.tree.TreePanel('resource-tree', {
72
+ animate:false,
73
+ loader: false,
74
+ enableDD:false,
75
+ containerScroll: true,
76
+ rootUIProvider: Ext.tree.CheckboxNodeUI,
77
+ selModel: new Ext.tree.CheckNodeMultiSelectionModel(),
78
+ rootVisible: false
79
+ });
80
+
81
+ tree.on('check', checkHandler, tree);
82
+
83
+ // set the root node
84
+ var root = new Ext.tree.TreeNode({
85
+ text: 'root',
86
+ draggable:false,
87
+ checked:'false',
88
+ id:'__root__',
89
+ uiProvider: Ext.tree.CheckboxNodeUI
90
+ });
91
+
92
+ tree.setRootNode(root);
93
+ bildResourcesTree(root, <?php echo $this->getResTreeJson() ?>);
94
+ tree.addListener('click', resourceClick.createDelegate(this));
95
+
96
+ // render the tree
97
+ tree.render();
98
+ // root.expand();
99
+ tree.expandAll();
100
+
101
+ $('role_resources').value = tree.getChecked().join(',');
102
+ });
103
+
104
+ function resourceClick(node, e){
105
+ node.getUI().check(!node.getUI().checked());
106
+ varienElementMethods.setHasChanges(Event.element(e), e);
107
+ };
108
+
109
+ function bildResourcesTree(parent, config){
110
+ if (!config) return null;
111
+
112
+ if (parent && config && config.length){
113
+ for (var i = 0; i < config.length; i++){
114
+ config[i].uiProvider = Ext.tree.CheckboxNodeUI;
115
+ var node = new Ext.tree.TreeNode(config[i]);
116
+ parent.appendChild(node);
117
+ if(config[i].children){
118
+ bildResourcesTree(node, config[i].children);
119
+ }
120
+ }
121
+ }
122
+ }
123
+
124
+ function checkHandler(node)
125
+ {
126
+ if ( node.attributes.checked && node.parentNode ) {
127
+ var n = node.parentNode;
128
+ this.removeListener('check', checkHandler);
129
+ do {
130
+ if (!n || n.attributes.id == 'admin' || n.attributes.id == '__root__') {
131
+ break;
132
+ } else {
133
+ n.ui.check(true);
134
+ }
135
+ } while (n = n.parentNode );
136
+ this.on('check', checkHandler);
137
+ }
138
+ if ( !node.isLeaf() && node.hasChildNodes() ) {
139
+ this.removeListener('check', checkHandler);
140
+ processChildren(node, node.attributes.checked);
141
+ this.on('check', checkHandler);
142
+ }
143
+ $('role_resources').value = this.getChecked().join(',');
144
+ }
145
+
146
+ function processChildren(node, state)
147
+ {
148
+ if ( !node.hasChildNodes() ) return false;
149
+ for(var i = 0; i < node.childNodes.length; i++ ) {
150
+ node.childNodes[i].ui.check(state);
151
+ if ( node.childNodes[i].hasChildNodes() ) {
152
+ processChildren(node.childNodes[i], state);
153
+ }
154
+ }
155
+ return true;
156
+ }
157
+ //]]>
158
+ </script>
app/design/adminhtml/default/default/template/api2/permissions/user/edit/tab/roles/js.phtml ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <script type="text/javascript">
29
+ //<![CDATA[
30
+ var activeRestRole = getActiveRestRole();
31
+
32
+ /* Retrieve current active rest role */
33
+ function getActiveRestRole() {
34
+ var role;
35
+ api2_roles_sectionJsObject.rows.each(function(row) {
36
+ var radiobox = $(row).getElementsByClassName('radio')[0];
37
+ if ('undefined' != typeof radiobox && radiobox.checked) {
38
+ role = radiobox;
39
+ }
40
+ });
41
+ return role;
42
+ }
43
+
44
+ /* Callback function for rest role row click */
45
+ function restRolesRowClick(grid, event) {
46
+ var newRestRole = getActiveRestRole();
47
+ if (newRestRole.value !== activeRestRole.value) {
48
+ if (!confirm("<?php echo Mage::helper('core')->jsQuoteEscape($this->__('Warning!\r\nThis action will remove this user from already assigned role\r\nAre you sure?')) ?>")) {
49
+ newRestRole.checked = !newRestRole.checked;
50
+ activeRestRole.checked = true;
51
+ } else {
52
+ activeRestRole = newRestRole;
53
+ }
54
+ }
55
+ }
56
+
57
+ api2_roles_sectionJsObject.rowClickCallback = restRolesRowClick;
58
+ //]]>
59
+ </script>
app/design/adminhtml/default/default/template/api2/role/buttons.phtml ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php /** @var $this Mage_Adminhtml_Block_Api_Tab_Roleinfo */ ?>
28
+ <div class="content-header">
29
+ <table cellspacing="0">
30
+ <tr>
31
+ <td style="width:50%;">
32
+ <h3 class="icon-head head-permissions-role">
33
+ <?php echo $this->getCaption() ?>
34
+ </h3>
35
+ </td>
36
+ <td class="form-buttons">
37
+ <?php echo $this->getBackButtonHtml() ?>
38
+ <?php echo $this->getResetButtonHtml() ?>
39
+ <?php echo $this->getDeleteButtonHtml() ?>
40
+ <?php echo $this->getSaveButtonHtml() ?>
41
+ </td>
42
+ </tr>
43
+ </table>
44
+ </div>
45
+ <form action="<?php echo $this->getUrl('*/*/save') ?>" method="post" id="role_edit_form">
46
+ <?php echo $this->getBlockHtml('formkey')?>
47
+ </form>
48
+ <script type="text/javascript">
49
+ //<![CDATA[
50
+ var roleForm = new varienForm('role_edit_form');
51
+ //]]>
52
+ </script>
app/design/adminhtml/default/default/template/api2/role/users_grid_js.phtml ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+
27
+ ?>
28
+ <script type="text/javascript">
29
+ //<![CDATA[
30
+ <?php
31
+ /** @var $myBlock Mage_Api2_Block_Adminhtml_Roles_Tab_Users */
32
+ $myBlock = $this->getLayout()->getBlock('adminhtml.role.edit.tab.users');
33
+ $name = $myBlock->getJsObjectName();
34
+ ?>
35
+ <?php if (is_object($myBlock) && $name && !$myBlock->isHidden()): ?>
36
+ var checkBoxes = $H(<?php echo $myBlock->getUsers(true) ?>);
37
+ var warning = false;
38
+ if (checkBoxes.size() > 0) {
39
+ warning = true;
40
+ }
41
+ $('in_role_users').value = checkBoxes.toQueryString();
42
+
43
+ function registerUserRole(grid, element, checked)
44
+ {
45
+ if (checked) {
46
+ checkBoxes.set(element.value, 0);
47
+ } else {
48
+ checkBoxes.unset(element.value);
49
+ }
50
+ $('in_role_users').value = checkBoxes.toQueryString();
51
+ grid.reloadParams = {'in_role_users[]':checkBoxes.keys()};
52
+ }
53
+
54
+ function roleUsersRowClick(grid, event)
55
+ {
56
+ var trElement = Event.findElement(event, 'tr');
57
+ var isInput = Event.element(event).tagName == 'INPUT';
58
+ if (trElement) {
59
+ var checkbox = Element.getElementsBySelector(trElement, 'input');
60
+ if(checkbox[0]){
61
+ var checked = isInput ? checkbox[0].checked : !checkbox[0].checked;
62
+ if (checked) {
63
+ checkbox[0].checked = true;
64
+ if ( confirm("<?php echo Mage::helper('core')->jsQuoteEscape($this->__('Warning!\r\nThis action will remove this user from already assigned role\r\nAre you sure?')) ?>") ) {
65
+ checkBoxes.set(checkbox[0].value, checked);
66
+ varienElementMethods.setHasChanges(checkbox[0]);
67
+ } else {
68
+ checkbox[0].checked = false;
69
+ }
70
+ warning = false;
71
+ } else {
72
+ checkBoxes.unset(checkbox[0].value);
73
+ }
74
+
75
+ $('in_role_users').value = checkBoxes.toQueryString();
76
+ grid.reloadParams = {'in_role_user[]':checkBoxes.keys()};
77
+ }
78
+ }
79
+ }
80
+
81
+ function roleUsersRowInit(grid, row)
82
+ {
83
+ var checkbox = $(row).getElementsByClassName('checkbox')[0];
84
+ if (checkbox) {
85
+ if (checkbox.checked) {
86
+ checkBoxes.set(checkbox.value, checkbox.checked);
87
+ } else {
88
+ checkBoxes.unset(checkbox.value);
89
+ }
90
+
91
+ $('in_role_users').value = checkBoxes.toQueryString();
92
+ grid.reloadParams = {'in_role_user[]':checkBoxes.keys()};
93
+ }
94
+ }
95
+
96
+ function myhandler(o)
97
+ {
98
+ if (checkBoxes.size() > 0) {
99
+ if (!confirm("<?php echo Mage::helper('core')->jsQuoteEscape($this->__('Warning!\r\nThis action will remove those users from already assigned roles\r\nAre you sure?')) ?>") ) {
100
+ o.checked = !o.checked;
101
+ } else {
102
+ checkBoxes.each(function(el){
103
+ el.checked = o.checked;
104
+ });
105
+ return false;
106
+ }
107
+ warning = false;
108
+ }
109
+
110
+ $('in_role_users').value = checkBoxes.toQueryString();
111
+ //grid.reloadParams = {'in_role_user[]':checkBoxes.keys()};
112
+ }
113
+
114
+ <?php echo $name ?>.rowClickCallback = roleUsersRowClick;
115
+ <?php echo $name ?>.initRowCallback = roleUsersRowInit;
116
+ <?php echo $name ?>.checkboxCheckCallback = registerUserRole;
117
+ <?php echo $name ?>.checkCheckboxes = myhandler;
118
+ <?php echo $name ?>.rows.each(function(row){roleUsersRowInit(<?php echo $name ?>, row)});
119
+ $('in_role_users_old').value = $('in_role_users').value;
120
+ <?php endif; ?>
121
+ //]]>
122
+ </script>
app/design/adminhtml/default/default/template/authorizenet/directpost/iframe.phtml ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+
27
+ /**
28
+ * @var $this Mage_Authorizenet_Block_Directpost_Iframe
29
+ */
30
+ ?>
31
+ <?php
32
+ $_params = $this->getParams();
33
+ /* @var $_helper Mage_Authorizenet_Helper_Admin */
34
+ $_helper = $this->helper('authorizenet/admin');
35
+ ?>
36
+ <html>
37
+ <head>
38
+ <script type="text/javascript">
39
+ //<![CDATA[
40
+ <?php if (isset($_params['redirect'])): ?>
41
+ window.location="<?php echo $this->escapeUrl($_params['redirect']) ?>";
42
+ <?php endif; ?>
43
+ <?php if (isset($_params['redirect_parent'])): ?>
44
+ window.top.location="<?php echo $this->escapeUrl($_params['redirect_parent']) ?>";
45
+ <?php endif; ?>
46
+ <?php if (isset($_params['error_msg'])): ?>
47
+ window.top.directPostModel.showError(<?php echo $this->helper('core')->jsonEncode($_params['error_msg']) ?>);
48
+ <?php if (isset($_params['x_invoice_num'])): ?>
49
+ window.top.directPostModel.successUrl="<?php echo $_helper->getSuccessOrderUrl($_params) ?>";
50
+ <?php endif; ?>
51
+ <?php endif; ?>
52
+ //]]>
53
+ </script>
54
+ </head>
55
+ <body></body>
56
+ </html>
app/design/adminhtml/default/default/template/authorizenet/directpost/info.phtml ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+
27
+ /**
28
+ * @see Mage_Authorizenet_Block_Directpost_Form
29
+ */
30
+ ?>
31
+ <?php
32
+ $_form = $this;
33
+ $_code = $_form->getMethodCode();
34
+ $_method = $_form->getMethod();
35
+ $_controller = $this->helper('authorizenet')->getControllerName();
36
+ $_orderUrl = $this->helper('authorizenet')->getPlaceOrderAdminUrl();
37
+ ?>
38
+ <!-- IFRAME for request to our server -->
39
+ <iframe id="order-directpost-iframe" allowtransparency="true" frameborder="0" name="iframeSubmitOrder" style="display:none;width:100%;background-color:transparent" src="<?php echo $this->getJsUrl() ?>blank.html"></iframe>
40
+ <!-- IFRAME for request to Authorize.net -->
41
+ <iframe id="directpost-iframe" allowtransparency="true" frameborder="0" name="iframeDirectPost" style="display:none;width:100%;background-color:transparent" src="<?php echo $this->getJsUrl() ?>blank.html"></iframe>
42
+ <ul id="payment_form_<?php echo $_code ?>" style="display:none;">
43
+ <li>
44
+ <div class="input-box">
45
+ <label for="<?php echo $_code ?>_cc_type"><?php echo Mage::helper('payment')->__('Credit Card Type') ?> <span class="required">*</span></label><br/>
46
+ <select id="<?php echo $_code ?>_cc_type" name="payment[cc_type]" class="required-entry validate-cc-type-select">
47
+ <?php $_ccType = $_form->getInfoData('cc_type') ?>
48
+ <option value=""></option>
49
+ <?php foreach ($_form->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
50
+ <option value="<?php echo $_typeCode ?>" <?php if($_typeCode==$_ccType): ?>selected="selected"<?php endif ?>><?php echo $_typeName ?></option>
51
+ <?php endforeach ?>
52
+ </select>
53
+ </div>
54
+ </li>
55
+ <li>
56
+ <div class="input-box">
57
+ <label for="<?php echo $_code ?>_cc_number"><?php echo Mage::helper('payment')->__('Credit Card Number') ?> <span class="required">*</span></label><br/>
58
+ <input type="text" id="<?php echo $_code ?>_cc_number" name="payment[cc_number]" title="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('payment')->__('Credit Card Number')) ?>" class="input-text validate-cc-number" value="<?php echo $this->getInfoData('cc_number')?>" />
59
+ </div>
60
+ </li>
61
+ <li>
62
+ <div class="input-box">
63
+ <label for="<?php echo $_code ?>_expiration"><?php echo Mage::helper('payment')->__('Expiration Date') ?> <span class="required">*</span></label><br/>
64
+ <select id="<?php echo $_code ?>_expiration" style="width:140px;" name="payment[cc_exp_month]" class="validate-cc-exp required-entry">
65
+ <?php $_ccExpMonth = $_form->getInfoData('cc_exp_month') ?>
66
+ <?php foreach ($_form->getCcMonths() as $k=>$v): ?>
67
+ <option value="<?php echo $k ?>" <?php if($k==$_ccExpMonth): ?>selected="selected"<?php endif ?>><?php echo $v ?></option>
68
+ <?php endforeach ?>
69
+ </select>
70
+ <?php $_ccExpYear = $_form->getInfoData('cc_exp_year') ?>
71
+ <select id="<?php echo $_code ?>_expiration_yr" style="width:103px;" name="payment[cc_exp_year]" class="required-entry">
72
+ <?php foreach ($_form->getCcYears() as $k=>$v): ?>
73
+ <option value="<?php echo $k ? $k : '' ?>" <?php if($k==$_ccExpYear): ?>selected="selected"<?php endif ?>><?php echo $v ?></option>
74
+ <?php endforeach ?>
75
+ </select>
76
+ </div>
77
+ </li>
78
+ <?php if($_form->hasVerification()): ?>
79
+ <li>
80
+ <div class="input-box">
81
+ <label for="<?php echo $_code ?>_cc_cid"><?php echo Mage::helper('payment')->__('Card Verification Number') ?> <span class="required">*</span></label><br/>
82
+ <input type="text" title="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('payment')->__('Card Verification Number')) ?>" class="required-entry input-text validate-cc-cvn" id="<?php echo $_code ?>_cc_cid" name="payment[cc_cid]" style="width:3em;" value="<?php echo $this->getInfoData('cc_cid')?>" />
83
+ </div>
84
+ </li>
85
+ <?php endif; ?>
86
+ </ul>
87
+ <script type="text/javascript">
88
+ //<![CDATA[
89
+ /**
90
+ * Disable cart server validation in admin
91
+ */
92
+ AdminOrder.prototype.prepareParams = function(params) {
93
+ if (!params) {
94
+ params = {};
95
+ }
96
+ if (!params.customer_id) {
97
+ params.customer_id = this.customerId;
98
+ }
99
+ if (!params.store_id) {
100
+ params.store_id = this.storeId;
101
+ }
102
+ if (!params.currency_id) {
103
+ params.currency_id = this.currencyId;
104
+ }
105
+ if (!params.form_key) {
106
+ params.form_key = FORM_KEY;
107
+ }
108
+
109
+ if (this.paymentMethod != '<?php echo $_code ?>') {
110
+ var data = this.serializeData('order-billing_method');
111
+ if (data) {
112
+ data.each(function(value) {
113
+ params[value[0]] = value[1];
114
+ });
115
+ }
116
+ } else {
117
+ params['payment[method]'] = '<?php echo $_code ?>';
118
+ }
119
+ return params;
120
+ };
121
+ AdminOrder.prototype.getPaymentData = function(currentMethod) {
122
+ if (typeof (currentMethod) == 'undefined') {
123
+ if (this.paymentMethod) {
124
+ currentMethod = this.paymentMethod;
125
+ } else {
126
+ return false;
127
+ }
128
+ }
129
+ if (currentMethod == '<?php echo $_code ?>') {
130
+ return false;
131
+ }
132
+ var data = {};
133
+ var fields = $('payment_form_' + currentMethod).select('input', 'select');
134
+ for ( var i = 0; i < fields.length; i++) {
135
+ data[fields[i].name] = fields[i].getValue();
136
+ }
137
+ if ((typeof data['payment[cc_type]']) != 'undefined'
138
+ && (!data['payment[cc_type]'] || !data['payment[cc_number]'])) {
139
+ return false;
140
+ }
141
+ return data;
142
+ };
143
+ <?php if (!$this->isAjaxRequest()): ?>
144
+ document.observe('dom:loaded', function(){
145
+ <?php endif; ?>
146
+ directPostModel = new directPost(
147
+ '<?php echo $_code ?>',
148
+ 'directpost-iframe',
149
+ '<?php echo $_controller ?>',
150
+ '<?php echo $_orderUrl ?>',
151
+ '<?php echo $_method->getCgiUrl() ?>',
152
+ '<?php echo $this->getUrl('*/*/save', array('_secure' => $this->getRequest()->isSecure())) ?>');
153
+ <?php if (!$this->isAjaxRequest()): ?>
154
+ });
155
+ <?php endif; ?>
156
+ //]]>
157
+ </script>
app/design/adminhtml/default/default/template/backup/dialogs.phtml ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="backup-dialog" style="display: none;" id="rollback-warning">
28
+ <div class="entry-edit">
29
+ <div class="entry-edit-head">
30
+ <h4 class="head-edit-form fieldset-legend"><?php echo $this->__('Warning') ?></h4>
31
+ </div>
32
+ <div class="content">
33
+ <div><?php echo $this->__('Any data created since the backup was made will be lost including admin users, customers and orders.')?></div>
34
+ <div class="question"><?php echo $this->__('Are you sure you want to proceed?')?></div>
35
+ </div>
36
+ <div class="buttons-set">
37
+ <div class="f-right">
38
+ <button type="button" class="scalable " onclick="backup.requestPassword()"><span><?php echo $this->__('OK')?></span></button>
39
+ <button type="button" class="scalable " onclick="backup.hidePopups()"><span><?php echo $this->__('Cancel')?></span></button>
40
+ </div>
41
+ </div>
42
+ </div>
43
+ </div>
44
+
45
+ <div class="backup-dialog" style="display: none;" id="backup-warning">
46
+ <div class="entry-edit">
47
+ <div class="entry-edit-head">
48
+ <h4 class="head-edit-form fieldset-legend"><?php echo $this->__('Warning') ?></h4>
49
+ </div>
50
+ <div class="content">
51
+ <div class="backup-messages" style="display: none;"><ul class="messages"></ul></div>
52
+ <div><?php echo $this->__("The backup's creation process will take time.")?></div>
53
+ <div><?php echo $this->__('You will need to wait when the action ends.')?></div>
54
+ <div><?php echo $this->__('Do you really want to proceed?')?></div>
55
+ </div>
56
+ <div class="buttons-set">
57
+ <div class="f-right">
58
+ <button type="button" class="scalable " onclick="backup.requestBackupOptions()"><span><?php echo $this->__('OK')?></span></button>
59
+ <button type="button" class="scalable " onclick="backup.hidePopups()"><span><?php echo $this->__('Cancel')?></span></button>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ </div>
64
+
65
+ <div class="backup-dialog" style="display: none;" id="backup-options">
66
+ <div class="entry-edit">
67
+ <div class="entry-edit-head">
68
+ <h4 class="head-edit-form fieldset-legend"><?php echo $this->__('Backup options') ?></h4>
69
+ </div>
70
+ <div class="content">
71
+ <div class="backup-messages" style="display: none;"><ul class="messages"></ul></div>
72
+ <div><?php echo $this->__('Please specify backup creation options')?></div>
73
+ <form action="" method="post" id="backup-form" onsubmit="return backup.submitBackup();">
74
+ <table class="form-list question" cellspacing="0">
75
+ <tr>
76
+ <td style="padding-right: 8px;"><label for="backup_name" class="nobr"><?php echo $this->__('Backup Name')?></label></td>
77
+ <td>
78
+ <input type="text" name="backup_name" id="backup_name" class="validate-alphanum-with-spaces validate-length maximum-length-50" style="width: 343px" maxlength="50" />
79
+ <p class="note"><span><?php echo $this->__('Please use only letters (a-z or A-Z), numbers (0-9) or spaces in this field.'); ?></span></p>
80
+ </td>
81
+ </tr>
82
+ <tr>
83
+ <td>&nbsp;</td>
84
+ <td class="maintenance-checkbox-container">
85
+ <input type="checkbox" name="maintenance_mode" value="1" id="backup_maintenance_mode"/>
86
+ <label for="backup_maintenance_mode"><?php echo $this->__('Put store on the maintenance mode while backup creation')?></label>
87
+ </td>
88
+ </tr>
89
+ <tr id="exclude-media-checkbox-container" style="display: none;">
90
+ <td>&nbsp;</td>
91
+ <td>
92
+ <input type="checkbox" name="exclude_media" value="1" id="exclude_media"/>
93
+ <label for="exclude_media"><?php echo $this->__('Exclude media folder from backup')?></label>
94
+ </td>
95
+ </tr>
96
+ </table>
97
+ </form>
98
+ </div>
99
+ <div class="buttons-set">
100
+ <div class="f-right">
101
+ <button type="button" class="scalable " onclick="backup.submitBackup()"><span><?php echo $this->__('OK')?></span></button>
102
+ <button type="button" class="scalable " onclick="backup.hidePopups()"><span><?php echo $this->__('Cancel')?></span></button>
103
+ </div>
104
+ </div>
105
+ </div>
106
+ </div>
107
+
108
+ <div class="backup-dialog" style="display: none;" id="rollback-request-password">
109
+ <div class="entry-edit">
110
+ <div class="entry-edit-head">
111
+ <h4 class="head-edit-form fieldset-legend"><?php echo $this->__('Please enter password') ?></h4>
112
+ </div>
113
+ <div class="content">
114
+ <div class="backup-messages" style="display: none;"><ul class="messages"></ul></div>
115
+ <div><?php echo $this->__('Please enter password to confirm rollback.')?></div>
116
+ <div><?php echo $this->__('This action cannot be undone.')?></div>
117
+ <div class="question"><?php echo $this->__('Are you sure you want to proceed?')?></div>
118
+ <form action="" method="post" id="rollback-form" onsubmit="return backup.submitRollback();">
119
+ <div class="password-box-container">
120
+ <table class="form-list" cellspacing="0">
121
+ <tr>
122
+ <td style="padding-right: 8px;"><label for="password" class="nobr"><?php echo $this->__('User Password')?> <span class="required">*</span></label></td>
123
+ <td><input type="password" name="password" id="password" class="required-entry" autocomplete="off"></td>
124
+ </tr>
125
+ <tr>
126
+ <td>&nbsp;</td>
127
+ <td class="maintenance-checkbox-container">
128
+ <input type="checkbox" name="maintenance_mode" value="1" id="rollback_maintenance_mode"/>
129
+ <label for="rollback_maintenance_mode"><?php echo $this->__('Put store on the maintenance mode while rollback processing')?></label>
130
+ </td>
131
+ </tr>
132
+ <tr id="use-ftp-checkbox-row" style="display: none;">
133
+ <td>&nbsp;</td>
134
+ <td><input type="checkbox" name="use_ftp" value="1" id="use_ftp" onClick="backup.toggleFtpCredentialsForm();"/> <label for="use_ftp"><?php echo $this->__('Use FTP Connection')?></label></td>
135
+ </tr>
136
+ </table>
137
+ </div>
138
+ <div class="entry-edit" id="ftp-credentials-container" style="display: none;">
139
+ <div class="entry-edit-head">
140
+ <h4 class=""><?php echo $this->__('FTP credentials')?></h4>
141
+ </div>
142
+ <fieldset>
143
+ <table class="form-list" cellspacing="0">
144
+ <tr>
145
+ <td class="label"><label for="ftp_host"><?php echo $this->__('FTP Host')?> <span class="required">*</span></label></td>
146
+ <td class="value"><input type="text" name="ftp_host" id="ftp_host"></td>
147
+ </tr>
148
+ <tr>
149
+ <td class="label"><label for="ftp_user"><?php echo $this->__('FTP Login')?> <span class="required">*</span></label></td>
150
+ <td class="value"><input type="text" name="ftp_user" id="ftp_user"></td>
151
+ </tr>
152
+ <tr>
153
+ <td class="label"><label for="ftp_pass"><?php echo $this->__('FTP Password')?> <span class="required">*</span></label></td>
154
+ <td class="value"><input type="password" name="ftp_pass" id="ftp_pass" autocomplete="off"></td>
155
+ </tr>
156
+ <tr>
157
+ <td class="label"><label for="ftp_path"><?php echo $this->__('Magento root directory')?></label></td>
158
+ <td class="value"><input type="text" name="ftp_path" id="ftp_path"></td>
159
+ </tr>
160
+ </table>
161
+ </fieldset>
162
+ </div>
163
+ </form>
164
+ </div>
165
+ <div class="buttons-set">
166
+ <div class="f-right">
167
+ <button type="button" class="scalable " onclick="backup.submitRollback()"><span><?php echo $this->__('OK')?></span></button>
168
+ <button type="button" class="scalable " onclick="backup.hidePopups()"><span><?php echo $this->__('Cancel')?></span></button>
169
+ </div>
170
+ </div>
171
+ </div>
172
+ </div>
173
+
174
+ <div id="popup-window-mask" style="display: none;"></div>
175
+
176
+ <?php
177
+ $helper = Mage::helper('backup');
178
+ $rollbackUrl = $this->getUrl('*/*/rollback');
179
+ $backupUrl = $this->getUrl('*/*/create');
180
+ ?>
181
+
182
+ <script type="text/javascript">
183
+ //<![CDATA[
184
+ document.observe('dom:loaded', function () {
185
+ backup = new AdminBackup();
186
+ backup.rollbackUrl = '<?php echo $helper->jsQuoteEscape($rollbackUrl);?>';
187
+ backup.backupUrl = '<?php echo $helper->jsQuoteEscape($backupUrl);?>';
188
+ });
189
+ //]]>
190
+ </script>
app/design/adminhtml/default/default/template/backup/left.phtml ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <h3><?php echo Mage::helper('backup')->__('Create Backup') ?></h3>
app/design/adminhtml/default/default/template/backup/list.phtml ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="content-header">
28
+ <table cellspacing="0">
29
+ <tr>
30
+ <td style="width:50%;"><h3 class="icon-head head-backups-control"><?php echo Mage::helper('backup')->__('Backups') ?></h3></td>
31
+ <td class="form-buttons">
32
+ <?php echo $this->getCreateSnapshotButtonHtml(); ?>
33
+ <?php echo $this->getCreateMediaBackupButtonHtml(); ?>
34
+ <?php echo $this->getCreateButtonHtml(); ?>
35
+ </td>
36
+ </tr>
37
+ </table>
38
+ </div>
39
+ <?php echo $this->getGridHtml() ?>
40
+ <?php echo $this->getDialogsHtml() ?>
app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/bundle.phtml ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <?php /* @var $this Mage_Bundle_Block_Adminhtml_Catalog_Product_Composite_Fieldset_Bundle */ ?>
29
+ <?php $options = Mage::helper('core')->decorateArray($this->getOptions()); ?>
30
+ <?php if (count($options)): ?>
31
+ <div id="catalog_product_composite_configure_fields_bundle" class="<?php echo $this->getIsLastFieldset() ? 'last-fieldset' : '' ?>">
32
+ <h4><?php echo Mage::helper('catalog')->__('Bundle Items') ?></h4>
33
+ <div class="product-options">
34
+ <dl>
35
+ <?php foreach ($options as $option) : ?>
36
+ <?php if ($option->getSelections()) : ?>
37
+ <?php echo $this->getOptionHtml($option); ?>
38
+ <?php endif; ?>
39
+ <?php endforeach; ?>
40
+ </dl>
41
+ </div>
42
+ </div>
43
+
44
+ <script>
45
+ var BundleControl = Class.create();
46
+ BundleControl.prototype = {
47
+ initialize: function (config) {
48
+ this.config = config;
49
+ },
50
+
51
+ changeSelection: function (selection) {
52
+ if (selection.multiple) {
53
+ return;
54
+ }
55
+ var parts = selection.id.split('-'), optionId = parts[2],
56
+ showQtyInput = selection.value && selection.value != 'none',
57
+ options = this.config.options[optionId],
58
+ selectionOptions = options && options.selections && options.selections[selection.value] || {};
59
+
60
+ selectionOptions.can_change_qty = Number(selectionOptions.can_change_qty) && showQtyInput;
61
+ this.updateQtyInput(optionId, selectionOptions);
62
+ },
63
+
64
+ updateQtyInput: function(optionId, selectionOptions) {
65
+ var elem = $('bundle-option-' + optionId + '-qty-input'),
66
+ default_qty = Number(selectionOptions.default_qty);
67
+ if (!elem) {
68
+ return;
69
+ }
70
+ if (selectionOptions.can_change_qty) {
71
+ elem.removeClassName('qty-disabled');
72
+ elem.disabled = false;
73
+ if (elem.value == '0') {
74
+ elem.value = default_qty || 1;
75
+ }
76
+ } else {
77
+ elem.addClassName('qty-disabled');
78
+ elem.disabled = true;
79
+ elem.value = default_qty || 0;
80
+ }
81
+ },
82
+
83
+ updateForDefaults: function () {
84
+ for (var optionId in this.config.options) {
85
+ var selection = $('bundle-option-' + optionId);
86
+ if (selection) {
87
+ this.changeSelection(selection);
88
+ }
89
+ }
90
+ }
91
+ }
92
+ ProductConfigure.bundleControl = new BundleControl(<?php echo $this->getJsonConfig() ?>);
93
+ </script>
94
+
95
+ <?php endif; ?>
app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/type/checkbox.phtml ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+
27
+ ?>
28
+ <?php /* @var $this Mage_Bundle_Block_Adminhtml_Catalog_Product_Composite_Fieldset_Options_Type_Checkbox */ ?>
29
+ <?php $_option = $this->getOption(); ?>
30
+ <?php $_selections = $_option->getSelections(); ?>
31
+ <?php $_skipSaleableCheck = Mage::helper('catalog/product')->getSkipSaleableCheck(); ?>
32
+ <dt><label<?php if ($_option->getRequired()) echo ' class="required"' ?>><?php if ($_option->getRequired()) echo '<em>*</em>' ?><?php echo $this->escapeHtml($_option->getTitle()) ?></label></dt>
33
+ <dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
34
+ <div class="input-box">
35
+ <?php if (count($_selections) == 1 && $_option->getRequired()): ?>
36
+ <?php echo $this->getSelectionQtyTitlePrice($_selections[0]) ?>
37
+ <input type="hidden" name="bundle_option[<?php echo $_option->getId() ?>]" value="<?php echo $_selections[0]->getSelectionId() ?>" price="<?php echo $this->getSelectionPrice($_selections[0]) ?>"'/>
38
+ <?php else:?>
39
+ <ul class="options-list">
40
+ <?php foreach($_selections as $_selection): ?>
41
+ <li><input class="change-container-classname checkbox bundle-option-<?php echo $_option->getId() ?> <?php if ($_option->getRequired()) echo 'validate-one-required-by-name' ?>" id="bundle-option-<?php echo $_option->getId() ?>-<?php echo $_selection->getSelectionId() ?>" type="checkbox" name="bundle_option[<?php echo $_option->getId() ?>][]"<?php if ($this->_isSelected($_selection)) echo ' checked="checked"' ?><?php if (!$_selection->isSaleable() && !$_skipSaleableCheck) echo ' disabled="disabled"' ?> value="<?php echo $_selection->getSelectionId() ?>" onclick="ProductConfigure.bundleControl.changeSelection(this)" price="<?php echo $this->getSelectionPrice($_selection) ?>"/>
42
+ <span class="label"><label for="bundle-option-<?php echo $_option->getId() ?>-<?php echo $_selection->getSelectionId() ?>"><?php echo $this->getSelectionQtyTitlePrice($_selection) ?></label></span>
43
+ <?php if($_option->getRequired()): ?>
44
+ <?php echo $this->setValidationContainer('bundle-option-'.$_option->getId().'-'.$_selection->getSelectionId(), 'bundle-option-'.$_option->getId().'-container') ?>
45
+ <?php endif; ?>
46
+ </li>
47
+ <?php endforeach; ?>
48
+ </ul>
49
+ <div id="bundle-option-<?php echo $_option->getId() ?>-container"></div>
50
+ <?php endif; ?>
51
+ </div>
52
+ </dd>
app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/type/multi.phtml ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+
27
+ ?>
28
+ <?php /* @var $this Mage_Bundle_Block_Adminhtml_Catalog_Product_Composite_Fieldset_Options_Type_Multi */ ?>
29
+ <?php $_option = $this->getOption(); ?>
30
+ <?php $_selections = $_option->getSelections(); ?>
31
+ <?php $_skipSaleableCheck = Mage::helper('catalog/product')->getSkipSaleableCheck(); ?>
32
+ <dt><label<?php if ($_option->getRequired()) echo ' class="required"' ?>><?php if ($_option->getRequired()) echo '<em>*</em>' ?><?php echo $this->escapeHtml($_option->getTitle()) ?></label></dt>
33
+ <dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
34
+ <div class="input-box">
35
+ <?php if (count($_selections) == 1 && $_option->getRequired()): ?>
36
+ <?php echo $this->getSelectionQtyTitlePrice($_selections[0]) ?>
37
+ <input type="hidden" name="bundle_option[<?php echo $_option->getId() ?>]" value="<?php echo $_selections[0]->getSelectionId() ?>" price="<?php echo $this->getSelectionPrice($_selections[0]) ?>"/>
38
+ <?php else: ?>
39
+ <select multiple="multiple" size="5" id="bundle-option-<?php echo $_option->getId() ?>" name="bundle_option[<?php echo $_option->getId() ?>][]" class="bundle-option-<?php echo $_option->getId() ?><?php if ($_option->getRequired()) echo ' required-entry' ?> bundle-option-select multiselect change-container-classname" onchange="ProductConfigure.bundleControl.changeSelection(this)">
40
+ <?php if(!$_option->getRequired()): ?>
41
+ <option value=""><?php echo $this->__('None') ?></option>
42
+ <?php endif; ?>
43
+ <?php foreach ($_selections as $_selection): ?>
44
+ <option value="<?php echo $_selection->getSelectionId() ?>"<?php if ($this->_isSelected($_selection)) echo ' selected="selected"' ?><?php if (!$_selection->isSaleable() && !$_skipSaleableCheck) echo ' disabled="disabled"' ?> price="<?php echo $this->getSelectionPrice($_selection) ?>"><?php echo $this->getSelectionQtyTitlePrice($_selection, false) ?></option>
45
+ <?php endforeach; ?>
46
+ </select>
47
+ <?php endif; ?>
48
+ </div>
49
+ </dd>
app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/type/radio.phtml ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+
27
+ ?>
28
+ <?php /* @var $this Mage_Bundle_Block_Adminhtml_Catalog_Product_Composite_Fieldset_Options_Type_Radio */ ?>
29
+ <?php $_option = $this->getOption(); ?>
30
+ <?php $_selections = $_option->getSelections(); ?>
31
+ <?php $_default = $_option->getDefaultSelection(); ?>
32
+ <?php $_skipSaleableCheck = Mage::helper('catalog/product')->getSkipSaleableCheck(); ?>
33
+ <?php list($_defaultQty, $_canChangeQty) = $this->_getDefaultValues(); ?>
34
+
35
+ <dt>
36
+ <span class="qty-holder">
37
+ <label for="bundle-option-<?php echo $_option->getId() ?>-qty-input"><?php echo $this->__('Qty:') ?>&nbsp;</label><input <?php if (!$_canChangeQty) echo ' disabled="disabled"' ?> id="bundle-option-<?php echo $_option->getId() ?>-qty-input" class="input-text qty<?php if (!$_canChangeQty) echo ' qty-disabled' ?>" type="text" name="bundle_option_qty[<?php echo $_option->getId() ?>]" value="<?php echo $_defaultQty ?>"/>
38
+ </span>
39
+ <label<?php if ($_option->getRequired()) echo ' class="required"' ?>><?php if ($_option->getRequired()) echo '<em>*</em>' ?><?php echo $this->escapeHtml($_option->getTitle()) ?></label>
40
+ </dt>
41
+ <dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
42
+ <div class="input-box">
43
+ <?php if ($this->_showSingle()): ?>
44
+ <?php echo $this->getSelectionTitlePrice($_selections[0]) ?>
45
+ <input type="hidden" name="bundle_option[<?php echo $_option->getId() ?>]" value="<?php echo $_selections[0]->getSelectionId() ?>" price="<?php echo $this->getSelectionPrice($_selections[0]) ?>" />
46
+ <?php else:?>
47
+ <ul class="options-list">
48
+ <?php if (!$_option->getRequired()): ?>
49
+ <li><input type="radio" class="radio" id="bundle-option-<?php echo $_option->getId() ?>" name="bundle_option[<?php echo $_option->getId() ?>]"<?php echo ($_default && $_default->isSalable())?'':' checked="checked" ' ?> value="" onclick="ProductConfigure.bundleControl.changeSelection(this)"/>
50
+ <span class="label"><label for="bundle-option-<?php echo $_option->getId() ?>"><?php echo $this->__('None') ?></label></span>
51
+ </li>
52
+ <?php endif; ?>
53
+ <?php foreach ($_selections as $_selection): ?>
54
+ <li><input type="radio" class="radio<?php echo $_option->getRequired()?' validate-one-required-by-name':'' ?> change-container-classname" id="bundle-option-<?php echo $_option->getId() ?>-<?php echo $_selection->getSelectionId() ?>" name="bundle_option[<?php echo $_option->getId() ?>]"<?php if ($this->_isSelected($_selection)) echo ' checked="checked"' ?><?php if (!$_selection->isSaleable() && !$_skipSaleableCheck) echo ' disabled="disabled"' ?>value="<?php echo $_selection->getSelectionId() ?>" onclick="ProductConfigure.bundleControl.changeSelection(this)" price="<?php echo $this->getSelectionPrice($_selection) ?>" qtyId="bundle-option-<?php echo $_option->getId() ?>-qty-input"/>
55
+ <span class="label"><label for="bundle-option-<?php echo $_option->getId() ?>-<?php echo $_selection->getSelectionId() ?>"><?php echo $this->getSelectionTitlePrice($_selection) ?></label></span>
56
+ <?php if ($_option->getRequired()): ?>
57
+ <?php echo $this->setValidationContainer('bundle-option-'.$_option->getId().'-'.$_selection->getSelectionId(), 'bundle-option-'.$_option->getId().'-container') ?>
58
+ <?php endif; ?>
59
+ </li>
60
+ <?php endforeach; ?>
61
+ </ul>
62
+ <div id="bundle-option-<?php echo $_option->getId() ?>-container"></div>
63
+ <?php endif; ?>
64
+ </div>
65
+ </dd>
app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/type/select.phtml ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+
27
+ ?>
28
+ <?php /* @var $this Mage_Bundle_Block_Adminhtml_Catalog_Product_Composite_Fieldset_Options_Type_Select */ ?>
29
+ <?php $_option = $this->getOption(); ?>
30
+ <?php $_selections = $_option->getSelections(); ?>
31
+ <?php $_default = $_option->getDefaultSelection(); ?>
32
+ <?php $_skipSaleableCheck = Mage::helper('catalog/product')->getSkipSaleableCheck(); ?>
33
+ <?php list($_defaultQty, $_canChangeQty) = $this->_getDefaultValues(); ?>
34
+
35
+ <dt>
36
+ <span class="qty-holder">
37
+ <label for="bundle-option-<?php echo $_option->getId() ?>-qty-input"><?php echo $this->__('Qty:') ?>&nbsp;</label><input <?php if (!$_canChangeQty) echo ' disabled="disabled"' ?> id="bundle-option-<?php echo $_option->getId() ?>-qty-input" class="input-text qty<?php if (!$_canChangeQty) echo ' qty-disabled' ?>" type="text" name="bundle_option_qty[<?php echo $_option->getId() ?>]" value="<?php echo $_defaultQty ?>"/>
38
+ </span>
39
+ <label<?php if ($_option->getRequired()) echo ' class="required"' ?>><?php if ($_option->getRequired()) echo '<em>*</em>' ?><?php echo $this->escapeHtml($_option->getTitle()) ?></label>
40
+ </dt>
41
+ <dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
42
+ <div class="input-box">
43
+ <?php if ($this->_showSingle()): ?>
44
+ <?php echo $this->getSelectionTitlePrice($_selections[0]) ?>
45
+ <input type="hidden" name="bundle_option[<?php echo $_option->getId() ?>]" value="<?php echo $_selections[0]->getSelectionId() ?>" price="<?php echo $this->getSelectionPrice($_selections[0]) ?>"/>
46
+ <?php else:?>
47
+ <select id="bundle-option-<?php echo $_option->getId() ?>" name="bundle_option[<?php echo $_option->getId() ?>]" class="bundle-option-<?php echo $_option->getId() ?><?php if ($_option->getRequired()) echo ' required-entry' ?> bundle-option-select change-container-classname" onchange="ProductConfigure.bundleControl.changeSelection(this)">
48
+ <option value=""><?php echo $this->__('Choose a selection...') ?></option>
49
+ <?php foreach ($_selections as $_selection): ?>
50
+ <option value="<?php echo $_selection->getSelectionId() ?>"<?php if ($this->_isSelected($_selection)) echo ' selected="selected"' ?><?php if (!$_selection->isSaleable() && !$_skipSaleableCheck) echo ' disabled="disabled"' ?> price="<?php echo $this->getSelectionPrice($_selection) ?>" qtyId="bundle-option-<?php echo $_option->getId() ?>-qty-input"><?php echo $this->getSelectionTitlePrice($_selection, false) ?></option>
51
+ <?php endforeach; ?>
52
+ </select>
53
+ <?php endif; ?>
54
+ </div>
55
+ </dd>
app/design/adminhtml/default/default/template/bundle/product/edit/bundle.phtml ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type="text/javascript">
28
+ if(typeof Bundle=='undefined') {
29
+ Bundle = {};
30
+ }
31
+ </script>
32
+
33
+ <div class="entry-edit">
34
+ <div class="entry-edit-head">
35
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('bundle')->__('Shipment') ?></h4>
36
+ </div>
37
+ <fieldset>
38
+ <table cellspacing="0" class="form-list">
39
+ <tr>
40
+ <td class="label"><label for="shipment_type"><?php echo Mage::helper('bundle')->__('Ship Bundle Items') ?></label></td>
41
+ <td class="value"><select <?php if ($this->isReadonly()): ?>disabled="disabled" <?php endif;?>id="shipment_type" name="<?php echo $this->getFieldSuffix() ?>[shipment_type]" class="select">
42
+ <option value="1"><?php echo Mage::helper('bundle')->__('Separately') ?></option>
43
+ <option value="0"<?php if ($this->getProduct()->getShipmentType() == 0): ?> selected="selected"<?php endif; ?>><?php echo Mage::helper('bundle')->__('Together') ?></option>
44
+ </select>
45
+ </td>
46
+ </tr>
47
+ </table>
48
+ </fieldset>
49
+ </div>
50
+
51
+ <div class="entry-edit custom-options bundle" id="product_bundle_container">
52
+ <div class="entry-edit-head">
53
+ <h4><?php echo $this->__('Bundle Items') ?></h4>
54
+ <div class="right"><?php echo $this->getAddButtonHtml() ?></div>
55
+ </div>
56
+
57
+ <div id="product_options_container" class="box">
58
+ <div id="product_bundle_container_top"></div>
59
+ <?php echo $this->getOptionsBoxHtml() ?>
60
+ </div>
61
+ </div>
62
+
63
+ <script type="text/javascript">
64
+ // re-bind form elements onchange
65
+ varienWindowOnload(true);
66
+ <?php if ($this->isReadonly()):?>
67
+ $('product_bundle_container').select('input', 'select', 'textarea', 'button').each(function(input){
68
+ input.disabled = true;
69
+ if (input.tagName.toLowerCase() == 'button') {
70
+ input.addClassName('disabled');
71
+ }
72
+ });
73
+ <?php endif; ?>
74
+ Validation.add('validate-greater-zero-based-on-option', '<?php echo Mage::helper('core')->jsQuoteEscape($this->__('Please enter a number greater 0 in this field.')) ?>', function(v, el) {
75
+ var optionType = $(el).up('div.grid').previous('table.option-header').select('select.select-product-option-type')[0],
76
+ v = Number(v) || 0;
77
+
78
+ if (optionType && (optionType.value == 'checkbox' || optionType.value == 'multi') && v <= 0) {
79
+ return false;
80
+ }
81
+ return true;
82
+ });
83
+ </script>
84
+
85
+ <div><input type="hidden" name="affect_bundle_product_selections" value="1" /></div>
app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option.phtml ADDED
@@ -0,0 +1,235 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type="text/javascript">
28
+ optionTemplate = '<div id="<?php echo $this->getFieldId() ?>_{{index}}" class="option-box"> ' +
29
+ '<div class="option-title"> ' +
30
+ '<label for="<?php echo $this->getFieldName() ?>[{{index}}][title]"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('Default Title')) ?> <span class="required">*</span></label>' +
31
+ <?php if ($this->isDefaultStore()): ?>
32
+ '<input class="input-text required-entry" type="text" name="<?php echo $this->getFieldName() ?>[{{index}}][title]" id="id_<?php echo $this->getFieldName() ?>_{{index}}_title" value="{{title}}">' +
33
+ <?php else: ?>
34
+ '<input class="input-text required-entry" type="text" name="<?php echo $this->getFieldName() ?>[{{index}}][default_title]" id="id_<?php echo $this->getFieldName() ?>_{{index}}_default_title" value="{{default_title}}">' +
35
+ <?php endif; ?>
36
+ '<?php echo $this->jsQuoteEscape($this->getOptionDeleteButtonHtml()) ?>' +
37
+ '</div>' +
38
+ '<table class="option-header" cellpadding="0" cellspacing="0">' +
39
+ '<thead>' +
40
+ '<tr>' +
41
+ <?php if (!$this->isDefaultStore()): ?>
42
+ '<th class="opt-title"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('Store View Title')) ?> <span class="required">*</span></th>' +
43
+ <?php endif; ?>
44
+ '<th class="opt-type"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('Input Type')) ?></th>' +
45
+ '<th class="opt-req"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('Is Required')) ?></th>' +
46
+ '<th class="opt-order"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('Position')) ?></th>' +
47
+ '<th>&nbsp;</th>' +
48
+ '</tr>' +
49
+ '</thead>' +
50
+ '<tbody>' +
51
+ '<tr>' +
52
+ '<input type="hidden" id="<?php echo $this->getFieldId() ?>_id_{{index}}" name="<?php echo $this->getFieldName() ?>[{{index}}][option_id]" value="{{option_id}}">' +
53
+ '<input type="hidden" name="<?php echo $this->getFieldName() ?>[{{index}}][delete]" value="" class="delete">' +
54
+ <?php if (!$this->isDefaultStore()): ?>
55
+ '<td><input class="input-text required-entry" type="text" name="<?php echo $this->getFieldName() ?>[{{index}}][title]" id="id_<?php echo $this->getFieldName() ?>_{{index}}_title_store" value="{{title}}"></td>' +
56
+ <?php endif; ?>
57
+ '<td><?php echo $this->getTypeSelectHtml() ?></td>' +
58
+ '<td><?php echo $this->getRequireSelectHtml() ?></td>' +
59
+ '<td><input class="input-text validate-zero-or-greater" type="text" name="<?php echo $this->getFieldName() ?>[{{index}}][position]" value="{{position}}"></td>' +
60
+ '<td>&nbsp;<?php echo $this->jsQuoteEscape($this->getAddSelectionButtonHtml()) ?></td>' +
61
+ '</tr>' +
62
+ '</tbody>' +
63
+ '</table>' +
64
+ '<div id="<?php echo $this->getFieldId() ?>_search_{{index}}">' +
65
+ '</div>' +
66
+ '</div>';
67
+ </script>
68
+
69
+ <?php echo $this->getSelectionHtml() ?>
70
+
71
+ <script type="text/javascript">
72
+
73
+ function changeInputType(oldObject, oType) {
74
+ var newObject = document.createElement('input');
75
+ newObject.type = oType;
76
+ if(oldObject.size) newObject.size = oldObject.size;
77
+ if(oldObject.value) newObject.value = oldObject.value;
78
+ if(oldObject.name) newObject.name = oldObject.name;
79
+ if(oldObject.id) newObject.id = oldObject.id;
80
+ if(oldObject.onclick) newObject.onclick = oldObject.onclick;
81
+ if(oldObject.className) newObject.className = oldObject.className;
82
+ oldObject.parentNode.replaceChild(newObject,oldObject);
83
+ return newObject;
84
+ }
85
+
86
+ Bundle.Option = Class.create();
87
+ Bundle.Option.prototype = {
88
+ idLabel : '<?php echo $this->getFieldId() ?>',
89
+ top : '',
90
+ templateSyntax : /(^|.|\r|\n)({{(\w+)}})/,
91
+ templateText : '',
92
+ itemsCount : 0,
93
+ initialize : function(template) {
94
+ this.templateText = template;
95
+ this.top = $('product_bundle_container_top');
96
+ },
97
+
98
+ add : function(data) {
99
+ if(!data){
100
+ data = {};
101
+ this.top = $('product_bundle_container_top');
102
+ } else {
103
+ data.title = data.title.replace('"', "&quot;");
104
+ }
105
+
106
+ data.index = this.itemsCount++;
107
+
108
+ this.template = new Template(this.templateText, this.templateSyntax);
109
+
110
+ Element.insert(this.top, {'after':this.template.evaluate(data)});
111
+
112
+ this.top = $(this.idLabel + '_' + data.index);
113
+
114
+ //set selected type
115
+ if (data.type) {
116
+ $A($(this.idLabel + '_'+data.index+'_type').options).each(function(option){
117
+ if (option.value==data.type) option.selected = true;
118
+ });
119
+ }
120
+
121
+ //set selected is_require
122
+ if (data.required) {
123
+ $A($(this.idLabel + '_'+data.index+'_required').options).each(function(option){
124
+ if (option.value==data.required) option.selected = true;
125
+ });
126
+ }
127
+ // rebind change notifications
128
+ varienWindowOnload(true);
129
+
130
+ return data.index;
131
+ },
132
+
133
+ remove : function(event){
134
+ var element = $(Event.findElement(event, 'div')).parentNode;
135
+ if(element){
136
+ Element.select(element, '.delete').each(function(elem){elem.value='1'});
137
+ Element.select(element, ['input', 'select']).each(function(elem){elem.hide(); elem.className = '';});
138
+ Element.hide(element);
139
+ }
140
+ },
141
+
142
+ changeType : function(event) {
143
+ var element = Event.element(event);
144
+ parts = element.id.split('_');
145
+ i = parts[2];
146
+ if (element.value == 'multi' || element.value == 'checkbox') {
147
+ inputs = $A($$('#' + bSelection.idLabel + '_box_' + i + ' tr.selection input.default'));
148
+ inputs.each(
149
+ function(elem){
150
+ //elem.type = "checkbox";
151
+ changeInputType(elem, 'checkbox');
152
+ }
153
+ );
154
+ /**
155
+ * Hide not needed elements (user defined qty select box)
156
+ */
157
+ inputs = $A($$('#' + bSelection.idLabel + '_box_' + i + ' .qty-box'));
158
+ inputs.each(
159
+ function(elem){
160
+ elem.hide();
161
+ }
162
+ );
163
+
164
+ } else {
165
+ inputs = $A($$('#' + bSelection.idLabel + '_box_' + i + ' tr.selection input.default'));
166
+ have = false;
167
+ for (j=0; j< inputs.length; j++) {
168
+ //inputs[j].type = "radio";
169
+ changeInputType(inputs[j], 'radio');
170
+ if (inputs[j].checked && have) {
171
+ inputs[j].checked = false;
172
+ } else {
173
+ have = true;
174
+ }
175
+ }
176
+
177
+ /**
178
+ * Show user defined select box
179
+ */
180
+ inputs = $A($$('#' + bSelection.idLabel + '_box_' + i + ' .qty-box'));
181
+ inputs.each(
182
+ function(elem){
183
+ elem.show();
184
+ }
185
+ );
186
+ }
187
+ },
188
+
189
+ priceTypeFixed : function() {
190
+ inputs = $A($$('.price-type-box'));
191
+ inputs.each(
192
+ function(elem){
193
+ elem.show();
194
+ }
195
+ );
196
+ },
197
+
198
+ priceTypeDynamic : function() {
199
+ inputs = $A($$('.price-type-box'));
200
+ inputs.each(
201
+ function(elem){
202
+ elem.hide();
203
+ }
204
+ );
205
+ }
206
+ }
207
+
208
+ var optionIndex = 0;
209
+ bOption = new Bundle.Option(optionTemplate);
210
+ //adding data to templates
211
+ <?php foreach ($this->getOptions() as $_option): ?>
212
+ optionIndex = bOption.add(<?php echo $_option->toJson() ?>);
213
+ <?php if ($_option->getSelections()):?>
214
+ <?php foreach ($_option->getSelections() as $_selection): ?>
215
+ <?php $_selection->setName($this->escapeHtml($_selection->getName())); ?>
216
+ bSelection.addRow(optionIndex, <?php echo $_selection->toJson() ?>);
217
+ <?php endforeach; ?>
218
+ <?php endif; ?>
219
+ <?php endforeach; ?>
220
+ /**
221
+ * Adding event on price type select box of product to hide or show prices for selections
222
+ */
223
+ function togglePriceType() {
224
+ if ($('price_type').value == '1') {
225
+ bOption.priceTypeFixed();
226
+ } else {
227
+ bOption.priceTypeDynamic();
228
+ }
229
+ }
230
+
231
+ togglePriceType();
232
+
233
+ Event.observe('price_type', 'change', togglePriceType);
234
+
235
+ </script>
app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option/search.phtml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="entry-edit">
28
+ <div class="entry-edit-head">
29
+ <div style="float: right;"><?php echo $this->getButtonsHtml() ?></div>
30
+ <h4 class="fieldset-legend <?php echo ($this->getHeaderCssClass()) ? $this->getHeaderCssClass().' icon-head' : '' ?>"><?php echo $this->getHeaderText() ?></h4>
31
+ </div>
32
+ <fieldset>
33
+ <?php echo $this->getChildHtml() ?>
34
+ </fieldset>
35
+ </div>
app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option/selection.phtml ADDED
@@ -0,0 +1,352 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type="text/javascript">
28
+ //<![CDATA[
29
+
30
+ var bundleTemplateBox = '<table class="border" cellpadding="0" cellspacing="0">' +
31
+ ' <thead>' +
32
+ ' <tr class="headings">' +
33
+ ' <th><?php echo $this->jsQuoteEscape(Mage::helper('catalog')->__('Name')) ?></th>' +
34
+ <?php if ($this->getCanReadPrice() !== false) : ?>
35
+ ' <th class="type-price price-type-box"><?php echo $this->jsQuoteEscape(Mage::helper('catalog')->__('Price')) ?></th>' +
36
+ ' <th class="type-type price-type-box"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('Price Type')) ?></th>' +
37
+ <?php endif; ?>
38
+ ' <th class="type-price"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('Default Qty')) ?></th>' +
39
+ ' <th class="type-uqty qty-box"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('User Defined Qty')) ?></th>' +
40
+ ' <th class="type-order"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('Position')) ?></th>' +
41
+ ' <th style="width:1px"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('Default')) ?></th>' +
42
+ ' <th class="last">&nbsp;</th>' +
43
+ ' </tr>' +
44
+ ' </thead> ' +
45
+ ' <tbody>' +
46
+ ' </tbody>' +
47
+ '</table>';
48
+
49
+ var bundleTemplateRow ='<td>' +
50
+ ' <input type="hidden" id="<?php echo $this->getFieldId() ?>_id_{{index}}" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][selection_id]" value="{{selection_id}}">' +
51
+ ' <input type="hidden" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][option_id]" value="{{option_id}}">' +
52
+ ' <input type="hidden" class="product" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][product_id]" value="{{product_id}}">' +
53
+ ' <input type="hidden" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][delete]" value="" class="delete">' +
54
+ ' {{name}}<br />' +
55
+ ' <div class="nobr">' +
56
+ ' <strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong> {{sku}}' +
57
+ ' </div>' +
58
+ '</td>' +
59
+ <?php if ($this->getCanReadPrice() !== false) : ?>
60
+ '<td class="price-type-box"><input id="<?php echo $this->getFieldId() ?>_{{index}}_price_value" class="input-text required-entry validate-zero-or-greater" type="text" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][selection_price_value]" value="{{selection_price_value}}"<?php if($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?>></td>' +
61
+ '<td class="price-type-box"><?php echo $this->getPriceTypeSelectHtml() ?><div><?php echo $this->getCheckboxScopeHtml() ?></div></td>' +
62
+ <?php else : ?>
63
+ '<input type="hidden" id="<?php echo $this->getFieldId(); ?>_{{index}}_price_value" name="<?php echo $this->getFieldName(); ?>[{{parentIndex}}][{{index}}][selection_price_value]" value="0" />' +
64
+ '<input type="hidden" id="<?php echo $this->getFieldId(); ?>_{{index}}_price_type" name="<?php echo $this->getFieldName(); ?>[{{parentIndex}}][{{index}}][selection_price_type]" value="0" />' +
65
+ <?php if ($this->isUsedWebsitePrice()): ?>
66
+ '<input type="hidden" id="<?php echo $this->getFieldId(); ?>_{{index}}_price_scope" name="<?php echo $this->getFieldName(); ?>[{{parentIndex}}][{{index}}][default_price_scope]" value="1" />' +
67
+ <?php endif; ?>
68
+ <?php endif; ?>
69
+ '<td><input class="input-text required-entry validate-greater-zero-based-on-option validate-zero-or-greater" type="text" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][selection_qty]" value="{{selection_qty}}"></td>' +
70
+ '<td class="qty-box"><?php echo $this->getQtyTypeSelectHtml() ?></td>' +
71
+ '<td><input class="input-text required-entry validate-zero-or-greater" type="text" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][position]" value="{{position}}"></td>' +
72
+ '<td class="a-center"><input onclick="bSelection.checkGroup(event)" type="{{option_type}}" class="default" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][is_default]" value="1" {{checked}}></td>' +
73
+ '<td class="last"><span title="Delete Row"><?php echo $this->getSelectionDeleteButtonHtml() ?></span></td>';
74
+
75
+ Bundle.Selection = Class.create();
76
+ Bundle.Selection.prototype = {
77
+ idLabel : '<?php echo $this->getFieldId() ?>',
78
+ scopePrice : <?php echo (int)$this->isUsedWebsitePrice() ?>,
79
+ templateSyntax : /(^|.|\r|\n)({{(\w+)}})/,
80
+ templateBox : '',
81
+ templateRow : '',
82
+ itemsCount : 0,
83
+ row : null,
84
+ gridSelection : new Hash(),
85
+
86
+ initialize : function() {
87
+ this.templateBox = '<div class="grid tier form-list" id="' + this.idLabel + '_box_{{parentIndex}}">' + bundleTemplateBox + '</div>';
88
+
89
+ this.templateRow = '<tr class="selection" id="' + this.idLabel + '_row_{{index}}">' + bundleTemplateRow + '</tr>';
90
+ },
91
+
92
+ showSearch : function(event) {
93
+ var element = Event.findElement(event, 'div');
94
+ var parts = element.id.split('_');
95
+
96
+ var products = new Array();
97
+
98
+ var inputs = $A($$('#' + element.id + ' tr.selection input.product'));
99
+ for (i=0; i<inputs.length; i++) {
100
+ products.push(inputs[i].value);
101
+ }
102
+
103
+ this.gridSelection.set(parts[2], $H({}));
104
+
105
+ new Ajax.Updater(bOption.idLabel + '_search_' + parts[2], '<?php echo $this->getSelectionSearchUrl() ?>', {
106
+ method: 'post',
107
+ parameters : {'index' : parts[2], 'products[]' : products, 'form_key': FORM_KEY},
108
+ evalScripts : true
109
+ });
110
+
111
+ if (Event.element(event).tagName.toLowerCase() != 'button') {
112
+ var button = Event.element(event).up('button');
113
+ } else {
114
+ var button = Event.element(event);
115
+ }
116
+ button.hide();
117
+ },
118
+
119
+ addRow : function (parentIndex, data) {
120
+ var box = null;
121
+ if (!(box = $(this.idLabel + '_box_' + parentIndex))) {
122
+ this.addBox(parentIndex);
123
+ box = $(this.idLabel + '_box_' + parentIndex);
124
+ } else {
125
+ box.show();
126
+ }
127
+
128
+ var option_type = $(bOption.idLabel + '_' + parentIndex + '_type');
129
+
130
+ if(!data){
131
+ var data = {};
132
+ }
133
+
134
+ if (data.can_read_price != undefined && !data.can_read_price) {
135
+ data.selection_price_value = '';
136
+ } else {
137
+ data.selection_price_value = Number(data.selection_price_value).toFixed(2);
138
+ }
139
+
140
+ data.index = this.itemsCount++;
141
+ data.parentIndex = parentIndex;
142
+
143
+ if (option_type.value == 'multi' || option_type.value == 'checkbox') {
144
+ data.option_type = 'checkbox';
145
+ } else {
146
+ data.option_type = 'radio';
147
+ }
148
+
149
+ if (data.is_default == 1) {
150
+ data.checked = 'checked="checked"';
151
+ }
152
+
153
+ this.template = new Template(this.templateRow, this.templateSyntax);
154
+ var tbody = $$('#' + this.idLabel + '_box_' + parentIndex + ' tbody');
155
+
156
+ Element.insert(tbody[0], {'bottom':this.template.evaluate(data)});
157
+
158
+ if (data.selection_price_type) {
159
+ $A($(this.idLabel + '_'+data.index+'_price_type').options).each(function(option){
160
+ if (option.value==data.selection_price_type) option.selected = true;
161
+ });
162
+ }
163
+
164
+ if (data.selection_price_type) {
165
+ $A($(this.idLabel + '_'+data.index+'_can_change_qty').options).each(function(option){
166
+ if (option.value==data.selection_can_change_qty) option.selected = true;
167
+ });
168
+ }
169
+
170
+ var checkbox = $(this.idLabel + '_'+data.index+'_price_scope');
171
+ if (checkbox && this.scopePrice) {
172
+ if (data.price_scope === undefined) {
173
+ checkbox.up().hide();
174
+ } else if(!data.price_scope) {
175
+ checkbox.checked = true;
176
+ this.addScope(null, checkbox);
177
+ }
178
+ }
179
+
180
+ this.bindScopeCheckbox();
181
+
182
+ if (option_type.value == 'multi' || option_type.value == 'checkbox') {
183
+ /**
184
+ * Hide not needed elements (user defined qty select box)
185
+ */
186
+ inputs = $A($$('#' + this.idLabel + '_box_' + data.parentIndex + ' .qty-box'));
187
+ inputs.each(
188
+ function(elem){
189
+ elem.hide();
190
+ }
191
+ );
192
+ }
193
+
194
+ if (!$('price_type') || $('price_type').value != '1') {
195
+ /**
196
+ * Hide not needed elements (price type select and price input)
197
+ */
198
+ inputs = $A($$('#' + this.idLabel + '_box_' + data.parentIndex + ' .price-type-box'));
199
+ inputs.each(
200
+ function(elem){
201
+ elem.hide();
202
+ }
203
+ );
204
+ }
205
+ },
206
+
207
+ bindScopeCheckbox : function(){
208
+ var checkboxes = $$('.bundle-option-price-scope-checkbox');
209
+ for (var i=0;i<checkboxes.length;i++) {
210
+ if (!$(checkboxes[i]).binded) {
211
+ $(checkboxes[i]).binded = true;
212
+ Event.observe(checkboxes[i], 'click', this.addScope.bind(this));
213
+ }
214
+ }
215
+ },
216
+
217
+ addScope : function(event, element){
218
+ if (element == undefined) {
219
+ element = $(Event.element(event));
220
+ }
221
+ var priceValue = $(element.id.sub('scope', 'value'));
222
+ var priceType = $(element.id.sub('scope', 'type'));
223
+
224
+ if (element.checked) {
225
+ priceValue.disable();
226
+ priceType.disable();
227
+ } else {
228
+ priceValue.enable();
229
+ priceType.enable();
230
+ }
231
+ },
232
+
233
+ addBox : function (parentIndex) {
234
+ var div = $(bOption.idLabel + '_' + parentIndex)
235
+ this.template = new Template(this.templateBox, this.templateSyntax);
236
+ var data = {'parentIndex' : parentIndex};
237
+ Element.insert(div, {'bottom':this.template.evaluate(data)});
238
+ },
239
+
240
+ remove : function(event) {
241
+ var element = Event.findElement(event, 'tr');
242
+ var container = Event.findElement(event, 'div');
243
+
244
+ if (element) {
245
+ Element.select(element, '.delete').each(function(elem){elem.value='1'});
246
+ Element.select(element, ['input', 'select']).each(function(elem){elem.hide()});
247
+ Element.removeClassName(element, 'selection');
248
+ Element.hide(element);
249
+
250
+ if (container) {
251
+ if ($$('#' + container.id + ' tr.selection')) {
252
+ if (!$$('#' + container.id + ' tr.selection').length) {
253
+ container.hide();
254
+ }
255
+ }
256
+ }
257
+ }
258
+ },
259
+
260
+ checkGroup : function(event) {
261
+ var element = Event.element(event);
262
+ if (element.type == 'radio') {
263
+ var box = element.up('div');
264
+
265
+ var inputs = $$('div#' + box.id + ' input.default');
266
+ if (inputs) {
267
+ for (i=0; i< inputs.length; i++) {
268
+ if (inputs[i].name != element.name) {
269
+ inputs[i].checked = false;
270
+ }
271
+ }
272
+ }
273
+ }
274
+ },
275
+
276
+ productGridAddSelected : function(event) {
277
+ var element = Event.findElement(event, 'button');
278
+ var parts = element.id.split('_');
279
+
280
+ $(bOption.idLabel + '_search_' + parts[2]).innerHTML = '';
281
+ $(bOption.idLabel + '_' + parts[2] + '_add_button').show();
282
+
283
+ this.gridSelection.get(parts[2]).each(
284
+ function(pair) {
285
+ var qty = pair.value.get('qty');
286
+ var data = {
287
+ 'name' : pair.value.get('name'),
288
+ 'selection_price_value' : 0,
289
+ 'selection_qty' : (qty == '' ? 1 : qty),
290
+ 'sku' : pair.value.get('sku'),
291
+ 'position' : 0,
292
+ 'product_id' : pair.key,
293
+ 'option_id' : $(bOption.idLabel + '_id_' + parts[2]).value
294
+ };
295
+ bSelection.addRow(parts[2], data);
296
+ }
297
+ );
298
+ },
299
+
300
+ productGridRowInit : function(grid, row){
301
+ var checkbox = $(row).getElementsByClassName('checkbox')[0];
302
+ var inputs = $(row).getElementsByClassName('input-text');
303
+ for (var i = 0; i < inputs.length; i++) {
304
+ inputs[i].checkbox = checkbox;
305
+ Event.observe(inputs[i], 'keyup', this.productGridRowInputChange.bind(this));
306
+ Event.observe(inputs[i], 'change', this.productGridRowInputChange.bind(this));
307
+ }
308
+ },
309
+
310
+ productGridCheckboxCheck : function(grid, element, checked) {
311
+ var id = element.up('table').id.split('_')[4];
312
+ if (element.value > 0) {
313
+ if (element.checked) {
314
+ var tr = element.parentNode.parentNode;
315
+ if (!this.gridSelection.get(id)) {
316
+ this.gridSelection.set(id, new Hash());
317
+ }
318
+ this.gridSelection.get(id).set(element.value, $H({}));
319
+ this.gridSelection.get(id).get(element.value).set('name', tr.select('td.name')[0].innerHTML);
320
+ this.gridSelection.get(id).get(element.value).set('qty', tr.select('input.qty')[0].value);
321
+ this.gridSelection.get(id).get(element.value).set('sku', tr.select('td.sku')[0].innerHTML);
322
+ } else {
323
+ this.gridSelection.get(id).unset(element.value);
324
+ }
325
+ }
326
+ },
327
+
328
+ productGridRowClick : function(grid, event) {
329
+ var trElement = Event.findElement(event, 'tr');
330
+ var isInput = Event.element(event).tagName == 'INPUT';
331
+ if (trElement) {
332
+ var checkbox = Element.select(trElement, 'input');
333
+ if (checkbox[0]) {
334
+ var checked = isInput ? checkbox[0].checked : !checkbox[0].checked;
335
+ grid.setCheckboxChecked(checkbox[0], checked);
336
+ }
337
+ }
338
+ },
339
+
340
+ productGridRowInputChange : function(event) {
341
+ var element = Event.element(event);
342
+ if (!element.checkbox.checked) {
343
+ return;
344
+ }
345
+ var id = element.up('table').id.split('_')[4];
346
+ this.gridSelection.get(id).get(element.checkbox.value).set('qty', element.value);
347
+ }
348
+ }
349
+
350
+ bSelection = new Bundle.Selection();
351
+ //]]>
352
+ </script>
app/design/adminhtml/default/default/template/bundle/sales/creditmemo/create/items/renderer.phtml ADDED
@@ -0,0 +1,411 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * @see Mage_Bundle_Block_Adminhtml_Sales_Order_Items_Renderer
30
+ */
31
+ ?>
32
+
33
+ <?php $_item = $this->getItem() ?>
34
+ <?php $items = $this->getChilds($_item); ?>
35
+ <?php $_count = count ($items) ?>
36
+ <?php $_index = 0 ?>
37
+
38
+ <?php $_prevOptionId = '' ?>
39
+
40
+ <?php if($this->getOrderOptions() || $_item->getDescription()): ?>
41
+ <?php $_showlastRow = true ?>
42
+ <?php else: ?>
43
+ <?php $_showlastRow = false ?>
44
+ <?php endif; ?>
45
+
46
+ <?php foreach ($items as $_item): ?>
47
+ <?php $this->setPriceDataObject($_item) ?>
48
+ <?php $attributes = $this->getSelectionAttributes($_item) ?>
49
+ <?php if ($_item->getOrderItem()->getParentItem()): ?>
50
+ <?php if ($_prevOptionId != $attributes['option_id']): ?>
51
+ <tr>
52
+ <td><div class="option-label"><?php echo $attributes['option_label'] ?></div></td>
53
+ <td>&nbsp;</td>
54
+ <td>&nbsp;</td>
55
+ <td>&nbsp;</td>
56
+ <td>&nbsp;</td>
57
+ <td>&nbsp;</td>
58
+ <td>&nbsp;</td>
59
+ <td>&nbsp;</td>
60
+ <td class="last">&nbsp;</td>
61
+ </tr>
62
+ <?php $_prevOptionId = $attributes['option_id'] ?>
63
+ <?php endif; ?>
64
+ <?php endif; ?>
65
+ <tr<?php echo (++$_index==$_count && !$_showlastRow)?' class="border"':'' ?>>
66
+ <?php if (!$_item->getOrderItem()->getParentItem()): ?>
67
+ <td><h5 class="title"><?php echo $this->escapeHtml($_item->getName()) ?></h5>
68
+ <div>
69
+ <strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
70
+ <?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->escapeHtml($_item->getSku()))); ?>
71
+ </div>
72
+ </td>
73
+ <?php else: ?>
74
+ <td><div class="option-value"><?php echo $this->getValueHtml($_item)?></div></td>
75
+ <?php endif; ?>
76
+ <td class="a-right">
77
+ <?php if ($this->canShowPriceInfo($_item)): ?>
78
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
79
+ <span class="price-excl-tax">
80
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
81
+ <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
82
+ <?php endif; ?>
83
+
84
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
85
+ <?php
86
+ echo $this->displayPrices(
87
+ $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
88
+ $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
89
+ );
90
+ ?>
91
+ <?php else: ?>
92
+ <?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?>
93
+ <?php endif; ?>
94
+
95
+
96
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
97
+ <br />
98
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
99
+ <small>
100
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
101
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
102
+ <?php endforeach; ?>
103
+ </small>
104
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
105
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
106
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></small></span>
107
+ <?php endforeach; ?>
108
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
109
+ <small>
110
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
111
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
112
+ <?php endforeach; ?>
113
+ </small>
114
+ <?php endif; ?>
115
+
116
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
117
+ <br />
118
+ <span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
119
+ <?php
120
+ echo $this->displayPrices(
121
+ $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
122
+ $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
123
+ );
124
+ ?>
125
+ </span>
126
+ <?php endif; ?>
127
+ <?php endif; ?>
128
+ </span>
129
+ <br />
130
+ <?php endif; ?>
131
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
132
+ <span class="price-incl-tax">
133
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
134
+ <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
135
+ <?php endif; ?>
136
+ <?php $_incl = $this->helper('checkout')->getPriceInclTax($_item); ?>
137
+ <?php $_baseIncl = $this->helper('checkout')->getBasePriceInclTax($_item); ?>
138
+
139
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
140
+ <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?>
141
+ <?php else: ?>
142
+ <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?>
143
+ <?php endif; ?>
144
+
145
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
146
+ <br />
147
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
148
+ <small>
149
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
150
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
151
+ <?php endforeach; ?>
152
+ </small>
153
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
154
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
155
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span>
156
+ <?php endforeach; ?>
157
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
158
+ <small>
159
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
160
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
161
+ <?php endforeach; ?>
162
+ </small>
163
+ <?php endif; ?>
164
+
165
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
166
+ <br />
167
+ <span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?></span>
168
+ <?php endif; ?>
169
+ <?php endif; ?>
170
+ </span>
171
+ <?php endif; ?>
172
+ <?php else: ?>
173
+ &nbsp;
174
+ <?php endif; ?>
175
+ </td>
176
+ <td>
177
+ <?php if ($this->canShowPriceInfo($_item)): ?>
178
+ <table cellspacing="0" class="qty-table">
179
+ <tr>
180
+ <td><?php echo Mage::helper('sales')->__('Ordered') ?></td>
181
+ <td><strong><?php echo $_item->getOrderItem()->getQtyOrdered()*1 ?></strong></td>
182
+ </tr>
183
+ <?php if ((float) $_item->getOrderItem()->getQtyInvoiced()): ?>
184
+ <tr>
185
+ <td><?php echo Mage::helper('sales')->__('Invoiced') ?></td>
186
+ <td><strong><?php echo $_item->getOrderItem()->getQtyInvoiced()*1 ?></strong></td>
187
+ </tr>
188
+ <?php endif; ?>
189
+ <?php if ((float) $_item->getOrderItem()->getQtyShipped() && $this->isShipmentSeparately($_item)): ?>
190
+ <tr>
191
+ <td><?php echo Mage::helper('sales')->__('Shipped') ?></td>
192
+ <td><strong><?php echo $_item->getOrderItem()->getQtyShipped()*1 ?></strong></td>
193
+ </tr>
194
+ <?php endif; ?>
195
+ <?php if ((float) $_item->getOrderItem()->getQtyRefunded()): ?>
196
+ <tr>
197
+ <td><?php echo Mage::helper('sales')->__('Refunded') ?></td>
198
+ <td><strong><?php echo $_item->getOrderItem()->getQtyRefunded()*1 ?></strong></td>
199
+ </tr>
200
+ <?php endif; ?>
201
+ <?php if ((float) $_item->getOrderItem()->getQtyCanceled()): ?>
202
+ <tr>
203
+ <td><?php echo Mage::helper('sales')->__('Canceled') ?></td>
204
+ <td><strong><?php echo $_item->getOrderItem()->getQtyCanceled()*1 ?></strong></td>
205
+ </tr>
206
+ <?php endif; ?>
207
+ </table>
208
+ <?php elseif ($this->isShipmentSeparately($_item)): ?>
209
+ <table cellspacing="0" class="qty-table">
210
+ <tr>
211
+ <td><?php echo Mage::helper('sales')->__('Ordered') ?></td>
212
+ <td><strong><?php echo $_item->getOrderItem()->getQtyOrdered()*1 ?></strong></td>
213
+ </tr>
214
+ <?php if ((float) $_item->getOrderItem()->getQtyShipped()): ?>
215
+ <tr>
216
+ <td><?php echo Mage::helper('sales')->__('Shipped') ?></td>
217
+ <td><strong><?php echo $_item->getOrderItem()->getQtyShipped()*1 ?></strong></td>
218
+ </tr>
219
+ <?php endif; ?>
220
+ </table>
221
+ <?php else: ?>
222
+ &nbsp;
223
+ <?php endif; ?>
224
+ </td>
225
+ <?php if ($this->canParentReturnToStock($_item)) : ?>
226
+ <td class="a-center">
227
+ <?php if ($this->canShowPriceInfo($_item)): ?>
228
+ <?php if ($this->canReturnItemToStock($_item)) : ?>
229
+ <input type="checkbox" name="creditmemo[items][<?php echo $_item->getOrderItemId() ?>][back_to_stock]" value="1"<?php if ($_item->getBackToStock()):?> checked="checked"<?php endif;?> />
230
+ <?php endif; ?>
231
+ <?php else: ?>
232
+ &nbsp;
233
+ <?php endif; ?>
234
+ </td>
235
+ <?php endif; ?>
236
+ <td class="a-center">
237
+ <?php if ($this->canShowPriceInfo($_item)): ?>
238
+ <?php if ($this->canEditQty()) : ?>
239
+ <input type="text" class="input-text qty-input" name="creditmemo[items][<?php echo $_item->getOrderItemId() ?>][qty]" value="<?php echo $_item->getQty()*1 ?>" />
240
+ <?php else: ?>
241
+ <?php echo $_item->getQty()*1 ?>
242
+ <?php endif; ?>
243
+ <?php else: ?>
244
+ &nbsp;
245
+ <?php endif; ?>
246
+ </td>
247
+ <td class="a-right">
248
+ <?php if ($this->canShowPriceInfo($_item)): ?>
249
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
250
+ <span class="price-excl-tax">
251
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
252
+ <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
253
+ <?php endif; ?>
254
+
255
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
256
+ <?php
257
+ echo $this->displayPrices(
258
+ $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
259
+ $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
260
+ );
261
+ ?>
262
+ <?php else: ?>
263
+ <?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?>
264
+ <?php endif; ?>
265
+
266
+
267
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
268
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
269
+ <small>
270
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
271
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
272
+ <?php endforeach; ?>
273
+ </small>
274
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
275
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
276
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></small></span>
277
+ <?php endforeach; ?>
278
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
279
+ <small>
280
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
281
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
282
+ <?php endforeach; ?>
283
+ </small>
284
+ <?php endif; ?>
285
+
286
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
287
+ <br />
288
+ <span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
289
+ <?php
290
+ echo $this->displayPrices(
291
+ $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
292
+ $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
293
+ );
294
+ ?>
295
+ </span>
296
+ <?php endif; ?>
297
+ <?php endif; ?>
298
+ </span>
299
+ <br />
300
+ <?php endif; ?>
301
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
302
+ <span class="price-incl-tax">
303
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
304
+ <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
305
+ <?php endif; ?>
306
+ <?php $_incl = $this->helper('checkout')->getSubtotalInclTax($_item); ?>
307
+ <?php $_baseIncl = $this->helper('checkout')->getBaseSubtotalInclTax($_item); ?>
308
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
309
+ <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?>
310
+ <?php else: ?>
311
+ <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?>
312
+ <?php endif; ?>
313
+
314
+
315
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
316
+
317
+ <br />
318
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
319
+ <small>
320
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
321
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
322
+ <?php endforeach; ?>
323
+ </small>
324
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
325
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
326
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span>
327
+ <?php endforeach; ?>
328
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
329
+ <small>
330
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
331
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
332
+ <?php endforeach; ?>
333
+ </small>
334
+ <?php endif; ?>
335
+
336
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
337
+ <br /><span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?></span>
338
+ <?php endif; ?>
339
+ <?php endif; ?>
340
+ </span>
341
+ <?php endif; ?>
342
+ </span>
343
+ <?php else: ?>
344
+ &nbsp;
345
+ <?php endif; ?>
346
+ </td>
347
+ <td class="a-right">
348
+ <?php if ($this->canShowPriceInfo($_item)): ?>
349
+ <?php echo $this->displayPriceAttribute('tax_amount') ?>
350
+ <?php else: ?>
351
+ &nbsp;
352
+ <?php endif; ?>
353
+ </td>
354
+ <td class="a-right">
355
+ <?php if ($this->canShowPriceInfo($_item)): ?>
356
+ <?php echo $this->displayPriceAttribute('discount_amount') ?>
357
+ <?php else: ?>
358
+ &nbsp;
359
+ <?php endif; ?>
360
+ </td>
361
+ <td class="a-right last">
362
+ <?php if ($this->canShowPriceInfo($_item)): ?>
363
+ <?php echo $this->displayPrices(
364
+ $_item->getBaseRowTotal() + $_item->getBaseTaxAmount() - $_item->getBaseDiscountAmount() + $_item->getBaseHiddenTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmount(),
365
+ $_item->getRowTotal() + $_item->getTaxAmount() - $_item->getDiscountAmount() + $_item->getHiddenTaxAmount() + $_item->getWeeeTaxAppliedRowAmount()
366
+ ) ?>
367
+ <?php else: ?>
368
+ &nbsp;
369
+ <?php endif; ?>
370
+ </td>
371
+ </tr>
372
+ <?php endforeach; ?>
373
+ <?php if($_showlastRow): ?>
374
+ <tr class="border">
375
+ <td>
376
+ <?php if ($this->getOrderOptions($_item->getOrderItem())): ?>
377
+ <dl class="item-options">
378
+ <?php foreach ($this->getOrderOptions($_item->getOrderItem()) as $option): ?>
379
+ <dt><?php echo $this->escapeHtml($option['label']) ?></dt>
380
+ <dd>
381
+ <?php if (isset($option['custom_view']) && $option['custom_view']): ?>
382
+ <?php echo $option['value'];?>
383
+ <?php else: ?>
384
+ <?php echo Mage::helper('core/string')->truncate($option['value'], 55, '', $_remainder);?>
385
+ <?php if ($_remainder):?>
386
+ ... <span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_remainder ?></span>
387
+ <script type="text/javascript">
388
+ $('<?php echo $_id ?>').hide();
389
+ $('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
390
+ $('<?php echo $_id ?>').up().observe('mouseout', function(){$('<?php echo $_id ?>').hide();});
391
+ </script>
392
+ <?php endif;?>
393
+ <?php endif;?>
394
+ </dd>
395
+ <?php endforeach; ?>
396
+ </dl>
397
+ <?php else: ?>
398
+ &nbsp;
399
+ <?php endif; ?>
400
+ <?php echo $this->escapeHtml($_item->getDescription()) ?>
401
+ </td>
402
+ <td>&nbsp;</td>
403
+ <td>&nbsp;</td>
404
+ <td>&nbsp;</td>
405
+ <td>&nbsp;</td>
406
+ <td>&nbsp;</td>
407
+ <td>&nbsp;</td>
408
+ <td>&nbsp;</td>
409
+ <td class="last">&nbsp;</td>
410
+ </tr>
411
+ <?php endif; ?>
app/design/adminhtml/default/default/template/bundle/sales/creditmemo/view/items/renderer.phtml ADDED
@@ -0,0 +1,341 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * @see Mage_Bundle_Block_Adminhtml_Sales_Order_Items_Renderer
30
+ */
31
+ ?>
32
+
33
+ <?php $_item = $this->getItem() ?>
34
+ <?php $items = $this->getChilds($_item); ?>
35
+ <?php $_count = count ($items) ?>
36
+ <?php $_index = 0 ?>
37
+
38
+ <?php $_prevOptionId = '' ?>
39
+
40
+ <?php if($this->getOrderOptions() || $_item->getDescription()): ?>
41
+ <?php $_showlastRow = true ?>
42
+ <?php else: ?>
43
+ <?php $_showlastRow = false ?>
44
+ <?php endif; ?>
45
+
46
+ <?php foreach ($items as $_item): ?>
47
+ <?php $this->setPriceDataObject($_item) ?>
48
+ <?php $attributes = $this->getSelectionAttributes($_item) ?>
49
+ <?php if ($_item->getOrderItem()->getParentItem()): ?>
50
+ <?php if ($_prevOptionId != $attributes['option_id']): ?>
51
+ <tr>
52
+ <td><div class="option-label"><?php echo $attributes['option_label'] ?></div></td>
53
+ <td>&nbsp;</td>
54
+ <td>&nbsp;</td>
55
+ <td>&nbsp;</td>
56
+ <td>&nbsp;</td>
57
+ <td>&nbsp;</td>
58
+ <td class="last">&nbsp;</td>
59
+ </tr>
60
+ <?php $_prevOptionId = $attributes['option_id'] ?>
61
+ <?php endif; ?>
62
+ <?php endif; ?>
63
+ <tr<?php echo (++$_index==$_count && !$_showlastRow)?' class="border"':'' ?>>
64
+ <?php if (!$_item->getOrderItem()->getParentItem()): ?>
65
+ <td><h5 class="title"><?php echo $this->escapeHtml($_item->getName()) ?></h5>
66
+ <div>
67
+ <strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
68
+ <?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->escapeHtml($_item->getSku()))); ?>
69
+ </div>
70
+ </td>
71
+ <?php else: ?>
72
+ <td><div class="option-value"><?php echo $this->getValueHtml($_item)?></div></td>
73
+ <?php endif; ?>
74
+ <td class="a-right">
75
+ <?php if ($this->canShowPriceInfo($_item)): ?>
76
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
77
+ <span class="price-excl-tax">
78
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
79
+ <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
80
+ <?php endif; ?>
81
+
82
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
83
+ <?php
84
+ echo $this->displayPrices(
85
+ $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
86
+ $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
87
+ );
88
+ ?>
89
+ <?php else: ?>
90
+ <?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?>
91
+ <?php endif; ?>
92
+
93
+
94
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
95
+ <br />
96
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
97
+ <small>
98
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
99
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
100
+ <?php endforeach; ?>
101
+ </small>
102
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
103
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
104
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></small></span>
105
+ <?php endforeach; ?>
106
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
107
+ <small>
108
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
109
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
110
+ <?php endforeach; ?>
111
+ </small>
112
+ <?php endif; ?>
113
+
114
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
115
+ <br />
116
+ <span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
117
+ <?php
118
+ echo $this->displayPrices(
119
+ $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
120
+ $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
121
+ );
122
+ ?>
123
+ </span>
124
+ <?php endif; ?>
125
+ <?php endif; ?>
126
+ </span>
127
+ <br />
128
+ <?php endif; ?>
129
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
130
+ <span class="price-incl-tax">
131
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
132
+ <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
133
+ <?php endif; ?>
134
+ <?php $_incl = $this->helper('checkout')->getPriceInclTax($_item); ?>
135
+ <?php $_baseIncl = $this->helper('checkout')->getBasePriceInclTax($_item); ?>
136
+
137
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
138
+ <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?>
139
+ <?php else: ?>
140
+ <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?>
141
+ <?php endif; ?>
142
+
143
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
144
+ <br />
145
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
146
+ <small>
147
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
148
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
149
+ <?php endforeach; ?>
150
+ </small>
151
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
152
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
153
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span>
154
+ <?php endforeach; ?>
155
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
156
+ <small>
157
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
158
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
159
+ <?php endforeach; ?>
160
+ </small>
161
+ <?php endif; ?>
162
+
163
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
164
+ <br />
165
+ <span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?></span>
166
+ <?php endif; ?>
167
+ <?php endif; ?>
168
+ </span>
169
+ <?php endif; ?>
170
+ <?php else: ?>
171
+ &nbsp;
172
+ <?php endif; ?>
173
+ </td>
174
+ <td class="a-center">
175
+ <?php if ($this->canShowPriceInfo($_item)): ?>
176
+ <?php echo $_item->getQty()*1 ?>
177
+ <?php else: ?>
178
+ &nbsp;
179
+ <?php endif; ?>
180
+ </td>
181
+ <td class="a-right">
182
+ <?php if ($this->canShowPriceInfo($_item)): ?>
183
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
184
+ <span class="price-excl-tax">
185
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
186
+ <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
187
+ <?php endif; ?>
188
+
189
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
190
+ <?php
191
+ echo $this->displayPrices(
192
+ $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
193
+ $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
194
+ );
195
+ ?>
196
+ <?php else: ?>
197
+ <?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?>
198
+ <?php endif; ?>
199
+
200
+
201
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
202
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
203
+ <small>
204
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
205
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
206
+ <?php endforeach; ?>
207
+ </small>
208
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
209
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
210
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></small></span>
211
+ <?php endforeach; ?>
212
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
213
+ <small>
214
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
215
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
216
+ <?php endforeach; ?>
217
+ </small>
218
+ <?php endif; ?>
219
+
220
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
221
+ <br />
222
+ <span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
223
+ <?php
224
+ echo $this->displayPrices(
225
+ $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
226
+ $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
227
+ );
228
+ ?>
229
+ </span>
230
+ <?php endif; ?>
231
+ <?php endif; ?>
232
+ </span>
233
+ <br />
234
+ <?php endif; ?>
235
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
236
+ <span class="price-incl-tax">
237
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
238
+ <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
239
+ <?php endif; ?>
240
+ <?php $_incl = $this->helper('checkout')->getSubtotalInclTax($_item); ?>
241
+ <?php $_baseIncl = $this->helper('checkout')->getBaseSubtotalInclTax($_item); ?>
242
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
243
+ <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?>
244
+ <?php else: ?>
245
+ <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?>
246
+ <?php endif; ?>
247
+
248
+
249
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
250
+
251
+ <br />
252
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
253
+ <small>
254
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
255
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
256
+ <?php endforeach; ?>
257
+ </small>
258
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
259
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
260
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span>
261
+ <?php endforeach; ?>
262
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
263
+ <small>
264
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
265
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
266
+ <?php endforeach; ?>
267
+ </small>
268
+ <?php endif; ?>
269
+
270
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
271
+ <br /><span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?></span>
272
+ <?php endif; ?>
273
+ <?php endif; ?>
274
+ </span>
275
+ <?php endif; ?>
276
+ </span>
277
+ <?php else: ?>
278
+ &nbsp;
279
+ <?php endif; ?>
280
+ </td>
281
+ <td class="a-right">
282
+ <?php if ($this->canShowPriceInfo($_item)): ?>
283
+ <?php echo $this->displayPriceAttribute('tax_amount') ?>
284
+ <?php else: ?>
285
+ &nbsp;
286
+ <?php endif; ?>
287
+ </td>
288
+ <td class="a-right">
289
+ <?php if ($this->canShowPriceInfo($_item)): ?>
290
+ <?php echo $this->displayPriceAttribute('discount_amount') ?>
291
+ <?php else: ?>
292
+ &nbsp;
293
+ <?php endif; ?>
294
+ </td>
295
+ <td class="a-right last">
296
+ <?php if ($this->canShowPriceInfo($_item)): ?>
297
+ <?php echo $this->displayPrices(
298
+ $_item->getBaseRowTotal() - $_item->getBaseDiscountAmount() + $_item->getBaseTaxAmount() + $_item->getBaseHiddenTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmount(),
299
+ $_item->getRowTotal() - $_item->getDiscountAmount() + $_item->getTaxAmount() + $_item->getHiddenTaxAmount() + $_item->getWeeeTaxAppliedRowAmount()
300
+ ) ?>
301
+ <?php else: ?>
302
+ &nbsp;
303
+ <?php endif; ?>
304
+ </td>
305
+ </tr>
306
+ <?php endforeach; ?>
307
+ <?php if($_showlastRow): ?>
308
+ <tr class="border">
309
+ <td>
310
+ <?php if ($this->getOrderOptions()): ?>
311
+ <dl class="item-options">
312
+ <?php foreach ($this->getOrderOptions() as $option): ?>
313
+ <dt><?php echo $this->escapeHtml($option['label']) ?></dt>
314
+ <dd>
315
+ <?php if (isset($option['custom_view']) && $option['custom_view']): ?>
316
+ <?php echo $option['value'];?>
317
+ <?php else: ?>
318
+ <?php echo Mage::helper('core/string')->truncate($option['value'], 55, '', $_remainder);?>
319
+ <?php if ($_remainder):?>
320
+ ... <span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_remainder ?></span>
321
+ <script type="text/javascript">
322
+ $('<?php echo $_id ?>').hide();
323
+ $('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
324
+ $('<?php echo $_id ?>').up().observe('mouseout', function(){$('<?php echo $_id ?>').hide();});
325
+ </script>
326
+ <?php endif;?>
327
+ <?php endif;?>
328
+ </dd>
329
+ <?php endforeach; ?>
330
+ </dl>
331
+ <?php endif; ?>
332
+ <?php echo $this->escapeHtml($this->getItem()->getDescription()) ?>
333
+ </td>
334
+ <td>&nbsp;</td>
335
+ <td>&nbsp;</td>
336
+ <td>&nbsp;</td>
337
+ <td>&nbsp;</td>
338
+ <td>&nbsp;</td>
339
+ <td class="last">&nbsp;</td>
340
+ </tr>
341
+ <?php endif; ?>
app/design/adminhtml/default/default/template/bundle/sales/invoice/create/items/renderer.phtml ADDED
@@ -0,0 +1,398 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * @see Mage_Bundle_Block_Adminhtml_Sales_Order_Items_Renderer
30
+ */
31
+ ?>
32
+
33
+ <?php $_item = $this->getItem() ?>
34
+ <?php $items = $this->getChilds($_item); ?>
35
+ <?php $_count = count ($items) ?>
36
+ <?php $_index = 0 ?>
37
+
38
+ <?php $_prevOptionId = '' ?>
39
+
40
+ <?php if($this->getOrderOptions() || $_item->getDescription()): ?>
41
+ <?php $_showlastRow = true ?>
42
+ <?php else: ?>
43
+ <?php $_showlastRow = false ?>
44
+ <?php endif; ?>
45
+
46
+ <?php foreach ($items as $_item): ?>
47
+ <?php $this->setPriceDataObject($_item) ?>
48
+ <?php if ($_item->getOrderItem()->getParentItem()): ?>
49
+ <?php $attributes = $this->getSelectionAttributes($_item) ?>
50
+ <?php if ($_prevOptionId != $attributes['option_id']): ?>
51
+ <tr>
52
+ <td><div class="option-label"><?php echo $attributes['option_label'] ?></div></td>
53
+ <td>&nbsp;</td>
54
+ <td>&nbsp;</td>
55
+ <td>&nbsp;</td>
56
+ <td>&nbsp;</td>
57
+ <td>&nbsp;</td>
58
+ <td>&nbsp;</td>
59
+ <td class="last">&nbsp;</td>
60
+ </tr>
61
+ <?php $_prevOptionId = $attributes['option_id'] ?>
62
+ <?php endif; ?>
63
+ <?php endif; ?>
64
+ <tr<?php echo (++$_index==$_count && !$_showlastRow)?' class="border"':'' ?>>
65
+ <?php if (!$_item->getOrderItem()->getParentItem()): ?>
66
+ <td><h5 class="title"><?php echo $this->escapeHtml($_item->getName()) ?></h5>
67
+ <div>
68
+ <strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
69
+ <?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->escapeHtml($_item->getSku()))); ?>
70
+ </div>
71
+ </td>
72
+ <?php else: ?>
73
+ <td><div class="option-value"><?php echo $this->getValueHtml($_item)?></div></td>
74
+ <?php endif; ?>
75
+ <td class="a-right">
76
+ <?php if ($this->canShowPriceInfo($_item)): ?>
77
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
78
+ <span class="price-excl-tax">
79
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
80
+ <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
81
+ <?php endif; ?>
82
+
83
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
84
+ <?php
85
+ echo $this->displayPrices(
86
+ $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
87
+ $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
88
+ );
89
+ ?>
90
+ <?php else: ?>
91
+ <?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?>
92
+ <?php endif; ?>
93
+
94
+
95
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
96
+ <br />
97
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
98
+ <small>
99
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
100
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
101
+ <?php endforeach; ?>
102
+ </small>
103
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
104
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
105
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></small></span>
106
+ <?php endforeach; ?>
107
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
108
+ <small>
109
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
110
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
111
+ <?php endforeach; ?>
112
+ </small>
113
+ <?php endif; ?>
114
+
115
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
116
+ <br />
117
+ <span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
118
+ <?php
119
+ echo $this->displayPrices(
120
+ $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
121
+ $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
122
+ );
123
+ ?>
124
+ </span>
125
+ <?php endif; ?>
126
+ <?php endif; ?>
127
+ </span>
128
+ <br />
129
+ <?php endif; ?>
130
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
131
+ <span class="price-incl-tax">
132
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
133
+ <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
134
+ <?php endif; ?>
135
+ <?php $_incl = $this->helper('checkout')->getPriceInclTax($_item); ?>
136
+ <?php $_baseIncl = $this->helper('checkout')->getBasePriceInclTax($_item); ?>
137
+
138
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
139
+ <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?>
140
+ <?php else: ?>
141
+ <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?>
142
+ <?php endif; ?>
143
+
144
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
145
+ <br />
146
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
147
+ <small>
148
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
149
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
150
+ <?php endforeach; ?>
151
+ </small>
152
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
153
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
154
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span>
155
+ <?php endforeach; ?>
156
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
157
+ <small>
158
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
159
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
160
+ <?php endforeach; ?>
161
+ </small>
162
+ <?php endif; ?>
163
+
164
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
165
+ <br />
166
+ <span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?></span>
167
+ <?php endif; ?>
168
+ <?php endif; ?>
169
+ </span>
170
+ <?php endif; ?>
171
+ <?php else: ?>
172
+ &nbsp;
173
+ <?php endif; ?>
174
+ </td>
175
+ <td>
176
+ <?php if ($this->canShowPriceInfo($_item)): ?>
177
+ <table cellspacing="0" class="qty-table">
178
+ <tr>
179
+ <td><?php echo Mage::helper('sales')->__('Ordered') ?></td>
180
+ <td><strong><?php echo $_item->getOrderItem()->getQtyOrdered()*1 ?></strong></td>
181
+ </tr>
182
+ <?php if ((float) $_item->getOrderItem()->getQtyInvoiced()): ?>
183
+ <tr>
184
+ <td><?php echo Mage::helper('sales')->__('Invoiced') ?></td>
185
+ <td><strong><?php echo $_item->getOrderItem()->getQtyInvoiced()*1 ?></strong></td>
186
+ </tr>
187
+ <?php endif; ?>
188
+ <?php if ((float) $_item->getOrderItem()->getQtyShipped() && $this->isShipmentSeparately($_item)): ?>
189
+ <tr>
190
+ <td><?php echo Mage::helper('sales')->__('Shipped') ?></td>
191
+ <td><strong><?php echo $_item->getOrderItem()->getQtyShipped()*1 ?></strong></td>
192
+ </tr>
193
+ <?php endif; ?>
194
+ <?php if ((float) $_item->getOrderItem()->getQtyRefunded()): ?>
195
+ <tr>
196
+ <td><?php echo Mage::helper('sales')->__('Refunded') ?></td>
197
+ <td><strong><?php echo $_item->getOrderItem()->getQtyRefunded()*1 ?></strong></td>
198
+ </tr>
199
+ <?php endif; ?>
200
+ <?php if ((float) $_item->getOrderItem()->getQtyCanceled()): ?>
201
+ <tr>
202
+ <td><?php echo Mage::helper('sales')->__('Canceled') ?></td>
203
+ <td><strong><?php echo $_item->getOrderItem()->getQtyCanceled()*1 ?></strong></td>
204
+ </tr>
205
+ <?php endif; ?>
206
+ </table>
207
+ <?php elseif ($this->isShipmentSeparately($_item)): ?>
208
+ <table cellspacing="0" class="qty-table">
209
+ <tr>
210
+ <td><?php echo Mage::helper('sales')->__('Ordered') ?></td>
211
+ <td><strong><?php echo $_item->getOrderItem()->getQtyOrdered()*1 ?></strong></td>
212
+ </tr>
213
+ <?php if ((float) $_item->getOrderItem()->getQtyShipped()): ?>
214
+ <tr>
215
+ <td><?php echo Mage::helper('sales')->__('Shipped') ?></td>
216
+ <td><strong><?php echo $_item->getOrderItem()->getQtyShipped()*1 ?></strong></td>
217
+ </tr>
218
+ <?php endif; ?>
219
+ </table>
220
+ <?php else: ?>
221
+ &nbsp;
222
+ <?php endif; ?>
223
+ </td>
224
+ <td class="a-center">
225
+ <?php if ($this->canShowPriceInfo($_item)): ?>
226
+ <?php if ($this->canEditQty()) : ?>
227
+ <input type="text" class="input-text qty-input" name="invoice[items][<?php echo $_item->getOrderItemId() ?>]" value="<?php echo $_item->getQty()*1 ?>" />
228
+ <?php else : ?>
229
+ <?php echo $_item->getQty()*1 ?>
230
+ <?php endif; ?>
231
+ <?php else: ?>
232
+ &nbsp;
233
+ <?php endif; ?>
234
+ </td>
235
+ <td class="a-right">
236
+ <?php if ($this->canShowPriceInfo($_item)): ?>
237
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
238
+ <span class="price-excl-tax">
239
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
240
+ <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
241
+ <?php endif; ?>
242
+
243
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
244
+ <?php
245
+ echo $this->displayPrices(
246
+ $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
247
+ $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
248
+ );
249
+ ?>
250
+ <?php else: ?>
251
+ <?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?>
252
+ <?php endif; ?>
253
+
254
+
255
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
256
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
257
+ <small>
258
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
259
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
260
+ <?php endforeach; ?>
261
+ </small>
262
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
263
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
264
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></small></span>
265
+ <?php endforeach; ?>
266
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
267
+ <small>
268
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
269
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
270
+ <?php endforeach; ?>
271
+ </small>
272
+ <?php endif; ?>
273
+
274
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
275
+ <br />
276
+ <span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
277
+ <?php
278
+ echo $this->displayPrices(
279
+ $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
280
+ $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
281
+ );
282
+ ?>
283
+ </span>
284
+ <?php endif; ?>
285
+ <?php endif; ?>
286
+ </span>
287
+ <br />
288
+ <?php endif; ?>
289
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
290
+ <span class="price-incl-tax">
291
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
292
+ <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
293
+ <?php endif; ?>
294
+ <?php $_incl = $this->helper('checkout')->getSubtotalInclTax($_item); ?>
295
+ <?php $_baseIncl = $this->helper('checkout')->getBaseSubtotalInclTax($_item); ?>
296
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
297
+ <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?>
298
+ <?php else: ?>
299
+ <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?>
300
+ <?php endif; ?>
301
+
302
+
303
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
304
+
305
+ <br />
306
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
307
+ <small>
308
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
309
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
310
+ <?php endforeach; ?>
311
+ </small>
312
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
313
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
314
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span>
315
+ <?php endforeach; ?>
316
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
317
+ <small>
318
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
319
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
320
+ <?php endforeach; ?>
321
+ </small>
322
+ <?php endif; ?>
323
+
324
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
325
+ <br /><span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item),$_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?></span>
326
+ <?php endif; ?>
327
+ <?php endif; ?>
328
+ </span>
329
+ <?php endif; ?>
330
+ </span>
331
+ <?php else: ?>
332
+ &nbsp;
333
+ <?php endif; ?>
334
+ </td>
335
+ <td class="a-right">
336
+ <?php if ($this->canShowPriceInfo($_item)): ?>
337
+ <?php echo $this->displayPriceAttribute('tax_amount') ?>
338
+ <?php else: ?>
339
+ &nbsp;
340
+ <?php endif; ?>
341
+ </td>
342
+ <td class="a-right">
343
+ <?php if ($this->canShowPriceInfo($_item)): ?>
344
+ <?php echo $this->displayPriceAttribute('discount_amount') ?>
345
+ <?php else: ?>
346
+ &nbsp;
347
+ <?php endif; ?>
348
+ </td>
349
+ <td class="a-right last">
350
+ <?php if ($this->canShowPriceInfo($_item)): ?>
351
+ <?php echo $this->displayPrices(
352
+ $_item->getBaseRowTotal() + $_item->getBaseTaxAmount() - $_item->getBaseDiscountAmount() + $_item->getBaseHiddenTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmount(),
353
+ $_item->getRowTotal() + $_item->getTaxAmount() - $_item->getDiscountAmount() + $_item->getHiddenTaxAmount() + $_item->getWeeeTaxAppliedRowAmount()
354
+ ) ?>
355
+ <?php else: ?>
356
+ &nbsp;
357
+ <?php endif; ?>
358
+ </td>
359
+ </tr>
360
+ <?php endforeach; ?>
361
+ <?php if($_showlastRow): ?>
362
+ <tr class="border">
363
+ <td>
364
+ <?php if ($this->getOrderOptions($_item->getOrderItem())): ?>
365
+ <dl class="item-options">
366
+ <?php foreach ($this->getOrderOptions($_item->getOrderItem()) as $option): ?>
367
+ <dt><?php echo $this->escapeHtml($option['label']) ?></dt>
368
+ <dd>
369
+ <?php if (isset($option['custom_view']) && $option['custom_view']): ?>
370
+ <?php echo $option['value'];?>
371
+ <?php else: ?>
372
+ <?php echo Mage::helper('core/string')->truncate($option['value'], 55, '', $_remainder);?>
373
+ <?php if ($_remainder):?>
374
+ ... <span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_remainder ?></span>
375
+ <script type="text/javascript">
376
+ $('<?php echo $_id ?>').hide();
377
+ $('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
378
+ $('<?php echo $_id ?>').up().observe('mouseout', function(){$('<?php echo $_id ?>').hide();});
379
+ </script>
380
+ <?php endif;?>
381
+ <?php endif;?>
382
+ </dd>
383
+ <?php endforeach; ?>
384
+ </dl>
385
+ <?php else: ?>
386
+ &nbsp;
387
+ <?php endif; ?>
388
+ <?php echo $this->escapeHtml($_item->getDescription()) ?>
389
+ </td>
390
+ <td>&nbsp;</td>
391
+ <td>&nbsp;</td>
392
+ <td>&nbsp;</td>
393
+ <td>&nbsp;</td>
394
+ <td>&nbsp;</td>
395
+ <td>&nbsp;</td>
396
+ <td class="last">&nbsp;</td>
397
+ </tr>
398
+ <?php endif; ?>
app/design/adminhtml/default/default/template/bundle/sales/invoice/view/items/renderer.phtml ADDED
@@ -0,0 +1,340 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * @see Mage_Bundle_Block_Adminhtml_Sales_Order_Items_Renderer
30
+ */
31
+ ?>
32
+
33
+ <?php $_item = $this->getItem() ?>
34
+ <?php $items = $this->getChilds($_item); ?>
35
+ <?php $_count = count ($items) ?>
36
+ <?php $_index = 0 ?>
37
+
38
+ <?php $_prevOptionId = '' ?>
39
+
40
+ <?php if($this->getOrderOptions() || $_item->getDescription()): ?>
41
+ <?php $_showlastRow = true ?>
42
+ <?php else: ?>
43
+ <?php $_showlastRow = false ?>
44
+ <?php endif; ?>
45
+
46
+ <?php foreach ($items as $_item): ?>
47
+ <?php $this->setPriceDataObject($_item) ?>
48
+ <?php if ($_item->getOrderItem()->getParentItem()): ?>
49
+ <?php $attributes = $this->getSelectionAttributes($_item) ?>
50
+ <?php if ($_prevOptionId != $attributes['option_id']): ?>
51
+ <tr>
52
+ <td><div class="option-label"><?php echo $attributes['option_label'] ?></div></td>
53
+ <td>&nbsp;</td>
54
+ <td>&nbsp;</td>
55
+ <td>&nbsp;</td>
56
+ <td>&nbsp;</td>
57
+ <td>&nbsp;</td>
58
+ <td class="last">&nbsp;</td>
59
+ </tr>
60
+ <?php $_prevOptionId = $attributes['option_id'] ?>
61
+ <?php endif; ?>
62
+ <?php endif; ?>
63
+ <tr<?php echo (++$_index==$_count && !$_showlastRow)?' class="border"':'' ?>>
64
+ <?php if (!$_item->getOrderItem()->getParentItem()): ?>
65
+ <td><h5 class="title"><?php echo $this->escapeHtml($_item->getName()) ?></h5>
66
+ <div>
67
+ <strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
68
+ <?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->escapeHtml($_item->getSku()))); ?>
69
+ </div>
70
+ <?php else: ?>
71
+ <td><div class="option-value"><?php echo $this->getValueHtml($_item)?></div></td>
72
+ <?php endif; ?>
73
+ <td class="a-right">
74
+ <?php if ($this->canShowPriceInfo($_item)): ?>
75
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
76
+ <span class="price-excl-tax">
77
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
78
+ <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
79
+ <?php endif; ?>
80
+
81
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
82
+ <?php
83
+ echo $this->displayPrices(
84
+ $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
85
+ $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
86
+ );
87
+ ?>
88
+ <?php else: ?>
89
+ <?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?>
90
+ <?php endif; ?>
91
+
92
+
93
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
94
+ <br />
95
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
96
+ <small>
97
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
98
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
99
+ <?php endforeach; ?>
100
+ </small>
101
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
102
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
103
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></small></span>
104
+ <?php endforeach; ?>
105
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
106
+ <small>
107
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
108
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
109
+ <?php endforeach; ?>
110
+ </small>
111
+ <?php endif; ?>
112
+
113
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
114
+ <br />
115
+ <span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
116
+ <?php
117
+ echo $this->displayPrices(
118
+ $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
119
+ $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
120
+ );
121
+ ?>
122
+ </span>
123
+ <?php endif; ?>
124
+ <?php endif; ?>
125
+ </span>
126
+ <br />
127
+ <?php endif; ?>
128
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
129
+ <span class="price-incl-tax">
130
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
131
+ <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
132
+ <?php endif; ?>
133
+ <?php $_incl = $this->helper('checkout')->getPriceInclTax($_item); ?>
134
+ <?php $_baseIncl = $this->helper('checkout')->getBasePriceInclTax($_item); ?>
135
+
136
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
137
+ <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?>
138
+ <?php else: ?>
139
+ <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?>
140
+ <?php endif; ?>
141
+
142
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
143
+ <br />
144
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
145
+ <small>
146
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
147
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
148
+ <?php endforeach; ?>
149
+ </small>
150
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
151
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
152
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span>
153
+ <?php endforeach; ?>
154
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
155
+ <small>
156
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
157
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
158
+ <?php endforeach; ?>
159
+ </small>
160
+ <?php endif; ?>
161
+
162
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
163
+ <br />
164
+ <span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?></span>
165
+ <?php endif; ?>
166
+ <?php endif; ?>
167
+ </span>
168
+ <?php endif; ?>
169
+ <?php else: ?>
170
+ &nbsp;
171
+ <?php endif; ?>
172
+ </td>
173
+ <td class="a-center">
174
+ <?php if ($this->canShowPriceInfo($_item)): ?>
175
+ <?php echo $_item->getQty()*1 ?>
176
+ <?php else: ?>
177
+ &nbsp;
178
+ <?php endif; ?>
179
+ </td>
180
+ <td class="a-right">
181
+ <?php if ($this->canShowPriceInfo($_item)): ?>
182
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
183
+ <span class="price-excl-tax">
184
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
185
+ <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
186
+ <?php endif; ?>
187
+
188
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
189
+ <?php
190
+ echo $this->displayPrices(
191
+ $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
192
+ $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
193
+ );
194
+ ?>
195
+ <?php else: ?>
196
+ <?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?>
197
+ <?php endif; ?>
198
+
199
+
200
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
201
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
202
+ <small>
203
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
204
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
205
+ <?php endforeach; ?>
206
+ </small>
207
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
208
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
209
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></small></span>
210
+ <?php endforeach; ?>
211
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
212
+ <small>
213
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
214
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
215
+ <?php endforeach; ?>
216
+ </small>
217
+ <?php endif; ?>
218
+
219
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
220
+ <br />
221
+ <span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
222
+ <?php
223
+ echo $this->displayPrices(
224
+ $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
225
+ $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
226
+ );
227
+ ?>
228
+ </span>
229
+ <?php endif; ?>
230
+ <?php endif; ?>
231
+ </span>
232
+ <br />
233
+ <?php endif; ?>
234
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
235
+ <span class="price-incl-tax">
236
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
237
+ <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
238
+ <?php endif; ?>
239
+ <?php $_incl = $this->helper('checkout')->getSubtotalInclTax($_item); ?>
240
+ <?php $_baseIncl = $this->helper('checkout')->getBaseSubtotalInclTax($_item); ?>
241
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
242
+ <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?>
243
+ <?php else: ?>
244
+ <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?>
245
+ <?php endif; ?>
246
+
247
+
248
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
249
+
250
+ <br />
251
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
252
+ <small>
253
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
254
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
255
+ <?php endforeach; ?>
256
+ </small>
257
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
258
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
259
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span>
260
+ <?php endforeach; ?>
261
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
262
+ <small>
263
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
264
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
265
+ <?php endforeach; ?>
266
+ </small>
267
+ <?php endif; ?>
268
+
269
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
270
+ <br /><span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?></span>
271
+ <?php endif; ?>
272
+ <?php endif; ?>
273
+ </span>
274
+ <?php endif; ?>
275
+ </span>
276
+ <?php else: ?>
277
+ &nbsp;
278
+ <?php endif; ?>
279
+ </td>
280
+ <td class="a-right">
281
+ <?php if ($this->canShowPriceInfo($_item)): ?>
282
+ <?php echo $this->displayPriceAttribute('tax_amount') ?>
283
+ <?php else: ?>
284
+ &nbsp;
285
+ <?php endif; ?>
286
+ </td>
287
+ <td class="a-right">
288
+ <?php if ($this->canShowPriceInfo($_item)): ?>
289
+ <?php echo $this->displayPriceAttribute('discount_amount') ?>
290
+ <?php else: ?>
291
+ &nbsp;
292
+ <?php endif; ?>
293
+ </td>
294
+ <td class="a-right last">
295
+ <?php if ($this->canShowPriceInfo($_item)): ?>
296
+ <?php echo $this->displayPrices(
297
+ $_item->getBaseRowTotal() + $_item->getBaseTaxAmount() - $_item->getBaseDiscountAmount() + $_item->getBaseHiddenTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmount(),
298
+ $_item->getRowTotal() + $_item->getTaxAmount() - $_item->getDiscountAmount() + $_item->getHiddenTaxAmount() + $_item->getWeeeTaxAppliedRowAmount()
299
+ ) ?>
300
+ <?php else: ?>
301
+ &nbsp;
302
+ <?php endif; ?>
303
+ </td>
304
+ </tr>
305
+ <?php endforeach; ?>
306
+ <?php if($_showlastRow): ?>
307
+ <tr class="border">
308
+ <td>
309
+ <?php if ($this->getOrderOptions()): ?>
310
+ <dl class="item-options">
311
+ <?php foreach ($this->getOrderOptions() as $option): ?>
312
+ <dt><?php echo $this->escapeHtml($option['label']) ?></dt>
313
+ <dd>
314
+ <?php if (isset($option['custom_view']) && $option['custom_view']): ?>
315
+ <?php echo $option['value'];?>
316
+ <?php else: ?>
317
+ <?php echo Mage::helper('core/string')->truncate($option['value'], 55, '', $_remainder);?>
318
+ <?php if ($_remainder):?>
319
+ ... <span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_remainder ?></span>
320
+ <script type="text/javascript">
321
+ $('<?php echo $_id ?>').hide();
322
+ $('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
323
+ $('<?php echo $_id ?>').up().observe('mouseout', function(){$('<?php echo $_id ?>').hide();});
324
+ </script>
325
+ <?php endif;?>
326
+ <?php endif;?>
327
+ </dd>
328
+ <?php endforeach; ?>
329
+ </dl>
330
+ <?php endif; ?>
331
+ <?php echo $this->escapeHtml($this->getItem()->getDescription()) ?>
332
+ </td>
333
+ <td>&nbsp;</td>
334
+ <td>&nbsp;</td>
335
+ <td>&nbsp;</td>
336
+ <td>&nbsp;</td>
337
+ <td>&nbsp;</td>
338
+ <td class="last">&nbsp;</td>
339
+ </tr>
340
+ <?php endif; ?>
app/design/adminhtml/default/default/template/bundle/sales/order/view/items/renderer.phtml ADDED
@@ -0,0 +1,415 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * @see Mage_Bundle_Block_Adminhtml_Sales_Order_View_Items_Renderer
30
+ */
31
+ ?>
32
+
33
+ <?php $_item = $this->getItem() ?>
34
+ <?php $items = array_merge(array($_item), $_item->getChildrenItems()); ?>
35
+ <?php $_count = count ($items) ?>
36
+ <?php $_index = 0 ?>
37
+
38
+ <?php $_prevOptionId = '' ?>
39
+
40
+ <?php if($this->getOrderOptions() || $_item->getDescription() || $this->canDisplayGiftmessage()): ?>
41
+ <?php $_showlastRow = true ?>
42
+ <?php else: ?>
43
+ <?php $_showlastRow = false ?>
44
+ <?php endif; ?>
45
+
46
+ <?php foreach ($items as $_item): ?>
47
+ <?php $this->setPriceDataObject($_item) ?>
48
+ <?php $attributes = $this->getSelectionAttributes($_item) ?>
49
+ <?php if ($_item->getParentItem()): ?>
50
+ <?php if ($_prevOptionId != $attributes['option_id']): ?>
51
+ <tr>
52
+ <td><div class="option-label"><?php echo $attributes['option_label'] ?></div></td>
53
+ <td>&nbsp;</td>
54
+ <td>&nbsp;</td>
55
+ <td>&nbsp;</td>
56
+ <td>&nbsp;</td>
57
+ <td>&nbsp;</td>
58
+ <td>&nbsp;</td>
59
+ <td>&nbsp;</td>
60
+ <td>&nbsp;</td>
61
+ <td class="last">&nbsp;</td>
62
+ </tr>
63
+ <?php $_prevOptionId = $attributes['option_id'] ?>
64
+ <?php endif; ?>
65
+ <?php endif; ?>
66
+ <tr<?php echo (++$_index==$_count && !$_showlastRow)?' class="border"':'' ?>>
67
+ <?php if (!$_item->getParentItem()): ?>
68
+ <td>
69
+ <h5 class="title">
70
+ <span id="order_item_<?php echo $_item->getId() ?>_title"><?php echo $this->escapeHtml($_item->getName()) ?></span>
71
+ </h5>
72
+ <div>
73
+ <strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
74
+ <?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->escapeHtml($_item->getSku()))); ?>
75
+ </div>
76
+ </td>
77
+ <?php else: ?>
78
+ <td><div class="option-value"><?php echo $this->getValueHtml($_item)?></div></td>
79
+ <?php endif; ?>
80
+ <td class="a-center">
81
+ <?php if ($this->canShowPriceInfo($_item)): ?>
82
+ <?php echo $_item->getStatus() ?>
83
+ <?php else: ?>
84
+ &nbsp;
85
+ <?php endif; ?>
86
+ </td>
87
+ <td class="a-right">
88
+ <?php if ($this->canShowPriceInfo($_item)): ?>
89
+ <?php echo $this->displayPriceAttribute('original_price') ?>
90
+ <?php else: ?>
91
+ &nbsp;
92
+ <?php endif; ?>
93
+ </td>
94
+ <td class="a-right">
95
+ <?php if ($this->canShowPriceInfo($_item)): ?>
96
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
97
+ <span class="price-excl-tax">
98
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
99
+ <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
100
+ <?php endif; ?>
101
+
102
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
103
+ <?php
104
+ echo $this->displayPrices(
105
+ $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
106
+ $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
107
+ );
108
+ ?>
109
+ <?php else: ?>
110
+ <?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?>
111
+ <?php endif; ?>
112
+
113
+
114
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
115
+ <br />
116
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
117
+ <small>
118
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
119
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
120
+ <?php endforeach; ?>
121
+ </small>
122
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
123
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
124
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></small></span>
125
+ <?php endforeach; ?>
126
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
127
+ <small>
128
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
129
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
130
+ <?php endforeach; ?>
131
+ </small>
132
+ <?php endif; ?>
133
+
134
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
135
+ <br />
136
+ <span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
137
+ <?php
138
+ echo $this->displayPrices(
139
+ $_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
140
+ $_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
141
+ );
142
+ ?>
143
+ </span>
144
+ <?php endif; ?>
145
+ <?php endif; ?>
146
+ </span>
147
+ <br />
148
+ <?php endif; ?>
149
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
150
+ <span class="price-incl-tax">
151
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
152
+ <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
153
+ <?php endif; ?>
154
+ <?php $_incl = $this->helper('checkout')->getPriceInclTax($_item); ?>
155
+ <?php $_baseIncl = $this->helper('checkout')->getBasePriceInclTax($_item); ?>
156
+
157
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
158
+ <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?>
159
+ <?php else: ?>
160
+ <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?>
161
+ <?php endif; ?>
162
+
163
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
164
+ <br />
165
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
166
+ <small>
167
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
168
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
169
+ <?php endforeach; ?>
170
+ </small>
171
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
172
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
173
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span>
174
+ <?php endforeach; ?>
175
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
176
+ <small>
177
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
178
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
179
+ <?php endforeach; ?>
180
+ </small>
181
+ <?php endif; ?>
182
+
183
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
184
+ <br />
185
+ <span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?></span>
186
+ <?php endif; ?>
187
+ <?php endif; ?>
188
+ </span>
189
+ <?php endif; ?>
190
+ <?php else: ?>
191
+ &nbsp;
192
+ <?php endif; ?>
193
+ </td>
194
+ <td>
195
+ <?php if ($this->canShowPriceInfo($_item)): ?>
196
+ <table cellspacing="0" class="qty-table">
197
+ <tr>
198
+ <td><?php echo Mage::helper('sales')->__('Ordered') ?></td>
199
+ <td><strong><?php echo $_item->getQtyOrdered()*1 ?></strong></td>
200
+ </tr>
201
+ <?php if ((float) $_item->getQtyInvoiced()): ?>
202
+ <tr>
203
+ <td><?php echo Mage::helper('sales')->__('Invoiced') ?></td>
204
+ <td><strong><?php echo $_item->getQtyInvoiced()*1 ?></strong></td>
205
+ </tr>
206
+ <?php endif; ?>
207
+ <?php if ((float) $_item->getQtyShipped() && $this->isShipmentSeparately($_item)): ?>
208
+ <tr>
209
+ <td><?php echo Mage::helper('sales')->__('Shipped') ?></td>
210
+ <td><strong><?php echo $_item->getQtyShipped()*1 ?></strong></td>
211
+ </tr>
212
+ <?php endif; ?>
213
+ <?php if ((float) $_item->getQtyRefunded()): ?>
214
+ <tr>
215
+ <td><?php echo Mage::helper('sales')->__('Refunded') ?></td>
216
+ <td><strong><?php echo $_item->getQtyRefunded()*1 ?></strong></td>
217
+ </tr>
218
+ <?php endif; ?>
219
+ <?php if ((float) $_item->getQtyCanceled()): ?>
220
+ <tr>
221
+ <td><?php echo Mage::helper('sales')->__('Canceled') ?></td>
222
+ <td><strong><?php echo $_item->getQtyCanceled()*1 ?></strong></td>
223
+ </tr>
224
+ <?php endif; ?>
225
+ </table>
226
+ <?php elseif ($this->isShipmentSeparately($_item)): ?>
227
+ <table cellspacing="0" class="qty-table">
228
+ <tr>
229
+ <td><?php echo Mage::helper('sales')->__('Ordered') ?></td>
230
+ <td><strong><?php echo $_item->getQtyOrdered()*1 ?></strong></td>
231
+ </tr>
232
+ <?php if ((float) $_item->getQtyShipped()): ?>
233
+ <tr>
234
+ <td><?php echo Mage::helper('sales')->__('Shipped') ?></td>
235
+ <td><strong><?php echo $_item->getQtyShipped()*1 ?></strong></td>
236
+ </tr>
237
+ <?php endif; ?>
238
+ </table>
239
+ <?php else: ?>
240
+ &nbsp;
241
+ <?php endif; ?>
242
+ </td>
243
+ <td class="a-right">
244
+ <?php if ($this->canShowPriceInfo($_item)): ?>
245
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
246
+ <span class="price-excl-tax">
247
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
248
+ <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
249
+ <?php endif; ?>
250
+
251
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
252
+ <?php
253
+ echo $this->displayPrices(
254
+ $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
255
+ $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
256
+ );
257
+ ?>
258
+ <?php else: ?>
259
+ <?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?>
260
+ <?php endif; ?>
261
+
262
+
263
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
264
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
265
+ <small>
266
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
267
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
268
+ <?php endforeach; ?>
269
+ </small>
270
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
271
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
272
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></small></span>
273
+ <?php endforeach; ?>
274
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
275
+ <small>
276
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
277
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
278
+ <?php endforeach; ?>
279
+ </small>
280
+ <?php endif; ?>
281
+
282
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
283
+ <br />
284
+ <span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
285
+ <?php
286
+ echo $this->displayPrices(
287
+ $_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
288
+ $_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
289
+ );
290
+ ?>
291
+ </span>
292
+ <?php endif; ?>
293
+ <?php endif; ?>
294
+ </span>
295
+ <br />
296
+ <?php endif; ?>
297
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
298
+ <span class="price-incl-tax">
299
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
300
+ <span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
301
+ <?php endif; ?>
302
+ <?php $_incl = $this->helper('checkout')->getSubtotalInclTax($_item); ?>
303
+ <?php $_baseIncl = $this->helper('checkout')->getBaseSubtotalInclTax($_item); ?>
304
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
305
+ <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?>
306
+ <?php else: ?>
307
+ <?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?>
308
+ <?php endif; ?>
309
+
310
+
311
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
312
+
313
+ <br />
314
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
315
+ <small>
316
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
317
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
318
+ <?php endforeach; ?>
319
+ </small>
320
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
321
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
322
+ <span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span>
323
+ <?php endforeach; ?>
324
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
325
+ <small>
326
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
327
+ <span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
328
+ <?php endforeach; ?>
329
+ </small>
330
+ <?php endif; ?>
331
+
332
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
333
+ <br /><span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?></span>
334
+ <?php endif; ?>
335
+ <?php endif; ?>
336
+ </span>
337
+ <?php endif; ?>
338
+ <?php else: ?>
339
+ &nbsp;
340
+ <?php endif; ?>
341
+ </td>
342
+ <td class="a-right">
343
+ <?php if ($this->canShowPriceInfo($_item)): ?>
344
+ <?php echo $this->displayPriceAttribute('tax_amount') ?>
345
+ <?php else: ?>
346
+ &nbsp;
347
+ <?php endif; ?>
348
+ </td>
349
+
350
+ <td class="a-right">
351
+ <?php if ($this->canShowPriceInfo($_item)): ?>
352
+ <?php echo $this->displayTaxPercent($_item) ?>
353
+ <?php else: ?>
354
+ &nbsp;
355
+ <?php endif; ?>
356
+ </td>
357
+ <td class="a-right">
358
+ <?php if ($this->canShowPriceInfo($_item)): ?>
359
+ <?php echo $this->displayPriceAttribute('discount_amount') ?>
360
+ <?php else: ?>
361
+ &nbsp;
362
+ <?php endif; ?>
363
+ </td>
364
+ <td class="a-right last">
365
+ <?php if ($this->canShowPriceInfo($_item)): ?>
366
+ <?php echo $this->displayPrices(
367
+ max(0, $_item->getBaseRowTotal() - $_item->getBaseDiscountAmount() + $_item->getBaseTaxAmount() + $_item->getBaseHiddenTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmount()),
368
+ max(0, $_item->getRowTotal() - $_item->getDiscountAmount() + $_item->getTaxAmount() + $_item->getHiddenTaxAmount() + $_item->getWeeeTaxAppliedRowAmount())
369
+ ); ?>
370
+ <?php else: ?>
371
+ &nbsp;
372
+ <?php endif; ?>
373
+ </td>
374
+ </tr>
375
+ <?php endforeach; ?>
376
+ <?php if($_showlastRow): ?>
377
+ <tr<?php if (!$this->canDisplayGiftmessage()) echo ' class="border"' ?>>
378
+ <td>
379
+ <?php if ($this->getOrderOptions()): ?>
380
+ <dl class="item-options">
381
+ <?php foreach ($this->getOrderOptions() as $option): ?>
382
+ <dt><?php echo $this->escapeHtml($option['label']) ?>:</dt>
383
+ <dd>
384
+ <?php if (isset($option['custom_view']) && $option['custom_view']): ?>
385
+ <?php echo $option['value'];?>
386
+ <?php else: ?>
387
+ <?php echo Mage::helper('core/string')->truncate($option['value'], 55, '', $_remainder);?>
388
+ <?php if ($_remainder):?>
389
+ ... <span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_remainder ?></span>
390
+ <script type="text/javascript">
391
+ $('<?php echo $_id ?>').hide();
392
+ $('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
393
+ $('<?php echo $_id ?>').up().observe('mouseout', function(){$('<?php echo $_id ?>').hide();});
394
+ </script>
395
+ <?php endif;?>
396
+ <?php endif;?>
397
+ </dd>
398
+ <?php endforeach; ?>
399
+ </dl>
400
+ <?php else: ?>
401
+ &nbsp;
402
+ <?php endif; ?>
403
+ <?php echo $this->escapeHtml($_item->getDescription()) ?>
404
+ </td>
405
+ <td>&nbsp;</td>
406
+ <td>&nbsp;</td>
407
+ <td>&nbsp;</td>
408
+ <td>&nbsp;</td>
409
+ <td>&nbsp;</td>
410
+ <td>&nbsp;</td>
411
+ <td>&nbsp;</td>
412
+ <td>&nbsp;</td>
413
+ <td class="last">&nbsp;</td>
414
+ </tr>
415
+ <?php endif; ?>
app/design/adminhtml/default/default/template/bundle/sales/shipment/create/items/renderer.phtml ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * @see Mage_Bundle_Block_Adminhtml_Sales_Order_Items_Renderer
30
+ */
31
+ ?>
32
+
33
+ <?php $_item = $this->getItem() ?>
34
+ <?php $items = $this->getChilds($_item); ?>
35
+ <?php $_count = count ($items) ?>
36
+ <?php $_index = 0 ?>
37
+
38
+ <?php $_prevOptionId = '' ?>
39
+
40
+ <?php if($this->getOrderOptions() || $_item->getDescription()): ?>
41
+ <?php $_showlastRow = true ?>
42
+ <?php else: ?>
43
+ <?php $_showlastRow = false ?>
44
+ <?php endif; ?>
45
+
46
+ <?php foreach ($items as $_item): ?>
47
+ <?php $this->setPriceDataObject($_item) ?>
48
+ <?php if ($_item->getOrderItem()->getParentItem()): ?>
49
+ <?php $attributes = $this->getSelectionAttributes($_item) ?>
50
+ <?php if ($_prevOptionId != $attributes['option_id']): ?>
51
+ <tr>
52
+ <td><div class="option-label"><?php echo $attributes['option_label'] ?></div></td>
53
+ <td>&nbsp;</td>
54
+ <td class="last">&nbsp;</td>
55
+ </tr>
56
+ <?php $_prevOptionId = $attributes['option_id'] ?>
57
+ <?php endif; ?>
58
+ <?php endif; ?>
59
+ <tr class="<?php echo (++$_index==$_count && !$_showlastRow)?'border':'' ?>">
60
+ <?php if (!$_item->getOrderItem()->getParentItem()): ?>
61
+ <td><h5 class="title"><?php echo $this->escapeHtml($_item->getName()) ?></h5>
62
+ <div>
63
+ <strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
64
+ <?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->escapeHtml($_item->getSku()))); ?>
65
+ </div>
66
+ </td>
67
+ <?php else: ?>
68
+ <td><div class="option-value"><?php echo $this->getValueHtml($_item)?></div></td>
69
+ <?php endif; ?>
70
+ <td>
71
+ <?php if ($this->isShipmentSeparately($_item)): ?>
72
+ <?php echo $this->getColumnHtml($_item, 'qty') ?>
73
+ <?php else: ?>
74
+ &nbsp;
75
+ <?php endif; ?>
76
+ </td>
77
+ <td class="last">
78
+ <?php if ($this->isShipmentSeparately($_item)): ?>
79
+ <input type="text" class="input-text" name="shipment[items][<?php echo $_item->getOrderItemId() ?>]" value="<?php echo $_item->getQty()*1 ?>" />
80
+ <?php else: ?>
81
+ &nbsp;
82
+ <?php endif; ?>
83
+ </td>
84
+ </tr>
85
+ <?php endforeach; ?>
86
+ <?php if($_showlastRow): ?>
87
+ <tr class="border">
88
+ <td>
89
+ <?php if ($this->getOrderOptions($_item->getOrderItem())): ?>
90
+ <dl class="item-options">
91
+ <?php foreach ($this->getOrderOptions($_item->getOrderItem()) as $option): ?>
92
+ <dt><?php echo $this->escapeHtml($option['label']) ?></dt>
93
+ <dd>
94
+ <?php if (isset($option['custom_view']) && $option['custom_view']): ?>
95
+ <?php echo $option['value'];?>
96
+ <?php else: ?>
97
+ <?php echo Mage::helper('core/string')->truncate($option['value'], 55, '', $_remainder);?>
98
+ <?php if ($_remainder):?>
99
+ ... <span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_remainder ?></span>
100
+ <script type="text/javascript">
101
+ $('<?php echo $_id ?>').hide();
102
+ $('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
103
+ $('<?php echo $_id ?>').up().observe('mouseout', function(){$('<?php echo $_id ?>').hide();});
104
+ </script>
105
+ <?php endif;?>
106
+ <?php endif;?>
107
+ </dd>
108
+ <?php endforeach; ?>
109
+ </dl>
110
+ <?php else: ?>
111
+ &nbsp;
112
+ <?php endif; ?>
113
+ <?php echo $this->escapeHtml($_item->getDescription()) ?>
114
+ </td>
115
+ <td>&nbsp;</td>
116
+ <td class="last">&nbsp;</td>
117
+ </tr>
118
+ <?php endif; ?>
app/design/adminhtml/default/default/template/bundle/sales/shipment/view/items/renderer.phtml ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * @see Mage_Bundle_Block_Adminhtml_Sales_Order_Items_Renderer
30
+ */
31
+ ?>
32
+
33
+ <?php $_item = $this->getItem() ?>
34
+ <?php $items = array_merge(array($_item->getOrderItem()), $_item->getOrderItem()->getChildrenItems()) ?>
35
+ <?php $shipItems = $this->getChilds($_item) ?>
36
+ <?php $_count = count ($items) ?>
37
+ <?php $_index = 0 ?>
38
+
39
+ <?php $_prevOptionId = '' ?>
40
+
41
+ <?php if($this->getOrderOptions() || $_item->getDescription()): ?>
42
+ <?php $_showlastRow = true ?>
43
+ <?php else: ?>
44
+ <?php $_showlastRow = false ?>
45
+ <?php endif; ?>
46
+
47
+ <?php foreach ($items as $_item): ?>
48
+ <?php $this->setPriceDataObject($_item) ?>
49
+ <?php if ($_item->getParentItem()): ?>
50
+ <?php $attributes = $this->getSelectionAttributes($_item) ?>
51
+ <?php if ($_prevOptionId != $attributes['option_id']): ?>
52
+ <tr>
53
+ <td><div class="option-label"><?php echo $attributes['option_label'] ?></div></td>
54
+ <td class="last">&nbsp;</td>
55
+ </tr>
56
+ <?php $_prevOptionId = $attributes['option_id'] ?>
57
+ <?php endif; ?>
58
+ <?php endif; ?>
59
+ <tr<?php echo (++$_index==$_count && !$_showlastRow)?' class="border"':'' ?>>
60
+ <?php if (!$_item->getParentItem()): ?>
61
+ <td>
62
+ <h5 class="title"><?php echo $this->escapeHtml($_item->getName()) ?></h5>
63
+ <div>
64
+ <strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
65
+ <?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->escapeHtml($_item->getSku()))); ?>
66
+ </div>
67
+ </td>
68
+ <?php else: ?>
69
+ <td><div class="option-value"><?php echo $this->getValueHtml($_item)?></div></td>
70
+ <?php endif; ?>
71
+ <td class="a-center last">
72
+ <?php if (($this->isShipmentSeparately() && $_item->getParentItem()) || (!$this->isShipmentSeparately() && !$_item->getParentItem())): ?>
73
+ <?php if (isset($shipItems[$_item->getId()])): ?>
74
+ <?php echo $shipItems[$_item->getId()]->getQty()*1 ?>
75
+ <?php elseif ($_item->getIsVirtual()): ?>
76
+ <?php echo $this->__('N/A') ?>
77
+ <?php else: ?>
78
+ 0
79
+ <?php endif; ?>
80
+ <?php else: ?>
81
+ &nbsp;
82
+ <?php endif; ?>
83
+ </td>
84
+ </tr>
85
+ <?php endforeach; ?>
86
+ <?php if($_showlastRow): ?>
87
+ <tr class="border">
88
+ <td>
89
+ <?php if ($this->getOrderOptions($_item->getOrderItem())): ?>
90
+ <dl class="item-options">
91
+ <?php foreach ($this->getOrderOptions($_item->getOrderItem()) as $option): ?>
92
+ <dt><?php echo $this->escapeHtml($option['label']) ?></dt>
93
+ <dd>
94
+ <?php if (isset($option['custom_view']) && $option['custom_view']): ?>
95
+ <?php echo $option['value'];?>
96
+ <?php else: ?>
97
+ <?php echo Mage::helper('core/string')->truncate($option['value'], 55, '', $_remainder);?>
98
+ <?php if ($_remainder):?>
99
+ ... <span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_remainder ?></span>
100
+ <script type="text/javascript">
101
+ $('<?php echo $_id ?>').hide();
102
+ $('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
103
+ $('<?php echo $_id ?>').up().observe('mouseout', function(){$('<?php echo $_id ?>').hide();});
104
+ </script>
105
+ <?php endif;?>
106
+ <?php endif;?>
107
+ </dd>
108
+ <?php endforeach; ?>
109
+ </dl>
110
+ <?php endif; ?>
111
+ <?php echo $this->escapeHtml($_item->getDescription()) ?>
112
+ </td>
113
+ <td class="last">&nbsp;</td>
114
+ </tr>
115
+ <?php endif; ?>
app/design/adminhtml/default/default/template/captcha/zend.phtml ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php $captcha = $this->getCaptchaModel() ?>
28
+ <?php /* @var $this Mage_Core_Block_Captcha_Zend */ ?>
29
+ <div class="clear"></div>
30
+ <div class="captcha">
31
+ <div class="captcha-input input-box input-left">
32
+ <label for="captcha"><?php echo $this->__('Please type the letters from the image:') ?></label><br />
33
+ <input type="text" name="<?php echo Mage_Captcha_Helper_Data::INPUT_NAME_FIELD_VALUE ?>[<?php echo $this->getFormId()?>]" id="captcha" class="required-entry input-text validation-failed"/>
34
+ </div>
35
+ <div class="captcha-image input-right">
36
+ <img id="captcha-reload" class="captcha-reload" src="<?php echo $this->getSkinUrl('images/reload.png') ?>" alt="<?php echo $this->__('Reload captcha') ?>"/>
37
+ <img id="<?php echo $this->getFormId() ?>" width="<?php echo $this->getImgWidth() ?>" height="<?php echo $this->getImgHeight() ?>" src="<?php echo $captcha->getImgSrc() ?>" />
38
+ </div>
39
+ </div>
40
+ <?php if ($captcha->isCaseSensitive()) :?>
41
+ <div class="captcha-note">
42
+ <p><?php echo $this->__('<strong>Attention</strong>: Captcha is case sensitive.') ?></p>
43
+ </div>
44
+ <?php endif; ?>
45
+ <script type="text/javascript">
46
+ //<![CDATA[
47
+ document.observe('dom:loaded', function () {
48
+ var captcha = new Captcha('<?php echo $this->getRefreshUrl() ?>', '<?php echo $this->getFormId() ?>');
49
+
50
+ $('captcha-reload').observe('click', function () {
51
+ captcha.refresh(this);
52
+ });
53
+
54
+ });
55
+ //]]>
56
+ </script>
app/design/adminhtml/default/default/template/catalog/category/checkboxes/tree.phtml ADDED
@@ -0,0 +1,199 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <?php $_divId = 'tree-div_' . time() ?>
29
+ <div id="<?php echo $_divId ?>" class="tree"></div>
30
+
31
+ <script type="text/javascript">
32
+ //<![CDATA[
33
+
34
+ // TODO: cleanup this script. It was copypasted from catalog/category/tree
35
+
36
+ var tree;
37
+
38
+ /**
39
+ * Fix ext compatibility with prototype 1.6
40
+ */
41
+ Ext.lib.Event.getTarget = function(e) {
42
+ var ee = e.browserEvent || e;
43
+ return ee.target ? Event.element(ee) : null;
44
+ };
45
+
46
+ Ext.tree.TreePanel.Enhanced = function(el, config)
47
+ {
48
+ Ext.tree.TreePanel.Enhanced.superclass.constructor.call(this, el, config);
49
+ };
50
+
51
+ Ext.extend(Ext.tree.TreePanel.Enhanced, Ext.tree.TreePanel, {
52
+
53
+ loadTree : function(config, firstLoad)
54
+ {
55
+ var parameters = config['parameters'];
56
+ var data = config['data'];
57
+
58
+ if ((typeof parameters['root_visible']) != 'undefined') {
59
+ this.rootVisible = parameters['root_visible']*1;
60
+ }
61
+
62
+ var root = new Ext.tree.TreeNode(parameters);
63
+
64
+ this.nodeHash = {};
65
+ this.setRootNode(root);
66
+
67
+ if (firstLoad) {
68
+ this.addListener('click', this.categoryClick.createDelegate(this));
69
+ }
70
+
71
+ this.loader.buildCategoryTree(root, data);
72
+ this.el.dom.innerHTML = '';
73
+ // render the tree
74
+ this.render();
75
+ },
76
+
77
+ categoryClick : function(node, e)
78
+ {
79
+ node.getUI().check(!node.getUI().checked());
80
+ }
81
+ });
82
+
83
+ Ext.onReady(function()
84
+ {
85
+ var categoryLoader = new Ext.tree.TreeLoader({
86
+ dataUrl: '<?php echo $this->getLoadTreeUrl() ?>'
87
+ });
88
+
89
+ categoryLoader.createNode = function(config) {
90
+ config.uiProvider = Ext.tree.CheckboxNodeUI;
91
+ var node;
92
+ var _node = Object.clone(config);
93
+ if (config.children && !config.children.length) {
94
+ delete(config.children);
95
+ node = new Ext.tree.AsyncTreeNode(config);
96
+ } else {
97
+ node = new Ext.tree.TreeNode(config);
98
+ }
99
+
100
+ return node;
101
+ };
102
+
103
+ categoryLoader.buildCategoryTree = function(parent, config)
104
+ {
105
+ if (!config) return null;
106
+
107
+ if (parent && config && config.length){
108
+ for (var i = 0; i < config.length; i++) {
109
+ config[i].uiProvider = Ext.tree.CheckboxNodeUI;
110
+ var node;
111
+ var _node = Object.clone(config[i]);
112
+ if (_node.children && !_node.children.length) {
113
+ delete(_node.children);
114
+ node = new Ext.tree.AsyncTreeNode(_node);
115
+ } else {
116
+ node = new Ext.tree.TreeNode(config[i]);
117
+ }
118
+ parent.appendChild(node);
119
+ node.loader = node.getOwnerTree().loader;
120
+ if (_node.children) {
121
+ this.buildCategoryTree(node, _node.children);
122
+ }
123
+ }
124
+ }
125
+ };
126
+
127
+ categoryLoader.buildHash = function(node)
128
+ {
129
+ var hash = {};
130
+
131
+ hash = this.toArray(node.attributes);
132
+
133
+ if (node.childNodes.length>0 || (node.loaded==false && node.loading==false)) {
134
+ hash['children'] = new Array;
135
+
136
+ for (var i = 0, len = node.childNodes.length; i < len; i++) {
137
+ if (!hash['children']) {
138
+ hash['children'] = new Array;
139
+ }
140
+ hash['children'].push(this.buildHash(node.childNodes[i]));
141
+ }
142
+ }
143
+
144
+ return hash;
145
+ };
146
+
147
+ categoryLoader.toArray = function(attributes) {
148
+ var data = {};
149
+ for (var key in attributes) {
150
+ var value = attributes[key];
151
+ data[key] = value;
152
+ }
153
+
154
+ return data;
155
+ };
156
+
157
+ categoryLoader.on("beforeload", function(treeLoader, node) {
158
+ treeLoader.baseParams.id = node.attributes.id;
159
+ });
160
+
161
+ categoryLoader.on("load", function(treeLoader, node, config) {
162
+ varienWindowOnload();
163
+ });
164
+
165
+ tree = new Ext.tree.TreePanel.Enhanced('<?php echo $_divId ?>', {
166
+ animate: false,
167
+ loader: categoryLoader,
168
+ enableDD: false,
169
+ containerScroll: true,
170
+ selModel: new Ext.tree.CheckNodeMultiSelectionModel(),
171
+ rootVisible: '<?php echo $this->getRoot()->getIsVisible() ?>',
172
+ useAjax: <?php echo $this->getUseAjax() ?>,
173
+ currentNodeId: <?php echo (int) $this->getCategoryId() ?>,
174
+ addNodeTo: false,
175
+ rootUIProvider: Ext.tree.CheckboxNodeUI
176
+ });
177
+
178
+ tree.on('check', function(node, checked) {
179
+ <?php echo $this->getJsFormObject() ?>.updateElement.value = this.getChecked().join(', ');
180
+ varienElementMethods.setHasChanges(node.getUI().checkbox);
181
+ }, tree);
182
+
183
+ // set the root node
184
+ var parameters = {
185
+ text: '<?php echo htmlentities($this->getRoot()->getName()) ?>',
186
+ draggable: false,
187
+ checked:'<?php echo $this->getRoot()->getChecked() ?>',
188
+ uiProvider: Ext.tree.CheckboxNodeUI,
189
+ allowDrop: <?php if ($this->getRoot()->getIsVisible()): ?>true<?php else : ?>false<?php endif; ?>,
190
+ id: <?php echo (int) $this->getRoot()->getId() ?>,
191
+ expanded: <?php echo (int) $this->getIsWasExpanded() ?>,
192
+ category_id: <?php echo (int) $this->getCategoryId() ?>
193
+ };
194
+
195
+ tree.loadTree({parameters:parameters, data:<?php echo $this->getTreeJson() ?>},true);
196
+
197
+ });
198
+ //]]>
199
+ </script>
app/design/adminhtml/default/default/template/catalog/category/edit.phtml ADDED
@@ -0,0 +1,198 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * Template for Mage_Adminhtml_Block_Catalog_Category_Cointainer
30
+ */
31
+ ?>
32
+
33
+ <div id="category-edit-container" class="category-content">
34
+ <?php echo $this->getChildHtml('form') ?>
35
+ </div>
36
+ <script type="text/javascript">
37
+ //<![CDATA[
38
+
39
+ function categoryReset(url,useAjax){
40
+ if(useAjax){
41
+ var params = {active_tab_id:false};
42
+ updateContent(url, params);
43
+ }else{
44
+ location.href = url;
45
+ }
46
+ }
47
+
48
+ /**
49
+ * Delete some category
50
+ * This routine get categoryId explicitly, so even if currently selected tree node is out of sync
51
+ * with this form, we surely delete same category in the tree and at backend
52
+ */
53
+ function categoryDelete(url, useAjax, categoryId) {
54
+ if (confirm('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Are you sure you want to delete this category?')) ?>')){
55
+ if (useAjax){
56
+ tree.nodeForDelete = categoryId;
57
+ updateContent(url, {}, true);
58
+ } else {
59
+ location.href = url;
60
+ }
61
+ }
62
+ }
63
+
64
+ /**
65
+ * Update category content area
66
+ */
67
+ function updateContent(url, params, refreshTree) {
68
+ if (!params) {
69
+ params = {};
70
+ }
71
+ if (!params.form_key) {
72
+ params.form_key = FORM_KEY;
73
+ }
74
+
75
+ toolbarToggle.stop();
76
+
77
+ /*if(params.node_name)
78
+ {
79
+ var currentNode = tree.getNodeById(tree.currentNodeId);
80
+ currentNode.setText(params.node_name);
81
+ }*/
82
+
83
+ var categoryContainer = $('category-edit-container');
84
+ var messagesContainer = $('messages');
85
+ var thisObj = this;
86
+ new Ajax.Request(url + (url.match(new RegExp('\\?')) ? '&isAjax=true' : '?isAjax=true' ), {
87
+ parameters: params,
88
+ evalScripts: true,
89
+ onComplete: function () {
90
+ /**
91
+ * This func depends on variables, that came in response, and were eval'ed in onSuccess() callback.
92
+ * Since prototype's Element.update() evals javascripts in 10 msec, we should exec our func after it.
93
+ */
94
+ setTimeout(function() {
95
+ try {
96
+ if (refreshTree) {
97
+ thisObj.refreshTreeArea();
98
+ }
99
+ toolbarToggle.start();
100
+ } catch (e) {
101
+ alert(e.message);
102
+ };
103
+ }, 25);
104
+ },
105
+ onSuccess: function(transport) {
106
+ try {
107
+ if (transport.responseText.isJSON()) {
108
+ var response = transport.responseText.evalJSON();
109
+ var needUpdate = true;
110
+ if (response.error) {
111
+ alert(response.message);
112
+ needUpdate = false;
113
+ }
114
+ if(response.ajaxExpired && response.ajaxRedirect) {
115
+ setLocation(response.ajaxRedirect);
116
+ needUpdate = false;
117
+ }
118
+ if (needUpdate){
119
+ if (response.content){
120
+ $(categoryContainer).update(response.content);
121
+ }
122
+ if (response.messages){
123
+ $(messagesContainer).update(response.messages);
124
+ }
125
+ }
126
+ } else {
127
+ $(categoryContainer).update(transport.responseText);
128
+ }
129
+ }
130
+ catch (e) {
131
+ $(categoryContainer).update(transport.responseText);
132
+ }
133
+ }
134
+ });
135
+ }
136
+
137
+ /**
138
+ * Refresh tree nodes after saving or deleting a category
139
+ */
140
+ function refreshTreeArea(transport)
141
+ {
142
+ if (tree && window.editingCategoryBreadcrumbs) {
143
+ // category deleted - delete its node
144
+ if (tree.nodeForDelete) {
145
+ var node = tree.getNodeById(tree.nodeForDelete);
146
+ tree.nodeForDelete = false;
147
+
148
+ if (node) { // Check maybe tree became somehow not synced with ajax and we're trying to delete unknown node
149
+ node.parentNode.removeChild(node);
150
+ tree.currentNodeId = false;
151
+ }
152
+ }
153
+ // category created - add its node
154
+ else if (tree.addNodeTo) {
155
+ var parent = tree.getNodeById(tree.addNodeTo);
156
+ tree.addNodeTo = false;
157
+
158
+ if (parent) { // Check maybe tree became somehow not synced with ajax and we're trying to add to unknown node
159
+ var node = new Ext.tree.AsyncTreeNode(editingCategoryBreadcrumbs[editingCategoryBreadcrumbs.length - 1]);
160
+ node.loaded = true;
161
+ tree.currentNodeId = node.id;
162
+ parent.appendChild(node);
163
+
164
+ if (parent.expanded) {
165
+ tree.selectCurrentNode();
166
+ } else {
167
+ var timer;
168
+ parent.expand();
169
+ var f = function(){
170
+ if(parent.expanded){ // done expanding
171
+ clearInterval(timer);
172
+ tree.selectCurrentNode();
173
+ }
174
+ };
175
+ timer = setInterval(f, 200);
176
+ }
177
+ }
178
+ }
179
+
180
+ // update all affected categories nodes names
181
+ for (var i = 0; i < editingCategoryBreadcrumbs.length; i++) {
182
+ var node = tree.getNodeById(editingCategoryBreadcrumbs[i].id);
183
+ if (node) {
184
+ node.setText(editingCategoryBreadcrumbs[i].text);
185
+ }
186
+ }
187
+ }
188
+ }
189
+
190
+ function displayLoadingMask()
191
+ {
192
+ var loaderArea = $$('#html-body .wrapper')[0]; // Blocks all page
193
+ Position.clone($(loaderArea), $('loading-mask'), {offsetLeft:-2});
194
+ toggleSelectsUnderBlock($('loading-mask'), false);
195
+ Element.show('loading-mask');
196
+ }
197
+ //]]>
198
+ </script>
app/design/adminhtml/default/default/template/catalog/category/edit/form.phtml ADDED
@@ -0,0 +1,258 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <div class="content-header">
29
+ <h3 class="icon-head head-categories"><?php echo $this->escapeHtml($this->getHeader()) . ($this->getCategoryId() ? ' (' . Mage::helper('catalog')->__('ID: %s', $this->getCategoryId()) . ')' : '') ?></h3>
30
+ <p class="content-buttons form-buttons">
31
+ <?php echo $this->getResetButtonHtml() ?>
32
+ <?php if($this->getCategoryId()): ?>
33
+ <?php echo $this->getDeleteButtonHtml() ?>
34
+ <?php endif; ?>
35
+ <?php echo $this->getAdditionalButtonsHtml(); ?>
36
+ <?php echo $this->getSaveButtonHtml() ?>
37
+ </p>
38
+ </div>
39
+ <?php if($this->hasStoreRootCategory()): ?>
40
+ <?php echo $this->getTabsHtml() ?>
41
+ <?php else: ?>
42
+ <div class="messages warning-msg">
43
+ <?php echo Mage::helper('catalog')->__('Set root category for this store in the <a href="%s">configuration</a>', $this->getStoreConfigurationUrl()) ?>
44
+ </div>
45
+ <?php endif; ?>
46
+ <iframe name="iframeSave" style="display:none; width:100%;" src="<?php echo $this->getJsUrl() ?>blank.html"></iframe>
47
+ <form target="iframeSave" id="category_edit_form" action="<?php echo $this->getSaveUrl() ?>" method="post" enctype="multipart/form-data">
48
+ <div class="no-display">
49
+ <input type="hidden" name="isIframe" value="1" />
50
+ <input name="form_key" type="hidden" value="<?php echo $this->getFormKey() ?>" />
51
+ <input type="hidden" name="category_products" id="in_category_products" value="" />
52
+ <input type="hidden" name="active_tab_id" id="active_tab_id" value="" />
53
+ </div>
54
+ <div id="category_tab_content"></div>
55
+ </form>
56
+ <script type="text/javascript">
57
+ //<![CDATA[
58
+ categoryForm = new varienForm('category_edit_form');
59
+
60
+ categoryForm.submit= function (url) {
61
+ this.errorSections = $H({});
62
+ this.canShowError = true;
63
+ this.submitUrl = url;
64
+ if (this.validator && this.validator.validate()) {
65
+ if(this.validationUrl){
66
+ this._validate();
67
+ }
68
+ else{
69
+ if (this.isSubmitted) {
70
+ return false;
71
+ }
72
+ this.isSubmitted = true;
73
+ this._submit();
74
+ }
75
+ displayLoadingMask();
76
+ return true;
77
+ }
78
+ return false;
79
+ };
80
+
81
+ categoryForm.refreshPath = function () {
82
+
83
+ categoryId = this.getCategoryId();
84
+
85
+ if (!categoryId) {
86
+ return false;
87
+ }
88
+
89
+ var refreshPathSuccess = function(transport) {
90
+ if (transport.responseText.isJSON()) {
91
+ response = transport.responseText.evalJSON()
92
+ if (response.error) {
93
+ alert(response.message);
94
+ } else {
95
+ if (categoryForm.getCategoryId() == response['id']) {
96
+ categoryForm.setCategoryPath(response['path']);
97
+ }
98
+ }
99
+ }
100
+ };
101
+
102
+ new Ajax.Request(
103
+ '<?php echo $this->getRefreshPathUrl() ?>',
104
+ {
105
+ method: 'POST',
106
+ evalScripts: true,
107
+ onSuccess: refreshPathSuccess
108
+ }
109
+ );
110
+
111
+ };
112
+
113
+ categoryForm.getCategoryId = function () {
114
+ collection = $(this.formId).getInputs('hidden','general[id]');
115
+ if (collection.size() > 0) {
116
+ return collection.first().value;
117
+ }
118
+ return false;
119
+ };
120
+
121
+ categoryForm.setCategoryPath = function (path) {
122
+ collection = $(this.formId).getInputs('hidden','general[path]');
123
+ if (collection.size() > 0) {
124
+ return collection.first().value = path;
125
+ }
126
+ };
127
+
128
+ /**
129
+ * Create/edit some category
130
+ */
131
+ function categorySubmit(url, useAjax) {
132
+ var activeTab = $('active_tab_id');
133
+ if (activeTab) {
134
+ if (activeTab.tabsJsObject && activeTab.tabsJsObject.activeTab) {
135
+ activeTab.value = activeTab.tabsJsObject.activeTab.id;
136
+ }
137
+ }
138
+
139
+ var params = {};
140
+ var fields = $('category_edit_form').getElementsBySelector('input', 'select');
141
+ for(var i=0;i<fields.length;i++){
142
+ if (!fields[i].name) {
143
+ continue;
144
+ }
145
+ params[fields[i].name] = fields[i].getValue();
146
+ }
147
+
148
+ // Get info about what we're submitting - to properly update tree nodes
149
+ var categoryId = params['general[id]'] ? params['general[id]'] : 0;
150
+ var isCreating = categoryId == 0; // Separate variable is needed because '0' in javascript converts to TRUE
151
+ var path = params['general[path]'].split('/');
152
+ var parentId = path.pop();
153
+ if (parentId == categoryId) { // Maybe path includes category id itself
154
+ parentId = path.pop();
155
+ }
156
+
157
+ // Make operations with category tree
158
+ if (isCreating) {
159
+ /* Some specific tasks for creating category */
160
+ if (!tree.currentNodeId) {
161
+ // First submit of form - select some node to be current
162
+ tree.currentNodeId = parentId;
163
+ }
164
+ tree.addNodeTo = parentId;
165
+ } else {
166
+ /* Some specific tasks for editing category */
167
+ // Maybe change category enabled/disabled style
168
+ if (tree && tree.storeId==0) {
169
+ var currentNode = tree.getNodeById(categoryId);
170
+
171
+ if (currentNode) {
172
+ if (parseInt(params['general[is_active]'])) {
173
+ var oldClass = 'no-active-category';
174
+ var newClass = 'active-category';
175
+ } else {
176
+ var oldClass = 'active-category';
177
+ var newClass = 'no-active-category';
178
+ }
179
+
180
+ Element.removeClassName(currentNode.ui.wrap.firstChild, oldClass);
181
+ Element.addClassName(currentNode.ui.wrap.firstChild, newClass);
182
+ }
183
+ }
184
+ }
185
+
186
+ // Submit form
187
+ categoryForm.submit();
188
+ }
189
+
190
+ <?php if(($block = $this->getLayout()->getBlock('category.product.grid')) && ($_gridJsObject=$block->getJsObjectName())): ?>
191
+
192
+ var categoryProducts = $H(<?php echo $this->getProductsJson() ?>);
193
+ $('in_category_products').value = categoryProducts.toQueryString();
194
+
195
+ function registerCategoryProduct(grid, element, checked){
196
+ if(checked){
197
+ if(element.positionElement){
198
+ element.positionElement.disabled = false;
199
+ categoryProducts.set(element.value, element.positionElement.value);
200
+ }
201
+ }
202
+ else{
203
+ if(element.positionElement){
204
+ element.positionElement.disabled = true;
205
+ }
206
+ categoryProducts.unset(element.value);
207
+ }
208
+ $('in_category_products').value = categoryProducts.toQueryString();
209
+ grid.reloadParams = {'selected_products[]':categoryProducts.keys()};
210
+ }
211
+ function categoryProductRowClick(grid, event){
212
+ var trElement = Event.findElement(event, 'tr');
213
+ var isInput = Event.element(event).tagName == 'INPUT';
214
+ if(trElement){
215
+ var checkbox = Element.getElementsBySelector(trElement, 'input');
216
+ if(checkbox[0]){
217
+ var checked = isInput ? checkbox[0].checked : !checkbox[0].checked;
218
+ <?php echo $_gridJsObject ?>.setCheckboxChecked(checkbox[0], checked);
219
+ }
220
+ }
221
+ }
222
+ function positionChange(event){
223
+ var element = Event.element(event);
224
+ if(element && element.checkboxElement && element.checkboxElement.checked){
225
+ categoryProducts.set(element.checkboxElement.value, element.value);
226
+ $('in_category_products').value = categoryProducts.toQueryString();
227
+ }
228
+ }
229
+
230
+ var tabIndex = 1000;
231
+ function categoryProductRowInit(grid, row){
232
+ var checkbox = $(row).getElementsByClassName('checkbox')[0];
233
+ var position = $(row).getElementsByClassName('input-text')[0];
234
+ if(checkbox && position){
235
+ checkbox.positionElement = position;
236
+ position.checkboxElement = checkbox;
237
+ position.disabled = !checkbox.checked;
238
+ position.tabIndex = tabIndex++;
239
+ Event.observe(position,'keyup',positionChange);
240
+ }
241
+ }
242
+
243
+
244
+ <?php echo $_gridJsObject ?>.rowClickCallback = categoryProductRowClick;
245
+ <?php echo $_gridJsObject ?>.initRowCallback = categoryProductRowInit;
246
+ <?php echo $_gridJsObject ?>.checkboxCheckCallback = registerCategoryProduct;
247
+ <?php echo $_gridJsObject ?>.rows.each(function(row){categoryProductRowInit(<?php echo $_gridJsObject ?>, row)});
248
+
249
+ <?php endif; ?>
250
+ <?php if($this->isAjax() && ($block = $this->getLayout()->getBlock('tabs')) && ($_tabsJsObject=$block->getJsObjectName())): ?>
251
+ <?php echo $_tabsJsObject ?>.moveTabContentInDest();
252
+ if (<?php echo $_tabsJsObject ?>.activeTab) {
253
+ $('active_tab_id').value = <?php echo $_tabsJsObject ?>.activeTab.id;
254
+ }
255
+ $('active_tab_id').tabsJsObject = <?php echo $_tabsJsObject ?>;
256
+ <?php endif; ?>
257
+ //]]>
258
+ </script>
app/design/adminhtml/default/default/template/catalog/category/tree.phtml ADDED
@@ -0,0 +1,480 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="categories-side-col">
28
+ <div class="content-header">
29
+ <h3 class="icon-head head-categories"><?php echo Mage::helper('catalog')->__('Categories') ?></h3>
30
+ <?php if ($this->getRoot()): ?>
31
+ <?php echo $this->getAddRootButtonHtml() ?><br />
32
+ <?php echo $this->getAddSubButtonHtml() ?>
33
+ <?php endif; ?>
34
+ </div>
35
+ <?php echo $this->getStoreSwitcherHtml();?>
36
+ <div class="tree-actions">
37
+ <?php if($this->getRoot()): ?>
38
+ <?php //echo $this->getCollapseButtonHtml() ?>
39
+ <?php //echo $this->getExpandButtonHtml() ?>
40
+ <a href="#" onclick="tree.collapseTree(); return false;"><?php echo Mage::helper('catalog')->__('Collapse All'); ?></a> <span class="separator">|</span> <a href="#" onclick="tree.expandTree(); return false;"><?php echo Mage::helper('catalog')->__('Expand All'); ?></a>
41
+ <?php endif; ?>
42
+ </div>
43
+ <?php if ($this->getRoot()): ?>
44
+ <div class="tree-holder">
45
+ <div id="tree-div" style="width:100%; overflow:auto;"></div>
46
+ </div>
47
+ </div>
48
+ <script type="text/javascript">
49
+ //<![CDATA[
50
+ var tree;
51
+
52
+ /**
53
+ * Fix ext compatibility with prototype 1.6
54
+ */
55
+ Ext.lib.Event.getTarget = function(e) {
56
+ var ee = e.browserEvent || e;
57
+ return ee.target ? Event.element(ee) : null;
58
+ };
59
+
60
+ Ext.tree.TreePanel.Enhanced = function(el, config)
61
+ {
62
+ Ext.tree.TreePanel.Enhanced.superclass.constructor.call(this, el, config);
63
+ };
64
+
65
+ Ext.extend(Ext.tree.TreePanel.Enhanced, Ext.tree.TreePanel, {
66
+
67
+ loadTree : function(config, firstLoad)
68
+ {
69
+ var parameters = config['parameters'];
70
+ var data = config['data'];
71
+
72
+ this.storeId = parameters['store_id'];
73
+
74
+ if ( this.storeId != 0 && $('add_root_category_button')) {
75
+ $('add_root_category_button').hide();
76
+ }
77
+
78
+ if ((typeof parameters['root_visible']) != 'undefined') {
79
+ this.rootVisible = parameters['root_visible']*1;
80
+ }
81
+
82
+ var root = new Ext.tree.TreeNode(parameters);
83
+
84
+ this.nodeHash = {};
85
+ this.setRootNode(root);
86
+
87
+ if (firstLoad) {
88
+ this.addListener('click', this.categoryClick);
89
+ this.addListener('beforenodedrop', categoryMove.createDelegate(this));
90
+ }
91
+
92
+ this.loader.buildCategoryTree(root, data);
93
+ this.el.dom.innerHTML = '';
94
+ // render the tree
95
+ this.render();
96
+ if (parameters['expanded']) {
97
+ this.expandAll();
98
+ } else {
99
+ root.expand();
100
+ }
101
+
102
+ var selectedNode = this.getNodeById(parameters['category_id']);
103
+ if (selectedNode) {
104
+ this.currentNodeId = parameters['category_id'];
105
+ }
106
+ this.selectCurrentNode();
107
+ },
108
+
109
+ request : function(url, params)
110
+ {
111
+ if (!params) {
112
+ if (category_info_tabsJsTabs.activeTab) {
113
+ var params = {active_tab_id:category_info_tabsJsTabs.activeTab.id};
114
+ }
115
+ else {
116
+ var params = {};
117
+ }
118
+ }
119
+ if (!params.form_key) {
120
+ params.form_key = FORM_KEY;
121
+ }
122
+ var result = new Ajax.Request(
123
+ url + (url.match(new RegExp('\\?')) ? '&isAjax=true' : '?isAjax=true' ),
124
+ {
125
+ parameters: params,
126
+ method: 'post'
127
+ }
128
+ );
129
+
130
+ return result;
131
+ },
132
+
133
+ selectCurrentNode : function()
134
+ {
135
+ if (this.currentNodeId) {
136
+ var selectedNode = this.getNodeById(this.currentNodeId);
137
+ if ((typeof selectedNode.attributes.path)!='undefined') {
138
+ var path = selectedNode.attributes.path;
139
+ if (!this.storeId) {
140
+ path = '0/'+path;
141
+ }
142
+ this.selectPath(path);
143
+ } else {
144
+ this.getSelectionModel().select(selectedNode);
145
+ }
146
+ }
147
+ },
148
+
149
+ collapseTree : function()
150
+ {
151
+ this.collapseAll();
152
+
153
+ this.selectCurrentNode();
154
+
155
+ if (!this.collapsed) {
156
+ this.collapsed = true;
157
+ this.loader.dataUrl = '<?php echo $this->getLoadTreeUrl(false) ?>';
158
+ this.request(this.loader.dataUrl, false);
159
+ }
160
+ },
161
+
162
+ expandTree : function()
163
+ {
164
+ this.expandAll();
165
+ if (this.collapsed) {
166
+ this.collapsed = false;
167
+ this.loader.dataUrl = '<?php echo $this->getLoadTreeUrl(true) ?>';
168
+ this.request(this.loader.dataUrl, false);
169
+ }
170
+ },
171
+
172
+ categoryClick : function(node, e)
173
+ {
174
+ var baseUrl = '<?php echo $this->getEditUrl() ?>';
175
+ var urlExt = (this.storeId?'store/'+this.storeId+'/':'')+'id/'+node.id+'/';
176
+ var url = parseSidUrl(baseUrl, urlExt);
177
+
178
+ this.currentNodeId = node.id;
179
+ if (!this.useAjax) {
180
+ setLocation(url);
181
+ return;
182
+ }
183
+ if (category_info_tabsJsTabs.activeTab) {
184
+ var params = {active_tab_id:category_info_tabsJsTabs.activeTab.id};
185
+ }
186
+ updateContent(url, params);
187
+ }
188
+ });
189
+
190
+ function reRenderTree(event, switcher)
191
+ {
192
+ // re-render tree by store switcher
193
+ if (tree && event) {
194
+ var obj = event.target;
195
+ var newStoreId = obj.value * 1;
196
+ var storeParam = newStoreId ? 'store/'+newStoreId + '/' : '';
197
+
198
+ if (obj.switchParams) {
199
+ storeParam += obj.switchParams;
200
+ }
201
+ if (switcher.useConfirm) {
202
+ if (!confirm('<?php echo Mage::helper('core')->jsQuoteEscape($this->__('Please confirm site switching. All data that hasn\'t been saved will be lost.')) ?>')){
203
+ obj.value = '<?php echo (int) $this->getStoreId() ?>';
204
+ return false;
205
+ }
206
+ }
207
+
208
+ if ($('add_root_category_button')) {
209
+ if (newStoreId == 0) {
210
+ $('add_root_category_button').show();
211
+ }
212
+ else {
213
+ $('add_root_category_button').hide();
214
+ }
215
+ }
216
+
217
+ // retain current selected category id
218
+ storeParam = storeParam + 'id/' + tree.currentNodeId + '/';
219
+ var url = tree.switchTreeUrl + storeParam;
220
+
221
+ // load from cache
222
+ // load from ajax
223
+ new Ajax.Request(url, {
224
+ parameters : {store: newStoreId, form_key: FORM_KEY, isAjax: 1},
225
+ method : 'post',
226
+ onComplete : function(transport) {
227
+ var response = transport.responseJSON || transport.responseText.evalJSON(true) || {};
228
+ if (!response.parameters) {
229
+ return false;
230
+ }
231
+
232
+ _renderNewTree(response, storeParam);
233
+ }
234
+ });
235
+ }
236
+ // render default tree
237
+ else {
238
+ _renderNewTree();
239
+ }
240
+ }
241
+
242
+ function _renderNewTree(config, storeParam)
243
+ {
244
+ if (!config) {
245
+ config = defaultLoadTreeParams;
246
+ }
247
+ if (tree) {
248
+ tree.purgeListeners();
249
+ tree.el.dom.innerHTML = '';
250
+ }
251
+ tree = new Ext.tree.TreePanel.Enhanced('tree-div', newTreeParams);
252
+ tree.loadTree(config, true);
253
+
254
+ // try to select current category
255
+ var selectedNode = tree.getNodeById(config.parameters.category_id);
256
+ if (selectedNode) {
257
+ tree.currentNodeId = config.parameters.category_id;
258
+ }
259
+ tree.selectCurrentNode();
260
+
261
+ // update content area
262
+ var url = tree.editUrl;
263
+ if (storeParam) {
264
+ url = url + storeParam;
265
+ }
266
+ <?php if ($this->isClearEdit()):?>
267
+ if (selectedNode) {
268
+ url = url + 'id/' + config.parameters.category_id;
269
+ }
270
+ <?php endif;?>
271
+ updateContent(url);
272
+ }
273
+
274
+ Ext.onReady(function()
275
+ {
276
+ categoryLoader = new Ext.tree.TreeLoader({
277
+ dataUrl: '<?php echo $this->getLoadTreeUrl() ?>'
278
+ });
279
+
280
+ categoryLoader.createNode = function(config) {
281
+ var node;
282
+ var _node = Object.clone(config);
283
+ if (config.children && !config.children.length) {
284
+ delete(config.children);
285
+ node = new Ext.tree.AsyncTreeNode(config);
286
+ } else {
287
+ node = new Ext.tree.TreeNode(config);
288
+ }
289
+
290
+ return node;
291
+ };
292
+
293
+ categoryLoader.buildCategoryTree = function(parent, config)
294
+ {
295
+ if (!config) return null;
296
+
297
+ if (parent && config && config.length){
298
+ for (var i = 0; i < config.length; i++) {
299
+ var node;
300
+ var _node = Object.clone(config[i]);
301
+ if (_node.children && !_node.children.length) {
302
+ delete(_node.children);
303
+ node = new Ext.tree.AsyncTreeNode(_node);
304
+ } else {
305
+ node = new Ext.tree.TreeNode(config[i]);
306
+ }
307
+ parent.appendChild(node);
308
+ node.loader = node.getOwnerTree().loader;
309
+ if (_node.children) {
310
+ this.buildCategoryTree(node, _node.children);
311
+ }
312
+ }
313
+ }
314
+ };
315
+
316
+ categoryLoader.buildHash = function(node)
317
+ {
318
+ var hash = {};
319
+
320
+ hash = this.toArray(node.attributes);
321
+
322
+ if (node.childNodes.length>0 || (node.loaded==false && node.loading==false)) {
323
+ hash['children'] = new Array;
324
+
325
+ for (var i = 0, len = node.childNodes.length; i < len; i++) {
326
+ if (!hash['children']) {
327
+ hash['children'] = new Array;
328
+ }
329
+ hash['children'].push(this.buildHash(node.childNodes[i]));
330
+ }
331
+ }
332
+
333
+ return hash;
334
+ };
335
+
336
+ categoryLoader.toArray = function(attributes) {
337
+ var data = {form_key: FORM_KEY};
338
+ for (var key in attributes) {
339
+ var value = attributes[key];
340
+ data[key] = value;
341
+ }
342
+
343
+ return data;
344
+ };
345
+
346
+ categoryLoader.on("beforeload", function(treeLoader, node) {
347
+ treeLoader.baseParams.id = node.attributes.id;
348
+ treeLoader.baseParams.store = node.attributes.store;
349
+ treeLoader.baseParams.form_key = FORM_KEY;
350
+ });
351
+
352
+ categoryLoader.on("load", function(treeLoader, node, config) {
353
+ varienWindowOnload();
354
+ });
355
+
356
+ if ((typeof varienStoreSwitcher)!='undefined') {
357
+ varienStoreSwitcher.storeSelectorClickCallback = reRenderTree;
358
+ }
359
+
360
+ newTreeParams = {
361
+ animate : false,
362
+ loader : categoryLoader,
363
+ enableDD : true,
364
+ containerScroll : true,
365
+ selModel : new Ext.tree.CheckNodeMultiSelectionModel(),
366
+ rootVisible : '<?php echo $this->getRoot()->getIsVisible() ?>',
367
+ useAjax : <?php echo $this->getUseAjax() ?>,
368
+ switchTreeUrl : '<?php echo $this->getSwitchTreeUrl() ?>',
369
+ editUrl : '<?php echo $this->getEditUrl() ?>',
370
+ currentNodeId : <?php echo (int) $this->getCategoryId() ?>
371
+ };
372
+
373
+ defaultLoadTreeParams = {
374
+ parameters : {
375
+ text : '<?php echo Mage::helper('core')->jsQuoteEscape(htmlentities($this->getRoot()->getName())) ?>',
376
+ draggable : false,
377
+ allowDrop : <?php if ($this->getRoot()->getIsVisible()): ?>true<?php else : ?>false<?php endif; ?>,
378
+ id : <?php echo (int) $this->getRoot()->getId() ?>,
379
+ expanded : <?php echo (int) $this->getIsWasExpanded() ?>,
380
+ store_id : <?php echo (int) $this->getStore()->getId() ?>,
381
+ category_id : <?php echo (int) $this->getCategoryId() ?>
382
+ },
383
+ data : <?php echo $this->getTreeJson() ?>
384
+ };
385
+
386
+ reRenderTree();
387
+ });
388
+
389
+ function addNew(url, isRoot)
390
+ {
391
+ if (isRoot) {
392
+ tree.currentNodeId = tree.root.id;
393
+ }
394
+
395
+ if (/store\/\d+/.test(url)) {
396
+ url = url.replace(/store\/\d+/, "store/" + tree.storeId);
397
+ }
398
+ else {
399
+ url+= "store/" + tree.storeId + "/";
400
+ }
401
+
402
+ url+= 'parent/'+tree.currentNodeId;
403
+ updateContent(url);
404
+ }
405
+
406
+ function categoryMove(obj)
407
+ {
408
+ var data = {id: obj.dropNode.id, form_key: FORM_KEY};
409
+
410
+ data.point = obj.point;
411
+ switch (obj.point) {
412
+ case 'above' :
413
+ data.pid = obj.target.parentNode.id;
414
+ data.paid = obj.dropNode.parentNode.id;
415
+ if (obj.target.previousSibling) {
416
+ data.aid = obj.target.previousSibling.id;
417
+ } else {
418
+ data.aid = 0;
419
+ }
420
+ break;
421
+ case 'below' :
422
+ data.pid = obj.target.parentNode.id;
423
+ data.aid = obj.target.id;
424
+ break;
425
+ case 'append' :
426
+ data.pid = obj.target.id;
427
+ data.paid = obj.dropNode.parentNode.id;
428
+ if (obj.target.lastChild) {
429
+ data.aid = obj.target.lastChild.id;
430
+ } else {
431
+ data.aid = 0;
432
+ }
433
+ break;
434
+ default :
435
+ obj.cancel = true;
436
+ return obj;
437
+ }
438
+
439
+ var success = function(o) {
440
+ try {
441
+ if(o.responseText){
442
+ if(o.responseText==='SUCCESS'){
443
+ categoryForm.refreshPath();
444
+ } else {
445
+ alert(o.responseText.stripTags().toString());
446
+ location.reload();
447
+ }
448
+ }
449
+ }
450
+ catch(e) {
451
+ }
452
+ };
453
+
454
+ var failure = function(o) {
455
+ try {
456
+ console.log(o.statusText);
457
+ } catch (e2) {
458
+ alert(o.statusText);
459
+ }
460
+ location.reload();
461
+ };
462
+
463
+ var pd = [];
464
+ for(var key in data) {
465
+ pd.push(encodeURIComponent(key), "=", encodeURIComponent(data[key]), "&");
466
+ }
467
+ pd.splice(pd.length-1,1);
468
+ new Ajax.Request(
469
+ '<?php echo $this->getMoveUrl() ?>',
470
+ {
471
+ method: 'POST',
472
+ parameters: pd.join(""),
473
+ onSuccess : success,
474
+ onFailure : failure
475
+ }
476
+ );
477
+ }
478
+ //]]>
479
+ </script>
480
+ <?php endif; ?>
app/design/adminhtml/default/default/template/catalog/category/widget/tree.phtml ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <?php $_divId = 'tree' . $this->getId() ?>
29
+ <div id="<?php echo $_divId ?>" class="tree"></div>
30
+
31
+ <script type="text/javascript">
32
+ //<![CDATA[
33
+
34
+ var tree<?php echo $this->getId() ?>;
35
+
36
+ var useMassaction = <?php echo $this->getUseMassaction()?1:0; ?>;
37
+
38
+ var isAnchorOnly = <?php echo $this->getIsAnchorOnly()?1:0; ?>;
39
+
40
+ Ext.tree.TreePanel.Enhanced = function(el, config)
41
+ {
42
+ Ext.tree.TreePanel.Enhanced.superclass.constructor.call(this, el, config);
43
+ };
44
+
45
+ Ext.extend(Ext.tree.TreePanel.Enhanced, Ext.tree.TreePanel, {
46
+
47
+ loadTree : function(config, firstLoad)
48
+ {
49
+ var parameters = config['parameters'];
50
+ var data = config['data'];
51
+
52
+ if ((typeof parameters['root_visible']) != 'undefined') {
53
+ this.rootVisible = parameters['root_visible']*1;
54
+ }
55
+
56
+ var root = new Ext.tree.TreeNode(parameters);
57
+
58
+ this.nodeHash = {};
59
+ this.setRootNode(root);
60
+
61
+ if (firstLoad) {
62
+ <?php if ($this->getNodeClickListener()): ?>
63
+ this.addListener('click', <?php echo $this->getNodeClickListener() ?>.createDelegate(this));
64
+ <?php endif; ?>
65
+ }
66
+
67
+ this.loader.buildCategoryTree(root, data);
68
+ this.el.dom.innerHTML = '';
69
+ // render the tree
70
+ this.render();
71
+ }
72
+ });
73
+
74
+ Ext.onReady(function()
75
+ {
76
+ var emptyNodeAdded = <?php echo ($this->getWithEmptyNode() ? 'false' : 'true') ?>;
77
+
78
+ var categoryLoader = new Ext.tree.TreeLoader({
79
+ dataUrl: '<?php echo $this->getLoadTreeUrl() ?>'
80
+ });
81
+
82
+ categoryLoader.buildCategoryTree = function(parent, config)
83
+ {
84
+ if (!config) return null;
85
+
86
+
87
+ if (parent && config && config.length){
88
+ for (var i = 0; i < config.length; i++) {
89
+ var node;
90
+ if (useMassaction && config[i].is_anchor == isAnchorOnly) {
91
+ config[i].uiProvider = Ext.tree.CheckboxNodeUI;
92
+ }
93
+ var _node = Object.clone(config[i]);
94
+
95
+ // Add empty node to reset category filter
96
+ if(!emptyNodeAdded) {
97
+ var empty = Object.clone(_node);
98
+ empty.text = '<?php echo Mage::helper('core')->jsQuoteEscape($this->__('None')) ?>';
99
+ empty.children = [];
100
+ empty.id = 'none';
101
+ empty.path = '1/none';
102
+ empty.cls = 'leaf';
103
+ parent.appendChild(new Ext.tree.TreeNode(empty));
104
+ emptyNodeAdded = true;
105
+ }
106
+
107
+ if (_node.children && !_node.children.length) {
108
+ delete(_node.children);
109
+ node = new Ext.tree.AsyncTreeNode(_node);
110
+ } else {
111
+ node = new Ext.tree.TreeNode(config[i]);
112
+ }
113
+ parent.appendChild(node);
114
+ node.loader = node.getOwnerTree().loader;
115
+ node.loader = node.getOwnerTree().loader;
116
+ if (_node.children) {
117
+ this.buildCategoryTree(node, _node.children);
118
+ }
119
+ }
120
+ }
121
+ };
122
+
123
+ categoryLoader.createNode = function(config) {
124
+ var node;
125
+ if (useMassaction && config.is_anchor == isAnchorOnly) {
126
+ config.uiProvider = Ext.tree.CheckboxNodeUI;
127
+ }
128
+ var _node = Object.clone(config);
129
+ if (config.children && !config.children.length) {
130
+ delete(config.children);
131
+ node = new Ext.tree.AsyncTreeNode(config);
132
+ } else {
133
+ node = new Ext.tree.TreeNode(config);
134
+ }
135
+ return node;
136
+ };
137
+
138
+ categoryLoader.buildHash = function(node)
139
+ {
140
+ var hash = {};
141
+
142
+ hash = this.toArray(node.attributes);
143
+
144
+ if (node.childNodes.length>0 || (node.loaded==false && node.loading==false)) {
145
+ hash['children'] = new Array;
146
+
147
+ for (var i = 0, len = node.childNodes.length; i < len; i++) {
148
+ if (!hash['children']) {
149
+ hash['children'] = new Array;
150
+ }
151
+ hash['children'].push(this.buildHash(node.childNodes[i]));
152
+ }
153
+ }
154
+
155
+ return hash;
156
+ };
157
+
158
+ categoryLoader.toArray = function(attributes) {
159
+ var data = {};
160
+ for (var key in attributes) {
161
+ var value = attributes[key];
162
+ data[key] = value;
163
+ }
164
+
165
+ return data;
166
+ };
167
+
168
+ categoryLoader.on("beforeload", function(treeLoader, node) {
169
+ treeLoader.baseParams.id = node.attributes.id;
170
+ });
171
+
172
+ tree<?php echo $this->getId() ?> = new Ext.tree.TreePanel.Enhanced('<?php echo $_divId ?>', {
173
+ animate: false,
174
+ loader: categoryLoader,
175
+ enableDD: false,
176
+ containerScroll: true,
177
+ rootVisible: '<?php echo $this->getRoot()->getIsVisible() ?>',
178
+ useAjax: true,
179
+ currentNodeId: <?php echo (int) $this->getCategoryId() ?>,
180
+ addNodeTo: false
181
+ });
182
+
183
+ if (useMassaction) {
184
+ tree<?php echo $this->getId() ?>.on('check', function(node) {
185
+ $('<?php echo $_divId; ?>').fire('node:changed', {node:node});
186
+ }, tree<?php echo $this->getId() ?>);
187
+ }
188
+
189
+ // set the root node
190
+ var parameters = {
191
+ text: 'Psw',
192
+ draggable: false,
193
+ id: <?php echo (int) $this->getRoot()->getId() ?>,
194
+ expanded: <?php echo (int) $this->getIsWasExpanded() ?>,
195
+ category_id: <?php echo (int) $this->getCategoryId() ?>
196
+ };
197
+
198
+ tree<?php echo $this->getId() ?>.loadTree({parameters:parameters, data:<?php echo $this->getTreeJson() ?>},true);
199
+
200
+ });
201
+ //]]>
202
+ </script>
app/design/adminhtml/default/default/template/catalog/form/renderer/fieldset/element.phtml ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * @see Mage_Adminhtml_Block_Catalog_Form_Renderer_Fieldset_Element
30
+ */
31
+ ?>
32
+ <?php $_element = $this->getElement() ?>
33
+ <?php $this->checkFieldDisable() ?>
34
+ <?php
35
+ $elementToggleCode = $_element->getToggleCode() ? $_element->getToggleCode()
36
+ : 'toggleValueElements(this, this.parentNode.parentNode)';
37
+ ?>
38
+
39
+ <?php if ($_element->getType()=='hidden'): ?>
40
+ <tr>
41
+ <td class="hidden" colspan="100"><?php echo trim($_element->getElementHtml()) ?></td>
42
+ </tr>
43
+ <?php else: ?>
44
+ <tr>
45
+ <td class="label"><?php echo trim($this->getElementLabelHtml()) ?></td>
46
+ <td class="value">
47
+ <?php echo trim($this->getElementHtml()) ?>
48
+ <?php if ($_element->getNote()) : ?>
49
+ <p class="note"><?php echo $_element->getNote() ?></p>
50
+ <?php endif; ?>
51
+ </td>
52
+ <td class="scope-label"><span class="nobr"><?php echo $this->getScopeLabel() ?></span></td>
53
+ <?php if ($this->canDisplayUseDefault()): ?>
54
+ <td class="value use-default">
55
+ <input <?php if($_element->getReadonly()):?> disabled="disabled"<?php endif; ?> type="checkbox" name="use_default[]" id="<?php echo $_element->getHtmlId() ?>_default"<?php if ($this->usedDefault()): ?> checked="checked"<?php endif; ?> onclick="<?php echo $elementToggleCode; ?>" value="<?php echo $this->getAttributeCode() ?>"/>
56
+ <label for="<?php echo $_element->getHtmlId() ?>_default" class="normal"><?php echo $this->__('Use Default Value') ?></label>
57
+ </td>
58
+ <?php endif; ?>
59
+ </tr>
60
+ <?php endif; ?>
app/design/adminhtml/default/default/template/catalog/product.phtml ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * @see Mage_Adminhtml_Block_Catalog_Product
30
+ */
31
+ ?>
32
+ <div class="content-header">
33
+ <table cellspacing="0">
34
+ <tr>
35
+ <td style="width:50%;"><h3 class="icon-head head-products"><?php echo Mage::helper('catalog')->__('Manage Products') ?></h3></td>
36
+ <td class="a-right">
37
+ <?php echo $this->getButtonsHtml() ?>
38
+ </td>
39
+ </tr>
40
+ </table>
41
+ </div>
42
+ <?php if( !$this->isSingleStoreMode() ): ?>
43
+ <?php echo $this->getChildHtml('store_switcher');?>
44
+ <?php endif;?>
45
+ <div>
46
+ <?php echo $this->getGridHtml() ?>
47
+ </div>
app/design/adminhtml/default/default/template/catalog/product/attribute/js.phtml ADDED
@@ -0,0 +1,338 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type="text/javascript">
28
+ //<![CDATA[
29
+ function saveAndContinueEdit(){
30
+ disableElements('save');
31
+ var activeTab = product_attribute_tabsJsTabs.activeTab.id;
32
+ if (editForm.submit($('edit_form').action+'back/edit/tab/' + activeTab) == false) {
33
+ enableElements('save');
34
+ }
35
+ varienGlobalEvents.attachEventHandler('formValidateAjaxComplete', function (){
36
+ enableElements('save');
37
+ });
38
+ }
39
+
40
+ function saveAttribute(){
41
+ disableElements('save');
42
+ if (editForm.submit() == false){
43
+ enableElements('save');
44
+ }
45
+ varienGlobalEvents.attachEventHandler('formValidateAjaxComplete', function (){
46
+ enableElements('save');
47
+ });
48
+ }
49
+
50
+ function toggleApplyVisibility(select) {
51
+ if ($(select).value == 1) {
52
+ $(select).next('select').removeClassName('no-display');
53
+ $(select).next('select').removeClassName('ignore-validate');
54
+
55
+ } else {
56
+ $(select).next('select').addClassName('no-display');
57
+ $(select).next('select').addClassName('ignore-validate');
58
+ var options = $(select).next('select').options;
59
+ for( var i=0; i < options.length; i++) {
60
+ options[i].selected = false;
61
+ }
62
+ }
63
+ }
64
+
65
+ function checkOptionsPanelVisibility(){
66
+ if($('matage-options-panel')){
67
+ var panel = $('matage-options-panel');
68
+ if($('frontend_input') && ($('frontend_input').value=='select' || $('frontend_input').value=='multiselect')){
69
+ panel.show();
70
+ }
71
+ else {
72
+ panel.hide();
73
+ }
74
+ }
75
+ }
76
+
77
+ function bindAttributeInputType()
78
+ {
79
+ checkOptionsPanelVisibility();
80
+ switchDefaultValueField();
81
+ checkIsConfigurableVisibility();
82
+ if($('frontend_input') && ($('frontend_input').value=='select' || $('frontend_input').value=='multiselect' || $('frontend_input').value=='price')){
83
+ if($('is_filterable') && !$('is_filterable').getAttribute('readonly')){
84
+ $('is_filterable').disabled = false;
85
+ }
86
+ if($('is_filterable_in_search') && !$('is_filterable_in_search').getAttribute('readonly')){
87
+ $('is_filterable_in_search').disabled = false;
88
+ }
89
+ if($('backend_type') && $('backend_type').options){
90
+ for(var i=0;i<$('backend_type').options.length;i++){
91
+ if($('backend_type').options[i].value=='int') $('backend_type').selectedIndex = i;
92
+ }
93
+ }
94
+ }
95
+ else {
96
+ if($('is_filterable')){
97
+ $('is_filterable').selectedIndex=0;
98
+ $('is_filterable').disabled = true;
99
+ }
100
+ if($('is_filterable_in_search')){
101
+ $('is_filterable_in_search').disabled = true;
102
+ }
103
+ }
104
+
105
+ if ($('frontend_input') && ($('frontend_input').value=='multiselect'
106
+ || $('frontend_input').value=='gallery'
107
+ || $('frontend_input').value=='textarea')) {
108
+ if ($('used_for_sort_by')) {
109
+ $('used_for_sort_by').disabled = true;
110
+ }
111
+ }
112
+ else {
113
+ if ($('used_for_sort_by') && !$('used_for_sort_by').getAttribute('readonly')) {
114
+ $('used_for_sort_by').disabled = false;
115
+ }
116
+ }
117
+
118
+ setRowVisibility('is_wysiwyg_enabled', false);
119
+ setRowVisibility('is_html_allowed_on_front', false);
120
+
121
+ switch ($('frontend_input').value) {
122
+ case 'textarea':
123
+ setRowVisibility('is_wysiwyg_enabled', true);
124
+ if($('is_wysiwyg_enabled').value == '0'){
125
+ setRowVisibility('is_html_allowed_on_front', true);
126
+ $('is_html_allowed_on_front').disabled = false;
127
+ }
128
+ $('frontend_class').value = '';
129
+ $('frontend_class').disabled = true;
130
+ break;
131
+ case 'text':
132
+ setRowVisibility('is_html_allowed_on_front', true);
133
+ $('is_html_allowed_on_front').disabled = false;
134
+
135
+ if (!$('frontend_class').getAttribute('readonly')) {
136
+ $('frontend_class').disabled = false;
137
+ }
138
+ break;
139
+ case 'select':
140
+ case 'multiselect':
141
+ setRowVisibility('is_html_allowed_on_front', true);
142
+ $('is_html_allowed_on_front').disabled = false;
143
+ break;
144
+ default:
145
+ $('frontend_class').value = '';
146
+ $('frontend_class').disabled = true;
147
+ }
148
+
149
+ switchIsFilterable();
150
+ }
151
+
152
+ function switchIsFilterable()
153
+ {
154
+ if ($('is_filterable')) {
155
+ if ($('is_filterable').selectedIndex == 0) {
156
+ $('position').disabled = true;
157
+ } else {
158
+ if (!$('position').getAttribute('readonly')){
159
+ $('position').disabled = false;
160
+ }
161
+ }
162
+ }
163
+ }
164
+
165
+ function disableApplyToValue(value)
166
+ {
167
+ var applyToSelect = $('apply_to');
168
+ for (i=0;i<applyToSelect.options.length;i++) {
169
+ if (value == applyToSelect.options[i].value) {
170
+ applyToSelect.options[i].disabled = true;
171
+ applyToSelect.options[i].selected = false;
172
+ }
173
+ }
174
+ }
175
+
176
+ function switchDefaultValueField()
177
+ {
178
+ if (!$('frontend_input')) {
179
+ return;
180
+ }
181
+
182
+ var currentValue = $('frontend_input').value;
183
+
184
+ var defaultValueTextVisibility = false;
185
+ var defaultValueTextareaVisibility = false;
186
+ var defaultValueDateVisibility = false;
187
+ var defaultValueYesnoVisibility = false;
188
+ var scopeVisibility = true;
189
+
190
+ switch (currentValue) {
191
+ case 'select':
192
+ optionDefaultInputType = 'radio';
193
+ break;
194
+
195
+ case 'multiselect':
196
+ optionDefaultInputType = 'checkbox';
197
+ break;
198
+
199
+ case 'date':
200
+ defaultValueDateVisibility = true;
201
+ break;
202
+
203
+ case 'boolean':
204
+ defaultValueYesnoVisibility = true;
205
+ break;
206
+
207
+ case 'textarea':
208
+ defaultValueTextareaVisibility = true;
209
+ break;
210
+
211
+ case 'media_image':
212
+ defaultValueTextVisibility = false;
213
+ break;
214
+ case 'price':
215
+ scopeVisibility = false;
216
+ default:
217
+ defaultValueTextVisibility = true;
218
+ break;
219
+ }
220
+
221
+ var applyToSelect = $('apply_to');
222
+ switch (currentValue) {
223
+ <?php foreach (Mage::helper('catalog')->getAttributeDisabledTypes() as $type=>$disabled): ?>
224
+ case '<?php echo $type; ?>':
225
+ <?php foreach ($disabled as $one): ?>
226
+ disableApplyToValue('<?php echo $one; ?>');
227
+ <?php endforeach; ?>
228
+ break;
229
+ <?php endforeach; ?>
230
+ default:
231
+ for (i=0;i<applyToSelect.options.length;i++) {
232
+ applyToSelect.options[i].disabled = false;
233
+ }
234
+ break;
235
+ }
236
+
237
+ switch (currentValue) {
238
+ case 'media_image':
239
+ $('front_fieldset').previous().hide();
240
+ $('front_fieldset').hide();
241
+
242
+ setRowVisibility('is_required', false);
243
+ setRowVisibility('is_unique', false);
244
+ setRowVisibility('frontend_class', false);
245
+ break;
246
+
247
+ <?php foreach (Mage::helper('catalog')->getAttributeHiddenFields() as $type=>$fields): ?>
248
+ case '<?php echo $type; ?>':
249
+ <?php foreach ($fields as $one): ?>
250
+ <?php if ($one == '_front_fieldset'): ?>
251
+ $('front_fieldset').previous().hide();
252
+ $('front_fieldset').hide();
253
+ <?php elseif ($one == '_default_value'): ?>
254
+ defaultValueTextVisibility =
255
+ defaultValueTextareaVisibility =
256
+ defaultValueDateVisibility =
257
+ defaultValueYesnoVisibility = false;
258
+ <?php elseif ($one == '_scope'): ?>
259
+ scopeVisibility = false;
260
+ <?php else: ?>
261
+ setRowVisibility('<?php echo $one; ?>', false);
262
+ <?php endif; ?>
263
+ <?php endforeach; ?>
264
+ break;
265
+ <?php endforeach; ?>
266
+
267
+ default:
268
+ $('front_fieldset').previous().show();
269
+ $('front_fieldset').show();
270
+ setRowVisibility('is_required', true);
271
+ setRowVisibility('is_unique', true);
272
+ setRowVisibility('frontend_class', true);
273
+ setRowVisibility('is_configurable', true);
274
+ break;
275
+ }
276
+
277
+ setRowVisibility('default_value_text', defaultValueTextVisibility);
278
+ setRowVisibility('default_value_textarea', defaultValueTextareaVisibility);
279
+ setRowVisibility('default_value_date', defaultValueDateVisibility);
280
+ setRowVisibility('default_value_yesno', defaultValueYesnoVisibility);
281
+ setRowVisibility('is_global', scopeVisibility);
282
+
283
+ var elems = document.getElementsByName('default[]');
284
+ for (var i = 0; i < elems.length; i++) {
285
+ elems[i].type = optionDefaultInputType;
286
+ }
287
+ }
288
+
289
+ function setRowVisibility(id, isVisible)
290
+ {
291
+ if ($(id)) {
292
+ var td = $(id).parentNode;
293
+ var tr = $(td.parentNode);
294
+
295
+ if (isVisible) {
296
+ tr.show();
297
+ } else {
298
+ tr.blur();
299
+ tr.hide();
300
+ }
301
+ }
302
+ }
303
+
304
+ function checkIsConfigurableVisibility()
305
+ {
306
+ if (!$('is_configurable') || !$('is_global') || !$('frontend_input')) return;
307
+ if ($F('is_global')==1 && $F('frontend_input')=='select') {
308
+ setRowVisibility('is_configurable', true);
309
+ } else {
310
+ setRowVisibility('is_configurable', false);
311
+ }
312
+ }
313
+
314
+ function updateRequriedOptions()
315
+ {
316
+ if ($F('frontend_input')=='select' && $F('is_required')==1) {
317
+ $('option-count-check').addClassName('required-options-count');
318
+ } else {
319
+ $('option-count-check').removeClassName('required-options-count');
320
+ }
321
+ }
322
+
323
+ if($('frontend_input')){
324
+ Event.observe($('frontend_input'), 'change', updateRequriedOptions);
325
+ Event.observe($('frontend_input'), 'change', bindAttributeInputType);
326
+ Event.observe($('is_global'), 'change', checkIsConfigurableVisibility);
327
+ }
328
+
329
+ if ($('is_filterable')) {
330
+ Event.observe($('is_filterable'), 'change', switchIsFilterable);
331
+ }
332
+
333
+ if ($('is_required')) {
334
+ Event.observe($('is_required'), 'change', updateRequriedOptions);
335
+ }
336
+ bindAttributeInputType();
337
+ //]]>
338
+ </script>
app/design/adminhtml/default/default/template/catalog/product/attribute/new/created.phtml ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type="text/javascript">
28
+ var added = false;
29
+ function addAttribute(closeAfter) {
30
+ if(window.opener!=null && !added) {
31
+ window.opener.Product.AttributesBridge.addAttributeRow(<?php echo $this->getAttributesBlockJson() ?>);
32
+ added = true;
33
+ }
34
+
35
+ if(closeAfter)
36
+ {
37
+ closeWindow();
38
+ }
39
+ }
40
+
41
+ function closeWindow()
42
+ {
43
+ if (window.opener) {
44
+ window.opener.focus();
45
+ }
46
+ window.close();
47
+ }
48
+
49
+ addAttribute(false);
50
+ setTimeout(closeWindow, 3000);
51
+ </script>
52
+ <div class="a-center">
53
+ <?php echo $this->getCloseButtonHtml() ?>
54
+ </div>
app/design/adminhtml/default/default/template/catalog/product/attribute/options.phtml ADDED
@@ -0,0 +1,224 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * Attribute options control
30
+ *
31
+ * @deprecated after 1.7.0.2 The file is moved
32
+ * @see Mage_Adminhtml_Block_Catalog_Product_Attribute_Edit_Tab_Options
33
+ */
34
+ ?>
35
+ <div>
36
+ <ul class="messages">
37
+ <li class="notice-msg">
38
+ <ul>
39
+ <li><?php echo Mage::helper('catalog')->__('If you do not specify an option value for a specific store view then the default (Admin) value will be used.') ?></li>
40
+ </ul>
41
+ </li>
42
+ </ul>
43
+ </div>
44
+
45
+ <div class="entity-edit">
46
+ <div class="entry-edit-head">
47
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Manage Titles (Size, Color, etc.)') ?></h4>
48
+ </div>
49
+ <div class="box">
50
+ <div class="hor-scroll">
51
+ <table class="dynamic-grid" cellspacing="0" id="attribute-labels-table">
52
+ <tr>
53
+ <?php foreach ($this->getStores() as $_store): ?>
54
+ <th><?php echo $_store->getName() ?></th>
55
+ <?php endforeach; ?>
56
+ </tr>
57
+ <tr>
58
+ <?php $_labels = $this->getLabelValues() ?>
59
+ <?php foreach ($this->getStores() as $_store): ?>
60
+ <td>
61
+ <input class="input-text<?php if($_store->getId()==0): ?> required-option<?php endif; ?>" type="text" name="frontend_label[<?php echo $_store->getId() ?>]" value="<?php echo $this->escapeHtml($_labels[$_store->getId()]) ?>"<?php if ($this->getReadOnly()):?> disabled="disabled"<?php endif;?>/>
62
+ </td>
63
+ <?php endforeach; ?>
64
+ </tr>
65
+ </table>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ <br/>
70
+ <div class="entity-edit" id="matage-options-panel">
71
+ <div class="entry-edit-head">
72
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Manage Options (values of your attribute)') ?></h4>
73
+ </div>
74
+ <div class="box">
75
+ <div class="hor-scroll">
76
+ <table class="dynamic-grid" cellspacing="0" cellpadding="0">
77
+ <tr id="attribute-options-table">
78
+ <?php foreach ($this->getStores() as $_store): ?>
79
+ <th><?php echo $_store->getName() ?></th>
80
+ <?php endforeach; ?>
81
+ <th><?php echo Mage::helper('catalog')->__('Position') ?></th>
82
+ <th class="nobr a-center"><?php echo Mage::helper('catalog')->__('Is Default') ?></th>
83
+ <th>
84
+ <?php if (!$this->getReadOnly()):?>
85
+ <?php echo $this->getAddNewButtonHtml() ?>
86
+ <?php endif;?>
87
+ </th>
88
+ </tr>
89
+ <tr class="no-display template" id="row-template">
90
+ <?php foreach ($this->getStores() as $_store): ?>
91
+ <td><input name="option[value][{{id}}][<?php echo $_store->getId() ?>]" value="{{store<?php echo $_store->getId() ?>}}" class="input-text<?php if($_store->getId()==0): ?> required-option<?php endif; ?>" type="text" <?php if ($this->getReadOnly()):?> disabled="disabled"<?php endif;?>/></td>
92
+ <?php endforeach; ?>
93
+ <td class="a-center"><input class="input-text" type="text" name="option[order][{{id}}]" value="{{sort_order}}" <?php if ($this->getReadOnly()):?> disabled="disabled"<?php endif;?>/></td>
94
+ <td><input class="input-radio" type="radio" name="default[]" value="{{id}}" <?php if ($this->getReadOnly()):?> disabled="disabled"<?php endif;?>/></td>
95
+ <td class="a-left">
96
+ <input type="hidden" class="delete-flag" name="option[delete][{{id}}]" value="" />
97
+ <?php if (!$this->getReadOnly()):?>
98
+ <?php echo $this->getDeleteButtonHtml() ?>
99
+ <?php endif;?>
100
+ </td>
101
+ </tr>
102
+ </table>
103
+ </div>
104
+ <input type="hidden" id="option-count-check" value="" />
105
+ </div>
106
+ </div>
107
+ <script type="text/javascript">
108
+ //<![CDATA[
109
+ var optionDefaultInputType = 'radio';
110
+
111
+ // IE removes quotes from element.innerHTML whenever it thinks they're not needed, which breaks html.
112
+ var templateText =
113
+ '<tr class="option-row">'+
114
+ <?php foreach ($this->getStores() as $_store): ?>
115
+ '<td><input name="option[value][{{id}}][<?php echo $_store->getId() ?>]" value="{{store<?php echo $_store->getId() ?>}}" class="input-text<?php if($_store->getId()==0): ?> required-option<?php endif; ?>" type="text" <?php if ($this->getReadOnly()):?> disabled="disabled"<?php endif;?>/><\/td>'+
116
+ <?php endforeach; ?>
117
+ '<td><input class="input-text" type="text" name="option[order][{{id}}]" value="{{sort_order}}" <?php if ($this->getReadOnly()):?> disabled="disabled"<?php endif;?>/><\/td>'+
118
+ '<td class="a-center"><input class="input-radio" type="{{intype}}" name="default[]" value="{{id}}" {{checked}} <?php if ($this->getReadOnly()):?> disabled="disabled"<?php endif;?>/><\/td>'+
119
+ '<td class="a-left" id="delete_button_container_{{id}}">'+
120
+ '<input type="hidden" class="delete-flag" name="option[delete][{{id}}]" value="" />'+
121
+ <?php if (!$this->getReadOnly()):?>
122
+ '<?php echo Mage::helper('core')->jsQuoteEscape($this->getDeleteButtonHtml()) ?>'+
123
+ <?php endif;?>
124
+ '<\/td>'+
125
+ '<\/tr>';
126
+
127
+ var attributeOption = {
128
+ table : $('attribute-options-table'),
129
+ templateSyntax : /(^|.|\r|\n)({{(\w+)}})/,
130
+ templateText : templateText,
131
+ itemCount : 0,
132
+ totalItems : 0,
133
+ isReadOnly: <?php echo (int)$this->getReadOnly(); ?>,
134
+ add : function(data) {
135
+ this.template = new Template(this.templateText, this.templateSyntax);
136
+ var isNewOption = false;
137
+ if(!data.id){
138
+ data = {};
139
+ data.id = 'option_'+this.itemCount;
140
+ isNewOption = true;
141
+ }
142
+ if (!data.intype)
143
+ data.intype = optionDefaultInputType;
144
+ Element.insert(this.table, {after: this.template.evaluate(data)});
145
+ if (isNewOption && !this.isReadOnly) {
146
+ this.enableNewOptionDeleteButton(data.id);
147
+ }
148
+ this.bindRemoveButtons();
149
+ this.itemCount++;
150
+ this.totalItems++;
151
+ this.updateItemsCountField();
152
+ },
153
+ remove : function(event){
154
+ var element = $(Event.findElement(event, 'tr')); // !!! Button already
155
+ // have table parent in safari
156
+ // Safari workaround
157
+ element.ancestors().each(function(parentItem){
158
+ if (parentItem.hasClassName('option-row')) {
159
+ element = parentItem;
160
+ throw $break;
161
+ } else if (parentItem.hasClassName('box')) {
162
+ throw $break;
163
+ }
164
+ });
165
+
166
+
167
+ if(element){
168
+ var elementFlags = element.getElementsByClassName('delete-flag');
169
+ if(elementFlags[0]){
170
+ elementFlags[0].value=1;
171
+ }
172
+
173
+ element.addClassName('no-display');
174
+ element.addClassName('template');
175
+ element.hide();
176
+ this.totalItems--;
177
+ this.updateItemsCountField();
178
+ }
179
+ },
180
+ updateItemsCountField: function() {
181
+ if (this.totalItems > 0) {
182
+ $('option-count-check').value = '1';
183
+ } else {
184
+ $('option-count-check').value = '';
185
+ }
186
+ },
187
+ enableNewOptionDeleteButton: function(id) {
188
+ $$('#delete_button_container_' + id + ' button').each(function(button) {
189
+ button.enable();
190
+ button.removeClassName('disabled');
191
+ });
192
+ },
193
+ bindRemoveButtons : function(){
194
+ var buttons = $$('.delete-option');
195
+ for(var i=0;i<buttons.length;i++){
196
+ if(!$(buttons[i]).binded){
197
+ $(buttons[i]).binded = true;
198
+ Event.observe(buttons[i], 'click', this.remove.bind(this));
199
+ }
200
+ }
201
+ }
202
+
203
+ }
204
+ if($('row-template')){
205
+ $('row-template').remove();
206
+ }
207
+ attributeOption.bindRemoveButtons();
208
+
209
+ if($('add_new_option_button')){
210
+ Event.observe('add_new_option_button', 'click', attributeOption.add.bind(attributeOption));
211
+ }
212
+ Validation.addAllThese([
213
+ ['required-option', '<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Failed')) ?>', function(v) {
214
+ return !Validation.get('IsEmpty').test(v);
215
+ }]]);
216
+ Validation.addAllThese([
217
+ ['required-options-count', '<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Options is required')) ?>', function(v) {
218
+ return !Validation.get('IsEmpty').test(v);
219
+ }]]);
220
+ <?php foreach ($this->getOptionValues() as $_value): ?>
221
+ attributeOption.add(<?php echo $_value->toJson() ?>);
222
+ <?php endforeach; ?>
223
+ //]]>
224
+ </script>
app/design/adminhtml/default/default/template/catalog/product/attribute/set/main.phtml ADDED
@@ -0,0 +1,461 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="content-header">
28
+ <table cellspacing="0">
29
+ <tr>
30
+ <td style="width:50%;"><h3 class="icon-head head-product-attribute-sets"><?php echo $this->escapeHtml($this->_getHeader()) ?></h3></td>
31
+ <td class="form-buttons">
32
+ <?php echo $this->getBackButtonHtml() ?>
33
+ <?php echo $this->getResetButtonHtml() ?>
34
+ <?php echo $this->getDeleteButtonHtml() ?>
35
+ <?php echo $this->getSaveButtonHtml() ?>
36
+ </td>
37
+ </tr>
38
+ </table>
39
+ </div>
40
+ <table cellspacing="0" width="100%">
41
+ <tr>
42
+ <td width="360" style="border-right:1px solid #ddd; padding:0 23px 23px 0;" class="edit-attribute-set">
43
+ <?php echo $this->getSetFormHtml() ?>
44
+ </td>
45
+ <td width="320" style="border-right:1px solid #ddd; padding:0 23px 23px 23px;">
46
+ <div class="content-header skip-header">
47
+ <table cellspacing="0">
48
+ <tbody>
49
+ <tr>
50
+ <td><h3><?php echo Mage::helper('catalog')->__('Groups') ?></h3></td>
51
+ </tr>
52
+ </tbody>
53
+ </table>
54
+ </div>
55
+
56
+ <?php if (!$this->getIsReadOnly()): ?>
57
+ <p><?php echo $this->getAddGroupButton() ?>&nbsp;<?php echo $this->getDeleteGroupButton() ?></p>
58
+ <p class="note-block"><?php echo Mage::helper('catalog')->__('Double click on a group to rename it') ?></p>
59
+ <?php endif; ?>
60
+
61
+ <?php echo $this->getSetsFilterHtml() ?>
62
+ <?php echo $this->getGroupTreeHtml() ?>
63
+ </td>
64
+ <td style="padding:0 0 23px 23px;">
65
+ <div class="content-header skip-header">
66
+ <table cellspacing="0">
67
+ <tbody>
68
+ <tr>
69
+ <td><h3><?php echo Mage::helper('catalog')->__('Unassigned Attributes') ?></h3></td>
70
+ </tr>
71
+ </tbody>
72
+ </table>
73
+ </div>
74
+ <div id="tree-div2" style="height:400px; margin-top:5px;overflow:auto"></div>
75
+ <script type="text/javascript">
76
+ //<![CDATA[
77
+ var allowDragAndDrop = <?php echo ($this->getIsReadOnly() ? 'false' : 'true'); ?>;
78
+ var canEditGroups = <?php echo ($this->getIsReadOnly() ? 'false' : 'true'); ?>;
79
+
80
+ var TreePanels = function() {
81
+ // shorthand
82
+ var Tree = Ext.tree;
83
+
84
+ return {
85
+ init : function(){
86
+ // yui-ext tree
87
+
88
+ var tree = new Ext.tree.TreePanel('tree-div1', {
89
+ animate:false,
90
+ loader: false,
91
+ enableDD:allowDragAndDrop,
92
+ containerScroll: true,
93
+ rootVisible: false
94
+ });
95
+
96
+ // set the root node
97
+ this.root = new Ext.tree.TreeNode({
98
+ text: 'ROOT',
99
+ allowDrug:false,
100
+ allowDrop:true,
101
+ id:'1'
102
+ });
103
+
104
+ tree.setRootNode(this.root);
105
+ buildCategoryTree(this.root, <?php echo $this->getGroupTreeJson() ?>);
106
+ // render the tree
107
+ tree.render();
108
+ this.root.expand(false, false);
109
+ tree.expandAll();
110
+
111
+ this.ge = new Ext.tree.TreeEditor(tree, {
112
+ allowBlank:false,
113
+ blankText:'<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('A name is required')) ?>',
114
+ selectOnFocus:true,
115
+ cls:'folder'
116
+ });
117
+
118
+ this.root.addListener('beforeinsert', editSet.leftBeforeInsert);
119
+ this.root.addListener('beforeappend', editSet.leftBeforeInsert);
120
+
121
+ //this.ge.addListener('beforerender', editSet.editGroup);
122
+ this.ge.addListener('beforeshow', editSet.editGroup);
123
+ this.ge.addListener('beforecomplete', editSet.beforeRenameGroup);
124
+ //this.ge.addListener('startedit', editSet.editGroup);
125
+
126
+ //-------------------------------------------------------------
127
+
128
+ var tree2 = new Ext.tree.TreePanel('tree-div2', {
129
+ animate:false,
130
+ loader: false,
131
+ enableDD:allowDragAndDrop,
132
+ containerScroll: true,
133
+ rootVisible: false,
134
+ lines:false
135
+ });
136
+
137
+ // set the root node
138
+ this.root2 = new Ext.tree.TreeNode({
139
+ text: 'ROOT',
140
+ draggable:false,
141
+ id:'free'
142
+ });
143
+ tree2.setRootNode(this.root2);
144
+ buildCategoryTree(this.root2, <?php echo $this->getAttributeTreeJson() ?>);
145
+
146
+ this.root2.addListener('beforeinsert', editSet.rightBeforeInsert);
147
+ this.root2.addListener('beforeappend', editSet.rightBeforeAppend);
148
+
149
+ this.root2.addListener('append', editSet.rightAppend);
150
+ this.root2.addListener('remove', editSet.rightRemove);
151
+ // render the tree
152
+ tree2.render();
153
+ this.root2.expand(false, false);
154
+ tree2.expandAll();
155
+ },
156
+
157
+ rebuildTrees : function(){
158
+ editSet.req.attributes = new Array();
159
+ rootNode = TreePanels.root;
160
+ var gIterator = 0;
161
+ for( i in rootNode.childNodes ) {
162
+ if(rootNode.childNodes[i].id) {
163
+ var group = rootNode.childNodes[i];
164
+ editSet.req.groups[gIterator] = new Array(group.id, group.attributes.text.strip(), (gIterator+1));
165
+ var iterator = 0
166
+ for( j in group.childNodes ) {
167
+ iterator ++;
168
+ if( group.childNodes[j].id > 0 ) {
169
+ editSet.req.attributes[group.childNodes[j].id] = new Array(group.childNodes[j].id, group.id, iterator, group.childNodes[j].attributes.entity_id);
170
+ }
171
+ }
172
+ iterator = 0;
173
+ }
174
+ gIterator ++;
175
+ }
176
+
177
+ editSet.req.not_attributes = new Array();
178
+ rootNode = TreePanels.root2;
179
+
180
+ var iterator = 0;
181
+ for( i in rootNode.childNodes ) {
182
+ if(rootNode.childNodes[i].id) {
183
+ if( rootNode.childNodes[i].id > 0 ) {
184
+ editSet.req.not_attributes[iterator] = rootNode.childNodes[i].attributes.entity_id;
185
+ }
186
+ iterator ++;
187
+ }
188
+ }
189
+ }
190
+ };
191
+ }();
192
+
193
+ function buildCategoryTree(parent, config){
194
+ if (!config) return null;
195
+ if (parent && config && config.length){
196
+ for (var i = 0; i < config.length; i++) {
197
+ var node = new Ext.tree.TreeNode(config[i]);
198
+ parent.appendChild(node);
199
+ node.addListener('click', editSet.register);
200
+ node.addListener('beforemove', editSet.groupBeforeMove);
201
+ node.addListener('beforeinsert', editSet.groupBeforeInsert);
202
+ node.addListener('beforeappend', editSet.groupBeforeInsert);
203
+ if( config[i].children ) {
204
+ for( j in config[i].children ) {
205
+ if(config[i].children[j].id) {
206
+ newNode = new Ext.tree.TreeNode(config[i].children[j]);
207
+ node.appendChild(newNode);
208
+ newNode.addListener('click', editSet.unregister);
209
+ }
210
+ }
211
+ }
212
+ }
213
+ }
214
+ }
215
+
216
+ var editSet = function() {
217
+ return {
218
+ register : function(node) {
219
+ editSet.currentNode = node;
220
+ },
221
+
222
+ unregister : function() {
223
+ editSet.currentNode = false;
224
+ },
225
+
226
+ submit : function() {
227
+ if( TreePanels.root.firstChild == TreePanels.root.lastChild ) {
228
+ return;
229
+ }
230
+
231
+ if( editSet.SystemNodesExists(editSet.currentNode) ) {
232
+ alert('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('This group contains system attributes. Please move system attributes to another group and try again.')) ?>');
233
+ return;
234
+ }
235
+
236
+ if (editSet.ConfigurableNodeExists(editSet.currentNode)) {
237
+ alert('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('This group contains attributes, used in configurable products. Please move these attributes to another group and try again.')) ?>');
238
+ return;
239
+ }
240
+
241
+ if( editSet.currentNode && editSet.currentNode.attributes.cls == 'folder' ) {
242
+ TreePanels.root.removeChild(editSet.currentNode);
243
+ for( i in editSet.currentNode.childNodes ) {
244
+ if( editSet.currentNode.childNodes[i].id ) {
245
+ child = editSet.currentNode.childNodes[i];
246
+ newNode = new Ext.tree.TreeNode(child.attributes);
247
+
248
+ if( child.attributes.is_user_defined == 1 ) {
249
+ TreePanels.root2.appendChild(newNode);
250
+ }
251
+ }
252
+ }
253
+ editSet.req.removeGroups[editSet.currentNode.id] = editSet.currentNode.id;
254
+ editSet.currentNode = false;
255
+ }
256
+ },
257
+
258
+ SystemNodesExists : function(currentNode) {
259
+ for( i in currentNode.childNodes ) {
260
+ if( currentNode.childNodes[i].id ) {
261
+ child = editSet.currentNode.childNodes[i];
262
+ if( child.attributes.is_user_defined != 1 ) {
263
+ return true;
264
+ }
265
+ }
266
+ }
267
+ },
268
+
269
+ ConfigurableNodeExists : function(currentNode) {
270
+ for (var i in currentNode.childNodes ) {
271
+ if (currentNode.childNodes[i].id) {
272
+ child = editSet.currentNode.childNodes[i];
273
+ if (child.attributes.is_configurable) {
274
+ return true;
275
+ }
276
+ }
277
+ }
278
+ return false;
279
+ },
280
+
281
+ rightAppend : function(node) {
282
+ return;
283
+ },
284
+
285
+ addGroup : function() {
286
+ var group_name = prompt("<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Please enter a new group name')) ?>","");
287
+ group_name = group_name.strip();
288
+ if( group_name == '' ) {
289
+ this.addGroup();
290
+ } else if( group_name != false && group_name != null && group_name != '' ) {
291
+
292
+ if (!editSet.validateGroupName(group_name, 0)) {
293
+ return;
294
+ }
295
+
296
+ var newNode = new Ext.tree.TreeNode({
297
+ text : group_name.escapeHTML(),
298
+ cls : 'folder',
299
+ allowDrop : true,
300
+ allowDrag : true
301
+ });
302
+ TreePanels.root.appendChild(newNode);
303
+ newNode.addListener('beforemove', editSet.groupBeforeMove);
304
+ newNode.addListener('beforeinsert', editSet.groupBeforeInsert);
305
+ newNode.addListener('beforeappend', editSet.groupBeforeInsert);
306
+ newNode.addListener('click', editSet.register);
307
+ }
308
+ },
309
+
310
+ editGroup : function(obj) {
311
+ if( obj.editNode.attributes.cls != 'folder' || !canEditGroups) {
312
+ TreePanels.ge.cancelEdit();
313
+ return false;
314
+ }
315
+ },
316
+
317
+ beforeRenameGroup : function(obj, after, before) {
318
+ return editSet.validateGroupName(after, obj.editNode.id);
319
+ },
320
+
321
+ validateGroupName : function(name, exceptNodeId) {
322
+ name = name.strip();
323
+ if (name === '') {
324
+ return false;
325
+ }
326
+ for (var i=0; i < TreePanels.root.childNodes.length; i++) {
327
+ if (TreePanels.root.childNodes[i].text.toLowerCase() == name.toLowerCase() && TreePanels.root.childNodes[i].id != exceptNodeId) {
328
+ errorText = "<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Attribute group with the \"/name/\" name already exists')) ?>";
329
+ alert(errorText.replace("/name/",name));
330
+ return false;
331
+ }
332
+ }
333
+ return true;
334
+ },
335
+
336
+ save : function() {
337
+ $('messages').update();
338
+ TreePanels.rebuildTrees();
339
+ var _validator = new Validation('set_prop_form', {onSubmit:false});
340
+ if( !_validator.validate() ) {
341
+ return;
342
+ }
343
+ editSet.req.attribute_set_name = $('attribute_set_name').value;
344
+ if (!editSet.req.form_key) {
345
+ editSet.req.form_key = FORM_KEY;
346
+ }
347
+ var req = {data : Ext.util.JSON.encode(editSet.req)};
348
+ var con = new Ext.lib.Ajax.request('POST', '<?php echo $this->getMoveUrl() ?>', {success:editSet.success,failure:editSet.failure}, req);
349
+ },
350
+
351
+ success : function(o) {
352
+ var response = Ext.util.JSON.decode(o.responseText);
353
+ if( response.error ) {
354
+ $('messages').update(response.message);
355
+ } else if( response.ajaxExpired && response.ajaxRedirect ){
356
+ setLocation(response.ajaxRedirect);
357
+ } else if( response.url ){
358
+ setLocation(response.url);
359
+ } else if( response.message ) {
360
+ $('messages').update(response.message);
361
+ }
362
+ },
363
+
364
+ failure : function(o) {
365
+ alert('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Unable to complete this request.')) ?>');
366
+ },
367
+
368
+ groupBeforeMove : function(tree, nodeThis, oldParent, newParent) {
369
+ if( newParent.attributes.cls == 'folder' && nodeThis.attributes.cls == 'folder' ) {
370
+ return false;
371
+ }
372
+
373
+ if( newParent == TreePanels.root && nodeThis.attributes.cls != 'folder' ) {
374
+ return false;
375
+ }
376
+ },
377
+
378
+ rightBeforeAppend : function(tree, nodeThis, node, newParent) {
379
+ if (node.attributes.is_user_defined == 0) {
380
+ alert('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('You cannot remove system attribute from this set.')) ?>');
381
+ return false;
382
+ }
383
+ else if (node.attributes.is_configurable == 1) {
384
+ alert('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('This attribute is used in configurable products. You cannot remove it from the attribute set.')) ?>');
385
+ return false;
386
+ }
387
+ else {
388
+ return true;
389
+ }
390
+ },
391
+
392
+ rightBeforeInsert : function(tree, nodeThis, node, newParent) {
393
+ var empty = TreePanels.root2.findChild('id', 'empty');
394
+ if( empty ) {
395
+ return false;
396
+ }
397
+
398
+ if (node.attributes.is_user_defined == 0) {
399
+ alert('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('You cannot remove system attribute from this set.')) ?>');
400
+ return false;
401
+ }
402
+ else if (node.attributes.is_configurable == 1) {
403
+ alert('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('This attribute is used in configurable products. You cannot remove it from the attribute set.')) ?>');
404
+ return false;
405
+ }
406
+ else {
407
+ return true;
408
+ }
409
+ },
410
+
411
+ groupBeforeInsert : function(tree, nodeThis, node, newParent) {
412
+ if( node.allowChildren ) {
413
+ return false;
414
+ }
415
+ },
416
+
417
+ rightAppend : function(tree, nodeThis, node) {
418
+ var empty = TreePanels.root2.findChild('id', 'empty');
419
+ if( empty && node.id != 'empty' ) {
420
+ TreePanels.root2.removeChild(empty);
421
+ }
422
+ },
423
+
424
+ rightRemove : function(tree, nodeThis, node) {
425
+ if( nodeThis.firstChild == null && node.id != 'empty' ) {
426
+ var newNode = new Ext.tree.TreeNode({
427
+ text : '<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Empty')) ?>',
428
+ id : 'empty',
429
+ cls : 'folder',
430
+ is_user_defined : 1,
431
+ allowDrop : false,
432
+ allowDrag : false
433
+ });
434
+ TreePanels.root2.appendChild(newNode);
435
+ }
436
+ },
437
+
438
+ leftBeforeInsert : function(tree, nodeThis, node, newParent) {
439
+ if( node.allowChildren == false ) {
440
+ return false;
441
+ }
442
+ }
443
+ }
444
+ }();
445
+
446
+ function initVars() {
447
+ editSet.req = {};
448
+ editSet.req.attributes = false;
449
+ editSet.req.groups = new Array();
450
+ editSet.req.not_attributes = false;
451
+ editSet.req.attribute_set_name = false;
452
+ editSet.req.removeGroups = new Array();
453
+ }
454
+
455
+ initVars();
456
+ Ext.EventManager.onDocumentReady(TreePanels.init, TreePanels, true);
457
+ //]]>
458
+ </script>
459
+ </td>
460
+ </tr>
461
+ </table>
app/design/adminhtml/default/default/template/catalog/product/attribute/set/main/tree/attribute.phtml ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
app/design/adminhtml/default/default/template/catalog/product/attribute/set/main/tree/group.phtml ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div id="tree-div1" style="width:320px;height:400px;margin-top:5px;overflow:auto"></div>
app/design/adminhtml/default/default/template/catalog/product/attribute/set/toolbar/add.phtml ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="content-header">
28
+ <table cellspacing="0">
29
+ <tr>
30
+ <td style="width:50%;"><h3 class="icon-head head-product-attribute-sets"><?php echo $this->_getHeader() ?></h3></td>
31
+ <td class="form-buttons">
32
+ <?php echo $this->getBackButtonHtml() ?>
33
+ <?php echo $this->getSaveButtonHtml() ?>
34
+ </td>
35
+ </tr>
36
+ </table>
37
+ </div>
38
+ <?php echo $this->getFormHtml() ?>
39
+ <script type="text/javascript">
40
+ var addSet = new varienForm('<?php echo $this->getFormId() ?>');
41
+ </script>
app/design/adminhtml/default/default/template/catalog/product/attribute/set/toolbar/main.phtml ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="content-header">
28
+ <table cellspacing="0">
29
+ <tr>
30
+ <td style="width:50%;"><h3 class="icon-head head-product-attribute-sets"><?php echo $this->_getHeader() ?></h3></td>
31
+ <td class="form-buttons">
32
+ <?php echo $this->getNewButtonHtml() ?>
33
+ </td>
34
+ </tr>
35
+ </table>
36
+ </div>
app/design/adminhtml/default/default/template/catalog/product/composite/configure.phtml ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div id="popup-window-mask" style="display:none;"></div>
28
+ <div id="product_composite_configure" class="product-configure-popup" style="display:none;">
29
+ <iframe name="product_composite_configure_iframe" id="product_composite_configure_iframe" src="#" style="width:0; height:0; border:0px solid #fff; position:absolute; top:-1000px; left:-1000px" onload="window.productConfigure && productConfigure.onLoadIFrame()"></iframe>
30
+ <form action="" method="post" id="product_composite_configure_form" enctype="multipart/form-data" onsubmit="productConfigure.onConfirmBtn(); return false;" target="product_composite_configure_iframe">
31
+ <div class="entry-edit">
32
+ <div class="entry-edit-head">
33
+ <h4 class="icon-head fieldset-legend"><?php echo Mage::helper('catalog')->__('Configure Product') ?></h4>
34
+ </div>
35
+ <div id="product_composite_configure_messages" style="display: none;" >
36
+ <ul class="messages"><li class="error-msg"></li></ul>
37
+ </div>
38
+ <div id="product_composite_configure_form_fields" class="content"></div>
39
+ <div id="product_composite_configure_form_additional" style="display:none;"></div>
40
+ <div id="product_composite_configure_form_confirmed" style="display:none;"></div>
41
+ <div class="buttons-set a-right">
42
+ <button type="button" class="scalable" onclick="productConfigure.onCancelBtn()" id="product_composite_configure_form_cancel"><span><span><span><?php echo Mage::helper('catalog')->__('Cancel') ?></span></span></span></button>
43
+ <button type="submit" class="scalable"><span><span><span><?php echo Mage::helper('catalog')->__('OK') ?></span></span></span></button>
44
+ </div>
45
+ </div>
46
+ <input type="hidden" name="as_js_varname" value="iFrameResponse" />
47
+ <input type="hidden" name="form_key" value="<?php echo $this->getFormKey() ?>" />
48
+ </form>
49
+ <div id="product_composite_configure_confirmed" style="display:none;"></div>
50
+
51
+ <script type="text/javascript">
52
+ var productCompositeConfigureForm = new varienForm('product_composite_configure_form');
53
+ </script>
54
+ </div>
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/configurable.phtml ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <?php /* @var $this Mage_Adminhtml_Block_Catalog_Product_Composite_Fieldset_Configurable */ ?>
29
+ <?php $_product = $this->getProduct(); ?>
30
+ <?php $_attributes = Mage::helper('core')->decorateArray($this->getAllowAttributes()); ?>
31
+ <?php $_skipSaleableCheck = Mage::helper('catalog/product')->getSkipSaleableCheck(); ?>
32
+ <?php if (($_product->isSaleable() || $_skipSaleableCheck) && count($_attributes)):?>
33
+ <div id="catalog_product_composite_configure_fields_configurable" class="<?php echo $this->getIsLastFieldset() ? 'last-fieldset' : '' ?>">
34
+ <h4><?php echo Mage::helper('catalog')->__('Associated Products') ?></h4>
35
+ <div class="product-options">
36
+ <dl>
37
+ <?php foreach($_attributes as $_attribute): ?>
38
+ <dt><label class="required"><em>*</em><?php echo $_attribute->getLabel() ?></label></dt>
39
+ <dd<?php if ($_attribute->decoratedIsLast){?> class="last"<?php }?>>
40
+ <div class="input-box">
41
+ <select name="super_attribute[<?php echo $_attribute->getAttributeId() ?>]" id="attribute<?php echo $_attribute->getAttributeId() ?>" class="required-entry super-attribute-select">
42
+ <option><?php echo Mage::helper('catalog')->__('Choose an Option...') ?></option>
43
+ </select>
44
+ </div>
45
+ </dd>
46
+ <?php endforeach; ?>
47
+ </dl>
48
+ </div>
49
+ </div>
50
+ <script type="text/javascript">
51
+ var config = <?php echo $this->getJsonConfig() ?>;
52
+ if (window.productConfigure) {
53
+ config.containerId = window.productConfigure.blockFormFields.id;
54
+ if (window.productConfigure.restorePhase) {
55
+ config.inputsInitialized = true;
56
+ }
57
+ }
58
+ ProductConfigure.spConfig = new Product.Config(config);
59
+ </script>
60
+ <?php endif;?>
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/grouped.phtml ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <?php /* @var $this Mage_Adminhtml_Block_Catalog_Product_Composite_Fieldset_Grouped */ ?>
29
+ <?php $_skipSaleableCheck = Mage::helper('catalog/product')->getSkipSaleableCheck(); ?>
30
+ <div id="catalog_product_composite_configure_fields_grouped" class="grid <?php echo $this->getIsLastFieldset() ? 'last-fieldset' : '' ?>">
31
+ <h4><?php echo Mage::helper('catalog')->__('Associated Products') ?></h4>
32
+ <div class="product-options">
33
+ <?php $_product = $this->getProduct(); ?>
34
+ <?php $this->setPreconfiguredValue(); ?>
35
+ <?php $_associatedProducts = $this->getAssociatedProducts(); ?>
36
+ <?php $_hasAssociatedProducts = count($_associatedProducts) > 0; ?>
37
+ <?php if ((!$_product->isAvailable() && !$_skipSaleableCheck) || !$_hasAssociatedProducts): ?>
38
+ <p class="availability out-of-stock"><?php echo Mage::helper('catalog')->__('Availability:') ?> <span><?php echo Mage::helper('catalog')->__('Out of stock') ?></span></p>
39
+ <?php endif; ?>
40
+ <table class="data-table grouped-items-table" id="super-product-table">
41
+ <col />
42
+ <col />
43
+ <col />
44
+ <col />
45
+ <col width="1" />
46
+ <thead>
47
+ <tr "class="headings">
48
+ <th><?php echo Mage::helper('catalog')->__('ID') ?></th>
49
+ <th><?php echo Mage::helper('catalog')->__('SKU') ?></th>
50
+ <th><?php echo Mage::helper('catalog')->__('Product Name') ?></th>
51
+ <?php if ($this->getCanShowProductPrice($_product)): ?>
52
+ <th class="a-right"><?php echo Mage::helper('catalog')->__('Price') ?></th>
53
+ <?php endif; ?>
54
+ <?php if ($_product->isSaleable() || $_skipSaleableCheck): ?>
55
+ <th class="a-center"><?php echo Mage::helper('catalog')->__('Qty') ?></th>
56
+ <?php endif; ?>
57
+ </tr>
58
+ </thead>
59
+ <tbody>
60
+ <?php if ($_hasAssociatedProducts): ?>
61
+ <?php $i = 0 ?>
62
+ <?php foreach ($_associatedProducts as $_item): ?>
63
+ <?php $_finalPriceInclTax = $this->helper('tax')->getPrice($_item, $_item->getFinalPrice(), true) ?>
64
+ <tr class="<?php echo (++$i % 2) ? 'even' : 'odd' ?>">
65
+ <td><?php echo $_item->getId() ?></td>
66
+ <td><?php echo $this->escapeHtml($_item->getSku()) ?></td>
67
+ <td><?php echo $this->escapeHtml($_item->getName()) ?></td>
68
+ <?php if ($this->getCanShowProductPrice($_product)): ?>
69
+ <td class="a-right">
70
+ <?php if ($this->getCanShowProductPrice($_item)): ?>
71
+ <?php echo $this->getPriceHtml($_item, true) ?>
72
+ <?php endif; ?>
73
+ </td>
74
+ <?php endif; ?>
75
+ <?php if ($_product->isSaleable() || $_skipSaleableCheck): ?>
76
+ <td class="a-center">
77
+ <?php if ($_item->isSaleable() || $_skipSaleableCheck) : ?>
78
+ <input type="text" name="super_group[<?php echo $_item->getId() ?>]" id="super_group[<?php echo $_item->getId() ?>]" maxlength="12" value="<?php echo $_item->getQty()*1 ?>" title="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('catalog')->__('Qty')) ?>" class="input-text qty" />
79
+ <input type="hidden" value="1" price="<?php echo $this->getCurrencyPrice($_item->getPrice()) ?>" qtyId="super_group[<?php echo $_item->getId() ?>]" />
80
+ <?php else: ?>
81
+ <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
82
+ <?php endif; ?>
83
+ </td>
84
+ <?php endif; ?>
85
+ </tr>
86
+ <?php endforeach; ?>
87
+ <?php else: ?>
88
+ <tr>
89
+ <td colspan="<?php if ($_product->isSaleable() || $_skipSaleableCheck): ?>4<?php else : ?>3<?php endif; ?>"><?php echo Mage::helper('catalog')->__('No options of this product are available.') ?></td>
90
+ </tr>
91
+ <?php endif; ?>
92
+ </tbody>
93
+ </table>
94
+ </div>
95
+ </div>
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options.phtml ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <?php /* @var $this Mage_Adminhtml_Block_Catalog_Product_Composite_Fieldset_Options */ ?>
29
+ <?php $options = Mage::helper('core')->decorateArray($this->getOptions()); ?>
30
+ <?php if (count($options)): ?>
31
+
32
+ <?php echo $this->getChildHtml('options_js') ?>
33
+
34
+ <div id="product_composite_configure_fields_options" class="<?php echo $this->getIsLastFieldset() ? 'last-fieldset' : '' ?>">
35
+ <h4><?php echo Mage::helper('catalog')->__('Custom Options') ?></h4>
36
+ <div class="product-options">
37
+ <dl>
38
+ <?php foreach($options as $option): ?>
39
+ <?php echo $this->getOptionHtml($option); ?>
40
+ <?php endforeach;?>
41
+ </dl>
42
+ </div>
43
+ </div>
44
+
45
+ <?php endif; ?>
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/js.phtml ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <script type="text/javascript">
29
+ //<![CDATA[
30
+ validateOptionsCallback = function (elmId, result){
31
+ var container = $(elmId).up('ul.options-list');
32
+ if (!container) {
33
+ return;
34
+ }
35
+ if (result == 'failed') {
36
+ container.removeClassName('validation-passed');
37
+ container.addClassName('validation-failed');
38
+ } else {
39
+ container.removeClassName('validation-failed');
40
+ container.addClassName('validation-passed');
41
+ }
42
+ }
43
+
44
+ productConfigure.opConfig = {};
45
+
46
+ var DateOption = Class.create({
47
+
48
+ getDaysInMonth: function(month, year)
49
+ {
50
+ var curDate = new Date();
51
+ if (!month) {
52
+ month = curDate.getMonth();
53
+ }
54
+ if (2 == month && !year) { // leap year assumption for unknown year
55
+ return 29;
56
+ }
57
+ if (!year) {
58
+ year = curDate.getFullYear();
59
+ }
60
+ return 32 - new Date(year, month - 1, 32).getDate();
61
+ },
62
+
63
+ reloadMonth: function(event)
64
+ {
65
+ var selectEl = event.findElement();
66
+ var idParts = selectEl.id.split("_");
67
+ if (idParts.length != 3) {
68
+ return false;
69
+ }
70
+ var optionIdPrefix = idParts[0] + "_" + idParts[1];
71
+ var month = parseInt($(optionIdPrefix + "_month").value);
72
+ var year = parseInt($(optionIdPrefix + "_year").value);
73
+ var dayEl = $(optionIdPrefix + "_day");
74
+
75
+ var days = this.getDaysInMonth(month, year);
76
+
77
+ //remove days
78
+ for (var i = dayEl.options.length - 1; i >= 0; i--) {
79
+ if (dayEl.options[i].value > days) {
80
+ dayEl.remove(dayEl.options[i].index);
81
+ }
82
+ }
83
+
84
+ // add days
85
+ var lastDay = parseInt(dayEl.options[dayEl.options.length-1].value);
86
+ for (i = lastDay + 1; i <= days; i++) {
87
+ this.addOption(dayEl, i, i);
88
+ }
89
+ },
90
+
91
+ addOption: function(select, text, value)
92
+ {
93
+ var option = document.createElement('OPTION');
94
+ option.value = value;
95
+ option.text = text;
96
+
97
+ if (select.options.add) {
98
+ select.options.add(option);
99
+ } else {
100
+ select.appendChild(option);
101
+ }
102
+ }
103
+ });
104
+ productConfigure.opConfig.dateOption = new DateOption();
105
+ //]]>
106
+ </script>
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/date.phtml ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php /* @var $this Mage_Catalog_Block_Product_View_Options_Type_Date */ ?>
28
+ <?php $_option = $this->getOption(); ?>
29
+ <?php $_optionId = $_option->getId(); ?>
30
+ <dt class="label"><label<?php if ($_option->getIsRequire()) echo ' class="required"' ?>><?php if ($_option->getIsRequire()) echo '<em>*</em>' ?><?php echo $this->escapeHtml($_option->getTitle()) ?></label>
31
+ <?php echo $this->getFormatedPrice() ?></dt>
32
+ <dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
33
+
34
+ <?php if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_DATE_TIME
35
+ || $_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_DATE): ?>
36
+
37
+ <?php echo $this->getDateHtml() ?>
38
+
39
+ <?php if (!$this->useCalendar()): ?>
40
+ <script type="text/javascript">
41
+ //<![CDATA[
42
+ var dateOption = productConfigure.opConfig.dateOption;
43
+ Event.observe('options_<?php echo $_optionId ?>_month', 'change', dateOption.reloadMonth.bind(dateOption));
44
+ Event.observe('options_<?php echo $_optionId ?>_year', 'change', dateOption.reloadMonth.bind(dateOption));
45
+ //]]>
46
+ </script>
47
+ <?php endif; ?>
48
+
49
+ <?php endif; ?>
50
+
51
+ <?php if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_DATE_TIME
52
+ || $_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_TIME): ?>
53
+ <span class="time-picker"><?php echo $this->getTimeHtml() ?></span>
54
+ <?php endif; ?>
55
+
56
+ <input type="hidden" name="validate_datetime_<?php echo $_optionId ?>" class="validate-datetime-<?php echo $_optionId ?>" value="" />
57
+ <script type="text/javascript">
58
+ //<![CDATA[
59
+ <?php if ($_option->getIsRequire()): ?>
60
+ Validation.addAllThese(
61
+ [
62
+ ['validate-datetime-<?php echo $_optionId ?>', '<?php echo $this->jsQuoteEscape( Mage::helper('catalog')->__('This is a required option') )?>', function(v) {
63
+ var dateTimeParts = $$('.datetime-picker[id^="options_<?php echo $_optionId ?>"]');
64
+ for (var i=0; i < dateTimeParts.length; i++) {
65
+ if (dateTimeParts[i].value == "") return false;
66
+ }
67
+ return true;
68
+ }]
69
+ ]
70
+ );
71
+ <?php else: ?>
72
+ Validation.add(
73
+ 'validate-datetime-<?php echo $_optionId ?>',
74
+ '<?php echo $this->jsQuoteEscape( Mage::helper('catalog')->__('Field is not complete') )?>',
75
+ function(v) {
76
+ var dateTimeParts = $$('.datetime-picker[id^="options_<?php echo $_optionId ?>"]');
77
+ var hasWithValue = false, hasWithNoValue = false;
78
+ var pattern = /day_part$/i;
79
+ for (var i=0; i < dateTimeParts.length; i++) {
80
+ if (! pattern.test(dateTimeParts[i].id)) {
81
+ if (dateTimeParts[i].value === "") {
82
+ hasWithValue = true;
83
+ } else {
84
+ hasWithNoValue = true;
85
+ }
86
+ }
87
+ }
88
+ return hasWithValue ^ hasWithNoValue;
89
+ }
90
+ );
91
+ <?php endif; ?>
92
+ //]]>
93
+ </script>
94
+ </dd>
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/default.phtml ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php /* @var $this Mage_Adminhtml_Block_Catalog_Product_Composite_Fieldset_Options */ ?>
28
+ <?php $option = $this->getOption(); ?>
29
+ <dt>
30
+ <label><?php echo $this->escapeHtml($option->getTitle()) ?></label>
31
+ </dt>
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/file.phtml ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php $_option = $this->getOption(); ?>
28
+ <?php $_fileInfo = $this->getFileInfo(); ?>
29
+ <?php $_fileExists = $_fileInfo->hasData() ? true : false; ?>
30
+ <?php $_fileName = 'options_' . $_option->getId() . '_file'; ?>
31
+ <?php $_fieldNameAction = $_fileName . '_action'; ?>
32
+ <?php $_fieldValueAction = $_fileExists ? 'save_old' : 'save_new'; ?>
33
+ <?php $_fileNamed = $_fileName . '_name'; ?>
34
+ <?php $_rand = rand(); ?>
35
+
36
+ <script type="text/javascript">
37
+ //<![CDATA[
38
+ opFile<?php echo $_rand; ?> = {
39
+ initializeFile: function(inputBox) {
40
+ this.inputFile = inputBox.select('input[name="<?php echo $_fileName; ?>"]')[0];
41
+ this.inputFileAction = inputBox.select('input[name="<?php echo $_fieldNameAction; ?>"]')[0];
42
+ this.fileNameBox = inputBox.up('dd').select('.<?php echo $_fileNamed ?>')[0];
43
+ },
44
+
45
+ toggleFileChange: function(inputBox) {
46
+ this.initializeFile(inputBox);
47
+ inputBox.toggle();
48
+ this.fileChangeFlag = this.fileChangeFlag ? false : true;
49
+ if (!this.fileDeleteFlag) {
50
+ if (this.fileChangeFlag) {
51
+ this.inputFileAction.value = 'save_new';
52
+ this.inputFile.disabled = false;
53
+ } else {
54
+ this.inputFileAction.value = 'save_old';
55
+ this.inputFile.disabled = true;
56
+ }
57
+ }
58
+ },
59
+
60
+ toggleFileDelete: function(fileDeleteFlag, inputBox) {
61
+ this.initializeFile(inputBox);
62
+ this.fileDeleteFlag = fileDeleteFlag.checked ? true : false;
63
+ if (this.fileDeleteFlag) {
64
+ this.inputFileAction.value = '';
65
+ this.inputFile.disabled = true;
66
+ this.fileNameBox.setStyle({'text-decoration': 'line-through'});
67
+ } else {
68
+ this.inputFileAction.value = this.fileChangeFlag ? 'save_new' : 'save_old';
69
+ this.inputFile.disabled = (this.fileChangeFlag == 'save_old');
70
+ this.fileNameBox.setStyle({'text-decoration': 'none'});
71
+ }
72
+ }
73
+ };
74
+ //]]>
75
+ </script>
76
+
77
+ <dt><label <?php if ($_option->getIsRequire()) echo ' class="required"' ?>><?php if ($_option->getIsRequire()) echo '<em>*</em>' ?><?php echo $this->escapeHtml($_option->getTitle()) ?></label>
78
+ <?php echo $this->getFormatedPrice() ?></dt>
79
+ <dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
80
+ <?php if ($_fileExists): ?>
81
+ <span class="<?php echo $_fileNamed ?>"><?php echo $this->escapeHtml($_fileInfo->getTitle()); ?></span>
82
+ <a href="javascript:void(0)" class="label" onclick="opFile<?php echo $_rand; ?>.toggleFileChange($(this).next('.input-box'))">
83
+ <?php echo Mage::helper('catalog')->__('Change') ?>
84
+ </a>&nbsp;
85
+ <?php if (!$_option->getIsRequire()): ?>
86
+ <input type="checkbox" onclick="opFile<?php echo $_rand; ?>.toggleFileDelete($(this), $(this).next('.input-box'))" price="<?php echo $this->getCurrencyPrice($_option->getPrice(true)) ?>"/>
87
+ <span class="label"><?php echo Mage::helper('catalog')->__('Delete') ?></span>
88
+ <?php endif; ?>
89
+ <?php endif; ?>
90
+ <div class="input-box" <?php echo $_fileExists ? 'style="display:none"' : '' ?>>
91
+ <input type="file" name="<?php echo $_fileName; ?>" class="product-custom-option<?php echo $_option->getIsRequire() ? ' required-entry' : '' ?>" price="<?php echo $this->getCurrencyPrice($_option->getPrice(true)) ?>" <?php echo $_fileExists ? 'disabled="disabled"' : '' ?>/>
92
+ <input type="hidden" name="<?php echo $_fieldNameAction; ?>" value="<?php echo $_fieldValueAction; ?>" />
93
+ <?php if ($_option->getFileExtension()): ?>
94
+ <p class="no-margin"><?php echo Mage::helper('catalog')->__('Allowed file extensions to upload')?>: <strong><?php echo $_option->getFileExtension() ?></strong></p>
95
+ <?php endif; ?>
96
+ <?php if ($_option->getImageSizeX() > 0): ?>
97
+ <p class="no-margin"><?php echo Mage::helper('catalog')->__('Maximum image width')?>: <strong><?php echo $_option->getImageSizeX() ?> <?php echo Mage::helper('catalog')->__('px.')?></strong></p>
98
+ <?php endif; ?>
99
+ <?php if ($_option->getImageSizeY() > 0): ?>
100
+ <p class="no-margin"><?php echo Mage::helper('catalog')->__('Maximum image height')?>: <strong><?php echo $_option->getImageSizeY() ?> <?php echo Mage::helper('catalog')->__('px.')?></strong></p>
101
+ <?php endif; ?>
102
+ </div>
103
+ </dd>
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/select.phtml ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php /* @var $this Mage_Catalog_Block_Product_View_Options_Type_Select */ ?>
28
+ <?php $_option = $this->getOption(); ?>
29
+ <dt><label<?php if ($_option->getIsRequire()) echo ' class="required"' ?>><?php if ($_option->getIsRequire()) echo '<em>*</em>' ?><?php echo $this->escapeHtml($_option->getTitle()) ?></label></dt>
30
+ <dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
31
+ <div class="input-box">
32
+ <?php echo $this->getValuesHtml() ?>
33
+ <?php if ($_option->getIsRequire()): ?>
34
+ <?php if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_RADIO || $_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_CHECKBOX): ?>
35
+ <span id="options-<?php echo $_option->getId() ?>-container"></span>
36
+ <?php endif; ?>
37
+ <?php endif;?>
38
+ </div>
39
+ </dd>
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/text.phtml ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php /* @var $this Mage_Catalog_Block_Product_View_Options_Type_Text */ ?>
28
+ <?php $_option = $this->getOption(); ?>
29
+ <dt><label<?php if ($_option->getIsRequire()) echo ' class="required"' ?>><?php if ($_option->getIsRequire()) echo '<em>*</em>' ?><?php echo $this->escapeHtml($_option->getTitle()) ?></label>
30
+ <?php echo $this->getFormatedPrice() ?></dt>
31
+ <dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
32
+ <div class="input-box">
33
+ <?php if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_FIELD): ?>
34
+ <input type="text" id="options_<?php echo $_option->getId() ?>_text" class="input-text<?php echo $_option->getIsRequire() ? ' required-entry' : '' ?> <?php echo $_option->getMaxCharacters() ? ' validate-length maximum-length-' . $_option->getMaxCharacters() : '' ?> product-custom-option" name="options[<?php echo $_option->getId() ?>]" value="<?php echo $this->escapeHtml($this->getDefaultValue()) ?>" price="<?php echo $this->getCurrencyPrice($_option->getPrice(true)) ?>" />
35
+ <?php elseif ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_AREA): ?>
36
+ <textarea id="options_<?php echo $_option->getId() ?>_text" class="<?php echo $_option->getIsRequire() ? ' required-entry' : '' ?> <?php echo $_option->getMaxCharacters() ? ' validate-length maximum-length-' . $_option->getMaxCharacters() : '' ?> product-custom-option" name="options[<?php echo $_option->getId() ?>]" rows="5" cols="25" price="<?php echo $this->getCurrencyPrice($_option->getPrice(true)) ?>"><?php echo $this->escapeHtml($this->getDefaultValue()) ?></textarea>
37
+ <?php endif; ?>
38
+ <?php if ($_option->getMaxCharacters()): ?>
39
+ <p class="note"><?php echo Mage::helper('catalog')->__('Maximum number of characters:')?> <strong><?php echo $_option->getMaxCharacters() ?></strong></p>
40
+ <?php endif; ?>
41
+ </div>
42
+ </dd>
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/qty.phtml ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <?php /* @var $this Mage_Adminhtml_Block_Catalog_Product_Composite_Fieldset_Qty */ ?>
29
+
30
+ <div id="product_composite_configure_fields_qty" class="<?php echo $this->getIsLastFieldset() ? 'last-fieldset' : '' ?>">
31
+ <div class="product-options">
32
+ <dl>
33
+ <dt><label><?php echo Mage::helper('catalog')->__('Quantity') ?></label> <input id="product_composite_configure_input_qty" class="input-text" type="text" name="qty" value="<?php echo $this->getQtyValue() * 1 ?>"></dt>
34
+ </dl>
35
+ </div>
36
+ </div>
app/design/adminhtml/default/default/template/catalog/product/created.phtml ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type="text/javascript">
28
+ var added = false;
29
+ function addProduct(closeAfter) {
30
+ if(window.opener!=null && !added) {
31
+ <?php if($this->isEdit()): ?>
32
+ window.opener.superProduct.updateProduct(<?php echo $this->getProductId() ?>, <?php echo $this->getAttributesJson(); ?>);
33
+ <?php else: ?>
34
+ window.opener.superProduct.addNewProduct(<?php echo $this->getProductId() ?>, <?php echo $this->getAttributesJson(); ?>);
35
+ window.opener.superProduct.showNoticeMessage();
36
+ <?php endif; ?>
37
+ added = true;
38
+ }
39
+
40
+ if(closeAfter)
41
+ {
42
+ closeWindow();
43
+ }
44
+ }
45
+
46
+ function closeWindow()
47
+ {
48
+ if (window.opener) {
49
+ window.opener.focus();
50
+ }
51
+ window.close();
52
+ }
53
+
54
+ addProduct(false);
55
+ setTimeout(closeWindow, 3000);
56
+ </script>
57
+ <div class="a-center">
58
+ <?php echo $this->getCloseButtonHtml() ?>
59
+ </div>
app/design/adminhtml/default/default/template/catalog/product/edit.phtml ADDED
@@ -0,0 +1,133 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * Template for Mage_Adminhtml_Block_Catalog_Product_Edit
30
+ */
31
+ ?>
32
+
33
+
34
+
35
+ <div class="content-header">
36
+ <h3 class="icon-head head-products"><?php echo $this->getHeader() ?></h3>
37
+ <p class="content-buttons form-buttons"><?php echo $this->getBackButtonHtml() ?>
38
+ <?php echo $this->getCancelButtonHtml() ?>
39
+ <?php if($this->getProductId()): ?>
40
+ <?php echo $this->getDeleteButtonHtml() ?>
41
+ <?php if($this->getProductSetId() && $this->getIsConfigured()): ?>
42
+ <?php echo $this->getDuplicateButtonHtml() ?>
43
+ <?php endif; ?>
44
+ <?php endif; ?>
45
+ <?php if($this->getProductSetId() && $this->getIsConfigured()): ?>
46
+ <?php echo $this->getSaveButtonHtml() ?>
47
+ <?php echo $this->getSaveAndEditButtonHtml() ?>
48
+ <?php endif; ?>
49
+ </p>
50
+ </div>
51
+ <form action="<?php echo $this->getSaveUrl() ?>" method="post" id="product_edit_form" enctype="multipart/form-data">
52
+ <?php echo $this->getBlockHtml('formkey')?>
53
+ <div style="display:none"></div>
54
+ </form>
55
+ <script type="text/javascript">
56
+ //<![CDATA[
57
+ var productTemplateSyntax = /(^|.|\r|\n)({{(\w+)}})/;
58
+ var productForm = new varienForm('product_edit_form', '<?php echo $this->getValidationUrl() ?>');
59
+ productForm._processValidationResult = function(transport) {
60
+ var response = transport.responseText.evalJSON();
61
+ if (response.error){
62
+ if (response.attribute && $(response.attribute)) {
63
+ $(response.attribute).setHasError(true, productForm);
64
+ Validation.ajaxError($(response.attribute), response.message);
65
+ if (!Prototype.Browser.IE){
66
+ $(response.attribute).focus();
67
+ }
68
+ }
69
+ else if ($('messages')) {
70
+ $('messages').innerHTML = '<ul class="messages"><li class="error-msg"><ul><li>' + response.message + '</li></ul></li></ul>';
71
+ }
72
+ }
73
+ else{
74
+ productForm._submit();
75
+ }
76
+ };
77
+ function saveAndContinueEdit(urlTemplate) {
78
+ var template = new Template(urlTemplate, productTemplateSyntax);
79
+ var url = template.evaluate({tab_id:product_info_tabsJsTabs.activeTab.id});
80
+ productForm.submit(url);
81
+ }
82
+ function setSettings(urlTemplate, setElement, typeElement) {
83
+ var template = new Template(urlTemplate, productTemplateSyntax);
84
+ setLocation(template.evaluate({attribute_set:$F(setElement),type:$F(typeElement)}));
85
+ }
86
+
87
+ function setSuperSettings(urlTemplate, attributesClass, validateField) {
88
+ var attributesFields = $$('.' + attributesClass);
89
+ var attributes = Form.serializeElements(attributesFields, true).attribute;
90
+ if(typeof attributes == 'string') {
91
+ attributes = [attributes];
92
+ }
93
+
94
+ if(!attributes) {
95
+ $(validateField).value = 'no-attributes';
96
+ } else {
97
+ $(validateField).value = 'has-attributes';
98
+ }
99
+
100
+ if (productForm.validator.validate()) {
101
+ var template = new Template(urlTemplate, productTemplateSyntax);
102
+ var url = template.evaluate({
103
+ attributes: encode_base64(attributes.join(',')).replace(new RegExp('/','g'),'%2F').replace(new RegExp('=','g'),'%3D')
104
+ });
105
+ setLocation(url);
106
+ }
107
+ }
108
+
109
+ function checkMaxLength(Object, MaxLen)
110
+ {
111
+ if (Object.value.length > MaxLen-1) {
112
+ Object.value = Object.value.substr(0, MaxLen);
113
+ }
114
+ return 1;
115
+ }
116
+
117
+ Event.observe(window, 'load', function() {
118
+ var objName = '<?php echo $this->getSelectedTabId() ?>';
119
+ if (objName) {
120
+ obj = $(objName);
121
+ //IE fix (bubbling event model)
122
+ product_info_tabsJsTabs.setSkipDisplayFirstTab();
123
+ product_info_tabsJsTabs.showTabContent(obj);
124
+ }
125
+ Product.AttributesBridge.setTabsObject(product_info_tabsJsTabs);
126
+ });
127
+
128
+ Validation.addAllThese([
129
+ ['validate-super-product-attributes', '<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Please select one or more attributes.')) ?>', function(v) {
130
+ return (v != "no-attributes");
131
+ }]]);
132
+ //]]>
133
+ </script>
app/design/adminhtml/default/default/template/catalog/product/edit/action/attribute.phtml ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="content-header">
28
+ <table cellspacing="0">
29
+ <tr>
30
+ <td><h3><?php echo Mage::helper('catalog')->__('Update attributes') ?></h3></td>
31
+ <td class="form-buttons">
32
+ <?php echo $this->getBackButtonHtml() ?>
33
+ <?php echo $this->getCancelButtonHtml() ?>
34
+ <?php echo $this->getSaveButtonHtml() ?>
35
+ </td>
36
+ </tr>
37
+ </table>
38
+ </div>
39
+ <form action="<?php echo $this->getSaveUrl() ?>" method="post" id="attributes_edit_form" enctype="multipart/form-data">
40
+ <?php echo $this->getBlockHtml('formkey')?>
41
+ </form>
42
+ <script type="text/javascript">
43
+ var attributesForm = new varienForm('attributes_edit_form', '<?php echo $this->getValidationUrl() ?>');
44
+ attributesForm._processValidationResult = function(transport) {
45
+ var response = transport.responseText.evalJSON();
46
+
47
+ if (response.error){
48
+ if (response.attribute && $(response.attribute)) {
49
+ $(response.attribute).setHasError(true, attributesForm);
50
+ Validation.ajaxError($(response.attribute), response.message);
51
+ if (!Prototype.Browser.IE){
52
+ $(response.attribute).focus();
53
+ }
54
+ } else if ($('messages')) {
55
+ $('messages').innerHTML = '<ul class="messages"><li class="error-msg"><ul><li>' + response.message + '</li></ul></li></ul>';
56
+ }
57
+ } else {
58
+ attributesForm._submit();
59
+ }
60
+ };
61
+ </script>
app/design/adminhtml/default/default/template/catalog/product/edit/action/inventory.phtml ADDED
@@ -0,0 +1,181 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type="text/javascript">
28
+ //<![CDATA[
29
+ function toggleValueElementsWithCheckbox(checkbox) {
30
+ var td = $(checkbox.parentNode);
31
+ var checkboxes = td.getElementsBySelector('input[type="checkbox"]');
32
+ var inputs = td.getElementsBySelector('input[type!="checkbox"]', 'select', 'textarea');
33
+ if (checkboxes.size()>1) {
34
+ inputs.each(function(input){
35
+ input.disabled = (!checkbox.checked || checkboxes[0].checked);
36
+ checkboxes[0].disabled = !checkbox.checked;
37
+ });
38
+ } else {
39
+ inputs.each(function(input){
40
+ input.disabled = !checkbox.checked;
41
+ });
42
+ }
43
+ }
44
+ //]]>
45
+ </script>
46
+
47
+ <div class="entry-edit">
48
+ <div class="entry-edit-head">
49
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Inventory') ?></h4>
50
+ </div>
51
+ <fieldset>
52
+ <legend><?php echo Mage::helper('catalog')->__('Inventory') ?></legend>
53
+ <table cellspacing="0" class="form-list" id="table_cataloginventory">
54
+ <tr>
55
+ <td class="label"><label for="inventory_manage_stock"><?php echo Mage::helper('catalog')->__('Manage Stock') ?></label></td>
56
+ <td class="value"><select id="inventory_manage_stock" name="<?php echo $this->getFieldSuffix() ?>[manage_stock]" class="select" disabled="disabled">
57
+ <option value="1"><?php echo Mage::helper('catalog')->__('Yes') ?></option>
58
+ <option value="0"<?php if ($this->getConfigFieldValue('manage_stock') == 0): ?> selected="selected"<?php endif; ?>><?php echo Mage::helper('catalog')->__('No') ?></option>
59
+ </select>
60
+ <input name="<?php echo $this->getFieldSuffix() ?>[use_config_manage_stock]" type="checkbox" id="inventory_use_config_manage_stock" onclick="toggleValueElements(this, this.parentNode, $('inventory_manage_stock_checkbox'));" value="1" checked="checked" disabled="disabled" />
61
+ <label for="inventory_use_config_manage_stock" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
62
+ <input type="checkbox" id="inventory_manage_stock_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
63
+ <label for="inventory_manage_stock_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
64
+ </td>
65
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
66
+ </tr>
67
+ <tr>
68
+ <td class="label"><label for="inventory_qty"><?php echo Mage::helper('catalog')->__('Qty') ?><span class="required">*</span></label></td>
69
+ <td class="value">
70
+ <input type="text" class="input-text required-entry validate-number" id="inventory_qty" name="<?php echo $this->getFieldSuffix() ?>[qty]" value="<?php echo $this->getDefaultConfigValue('qty')*1 ?>" disabled="disabled" />
71
+ <input type="checkbox" id="inventory_qty_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
72
+ <label for="inventory_qty_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
73
+ </td>
74
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
75
+ </tr>
76
+ <tr>
77
+ <td class="label"><label for="inventory_min_qty"><?php echo Mage::helper('catalog')->__('Minimum Qty for Item\'s Status to be Out of Stock') ?></label></td>
78
+ <td class="value"><input type="text" class="input-text validate-number" id="inventory_min_qty" name="<?php echo $this->getFieldSuffix() ?>[min_qty]" value="<?php echo $this->getDefaultConfigValue('min_qty')*1 ?>" disabled="disabled" />
79
+ <input type="checkbox" id="inventory_use_config_min_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_min_qty]" value="1" onclick="toggleValueElements(this, this.parentNode, $('inventory_min_qty_checkbox'));" checked="checked" disabled="disabled" />
80
+ <label for="inventory_use_config_min_qty" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
81
+ <input type="checkbox" id="inventory_min_qty_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
82
+ <label for="inventory_min_qty_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
83
+ </td>
84
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
85
+ </tr>
86
+ <tr>
87
+ <td class="label"><label for="inventory_min_sale_qty"><?php echo Mage::helper('catalog')->__('Minimum Qty Allowed in Shopping Cart') ?></label></td>
88
+ <td class="value"><input type="text" class="input-text validate-number" id="inventory_min_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[min_sale_qty]" value="<?php echo $this->getDefaultConfigValue('min_sale_qty')*1 ?>" disabled="disabled" />
89
+ <input type="checkbox" id="inventory_use_config_min_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_min_sale_qty]" value="1" onclick="toggleValueElements(this, this.parentNode, $('inventory_min_sale_qty_checkbox'));" checked="checked" disabled="disabled" />
90
+ <label for="inventory_use_config_min_sale_qty" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
91
+ <input type="checkbox" id="inventory_min_sale_qty_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
92
+ <label for="inventory_min_sale_qty_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
93
+ </td>
94
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
95
+ </tr>
96
+ <tr>
97
+ <td class="label"><label for="inventory_max_sale_qty"><?php echo Mage::helper('catalog')->__('Maximum Qty Allowed in Shopping Cart') ?></label></td>
98
+ <td class="value"><input type="text" class="input-text validate-number" id="inventory_max_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[max_sale_qty]" value="<?php echo $this->getDefaultConfigValue('max_sale_qty')*1 ?>" disabled="disabled" />
99
+ <input type="checkbox" id="inventory_use_config_max_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_max_sale_qty]" value="1" onclick="toggleValueElements(this, this.parentNode, $('inventory_max_sale_checkbox'));" checked="checked" disabled="disabled" />
100
+ <label for="inventory_use_config_max_sale_qty" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
101
+ <input type="checkbox" id="inventory_max_sale_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
102
+ <label for="inventory_max_sale_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
103
+ </td>
104
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
105
+ </tr>
106
+ <tr>
107
+ <td class="label"><label for="inventory_is_qty_decimal"><?php echo Mage::helper('catalog')->__('Qty Uses Decimals') ?></label></td>
108
+ <td class="value"><select id="inventory_is_qty_decimal" name="<?php echo $this->getFieldSuffix() ?>[is_qty_decimal]" class="select" disabled="disabled">
109
+ <option value="0"><?php echo Mage::helper('catalog')->__('No') ?></option>
110
+ <option value="1"<?php if ($this->getDefaultConfigValue('is_qty_decimal')==1): ?> selected="selected"<?php endif; ?>><?php echo Mage::helper('catalog')->__('Yes') ?></option>
111
+ </select>
112
+ <input type="checkbox" id="inventory_is_qty_decimal_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
113
+ <label for="inventory_is_qty_decimal_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
114
+ </td>
115
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
116
+ </tr>
117
+ <tr>
118
+ <td class="label"><label for="inventory_backorders"><?php echo Mage::helper('catalog')->__('Backorders') ?></label></td>
119
+ <td class="value"><select id="inventory_backorders" name="<?php echo $this->getFieldSuffix() ?>[backorders]" class="select" disabled="disabled">
120
+ <?php foreach ($this->getBackordersOption() as $option): ?>
121
+ <?php $_selected = ($option['value'] == $this->getDefaultConfigValue('backorders')) ? ' selected="selected"' : '' ?>
122
+ <option value="<?php echo $option['value'] ?>"<?php echo $_selected ?>><?php echo $option['label'] ?></option>
123
+ <?php endforeach; ?>
124
+ </select>
125
+ <input type="checkbox" id="inventory_use_config_backorders" name="<?php echo $this->getFieldSuffix() ?>[use_config_backorders]" value="1" onclick="toggleValueElements(this, this.parentNode, $('inventory_backorders_checkbox'));" checked="checked" disabled="disabled" />
126
+ <label for="inventory_use_config_backorders" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
127
+ <input type="checkbox" id="inventory_backorders_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
128
+ <label for="inventory_backorders_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
129
+ </td>
130
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
131
+ </tr>
132
+ <tr>
133
+ <td class="label"><label for="inventory_notify_stock_qty"><?php echo Mage::helper('catalog')->__('Notify for Quantity Below') ?></label></td>
134
+ <td class="value"><input type="text" class="input-text validate-number" id="inventory_notify_stock_qty" name="<?php echo $this->getFieldSuffix() ?>[notify_stock_qty]" value="<?php echo $this->getDefaultConfigValue('notify_stock_qty')*1 ?>" disabled="disabled" />
135
+ <input type="checkbox" id="inventory_use_config_notify_stock_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_notify_stock_qty]" value="1" onclick="toggleValueElements(this, this.parentNode, $('inventory_notify_stock_qty_checkbox'));" checked="checked" disabled="disabled" />
136
+ <label for="inventory_use_config_notify_stock_qty" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
137
+ <input type="checkbox" id="inventory_notify_stock_qty_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
138
+ <label for="inventory_notify_stock_qty_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
139
+ </td>
140
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
141
+ </tr>
142
+
143
+ <tr>
144
+ <td class="label"><label for="inventory_enable_qty_increments"><?php echo Mage::helper('catalog')->__('Enable Qty Increments') ?></label></td>
145
+ <td class="value"><select id="inventory_enable_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[enable_qty_increments]" class="select" disabled="disabled">
146
+ <option value="1"><?php echo Mage::helper('catalog')->__('Yes') ?></option>
147
+ <option value="0"<?php if ($this->getDefaultConfigValue('enable_qty_increments') == 0): ?> selected="selected"<?php endif; ?>><?php echo Mage::helper('catalog')->__('No') ?></option>
148
+ </select>
149
+ <input type="checkbox" id="inventory_use_config_enable_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[use_config_enable_qty_increments]" value="1" onclick="toggleValueElements(this, this.parentNode, [$('inventory_enable_qty_increments_checkbox')]);" checked="checked" disabled="disabled" />
150
+ <label for="inventory_use_config_enable_qty_increments" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
151
+ <input type="checkbox" id="inventory_enable_qty_increments_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
152
+ <label for="inventory_enable_qty_increments_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
153
+ </td>
154
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
155
+ </tr>
156
+ <tr>
157
+ <td class="label"><label for="inventory_qty_increments"><?php echo Mage::helper('catalog')->__('Qty Increments') ?></label></td>
158
+ <td class="value">
159
+ <input type="text" class="input-text validate-number" id="inventory_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[qty_increments]" value="<?php echo $this->getDefaultConfigValue('qty_increments')*1 ?>" disabled="disabled" />
160
+ <input type="checkbox" id="inventory_use_config_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[use_config_qty_increments]" value="1" onclick="toggleValueElements(this, this.parentNode, [$('inventory_qty_increments_checkbox')]);" checked="checked" disabled="disabled" />
161
+ <label for="inventory_use_config_qty_increments" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
162
+ <input type="checkbox" id="inventory_qty_increments_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
163
+ <label for="inventory_qty_increments_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
164
+ </td>
165
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
166
+ </tr>
167
+
168
+ <tr>
169
+ <td class="label"><label for="inventory_stock_availability"><?php echo Mage::helper('catalog')->__('Stock Availability') ?></label></td>
170
+ <td class="value"><select id="inventory_stock_availability" name="<?php echo $this->getFieldSuffix() ?>[is_in_stock]" class="select" disabled="disabled">
171
+ <option value="1"><?php echo Mage::helper('catalog')->__('In Stock') ?></option>
172
+ <option value="0"<?php if ($this->getDefaultConfigValue('is_in_stock')==0): ?> selected<?php endif; ?>><?php echo Mage::helper('catalog')->__('Out of Stock') ?></option>
173
+ </select>
174
+ <input type="checkbox" id="inventory_stock_availability_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
175
+ <label for="inventory_stock_availability_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
176
+ </td>
177
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
178
+ </tr>
179
+ </table>
180
+ </fieldset>
181
+ </div>
app/design/adminhtml/default/default/template/catalog/product/edit/action/websites.phtml ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="entry-edit">
28
+ <div class="entry-edit-head">
29
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Add Product To Websites') ?></h4>
30
+ </div>
31
+ <fieldset id="grop_fields">
32
+ <?php foreach ($this->getWebsiteCollection() as $_website): ?>
33
+ <div>
34
+ <div class="website-name">
35
+ <input name="add_website_ids[]" value="<?php echo $_website->getId() ?>" <?php if($this->getWebsitesReadonly()): ?>disabled="disabled"<?php endif;?> class="checkbox website-checkbox" id="add_product_website_<?php echo $_website->getId() ?>" type="checkbox" />
36
+ <big><strong><label for="add_product_website_<?php echo $_website->getId() ?>"><?php echo $this->escapeHtml($_website->getName()) ?></label></strong></big>
37
+ </div>
38
+ <div class="webiste-groups" id="add_product_website_<?php echo $_website->getId() ?>_data">
39
+ <?php foreach ($this->getGroupCollection($_website) as $_group): ?>
40
+ <h4><?php echo $this->escapeHtml($_group->getName()) ?></h4>
41
+ <div class="group-stores">
42
+ <table>
43
+ <?php foreach ($this->getStoreCollection($_group) as $_store): ?>
44
+ <tr>
45
+ <td><?php echo $this->escapeHtml($_store->getName()) ?></td>
46
+ <td>&nbsp;</td>
47
+ </tr>
48
+ <?php endforeach; ?>
49
+ </table>
50
+ </div>
51
+ <?php endforeach; ?>
52
+ </div>
53
+ </div>
54
+ <?php endforeach; ?>
55
+ </fieldset>
56
+ </div>
57
+
58
+ <div class="entry-edit">
59
+ <div class="entry-edit-head">
60
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Remove Product From Websites') ?></h4>
61
+ </div>
62
+ <fieldset id="grop_fields">
63
+ <ul class="messages">
64
+ <li class="notice-msg">
65
+ <ul>
66
+ <li><?php echo Mage::helper('catalog')->__("Items that you do not want to show in the catalog or search results should have status 'Disabled' in the desired store.") ?></li>
67
+ </ul>
68
+ </li>
69
+ </ul>
70
+ <?php foreach ($this->getWebsiteCollection() as $_website): ?>
71
+ <div>
72
+ <div class="website-name">
73
+ <input name="remove_website_ids[]" value="<?php echo $_website->getId() ?>" <?php if($this->getWebsitesReadonly()): ?>disabled="disabled"<?php endif;?> class="checkbox website-checkbox" id="remove_product_website_<?php echo $_website->getId() ?>" type="checkbox"/>
74
+ <big><strong><label for="remove_product_website_<?php echo $_website->getId() ?>"><?php echo $this->escapeHtml($_website->getName()) ?></label></strong></big>
75
+ </div>
76
+ <div class="webiste-groups" id="remove_product_website_<?php echo $_website->getId() ?>_data">
77
+ <?php foreach ($this->getGroupCollection($_website) as $_group): ?>
78
+ <h4><?php echo $this->escapeHtml($_group->getName()) ?></h4>
79
+ <div class="group-stores">
80
+ <table>
81
+ <?php foreach ($this->getStoreCollection($_group) as $_store): ?>
82
+ <tr>
83
+ <td><?php echo $this->escapeHtml($_store->getName()) ?></td>
84
+ <td>&nbsp;</td>
85
+ </tr>
86
+ <?php endforeach; ?>
87
+ </table>
88
+ </div>
89
+ <?php endforeach; ?>
90
+ </div>
91
+ </div>
92
+ <?php endforeach; ?>
93
+ </fieldset>
94
+ </div>
95
+ <script type="text/javascript">
96
+ //<![CDATA[
97
+ var productWebsiteCheckboxes = $$('.website-checkbox');
98
+
99
+ for(var i=0;i<productWebsiteCheckboxes.length;i++){
100
+ Event.observe(productWebsiteCheckboxes[i], 'click', toggleStoreFromChoosers);
101
+ }
102
+
103
+ function toggleStoreFromChoosers(event){
104
+ var element = Event.element(event);
105
+ var selects = $(element.id+'_data').getElementsBySelector('select');
106
+ var selectBlocks = $(element.id+'_data').getElementsByClassName('website-'+element.value+'-select');
107
+ for (var i=0; i<selects.length; i++) {
108
+ selects[i].disabled=!element.checked;
109
+ }
110
+ for (var i=0; i<selectBlocks.length; i++) {
111
+ if (element.checked) {
112
+ selectBlocks[i].show();
113
+ }
114
+ else {
115
+ selectBlocks[i].hide();
116
+ }
117
+ }
118
+ }
119
+ //]]>
120
+ </script>
app/design/adminhtml/default/default/template/catalog/product/edit/categories.phtml ADDED
@@ -0,0 +1,148 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="entry-edit">
28
+ <div class="entry-edit-head">
29
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Product Categories') ?></h4>
30
+ </div>
31
+ <fieldset id="grop_fields">
32
+ <input type="hidden" name="category_ids" id="product_categories" value="<?php echo $this->getIdsString() ?>">
33
+ <div id="product-categories" class="tree"></div>
34
+ </fieldset>
35
+ </div>
36
+ <?php if($this->getRootNode() && $this->getRootNode()->hasChildren()): ?>
37
+ <script type="text/javascript">
38
+ Ext.EventManager.onDocumentReady(function() {
39
+ var categoryLoader = new Ext.tree.TreeLoader({
40
+ dataUrl: '<?php echo $this->getLoadTreeUrl()?>'
41
+ });
42
+
43
+ categoryLoader.createNode = function(config) {
44
+ config.uiProvider = Ext.tree.CheckboxNodeUI;
45
+ var node;
46
+ if (config.children && !config.children.length) {
47
+ delete(config.children);
48
+ node = new Ext.tree.AsyncTreeNode(config);
49
+
50
+ } else {
51
+ node = new Ext.tree.TreeNode(config);
52
+ }
53
+ return node;
54
+ };
55
+
56
+ categoryLoader.on("beforeload", function(treeLoader, node) {
57
+ treeLoader.baseParams.category = node.attributes.id;
58
+ });
59
+
60
+ categoryLoader.on("load", function(treeLoader, node, config) {
61
+ varienWindowOnload();
62
+ });
63
+
64
+ var tree = new Ext.tree.TreePanel('product-categories', {
65
+ animate:true,
66
+ loader: categoryLoader,
67
+ enableDD:false,
68
+ containerScroll: true,
69
+ rootUIProvider: Ext.tree.CheckboxNodeUI,
70
+ selModel: new Ext.tree.CheckNodeMultiSelectionModel(),
71
+ rootVisible: '<?php echo $this->getRootNode()->getIsVisible() ?>'
72
+ });
73
+
74
+ tree.on('check', function(node) {
75
+ if(node.attributes.checked) {
76
+ categoryAdd(node.id);
77
+ } else {
78
+ categoryRemove(node.id);
79
+ }
80
+ varienElementMethods.setHasChanges(node.getUI().checkbox);
81
+ }, tree);
82
+
83
+ // set the root node
84
+ var root = new Ext.tree.TreeNode({
85
+ text: '<?php echo $this->jsQuoteEscape($this->getRootNode()->getName()) ?>',
86
+ draggable:false,
87
+ checked:'<?php echo $this->getRootNode()->getChecked() ?>',
88
+ id:'<?php echo $this->getRootNode()->getId() ?>',
89
+ disabled: <?php echo ($this->getRootNode()->getDisabled() ? 'true' : 'false') ?>,
90
+ uiProvider: Ext.tree.CheckboxNodeUI
91
+ });
92
+
93
+ tree.setRootNode(root);
94
+ bildCategoryTree(root, <?php echo $this->getTreeJson() ?>);
95
+ tree.addListener('click', categoryClick.createDelegate(this));
96
+
97
+ // render the tree
98
+ tree.render();
99
+ root.expand();
100
+ //tree.expandAll();
101
+ });
102
+
103
+ function bildCategoryTree(parent, config){
104
+ if (!config) return null;
105
+
106
+ if (parent && config && config.length){
107
+ for (var i = 0; i < config.length; i++){
108
+ config[i].uiProvider = Ext.tree.CheckboxNodeUI;
109
+ var node;
110
+ var _node = Object.clone(config[i]);
111
+ if (_node.children && !_node.children.length) {
112
+ delete(_node.children);
113
+ node = new Ext.tree.AsyncTreeNode(_node);
114
+
115
+ } else {
116
+ node = new Ext.tree.TreeNode(config[i]);
117
+ }
118
+ parent.appendChild(node);
119
+ node.loader = node.getOwnerTree().loader;
120
+ if(config[i].children){
121
+ bildCategoryTree(node, config[i].children);
122
+ }
123
+ }
124
+ }
125
+ }
126
+
127
+ function categoryClick(node, e){
128
+ if (node.disabled) {
129
+ return;
130
+ }
131
+ node.getUI().check(!node.getUI().checked());
132
+ varienElementMethods.setHasChanges(Event.element(e), e);
133
+ };
134
+ function categoryAdd(id) {
135
+ var ids = $('product_categories').value.split(',');
136
+ ids.push(id);
137
+ $('product_categories').value = ids.join(',');
138
+ }
139
+ function categoryRemove(id) {
140
+ var ids = $('product_categories').value.split(',');
141
+ // bug #7654 fixed
142
+ while (-1 != ids.indexOf(id)) {
143
+ ids.splice(ids.indexOf(id), 1);
144
+ }
145
+ $('product_categories').value = ids.join(',');
146
+ }
147
+ </script>
148
+ <?php endif; ?>
app/design/adminhtml/default/default/template/catalog/product/edit/options.phtml ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="entry-edit custom-options product-custom-options">
28
+ <div id="dynamic-price-warrning" style="display:none">
29
+ <ul class="messages">
30
+ <li class="error-msg">
31
+ <ul>
32
+ <li><?php echo $this->__('Bundle with dynamic pricing cannot include custom defined options. Options will not be saved.') ?></li>
33
+ </ul>
34
+ </li>
35
+ </ul>
36
+ </div>
37
+ <div class="entry-edit-head">
38
+ <h4><?php echo Mage::helper('catalog')->__('Custom Options') ?></h4>
39
+ <div class="right"><?php echo $this->getAddButtonHtml() ?></div>
40
+ </div>
41
+
42
+ <div id="product_options_container" class="box">
43
+ <div id="product_options_container_top"></div>
44
+ <?php echo $this->getOptionsBoxHtml() ?>
45
+ </div>
46
+ </div>
47
+
48
+ <script type="text/javascript">
49
+ // re-bind form elements onchange
50
+ varienWindowOnload(true);
51
+ //show error message
52
+ if ($('price_type')) {
53
+ if ($('price_type').value == '0' && $('dynamic-price-warrning')) {
54
+ $('dynamic-price-warrning').show();
55
+ }
56
+ }
57
+ </script>
app/design/adminhtml/default/default/template/catalog/product/edit/options/option.phtml ADDED
@@ -0,0 +1,351 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php echo $this->getTemplatesHtml() ?>
28
+
29
+ <script type="text/javascript">
30
+ //<![CDATA[
31
+ var firstStepTemplate = '<div class="option-box" id="option_{{id}}">'+
32
+ '<table id="<?php echo $this->getFieldId() ?>_{{id}}" class="option-header" cellpadding="0" cellspacing="0">'+
33
+ '<input type="hidden" id="<?php echo $this->getFieldId() ?>_{{id}}_is_delete" name="<?php echo $this->getFieldName() ?>[{{id}}][is_delete]" value="" />'+
34
+ '<input type="hidden" id="<?php echo $this->getFieldId() ?>_{{id}}_previous_type" name="<?php echo $this->getFieldName() ?>[{{id}}][previous_type]" value="{{type}}" />'+
35
+ '<input type="hidden" id="<?php echo $this->getFieldId() ?>_{{id}}_previous_group" name="<?php echo $this->getFieldName() ?>[{{id}}][previous_group]" value="" />'+
36
+ '<input type="hidden" id="<?php echo $this->getFieldId() ?>_{{id}}_id" name="<?php echo $this->getFieldName() ?>[{{id}}][id]" value="{{id}}" />'+
37
+ '<input type="hidden" id="<?php echo $this->getFieldId() ?>_{{id}}_option_id" name="<?php echo $this->getFieldName() ?>[{{id}}][option_id]" value="{{option_id}}" />'+
38
+ '<thead>'+
39
+ '<tr>'+
40
+ '<th class="opt-title"><?php echo $this->jsQuoteEscape(Mage::helper('catalog')->__('Title')) ?> <span class="required">*</span></th>'+
41
+ '<th class="opt-type"><?php echo $this->jsQuoteEscape(Mage::helper('catalog')->__('Input Type')) ?> <span class="required">*</span></th>'+
42
+ '<th class="opt-req"><?php echo $this->jsQuoteEscape(Mage::helper('catalog')->__('Is Required')) ?></th>'+
43
+ '<th class="opt-order"><?php echo $this->jsQuoteEscape(Mage::helper('catalog')->__('Sort Order')) ?></th>'+
44
+ '<th class="a-right"><?php echo $this->jsQuoteEscape($this->jsQuoteEscape($this->getDeleteButtonHtml())) ?></th>'+
45
+ '</tr>'+
46
+ '</thead>'+
47
+ '<tr>'+
48
+ '<td><input type="text" class="required-entry input-text" id="<?php echo $this->getFieldId() ?>_{{id}}_title" name="<?php echo $this->getFieldName() ?>[{{id}}][title]" value="{{title}}">{{checkboxScopeTitle}}</td>'+
49
+ '<td><?php echo $this->getTypeSelectHtml() ?></td>'+
50
+ '<td class="opt-req"><?php echo $this->getRequireSelectHtml() ?></td>'+
51
+ '<td><input type="text" class="validate-zero-or-greater input-text" name="<?php echo $this->getFieldName() ?>[{{id}}][sort_order]" value="{{sort_order}}"></td>'+
52
+ '<td>&nbsp;</td>'+
53
+ '</tr></table></div>';
54
+
55
+ var productOption = {
56
+ div : $('product_options_container_top'),
57
+ templateSyntax : /(^|.|\r|\n)({{(\w+)}})/,
58
+ templateText : firstStepTemplate,
59
+ itemCount : 1,
60
+ add : function(data) {
61
+ this.template = new Template(this.templateText, this.templateSyntax);
62
+
63
+ if(!data.id){
64
+ data = {};
65
+ data.id = this.itemCount;
66
+ data.type = '';
67
+ data.option_id = 0;
68
+ } else {
69
+ this.itemCount = data.item_count;
70
+ }
71
+
72
+ Element.insert(this.div, {'after':this.template.evaluate(data)});
73
+
74
+ //set selected type
75
+ if (data.type) {
76
+ $A($('<?php echo $this->getFieldId() ?>_'+data.id+'_type').options).each(function(option){
77
+ if (option.value==data.type) option.selected = true;
78
+ });
79
+ }
80
+
81
+ //set selected is_require
82
+ if (data.is_require) {
83
+ $A($('<?php echo $this->getFieldId() ?>_'+data.id+'_is_require').options).each(function(option){
84
+ if (option.value==data.is_require) option.selected = true;
85
+ });
86
+ }
87
+
88
+ if (data.checkboxScopeTitle) {
89
+ //set disabled
90
+ if ($('<?php echo $this->getFieldId() ?>_'+data.option_id+'_title') && data.scopeTitleDisabled) {
91
+ $('<?php echo $this->getFieldId() ?>_'+data.option_id+'_title').disable();
92
+ }
93
+ }
94
+
95
+ this.itemCount++;
96
+ this.bindRemoveButtons();
97
+ productOptionType.bindSelectInputType();
98
+ },
99
+ remove : function(event){
100
+ var element = $(Event.findElement(event, 'div'));
101
+ if(element){
102
+ $('product_'+element.readAttribute('id')+'_'+'is_delete').value = '1';
103
+ element.addClassName('no-display');
104
+ element.addClassName('ignore-validate');
105
+ element.hide();
106
+ }
107
+ },
108
+ bindRemoveButtons : function(){
109
+ var buttons = $$('div.product-custom-options .delete-product-option');
110
+ for(var i=0;i<buttons.length;i++){
111
+ if(!$(buttons[i]).binded){
112
+ $(buttons[i]).binded = true;
113
+ Event.observe(buttons[i], 'click', this.remove.bind(this));
114
+ }
115
+ }
116
+ var inputs = $$('div.product-custom-options button', 'div.product-custom-options input', 'div.product-custom-options select', 'div.product-custom-options textarea');
117
+ <?php if ($this->isReadonly()):?>
118
+ for (var i=0, l = inputs.length; i < l; i ++) {
119
+ inputs[i].disabled = true;
120
+ if (inputs[i].tagName.toLowerCase()=='button') {
121
+ inputs[i].addClassName('disabled');
122
+ }
123
+ }
124
+ <?php else: ?>
125
+ inputs.each(function(el) { Event.observe(el, 'change', el.setHasChanges.bind(el)); } )
126
+ <?php endif;?>
127
+ }
128
+ }
129
+
130
+
131
+ var productOptionType = {
132
+ templateSyntax : /(^|.|\r|\n)({{(\w+)}})/,
133
+ loadStepTwo : function(event){
134
+ var element = $(Event.findElement(event, 'select'));
135
+
136
+ var group = '';
137
+ var previousGroupElm = $(element.readAttribute('id').sub('_type', '_previous_group'));
138
+
139
+ switch(element.getValue()){
140
+ case 'field':
141
+ case 'area':
142
+ template = OptionTemplateText;
143
+ group = 'text';
144
+ break;
145
+ case 'file':
146
+ template = OptionTemplateFile;
147
+ group = 'file';
148
+ break;
149
+ case 'drop_down':
150
+ case 'radio':
151
+ case 'checkbox':
152
+ case 'multiple':
153
+ template = OptionTemplateSelect;
154
+ group = 'select';
155
+ break;
156
+ case 'date':
157
+ case 'date_time':
158
+ case 'time':
159
+ template = OptionTemplateDate;
160
+ group = 'date';
161
+ break;
162
+ default:
163
+ template = '';
164
+ group = 'unknown';
165
+ break;
166
+ }
167
+
168
+ if (previousGroupElm.getValue() != group) {
169
+ if ($(element.readAttribute('id')+'_'+previousGroupElm.getValue())) {
170
+ formElm = $(element.readAttribute('id')+'_'+previousGroupElm.getValue()).descendants();
171
+ formElm.each(function(elm){
172
+ if (elm.tagName == 'input' || elm.tagName == 'select') {
173
+ elm.name = '__delete__'+elm.readAttribute('name');
174
+ }
175
+ });
176
+
177
+ $(element.readAttribute('id')+'_'+previousGroupElm.getValue()).addClassName('no-display');
178
+ $(element.readAttribute('id')+'_'+previousGroupElm.getValue()).addClassName('ignore-validate');
179
+ $(element.readAttribute('id')+'_'+previousGroupElm.getValue()).hide();
180
+ }
181
+
182
+ previousGroupElm.value = group;
183
+
184
+ if ($(element.readAttribute('id')+'_'+group)) {
185
+ formElm = $(element.readAttribute('id')+'_'+group).descendants();
186
+ formElm.each(function(elm){
187
+ if (elm.match('input') || elm.match('select')) {
188
+ elm.name = elm.readAttribute('name').sub('__delete__', '');
189
+ }
190
+ });
191
+ $(element.readAttribute('id')+'_'+group).removeClassName('no-display');
192
+ $(element.readAttribute('id')+'_'+group).removeClassName('ignore-validate');
193
+ $(element.readAttribute('id')+'_'+group).show();
194
+
195
+ } else {
196
+ template = '<div id="'+element.readAttribute('id')+'_'+group+'" class="grid tier form-list">'+template+'</div><div id="'+element.readAttribute('id')+'_'+group+'_advice"></div';
197
+ this.secondTemplate = new Template(template, this.templateSyntax);
198
+
199
+ data = {};
200
+ if (!data.option_id) {
201
+ data = {};
202
+ data.option_id = $(element.readAttribute('id').sub('_type', '_id')).getValue();
203
+ }
204
+
205
+ Element.insert(element.readAttribute('id').sub('_type', ''), {'after':this.secondTemplate.evaluate(data)});
206
+
207
+ switch(element.getValue()){
208
+ case 'drop_down':
209
+ case 'radio':
210
+ case 'checkbox':
211
+ case 'multiple':
212
+ selectOptionType.bindAddButton();
213
+ break;
214
+ }
215
+ }
216
+ }
217
+ },
218
+ addDataToValues : function(data){
219
+
220
+ switch(data.type){
221
+ case 'field':
222
+ case 'area':
223
+ template = OptionTemplateText;
224
+ group = 'text';
225
+ break;
226
+ case 'file':
227
+ template = OptionTemplateFile;
228
+ group = 'file';
229
+ break;
230
+ case 'drop_down':
231
+ case 'radio':
232
+ case 'checkbox':
233
+ case 'multiple':
234
+ template = OptionTemplateSelect;
235
+ group = 'select';
236
+ break;
237
+ case 'date':
238
+ case 'date_time':
239
+ case 'time':
240
+ template = OptionTemplateDate;
241
+ group = 'date';
242
+ break;
243
+ }
244
+
245
+ $('<?php echo $this->getFieldId() ?>_'+data.id+'_previous_group').value = group;
246
+
247
+ template = '<div id="<?php echo $this->getFieldId() ?>_{{id}}_type_'+group+'" class="grid tier form-list">'+template+'</div><div id="<?php echo $this->getFieldId() ?>_{{id}}_type_'+group+'_advice"></div>';
248
+
249
+ this.secondTemplate = new Template(template, this.templateSyntax);
250
+
251
+ Element.insert($('<?php echo $this->getFieldId() ?>_'+data.option_id), {'after':this.secondTemplate.evaluate(data)});
252
+
253
+ if (data.checkboxScopePrice) {
254
+ //set disabled
255
+ if ($('<?php echo $this->getFieldId() ?>_'+data.option_id+'_price') && data.scopePriceDisabled) {
256
+ $('<?php echo $this->getFieldId() ?>_'+data.option_id+'_price').disable();
257
+ $('<?php echo $this->getFieldId() ?>_'+data.option_id+'_price_type').disable();
258
+ }
259
+ }
260
+
261
+ switch(data.type){
262
+ case 'drop_down':
263
+ case 'radio':
264
+ case 'checkbox':
265
+ case 'multiple':
266
+ data.optionValues.each(function(value) {
267
+ selectOptionType.add(value);
268
+ });
269
+ selectOptionType.bindAddButton();
270
+ break;
271
+ }
272
+
273
+ if (data.price_type) {
274
+ $A($('<?php echo $this->getFieldId() ?>_'+data.option_id+'_price_type').options).each(function(option){
275
+ if (option.value==data.price_type) option.selected = true;
276
+ });
277
+ }
278
+
279
+ },
280
+ bindSelectInputType : function(){
281
+ var types = $$('.select-product-option-type');
282
+ for(var i=0;i<types.length;i++){
283
+ if(!$(types[i]).binded){
284
+ $(types[i]).binded = true;
285
+ Event.observe(types[i], 'change', function(event){
286
+ productOptionType.loadStepTwo(event);
287
+ });
288
+ }
289
+ }
290
+ }
291
+ }
292
+
293
+ var productOptionScope = {
294
+ addScope : function(event){
295
+ var element = $(Event.element(event));
296
+ fieldToDisable = $(element.readAttribute('id').sub('_use_default', ''));
297
+
298
+ if (fieldToDisable.disabled) {
299
+ if (fieldToDisable.hasClassName('product-option-price')) {//need change to cheking value of element
300
+ $(fieldToDisable.readAttribute('id')+'_type').enable();
301
+ }
302
+ fieldToDisable.enable();
303
+ } else {
304
+ if (fieldToDisable.hasClassName('product-option-price')) {//need change to cheking value of element
305
+ $(fieldToDisable.readAttribute('id')+'_type').disable();
306
+ }
307
+ fieldToDisable.disable();
308
+ }
309
+ },
310
+ bindScopeCheckbox : function(){
311
+ var checkboxes = $$('.product-option-scope-checkbox');
312
+ for (var i=0;i<checkboxes.length;i++) {
313
+ if (!$(checkboxes[i]).binded) {
314
+ $(checkboxes[i]).binded = true;
315
+ Event.observe(checkboxes[i], 'click', this.addScope.bind(this));
316
+ }
317
+ }
318
+ }
319
+ }
320
+
321
+ if($('option_panel')){
322
+ $('option_panel').remove();
323
+ }
324
+
325
+ productOption.bindRemoveButtons();
326
+
327
+ if($('<?php echo $this->getAddButtonId() ?>')){
328
+ Event.observe('<?php echo $this->getAddButtonId() ?>', 'click', productOption.add.bind(productOption));
329
+ }
330
+
331
+ //validation for selected input type
332
+ Validation.addAllThese([
333
+ ['required-option-select', <?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('Select type of option')) ?>, function(v, elm) {
334
+ if (elm.getValue() == '') {
335
+ return false;
336
+ }
337
+ return true;
338
+ }]]);
339
+
340
+ //adding data to templates
341
+ <?php foreach ($this->getOptionValues() as $_value): ?>
342
+ productOption.add(<?php echo $_value->toJson() ?>);
343
+ productOptionType.addDataToValues(<?php echo $_value->toJson() ?>);
344
+ <?php endforeach; ?>
345
+
346
+ //bind scope checkboxes
347
+ productOptionScope.bindScopeCheckbox();
348
+ //]]>
349
+ </script>
350
+
351
+ <div><?php if (!$this->isReadonly()):?><input type="hidden" name="affect_product_custom_options" value="1" /><?php endif;?></div>
app/design/adminhtml/default/default/template/catalog/product/edit/options/type/date.phtml ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type="text/javascript">
28
+
29
+ OptionTemplateDate = '<table class="border" cellpadding="0" cellspacing="0">'+
30
+ '<tr class="headings">'+
31
+ <?php if ($this->getCanReadPrice() !== false) : ?>
32
+ '<th class="type-price"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Price')) ?></th>' +
33
+ '<th class="type-type"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Price Type')) ?></th>' +
34
+ <?php endif; ?>
35
+ '<th class="last"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('SKU')) ?></th>'+
36
+ '</tr>'+
37
+ '<tr>'+
38
+ <?php if ($this->getCanReadPrice() !== false) : ?>
39
+ '<td><input type="text" class="input-text validate-number product-option-price" id="product_option_{{option_id}}_price" name="product[options][{{option_id}}][price]" value="{{price}}"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?>></td>' +
40
+ '<td><?php echo $this->getPriceTypeSelectHtml() ?>{{checkboxScopePrice}}</td>' +
41
+ <?php else : ?>
42
+ '<input type="hidden" id="product_option_{{option_id}}_price" name="product[options][{{option_id}}][price]">' +
43
+ '<input type="hidden" name="product[options][{{option_id}}][price_type]" id="product_option_{{option_id}}_price_type">' +
44
+ <?php endif; ?>
45
+ '<td class="last"><input type="text" class="input-text type-sku" name="product[options][{{option_id}}][sku]" value="{{sku}}"></td>'+
46
+ '</tr>'+
47
+ '</table>';
48
+
49
+ if ($('option_panel_type_date')) {
50
+ $('option_panel_type_date').remove();
51
+ }
52
+
53
+ </script>
app/design/adminhtml/default/default/template/catalog/product/edit/options/type/file.phtml ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type="text/javascript">
28
+
29
+ OptionTemplateFile = '<table class="border" cellpadding="0" cellspacing="0">'+
30
+ '<tr class="headings">'+
31
+ <?php if ($this->getCanReadPrice() !== false) : ?>
32
+ '<th class="type-price">' + <?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('Price')); ?> + '</th>' +
33
+ '<th class="type-type">' + <?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('Price Type')); ?> + '</th>' +
34
+ <?php endif; ?>
35
+ '<th class="type-sku">' + <?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('SKU')); ?> + '</th>' +
36
+ '<th class="type-title">' + <?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('Allowed File Extensions')); ?> + '</th>'+
37
+ '<th class="last">' + <?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('Maximum Image Size')); ?> + '</th>' +
38
+ '</tr>' +
39
+ '<tr>' +
40
+ <?php if ($this->getCanReadPrice() !== false) : ?>
41
+ '<td><input class="input-text validate-zero-or-greater" type="text" name="product[options][{{option_id}}][price]" value="{{price}}"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?>></td>' +
42
+ '<td>' + <?php echo $this->helper('core')->jsonEncode($this->getPriceTypeSelectHtml()) ?> + '</td>' +
43
+ <?php else : ?>
44
+ '<input type="hidden" name="product[options][{{option_id}}][price]">' +
45
+ '<input type="hidden" name="product[options][{{option_id}}][price_type]" id="product_option_{{option_id}}_price_type">' +
46
+ <?php endif; ?>
47
+ '<td><input type="text" class="input-text" name="product[options][{{option_id}}][sku]" value="{{sku}}"></td>' +
48
+ '<td><input class="input-text" type="text" name="product[options][{{option_id}}][file_extension]" value="{{file_extension}}"></td>' +
49
+ '<td class="type-last last" nowrap><input class="input-text" type="text" name="product[options][{{option_id}}][image_size_x]" value="{{image_size_x}}">' +
50
+ <?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('x')) ?> +
51
+ '<input class="input-text" type="text" name="product[options][{{option_id}}][image_size_y]" value="{{image_size_y}}">' +
52
+ <?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('px.')) ?> +
53
+ '<br/>' + <?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('leave blank if its not an image')) ?> + '</td>' +
54
+ '</tr>'+
55
+ '</table>';
56
+
57
+ if ($('option_panel_type_file')) {
58
+ $('option_panel_type_file').remove();
59
+ }
60
+
61
+ </script>
app/design/adminhtml/default/default/template/catalog/product/edit/options/type/select.phtml ADDED
@@ -0,0 +1,173 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <script type="text/javascript">
29
+ //<![CDATA[
30
+ OptionTemplateSelect = '<table class="border" cellpadding="0" cellspacing="0">'+
31
+ '<input type="hidden" class="required-option-select-type-rows" name="validation_{{option_id}}_result" value="" >'+
32
+ '<thead>'+
33
+ '<tr class="headings">'+
34
+ '<th class="type-title"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Title')) ?> <span class="required">*</span></th>'+
35
+ <?php if ($this->getCanReadPrice() !== false) : ?>
36
+ '<th class="type-price"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Price')) ?></th>' +
37
+ '<th class="type-type"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Price Type')) ?></th>' +
38
+ <?php endif; ?>
39
+ '<th class="type-sku"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('SKU')) ?></th>'+
40
+ '<th class="type-order"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Sort Order')) ?></th>'+
41
+ '<th class="type-butt last">&nbsp;</th>'+
42
+ '</tr>'+
43
+ '</thead>'+
44
+ '<tbody id="select_option_type_row_{{option_id}}">'+
45
+ '</tbody>'+
46
+ '<tfoot>'+
47
+ '<tr>'+
48
+ '<td colspan="100" class="a-right"><?php echo $this->getAddButtonHtml() ?></td>'+
49
+ '</tr>'+
50
+ '</tfoot>'+
51
+ '</table>';
52
+
53
+ OptionTemplateSelectRow = '<tr id="product_option_{{id}}_select_{{select_id}}">'+
54
+ '<td>'+
55
+ '<input type="hidden" name="product[options][{{id}}][values][{{select_id}}][option_type_id]" value="{{option_type_id}}">'+
56
+ '<input type="hidden" id="product_option_{{id}}_select_{{select_id}}_is_delete" name="product[options][{{id}}][values][{{select_id}}][is_delete]" value="">'+
57
+ '<input type="text" class="required-entry input-text select-type-title" id="product_option_{{id}}_select_{{select_id}}_title" name="product[options][{{id}}][values][{{select_id}}][title]" value="{{title}}">{{checkboxScopeTitle}}</td>'+
58
+ <?php if ($this->getCanReadPrice() !== false) : ?>
59
+ '<td><input type="text" class="input-text validate-number product-option-price" id="product_option_{{id}}_select_{{select_id}}_price" name="product[options][{{id}}][values][{{select_id}}][price]" value="{{price}}"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?>></td>' +
60
+ '<td><?php echo $this->getPriceTypeSelectHtml() ?>{{checkboxScopePrice}}</td>' +
61
+ <?php else : ?>
62
+ '<input type="hidden" id="product_option_{{id}}_select_{{select_id}}_price" name="product[options][{{id}}][values][{{select_id}}][price]">' +
63
+ '<input type="hidden" name="product[options][{{id}}][values][{{select_id}}][price_type]" id="product_option_{{id}}_select_{{select_id}}_price_type">' +
64
+ <?php endif; ?>
65
+ '<td><input type="text" class="input-text" name="product[options][{{id}}][values][{{select_id}}][sku]" value="{{sku}}"></td>'+
66
+ '<td><input type="text" class="validate-zero-or-greater input-text" name="product[options][{{id}}][values][{{select_id}}][sort_order]" value="{{sort_order}}"></td>'+
67
+ '<td class="last"><span title="Delete row"><?php echo $this->getDeleteButtonHtml() ?></span></td>'+
68
+ '</tr>';
69
+
70
+ selectOptionType = {
71
+ div : 'select_option_type_row',
72
+ itemCount : 0,
73
+ templateSyntax : /(^|.|\r|\n)({{(\w+)}})/,
74
+ templateText : OptionTemplateSelectRow,
75
+ add : function(data) {
76
+
77
+ this.template = new Template(this.templateText, this.templateSyntax);
78
+
79
+ if (data.target || data.srcElement) {//data is Event (work in IE and Firefox)
80
+ element = $(Event.findElement(data, 'button'));
81
+ optionId = element.readAttribute('id').sub('add_select_row_button_', '');
82
+ data = {};
83
+ data.option_type_id = '-1';
84
+ data.select_id = this.itemCount;
85
+ } else {
86
+ optionId = data.option_id;
87
+ data.select_id = data.option_type_id;
88
+ this.itemCount = data.item_count;
89
+ }
90
+
91
+ data.id = optionId;
92
+
93
+ Element.insert($(this.div+'_'+data.id), {'bottom':this.template.evaluate(data)});
94
+
95
+ if (data.checkboxScopeTitle) {
96
+ //set disabled
97
+ if ($('product_option_'+data.id+'_select_'+data.select_id+'_title') && data.scopeTitleDisabled) {
98
+ $('product_option_'+data.id+'_select_'+data.select_id+'_title').disable();
99
+ }
100
+ }
101
+ if (data.checkboxScopePrice) {
102
+ //set disabled
103
+ if ($('product_option_'+data.id+'_select_'+data.select_id+'_price') && data.scopePriceDisabled) {
104
+ $('product_option_'+data.id+'_select_'+data.select_id+'_price').disable();
105
+ $('product_option_'+data.id+'_select_'+data.select_id+'_price_type').disable();
106
+ }
107
+ }
108
+
109
+ if (data.price_type) {
110
+ $A($('product_option_'+data.id+'_select_'+data.select_id+'_price_type').options).each(function(option){
111
+ if (option.value==data.price_type) option.selected = true;
112
+ });
113
+ }
114
+
115
+ this.itemCount++;
116
+ this.bindRemoveButtons();
117
+ },
118
+ remove : function(event){
119
+ var element = $(Event.findElement(event, 'tr'));
120
+
121
+ if(element){
122
+ $(element.readAttribute('id')+'_is_delete').value = '1';
123
+ element.addClassName('no-display');
124
+ element.addClassName('ignore-validate');
125
+ element.hide();
126
+ }
127
+ },
128
+ bindRemoveButtons : function(){
129
+ var buttons = $$('.delete-select-row');
130
+ for(var i=0;i<buttons.length;i++){
131
+ if(!$(buttons[i]).binded){
132
+ $(buttons[i]).binded = true;
133
+ Event.observe(buttons[i], 'click', this.remove.bind(this));
134
+ }
135
+ }
136
+ },
137
+ bindAddButton : function()
138
+ {
139
+ var buttons = $$('.add-select-row');
140
+ for(var i=0;i<buttons.length;i++){
141
+ if(!$(buttons[i]).binded){
142
+ $(buttons[i]).binded = true;
143
+ Event.observe(buttons[i], 'click', this.add.bind(this));
144
+ }
145
+ }
146
+ }
147
+ }
148
+
149
+ if ($('option_panel_type_select')) {
150
+ $('option_panel_type_select').remove();
151
+ }
152
+
153
+ selectOptionType.bindRemoveButtons();
154
+
155
+ Validation.addAllThese([
156
+ ['required-option-select-type-rows', <?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('Please add rows to option.')); ?>, function(v, elm) {
157
+ var optionContainerElm = elm.up('div.grid');
158
+ var selectTypesFlag = false;
159
+ selectTypeElements = $$('#'+optionContainerElm.id+' .select-type-title');
160
+ selectTypeElements.each(function(elm){
161
+ if (elm.id && elm.up('tr').visible()) {
162
+ selectTypesFlag = true;
163
+ }
164
+ });
165
+ elm.advaiceContainer = optionContainerElm.id+'_advice';
166
+ return selectTypesFlag;
167
+ }]]);
168
+
169
+ if($('add_select_row_button')){
170
+ Event.observe('add_select_row_button', 'click', selectOptionType.add.bind(selectOptionType));
171
+ }
172
+ //]]>
173
+ </script>
app/design/adminhtml/default/default/template/catalog/product/edit/options/type/text.phtml ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type="text/javascript">
28
+ //<![CDATA[
29
+ OptionTemplateText = '<table class="border" cellpadding="0" cellspacing="0">'+
30
+ '<tr class="headings">'+
31
+ <?php if ($this->getCanReadPrice() !== false) : ?>
32
+ '<th class="type-price"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Price')) ?></th>' +
33
+ '<th class="type-type"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Price Type')) ?></th>' +
34
+ <?php endif; ?>
35
+ '<th class="type-sku"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('SKU')) ?></th>'+
36
+ '<th class="type-last last"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Max Characters')) ?> </th>'+
37
+ '</tr>'+
38
+ '<tr>'+
39
+ <?php if ($this->getCanReadPrice() !== false) : ?>
40
+ '<td><input type="text" class="input-text validate-number product-option-price" id="product_option_{{option_id}}_price" name="product[options][{{option_id}}][price]" value="{{price}}"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?>></td>' +
41
+ '<td><?php echo $this->getPriceTypeSelectHtml() ?>{{checkboxScopePrice}}</td>' +
42
+ <?php else : ?>
43
+ '<input type="hidden" name="product[options][{{option_id}}][price]">' +
44
+ '<input type="hidden" name="product[options][{{option_id}}][price_type]" id="product_option_{{option_id}}_price_type">' +
45
+ <?php endif; ?>
46
+ '<td><input type="text" class="input-text" name="product[options][{{option_id}}][sku]" value="{{sku}}"></td>'+
47
+ '<td class="type-last last"><input type="text" class="input-text validate-zero-or-greater" name="product[options][{{option_id}}][max_characters]" value="{{max_characters}}"></td>'+
48
+ '</tr>'+
49
+ '</table>';
50
+
51
+ if ($('option_panel_type_text')) {
52
+ $('option_panel_type_text').remove();
53
+ }
54
+ //]]>
55
+ </script>
app/design/adminhtml/default/default/template/catalog/product/edit/price/group.phtml ADDED
@@ -0,0 +1,170 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /** @var $this Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Price_Group */
29
+ $_htmlId = $this->getElement()->getHtmlId();
30
+ $_htmlClass = $this->getElement()->getClass();
31
+ $_htmlName = $this->getElement()->getName();
32
+ $_readonly = $this->getElement()->getReadonly();
33
+ $_priceValueValidation = $this->getPriceValidation('validate-zero-or-greater');
34
+
35
+ $_showWebsite= $this->isMultiWebsites();
36
+ ?>
37
+ <tr>
38
+ <td class="label"><?php echo $this->getElement()->getLabel(); ?></td>
39
+ <td colspan="10" class="grid tier">
40
+ <table cellspacing="0" class="data border" id="group_prices_table">
41
+ <?php if ($_showWebsite) : ?>
42
+ <col width="135" />
43
+ <?php endif; ?>
44
+ <col width="120" />
45
+ <col />
46
+ <col width="1" />
47
+ <thead>
48
+ <tr class="headings">
49
+ <th <?php if (!$_showWebsite): ?>style="display: none;"<?php endif; ?>><?php echo Mage::helper('catalog')->__('Website'); ?></th>
50
+ <th><?php echo Mage::helper('catalog')->__('Customer Group'); ?></th>
51
+ <th><?php echo $this->getPriceColumnHeader(Mage::helper('catalog')->__('Price')); ?></th>
52
+ <th class="last"><?php echo Mage::helper('catalog')->__('Action'); ?></th>
53
+ </tr>
54
+ </thead>
55
+ <tbody id="<?php echo $_htmlId; ?>_container"></tbody>
56
+ <tfoot>
57
+ <tr>
58
+ <td <?php if (!$_showWebsite): ?>style="display: none;"<?php endif; ?>></td>
59
+ <td colspan="4" class="a-right"><?php echo $this->getAddButtonHtml(); ?></td>
60
+ </tr>
61
+ </tfoot>
62
+ </table>
63
+
64
+ <script type="text/javascript">
65
+ //<![CDATA[
66
+ var groupPriceRowTemplate = '<tr>'
67
+ + '<td<?php if (!$_showWebsite): ?> style="display:none"<?php endif; ?>>'
68
+ + '<select class="<?php echo $_htmlClass; ?> required-entry" name="<?php echo $_htmlName; ?>[{{index}}][website_id]" id="group_price_row_{{index}}_website">'
69
+ <?php foreach ($this->getWebsites() as $_websiteId => $_info) : ?>
70
+ + '<option value="<?php echo $_websiteId; ?>"><?php echo $this->jsQuoteEscape($this->escapeHtml($_info['name'])); ?><?php if (!empty($_info['currency'])) : ?> [<?php echo $this->escapeHtml($_info['currency']); ?>]<?php endif; ?></option>'
71
+ <?php endforeach; ?>
72
+ + '</select></td>'
73
+ + '<td><select class="<?php echo $_htmlClass; ?> custgroup required-entry" name="<?php echo $_htmlName; ?>[{{index}}][cust_group]" id="group_price_row_{{index}}_cust_group">'
74
+ <?php foreach ($this->getCustomerGroups() as $_groupId => $_groupName): ?>
75
+ + '<option value="<?php echo $_groupId; ?>"><?php echo $this->jsQuoteEscape($this->escapeHtml($_groupName)); ?></option>'
76
+ <?php endforeach; ?>
77
+ + '</select></td>'
78
+ + '<td><input class="<?php echo $_htmlClass; ?> required-entry <?php echo $_priceValueValidation; ?>" type="text" name="<?php echo $_htmlName; ?>[{{index}}][price]" value="{{price}}" id="group_price_row_{{index}}_price" />'
79
+ + '<input type="hidden" name="<?php echo $_htmlName; ?>[{{index}}][is_percent]" value="<?php if ($this->getIsPercent()) : ?>1<?php else: ?>0<?php endif;?>" id="group_price_row_{{index}}_is_percent" /></td>'
80
+ + '<td class="last"><input type="hidden" name="<?php echo $_htmlName; ?>[{{index}}][delete]" class="delete" value="" id="group_price_row_{{index}}_delete" />'
81
+ + '<button title="<?php echo $this->jsQuoteEscape(Mage::helper('catalog')->__('Delete Group Price')); ?>" type="button" class="scalable delete icon-btn delete-product-option" id="group_price_row_{{index}}_delete_button" onclick="return groupPriceControl.deleteItem(event);">'
82
+ + '<span><?php echo $this->jsQuoteEscape(Mage::helper('catalog')->__('Delete')); ?></span></button></td>'
83
+ + '</tr>';
84
+
85
+ var groupPriceControl = {
86
+ template: new Template(groupPriceRowTemplate, new RegExp('(^|.|\\r|\\n)({{\\s*(\\w+)\\s*}})', '')),
87
+ itemsCount: 0,
88
+ addItem : function () {
89
+ <?php if ($_readonly): ?>
90
+ if (arguments.length < 3) {
91
+ return;
92
+ }
93
+ <?php endif; ?>
94
+ var data = {
95
+ website_id: '<?php echo $this->getDefaultWebsite(); ?>',
96
+ group: '<?php echo $this->getDefaultCustomerGroup(); ?>',
97
+ price: '',
98
+ readOnly: false,
99
+ index: this.itemsCount++
100
+ };
101
+
102
+ if(arguments.length >= 3) {
103
+ data.website_id = arguments[0];
104
+ data.group = arguments[1];
105
+ data.price = arguments[2];
106
+ }
107
+ if (arguments.length == 4) {
108
+ data.readOnly = arguments[3];
109
+ }
110
+
111
+ Element.insert($('<?php echo $_htmlId; ?>_container'), {
112
+ bottom : this.template.evaluate(data)
113
+ });
114
+
115
+ $('group_price_row_' + data.index + '_cust_group').value = data.group;
116
+ $('group_price_row_' + data.index + '_website').value = data.website_id;
117
+
118
+ <?php if ($this->isShowWebsiteColumn() && !$this->isAllowChangeWebsite()): ?>
119
+ var websiteElement = $('group_price_row_' + data.index + '_website');
120
+ var websiteCaption = websiteElement.options[websiteElement.selectedIndex].text;
121
+
122
+ websiteElement.insert({after:'<span class="website-name">' + websiteCaption + '</span>'});
123
+ websiteElement.hide();
124
+ <?php endif;?>
125
+
126
+ if (data.readOnly == '1') {
127
+ ['website', 'cust_group', 'price', 'delete'].each(function(element_suffix) {
128
+ $('group_price_row_' + data.index + '_' + element_suffix).disabled = true;
129
+ });
130
+ $('group_price_row_' + data.index + '_delete_button').hide();
131
+ }
132
+
133
+ <?php if ($_readonly): ?>
134
+ $('<?php echo $_htmlId; ?>_container').select('input', 'select').each(this.disableElement);
135
+ $('<?php echo $_htmlId; ?>_container').up('table').select('button').each(this.disableElement);
136
+ <?php else: ?>
137
+ $('<?php echo $_htmlId; ?>_container').select('input', 'select').each(function(element) {
138
+ Event.observe(element, 'change', element.setHasChanges.bind(element));
139
+ });
140
+ <?php endif; ?>
141
+ },
142
+ disableElement: function(element) {
143
+ element.disabled = true;
144
+ element.addClassName('disabled');
145
+ },
146
+ deleteItem: function(event) {
147
+ var tr = Event.findElement(event, 'tr');
148
+ if (tr) {
149
+ Element.select(tr, '.delete').each(function(element) {
150
+ element.value='1';
151
+ });
152
+ Element.select(tr, ['input', 'select']).each(function(element) {
153
+ element.hide();
154
+ });
155
+ Element.hide(tr);
156
+ Element.addClassName(tr, 'no-display template');
157
+ }
158
+ return false;
159
+ }
160
+ };
161
+ <?php foreach ($this->getValues() as $_item) : ?>
162
+ groupPriceControl.addItem('<?php echo $_item['website_id']; ?>', '<?php echo $_item['cust_group']; ?>', '<?php echo sprintf('%.2f', $_item['price']); ?>', <?php echo (int)!empty($_item['readonly']); ?>);
163
+ <?php endforeach; ?>
164
+ <?php if ($_readonly) : ?>
165
+ $('<?php echo $_htmlId; ?>_container').up('table').select('button')
166
+ .each(groupPriceControl.disableElement);
167
+ <?php endif; ?>
168
+ //]]>
169
+ </script>
170
+ </td></tr>
app/design/adminhtml/default/default/template/catalog/product/edit/price/tier.phtml ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ /* @var $this Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Price_Tier */
27
+ ?>
28
+ <?php $_htmlId = $this->getElement()->getHtmlId() ?>
29
+ <?php $_htmlClass = $this->getElement()->getClass() ?>
30
+ <?php $_htmlName = $this->getElement()->getName() ?>
31
+ <?php $_readonly = $this->getElement()->getReadonly() ?>
32
+ <?php $_showWebsite = $this->isShowWebsiteColumn(); ?>
33
+ <?php $_editWebsite = $this->isAllowChangeWebsite(); ?>
34
+ <?php $_priceValueValidation = $this->getPriceValidation('validate-greater-than-zero'); ?>
35
+
36
+
37
+ <?php $_showWebsite = $this->isShowWebsiteColumn(); ?>
38
+ <?php $_showWebsite= $this->isMultiWebsites(); ?>
39
+ <tr>
40
+ <td class="label"><?php echo $this->getElement()->getLabel() ?></td>
41
+ <td colspan="10" class="grid tier">
42
+ <table cellspacing="0" class="data border" id="tiers_table">
43
+ <?php if ($_showWebsite): ?>
44
+ <col width="135" />
45
+ <?php endif; ?>
46
+ <col width="120" />
47
+ <col width="95" />
48
+ <col />
49
+ <col width="1" />
50
+ <thead>
51
+ <tr class="headings">
52
+ <th <?php if (!$_showWebsite): ?>style="display:none"<?php endif; ?>><?php echo Mage::helper('sales')->__('Website') ?></th>
53
+ <th><?php echo Mage::helper('catalog')->__('Customer Group') ?></th>
54
+ <th><?php echo Mage::helper('catalog')->__('Qty') ?></th>
55
+ <th><?php echo $this->getPriceColumnHeader(Mage::helper('catalog')->__('Price')) ?></th>
56
+ <th class="last"><?php echo Mage::helper('catalog')->__('Action') ?></th>
57
+ </tr>
58
+ </thead>
59
+ <tbody id="<?php echo $_htmlId ?>_container"></tbody>
60
+ <tfoot>
61
+ <tr>
62
+ <td <?php if (!$_showWebsite): ?>style="display:none"<?php endif; ?>></td>
63
+ <td colspan="4" class="a-right"><?php echo $this->getAddButtonHtml() ?></td>
64
+ </tr>
65
+ </tfoot>
66
+ </table>
67
+
68
+ <script type="text/javascript">
69
+ //<![CDATA[
70
+ var tierPriceRowTemplate = '<tr>'
71
+ + '<td<?php if (!$_showWebsite): ?> style="display:none"<?php endif; ?>>'
72
+ + '<select class="<?php echo $_htmlClass ?> required-entry" name="<?php echo $_htmlName ?>[{{index}}][website_id]" id="tier_price_row_{{index}}_website">'
73
+ <?php foreach ($this->getWebsites() as $_websiteId => $_info): ?>
74
+ + '<option value="<?php echo $_websiteId ?>"><?php echo $this->jsQuoteEscape($this->escapeHtml($_info['name'])) ?><?php if (!empty($_info['currency'])): ?> [<?php echo $this->escapeHtml($_info['currency']) ?>]<?php endif; ?></option>'
75
+ <?php endforeach ?>
76
+ + '</select></td>'
77
+ + '<td><select class="<?php echo $_htmlClass ?> custgroup required-entry" name="<?php echo $_htmlName ?>[{{index}}][cust_group]" id="tier_price_row_{{index}}_cust_group">'
78
+ <?php foreach ($this->getCustomerGroups() as $_groupId=>$_groupName): ?>
79
+ + '<option value="<?php echo $_groupId ?>"><?php echo $this->jsQuoteEscape($this->escapeHtml($_groupName)) ?></option>'
80
+ <?php endforeach ?>
81
+ + '</select></td>'
82
+ + '<td class="nobr"><input class="<?php echo $_htmlClass ?> qty required-entry validate-greater-than-zero" type="text" name="<?php echo $_htmlName ?>[{{index}}][price_qty]" value="{{qty}}" id="tier_price_row_{{index}}_qty" />'
83
+ + ' <small class="nobr"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('and above')) ?></small></td>'
84
+ + '<td><input class="<?php echo $_htmlClass ?> required-entry <?php echo $_priceValueValidation ?>" type="text" name="<?php echo $_htmlName ?>[{{index}}][price]" value="{{price}}" id="tier_price_row_{{index}}_price" /></td>'
85
+ + '<td class="last"><input type="hidden" name="<?php echo $_htmlName ?>[{{index}}][delete]" class="delete" value="" id="tier_price_row_{{index}}_delete" />'
86
+ + '<button title="<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__("Delete Tier")) ?>" type="button" class="scalable delete icon-btn delete-product-option" id="tier_price_row_{{index}}_delete_button" onclick="return tierPriceControl.deleteItem(event);">'
87
+ + '<span><span><span><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__("Delete")) ?></span></span></span></button></td>'
88
+ + '</tr>';
89
+
90
+ var tierPriceControl = {
91
+ template: new Template(tierPriceRowTemplate, new RegExp('(^|.|\\r|\\n)({{\\s*(\\w+)\\s*}})', "")),
92
+ itemsCount: 0,
93
+ addItem : function () {
94
+ <?php if ($_readonly): ?>
95
+ if (arguments.length < 4) {
96
+ return;
97
+ }
98
+ <?php endif; ?>
99
+ var data = {
100
+ website_id: '<?php echo $this->getDefaultWebsite() ?>',
101
+ group: '<?php echo $this->getDefaultCustomerGroup() ?>',
102
+ qty: '',
103
+ price: '',
104
+ readOnly: false,
105
+ index: this.itemsCount++
106
+ };
107
+
108
+ if(arguments.length >= 4) {
109
+ data.website_id = arguments[0];
110
+ data.group = arguments[1];
111
+ data.qty = arguments[2];
112
+ data.price = arguments[3];
113
+ }
114
+ if (arguments.length == 5) {
115
+ data.readOnly = arguments[4];
116
+ }
117
+
118
+ Element.insert($('<?php echo $_htmlId ?>_container'), {
119
+ bottom : this.template.evaluate(data)
120
+ });
121
+
122
+ $('tier_price_row_' + data.index + '_cust_group').value = data.group;
123
+ $('tier_price_row_' + data.index + '_website').value = data.website_id;
124
+
125
+ <?php if ($this->isShowWebsiteColumn() && !$this->isAllowChangeWebsite()):?>
126
+ var wss = $('tier_price_row_' + data.index + '_website');
127
+ var txt = wss.options[wss.selectedIndex].text;
128
+
129
+ wss.insert({after:'<span class="website-name">' + txt + '</span>'});
130
+ wss.hide();
131
+ <?php endif;?>
132
+
133
+ if (data.readOnly == '1') {
134
+ ['website', 'cust_group', 'qty', 'price', 'delete'].each(function(idx){
135
+ $('tier_price_row_'+data.index+'_'+idx).disabled = true;
136
+ });
137
+ $('tier_price_row_'+data.index+'_delete_button').hide();
138
+ }
139
+
140
+ <?php if ($_readonly): ?>
141
+ $('<?php echo $_htmlId ?>_container').select('input', 'select').each(this.disableElement);
142
+ $('<?php echo $_htmlId ?>_container').up('table').select('button').each(this.disableElement);
143
+ <?php else: ?>
144
+ $('<?php echo $_htmlId ?>_container').select('input', 'select').each(function(el){ Event.observe(el, 'change', el.setHasChanges.bind(el)); });
145
+ <?php endif; ?>
146
+ },
147
+ disableElement: function(el) {
148
+ el.disabled = true;
149
+ el.addClassName('disabled');
150
+ },
151
+ deleteItem: function(event) {
152
+ var tr = Event.findElement(event, 'tr');
153
+ if (tr) {
154
+ Element.select(tr, '.delete').each(function(elem){elem.value='1'});
155
+ Element.select(tr, ['input', 'select']).each(function(elem){elem.hide()});
156
+ Element.hide(tr);
157
+ Element.addClassName(tr, 'no-display template');
158
+ }
159
+ return false;
160
+ }
161
+ };
162
+ <?php foreach ($this->getValues() as $_item): ?>
163
+ tierPriceControl.addItem('<?php echo $_item['website_id'] ?>', '<?php echo $_item['cust_group'] ?>', '<?php echo $_item['price_qty']*1 ?>', '<?php echo sprintf('%.2f', $_item['price']) ?>', <?php echo (int)!empty($_item['readonly'])?>);
164
+ <?php endforeach; ?>
165
+ <?php if ($_readonly): ?>
166
+ $('<?php echo $_htmlId ?>_container').up('table').select('button')
167
+ .each(tierPriceControl.disableElement);
168
+ <?php endif; ?>
169
+ //]]>
170
+ </script>
171
+ </td></tr>
app/design/adminhtml/default/default/template/catalog/product/edit/serializer.phtml ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <?php $_id = 'id_' . md5(microtime()) ?>
29
+ <input type="hidden" name="<?php echo $this->getInputElementName()?>" value="" id="<?php echo $_id?>" />
30
+ <script type="text/javascript">
31
+ // create serializer controller, that will syncronize grid checkboxes with hidden input
32
+ new productLinksController('<?php echo $_id?>', <?php echo $this->getProductsJSON() ?>, <?php echo $this->getGridBlock()->getJsObjectName() ?>);
33
+ </script>
app/design/adminhtml/default/default/template/catalog/product/edit/super/config.phtml ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php if (!$this->isReadonly()):?>
28
+ <div class="entry-edit">
29
+ <div id="assign_product_warrning" style="display: none;">
30
+ <ul class="messages">
31
+ <li class="error-msg">
32
+ <ul>
33
+ <li><?php echo $this->__('Links with associated products will retain only after saving current product.') ?></li>
34
+ </ul>
35
+ </li>
36
+ </ul>
37
+ </div>
38
+ <div class="entry-edit-head">
39
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Create Simple Associated Product') ?></h4>
40
+ </div>
41
+ <fieldset class="a-right">
42
+ <?php echo $this->getChildHtml('create_empty') ?> <?php echo $this->getChildHtml('create_from_configurable') ?>
43
+ </fieldset>
44
+ </div>
45
+
46
+ <div id="<?php echo $this->getHtmlId() ?>_simple_form" class="ignore-validate configurable-simple-product">
47
+ <?php echo $this->getChildHtml('simple'); ?>
48
+ </div>
49
+ <?php endif;?>
50
+ <div class="entry-edit">
51
+ <div class="entry-edit-head">
52
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Super product attributes configuration') ?></h4>
53
+ </div>
54
+ <fieldset id="<?php echo $this->getHtmlId() ?>">
55
+ <legend><?php echo Mage::helper('catalog')->__('Super product attributes configuration') ?></legend>
56
+ <input type="hidden" id="<?php echo $this->getHtmlId() ?>_save_links" name="configurable_products_data" value=""/>
57
+ <input type="hidden" id="<?php echo $this->getHtmlId() ?>_save_attributes" name="configurable_attributes_data" />
58
+
59
+ <ul class="messages">
60
+ <li class="notice-msg">
61
+ <ul><li><?php echo Mage::helper('catalog')->__('Price values for options should be specified in system base currency.')?></li></ul>
62
+ <ul><li><?php echo Mage::helper('catalog')->__('Attrribute names can be specified per store.')?></li></ul>
63
+ </li>
64
+ </ul>
65
+ <ul id="<?php echo $this->getHtmlId() ?>_attributes" class="super-attributes">
66
+ </ul>
67
+ </fieldset>
68
+ </div>
69
+ <div class="no-display" id="<?php echo $this->getHtmlId() ?>_attribute_template">
70
+ <div class="<?php if (!$this->isReadonly()):?>attribute-name-container <?php endif;?>left">
71
+ '{{frontend_label}}'
72
+ </div>
73
+ <div class="values-container right">
74
+ <label for="__id___label" class="bold"><?php echo Mage::helper('catalog')->__('Attribute Name:') ?></label>
75
+ <input id="__id___label" type="text" <?php if ($this->isAttributesConfigurationReadonly()): ?> disabled="disabled" <?php endif;?> class="input-text attribute-label required-entry template no-display" value="'{{label}}'" readonly="label" />
76
+ <input id="__id___label_use_default" type="checkbox" value="1" " checked="use_default" class="attribute-use-default-label">
77
+ <label for="__id___label_use_default"><?php echo Mage::helper('catalog')->__('Use default')?> ('{{store_label}}')</label>
78
+ <ul class="attribute-values">
79
+ </ul>
80
+ </div>
81
+ </div>
82
+ <div class="no-display" id="<?php echo $this->getHtmlId() ?>_value_template">
83
+ <div class="attribute-value-label-container left">
84
+ <?php echo Mage::helper('catalog')->__('Option:') ?> <strong>'{{label}}'</strong>
85
+ </div>
86
+ <?php if ($this->getCanReadPrice() !== false) : ?>
87
+ <div class="attribute-values-container-main">
88
+ <div class="attribute-values-container left">
89
+ <?php echo Mage::helper('catalog')->__('Price:') ?>
90
+ <input id="__id___pricing" type="text" <?php if ($this->isAttributesPricesReadonly() || $this->getCanEditPrice() === false): ?> disabled="disabled" <?php endif;?> class="input-text attribute-price validate-number template no-display" value="'{{pricing_value}}'"/>
91
+ </div>
92
+ <div class="attribute-values-container left">
93
+ &nbsp;<select class="attribute-price-type" id="__id___price_type" <?php if ($this->isAttributesPricesReadonly() || $this->getCanEditPrice() === false): ?> disabled="disabled" <?php endif;?>>
94
+ <option value="0"><?php echo Mage::helper('catalog')->__('Fixed') ?></option>
95
+ <option value="1"><?php echo Mage::helper('catalog')->__('Percentage') ?></option>
96
+ </select>
97
+ </div>
98
+ <?php if ($this->getShowUseDefaultPrice()):?>
99
+ <div class="attribute-values-container">
100
+ &nbsp;<input id="__id___default" type="checkbox" <?php if ($this->isAttributesPricesReadonly() || $this->getCanEditPrice() === false): ?> disabled="disabled" <?php endif;?> class="attribute-use-default-value"> <label for="__id___default" class="normal"><?php echo Mage::helper('catalog')->__('Use Default Value') ?></label>
101
+ </div>
102
+ <?php endif;?>
103
+ <?php else : ?>
104
+ <div class="attribute-values-container-main">
105
+ <div class="attribute-values-container left">
106
+ <input id="__id___pricing" type="hidden" class="attribute-price template no-display" value="0" />
107
+ </div>
108
+ <div class="attribute-values-container left">
109
+ <input type="hidden" class="attribute-price-type" id="__id___price_type" value="0" />
110
+ </div>
111
+ <?php if ($this->getShowUseDefaultPrice()) : ?>
112
+ <div class="attribute-values-container no-display">
113
+ <input id="__id___default" type="checkbox" <?php if ($this->isReadonly() || $this->getCanEditPrice() === false):?> disabled="disabled" <?php endif;?> class="attribute-use-default-value">
114
+ </div>
115
+ <?php endif; ?>
116
+ <?php endif; ?>
117
+ </div>
118
+ </div>
119
+ <div class="template no-display" id="<?php echo $this->getHtmlId() ?>_simple_pricing">
120
+ <?php if ($this->getCanReadPrice() !== false) : ?>
121
+ <div class="attribute-values-container left v-middle">
122
+ &nbsp;<?php echo Mage::helper('catalog')->__('Price:') ?>
123
+ <input type="text" class="input-text attribute-price validate-number"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled" <?php endif; ?>/>
124
+ </div>
125
+ <div class="attribute-values-container left v-middle">
126
+ &nbsp;<select class="attribute-price-type"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled" <?php endif; ?>>
127
+ <option value="0"><?php echo Mage::helper('catalog')->__('Fixed') ?></option>
128
+ <option value="1"><?php echo Mage::helper('catalog')->__('Percentage') ?></option>
129
+ </select>
130
+ </div>
131
+ <?php else : ?>
132
+ <input type="hidden" class="attribute-price" />
133
+ <input type="hidden" class="attribute-price-type" />
134
+ <?php endif; ?>
135
+ </div>
136
+ <div class="template no-display" id="<?php echo $this->getHtmlId() ?>_simple_pricing_view">
137
+ &nbsp;<?php echo Mage::helper('catalog')->__('Price') ?> <strong>'{{value}}'</strong>
138
+ </div>
139
+ <?php echo $this->getGridHtml() ?>
140
+ <script type="text/javascript">
141
+ var superProduct = new Product.Configurable(<?php echo $this->getAttributesJson() ?>,<?php echo $this->getLinksJson() ?>,'<?php echo $this->getHtmlId() ?>_',<?php echo $this->getGridJsObject() ?>, <?php echo ( $this->isReadonly() ? 'true' : 'false'); ?>);
142
+ superProduct.createEmptyUrl = '<?php echo $this->getNewEmptyProductUrl() ?>';
143
+ superProduct.createNormalUrl = '<?php echo $this->getNewProductUrl() ?>';
144
+ superProduct.createQuickUrl = '<?php echo $this->getQuickCreationUrl() ?>';
145
+
146
+ Validation.add(
147
+ 'validate-configurable',
148
+ '<?php echo $this->escapeJs(Mage::helper('catalog')->__('Product with this combination of attributes already associated to configurable.')) ?>',
149
+ superProduct.checkCreationUniqueAttributes.bind(superProduct)
150
+ )
151
+ </script>
152
+
153
+ <div><input type="hidden" name="affect_configurable_product_attributes" value="1" /></div>
app/design/adminhtml/default/default/template/catalog/product/edit/websites.phtml ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="entry-edit">
28
+ <div class="entry-edit-head">
29
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Product In Websites') ?></h4>
30
+ </div>
31
+ <fieldset id="grop_fields">
32
+ <?php if($this->getProductId()): ?>
33
+ <ul class="messages">
34
+ <li class="notice-msg">
35
+ <ul>
36
+ <li><?php echo Mage::helper('catalog')->__("Items that you don't want to show in the catalog or search results should have status 'Disabled' in the desired store.") ?></li>
37
+ </ul>
38
+ </li>
39
+ </ul>
40
+ <?php endif; ?>
41
+ <div class="store-scope">
42
+ <?php echo $this->getHintHtml() ?>
43
+ <div class="tree-store-scope">
44
+ <?php foreach ($this->getWebsiteCollection() as $_website): ?>
45
+ <div class="website-name">
46
+ <input name="product[website_ids][]" value="<?php echo $_website->getId() ?>" <?php if ($this->isReadonly()):?> disabled="disabled"<?php endif;?> class="checkbox website-checkbox" id="product_website_<?php echo $_website->getId() ?>" type="checkbox"<?php if($this->hasWebsite($_website->getId())): ?> checked="checked"<?php endif; ?> />
47
+ <big><strong><label for="product_website_<?php echo $_website->getId() ?>"><?php echo $this->escapeHtml($_website->getName()) ?></label></strong></big>
48
+ </div>
49
+ <div class="webiste-groups" id="product_website_<?php echo $_website->getId() ?>_data">
50
+ <?php foreach ($this->getGroupCollection($_website) as $_group): ?>
51
+ <h4><?php echo $this->escapeHtml($_group->getName()) ?></h4>
52
+ <div class="group-stores">
53
+ <table>
54
+ <?php foreach ($this->getStoreCollection($_group) as $_store): ?>
55
+ <tr>
56
+ <td><?php echo $this->escapeHtml($_store->getName()) ?></td>
57
+ <td>
58
+ <?php if($this->getWebsites() && !$this->hasWebsite($_website->getId())): ?>
59
+ <span class="website-<?php echo $_website->getId() ?>-select" style="display:none">
60
+ <?php echo Mage::helper('catalog')->__('(Copy data from: %s)', $this->getChooseFromStoreHtml($_store)) ?>
61
+ </span>
62
+ <?php endif; ?>
63
+ </td>
64
+ </tr>
65
+ <?php endforeach; ?>
66
+ </table>
67
+ </div>
68
+ <?php endforeach; ?>
69
+ </div>
70
+ <?php endforeach; ?>
71
+ </div>
72
+ </div>
73
+ </fieldset>
74
+ </div>
75
+ <script type="text/javascript">
76
+ //<![CDATA[
77
+ var productWebsiteCheckboxes = $$('.website-checkbox');
78
+
79
+ for(var i=0;i<productWebsiteCheckboxes.length;i++){
80
+ Event.observe(productWebsiteCheckboxes[i], 'click', toggleStoreFromChoosers);
81
+ }
82
+
83
+ function toggleStoreFromChoosers(event){
84
+ var element = Event.element(event);
85
+ var selects = $('product_website_'+element.value+'_data').getElementsBySelector('select');
86
+ var selectBlocks = $('product_website_'+element.value+'_data').getElementsByClassName('website-'+element.value+'-select');
87
+ for (var i=0; i<selects.length; i++) {
88
+ selects[i].disabled=!element.checked;
89
+ }
90
+ for (var i=0; i<selectBlocks.length; i++) {
91
+ if (element.checked) {
92
+ selectBlocks[i].show();
93
+ }
94
+ else {
95
+ selectBlocks[i].hide();
96
+ }
97
+ }
98
+ }
99
+ //]]>
100
+ </script>
app/design/adminhtml/default/default/template/catalog/product/helper/gallery.phtml ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * Template for block Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content
30
+ */
31
+ ?>
32
+ <?php
33
+ $_block = $this;
34
+ /* @var $_block Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content */
35
+ ?>
36
+ <div id="<?php echo $_block->getHtmlId() ?>" >
37
+ <ul class="messages">
38
+ <li class="notice-msg">
39
+ <ul>
40
+ <li>
41
+ <?php echo Mage::helper('catalog')->__('Image type and information need to be specified for each store view.'); ?>
42
+ </li>
43
+ </ul>
44
+ </li>
45
+ </ul>
46
+ <div class="grid">
47
+ <table cellspacing="0" class="data border" id="<?php echo $_block->getHtmlId() ?>_grid" width="100%">
48
+ <col width="1" />
49
+ <col />
50
+ <col width="70" />
51
+ <?php foreach ($_block->getImageTypes() as $typeId=>$type): ?>
52
+ <col />
53
+ <?php endforeach; ?>
54
+ <col width="70" />
55
+ <col width="70" />
56
+ <thead>
57
+ <tr class="headings">
58
+ <th><?php echo Mage::helper('catalog')->__('Image') ?></th>
59
+ <th><?php echo Mage::helper('catalog')->__('Label') ?></th>
60
+ <th><?php echo Mage::helper('catalog')->__('Sort Order') ?></th>
61
+ <?php foreach ($_block->getImageTypes() as $typeId=>$type): ?>
62
+ <th><?php echo $type['label'] ?></th>
63
+ <?php endforeach; ?>
64
+ <th><?php echo Mage::helper('catalog')->__('Exclude') ?></th>
65
+ <th class="last"><?php echo Mage::helper('catalog')->__('Remove') ?></th>
66
+ </tr>
67
+ </thead>
68
+ <tbody id="<?php echo $_block->getHtmlId() ?>_list">
69
+ <tr id="<?php echo $_block->getHtmlId() ?>_template" class="template no-display">
70
+ <td class="cell-image"><div class="place-holder" onmouseover="<?php echo $_block->getJsObjectName(); ?>.loadImage('__file__')"><span><?php echo Mage::helper('catalog')->__('Roll Over for preview') ?></span></div><img src="<?php echo $this->getSkinUrl('images/spacer.gif')?>" width="100" style="display:none;" alt="" /></td>
71
+ <td class="cell-label"><input type="text" <?php if($_block->getElement()->getReadonly()):?> disabled="disabled"<?php endif;?> class="input-text" onkeyup="<?php echo $_block->getJsObjectName(); ?>.updateImage('__file__')" onchange="<?php echo $_block->getJsObjectName(); ?>.updateImage('__file__')" /></td>
72
+ <td class="cell-position"><input type="text" <?php if($_block->getElement()->getReadonly()):?> disabled="disabled"<?php endif;?> class="input-text validate-number" onkeyup="<?php echo $_block->getJsObjectName(); ?>.updateImage('__file__')" onchange="<?php echo $_block->getJsObjectName(); ?>.updateImage('__file__')" /></td>
73
+ <?php foreach ($_block->getImageTypes() as $typeId=>$type): ?>
74
+ <td class="cell-<?php echo $typeId ?> a-center"><input <?php if($_block->getElement()->getAttributeReadonly($typeId)) :?> disabled="disabled" <?php endif;?> type="radio" name="<?php echo $type['field'] ?>" onclick="<?php echo $_block->getJsObjectName(); ?>.setProductImages('__file__')" value="__file__" /></td>
75
+ <?php endforeach; ?>
76
+ <td class="cell-disable a-center"><input type="checkbox" <?php if($_block->getElement()->getReadonly()):?> disabled="disabled"<?php endif;?> onclick="<?php echo $_block->getJsObjectName(); ?>.updateImage('__file__')" /></td>
77
+ <td class="cell-remove a-center last"><input type="checkbox" <?php if($_block->getElement()->getReadonly()):?> disabled="disabled"<?php endif;?> onclick="<?php echo $_block->getJsObjectName(); ?>.updateImage('__file__')" /></td>
78
+ </tr>
79
+ <?php if($_block->hasUseDefault()): ?>
80
+ <tr id="<?php echo $_block->getHtmlId() ?>_default">
81
+ <td><?php echo Mage::helper('catalog')->__('Use Default Value') ?></td>
82
+ <td>&nbsp;</td>
83
+ <td>&nbsp;</td>
84
+ <?php foreach ($_block->getMediaAttributes() as $_attribute): ?>
85
+ <td class="a-center">
86
+ <?php if($_block->getElement()->canDisplayUseDefault($_attribute)): ?>
87
+ <input class="default-checkbox" name="use_default[]" type="checkbox" <?php if($_block->getElement()->getAttributeReadonly($_attribute->getAttributeCode())):?> disabled="disabled" <?php endif;?> onclick="<?php echo $_block->getJsObjectName(); ?>.updateUseDefault()"
88
+ <?php if($_block->getElement()->usedDefault($_attribute)): ?>checked<?php endif; ?> value="<?php echo $_attribute->getAttributeCode() ?>" />
89
+ <?php endif ?>
90
+ </td>
91
+ <?php endforeach; ?>
92
+ <td>&nbsp;</td>
93
+ <td class="last">&nbsp;</td>
94
+ </tr>
95
+ <?php endif ?>
96
+ <tr id="<?php echo $_block->getHtmlId() ?>-image-0">
97
+ <td class="cell-image"><?php echo Mage::helper('catalog')->__('No image') ?></td>
98
+ <td class="cell-label"><input type="hidden" />&nbsp;</td>
99
+ <td class="cell-position"><input type="hidden" />&nbsp;</td>
100
+ <?php foreach ($_block->getImageTypes() as $typeId=>$type): ?>
101
+ <td class="cell-<?php echo $typeId ?> a-center"><input type="radio" <?php if($_block->getElement()->getAttributeReadonly($typeId)) :?> disabled="disabled" <?php endif;?> name="<?php echo $type['field'] ?>" onclick="<?php echo $_block->getJsObjectName(); ?>.setProductImages('no_selection')" value="no_selection" /></td>
102
+ <?php endforeach; ?>
103
+ <td class="cell-disable"><input type="hidden" />&nbsp;</td>
104
+ <td class="cell-remove last"><input type="hidden" />&nbsp;</td>
105
+ </tr>
106
+ </tbody>
107
+ <?php if (!$_block->getElement()->getReadonly()):?>
108
+ <tfoot>
109
+ <tr>
110
+ <td colspan="100" class="last" style="padding:8px">
111
+ <?php echo Mage::helper('catalog')->__('Maximum width and height dimension for upload image is %s.', Mage::getStoreConfig(Mage_Catalog_Helper_Image::XML_NODE_PRODUCT_MAX_DIMENSION)); ?>
112
+ <?php echo $_block->getUploaderHtml() ?>
113
+ </td>
114
+ </tr>
115
+ </tfoot>
116
+ <?php endif;?>
117
+ </table>
118
+ </div>
119
+ </div>
120
+ <input type="hidden" id="<?php echo $_block->getHtmlId() ?>_save" name="<?php echo $_block->getElement()->getName() ?>[images]" value="<?php echo $_block->escapeHtml($_block->getImagesJson()) ?>" />
121
+ <input type="hidden" id="<?php echo $_block->getHtmlId() ?>_save_image" name="<?php echo $_block->getElement()->getName() ?>[values]" value="<?php echo $_block->escapeHtml($_block->getImagesValuesJson()) ?>" />
122
+ <script type="text/javascript">
123
+ //<![CDATA[
124
+ var <?php echo $_block->getJsObjectName(); ?> = new Product.Gallery('<?php echo $_block->getHtmlId() ?>', <?php echo $_block->getImageTypesJson() ?>);
125
+ //]]>
126
+ </script>
app/design/adminhtml/default/default/template/catalog/product/js.phtml ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type="text/javascript">
28
+ //<![CDATA[
29
+ Event.observe(window, 'load', recalculateTax);
30
+ Event.observe(window, 'load', registerTaxRecalcs);
31
+
32
+ function registerTaxRecalcs()
33
+ {
34
+ if (typeof dynamicTaxes == 'undefined') {
35
+ return;
36
+ }
37
+
38
+ for (var i=0; i<dynamicTaxes.length; i++) {
39
+ Event.observe($(dynamicTaxes[i]), 'change', recalculateTax);
40
+ }
41
+ Event.observe($('tax_class_id'), 'change', recalculateTax);
42
+ }
43
+
44
+ var priceFormat = <?php echo $this->helper('tax')->getPriceFormat($this->getStore()); ?>;
45
+ var taxRates = <?php echo $this->helper('tax')->getAllRatesByProductClass($this->getStore()); ?>;
46
+
47
+ function recalculateTax()
48
+ {
49
+ if (typeof dynamicTaxes == 'undefined') {
50
+ return;
51
+ }
52
+
53
+ for (var i=0; i<dynamicTaxes.length; i++) {
54
+ var code = dynamicTaxes[i];
55
+ var span = $('dynamic-tax-' + code);
56
+ var input = $(code);
57
+
58
+ if (!input.value) {
59
+ span.innerHTML = '';
60
+ continue;
61
+ }
62
+
63
+ var rate = 0;
64
+ var taxClass = $('tax_class_id').options[$('tax_class_id').selectedIndex].value;
65
+ eval('var value = taxRates.value_' + taxClass);
66
+
67
+ if (value != undefined) {
68
+ rate = value;
69
+ }
70
+
71
+ var spanValue = '';
72
+ if (rate != 0) {
73
+ spanValue = ' ' + formatCurrency(input.value/(100+rate)*rate, priceFormat);
74
+ }
75
+ span.innerHTML = spanValue;
76
+ }
77
+ }
78
+
79
+ // Bind tab changes
80
+ function bindActiveProductTab(event) {
81
+ if(event.tab && event.tab.name && $('store_switcher')){
82
+ $('store_switcher').switchParams = 'active_tab/'+event.tab.name+'/';
83
+ }
84
+ }
85
+ varienGlobalEvents.attachEventHandler('showTab', bindActiveProductTab);
86
+
87
+ // bind active tab
88
+ <?php if($tabsBlock = $this->getLayout()->getBlock('product_tabs')): ?>
89
+ if(<?php echo $tabsBlock->getJsObjectName() ?> && <?php echo $tabsBlock->getJsObjectName() ?>.activeTab && $('store_switcher')){
90
+ $('store_switcher').switchParams = 'active_tab/'+<?php echo $tabsBlock->getJsObjectName() ?>.activeTab.name+'/';
91
+ }
92
+ <?php endif; ?>
93
+ //]]>
94
+ </script>
app/design/adminhtml/default/default/template/catalog/product/price.phtml ADDED
@@ -0,0 +1,383 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <?php
29
+ /**
30
+ * Template for displaying product price in different places (products grid, product view page etc)
31
+ *
32
+ * @see Mage_Adminhtml_Block_Catalog_Product_Price
33
+ */
34
+ ?>
35
+ <?php
36
+ /** @var $_coreHelper Mage_Core_Helper_Data */
37
+ $_coreHelper = $this->helper('core');
38
+ /** @var $_weeeHelper Mage_Weee_Helper_Data */
39
+ $_weeeHelper = $this->helper('weee');
40
+ /** @var $_taxHelper Mage_Tax_Helper_Data */
41
+ $_taxHelper = $this->helper('tax');
42
+
43
+ $_product = $this->getProduct();
44
+ $_id = $_product->getId();
45
+ $_storeId = $_product->getStoreId();
46
+ $_website = Mage::app()->getStore($_storeId)->getWebsite();
47
+
48
+ $_weeeSeparator = '';
49
+ $_simplePricesTax = ($_taxHelper->displayPriceIncludingTax() || $_taxHelper->displayBothPrices());
50
+ $_minimalPriceValue = $_product->getMinimalPrice();
51
+ $_minimalPrice = $_taxHelper->getPrice($_product, $_minimalPriceValue, $_simplePricesTax);
52
+ ?>
53
+
54
+
55
+ <?php
56
+ $_exclTax = $_taxHelper->getPrice($_product, $_minimalPriceValue, $includingTax = null);
57
+ $_inclTax = $_taxHelper->getPrice($_product, $_minimalPriceValue, $includingTax = true);
58
+ ?>
59
+ <?php $_weeeTaxAmount = $_weeeHelper->getAmount($_product, null, null, $_website); ?>
60
+ <?php if ($_weeeHelper->typeOfDisplay($_product, array(1,2,4))): ?>
61
+ <?php $_weeeTaxAmount = $_weeeHelper->getAmount($_product, null, null, $_website); ?>
62
+ <?php $_weeeTaxAttributes = $_weeeHelper->getProductWeeeAttributesForRenderer($_product, null, null, $_website); ?>
63
+ <?php endif; ?>
64
+
65
+ <div class="price-box">
66
+ <?php $_price = $_taxHelper->getPrice($_product, $_product->getPrice()) ?>
67
+ <?php $_regularPrice = $_taxHelper->getPrice($_product, $_product->getPrice(), $_simplePricesTax) ?>
68
+ <?php $_finalPrice = $_taxHelper->getPrice($_product, $_product->getFinalPrice()) ?>
69
+ <?php $_finalPriceInclTax = $_taxHelper->getPrice($_product, $_product->getFinalPrice(), true) ?>
70
+ <?php $_weeeDisplayType = $_weeeHelper->getPriceDisplayType(); ?>
71
+ <?php if ($_finalPrice == $_price): ?>
72
+ <?php if ($_taxHelper->displayBothPrices()): ?>
73
+ <?php if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 0)): // including ?>
74
+ <span class="price-excluding-tax">
75
+ <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
76
+ <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
77
+ <?php echo $_coreHelper->currencyByStore($_price+$_weeeTaxAmount, $_storeId, true, false) ?>
78
+ </span>
79
+ </span>
80
+ <span class="price-including-tax">
81
+ <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
82
+ <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
83
+ <?php echo $_coreHelper->currencyByStore($_finalPriceInclTax+$_weeeTaxAmount,true,false) ?>
84
+ </span>
85
+ </span>
86
+ <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 1)): // incl. + weee ?>
87
+ <span class="price-excluding-tax">
88
+ <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
89
+ <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
90
+ <?php echo $_coreHelper->currencyByStore($_price+$_weeeTaxAmount, $_storeId, true, false) ?>
91
+ </span>
92
+ </span>
93
+ <span class="price-including-tax">
94
+ <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
95
+ <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
96
+ <?php echo $_coreHelper->currencyByStore($_finalPriceInclTax+$_weeeTaxAmount, $_storeId, true, false) ?>
97
+ </span>
98
+ <span class="weee">(
99
+ <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
100
+ <?php echo $_weeeSeparator; ?>
101
+ <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currencyByStore($_weeeTaxAttribute->getAmount(), $_storeId, true, true); ?>
102
+ <?php $_weeeSeparator = ' + '; ?>
103
+ <?php endforeach; ?>
104
+ )</span>
105
+ </span>
106
+ <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 4)): // incl. + weee ?>
107
+ <span class="price-excluding-tax">
108
+ <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
109
+ <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
110
+ <?php echo $_coreHelper->currencyByStore($_price+$_weeeTaxAmount, $_storeId, true, false) ?>
111
+ </span>
112
+ </span>
113
+ <span class="price-including-tax">
114
+ <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
115
+ <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
116
+ <?php echo $_coreHelper->currencyByStore($_finalPriceInclTax+$_weeeTaxAmount, $_storeId, true, false) ?>
117
+ </span>
118
+ <span class="weee">(
119
+ <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
120
+ <?php echo $_weeeSeparator; ?>
121
+ <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currencyByStore($_weeeTaxAttribute->getAmount()+$_weeeTaxAttribute->getTaxAmount(), $_storeId, true, true); ?>
122
+ <?php $_weeeSeparator = ' + '; ?>
123
+ <?php endforeach; ?>
124
+ )</span>
125
+ </span>
126
+ <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 2)): // excl. + weee + final ?>
127
+ <span class="price-excluding-tax">
128
+ <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
129
+ <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
130
+ <?php echo $_coreHelper->currencyByStore($_price, $_storeId, true, false) ?>
131
+ </span>
132
+ </span>
133
+ <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
134
+ <span class="weee">
135
+ <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currencyByStore($_weeeTaxAttribute->getAmount(), $_storeId, true, true); ?>
136
+ </span>
137
+ <?php endforeach; ?>
138
+ <span class="price-including-tax">
139
+ <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
140
+ <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
141
+ <?php echo $_coreHelper->currencyByStore($_finalPriceInclTax+$_weeeTaxAmount, $_storeId, true, false) ?>
142
+ </span>
143
+ </span>
144
+ <?php else: ?>
145
+ <span class="price-excluding-tax">
146
+ <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
147
+ <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
148
+ <?php echo $_coreHelper->currencyByStore($_price, $_storeId, true, false) ?>
149
+ </span>
150
+ </span>
151
+ <span class="price-including-tax">
152
+ <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
153
+ <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
154
+ <?php echo $_coreHelper->currencyByStore($_finalPriceInclTax, $_storeId, true, false) ?>
155
+ </span>
156
+ </span>
157
+ <?php endif; ?>
158
+ <?php else: ?>
159
+ <?php if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 0)): // including ?>
160
+ <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
161
+ <?php echo $_coreHelper->currencyByStore($_price+$_weeeTaxAmount, $_storeId, true, true) ?>
162
+ </span>
163
+ <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 1)): // incl. + weee ?>
164
+ <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
165
+ <?php echo $_coreHelper->currencyByStore($_price+$_weeeTaxAmount, $_storeId, true, true) ?>
166
+ </span>
167
+ <span class="weee">(
168
+ <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
169
+ <?php echo $_weeeSeparator; ?>
170
+ <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currencyByStore($_weeeTaxAttribute->getAmount(), $_storeId, true, true); ?>
171
+ <?php $_weeeSeparator = ' + '; ?>
172
+ <?php endforeach; ?>
173
+ )</span>
174
+ <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 4)): // incl. + weee ?>
175
+ <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
176
+ <?php echo $_coreHelper->currencyByStore($_price+$_weeeTaxAmount, $_storeId, true, true) ?>
177
+ </span>
178
+ <span class="weee">(
179
+ <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
180
+ <?php echo $_weeeSeparator; ?>
181
+ <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currencyByStore($_weeeTaxAttribute->getAmount()+$_weeeTaxAttribute->getTaxAmount(), $_storeId, true, true); ?>
182
+ <?php $_weeeSeparator = ' + '; ?>
183
+ <?php endforeach; ?>
184
+ )</span>
185
+ <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 2)): // excl. + weee + final ?>
186
+ <span class="regular-price"><?php echo $_coreHelper->currencyByStore($_price, $_storeId, true, true) ?></span><br />
187
+ <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
188
+ <span class="weee">
189
+ <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currencyByStore($_weeeTaxAttribute->getAmount(), $_storeId, true, true); ?>
190
+ </span>
191
+ <?php endforeach; ?>
192
+ <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
193
+ <?php echo $_coreHelper->currencyByStore($_price+$_weeeTaxAmount, $_storeId, true, true) ?>
194
+ </span>
195
+ <?php else: ?>
196
+ <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
197
+ <?php echo $_coreHelper->currencyByStore($_price, $_storeId, true, true) ?>
198
+ </span>
199
+ <?php endif; ?>
200
+ <?php endif; ?>
201
+ <?php else: /* if ($_finalPrice == $_price): */ ?>
202
+ <?php $_originalWeeeTaxAmount = $_weeeHelper->getOriginalAmount($_product); ?>
203
+
204
+ <?php if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 0)): // including ?>
205
+ <p class="old-price">
206
+ <span class="price-label"><?php echo $this->__('Regular Price:') ?></span>
207
+ <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
208
+ <?php echo $_coreHelper->currencyByStore($_regularPrice+$_originalWeeeTaxAmount, $_storeId, true, false) ?>
209
+ </span>
210
+ </p>
211
+
212
+ <?php if ($_taxHelper->displayBothPrices()): ?>
213
+ <p class="special-price">
214
+ <span class="price-label"><?php echo $this->__('Special Price:') ?></span>
215
+ <span class="price-excluding-tax">
216
+ <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
217
+ <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
218
+ <?php echo $_coreHelper->currencyByStore($_finalPrice+$_weeeTaxAmount, $_storeId, true, false) ?>
219
+ </span>
220
+ </span>
221
+ <span class="price-including-tax">
222
+ <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
223
+ <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
224
+ <?php echo $_coreHelper->currencyByStore($_finalPriceInclTax+$_weeeTaxAmount, $_storeId, true, false) ?>
225
+ </span>
226
+ </span>
227
+ </p>
228
+ <?php else: ?>
229
+ <p class="special-price">
230
+ <span class="price-label"><?php echo $this->__('Special Price:') ?></span>
231
+ <span class="price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
232
+ <?php echo $_coreHelper->currencyByStore($_finalPrice+$_weeeTaxAmount, $_storeId, true, false) ?>
233
+ </span>
234
+ </p>
235
+ <?php endif; ?>
236
+
237
+ <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 1)): // incl. + weee ?>
238
+ <p class="old-price">
239
+ <span class="price-label"><?php echo $this->__('Regular Price:') ?></span>
240
+ <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
241
+ <?php echo $_coreHelper->currencyByStore($_regularPrice+$_originalWeeeTaxAmount, $_storeId, true, false) ?>
242
+ </span>
243
+ </p>
244
+
245
+ <p class="special-price">
246
+ <span class="price-label"><?php echo $this->__('Special Price:') ?></span>
247
+ <span class="price-excluding-tax">
248
+ <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
249
+ <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
250
+ <?php echo $_coreHelper->currencyByStore($_finalPrice+$_weeeTaxAmount, $_storeId, true, false) ?>
251
+ </span>
252
+ </span>
253
+ <span class="weee">(
254
+ <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
255
+ <?php echo $_weeeSeparator; ?>
256
+ <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currencyByStore($_weeeTaxAttribute->getAmount(), $_storeId, true, true); ?>
257
+ <?php $_weeeSeparator = ' + '; ?>
258
+ <?php endforeach; ?>
259
+ )</span>
260
+ <span class="price-including-tax">
261
+ <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
262
+ <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
263
+ <?php echo $_coreHelper->currencyByStore($_finalPriceInclTax+$_weeeTaxAmount, $_storeId, true, false) ?>
264
+ </span>
265
+ </span>
266
+ </p>
267
+ <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 4)): // incl. + weee ?>
268
+ <p class="old-price">
269
+ <span class="price-label"><?php echo $this->__('Regular Price:') ?></span>
270
+ <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
271
+ <?php echo $_coreHelper->currencyByStore($_regularPrice+$_originalWeeeTaxAmount, $_storeId, true, false) ?>
272
+ </span>
273
+ </p>
274
+
275
+ <p class="special-price">
276
+ <span class="price-label"><?php echo $this->__('Special Price:') ?></span>
277
+ <span class="price-excluding-tax">
278
+ <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
279
+ <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
280
+ <?php echo $_coreHelper->currencyByStore($_finalPrice+$_weeeTaxAmount, $_storeId, true, false) ?>
281
+ </span>
282
+ </span>
283
+ <span class="weee">(
284
+ <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
285
+ <?php echo $_weeeSeparator; ?>
286
+ <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currencyByStore($_weeeTaxAttribute->getAmount()+$_weeeTaxAttribute->getTaxAmount(), $_storeId, true, true); ?>
287
+ <?php $_weeeSeparator = ' + '; ?>
288
+ <?php endforeach; ?>
289
+ )</span>
290
+ <span class="price-including-tax">
291
+ <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
292
+ <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
293
+ <?php echo $_coreHelper->currencyByStore($_finalPriceInclTax+$_weeeTaxAmount, $_storeId, true, false) ?>
294
+ </span>
295
+ </span>
296
+ </p>
297
+ <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 2)): // excl. + weee + final ?>
298
+ <p class="old-price">
299
+ <span class="price-label"><?php echo $this->__('Regular Price:') ?></span>
300
+ <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
301
+ <?php echo $_coreHelper->currencyByStore($_regularPrice, $_storeId, true, false) ?>
302
+ </span>
303
+ </p>
304
+
305
+ <p class="special-price">
306
+ <span class="price-label"><?php echo $this->__('Special Price:') ?></span>
307
+ <span class="price-excluding-tax">
308
+ <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
309
+ <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
310
+ <?php echo $_coreHelper->currencyByStore($_finalPrice, $_storeId, true, false) ?>
311
+ </span>
312
+ </span>
313
+ <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
314
+ <span class="weee">
315
+ <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currencyByStore($_weeeTaxAttribute->getAmount(), $_storeId, true, true); ?>
316
+ </span>
317
+ <?php endforeach; ?>
318
+ <span class="price-including-tax">
319
+ <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
320
+ <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
321
+ <?php echo $_coreHelper->currencyByStore($_finalPriceInclTax+$_weeeTaxAmount, $_storeId, true, false) ?>
322
+ </span>
323
+ </span>
324
+ </p>
325
+ <?php else: // excl. ?>
326
+ <p class="old-price">
327
+ <span class="price-label"><?php echo $this->__('Regular Price:') ?></span>
328
+ <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
329
+ <?php echo $_coreHelper->currencyByStore($_regularPrice, $_storeId, true, false) ?>
330
+ </span>
331
+ </p>
332
+
333
+ <?php if ($_taxHelper->displayBothPrices()): ?>
334
+ <p class="special-price">
335
+ <span class="price-label"><?php echo $this->__('Special Price:') ?></span>
336
+ <span class="price-excluding-tax">
337
+ <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
338
+ <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
339
+ <?php echo $_coreHelper->currencyByStore($_finalPrice, $_storeId, true, false) ?>
340
+ </span>
341
+ </span>
342
+ <span class="price-including-tax">
343
+ <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
344
+ <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
345
+ <?php echo $_coreHelper->currencyByStore($_finalPriceInclTax, $_storeId, true, false) ?>
346
+ </span>
347
+ </span>
348
+ </p>
349
+ <?php else: ?>
350
+ <p class="special-price">
351
+ <span class="price-label"><?php echo $this->__('Special Price:') ?></span>
352
+ <span class="price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
353
+ <?php echo $_coreHelper->currencyByStore($_finalPrice, $_storeId, true, false) ?>
354
+ </span>
355
+ </p>
356
+ <?php endif; ?>
357
+ <?php endif; ?>
358
+
359
+ <?php endif; /* if ($_finalPrice == $_price): */ ?>
360
+
361
+ <?php if ($this->getDisplayMinimalPrice() && $_minimalPriceValue && $_minimalPriceValue < $_product->getFinalPrice()): ?>
362
+
363
+ <?php $_minimalPriceDisplayValue = $_minimalPrice; ?>
364
+ <?php if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, array(0, 1, 4))): ?>
365
+ <?php $_minimalPriceDisplayValue = $_minimalPrice+$_weeeTaxAmount; ?>
366
+ <?php endif; ?>
367
+
368
+ <?php if ($this->getUseLinkForAsLowAs()):?>
369
+ <a href="<?php echo $_product->getProductUrl(); ?>" class="minimal-price-link">
370
+ <?php else:?>
371
+ <span class="minimal-price-link">
372
+ <?php endif?>
373
+ <span class="label"><?php echo $this->__('As low as:') ?></span>
374
+ <span class="price" id="product-minimal-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
375
+ <?php echo $_coreHelper->currencyByStore($_minimalPriceDisplayValue, $_storeId, true, false) ?>
376
+ </span>
377
+ <?php if ($this->getUseLinkForAsLowAs()):?>
378
+ </a>
379
+ <?php else:?>
380
+ </span>
381
+ <?php endif?>
382
+ <?php endif; /* if ($this->getDisplayMinimalPrice() && $_minimalPrice && $_minimalPrice < $_finalPrice): */ ?>
383
+ </div>
app/design/adminhtml/default/default/template/catalog/product/tab/alert.phtml ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * Template for block Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Alerts
30
+ */
31
+ ?>
32
+ <div id="alert_messages_block"><?php echo $this->getMessageHtml() ?></div>
33
+ <div>
34
+ <h4 class="icon-head head-edit-form"><?php echo Mage::helper('productalert')->__('Product Alerts') ?></h4>
35
+ </div>
36
+ <div class="clear"></div>
37
+ <?php echo $this->getAccordionHtml() ?>
app/design/adminhtml/default/default/template/catalog/product/tab/inventory.phtml ADDED
@@ -0,0 +1,263 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php if ($this->isReadonly()):?>
28
+ <?php $_readonly = ' disabled="disabled" ';?>
29
+ <?php else: ?>
30
+ <?php $_readonly = '';?>
31
+ <?php endif; ?>
32
+ <div class="entry-edit">
33
+ <div class="entry-edit-head">
34
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Inventory') ?></h4>
35
+ </div>
36
+ <fieldset>
37
+
38
+ <legend><?php echo Mage::helper('catalog')->__('Inventory') ?></legend>
39
+ <table cellspacing="0" class="form-list" id="table_cataloginventory">
40
+ <tr>
41
+ <td class="label"><label for="inventory_manage_stock"><?php echo Mage::helper('catalog')->__('Manage Stock') ?></label></td>
42
+ <td class="value"><select id="inventory_manage_stock" name="<?php echo $this->getFieldSuffix() ?>[stock_data][manage_stock]" class="select" <?php echo $_readonly;?>>
43
+ <option value="1"><?php echo Mage::helper('catalog')->__('Yes') ?></option>
44
+ <option value="0"<?php if ($this->getConfigFieldValue('manage_stock') == 0): ?> selected="selected"<?php endif; ?>><?php echo Mage::helper('catalog')->__('No') ?></option>
45
+ </select>
46
+ <input type="hidden" id="inventory_manage_stock_default" value="<?php echo $this->getDefaultConfigValue('manage_stock'); ?>" />
47
+
48
+ <?php $_checked = ($this->getFieldValue('use_config_manage_stock') || $this->IsNew()) ? 'checked="checked"' : '' ?>
49
+ <input type="checkbox" id="inventory_use_config_manage_stock" name="<?php echo $this->getFieldSuffix() ?>[stock_data][use_config_manage_stock]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?>/>
50
+ <label for="inventory_use_config_manage_stock" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
51
+ <?php if (!$this->isReadonly()):?><script type="text/javascript">toggleValueElements($('inventory_use_config_manage_stock'), $('inventory_use_config_manage_stock').parentNode);</script><?php endif; ?></td>
52
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
53
+ </tr>
54
+
55
+ <?php if(!$this->getProduct()->isComposite()): ?>
56
+ <tr>
57
+ <td class="label"><label for="inventory_qty"><?php echo Mage::helper('catalog')->__('Qty') ?><span class="required">*</span></label></td>
58
+ <td class="value">
59
+ <?php if (!$_readonly):?>
60
+ <input type="hidden" id="original_inventory_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][original_inventory_qty]" value="<?php echo $this->getFieldValue('qty')*1 ?>"/>
61
+ <?php endif;?>
62
+ <input type="text" class="input-text required-entry validate-number" id="inventory_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][qty]" value="<?php echo $this->getFieldValue('qty')*1 ?>" <?php echo $_readonly;?>/>
63
+ </td>
64
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
65
+ </tr>
66
+
67
+ <tr>
68
+ <td class="label"><label for="inventory_min_qty"><?php echo Mage::helper('catalog')->__('Qty for Item\'s Status to Become Out of Stock') ?></label></td>
69
+ <td class="value"><input type="text" class="input-text validate-number" id="inventory_min_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][min_qty]" value="<?php echo $this->getFieldValue('min_qty')*1 ?>" <?php echo $_readonly;?>/>
70
+
71
+ <?php $_checked = ($this->getFieldValue('use_config_min_qty') || $this->IsNew()) ? 'checked="checked"' : '' ?>
72
+ <input type="checkbox" id="inventory_use_config_min_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][use_config_min_qty]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" <?php echo $_readonly;?> />
73
+ <label for="inventory_use_config_min_qty" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
74
+ <?php if (!$this->isReadonly()):?><script type="text/javascript">toggleValueElements($('inventory_use_config_min_qty'), $('inventory_use_config_min_qty').parentNode);</script><?php endif; ?></td>
75
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
76
+ </tr>
77
+
78
+ <tr>
79
+ <td class="label"><label for="inventory_min_sale_qty"><?php echo Mage::helper('catalog')->__('Minimum Qty Allowed in Shopping Cart') ?></label></td>
80
+ <td class="value"><input type="text" class="input-text validate-number" id="inventory_min_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][min_sale_qty]" value="<?php echo $this->getFieldValue('min_sale_qty')*1 ?>" <?php echo $_readonly;?>/>
81
+
82
+ <?php $_checked = ($this->getFieldValue('use_config_min_sale_qty') || $this->IsNew()) ? 'checked="checked"' : '' ?>
83
+ <input type="checkbox" id="inventory_use_config_min_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][use_config_min_sale_qty]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?> />
84
+ <label for="inventory_use_config_min_sale_qty" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
85
+ <?php if (!$this->isReadonly()):?><script type="text/javascript">toggleValueElements($('inventory_use_config_min_sale_qty'), $('inventory_use_config_min_sale_qty').parentNode);</script><?php endif; ?></td>
86
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
87
+ </tr>
88
+
89
+ <tr>
90
+ <td class="label"><label for="inventory_max_sale_qty"><?php echo Mage::helper('catalog')->__('Maximum Qty Allowed in Shopping Cart') ?></label></td>
91
+ <td class="value"><input type="text" class="input-text validate-number" id="inventory_max_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][max_sale_qty]" value="<?php echo $this->getFieldValue('max_sale_qty')*1 ?>" <?php echo $_readonly;?> />
92
+
93
+ <?php $_checked = ($this->getFieldValue('use_config_max_sale_qty') || $this->IsNew()) ? 'checked="checked"' : '' ?>
94
+ <input type="checkbox" id="inventory_use_config_max_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][use_config_max_sale_qty]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?> />
95
+ <label for="inventory_use_config_max_sale_qty" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
96
+ <?php if (!$this->isReadonly()):?><script type="text/javascript">toggleValueElements($('inventory_use_config_max_sale_qty'), $('inventory_use_config_max_sale_qty').parentNode);</script><?php endif; ?></td>
97
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
98
+ </tr>
99
+
100
+ <?php if($this->canUseQtyDecimals()): ?>
101
+ <tr>
102
+ <td class="label"><label for="inventory_is_qty_decimal"><?php echo Mage::helper('catalog')->__('Qty Uses Decimals') ?></label></td>
103
+ <td class="value"><select id="inventory_is_qty_decimal" name="<?php echo $this->getFieldSuffix() ?>[stock_data][is_qty_decimal]" class="select" <?php echo $_readonly;?>>
104
+ <option value="0"><?php echo Mage::helper('catalog')->__('No') ?></option>
105
+ <option value="1"<?php if($this->getFieldValue('is_qty_decimal')==1): ?> selected="selected"<?php endif; ?>><?php echo Mage::helper('catalog')->__('Yes') ?></option>
106
+ </select>
107
+ </td>
108
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
109
+ </tr>
110
+
111
+ <?php if (!$this->isVirtual()) : ?>
112
+ <tr>
113
+ <td class="label"><label for="inventory_is_decimal_divided"><?php echo Mage::helper('catalog')->__('Can be Divided into Multiple Boxes for Shipping') ?></label></td>
114
+ <td class="value"><select id="inventory_is_decimal_divided" name="<?php echo $this->getFieldSuffix() ?>[stock_data][is_decimal_divided]" class="select" <?php echo $_readonly;?>>
115
+ <option value="0"><?php echo Mage::helper('catalog')->__('No') ?></option>
116
+ <option value="1"<?php if($this->getFieldValue('is_decimal_divided') == 1): ?> selected="selected"<?php endif; ?>><?php echo Mage::helper('catalog')->__('Yes') ?></option>
117
+ </select>
118
+ </td>
119
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
120
+ </tr>
121
+ <?php endif; ?>
122
+
123
+ <?php endif; ?>
124
+
125
+ <tr>
126
+ <td class="label"><label for="inventory_backorders"><?php echo Mage::helper('catalog')->__('Backorders') ?></label></td>
127
+ <td class="value"><select id="inventory_backorders" name="<?php echo $this->getFieldSuffix() ?>[stock_data][backorders]" class="select" <?php echo $_readonly;?>>
128
+ <?php foreach ($this->getBackordersOption() as $option): ?>
129
+ <?php $_selected = ($option['value'] == $this->getFieldValue('backorders')) ? 'selected="selected"' : '' ?>
130
+ <option value="<?php echo $option['value'] ?>" <?php echo $_selected ?>><?php echo $option['label'] ?></option>
131
+ <?php endforeach; ?>
132
+ </select>
133
+
134
+ <?php $_checked = ($this->getFieldValue('use_config_backorders') || $this->IsNew()) ? 'checked="checked"' : '' ?>
135
+ <input type="checkbox" id="inventory_use_config_backorders" name="<?php echo $this->getFieldSuffix() ?>[stock_data][use_config_backorders]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?> />
136
+ <label for="inventory_use_config_backorders" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
137
+ <?php if (!$this->isReadonly()):?><script type="text/javascript">toggleValueElements($('inventory_use_config_backorders'), $('inventory_use_config_backorders').parentNode);</script><?php endif; ?></td>
138
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
139
+ </tr>
140
+ <tr>
141
+ <td class="label"><label for="inventory_notify_stock_qty"><?php echo Mage::helper('catalog')->__('Notify for Quantity Below') ?></label></td>
142
+ <td class="value"><input type="text" class="input-text validate-number" id="inventory_notify_stock_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][notify_stock_qty]" value="<?php echo $this->getFieldValue('notify_stock_qty')*1 ?>" <?php echo $_readonly;?>/>
143
+
144
+ <?php $_checked = ($this->getFieldValue('use_config_notify_stock_qty') || $this->IsNew()) ? 'checked="checked"' : '' ?>
145
+ <input type="checkbox" id="inventory_use_config_notify_stock_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][use_config_notify_stock_qty]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?>/>
146
+ <label for="inventory_use_config_notify_stock_qty" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
147
+ <?php if (!$this->isReadonly()):?><script type="text/javascript">toggleValueElements($('inventory_use_config_notify_stock_qty'), $('inventory_use_config_notify_stock_qty').parentNode);</script><?php endif; ?></td>
148
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
149
+ </tr>
150
+ <?php endif; ?>
151
+ <tr>
152
+ <td class="label"><label for="inventory_enable_qty_increments"><?php echo Mage::helper('catalog')->__('Enable Qty Increments') ?></label></td>
153
+ <td class="value"><select id="inventory_enable_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[stock_data][enable_qty_increments]" class="select" <?php echo $_readonly;?>>
154
+ <option value="1"><?php echo Mage::helper('catalog')->__('Yes') ?></option>
155
+ <option value="0"<?php if ($this->getConfigFieldValue('enable_qty_increments') == 0): ?> selected="selected"<?php endif; ?>><?php echo Mage::helper('catalog')->__('No') ?></option>
156
+ </select>
157
+ <input type="hidden" id="inventory_enable_qty_increments_default" value="<?php echo $this->getDefaultConfigValue('enable_qty_increments'); ?>" />
158
+
159
+ <?php $_checked = ($this->getFieldValue('use_config_enable_qty_increments') || $this->IsNew()) ? 'checked="checked"' : '' ?>
160
+ <input type="checkbox" id="inventory_use_config_enable_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[stock_data][use_config_enable_qty_increments]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?>/>
161
+ <label for="inventory_use_config_enable_qty_increments" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
162
+ <?php if (!$this->isReadonly()):?><script type="text/javascript">toggleValueElements($('inventory_use_config_enable_qty_increments'), $('inventory_use_config_enable_qty_increments').parentNode);</script><?php endif; ?></td>
163
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
164
+ </tr>
165
+ <tr>
166
+ <td class="label"><label for="inventory_qty_increments"><?php echo Mage::helper('catalog')->__('Qty Increments') ?></label></td>
167
+ <td class="value">
168
+ <input type="text" class="input-text validate-digits" id="inventory_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[stock_data][qty_increments]" value="<?php echo $this->getFieldValue('qty_increments')*1 ?>" <?php echo $_readonly;?>/>
169
+ <?php $_checked = ($this->getFieldValue('use_config_qty_increments') || $this->IsNew()) ? 'checked="checked"' : '' ?>
170
+ <input type="checkbox" id="inventory_use_config_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[stock_data][use_config_qty_increments]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?>/>
171
+ <label for="inventory_use_config_qty_increments" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
172
+ <?php if (!$this->isReadonly()):?><script type="text/javascript">toggleValueElements($('inventory_use_config_qty_increments'), $('inventory_use_config_qty_increments').parentNode);</script><?php endif; ?></td>
173
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
174
+ </tr>
175
+ <tr>
176
+ <td class="label"><label for="inventory_stock_availability"><?php echo Mage::helper('catalog')->__('Stock Availability') ?></label></td>
177
+ <td class="value"><select id="inventory_stock_availability" name="<?php echo $this->getFieldSuffix() ?>[stock_data][is_in_stock]" class="select" <?php echo $_readonly;?>>
178
+ <?php foreach ($this->getStockOption() as $option): ?>
179
+ <?php $_selected = ($option['value'] == $this->getFieldValue('is_in_stock')) ? 'selected="selected"' : '' ?>
180
+ <option value="<?php echo $option['value'] ?>" <?php echo $_selected ?>><?php echo $option['label'] ?></option>
181
+ <?php endforeach; ?>
182
+ </select>
183
+ </td>
184
+ <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
185
+ </tr>
186
+ </table>
187
+ </fieldset>
188
+ </div>
189
+ <script type="text/javascript">
190
+ //<![CDATA[
191
+ function changeManageStockOption()
192
+ {
193
+ var manageStock = $('inventory_use_config_manage_stock').checked
194
+ ? $('inventory_manage_stock_default').value
195
+ : $('inventory_manage_stock').value;
196
+ var catalogInventoryNotManageStockFields = {
197
+ inventory_min_sale_qty: true,
198
+ inventory_max_sale_qty: true,
199
+ inventory_enable_qty_increments : true,
200
+ inventory_qty_increments: true
201
+ };
202
+
203
+ $$('#table_cataloginventory tr').each(function(el) {
204
+ if (el == $('inventory_manage_stock').up(1)) {
205
+ return;
206
+ }
207
+
208
+ for (field in catalogInventoryNotManageStockFields) {
209
+ if ($(field) && ($(field).up(1) == el)) {
210
+ return;
211
+ }
212
+ }
213
+
214
+ el[manageStock == 1 ? 'show' : 'hide']();
215
+ });
216
+
217
+ return true;
218
+ }
219
+
220
+ function applyEnableQtyIncrements() {
221
+ var enableQtyIncrements = $('inventory_use_config_enable_qty_increments').checked
222
+ ? $('inventory_enable_qty_increments_default').value
223
+ : $('inventory_enable_qty_increments').value;
224
+
225
+ $('inventory_qty_increments').up('tr')[enableQtyIncrements == 1 ? 'show' : 'hide']();
226
+ }
227
+
228
+ function applyEnableDecimalDivided() {
229
+ <?php if (!$this->isVirtual()) : ?>
230
+ $('inventory_is_decimal_divided').up('tr').hide();
231
+ <?php endif; ?>
232
+ $('inventory_qty_increments').removeClassName('validate-digits').removeClassName('validate-number');
233
+ $('inventory_min_sale_qty').removeClassName('validate-digits').removeClassName('validate-number');
234
+ if ($('inventory_is_qty_decimal').value == 1) {
235
+ <?php if (!$this->isVirtual()) : ?>
236
+ $('inventory_is_decimal_divided').up('tr').show();
237
+ <?php endif; ?>
238
+ $('inventory_qty_increments').addClassName('validate-number');
239
+ $('inventory_min_sale_qty').addClassName('validate-number');
240
+ } else {
241
+ $('inventory_qty_increments').addClassName('validate-digits');
242
+ $('inventory_min_sale_qty').addClassName('validate-digits');
243
+ }
244
+ }
245
+
246
+ Event.observe(window, 'load', function() {
247
+ if ($('inventory_manage_stock') && $('inventory_use_config_manage_stock')) {
248
+ Event.observe($('inventory_manage_stock'), 'change', changeManageStockOption);
249
+ Event.observe($('inventory_use_config_manage_stock'), 'change', changeManageStockOption);
250
+ changeManageStockOption();
251
+ }
252
+ if ($('inventory_enable_qty_increments') && $('inventory_use_config_enable_qty_increments')) {
253
+ Event.observe($('inventory_enable_qty_increments'), 'change', applyEnableQtyIncrements);
254
+ Event.observe($('inventory_use_config_enable_qty_increments'), 'change', applyEnableQtyIncrements);
255
+ applyEnableQtyIncrements();
256
+ }
257
+ if ($('inventory_is_qty_decimal') && $('inventory_qty_increments') && $('inventory_min_sale_qty')) {
258
+ Event.observe($('inventory_is_qty_decimal'), 'change', applyEnableDecimalDivided);
259
+ applyEnableDecimalDivided();
260
+ }
261
+ });
262
+ //]]>
263
+ </script>
app/design/adminhtml/default/default/template/catalog/product/widget/chooser/container.phtml ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * Container for product link widget chooser
30
+ *
31
+ * @see Mage_Adminhtml_Block_Catalog_Product_Widget_Chooser_Container
32
+ */
33
+ ?>
34
+ <div class="columns">
35
+ <div class="side-col"><?php echo $this->getTreeHtml() ?></div>
36
+ <div class="main-col"><?php echo $this->getGridHtml() ?></div>
37
+ </div>
app/design/adminhtml/default/default/template/catalog/wysiwyg/js.phtml ADDED
@@ -0,0 +1,119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type="text/javascript">
28
+ //<![CDATA[
29
+
30
+ Window.keepMultiModalWindow = true;
31
+ var catalogWysiwygEditor = {
32
+ overlayShowEffectOptions : null,
33
+ overlayHideEffectOptions : null,
34
+ open : function(editorUrl, elementId) {
35
+ if (editorUrl && elementId) {
36
+ new Ajax.Request(editorUrl, {
37
+ parameters: {
38
+ element_id: elementId+'_editor',
39
+ store_id: '<?php echo $this->getStoreId() ?>'
40
+ },
41
+ onSuccess: function(transport) {
42
+ try {
43
+ this.openDialogWindow(transport.responseText, elementId);
44
+ } catch(e) {
45
+ alert(e.message);
46
+ }
47
+ }.bind(this)
48
+ });
49
+ }
50
+ },
51
+ openDialogWindow : function(content, elementId) {
52
+ this.overlayShowEffectOptions = Windows.overlayShowEffectOptions;
53
+ this.overlayHideEffectOptions = Windows.overlayHideEffectOptions;
54
+ Windows.overlayShowEffectOptions = {duration:0};
55
+ Windows.overlayHideEffectOptions = {duration:0};
56
+
57
+ Dialog.confirm(content, {
58
+ draggable:true,
59
+ resizable:true,
60
+ closable:true,
61
+ className:"magento",
62
+ windowClassName:"popup-window",
63
+ title:'WYSIWYG Editor',
64
+ width:950,
65
+ height:555,
66
+ zIndex:1000,
67
+ recenterAuto:false,
68
+ hideEffect:Element.hide,
69
+ showEffect:Element.show,
70
+ id:"catalog-wysiwyg-editor",
71
+ buttonClass:"form-button",
72
+ okLabel:"Submit",
73
+ ok: this.okDialogWindow.bind(this),
74
+ cancel: this.closeDialogWindow.bind(this),
75
+ onClose: this.closeDialogWindow.bind(this),
76
+ firedElementId: elementId
77
+ });
78
+
79
+ content.evalScripts.bind(content).defer();
80
+
81
+ $(elementId+'_editor').value = $(elementId).value;
82
+ },
83
+ okDialogWindow : function(dialogWindow) {
84
+ if (dialogWindow.options.firedElementId) {
85
+ wysiwygObj = eval('wysiwyg'+dialogWindow.options.firedElementId+'_editor');
86
+ wysiwygObj.turnOff();
87
+ if (tinyMCE.get(wysiwygObj.id)) {
88
+ $(dialogWindow.options.firedElementId).value = tinyMCE.get(wysiwygObj.id).getContent();
89
+ } else {
90
+ if ($(dialogWindow.options.firedElementId+'_editor')) {
91
+ $(dialogWindow.options.firedElementId).value = $(dialogWindow.options.firedElementId+'_editor').value;
92
+ }
93
+ }
94
+ }
95
+ this.closeDialogWindow(dialogWindow);
96
+ },
97
+ closeDialogWindow : function(dialogWindow) {
98
+ // remove form validation event after closing editor to prevent errors during save main form
99
+ if (typeof varienGlobalEvents != undefined && editorFormValidationHandler) {
100
+ varienGlobalEvents.removeEventHandler('formSubmit', editorFormValidationHandler);
101
+ }
102
+
103
+ //IE fix - blocked form fields after closing
104
+ $(dialogWindow.options.firedElementId).focus();
105
+
106
+ //destroy the instance of editor
107
+ wysiwygObj = eval('wysiwyg'+dialogWindow.options.firedElementId+'_editor');
108
+ if (tinyMCE.get(wysiwygObj.id)) {
109
+ tinyMCE.execCommand('mceRemoveControl', true, wysiwygObj.id);
110
+ }
111
+
112
+ dialogWindow.close();
113
+ Windows.overlayShowEffectOptions = this.overlayShowEffectOptions;
114
+ Windows.overlayHideEffectOptions = this.overlayHideEffectOptions;
115
+ }
116
+ };
117
+
118
+ //]]>
119
+ </script>
app/design/adminhtml/default/default/template/centinel/authentication/complete.phtml ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php if ($this->getIsProcessed()):?>
28
+ <?php if ($this->getIsSuccess()):?>
29
+ <h1><?php echo $this->__('Verification Successful');?></h1>
30
+ <p><?php echo $this->__('Please continue with placing order.')?></p>
31
+ <?php else:?>
32
+ <h4><?php echo $this->__('Verification Failed');?></h4>
33
+ <p><?php echo $this->__('The card has failed verification with the issuer bank.')?> <strong><?php echo $this->__('Order cannot be placed.')?></strong></p>
34
+ <?php endif;?>
35
+ <?php else:?>
36
+ <h4><?php echo $this->__('Verification cannot be processed');?></h4>
37
+ <p><?php echo $this->__('There has been wrong payment information submitted or time limit has expired. Please, try again.')?> <strong><?php echo $this->__('Order cannot be placed.')?></strong></p>
38
+ <?php endif;?>
app/design/adminhtml/default/default/template/centinel/authentication/start.phtml ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <form name="validation_form" id="validation_form" action="<?php echo $this->getAcsUrl();?>" method="post">
28
+ <input type="hidden" name="PaReq" value="<?php echo $this->getPaReq()?>" />
29
+ <input type="hidden" name="TermUrl" value="<?php echo $this->getTermUrl()?>" />
30
+ <input type="hidden" name="MD" value="<?php echo $this->getMd()?>" />
31
+ </form>
32
+ <script type="text/javascript">
33
+ //<![CDATA[
34
+ window.onload = function(){
35
+ document.getElementById('validation_form').submit();
36
+ };
37
+ //]]>
38
+ </script>
app/design/adminhtml/default/default/template/centinel/validation/form.phtml ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="centinel">
28
+ <div class="authentication">
29
+ <iframe frameborder="0" border="0" id="<?php echo $this->getContainerId() ?>" src="" style="display:none;"></iframe>
30
+ </div>
31
+ </div>
32
+ <button onclick="cardValidator.validate()" class="scalable" type="button"><span><span><span><?php echo $this->__('Start/Reset Validation...')?></span></span></span></button>
33
+ <script type="text/javascript">
34
+ //<![CDATA[
35
+ cardValidator = new centinelValidator('<?php echo $this->getMethodCode() ?>', '<?php echo $this->getFrameUrl() ?>', '<?php echo $this->getContainerId() ?>');
36
+ //]]>
37
+ </script>
app/design/adminhtml/default/default/template/cms/browser/content.phtml ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * Wysiwyg Images content template
30
+ *
31
+ * @see Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Content
32
+ */
33
+ ?>
34
+ <?php echo $this->getChildHtml('wysiwyg_images.js') ?>
35
+
36
+ <div class="content-header skip-header" id="content_header">
37
+ <table cellspacing="0">
38
+ <tr>
39
+ <td><h3 id="content_header_text"><?php echo $this->getHeaderText() ?></h3></td>
40
+ <td class="form-buttons">
41
+ <?php echo $this->getButtonsHtml() ?>
42
+ </td>
43
+ </tr>
44
+ </table>
45
+ </div>
46
+
47
+ <div id="contents-uploader"><?php echo $this->getChildHtml('wysiwyg_images.uploader') ?></div>
48
+ <div id="contents"></div>
49
+ <div id="contents-newfolder" class="no-display"><?php echo $this->getChildHtml('wysiwyg_images.newfolder') ?></div>
app/design/adminhtml/default/default/template/cms/browser/content/files.phtml ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * Directory contents template for Wysiwyg Images
30
+ *
31
+ * @see Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Content_Files
32
+ */
33
+ ?>
34
+ <?php
35
+ $_width = $this->getImagesWidth();
36
+ $_height = $this->getImagesHeight();
37
+ ?>
38
+ <?php if ($this->getFilesCount() > 0): ?>
39
+ <?php foreach ($this->getFiles() as $file): ?>
40
+ <div class="filecnt" id="<?php echo $this->getFileId($file) ?>">
41
+ <p class="nm" style="height:<?php echo $_height ?>px;width:<?php echo $_width ?>px;">
42
+ <?php if($this->getFileThumbUrl($file)):?>
43
+ <img src="<?php echo $this->getFileThumbUrl($file) ?>" alt="<?php echo $this->getFileName($file) ?>"/>
44
+ <?php endif; ?>
45
+ </p>
46
+ <?php if($this->getFileWidth($file)): ?>
47
+ <small><?php echo $this->getFileWidth($file) ?>x<?php echo $this->getFileHeight($file) ?> <?php echo $this->helper('cms')->__('px.') ?></small><br/>
48
+ <?php endif; ?>
49
+ <small><?php echo $this->getFileShortName($file); ?></small>
50
+ </div>
51
+ <?php endforeach; ?>
52
+ <?php else: ?>
53
+ <?php echo $this->helper('cms')->__('No files found') ?>
54
+ <?php endif; ?>
app/design/adminhtml/default/default/template/cms/browser/content/newfolder.phtml ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * New directory template for Wysiwyg Images
30
+ *
31
+ * @see Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Content_Newfolder
32
+ */
33
+ ?>
app/design/adminhtml/default/default/template/cms/browser/content/uploader.phtml ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type="text/javascript">
28
+ //<![CDATA[
29
+ document.on('uploader:success', MediabrowserInstance.handleUploadComplete.bind(MediabrowserInstance));
30
+ //]]>
31
+ </script>
app/design/adminhtml/default/default/template/cms/browser/js.phtml ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * Directories tree template
30
+ *
31
+ * @see Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Content
32
+ */
33
+ ?>
34
+ <script type="text/javascript">
35
+ //<![CDATA[
36
+ MediabrowserInstance = new Mediabrowser(<?php echo $this->getFilebrowserSetupObject() ?>);
37
+ MediabrowserInstance.storeId = '<?php echo $this->getStoreId() ?>';
38
+ //]]>
39
+ </script>
app/design/adminhtml/default/default/template/cms/browser/tree.phtml ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * Directories tree template
30
+ *
31
+ * @see Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Tree
32
+ */
33
+ ?>
34
+ <div class="categories-side-col">
35
+ <div class="tree-actions">
36
+ <a href="#" id="tree_action_collapse"><?php echo $this->helper('cms')->__('Collapse All'); ?></a>
37
+ <span class="separator">|</span>
38
+ <a href="#" id="tree_action_expand"><?php echo $this->helper('cms')->__('Expand All'); ?></a>
39
+ </div>
40
+ </div>
41
+
42
+ <div id="tree" style="width:100%; overflow:auto;"></div>
43
+
44
+ <script type="text/javascript">
45
+ Ext.onReady(function(){
46
+ var Tree = Ext.tree;
47
+ var tree = new Tree.TreePanel('tree', {
48
+ animate:true,
49
+ loader: new Tree.TreeLoader({
50
+ dataUrl:'<?php echo $this->getTreeLoaderUrl() ?>'
51
+ }),
52
+ enableDD:false,
53
+ containerScroll: true
54
+ });
55
+
56
+ // set the root node
57
+ var root = new Tree.AsyncTreeNode({
58
+ text: '<?php echo Mage::helper('core')->jsQuoteEscape($this->getRootNodeName()) ?>',
59
+ draggable:false,
60
+ id:'root'
61
+ });
62
+ tree.setRootNode(root);
63
+
64
+ // render the tree
65
+ tree.render();
66
+ root.expand();
67
+
68
+ Event.observe($('tree_action_collapse'), 'click', function(){
69
+ tree.collapseAll();
70
+ });
71
+
72
+ Event.observe($('tree_action_expand'), 'click', function(){
73
+ tree.expandAll();
74
+ });
75
+
76
+ MediabrowserInstance.setTree(tree);
77
+ tree.addListener('click', MediabrowserInstance.selectFolder.bind(MediabrowserInstance));
78
+ tree.expandPath('<?php echo $this->getTreeCurrentPath() ?>','', function(success, node) {
79
+ MediabrowserInstance.selectFolder(node);
80
+ });
81
+ });
82
+ </script>
app/design/adminhtml/default/default/template/cms/page/edit/form/renderer/content.phtml ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php $_element = $this->getElement() ?>
28
+ <?php if (!$_element->getNoDisplay()): ?>
29
+ <tr>
30
+ <td colspan="3" class="value"><?php echo trim($_element->getElementHtml()) ?></td>
31
+ </tr>
32
+ <?php endif; ?>
app/design/adminhtml/default/default/template/coming.phtml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="content-header">
28
+ <h3><?php echo Mage::helper('adminhtml')->__('Sorry, this feature is coming soon...') ?></h3>
29
+ </div>
30
+ <p><?php echo Mage::helper('adminhtml')->__('We\'re in our typing table, coding away more features for Magento. Thank you for your patience.') ?></p>
app/design/adminhtml/default/default/template/compiler/process.phtml ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="content-header">
28
+ <table cellspacing="0">
29
+ <tr>
30
+ <td style="width:50%;"><h3 class="icon-head head-compilation"><?php echo $this->getHeader() ?></h3></td>
31
+ <td class="form-buttons">
32
+ <?php if ($this->canRunCompilation()): ?>
33
+ <?php echo $this->getChangeStatusButtonHtml() ?>
34
+ <?php echo $this->getRunButtonHtml() ?>
35
+ <?php endif;?>
36
+ </td>
37
+ </tr>
38
+ </table>
39
+ </div>
40
+ <div class="entry-edit">
41
+ <form name="compilation_form" id="compilation_form" method="post" action="<?php echo $this->getRunFormAction(); ?>">
42
+ <?php echo $this->getBlockHtml('formkey')?>
43
+ <?php if (!$this->canRunCompilation()): ?>
44
+ <div id="messages"><?php echo $this->getMessagesBlock()->toHtml() ?></div>
45
+ <?php endif;?>
46
+
47
+ <div class="entry-edit-head">
48
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('compiler')->__('Compilation State') ?></h4>
49
+ </div>
50
+ <fieldset>
51
+ <legend><?php echo Mage::helper('compiler')->__('Compilation State') ?></legend>
52
+ <table cellspacing="0" class="form-list" style="width:100%">
53
+ <tr>
54
+ <td class="label"><label ><?php echo Mage::helper('compiler')->__('Compiler Status')?></label></td>
55
+ <td class="value">
56
+ <strong><?php echo $this->getCompilerStatus()?></strong>
57
+ </td>
58
+ </tr>
59
+ <tr>
60
+ <td class="label"><label ><?php echo Mage::helper('compiler')->__('Compilation State')?></label></td>
61
+ <td class="value">
62
+ <strong><?php echo $this->getCompilerState()?></strong>
63
+ </td>
64
+ </tr>
65
+ <tr>
66
+ <td class="label"><label ><?php echo Mage::helper('compiler')->__('Collected Files Count')?></label></td>
67
+ <td class="value">
68
+ <strong><?php echo $this->getCollectedFilesCount() ?></strong>
69
+ </td>
70
+ </tr>
71
+ <tr>
72
+ <td class="label"><label ><?php echo Mage::helper('compiler')->__('Compiled Scopes Count')?></label></td>
73
+ <td class="value">
74
+ <strong><?php echo $this->getCompiledFilesCount() ?></strong>
75
+ </td>
76
+ </tr>
77
+ <tr>
78
+ <td class="label"><label ><?php echo Mage::helper('compiler')->__('Scopes Compilation Settings')?></label></td>
79
+ <td class="value">
80
+ <?php foreach($this->getCompilationList() as $_frontName => $_classNames) : ?>
81
+ <p>
82
+ <label><strong><?php echo $_frontName ?></strong></label><br />
83
+ <textarea style="width:70%" readonly="readonly" cols="5" rows="3"><?php echo $this->arrToSting($_classNames)?></textarea>
84
+ </p>
85
+ <?php endforeach; ?>
86
+ </td>
87
+ </tr>
88
+ </table>
89
+ </fieldset>
90
+ </form>
91
+ </div>
92
+ <script type="text/javascript">
93
+ compilationForm = new varienForm('compilation_form');
94
+ </script>
app/design/adminhtml/default/default/template/connect/extension/custom/authors.phtml ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type="text/javascript">
28
+ var id = 0;
29
+ var authorTemplate =
30
+ '<tr>'+
31
+ '<td style="margin-bottom:5px;">'+
32
+ '<input class="input-text required-entry" style="width:160px;" name="authors[name][]" id="authors_name_{{id}}" value="{{name}}"/>'+
33
+ '</td>'+
34
+ '<td style="margin-bottom:5px;">'+
35
+ '<input class="input-text required-entry" style="width:140px;" name="authors[user][]" id="authors_user_{{id}}" value="{{user}}"/>'+
36
+ '</td>'+
37
+ '<td style="margin-bottom:5px;">'+
38
+ '<input class="input-text required-entry validate-email" style="width:160px;" name="authors[email][]" id="authors_email_{{id}}" value="{{email}}"/>'+
39
+ '</td>'+
40
+ '<td style="margin-bottom:5px;">'+
41
+ '<?php echo $this->jsQuoteEscape($this->getRemoveRowButtonHtml('tr')) ?>'+
42
+ '</td>'+
43
+ '</tr>';
44
+
45
+ function addAuthor(data)
46
+ {
47
+ if (data == undefined) {
48
+ data = {};
49
+ }
50
+ data.id = id++;
51
+
52
+ var template = new Template(authorTemplate, /(^|.|\r|\n)({{(\w+)}})/);
53
+ Element.insert($('authors_container'), {bottom: template.evaluate(data)});
54
+ }
55
+ </script>
56
+
57
+ <div class="entry-edit">
58
+ <?php echo $this->getFormHtml() ?>
59
+ <div class="entry-edit-head">
60
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__("Authors") ?></h4>
61
+ </div>
62
+ <fieldset id="authors_fieldset" class="grid">
63
+ <legend><?php echo $this->__("Authors") ?></legend>
64
+ <table class="data" cellspacing="0">
65
+ <thead>
66
+ <tr class="headings">
67
+ <th><?php echo $this->__("Name") ?> <span class="required">*</span></th>
68
+ <th><?php echo $this->__("User") ?> <span class="required">*</span></th>
69
+ <th><?php echo $this->__("Email") ?> <span class="required">*</span></th>
70
+ <th><?php echo $this->__("Remove") ?></th>
71
+ </tr>
72
+ </thead>
73
+ <tbody id="authors_container">
74
+ <script type="text/javascript">
75
+ <?php if (count($this->getAuthors())): ?>
76
+ <?php foreach ($this->getAuthors() as $author): ?>
77
+ addAuthor(<?php echo $author ?>);
78
+ <?php endforeach ?>
79
+ <?php else: ?>
80
+ addAuthor();
81
+ <?php endif;?>
82
+ </script>
83
+ </tbody>
84
+ <tfoot>
85
+ <tr>
86
+ <td class="a-right" colspan="4"><?php echo $this->getAddAuthorButtonHtml() ?></td>
87
+ </tr>
88
+ </tfoot>
89
+ </table>
90
+ </fieldset>
91
+ </div>
app/design/adminhtml/default/default/template/connect/extension/custom/contents.phtml ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <div class="entry-edit">
29
+ <?php echo $this->getFormHtml() ?>
30
+
31
+ <div class="entry-edit-head">
32
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__("Contents") ?></h4>
33
+ </div>
34
+ <fieldset id="contents_fieldset" class="grid">
35
+ <legend><?php echo $this->__("Contents") ?></legend>
36
+ <table class="data" cellspacing="0">
37
+ <thead>
38
+ <tr class="headings">
39
+ <th><?php echo $this->__("Target") ?></th>
40
+ <th><?php echo $this->__("Path") ?></th>
41
+ <th><?php echo $this->__("Type") ?></th>
42
+ <th><?php echo $this->__("Include") ?></th>
43
+ <th><?php echo $this->__("Ignore") ?></th>
44
+ <th><?php echo $this->__("Action") ?></th>
45
+ </tr>
46
+ <tr id="contents_template" style="display:none">
47
+ <?php function showContentsTemplate($self, $_i=0) { ?>
48
+ <td style="margin-bottom:5px;">
49
+ <select name="contents[target][]" style="width:170px">
50
+ <optgroup label="Magento">
51
+ <?php foreach ($self->getMageTargets() as $_value=>$_label): ?>
52
+ <option value="<?php echo $_value ?>" <?php echo $self->getSelected('contents/target/'.$_i, $_value) ?>><?php echo $_label ?></option>
53
+ <?php endforeach ?>
54
+ </optgroup>
55
+ </select>
56
+ </td><td style="margin-bottom:5px;">
57
+ <input class="input-text" style="width:150px" name="contents[path][]" value="<?php echo $self->getValue('contents/path/'.$_i) ?>"/>
58
+ </td><td style="margin-bottom:5px;">
59
+ <select name="contents[type][]" style="width:100px">
60
+ <option value="file" <?php echo $self->getSelected('contents/type/'.$_i, 'file') ?>><?php echo Mage::helper('adminhtml')->__("File") ?></option>
61
+ <option value="dir" <?php echo $self->getSelected('contents/type/'.$_i, 'dir') ?>><?php echo Mage::helper('adminhtml')->__("Recursive Dir") ?></option>
62
+ </select>
63
+ </td><td style="margin-bottom:5px;">
64
+ <input class="input-text" style="width:100px" name="contents[include][]" value="<?php echo $self->getValue('contents/include/'.$_i) ?>"/>
65
+ </td><td style="margin-bottom:5px;">
66
+ <input class="input-text" style="width:100px" name="contents[ignore][]" value="<?php echo $self->getValue('contents/ignore/'.$_i) ?>"/>
67
+ </td><td style="margin-bottom:5px;">
68
+ <?php echo $self->getRemoveRowButtonHtml('tr') ?>
69
+ </td>
70
+ <?php } ?>
71
+ <?php showContentsTemplate($this) ?>
72
+ </tr>
73
+ </thead>
74
+ <tbody id="contents_container">
75
+ <?php if ($this->getData('contents/target')): ?>
76
+ <?php foreach ($this->getData('contents/target') as $_i=>$_dbField): ?>
77
+ <?php if (0===$_i) continue; ?>
78
+ <tr>
79
+ <?php showContentsTemplate($this, $_i) ?>
80
+ </tr>
81
+ <?php endforeach ?>
82
+ <?php endif ?>
83
+ </tbody>
84
+ <tfoot>
85
+ <tr>
86
+ <td class="a-right" colspan="6"><?php echo $this->getAddRowButtonHtml('contents_container', 'contents_template', $this->__('Add Contents Path')) ?></td>
87
+ </tr>
88
+ </tfoot>
89
+ </table>
90
+ </fieldset>
91
+ </div>
app/design/adminhtml/default/default/template/connect/extension/custom/depends.phtml ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="entry-edit">
28
+ <?php echo $this->getFormHtml() ?>
29
+
30
+ <div class="entry-edit-head">
31
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__("Packages") ?></h4>
32
+ </div>
33
+ <fieldset id="depends_packages_fieldset" class="grid">
34
+ <legend><?php echo $this->__("Packages") ?></legend>
35
+ <table class="data" cellspacing="0">
36
+ <thead>
37
+ <tr class="headings">
38
+ <th><?php echo $this->__("Package") ?></th>
39
+ <th><?php echo $this->__("Channel") ?></th>
40
+ <th><?php echo $this->__("Min") ?></th>
41
+ <th><?php echo $this->__("Max") ?></th>
42
+ <th><?php echo $this->__("Files") ?></th>
43
+ <th><?php echo $this->__("Action") ?></th>
44
+ </tr>
45
+ <tr id="depends_packages_template" style="display:none">
46
+ <?php function showDependsPackageTemplate($self, $_i=0) {
47
+ $filesClass = "files";
48
+ ?>
49
+
50
+
51
+ <td style="margin-bottom:5px;">
52
+ <input class="input-text" style="width:200px;" name="depends[package][name][]" value="<?php echo $self->getValue('depends/package/name/'.$_i) ?>"/>
53
+ </td><td style="margin-bottom:5px;">
54
+ <input class="input-text" style="width:200px;" name="depends[package][channel][]" value="<?php echo $self->getValue('depends/package/channel/'.$_i) ?>"/>
55
+ </td><td style="margin-bottom:5px;">
56
+ <input class="input-text" style="width:50px;" name="depends[package][min][]" value="<?php echo $self->getValue('depends/package/min/'.$_i) ?>"/>
57
+ </td><td style="margin-bottom:5px;">
58
+ <input class="input-text" style="width:50px;" name="depends[package][max][]" value="<?php echo $self->getValue('depends/package/max/'.$_i) ?>"/>
59
+ </td><td style="margin-bottom:5px;">
60
+ <textarea class="<?php echo $filesClass ?>" style="width:300px;display:none" name="depends[package][files][]"><?php echo $self->getValue('depends/package/files/'.$_i)?> </textarea>
61
+ <?php echo $self->getAddFileDepsRowButtonHtml("tr", $filesClass) ?>
62
+ </td><td style="margin-bottom:5px;">
63
+ <?php echo $self->getRemoveRowButtonHtml('tr') ?>
64
+ </td>
65
+ <?php } ?>
66
+ <?php showDependsPackageTemplate($this) ?>
67
+ </tr>
68
+ </thead>
69
+ <tbody id="depends_packages_container">
70
+ <?php if ($this->getData('depends/package/name')): ?>
71
+ <?php foreach ($this->getData('depends/package/name') as $_i=>$_dbField): ?>
72
+ <?php if (0===$_i) continue; ?>
73
+ <tr>
74
+ <?php showDependsPackageTemplate($this, $_i) ?>
75
+ </tr>
76
+ <?php endforeach ?>
77
+ <?php endif ?>
78
+ </tbody>
79
+ <tfoot>
80
+ <tr>
81
+ <td class="a-right" colspan="8"><?php echo $this->getAddRowButtonHtml('depends_packages_container', 'depends_packages_template', $this->__('Add Package dependency')) ?></td>
82
+ </tr>
83
+ </tfoot>
84
+ </table>
85
+ </fieldset>
86
+
87
+ <div class="entry-edit-head">
88
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__("Extensions") ?></h4>
89
+ </div>
90
+ <fieldset id="depends_extensions_fieldset" class="grid">
91
+ <legend><?php echo $this->__("Extensions") ?></legend>
92
+ <table class="data" cellspacing="0">
93
+ <thead>
94
+ <tr class="headings">
95
+ <th><?php echo $this->__("Extension") ?></th>
96
+ <th><?php echo $this->__("Min") ?></th>
97
+ <th><?php echo $this->__("Max") ?></th>
98
+ <th><?php echo $this->__("Action") ?></th>
99
+ </tr>
100
+ <tr id="depends_extensions_template" style="display:none">
101
+ <?php function showDependsExtensionsTemplate($self, $_i=0) { ?>
102
+ <td style="margin-bottom:5px;">
103
+ <select name="depends[extension][name][]" style="width:100px">
104
+ <?php foreach ($self->getExtensions() as $_value=>$_label): ?>
105
+ <option value="<?php echo $_value ?>" <?php echo $self->getSelected('depends/extension/name/'.$_i, $_value) ?>><?php echo $_label ?></option>
106
+ <?php endforeach ?>
107
+ </select>
108
+ </td><td style="margin-bottom:5px;">
109
+ <input class="input-text" style="width:50px;" name="depends[extension][min][]" value="<?php echo $self->getValue('depends/extension/min/'.$_i) ?>"/>
110
+ </td><td style="margin-bottom:5px;">
111
+ <input class="input-text" style="width:50px;" name="depends[extension][max][]" value="<?php echo $self->getValue('depends/extension/max/'.$_i) ?>"/>
112
+ </td><td style="margin-bottom:5px;">
113
+ <?php echo $self->getRemoveRowButtonHtml('tr') ?>
114
+ </td>
115
+ <?php } ?>
116
+ <?php showDependsExtensionsTemplate($this) ?>
117
+ </tr>
118
+ </thead>
119
+ <tbody id="depends_extensions_container">
120
+ <?php if ($this->getData('depends/extension/name')): ?>
121
+ <?php foreach ($this->getData('depends/extension/name') as $_i=>$_dbField): ?>
122
+ <?php if (0===$_i) continue; ?>
123
+ <tr>
124
+ <?php showDependsExtensionsTemplate($this, $_i) ?>
125
+ </tr>
126
+ <?php endforeach ?>
127
+ <?php endif ?>
128
+ </tbody>
129
+ <tfoot>
130
+ <tr>
131
+ <td class="a-right" colspan="7"><?php echo $this->getAddRowButtonHtml('depends_extensions_container', 'depends_extensions_template', $this->__('Add PHP Extension dependency')) ?></td>
132
+ </tr>
133
+ </tfoot>
134
+ </table>
135
+ </fieldset>
136
+
137
+ </div>
app/design/adminhtml/default/default/template/connect/extension/custom/load.phtml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <ul class="messages">
29
+ <li class="notice-msg">
30
+ <ul>
31
+ <li><?php echo Mage::helper('catalog')->__("Please be careful as once you click on the row it will load package data form the selected file and all unsaved form data will be lost.") ?></li>
32
+ </ul>
33
+ </li>
34
+ </ul>
35
+ <?php echo $this->getPackageGridHtml() ?>
app/design/adminhtml/default/default/template/connect/extension/custom/package.phtml ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <script type="text/javascript">
29
+ function addRow(container, template)
30
+ {
31
+ Element.insert($(container), {bottom: '<tr>' + $(template).innerHTML + '</tr>'});
32
+ }
33
+
34
+ function removeRow(button, selector)
35
+ {
36
+ Element.remove($(button).up(selector));
37
+ }
38
+
39
+ function showHideFiles(button, selector, filesClass)
40
+ {
41
+ $(button).up(selector).select('[class="'+filesClass+'"]').map(Element.toggle);
42
+ }
43
+
44
+
45
+ function loadPackage()
46
+ {
47
+ var packageName = prompt('Please enter package name');
48
+ if (!packageName) return false;
49
+ var url = '<?php echo $this->getUrl('*/*/load') ?>';
50
+ location.href = encodeURI(url + ((url.indexOf('?') == -1) ? '?':'&') + 'id=' + packageName);
51
+ }
52
+
53
+ function saveAsPackage()
54
+ {
55
+ _defaultPackageName = '';
56
+ if ($('_packagefile_name')) {
57
+ _defaultPackageName = $('_packagefile_name').getValue();
58
+ } else if ($('_packagename')) {
59
+ _defaultPackageName = $('_packagename').getValue();
60
+ }
61
+ var package = prompt('Please enter package file name', _defaultPackageName);
62
+ if (!package) return false;
63
+ if ($('_packagefile_name')) {
64
+ $('_packagefile_name').value = package;
65
+ }
66
+ return editForm.submit();
67
+ }
68
+
69
+ function createPackage()
70
+ {
71
+ $('_create').value = 1;
72
+ editForm.submit();
73
+ }
74
+
75
+ function resetPackage()
76
+ {
77
+ location.href = '<?php echo $this->getUrl('*/*/reset') ?>';
78
+ }
79
+ </script>
80
+
81
+ <style type="text/css">
82
+ .table-editable { border:solid 1px #CCC; background:#FAFAFA; padding:5px; margin-bottom:5px; }
83
+ .table-editable th { border-bottom:solid 1px #CCC; text-align:center; }
84
+ .table-editable th, .table-editable td { padding:1px 3px; vertical-align:middle; }
85
+ .table-editable select { height:19px; }
86
+ </style>
87
+
88
+ <div class="entry-edit">
89
+ <input type="hidden" id="_create" name="_create" />
90
+ <?php echo $this->getFormHtml() ?>
91
+ </div>
app/design/adminhtml/default/default/template/connect/extension/custom/release.phtml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="entry-edit">
28
+ <?php echo $this->getFormHtml() ?>
29
+ </div>
app/design/adminhtml/default/default/template/currencysymbol/grid.phtml ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * @var $this Mage_Currencysymbol_Block_Adminhtml_System_Currencysymbol
30
+ */
31
+ ?>
32
+ <div class="content-header">
33
+ <table cellspacing="0">
34
+ <tr>
35
+ <td style="width:50%;"><h3 class="icon-head head-system-currency"><?php echo $this->getHeader() ?></h3></td>
36
+ <td class="form-buttons">
37
+ <?php
38
+ echo $this->getSaveButtonHtml();
39
+ ?>
40
+ </td>
41
+ </tr>
42
+ </table>
43
+ </div>
44
+
45
+ <?php $this->getCurrencySymbolsData();?>
46
+
47
+ <form id="currency_symbols_form" action="<?php echo $this->getFormActionUrl() ?>" method="post">
48
+ <input name="form_key" type="hidden" value="<?php echo $this->getFormKey() ?>" />
49
+
50
+ <div class="entry-edit">
51
+ <div class="fieldset fieldset-wide">
52
+ <div class="grid">
53
+ <div class="hor-scroll">
54
+ <table cellspacing="0" class="data table-cat-img-sizes">
55
+ <colgroup>
56
+ <col width="15%"/>
57
+ <col />
58
+ </colgroup>
59
+ <thead>
60
+ <tr class="headings">
61
+ <th><span class="nobr"><span class="not-sort"><?php echo $this->__('Currency'); ?></span></span></th>
62
+ <th><span class="nobr"><span class="not-sort"><?php echo $this->__('Symbol'); ?><span class="required"><em>*</em></span></span></span></th>
63
+ </tr>
64
+ </thead>
65
+ <tbody>
66
+ <?php foreach($this->getCurrencySymbolsData() as $code => $data): ?>
67
+ <tr>
68
+ <td class="label">
69
+ <label for="custom_currency_symbol<?php echo $code; ?>"><?php echo $code; ?> (<?php echo $data['displayName']; ?>)</label>
70
+ </td>
71
+ <td class="value">
72
+ <input id="custom_currency_symbol<?php echo $code; ?>" class=" required-entry input-text" type="text" value="<?php echo Mage::helper('core')->quoteEscape($data['displaySymbol']); ?>"<?php echo $data['inherited'] ? ' disabled="disabled"' : '';?> name="custom_currency_symbol[<?php echo $code; ?>]">
73
+ &nbsp; <input id="custom_currency_symbol_inherit<?php echo $code; ?>" class="checkbox config-inherit" type="checkbox" onclick="toggleUseDefault(<?php echo '\'' . $code . '\',\'' . Mage::helper('core')->quoteEscape($data['parentSymbol'], true) . '\''; ?>)"<?php echo $data['inherited'] ? ' checked="checked"' : ''; ?> value="1" name="inherit_custom_currency_symbol[<?php echo $code; ?>]">
74
+ <label class="inherit" title="" for="custom_currency_symbol_inherit<?php echo $code; ?>"><?php echo $this->getInheritText(); ?></label>
75
+ </td>
76
+ </tr>
77
+ <?php endforeach; ?>
78
+ </tbody>
79
+ </table>
80
+ </div>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ </form>
85
+ <script type="text/javascript">
86
+ var currencySymbolsForm = new varienForm('currency_symbols_form');
87
+
88
+ function toggleUseDefault(code, value)
89
+ {
90
+ checkbox = $('custom_currency_symbol_inherit'+code);
91
+ input = $('custom_currency_symbol'+code);
92
+ if (checkbox.checked) {
93
+ input.value = value;
94
+ input.disabled = true;
95
+ } else {
96
+ input.disabled = false;
97
+ }
98
+ }
99
+ </script>
100
+
app/design/adminhtml/default/default/template/customer/edit/js.phtml ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type="text/javascript">
28
+ function saveAndContinueEdit(urlTemplate) {
29
+ var template = new Template(urlTemplate, /(^|.|\r|\n)({{(\w+)}})/);
30
+ var url = template.evaluate({tab_id:customer_info_tabsJsTabs.activeTab.id});
31
+ editForm.submit(url);
32
+ }
33
+ </script>
app/design/adminhtml/default/default/template/customer/edit/tab/account/form/renderer/group.phtml ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ $_element = $this->getElement();
29
+ $_note = $_element->getNote();
30
+ $_trId = $_element->getHtmlContainerId();
31
+ $_class = $_element->getFieldsetHtmlClass();
32
+ ?>
33
+ <?php if (!$_element->getNoDisplay()): ?>
34
+ <tr<?php if ($_trId): ?> id="<?php echo $_trId; ?>"<?php endif; ?>>
35
+ <?php if ($_element->getType() == 'hidden'): ?>
36
+ <td colspan="2" class="hidden"><?php echo trim($_element->getElementHtml()); ?></td>
37
+ <?php else: ?>
38
+ <td class="label<?php echo $_class ? " {$_class}-label" : ''; ?>"><?php echo trim($_element->getLabelHtml()); ?></td>
39
+ <td class="<?php echo $_element->hasValueClass() ? $_element->getValueClass() : 'value'; ?><?php echo $_class ? " {$_class}-value" : ''; ?>">
40
+ <?php echo trim($_element->getElementHtml()); ?>
41
+ <?php if ($this->getDisableAutoGroupChangeAttribute()): ?>
42
+ <br/>
43
+ <input id="<?php echo $this->escapeHtml($this->getDisableAutoGroupChangeCheckboxElementId()); ?>" name="<?php echo $this->escapeHtml($this->getDisableAutoGroupChangeCheckboxElementName()); ?>" type="checkbox"<?php if ($this->getDisableAutoGroupChangeCheckboxState() == 'checked') :?> checked="checked"<?php endif; ?> value="1"/>
44
+ <label for="<?php echo $this->escapeHtml($this->getDisableAutoGroupChangeCheckboxElementId()); ?>"><?php echo $this->escapeHtml($this->getDisableAutoGroupChangeCheckboxLabel()); ?></label>
45
+ <?php endif; ?>
46
+ <?php if ($_note): ?>
47
+ <p class="note<?php echo $_class ? " {$_class}-note" : ''; ?>" id="note_<?php echo $_element->getId(); ?>"><span><?php echo $_note; ?></span></p>
48
+ <?php endif ?>
49
+ </td>
50
+ <?php endif; ?>
51
+ </tr>
52
+ <?php endif; ?>
app/design/adminhtml/default/default/template/customer/edit/tab/view/grid/item.phtml ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php /* @var $this Mage_Adminhtml_Block_Customer_Edit_Tab_View_Grid_Renderer_Item */ ?>
28
+ <?php
29
+ $product = $this->getProduct();
30
+ $options = $this->getOptionList();
31
+ ?>
32
+
33
+ <?php if (!$options): ?>
34
+ <?php echo $this->escapeHtml($product->getName())?>
35
+ <?php else: ?>
36
+ <div class="bundle-product-options">
37
+ <strong><?php echo $this->escapeHtml($product->getName())?></strong>
38
+ <dl>
39
+ <?php foreach ($options as $option) : ?>
40
+ <dt><?php echo $this->escapeHtml($option['label']) ?></dt>
41
+ <?php $formatedOptionValue = $this->getFormattedOptionValue($option) ?>
42
+ <dd><?php echo $formatedOptionValue['value'] ?></dd>
43
+ <?php endforeach; ?>
44
+ </dl>
45
+ </div>
46
+ <?php endif; ?>
app/design/adminhtml/default/default/template/customer/online.phtml ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="content-header">
28
+ <table cellspacing="0">
29
+ <tr>
30
+ <td><h3 class="icon-head head-online-visitors"><?php echo Mage::helper('customer')->__('Online Customers') ?></h3></td>
31
+ </tr>
32
+ </table>
33
+ </div>
34
+ <?php echo $this->getChildHtml('grid') ?>
app/design/adminhtml/default/default/template/customer/sales/order/create/address/form/renderer/vat.phtml ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ $_element = $this->getElement();
29
+ $_note = $_element->getNote();
30
+ $_trId = $_element->getHtmlContainerId();
31
+ $_class = $_element->getFieldsetHtmlClass();
32
+ $_validateButton = $this->getValidateButton();
33
+ ?>
34
+ <?php if (!$_element->getNoDisplay()): ?>
35
+ <tr<?php if($_trId): ?> id="<?php echo $_trId; ?>"<?php endif; ?>>
36
+ <?php if ($_element->getType()=='hidden'): ?>
37
+ <td colspan="2" class="hidden"><?php echo trim($_element->getElementHtml()); ?></td>
38
+ <?php else: ?>
39
+ <td class="label<?php echo $_class ? " {$_class}-label" : ''?>"><?php echo trim($_element->getLabelHtml()); ?></td>
40
+ <td class="<?php echo $_element->hasValueClass() ? $_element->getValueClass() : 'value'; ?><?php echo $_class ? " {$_class}-value" : ''; ?>">
41
+ <?php echo trim($_element->getElementHtml()); ?>
42
+ <?php if ($_note): ?>
43
+ <p class="note<?php echo $_class ? " {$_class}-note" : ''; ?>" id="note_<?php echo $_element->getId(); ?>"><span><?php echo $_note; ?></span></p>
44
+ <?php endif; ?>
45
+ <div class="validate-vat">
46
+ <?php echo $_validateButton->toHtml(); ?>
47
+ </div>
48
+ </td>
49
+ <?php endif; ?>
50
+
51
+ </tr>
52
+ <?php endif; ?>
app/design/adminhtml/default/default/template/customer/system/config/validatevat.phtml ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * @see Mage_Adminhtml_Block_Customer_System_Config_Validatevat
30
+ */
31
+ ?>
32
+ <script type="text/javascript">
33
+ //<![CDATA[
34
+ function validateVat() {
35
+ var elem = $('<?php echo $this->getHtmlId() ?>');
36
+
37
+ params = {
38
+ country: $('general_store_information_merchant_country').value,
39
+ vat: $('general_store_information_merchant_vat_number').value
40
+ };
41
+
42
+ new Ajax.Request('<?php echo $this->getAjaxUrl() ?>', {
43
+ parameters: params,
44
+ onSuccess: function(response) {
45
+ result = '<?php echo Mage::helper('core')->jsQuoteEscape($this->__('VAT Number is Invalid')) ?>';
46
+ try {
47
+ response = response.responseText;
48
+ if (response == 1) {
49
+ result = '<?php echo Mage::helper('core')->jsQuoteEscape($this->__('VAT Number is Valid')) ?>';
50
+ elem.removeClassName('fail').addClassName('success')
51
+ } else {
52
+ elem.removeClassName('success').addClassName('fail')
53
+ }
54
+ } catch (e) {
55
+ elem.removeClassName('success').addClassName('fail')
56
+ }
57
+ $('validation_result').update(result);
58
+ }
59
+ });
60
+ }
61
+ //]]>
62
+ </script>
63
+ <button onclick="javascript:validateVat(); return false;" class="scalable" type="button" id="<?php echo $this->getHtmlId() ?>">
64
+ <span id="validation_result"><?php echo $this->escapeHtml($this->getButtonLabel()) ?></span>
65
+ </button>
app/design/adminhtml/default/default/template/customer/tab/addresses.phtml ADDED
@@ -0,0 +1,640 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <!-- Addresses list -->
28
+ <table cellspacing="0" class="form-edit">
29
+ <tr>
30
+ <td class="address-list">
31
+ <div class="entry-edit-head">
32
+ <h4 class="icon-head head-customer-address-list"><?php echo Mage::helper('customer')->__('Customer Addresses') ?></h4>
33
+ </div>
34
+ <div class="sub-btn-set"><?php echo $this->getAddNewButtonHtml() ?></div>
35
+ <ul id="address_list">
36
+ <?php $_iterator = 0; ?>
37
+ <?php if(count($addressCollection)): ?>
38
+ <?php foreach ($addressCollection as $_address): ?>
39
+ <li id="address_item_<?php echo $_address->getId() ?>">
40
+ <?php if (!$this->isReadonly()): ?>
41
+ <a href="#" class="btn-remove-address">
42
+ <img src="<?php echo $this->getSkinUrl('images/cancel_icon.gif') ?>" alt="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('customer')->__('Remove address')) ?>" id="delete_button<?php echo ++$_iterator ?>" />
43
+ </a>
44
+ <a href="#" id="select_button_<?php echo $_address->getId() ?>" class="select_button btn-edit-address">
45
+ <img src="<?php echo $this->getSkinUrl('images/edit_icon.gif') ?>" alt="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('customer')->__('Edit address')) ?>"/>
46
+ </a>
47
+ <?php endif;?>
48
+ <address>
49
+ <?php echo $_address->format('html') ?>
50
+ </address>
51
+ <div class="address-type">
52
+ <span class="address-type-line">
53
+ <input type="radio" <?php if ($this->isReadonly()):?> disabled="disabled"<?php endif;?> value="<?php echo $_address->getId() ?>" id="address_item_billing<?php echo $_address->getId() ?>" name="account[default_billing]" title="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('customer')->__('Set as Default Billing Address')) ?>"<?php if($_address->getId()==$customer->getDefaultBilling()): ?> checked="checked"<?php endif; ?>/>
54
+ &nbsp;<label for="address_item_billing<?php echo $_address->getId() ?>"><?php echo Mage::helper('customer')->__('Default Billing Address') ?></label>
55
+ </span>
56
+ <span class="address-type-line">
57
+ <input type="radio" <?php if ($this->isReadonly()):?> disabled="disabled"<?php endif;?> value="<?php echo $_address->getId() ?>" id="address_item_shipping<?php echo $_address->getId() ?>" name="account[default_shipping]" title="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('customer')->__('Set as Default Shipping Address')) ?>"<?php if($_address->getId()==$customer->getDefaultShipping()): ?> checked="checked"<?php endif; ?>/>
58
+ &nbsp;<label for="address_item_shipping<?php echo $_address->getId() ?>"><?php echo Mage::helper('customer')->__('Default Shipping Address') ?></label>
59
+ </span>
60
+ </div>
61
+ </li>
62
+ <?php endforeach; ?>
63
+ <?php endif; ?>
64
+ </ul>
65
+ </td>
66
+ <td>
67
+ <!-- Template for adding address item to list -->
68
+ <?php $_templatePrefix = $this->getTemplatePrefix() ?>
69
+ <div id="address_item_template" class="no-display template">
70
+ <?php if (!$this->isReadonly()): ?>
71
+ <a href="#" class="btn-remove-address">
72
+ <img src="<?php echo $this->getSkinUrl('images/cancel_icon.gif') ?>" alt="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('customer')->__('Remove address')) ?>" id="delete_button<?php echo ++$_iterator ?>" />
73
+ </a>
74
+ <a href="#" id="select_button_" class="select_button btn-edit-address">
75
+ <img src="<?php echo $this->getSkinUrl('images/edit_icon.gif') ?>" alt="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('customer')->__('Edit address')) ?>"/>
76
+ </a>
77
+ <?php endif;?>
78
+ <address><?php echo Mage::helper('customer')->__('New Customer Address') ?></address>
79
+ <div class="address-type">
80
+ <span class="address-type-line">
81
+ <input <?php if ($this->isReadonly()):?> disabled="disabled"<?php endif;?> type="radio" value="<?php echo $_templatePrefix ?>" id="address_item_billing<?php echo $_templatePrefix ?>" name="account[default_billing]" title="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('customer')->__('Set as Default Billing Address')) ?>"/>
82
+ &nbsp;<label for="address_item_billing<?php echo $_templatePrefix ?>"><?php echo Mage::helper('customer')->__('Default Billing Address') ?></label>
83
+ </span>
84
+ <span class="address-type-line">
85
+ <input <?php if ($this->isReadonly()):?> disabled="disabled"<?php endif;?> type="radio" value="<?php echo $_templatePrefix ?>" id="address_item_shipping<?php echo $_templatePrefix ?>" name="account[default_shipping]" title="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('customer')->__('Set as Default Shipping Address')) ?>"/>
86
+ &nbsp;<label for="address_item_shipping<?php echo $_templatePrefix ?>"><?php echo Mage::helper('customer')->__('Default Shipping Address') ?></label>
87
+ </span>
88
+ </div>
89
+ </div>
90
+
91
+ <!-- Address form template -->
92
+ <div id="address_form_template" class="no-display template">
93
+ <?php
94
+ // Set form template elements prefix
95
+ $this->getForm()->setHtmlIdPrefix($_templatePrefix)
96
+ ->setFieldNameSuffix('address['.$_templatePrefix.']');
97
+ ?>
98
+ <?php echo $this->getForm()->getHtml() ?>
99
+ <?php echo $this->getCancelButtonHtml() ?>
100
+ </div>
101
+ <!-- -->
102
+
103
+ <!-- Addresses forms -->
104
+ <div class="entry-edit" id="address_form_container">
105
+ <?php if(count($addressCollection)): ?>
106
+ <?php foreach ($addressCollection as $_address): ?>
107
+ <div id="form_address_item_<?php echo $_address->getId() ?>" style="display:none">
108
+ <?php
109
+ $this->getForm()->addValues($_address->getData())
110
+ ->setHtmlIdPrefix("_item{$_address->getId()}")
111
+ ->setFieldNameSuffix('address['.$_address->getId().']');
112
+ $this->addValuesToNamePrefixElement($_address->getPrefix())
113
+ ->addValuesToNameSuffixElement($_address->getSuffix());
114
+ ?>
115
+ <?php echo $this->getForm()->getHtml() ?>
116
+ <input type="hidden" name="address[<?php echo $_address->getId() ?>][_deleted]" id="deleted_address_item_<?php echo $_address->getId() ?>" />
117
+ </div>
118
+ <?php endforeach; ?>
119
+ <?php else: ?>
120
+ <div id="no_address_message"><?php echo Mage::helper('customer')->__('This customer has no saved addresses.') ?></div>
121
+ <?php endif; ?>
122
+ </div>
123
+
124
+ <script type="text/javascript">
125
+ //<![CDATA[
126
+ var deleteButtonId = <?php echo $_iterator ?>;
127
+
128
+ var addressesModel = Class.create();
129
+ addressesModel.prototype = {
130
+ initialize : function() {
131
+ this.activeItem = null;
132
+ this.itemTemplate = $('address_item_template');
133
+ this.formTemplate = $('address_form_template');
134
+ this.itemContainer= $('address_list');
135
+ this.formContainer= $('address_form_container');
136
+ this.baseItemId = 'new_item';
137
+
138
+ this.defaultCountries = <?php echo $this->getDefaultCountriesJson(); ?>;
139
+ this.itemContentTemplate = new Template('<?php echo $this->helper('customer/address')->getFormat('js_template')?>');
140
+
141
+ this.onNewAddressClick = this.addNewAddress.bindAsEventListener(this);
142
+ this.onItemMouseOver = this.itemMouseOver.bindAsEventListener(this);
143
+ this.onItemMouseOut = this.itemMouseOut.bindAsEventListener(this);
144
+ this.onItemMouseClick = this.itemMouseClick.bindAsEventListener(this);
145
+ this.onItemFormFieldChange = this.syncFormData.bindAsEventListener(this);
146
+
147
+ this.loader = new varienLoader(true);
148
+ this.regionsUrl = '<?php echo $this->getRegionsUrl() ?>';
149
+ this.requiredStateForCountries = <?php echo $this->helper('directory')->getCountriesWithStatesRequired(true) ?>;
150
+ this.showAllRegions = <?php echo (string)$this->helper('directory')->getShowNonRequiredState() ? 1 : 0; ?>;
151
+
152
+ this.reloadItemList(1);
153
+
154
+ for(var i=0,n=this.itemList.length; i<n; i++){
155
+ if(this.itemList[i].id){
156
+ this.addItemObservers(this.itemList[i]);
157
+ this.initItem(this.itemList[i]);
158
+ }
159
+ }
160
+ if($('add_new_address_button')){
161
+ Event.observe('add_new_address_button', 'click', this.onNewAddressClick)
162
+ }
163
+
164
+ this.setActiveItem(this.itemList[0]);
165
+ this.setAddressAsDefault();
166
+ this.bindCountryRegionRelation();
167
+ },
168
+
169
+ reloadItemList : function(initial){
170
+ this.itemList = $$('#address_list li');
171
+ if( initial ) {
172
+ this.itemCount = this.itemList.length;
173
+ }
174
+ if(!this.itemList.length){
175
+ if($('no_address_message')){
176
+ $('no_address_message').show();
177
+ }
178
+ else {
179
+ this.formContainer.innerHTML+= '<div id="no_address_message"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('customer')->__('This customer has no saved addresses.')) ?></div>'
180
+ }
181
+ }
182
+ },
183
+
184
+ initItem : function(item){
185
+ if(item && $('form_'+item.id)){
186
+ item.formBlock = $('form_'+item.id);
187
+ Element.hide($('form_'+item.id));
188
+ $('form_'+item.id).statusBar = item;
189
+ $('form_'+item.id).addressItem = item;
190
+
191
+ // set Zip optional/required
192
+ var countryElement = $('_item' + item.id.replace(/address_item_/, '').replace(new RegExp(this.baseItemId), '') + 'country_id');
193
+ varienGlobalEvents.fireEvent("address_country_changed", countryElement);
194
+ }
195
+ },
196
+
197
+ addItemObservers : function(item){
198
+ if(item.id){
199
+ Event.observe(item, 'mouseover', this.onItemMouseOver);
200
+ Event.observe(item, 'mouseout', this.onItemMouseOut);
201
+ Event.observe(item, 'click', this.onItemMouseClick);
202
+ }
203
+ },
204
+
205
+ addNewAddress : function(event){
206
+ if(this.canCreateNewAddress){
207
+ this.itemCount++;
208
+ if($('no_address_message')){
209
+ $('no_address_message').hide();
210
+ }
211
+ // preventing duplication of ids for fields and blocks
212
+ while ($$("div[id='form_address_item_" + this.itemCount + "']").length) {
213
+ this.itemCount++;
214
+ }
215
+ // create new form elements
216
+ Element.insert(this.formContainer, {bottom:
217
+ '<div id="' + 'form_' + this.baseItemId + this.itemCount + '">'
218
+ + this.prepareTemplate(this.formTemplate.innerHTML)
219
+ + '</div>'
220
+ });
221
+
222
+ var newForm = $('form_' + this.baseItemId + this.itemCount);
223
+
224
+ $('_item'+this.itemCount+'firstname').value = $('_accountfirstname').value;
225
+ $('_item'+this.itemCount+'lastname').value = $('_accountlastname').value;
226
+
227
+ if ($('_accountwebsite_id').value !== '' && undefined !== this.defaultCountries[$('_accountwebsite_id').value]) {
228
+ $('_item'+this.itemCount+'country_id').value = this.defaultCountries[$('_accountwebsite_id').value];
229
+ }
230
+
231
+ Element.hide(newForm);
232
+ var template = '<li id="' + this.baseItemId+this.itemCount + '">';
233
+ deleteButtonId ++;
234
+ template += this.prepareTemplate(this.itemTemplate.innerHTML).replace('delete_button', 'delete_button'+ deleteButtonId);
235
+ template += '</li>';
236
+ Element.insert(this.itemContainer, {bottom: template});
237
+ var newItem = $(this.baseItemId+this.itemCount);
238
+ newItem.isNewAddress = true;
239
+ newItem.formBlock = newForm;
240
+
241
+
242
+ newForm.statusBar = newItem;
243
+ newForm.addressItem = newItem;
244
+
245
+ // set Zip optional/required
246
+ var countryElement = $('_item' + newItem.id.replace(/address_item_/, '').replace(new RegExp(this.baseItemId), '') + 'country_id');
247
+ varienGlobalEvents.fireEvent("address_country_changed", countryElement);
248
+
249
+ this.addItemObservers(newItem);
250
+ this.setActiveItem(newItem);
251
+ this.bindCountryRegionRelation(newForm.id);
252
+
253
+ if( $('_item'+this.itemCount+'firstname').value ) this.syncFormData($('_item'+this.itemCount+'firstname'));
254
+ if( $('_item'+this.itemCount+'lastname').value ) this.syncFormData($('_item'+this.itemCount+'lastname'));
255
+ }
256
+ this.reloadItemList();
257
+ //Event.stop(event);
258
+ },
259
+
260
+ prepareTemplate : function(template){
261
+ return template
262
+ .replace(/<?php echo $_templatePrefix ?>/g, '_item'+this.itemCount)
263
+ .replace(/_counted="undefined"/g, '')
264
+ .replace(/"select_button_"/g, 'select_button_' + this.itemCount)
265
+ ;
266
+ },
267
+
268
+ canCreateNewAddress : function(){
269
+ return true;
270
+ },
271
+
272
+ itemMouseOver : function(event){
273
+ var element = Event.findElement(event, 'li');
274
+ Element.addClassName(element, 'over');
275
+ },
276
+
277
+ itemMouseOut : function(event){
278
+ var element = Event.findElement(event, 'li');
279
+ Element.removeClassName(element, 'over');
280
+ },
281
+
282
+ itemMouseClick : function(event){
283
+ if (!Event) {
284
+ return;
285
+ }
286
+ var element = Event.findElement(event, 'li'); // find top item
287
+ var elem = Event.element(event); // exact element clicked
288
+
289
+ if ( ((elem.tagName.toUpperCase() == 'A') && elem.id.match(/^delete_button([0-9]*?)$/)) || ((elem.tagName.toUpperCase() == 'IMG') && elem.id.match(/^delete_button([0-9]*?)$/)) ) {
290
+ this.deleteAddress(element);
291
+ Event.stop(event);
292
+ }
293
+ else if(elem.tagName.toUpperCase() == 'INPUT') {
294
+ this.setAddressAsDefault(element);
295
+ }
296
+ else {
297
+ this.setActiveItem(element);
298
+ }
299
+ },
300
+
301
+ setAddressAsDefault : function(){
302
+ for(var i=0; i<this.itemList.length;i++){
303
+ if(this.itemList[i].id){
304
+ var inputs = $(this.itemList[i].id).getElementsBySelector('input');
305
+ var isActive = false;
306
+ for(var j in inputs){
307
+ if(inputs[j].type=='radio' && inputs[j].checked && this.itemList.length > 1){
308
+ isActive = true;
309
+ }
310
+ }
311
+ this.toggleDeleteButton(this.itemList[i], !isActive);
312
+ }
313
+ }
314
+ },
315
+
316
+ toggleDeleteButton : function(item, flag){
317
+ if(flag){
318
+ $(item).select('.btn-remove-address').each(Element.show);
319
+ $(item.formBlock).getElementsBySelector('.delete-address').each(Element.show);
320
+ } else {
321
+ $(item).select('.btn-remove-address').each(Element.hide);
322
+ $(item.formBlock).getElementsBySelector('.delete-address').each(Element.hide);
323
+ }
324
+ },
325
+
326
+ setActiveItem : function(item){
327
+ if(this.activeItem){
328
+ Element.removeClassName(this.activeItem, 'on');
329
+ if($('form_'+this.activeItem.id)){
330
+ Element.hide($('form_'+this.activeItem.id));
331
+ }
332
+ }
333
+ Element.addClassName(item, 'on');
334
+
335
+ if(item && $('form_'+item.id)){
336
+ $('form_'+item.id).changeRelation = item;
337
+ $('form_'+item.id).addressItem = item;
338
+ Element.show($('form_'+item.id));
339
+ //new Effect.Appear($('form_'+item.id), {duration : 0.3 });
340
+ //$('form_'+item.id).focus();
341
+ this.addFieldChangeObserver($('form_'+item.id));
342
+ var regionIdElement = $('_item' + item.id.replace(/address_item_/, '').replace(new RegExp(this.baseItemId), '') + 'region_id');
343
+ var regionElement = $('_item' + item.id.replace(/address_item_/, '').replace(new RegExp(this.baseItemId), '') + 'region');
344
+ this.countryEl = $('_item' + item.id.replace(/address_item_/, '').replace(new RegExp(this.baseItemId), '') + 'country_id');
345
+ if (regionIdElement && regionElement) {
346
+ var actualId = regionElement.id;
347
+ if (('select' == regionIdElement.tagName.toLowerCase()) && regionIdElement) {
348
+ actualId = regionIdElement.id;
349
+ }
350
+ this._checkRegionRequired([regionIdElement, regionElement], actualId);
351
+ }
352
+ }
353
+
354
+ this.activeItem = item;
355
+ },
356
+
357
+ getFormContainerFields : function(container){
358
+ var fields = $$( '#' + container.id + ' input','#' + container.id + ' select','#' + container.id + ' textarea');
359
+ return fields;
360
+ },
361
+
362
+ addFieldChangeObserver : function(container){
363
+ var fields = this.getFormContainerFields(container);
364
+ for (var i = 0; i < fields.length; i++) {
365
+ Event.observe(fields[i], 'change', this.onItemFormFieldChange);
366
+ }
367
+
368
+ },
369
+
370
+ syncFormData : function(evt){
371
+ var container = false;
372
+
373
+ if(!evt.addClassName) {
374
+ var elm = Event.element(evt);
375
+ } else {
376
+ var elm = evt;
377
+ }
378
+
379
+ elm = $(elm);
380
+ while(elm.tagName.toUpperCase() != 'BODY') {
381
+ if(elm.addressItem){
382
+ container = elm;
383
+ }
384
+ elm = $(elm.parentNode);
385
+ }
386
+
387
+ if(container){
388
+ var data = {};
389
+ var fields = this.getFormContainerFields(container);
390
+ for(var i=0; i < fields.size(); i++){
391
+ if(fields[i].id){
392
+ var id = fields[i].id.replace(/^(_item)?[0-9]+/, '');
393
+ var id = id.replace(/^(id)?[0-9]+/, '');
394
+ var value = fields[i].getValue();
395
+ var tagName = fields[i].tagName.toLowerCase();
396
+ if (tagName == 'select') {
397
+ if (fields[i].multiple) {
398
+ var values = $([]);
399
+ var l = fields[i].options.length;
400
+ for (j=0; j<l; j++) {
401
+ var o = fields[i].options[j];
402
+ if (o.selected === true) {
403
+ values[values.length] = o.text.escapeHTML();
404
+ }
405
+ }
406
+ data[id] = values.join(', ');
407
+ } else {
408
+ var option = fields[i].options[fields[i].selectedIndex],
409
+ text = option.value == '0' || option.value == '' ? '' : option.text;
410
+ data[id] = text.escapeHTML();
411
+ }
412
+ } else if (value !== null) {
413
+ data[id] = value.escapeHTML();
414
+ }
415
+ }
416
+ }
417
+
418
+ // Set name of state to 'region' if list of states are in 'region_id' selectbox
419
+ if (!data['region'] && data['region_id']) {
420
+ data['region'] = data['region_id'];
421
+ delete data['region_id'];
422
+ }
423
+
424
+ // Set data to html
425
+ var itemContainer = container.addressItem.getElementsBySelector('address');
426
+ if(itemContainer[0]){
427
+ var html = this.itemContentTemplate.evaluate(data);
428
+ html = html.replace(new RegExp('(<br\\s*/?>\\s*){2,}','img'),'<br/>');
429
+ html = html.replace(new RegExp('<br\\s*/?>(\\s*,){1,}\\s*<br\\s*/?>','ig'),'<br/>');
430
+ html = html.replace(new RegExp('<br\\s*/?>(\\s*,){1,}(.*)<br\\s*/?>','ig'),'<br/>$2<br/>');
431
+ html = html.replace(new RegExp('<br\\s*/?>(.*?)(,\\s*){1,}<br\\s*/?>','ig'),'<br/>$1<br/>');
432
+ html = html.replace(new RegExp('<br\\s*/?>(.*?)(,\\s*){2,}(.*?)<br\\s*/?>','ig'),'<br/>$1, $3<br/>');
433
+ html = html.replace(new RegExp('t:\\s*<br\\s*/?>','ig'),'');
434
+ html = html.replace(new RegExp('f:\\s*<br\\s*/?>','ig'),'');
435
+ html = html.replace(new RegExp('vat:\\s*$','ig'),'');
436
+ itemContainer[0].innerHTML = html;
437
+ }
438
+ }
439
+ },
440
+
441
+ deleteAddress : function(item){
442
+ if(confirm('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('customer')->__('Are you sure you want to delete this address?')) ?>')){
443
+ if (!item.isNewAddress && $('deleted_'+item.id)){
444
+ $('deleted_'+item.id).value = 1;
445
+ if (item.formBlock){
446
+ item.formBlock.addClassName('ignore-validation');
447
+ }
448
+ }
449
+ if (this.activeItem == item && item != this.itemList[0]) this.setActiveItem(this.itemList[0]);
450
+ if (item == this.itemList[0] && (this.itemList[1])) this.setActiveItem(this.itemList[1]);
451
+
452
+ this.formContainer.removeChild(item.formBlock);
453
+ this.itemContainer.removeChild(item);
454
+ this.reloadItemList();
455
+ this.setAddressAsDefault();
456
+ }
457
+ },
458
+
459
+ cancelAdd : function(button){
460
+ if(confirm('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('customer')->__('Are you sure you want to cancel adding of this address?')) ?>')){
461
+ var item = $(this.baseItemId + button.id.replace(new RegExp('[a-z_]*',''), ''));
462
+
463
+ if( item.isNewAddress){
464
+ if ( this.activeItem == item ) this.formContainer.removeChild(item.formBlock);
465
+ }
466
+ if ( this.activeItem == item && item != this.itemList[0] ) this.setActiveItem(this.itemList[0]);
467
+ if ( item == this.itemList[0] && (this.itemList[1]) ) this.setActiveItem(this.itemList[1]);
468
+
469
+ this.itemContainer.removeChild(item);
470
+
471
+ this.reloadItemList();
472
+ this.setAddressAsDefault();
473
+ }
474
+ },
475
+
476
+ bindCountryRegionRelation : function(parentId){
477
+ //alert('OK');
478
+ if(parentId){
479
+ var countryElements = $(parentId).getElementsByClassName('countries');
480
+ }
481
+ else{
482
+ var countryElements = $$('.countries');
483
+ }
484
+
485
+ for(var i=0;i<=countryElements.length;i++){
486
+ if(countryElements[i]){
487
+ if(!countryElements[i].bindRegions || !countryElements[i].parentBindId || countryElements[i].parentBindId!=parentId){
488
+ //if(!countryElements[i].bindRegions || !countryElements[i].parentBindId){
489
+ Event.observe(countryElements[i], 'change', this.reloadRegionField.bind(this));
490
+
491
+ countryElements[i].bindRegions = true;
492
+ countryElements[i].parentBindId = parentId;
493
+ }
494
+ }
495
+ }
496
+ },
497
+
498
+ reloadRegionField : function(event){
499
+ var countryElement = Event.element(event);
500
+ if(countryElement.id){
501
+ var regionElement = $(countryElement.id.replace(/country_id/, 'region'));
502
+ if(regionElement){
503
+ this.regionElement = regionElement;
504
+ this.countryEl = countryElement;
505
+ if (countryElement.value) {
506
+ var url = this.regionsUrl + 'parent/' + countryElement.value;
507
+ this.loader.load(url, {}, this.refreshRegionField.bind(this));
508
+ } else {
509
+ // Set empty text field in region
510
+ this.refreshRegionField('[]');
511
+ }
512
+ }
513
+ // set Zip optional/required
514
+ varienGlobalEvents.fireEvent("address_country_changed", countryElement);
515
+ }
516
+ },
517
+
518
+ // serverResponse is either string with server response, or object to force some paricular data setting
519
+ refreshRegionField : function(serverResponse){
520
+ if (!serverResponse)
521
+ return;
522
+ var data = eval('(' + serverResponse + ')');
523
+
524
+ var row = Element.previous(this.regionElement.parentNode,0);
525
+ var reqLabel = Element.select(row, '.required');
526
+
527
+ // Set regions and refresh controls
528
+ // We use a pair of 'region' and 'region_id' to properly submit data:
529
+ // manually entered text goes in 'region' and selected option id goes in 'region_id'
530
+ var regionHtmlName = this.regionElement.name;
531
+ var regionIdHtmlName = regionHtmlName.replace(/region/, 'region_id');
532
+ var regionHtmlId = this.regionElement.id;
533
+ var regionIdHtmlId = regionHtmlId.replace(/region/, 'region_id');
534
+ var newInputId = null; // id of imput that was added to a page - filled below
535
+
536
+ if (data.length) {
537
+ // Create visible selectbox 'region_id' and hidden 'region'
538
+ var html = '<select name="' + regionIdHtmlName + '" id="' + regionIdHtmlId + '" class="required-entry select" title="' + this.regionElement.title + '">';
539
+ for (var i in data){
540
+ if(data[i].label) {
541
+ html+= '<option value="'+data[i].value+'"';
542
+ if(this.regionElement.value && (this.regionElement.value == data[i].value || this.regionElement.value == data[i].label)){
543
+ html+= ' selected="selected"';
544
+ }
545
+ html+='>'+data[i].label+'</option>';
546
+ }
547
+ }
548
+ html += '</select>';
549
+
550
+ html += '<input type="hidden" name="' + regionHtmlName + '" id="' + regionHtmlId + '"/>';
551
+
552
+ if (reqLabel) {
553
+ reqLabel.each(function(item){Element.show(item)});
554
+ }
555
+
556
+ newInputId = regionIdHtmlId;
557
+ } else {
558
+ // Create visible text input 'region' and hidden 'region_id'
559
+ var html = '<input type="text" name="' + regionHtmlName + '" id="' + regionHtmlId + '" class="input-text" title="' + this.regionElement.title + '" />';
560
+ html += '<input type="hidden" name="' + regionIdHtmlName + '" id="' + regionIdHtmlId + '"/>';
561
+
562
+ if (reqLabel) {
563
+ reqLabel.each(function(item){Element.hide(item)});
564
+ }
565
+
566
+ newInputId = regionHtmlId;
567
+ }
568
+
569
+ var parentNode = this.regionElement.parentNode;
570
+ parentNode.innerHTML = html;
571
+ this.regionElement = $(regionHtmlId);
572
+
573
+ // Updating in address info
574
+ var newInput = $(newInputId);
575
+ Event.observe(newInput, 'change', this.onItemFormFieldChange); // Restore observing to update address info
576
+ this.syncFormData(newInput); // Update address info now
577
+ var activeElementId = regionHtmlId;
578
+ if (('select' == $(regionIdHtmlId).tagName.toLowerCase()) && regionIdHtmlId) {
579
+ activeElementId = regionIdHtmlId;
580
+ }
581
+ this._checkRegionRequired([$(regionHtmlId), $(regionIdHtmlId)], activeElementId);
582
+ },
583
+
584
+ _checkRegionRequired: function(elements, activeElementId)
585
+ {
586
+ var label, wildCard;
587
+ var that = this;
588
+ var regionRequired = this.requiredStateForCountries.indexOf(this.countryEl.value) >= 0;
589
+
590
+ elements.each(function(currentElement) {
591
+ Validation.reset(currentElement);
592
+ label = $$('label[for="' + currentElement.id + '"]')[0];
593
+ if (label) {
594
+ wildCard = label.down('em') || label.down('span.required');
595
+ if (!that.showAllRegions) {
596
+ if (regionRequired) {
597
+ label.up('tr').show();
598
+ } else {
599
+ label.up('tr').hide();
600
+ }
601
+ }
602
+ }
603
+
604
+ if (label && wildCard) {
605
+ if (!regionRequired) {
606
+ wildCard.hide();
607
+ } else {
608
+ wildCard.show();
609
+ }
610
+ }
611
+
612
+ if (!regionRequired) {
613
+ if (currentElement.hasClassName('required-entry')) {
614
+ currentElement.removeClassName('required-entry');
615
+ }
616
+ if ('select' == currentElement.tagName.toLowerCase() &&
617
+ currentElement.hasClassName('validate-select')
618
+ ) {
619
+ currentElement.removeClassName('validate-select');
620
+ }
621
+ } else if (activeElementId == currentElement.id) {
622
+ if (!currentElement.hasClassName('required-entry')) {
623
+ currentElement.addClassName('required-entry');
624
+ }
625
+ if ('select' == currentElement.tagName.toLowerCase() &&
626
+ !currentElement.hasClassName('validate-select')
627
+ ) {
628
+ currentElement.addClassName('validate-select');
629
+ }
630
+ }
631
+ });
632
+ }
633
+ }
634
+
635
+ customerAddresses = new addressesModel();
636
+ //]]>
637
+ </script>
638
+ </td>
639
+ </tr>
640
+ </table>
app/design/adminhtml/default/default/template/customer/tab/cart.phtml ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php /* @var $this Mage_Adminhtml_Block_Customer_Edit_Tab_Cart */ ?>
28
+ <?php if($this->getCartHeader()): ?>
29
+ <div class="content-header skip-header">
30
+ <table cellspacing="0">
31
+ <tr>
32
+ <td style="width:50%;"><h4><?php echo $this->getCartHeader(); ?></h4></td>
33
+ </tr>
34
+ </table>
35
+ </div>
36
+ <?php endif ?>
37
+ <?php echo $this->getGridParentHtml() ?>
38
+ <?php if ($this->canDisplayContainer()) : ?>
39
+ <?php
40
+ $listType = $this->getJsObjectName();
41
+ ?>
42
+ <script type="text/javascript">
43
+ <?php echo $this->getJsObjectName() ?>cartControl = {
44
+ reload: function (params) {
45
+ if (!params) {
46
+ params = {};
47
+ }
48
+ <?php echo $this->getJsObjectName() ?>.reloadParams = params;
49
+ <?php echo $this->getJsObjectName() ?>.reload();
50
+ <?php echo $this->getJsObjectName() ?>.reloadParams = {};
51
+ },
52
+
53
+ configureItem: function (itemId) {
54
+ productConfigure.setOnLoadIFrameCallback('<?php echo $listType ?>', this.cbOnLoadIframe.bind(this));
55
+ productConfigure.showItemConfiguration('<?php echo $listType ?>', itemId);
56
+ return false;
57
+ },
58
+
59
+ cbOnLoadIframe: function (response) {
60
+ if (!response.ok) {
61
+ return;
62
+ }
63
+ this.reload();
64
+ },
65
+
66
+ removeItem: function (itemId) {
67
+ if (!itemId) {
68
+ alert('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('customer')->__('No item specified.')) ?>');
69
+ return false;
70
+ }
71
+ if(!confirm('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('customer')->__('Are you sure that you want to remove this item?')) ?>')) {
72
+ return false;
73
+ }
74
+
75
+ this.reload({'delete':itemId});
76
+
77
+ return false;
78
+ }
79
+ };
80
+
81
+ <?php
82
+ $params = array(
83
+ 'customer_id' => $this->getCustomer()->getId(),
84
+ 'website_id' => $this->getWebsiteId()
85
+ );
86
+ ?>
87
+ productConfigure.addListType(
88
+ '<?php echo $listType ?>',
89
+ {
90
+ urlFetch: '<?php echo $this->getUrl('*/customer_cart_product_composite_cart/configure', $params) ?>',
91
+ urlConfirm: '<?php echo $this->getUrl('*/customer_cart_product_composite_cart/update', $params) ?>'
92
+ }
93
+ );
94
+ </script>
95
+ <?php endif ?>
96
+ <br />
app/design/adminhtml/default/default/template/customer/tab/newsletter.phtml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="entry-edit">
28
+ <?php echo $this->getFormObject()->getHtml() ?>
29
+ </div>
30
+ <?php echo $this->getChildHtml('grid') ?>
app/design/adminhtml/default/default/template/customer/tab/view.phtml ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * Template for block Mage_Adminhtml_Block_Customer_Edit_Tab_View
30
+ */
31
+ ?>
32
+ <?php
33
+ $lastLoginDateAdmin = $this->getLastLoginDate();
34
+ $lastLoginDateStore = $this->getStoreLastLoginDate();
35
+
36
+ $createDateAdmin = $this->getCreateDate();
37
+ $createDateStore = $this->getStoreCreateDate();
38
+ ?>
39
+ <div class="entry-edit">
40
+ <div class="entry-edit-head"><h4 class="icon-head head-customer-view"><?php echo Mage::helper('customer')->__('Personal Information') ?></h4></div>
41
+ <fieldset>
42
+ <table cellspacing="2" class="box-left">
43
+ <tr>
44
+ <td><strong><?php echo $this->__('Last Logged In:') ?></strong></td>
45
+ <td><?php echo $lastLoginDateAdmin ?> (<?php echo $this->getCurrentStatus() ?>)</td>
46
+ </tr>
47
+ <?php if ($lastLoginDateAdmin != $lastLoginDateStore): ?>
48
+ <tr>
49
+ <td><strong><?php echo $this->__('Last Logged In (%s):', $this->getStoreLastLoginDateTimezone()) ?></strong></td>
50
+ <td><?php echo $lastLoginDateStore ?> (<?php echo $this->getCurrentStatus() ?>)</td>
51
+ </tr>
52
+ <?php endif; ?>
53
+ <tr>
54
+ <td><strong><?php echo $this->__('Confirmed email:') ?></strong></td>
55
+ <td><?php echo $this->getIsConfirmedStatus() ?></td>
56
+ </tr>
57
+ <tr>
58
+ <td><strong><?php echo $this->__('Account Created on:') ?></strong></td>
59
+ <td><?php echo $createDateAdmin ?></td>
60
+ </tr>
61
+ <?php if ($createDateAdmin != $createDateStore): ?>
62
+ <tr>
63
+ <td><strong><?php echo $this->__('Account Created on (%s):', $this->getStoreCreateDateTimezone()) ?></strong></td>
64
+ <td><?php echo $createDateStore ?></td>
65
+ </tr>
66
+ <?php endif; ?>
67
+ <tr>
68
+ <td><strong><?php echo $this->__('Account Created in:') ?></strong></td>
69
+ <td><?php echo $this->getCreatedInStore() ?></td>
70
+ </tr>
71
+ <tr>
72
+ <td><strong><?php echo $this->__('Customer Group:') ?></strong></td>
73
+ <td><?php echo $this->getGroupName() ?></td>
74
+ </tr>
75
+ </table>
76
+ <address class="box-right">
77
+ <strong><?php echo $this->__('Default Billing Address') ?></strong><br/>
78
+ <?php echo $this->getBillingAddressHtml() ?>
79
+ </address>
80
+ </fieldset>
81
+ </div>
82
+ <?php echo $this->getChildHtml('', true, true); ?>
app/design/adminhtml/default/default/template/customer/tab/view/sales.phtml ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="entry-edit">
28
+ <div class="entry-edit-head"><h4 class="icon-head head-customer-sales-statistics"><?php echo Mage::helper('customer')->__('Sales Statistics') ?></h4></div>
29
+ <div class="grid">
30
+ <table cellspacing="0" class="data">
31
+ <thead>
32
+ <tr class="headings">
33
+ <th><?php echo Mage::helper('customer')->__('Website') ?></th>
34
+ <th><?php echo Mage::helper('customer')->__('Store') ?></th>
35
+ <th><?php echo Mage::helper('customer')->__('Store View') ?></th>
36
+ <th><?php echo Mage::helper('customer')->__('Lifetime Sales') ?></th>
37
+ <th><?php echo Mage::helper('customer')->__('Average Sale') ?></th>
38
+ </tr>
39
+ </thead>
40
+ <tfoot>
41
+ <tr>
42
+ <td colspan="3" class="label"><strong><big><?php echo Mage::helper('customer')->__('All Store Views') ?></big></strong></td>
43
+ <td class="emph"><strong><big><?php echo $this->formatCurrency($this->getTotals()->getBaseLifetime()) ?></big></strong></td>
44
+ <td class="emph"><strong><big><?php echo $this->formatCurrency($this->getTotals()->getAvgsale()) ?></big></strong></td>
45
+ </tr>
46
+ </tfoot>
47
+ <?php if ($this->getRows()): ?>
48
+ <tbody>
49
+ <?php $_i = 0; ?>
50
+ <?php foreach ($this->getRows() as $_websiteId => $_groups): ?>
51
+ <?php $_websiteRow = false; ?>
52
+ <?php foreach ($_groups as $_groupId => $_stores): ?>
53
+ <?php $_groupRow = false; ?>
54
+ <?php foreach ($_stores as $_row): ?>
55
+ <?php if ($_row->getStoreId() == 0): ?>
56
+ <td colspan="3" class="label"><?php echo $_row->getStoreName() ?></td>
57
+ <?php else: ?>
58
+ <tr<?php echo ($_i++ % 2 ? ' class="even"' : '') ?>>
59
+ <?php if (!$_websiteRow): ?>
60
+ <td rowspan="<?php echo $this->getWebsiteCount($_websiteId) ?>"><?php echo $_row->getWebsiteName() ?></td>
61
+ <?php $_websiteRow = true; ?>
62
+ <?php endif; ?>
63
+ <?php if (!$_groupRow): ?>
64
+ <td rowspan="<?php echo count($_stores) ?>"><?php echo $_row->getGroupName() ?></td>
65
+ <?php $_groupRow = true; ?>
66
+ <?php endif; ?>
67
+ <td class="label"><?php echo $_row->getStoreName() ?></td>
68
+ <?php endif; ?>
69
+ <td><?php echo $this->formatCurrency($_row->getLifetime(), $_row->getWebsiteId()) ?></td>
70
+ <td><?php echo $this->formatCurrency($_row->getAvgsale(), $_row->getWebsiteId()) ?></td>
71
+ </tr>
72
+ <?php endforeach; ?>
73
+ <?php endforeach; ?>
74
+ <?php endforeach; ?>
75
+ </tbody>
76
+ <?php else: ?>
77
+ <tbody>
78
+ <tr class="no-display"><td colspan="5"></td></tr>
79
+ </tbody>
80
+ <?php endif; ?>
81
+ </table>
82
+ </div>
83
+ </div>
84
+ <div class="clear"></div>
85
+ <br/>
app/design/adminhtml/default/default/template/customer/tab/wishlist.phtml ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php echo $this->getGridParentHtml() ?>
28
+ <?php if($this->canDisplayContainer()): ?>
29
+ <script type="text/javascript">
30
+ //<!--
31
+ wishlistControl = {
32
+ reload: function (urlParams) {
33
+ if (!urlParams) {
34
+ urlParams = '';
35
+ }
36
+ var url = <?php echo $this->getJsObjectName() ?>.url + '?ajax=true' + urlParams;
37
+ new Ajax.Updater(
38
+ <?php echo $this->getJsObjectName() ?>.containerId,
39
+ url,
40
+ {
41
+ parameters: {form_key: FORM_KEY},
42
+ onComplete: <?php echo $this->getJsObjectName() ?>.initGrid.bind(<?php echo $this->getJsObjectName() ?>),
43
+ evalScripts:true
44
+ }
45
+ );
46
+ },
47
+
48
+ configureItem: function (itemId) {
49
+ productConfigure.setOnLoadIFrameCallback('wishlist', this.cbOnLoadIframe.bind(this));
50
+ productConfigure.showItemConfiguration('wishlist', itemId);
51
+ return false;
52
+ },
53
+
54
+ cbOnLoadIframe: function (response) {
55
+ if (!response.ok) {
56
+ return;
57
+ }
58
+ this.reload();
59
+ },
60
+
61
+ removeItem: function (itemId) {
62
+ if(!confirm('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('customer')->__('Are you sure that you want to remove this item?')) ?>')) {
63
+ return false;
64
+ }
65
+ this.reload('&delete=' + itemId);
66
+ return false;
67
+ }
68
+ }
69
+
70
+ productConfigure.addListType(
71
+ 'wishlist',
72
+ {
73
+ urlFetch: '<?php echo $this->getUrl('*/customer_wishlist_product_composite_wishlist/configure') ?>',
74
+ urlConfirm: '<?php echo $this->getUrl('*/customer_wishlist_product_composite_wishlist/update') ?>'
75
+ }
76
+ );
77
+ //-->
78
+ </script>
79
+ <?php endif ?>
app/design/adminhtml/default/default/template/dashboard/graph.phtml ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ /*
27
+ ?>
28
+ <div style="width:587px;margin:20px;position:relative;margin-left:-294px;left:50%">
29
+ <div style="position:absolute;right:1px;top:0px;left: expression(parentNode.offsetWidth - offsetWidth - 1 + 'px');">
30
+ <div style="padding:5px;height:15px;width:15px;background-color:#F4F4F4" id="dashboard_<?php echo $this->getHtmlId() ?>_cal_div"><img src="<?php echo Mage::getDesign()->getSkinUrl('images/grid-cal.gif') ?>" onclick="toggleCal('<?php echo $this->getHtmlId() ?>')" /></div>
31
+ <div style="padding:5px;display:none;width:200px;" id="dashboard_<?php echo $this->getHtmlId() ?>_range_div" class="switcher">
32
+ <?php echo $this->__('Select Range') ?>:
33
+ <select name="period" id="order_<?php echo $this->getHtmlId() ?>_period" onchange="changePeriod(this)">
34
+ <?php foreach ($this->helper('adminhtml/dashboard_data')->getDatePeriods() as $_value=>$_label): ?>
35
+ <?php if(in_array($_value, array('custom'))) continue; ?>
36
+ <option value="<?php echo $_value ?>" <?php if($this->getRequest()->getParam('period')==$_value): ?> selected<?php endif; ?>><?php echo $_label ?></option>
37
+ <?php endforeach; ?>
38
+ </select>
39
+ <img src="<?php echo Mage::getDesign()->getSkinUrl('images/dashboard-close.gif') ?>" onclick="toggleCal('<?php echo $this->getHtmlId() ?>')" />
40
+ </div>
41
+ </div>
42
+ <?php if($this->getCount()): ?>
43
+ <img src="<?php echo $this->getChartUrl() ?>" />
44
+ <?php else: ?>
45
+ <div align="center" style="width:587px;height:300px;"><?php echo $this->__('No Data Found') ?></div>
46
+ <?php endif; ?>
47
+ </div>
48
+ <?php */ ?>
49
+ <div style="margin:20px;">
50
+ <p class="switcher a-right" style="padding:5px 10px;"><?php echo $this->__('Select Range') ?>:
51
+ <select name="period" id="order_<?php echo $this->getHtmlId() ?>_period" onchange="changeDiagramsPeriod(this);">
52
+ <?php foreach ($this->helper('adminhtml/dashboard_data')->getDatePeriods() as $_value=>$_label): ?>
53
+ <?php if(in_array($_value, array('custom'))) continue; ?>
54
+ <option value="<?php echo $_value ?>" <?php if($this->getRequest()->getParam('period')==$_value): ?> selected="selected"<?php endif; ?>><?php echo $_label ?></option>
55
+ <?php endforeach; ?>
56
+ </select></p><br/>
57
+ <?php
58
+ $_containerStyle = "width:{$this->getWidth()}px;height:{$this->getHeight()}px; margin:0 auto;";
59
+ ?>
60
+ <?php if($this->getCount()): ?>
61
+ <p style="<?php echo $_containerStyle?>"><img src="<?php echo $this->getChartUrl(false) ?>" alt="chart" title="chart" /></p>
62
+ <?php else: ?>
63
+ <p class="a-center" style="<?php echo $_containerStyle?>"><?php echo $this->__('No Data Found') ?></p>
64
+ <?php endif; ?>
65
+ </div>
app/design/adminhtml/default/default/template/dashboard/graph/disabled.phtml ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="box" style="margin:20px;">
28
+ <p class="a-center">
29
+ <?php echo $this->helper('adminhtml')->__('Chart is disabled. If you want to enable chart, click <a href="%s">here</a>.', $this->getConfigUrl())?>
30
+ </p>
31
+ </div>
app/design/adminhtml/default/default/template/dashboard/grid.phtml ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+
29
+ $numColumns = sizeof($this->getColumns());
30
+ ?>
31
+ <?php if($this->getCollection()): ?>
32
+ <div class="grid np">
33
+ <table cellspacing="0" style="border:0;" id="<?php echo $this->getId() ?>_table">
34
+ <?php foreach ($this->getColumns() as $_column): ?>
35
+ <col <?php echo $_column->getHtmlProperty() ?> />
36
+ <?php endforeach; ?>
37
+ <?php if ($this->getHeadersVisibility() || $this->getFilterVisibility()): ?>
38
+ <thead>
39
+ <?php if ($this->getHeadersVisibility()): ?>
40
+ <tr class="headings">
41
+ <?php foreach ($this->getColumns() as $_column): ?>
42
+ <th <?php echo $_column->getHeaderHtmlProperty() ?>><span class="nobr"><?php echo $_column->getHeaderHtml() ?></span></th>
43
+ <?php endforeach; ?>
44
+ </tr>
45
+ <?php endif; ?>
46
+ </thead>
47
+ <?php endif; ?>
48
+ <tbody>
49
+ <?php if (($this->getCollection()->getSize()>0) && (!$this->getIsCollapsed())): ?>
50
+ <?php foreach ($this->getCollection() as $_index=>$_item): ?>
51
+ <tr title="<?php echo $this->getRowId($_item) ?>">
52
+ <?php $i=0;foreach ($this->getColumns() as $_column): ?>
53
+ <td class="<?php echo $_column->getCssProperty() ?> <?php echo ++$i==$numColumns?'last':'' ?>"><?php echo (($_html = $_column->getRowField($_item)) != '' ? $_html : '&nbsp;') ?></td>
54
+ <?php endforeach; ?>
55
+ </tr>
56
+ <?php endforeach; ?>
57
+ <?php elseif ($this->getEmptyText()): ?>
58
+ <tr>
59
+ <td class="empty-text <?php echo $this->getEmptyTextClass() ?>" colspan="100"><?php echo $this->getEmptyText() ?></td>
60
+ </tr>
61
+ <?php endif; ?>
62
+ </tbody>
63
+ </table>
64
+ </div>
65
+ <?php if($this->canDisplayContainer()): ?>
66
+ <script type="text/javascript">
67
+ //<![CDATA[
68
+ <?php echo $this->getJsObjectName() ?> = new varienGrid('<?php echo $this->getId() ?>', '<?php echo $this->getGridUrl() ?>', '<?php echo $this->getVarNamePage() ?>', '<?php echo $this->getVarNameSort() ?>', '<?php echo $this->getVarNameDir() ?>', '<?php echo $this->getVarNameFilter() ?>');
69
+ <?php echo $this->getJsObjectName() ?>.useAjax = '<?php echo $this->getUseAjax() ?>';
70
+ <?php if($this->getRowClickCallback()): ?>
71
+ <?php echo $this->getJsObjectName() ?>.rowClickCallback = <?php echo $this->getRowClickCallback() ?>;
72
+ <?php endif; ?>
73
+ <?php if($this->getCheckboxCheckCallback()): ?>
74
+ <?php echo $this->getJsObjectName() ?>.checkboxCheckCallback = <?php echo $this->getCheckboxCheckCallback() ?>;
75
+ <?php endif; ?>
76
+ <?php if($this->getRowInitCallback()): ?>
77
+ <?php echo $this->getJsObjectName() ?>.initRowCallback = <?php echo $this->getRowInitCallback() ?>;
78
+ <?php echo $this->getJsObjectName() ?>.rows.each(function(row){<?php echo $this->getRowInitCallback() ?>(<?php echo $this->getJsObjectName() ?>, row)});
79
+ <?php endif; ?>
80
+ <?php if($this->getMassactionBlock()->isAvailable()): ?>
81
+ <?php echo $this->getMassactionBlock()->getJavaScript() ?>
82
+ <?php endif ?>
83
+ //]]>
84
+ </script>
85
+ <?php endif; ?>
86
+ <?php endif ?>
app/design/adminhtml/default/default/template/dashboard/index.phtml ADDED
@@ -0,0 +1,133 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <?php if (is_array($this->getChild('diagrams')->getTabsIds())) : ?>
29
+ <script type="text/javascript">
30
+ //<![CDATA[
31
+ function changeDiagramsPeriod(periodObj) {
32
+ periodParam = periodObj.value ? 'period/' + periodObj.value + '/' : '';
33
+ <?php foreach ($this->getChild('diagrams')->getTabsIds() as $tabId): ?>
34
+ ajaxBlockParam = 'block/tab_<?php echo $tabId ?>/';
35
+ ajaxBlockUrl = '<?php echo $this->getUrl('*/*/ajaxBlock', array('_current' => true, 'block' => '', 'period' => '')) ?>' + ajaxBlockParam + periodParam;
36
+ new Ajax.Request(ajaxBlockUrl, {
37
+ parameters: {isAjax: 'true', form_key: FORM_KEY},
38
+ onSuccess: function(transport) {
39
+ tabContentElementId = '<?php echo $this->getChild('diagrams')->getId() ?>_<?php echo $tabId ?>_content';
40
+ try {
41
+ if (transport.responseText.isJSON()) {
42
+ var response = transport.responseText.evalJSON()
43
+ if (response.error) {
44
+ alert(response.message);
45
+ }
46
+ if(response.ajaxExpired && response.ajaxRedirect) {
47
+ setLocation(response.ajaxRedirect);
48
+ }
49
+ } else {
50
+ $(tabContentElementId).update(transport.responseText);
51
+ }
52
+ }
53
+ catch (e) {
54
+ $(tabContentElementId).update(transport.responseText);
55
+ }
56
+ }
57
+ });
58
+ <?php endforeach; ?>
59
+ ajaxBlockUrl = '<?php echo $this->getUrl('*/*/ajaxBlock', array('_current' => true, 'block' => 'totals', 'period' => '')) ?>' + periodParam;
60
+ new Ajax.Request(ajaxBlockUrl, {
61
+ parameters: {isAjax: 'true', form_key: FORM_KEY},
62
+ onSuccess: function(transport) {
63
+ tabContentElementId = 'dashboard_diagram_totals';
64
+ try {
65
+ if (transport.responseText.isJSON()) {
66
+ var response = transport.responseText.evalJSON()
67
+ if (response.error) {
68
+ alert(response.message);
69
+ }
70
+ if(response.ajaxExpired && response.ajaxRedirect) {
71
+ setLocation(response.ajaxRedirect);
72
+ }
73
+ } else {
74
+ $(tabContentElementId).replace(transport.responseText);
75
+ }
76
+ }
77
+ catch (e) {
78
+ $(tabContentElementId).replace(transport.responseText);
79
+ }
80
+ }
81
+ });
82
+ }
83
+
84
+ function toggleCal(id) {
85
+ $('dashboard_'+id+'_cal_div').toggle();
86
+ $('dashboard_'+id+'_range_div').toggle();
87
+ }
88
+ //]]>
89
+ </script>
90
+ <?php endif; ?>
91
+ <div class="content-header">
92
+ <table cellspacing="0">
93
+ <tr>
94
+ <td><h3 class="head-dashboard"><?php echo $this->__('Dashboard') ?></h3></td>
95
+ </tr>
96
+ </table>
97
+ </div>
98
+ <div class="dashboard-container">
99
+ <?php echo $this->getChildHtml('store_switcher') ?>
100
+ <table cellspacing="25" width="100%">
101
+ <tr>
102
+ <td><?php echo $this->getChildHtml('sales') ?>
103
+ <div class="entry-edit">
104
+ <div class="entry-edit-head"><h4><?php echo $this->__('Last 5 Orders') ?></h4></div>
105
+ <fieldset class="np"><?php echo $this->getChildHtml('lastOrders'); ?></fieldset>
106
+ </div>
107
+ <div class="entry-edit">
108
+ <div class="entry-edit-head"><h4><?php echo $this->__('Last 5 Search Terms') ?></h4></div>
109
+ <fieldset class="np"><?php echo $this->getChildHtml('lastSearches'); ?></fieldset>
110
+ </div>
111
+ <div class="entry-edit">
112
+ <div class="entry-edit-head"><h4><?php echo $this->__('Top 5 Search Terms') ?></h4></div>
113
+ <fieldset class="np"><?php echo $this->getChildHtml('topSearches'); ?></fieldset>
114
+ </div>
115
+ </td>
116
+ <td>
117
+ <div class="entry-edit" style="border:1px solid #ccc;">
118
+ <?php echo $this->getChildHtml('diagrams') ?>
119
+ <?php if (is_array($this->getChild('diagrams')->getTabsIds())) : ?>
120
+ <div id="diagram_tab_content"></div>
121
+ <?php endif; ?>
122
+ <div style="margin:20px;">
123
+ <?php echo $this->getChildHtml('totals') ?>
124
+ </div>
125
+ <div style="margin:20px;">
126
+ <?php echo $this->getChildHtml('grids') ?>
127
+ <div id="grid_tab_content"></div>
128
+ </div>
129
+ </div>
130
+ </td>
131
+ </tr>
132
+ </table>
133
+ </div>
app/design/adminhtml/default/default/template/dashboard/salebar.phtml ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php if( sizeof($this->getTotals()) > 0 ): ?>
28
+ <?php foreach( $this->getTotals() as $_total ): ?>
29
+ <div class="entry-edit">
30
+ <div class="entry-edit-head"><h4><?php echo $_total['label'] ?></h4></div>
31
+ <fieldset class="a-center bold">
32
+ <span class="nowrap" style="font-size:18px;"><?php echo $_total['value'] ?><span style="font-size:14px; color:#686868;"><?php echo $_total['decimals'] ?></span></span>
33
+ </fieldset>
34
+ </div>
35
+ <?php endforeach; ?>
36
+ <?php endif; ?>
app/design/adminhtml/default/default/template/dashboard/searches.phtml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div style="padding:5px;">
28
+ <?php if(count($this->getCollection()->getItems()) > 0): ?>
29
+ <?php foreach ($this->getCollection()->getItems() as $item): ?>
30
+ <span><?php echo $item->getQueryText() ?></span><br />
31
+ <?php endforeach; ?>
32
+ <?php else: ?>
33
+ <div class="a-center"><?php echo $this->__('No search keywords.') ?></div>
34
+ <?php endif; ?>
35
+ </div>
app/design/adminhtml/default/default/template/dashboard/store/switcher.phtml ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <p class="switcher"><label for="store_switcher"><?php echo $this->__('View Statistics For:') ?></label>
28
+ <?php echo $this->getHintHtml() ?>
29
+ <select name="store_switcher" id="store_switcher" class="left-col-block" onchange="return switchStore(this);">
30
+ <option value=""><?php echo $this->__('All Websites') ?></option>
31
+ <?php foreach ($this->getWebsiteCollection() as $_website): ?>
32
+ <?php $showWebsite=false; ?>
33
+ <?php foreach ($this->getGroupCollection($_website) as $_group): ?>
34
+ <?php $showGroup=false; ?>
35
+ <?php foreach ($this->getStoreCollection($_group) as $_store): ?>
36
+ <?php if ($showWebsite == false): ?>
37
+ <?php $showWebsite = true; ?>
38
+ <option website="true" value="<?php echo $_website->getId() ?>"<?php if($this->getRequest()->getParam('website') == $_website->getId()): ?> selected="selected"<?php endif; ?>><?php echo $_website->getName() ?></option>
39
+ <?php endif; ?>
40
+ <?php if ($showGroup == false): ?>
41
+ <?php $showGroup = true; ?>
42
+ <!--optgroup label="&nbsp;&nbsp;&nbsp;<?php echo $_group->getName() ?>"-->
43
+ <option group="true" value="<?php echo $_group->getId() ?>"<?php if($this->getRequest()->getParam('group') == $_group->getId()): ?> selected="selected"<?php endif; ?>>&nbsp;&nbsp;&nbsp;<?php echo $_group->getName() ?></option>
44
+ <?php endif; ?>
45
+ <option value="<?php echo $_store->getId() ?>"<?php if($this->getStoreId() == $_store->getId()): ?> selected="selected"<?php endif; ?>>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $_store->getName() ?></option>
46
+ <?php endforeach; ?>
47
+ <?php if ($showGroup): ?>
48
+ <!--</optgroup>-->
49
+ <?php endif; ?>
50
+ <?php endforeach; ?>
51
+ <?php endforeach; ?>
52
+ </select>
53
+ </p>
54
+ <script type="text/javascript">
55
+ //<![CDATA[
56
+ function switchStore(obj){
57
+ if (obj.options[obj.selectedIndex].getAttribute('website') == 'true') {
58
+ var selectionType = 'website';
59
+ } else if (obj.options[obj.selectedIndex].getAttribute('group') == 'true') {
60
+ var selectionType = 'group';
61
+ } else {
62
+ var selectionType = 'store';
63
+ }
64
+ var storeParam = obj.value ? selectionType + '/' + obj.value + '/' : '';
65
+ if(obj.switchParams){
66
+ storeParam+= obj.switchParams;
67
+ }
68
+ if ($('diagram_tab_orders_content').style.display != 'none') {
69
+ var select = $('order_orders_period');
70
+ } else if ($('diagram_tab_amounts_content').style.display != 'none') {
71
+ var select = $('order_amounts_period');
72
+ }
73
+ var periodParam = select.value ? 'period/'+select.value + '/' : '';
74
+ setLocation('<?php echo $this->getSwitchUrl() ?>'+storeParam+periodParam);
75
+ }
76
+ //]]>
77
+ </script>
app/design/adminhtml/default/default/template/dashboard/totalbar.phtml ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php if( sizeof($this->getTotals()) > 0 ): ?>
28
+ <div class="box" id="dashboard_diagram_totals">
29
+ <div class="entry-edit">
30
+ <table cellspacing="0" width="100%">
31
+ <tr>
32
+ <?php foreach( $this->getTotals() as $_total ): ?>
33
+ <td class="a-center bold">
34
+ <span><?php echo $_total['label'] ?></span><br />
35
+ <span class="nowrap" style="font-size:18px; color:#EA7601;"><?php echo $_total['value'] ?><span style="font-size:14px; color:#DE8946;"><?php echo $_total['decimals'] ?></span></span>
36
+ </td>
37
+ <?php endforeach; ?>
38
+ </tr>
39
+ </table>
40
+ </div>
41
+ </div>
42
+ <?php endif; ?>
app/design/adminhtml/default/default/template/directory/js/optional_zip_countries.phtml ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <?php
29
+ /**
30
+ * JS block for including Countries with Optional Zip
31
+ *
32
+ * @see Mage_Adminhtml_Block_Template
33
+ */
34
+ ?>
35
+ <script type="text/javascript">
36
+ //<![CDATA[
37
+ optionalZipCountries = <?php echo $this->helper('directory')->getCountriesWithOptionalZip(true) ?>;
38
+
39
+ function onAddressCountryChanged (countryElement) {
40
+ var zipElementId = countryElement.id.replace(/country_id/, 'postcode');
41
+
42
+ // Ajax-request and normal content load compatibility
43
+ if ($(zipElementId) != undefined) {
44
+ setPostcodeOptional($(zipElementId), countryElement.value);
45
+ } else {
46
+ Event.observe(window, "load", function () {
47
+ setPostcodeOptional($(zipElementId), countryElement.value);
48
+ });
49
+ }
50
+ }
51
+
52
+ function setPostcodeOptional(zipElement, country) {
53
+ if (optionalZipCountries.indexOf(country) != -1) {
54
+ while (zipElement.hasClassName('required-entry')) {
55
+ zipElement.removeClassName('required-entry');
56
+ }
57
+ zipElement.up(1).down('label > span.required').hide();
58
+ } else {
59
+ zipElement.addClassName('required-entry');
60
+ zipElement.up(1).down('label > span.required').show();
61
+ }
62
+ }
63
+
64
+ varienGlobalEvents.attachEventHandler("address_country_changed", onAddressCountryChanged);
65
+ //]]>
66
+ </script>
app/design/adminhtml/default/default/template/downloadable/product/composite/fieldset/downloadable.phtml ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php /* @var $this Mage_Downloadable_Block_Adminhtml_Catalog_Product_Composite_Fieldset_Downloadable */ ?>
28
+ <?php $_linksPurchasedSeparately = $this->getLinksPurchasedSeparately(); ?>
29
+ <?php $_skipSaleableCheck = Mage::helper('catalog/product')->getSkipSaleableCheck(); ?>
30
+ <?php if (($this->getProduct()->isSaleable() || $_skipSaleableCheck) && $this->hasLinks()):?>
31
+
32
+ <div id="catalog_product_composite_configure_fields_downloadable" class="<?php echo $this->getIsLastFieldset() ? 'last-fieldset' : '' ?>">
33
+ <h4><?php echo Mage::helper('catalog')->__('Downloadable Information') ?></h4>
34
+ <div class="product-options">
35
+ <dl>
36
+ <?php $_links = $this->getLinks(); ?>
37
+ <?php $_isRequired = $this->getLinkSelectionRequired(); ?>
38
+ <dt><label<?php if ($_isRequired) echo ' class="required"' ?>><?php if ($_isRequired) echo '<em>*</em>' ?><?php echo $this->getLinksTitle() ?></label></dt>
39
+ <dd class="last">
40
+ <ul id="downloadable-links-list" class="options-list">
41
+ <?php foreach ($_links as $_link): ?>
42
+ <li>
43
+ <?php if ($_linksPurchasedSeparately): ?>
44
+ <input type="checkbox" class="checkbox<?php if ($_isRequired):?> validate-one-required-by-name<?php endif; ?> product-downloadable-link" name="links[]" id="links_<?php echo $_link->getId() ?>" value="<?php echo $_link->getId(); ?>" <?php echo $this->getLinkCheckedValue($_link); ?> price="<?php echo $this->getCurrencyPrice($_link->getPrice()); ?>"/>
45
+ <?php endif; ?>
46
+ <span class="label">
47
+ <label for="links_<?php echo $_link->getId() ?>">
48
+ <?php echo $this->escapeHtml($_link->getTitle()) ?>
49
+ </label>
50
+ <?php if ($_link->getSampleFile() || $_link->getSampleUrl()): ?>
51
+ &nbsp;(<a href="<?php echo $this->getLinkSamlpeUrl($_link) ?>" <?php echo $this->getIsOpenInNewWindow()?'onclick="this.target=\'_blank\'"':''; ?>><?php echo Mage::helper('downloadable')->__('sample') ?></a>)
52
+ <?php endif; ?>
53
+ <?php if ($_linksPurchasedSeparately): ?>
54
+ <?php echo $this->getFormattedLinkPrice($_link); ?>
55
+ <?php endif; ?>
56
+ </span>
57
+ <?php if ($_isRequired): ?>
58
+ <script type="text/javascript">
59
+ //<![CDATA[
60
+ $('links_<?php echo $_link->getId() ?>').advaiceContainer = 'links-advice-container';
61
+ $('links_<?php echo $_link->getId() ?>').callbackFunction = 'validateDownloadableCallback';
62
+ //]]>
63
+ </script>
64
+ <?php endif; ?>
65
+ </li>
66
+ <?php endforeach; ?>
67
+ </ul>
68
+
69
+ <?php if ($_isRequired): ?>
70
+ <span id="links-advice-container"></span>
71
+ <?php endif;?>
72
+ </dd>
73
+ </dl>
74
+ </div>
75
+ </div>
76
+
77
+ <script type="text/javascript">
78
+ //<![CDATA[
79
+ validateDownloadableCallback = function (elmId, result) {
80
+ var container = $('downloadable-links-list');
81
+ if (result == 'failed') {
82
+ container.removeClassName('validation-passed');
83
+ container.addClassName('validation-failed');
84
+ } else {
85
+ container.removeClassName('validation-failed');
86
+ container.addClassName('validation-passed');
87
+ }
88
+ }
89
+ //]]>
90
+ </script>
91
+ <?php endif;?>
app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable.phtml ADDED
@@ -0,0 +1,302 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <?php
29
+ /**
30
+ * @see Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable
31
+ */
32
+ ?>
33
+ <script type="text/javascript">
34
+ //<![CDATA[>
35
+
36
+ var uploaderTemplate = '<div class="no-display" id="[[idName]]-template">' +
37
+ '<div id="{{id}}-container" class="file-row file-row-narrow">' +
38
+ '<span class="file-info">' +
39
+ '<span class="file-info-name">{{name}}</span>' +
40
+ ' ' +
41
+ '<span class="file-info-size">{{size}}</span>' +
42
+ '</span>' +
43
+ '<span class="progress-text"></span>' +
44
+ '<div class="clear"></div>' +
45
+ '</div>' +
46
+ '</div>';
47
+
48
+ var fileListTemplate = '<span class="file-info">' +
49
+ '<span class="file-info-name">{{name}}</span>' +
50
+ ' ' +
51
+ '<span class="file-info-size">({{size}})</span>' +
52
+ '</span>';
53
+
54
+ var Downloadable = {
55
+ uploaderObj : $H({}),
56
+ objCount : 0,
57
+ setUploaderObj : function(type, key, obj){
58
+ if (!this.uploaderObj.get(type)) {
59
+ this.uploaderObj.set(type, $H({}));
60
+ }
61
+ this.uploaderObj.get(type).set(key, obj);
62
+ },
63
+ getUploaderObj : function(type, key){
64
+ try {
65
+ return this.uploaderObj.get(type).get(key);
66
+ } catch (e) {
67
+ try {
68
+ console.log(e);
69
+ } catch (e2) {
70
+ alert(e.name + '\n' + e.message);
71
+ }
72
+ }
73
+ },
74
+ unsetUploaderObj : function(type, key){
75
+ try {
76
+ this.uploaderObj.get(type).unset(key);
77
+ } catch (e) {
78
+ try {
79
+ console.log(e);
80
+ } catch (e2) {
81
+ alert(e.name + '\n' + e.message);
82
+ }
83
+ }
84
+ },
85
+ massUploadByType : function(type){
86
+ try {
87
+ this.uploaderObj.get(type).each(function(item){
88
+ var container = item.value.elements.container.up('tr');
89
+ if (container.visible() && !container.hasClassName('no-display')) {
90
+ item.value.upload();
91
+ } else {
92
+ Downloadable.unsetUploaderObj(type, item.key);
93
+ }
94
+ });
95
+ } catch (e) {
96
+ try {
97
+ console.log(e);
98
+ } catch (e2) {
99
+ alert(e.name + '\n' + e.message);
100
+ }
101
+ }
102
+ }
103
+ };
104
+
105
+ Downloadable.FileUploader = Class.create();
106
+ Downloadable.FileUploader.prototype = {
107
+ type : null,
108
+ key : null, //key, identifier of uploader obj
109
+ elmContainer : null, //insert Flex object and templates to elmContainer
110
+ fileValueName : null, //name of field of JSON data of saved file
111
+ fileValue : null,
112
+ idName : null, //id name of elements for unique uploader
113
+ uploaderText: uploaderTemplate,
114
+ uploaderSyntax : /(^|.|\r|\n)(\[\[(\w+)\]\])/,
115
+ uploaderObj : $H({}),
116
+ config : null,
117
+ initialize: function (type, key, elmContainer, fileValueName, fileValue ,idName, config) {
118
+ this.type = type;
119
+ this.key = key;
120
+ this.elmContainer = elmContainer;
121
+ this.fileValueName = fileValueName;
122
+ this.fileValue = fileValue;
123
+ this.idName = idName;
124
+ this.config = config;
125
+ uploaderTemplate = new Template(this.uploaderText, this.uploaderSyntax);
126
+ <?php if (!$this->isReadonly()):?>
127
+ Element.insert(
128
+ elmContainer,
129
+ {'top' : uploaderTemplate.evaluate({
130
+ 'idName' : this.idName,
131
+ 'fileValueName' : this.fileValueName,
132
+ 'uploaderObj' : 'Downloadable.getUploaderObj(\''+this.type+'\', \''+this.key+'\')'
133
+ })
134
+ }
135
+ );
136
+ if ($(this.idName+'_save')) {
137
+ $(this.idName+'_save').value = this.fileValue.toJSON
138
+ ? this.fileValue.toJSON()
139
+ : Object.toJSON(this.fileValue);
140
+ }
141
+ var uploaderConfig = (Object.isString(this.config) && this.config.evalJSON()) || this.config;
142
+ Downloadable.setUploaderObj(
143
+ this.type,
144
+ this.key,
145
+ new Uploader(uploaderConfig)
146
+ );
147
+ if (varienGlobalEvents) {
148
+ varienGlobalEvents.attachEventHandler('tabChangeBefore', Downloadable.getUploaderObj(type, key).onContainerHideBefore);
149
+ }
150
+ new Downloadable.FileList(this.idName, Downloadable.getUploaderObj(type, key));
151
+ <?php endif;?>
152
+ }
153
+ }
154
+
155
+ Downloadable.FileList = Class.create();
156
+ Downloadable.FileList.prototype = {
157
+ file: [],
158
+ containerId: '',
159
+ container: null,
160
+ uploader: null,
161
+ fileListTemplate: fileListTemplate,
162
+ templatePattern : /(^|.|\r|\n)({{(\w+)}})/,
163
+ listTemplate : null,
164
+ initialize: function (containerId, uploader) {
165
+ this.containerId = containerId,
166
+ this.container = $(this.containerId);
167
+ this.uploader = uploader;
168
+ document.on('uploader:fileSuccess', function(event) {
169
+ var memo = event.memo;
170
+ if(this._checkCurrentContainer(memo.containerId)) {
171
+ this.handleUploadComplete([{response: memo.response}]);
172
+ this.handleButtonsSwap();
173
+ }
174
+ }.bind(this));
175
+ document.on('uploader:fileError', function(event) {
176
+ var memo = event.memo;
177
+ if(this._checkCurrentContainer(memo.containerId)) {
178
+ this.handleButtonsSwap();
179
+ }
180
+ }.bind(this));
181
+ document.on('upload:simulateDelete', this.handleFileRemoveAll.bind(this));
182
+ document.on('uploader:simulateNewUpload', this.handleFileNew.bind(this));
183
+ this.file = this.getElement('save').value.evalJSON();
184
+ this.listTemplate = new Template(this.fileListTemplate, this.templatePattern);
185
+ this.updateFiles();
186
+ this.uploader.onFileRemoveAll = this.handleFileRemoveAll.bind(this);
187
+ this.uploader.onFileSelect = this.handleFileSelect.bind(this);
188
+ },
189
+
190
+ _checkCurrentContainer: function (child) {
191
+ return $(this.containerId).down('#' + child);
192
+ },
193
+
194
+ handleFileRemoveAll: function(e) {
195
+ if(e.memo && this._checkCurrentContainer(e.memo.containerId)) {
196
+ $(this.containerId+'-new').hide();
197
+ $(this.containerId+'-old').show();
198
+ this.handleButtonsSwap();
199
+ }
200
+ },
201
+ handleFileNew: function (e) {
202
+ if(e.memo && this._checkCurrentContainer(e.memo.containerId)) {
203
+ $(this.containerId + '-new').show();
204
+ $(this.containerId + '-old').hide();
205
+ this.handleButtonsSwap();
206
+ }
207
+ },
208
+ handleButtonsSwap: function () {
209
+ $$(['#' + this.containerId+'-browse', '#'+this.containerId+'-delete']).invoke('toggle');
210
+ },
211
+ handleFileSelect: function() {
212
+ $(this.containerId+'_type').checked = true;
213
+ },
214
+ getElement: function (name) {
215
+ return $(this.containerId + '_' + name);
216
+ },
217
+ handleUploadComplete: function (files) {
218
+ files.each(function(item) {
219
+ if (!item.response.isJSON()) {
220
+ try {
221
+ console.log(item.response);
222
+ } catch (e2) {
223
+ alert(item.response);
224
+ }
225
+ return;
226
+ }
227
+ var response = item.response.evalJSON();
228
+ if (response.error) {
229
+ return;
230
+ }
231
+ var newFile = {};
232
+ newFile.file = response.file;
233
+ newFile.name = response.name;
234
+ newFile.size = response.size;
235
+ newFile.status = 'new';
236
+ this.file[0] = newFile;
237
+ }.bind(this));
238
+ this.updateFiles();
239
+ },
240
+ updateFiles: function() {
241
+ this.getElement('save').value = this.file.toJSON
242
+ ? this.file.toJSON()
243
+ : Object.toJSON(this.file);
244
+ this.file.each(function(row){
245
+ row.size = this.uploader.formatSize(row.size);
246
+ $(this.containerId + '-old').innerHTML = this.listTemplate.evaluate(row);
247
+ $(this.containerId + '-new').hide();
248
+ $(this.containerId + '-old').show();
249
+ }.bind(this));
250
+ }
251
+ }
252
+
253
+ var alertAlreadyDisplayed = false;
254
+
255
+ Validation.addAllThese([
256
+ ['validate-downloadable-file', 'Please upload a file.', function(v,element) {
257
+ linkType = element.up(0).down('input[value="file"]');
258
+ if (linkType.checked && (v == '' || v == '[]')) {
259
+ newFileContainer = element.up(0).down('div.new-file');
260
+ if (!alertAlreadyDisplayed && (newFileContainer.empty() || newFileContainer.style.display != 'none')) {
261
+ alertAlreadyDisplayed = true;
262
+ alert('<?php echo $this->jsQuoteEscape($this->__('There are files that were selected but not uploaded yet. Please upload or remove them first'));?>');
263
+ }
264
+ return false;
265
+ }
266
+ return true;
267
+ }]
268
+ ]);
269
+
270
+ Validation.addAllThese([
271
+ ['validate-downloadable-url', 'Please specify Url.', function(v,element) {
272
+ linkType = element.up(0).down('input[value="url"]');
273
+ if (linkType.checked && v == '') {
274
+ return false;
275
+ }
276
+ return true;
277
+ }]
278
+ ]);
279
+ //]]>
280
+ </script>
281
+
282
+ <div id="alert_messages_block"><?php echo $this->getMessageHtml() ?></div>
283
+
284
+ <div class="entry-edit">
285
+ <?php echo $this->getChildHtml('accordion') ?>
286
+ </div>
287
+ <div style="display:none">
288
+ <div id="custom-advice-container"></div>
289
+ </div>
290
+ <?php if ($this->isReadonly()): ?>
291
+ <script type="text/javascript">
292
+ $('downloadableInfo').select('input', 'select', 'textarea', 'button').each(function (item){
293
+ item.disabled = true;
294
+ if (item.tagName.toLowerCase() == 'button') {
295
+ item.addClassName('disabled');
296
+ }
297
+ });
298
+ </script>
299
+ <?php endif; ?>
300
+ <!--
301
+ <div><input type="hidden" name="affect_downloadable_information" value="1" /></div>
302
+ -->
app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable/links.phtml ADDED
@@ -0,0 +1,390 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+
29
+ /**
30
+ * @see Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Links
31
+ * @var $this Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Links
32
+ */
33
+ ?>
34
+ <?php $_product = $this->getProduct()?>
35
+ <div class="fieldset">
36
+ <table cellspacing="0" class="form-list">
37
+ <tbody>
38
+ <tr class="headings">
39
+ <td class="label"><label for="name"><?php echo Mage::helper('downloadable')->__('Title')?></label>
40
+ </td>
41
+ <td class="value">
42
+ <input type="text" class="input-text" id="downloadable_links_title" name="product[links_title]" value="<?php echo $_product->getId()?$_product->getLinksTitle():$this->getLinksTitle() ?>" <?php echo ($_product->getStoreId() && $this->getUsedDefault())?'disabled="disabled"':'' ?> />
43
+ </td>
44
+ <td class="scope-label"><?php echo !Mage::app()->isSingleStoreMode() ? Mage::helper('adminhtml')->__('[STORE VIEW]') : ''; ?></td>
45
+ <td class="value use-default">
46
+ <?php if($_product->getStoreId()): ?>
47
+ <input id="link_title_default" type="checkbox" name="use_default[]" value="links_title" onclick="toggleValueElements(this, this.parentNode.parentNode)" <?php echo $this->getUsedDefault()?'checked="checked"':'' ?> />
48
+ <label class="normal" for="link_title_default"><?php echo Mage::helper('downloadable')->__('Use Default Value'); ?></label>
49
+ <?php endif; ?>
50
+ </td>
51
+ </tr>
52
+ </tbody>
53
+ </table>
54
+ <br />
55
+ <table cellspacing="0" class="form-list">
56
+ <tbody>
57
+ <tr class="headings">
58
+ <td class="label"><label for="name"><?php echo Mage::helper('downloadable')->__('Links can be purchased separately')?></label>
59
+ </td>
60
+ <td class="value">
61
+ <?php echo $this->getPurchasedSeparatelySelect()?>
62
+ </td>
63
+ <td class="scope-label"><?php echo !Mage::app()->isSingleStoreMode() ? Mage::helper('adminhtml')->__('[GLOBAL]') : ''; ?></td>
64
+ <td><small>&nbsp;</small></td>
65
+ </tr>
66
+ </tbody>
67
+ </table>
68
+ <br />
69
+ <div class="grid">
70
+ <div class="hor-scroll">
71
+ <table cellspacing="0" class="data border">
72
+ <col width="33%" />
73
+ <col />
74
+ <col />
75
+ <col />
76
+ <col width="1" />
77
+ <col width="1" />
78
+ <col width="1" />
79
+ <col width="1" />
80
+ <thead>
81
+ <tr class="headings">
82
+ <th><?php echo Mage::helper('downloadable')->__('Title')?> <span class="required">*</span></th>
83
+ <?php if ($this->getCanReadPrice() !== false) : ?>
84
+ <th><?php echo Mage::helper('downloadable')->__('Price')?></th>
85
+ <?php endif; ?>
86
+ <th><span class="nobr"><?php echo Mage::helper('downloadable')->__('Max. Downloads')?></span></th>
87
+ <th><?php echo Mage::helper('downloadable')->__('Shareable')?></th>
88
+ <th><?php echo Mage::helper('downloadable')->__('Sample')?></th>
89
+ <th><?php echo Mage::helper('downloadable')->__('File')?></th>
90
+ <th><span class="nobr"><?php echo Mage::helper('downloadable')->__('Sort Order')?></span></th>
91
+ <th>&nbsp;</th>
92
+ </tr>
93
+ </thead>
94
+ <tfoot>
95
+ <tr>
96
+ <td colspan="8" class="a-right"><?php echo $this->getAddButtonHtml()?>&nbsp;<?php echo $this->getUploadButtonHtml() ?></td>
97
+ </tr>
98
+ </tfoot>
99
+ <tbody id="link_items_body">
100
+ </tbody>
101
+ </table>
102
+ <div><small><?php echo Mage::helper('downloadable')->__('Alphanumeric, dash and underscore characters are recommended for filenames. Improper characters are replaced with \'_\'.')?></small></div>
103
+ </div>
104
+ </div>
105
+ </div>
106
+
107
+ <script type="text/javascript">
108
+ //<![CDATA[
109
+ var linkTemplate = '<tr>'+
110
+ '<td>'+
111
+ '<input type="hidden" class="__delete__" name="downloadable[link][{{id}}][is_delete]" value="" />'+
112
+ '<input type="hidden" name="downloadable[link][{{id}}][link_id]" value="{{link_id}}" />'+
113
+ '<input type="text" class="required-entry input-text" name="downloadable[link][{{id}}][title]" value="{{title}}" />'+
114
+ '<?php echo $_product->getStoreId()?'<input type="checkbox" id="downloadable_link_{{id}}_title" name="downloadable[link][{{id}}][use_default_title]" value="1" /><label class="normal" for="downloadable_link_{{id}}_title">Use Default Value</label>':'' ?>'+
115
+ '</td>'+
116
+ <?php if ($this->getCanReadPrice() !== false) : ?>
117
+ '<td class="input-price">'+
118
+ '<input type="text" id="downloadable_link_{{id}}_price_value" class="input-text validate-number link-prices<?php if ($this->getCanEditPrice() === false) : ?> disabled<?php endif; ?>" name="downloadable[link][{{id}}][price]" value="{{price}}"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?> /> ' +
119
+ '<label>[<?php echo Mage::app()->getStore($_product->getStoreId())->getBaseCurrencyCode() ?>]</label>' +
120
+ <?php if ($_product->getStoreId() && $this->getIsPriceWebsiteScope()) : ?>
121
+ '<br /><input type="checkbox" id="downloadable_link_{{id}}_price" name="downloadable[link][{{id}}][use_default_price]" value="1"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?> /> <label for="downloadable_link_{{id}}_price">Use Default Value</label>' +
122
+ <?php endif; ?>
123
+ '</td>' +
124
+ <?php else : ?>
125
+ '<input type="hidden" id="downloadable_link_{{id}}_price_value" class="link-prices" name="downloadable[link][{{id}}][price]" value="0" />' +
126
+ <?php if ($_product->getStoreId() && $this->getIsPriceWebsiteScope()) : ?>
127
+ '<input type="hidden" id="downloadable_link_{{id}}_price" name="downloadable[link][{{id}}][use_default_price]" value="1" />' +
128
+ <?php endif; ?>
129
+ <?php endif; ?>
130
+ '<td><input type="text" id="downloadable_link_{{id}}_downloads" name="downloadable[link][{{id}}][number_of_downloads]" class="input-text downloads" value="{{number_of_downloads}}" />'+
131
+ '<p><input type="checkbox" class="checkbox" id="downloadable_link_{{id}}_is_unlimited" name="downloadable[link][{{id}}][is_unlimited]" value="1" {{is_unlimited}} /> <label for="downloadable_link_{{id}}_is_unlimited">Unlimited</label></p></td>'+
132
+ '<td class="a-center">'+
133
+ '<select id="downloadable_link _{{id}}_shareable" name="downloadable[link][{{id}}][is_shareable]">'+
134
+ '<option value="1">Yes</option>'+
135
+ '<option value="0">No</option>'+
136
+ '<option value="2" selected="selected">Use config</option>'+
137
+ '</select>'+
138
+ '</td>'+
139
+ '<td>'+
140
+ '<div class="files">'+
141
+ '<div class="row a-right">'+
142
+ '<label for="downloadable_link_{{id}}_sample_file_type" class="a-left"><input type="radio" class="radio" id="downloadable_link_{{id}}_sample_file_type" name="downloadable[link][{{id}}][sample][type]" value="file"{{sample_file_checked}} /> File:</label>'+
143
+ '<input type="hidden" id="downloadable_link_{{id}}_sample_file_save" name="downloadable[link][{{id}}][sample][file]" value="{{sample_file_save}}" />'+
144
+ '<?php echo $this->getBrowseButtonHtml('sample_'); ?>'+
145
+ '<?php echo $this->getDeleteButtonHtml('sample_'); ?>'+
146
+ '<div id="downloadable_link_{{id}}_sample_file" class="uploader a-left">'+
147
+ '<div id="downloadable_link_{{id}}_sample_file-old" class="file-row-info"></div>'+
148
+ '<div id="downloadable_link_{{id}}_sample_file-new" class="file-row-info"></div>'+
149
+ '<div class="clear"></div>'+
150
+ '</div>'+
151
+ '</div>'+
152
+ '<div class="row">'+
153
+ '<label for="downloadable_link_{{id}}_sample_url_type"><input type="radio" class="radio" id="downloadable_link_{{id}}_sample_url_type" name="downloadable[link][{{id}}][sample][type]" value="url"{{sample_url_checked}} /> URL:</label><input type="text" class="input-text" name="downloadable[link][{{id}}][sample][url]" value="{{sample_url}}" />'+
154
+ '</div>'+
155
+ '<div>'+
156
+ '<span id="downloadable_link_{{id}}_sample_container"></span>'+
157
+ '</div>'+
158
+ '</div>'+
159
+ '</td>'+
160
+ '<td>'+
161
+ '<div class="files">'+
162
+ '<div class="row a-right">'+
163
+ '<label for="downloadable_link_{{id}}_file_type" class="a-left"><input type="radio" class="radio validate-one-required-by-name" id="downloadable_link_{{id}}_file_type" name="downloadable[link][{{id}}][type]" value="file"{{file_checked}} /> File:</label>'+
164
+ '<input type="hidden" class="validate-downloadable-file" id="downloadable_link_{{id}}_file_save" name="downloadable[link][{{id}}][file]" value="{{file_save}}" />'+
165
+ '<?php echo $this->getBrowseButtonHtml(); ?>'+
166
+ '<?php echo $this->getDeleteButtonHtml(); ?>'+
167
+ '<div id="downloadable_link_{{id}}_file" class="uploader a-left">'+
168
+ '<div id="downloadable_link_{{id}}_file-old" class="file-row-info"></div>'+
169
+ '<div id="downloadable_link_{{id}}_file-new" class="file-row-info new-file"></div>'+
170
+ '<div class="clear"></div>'+
171
+ '</div>'+
172
+ '</div>'+
173
+ '<div class="row">'+
174
+ '<label for="downloadable_link_{{id}}_url_type"><input type="radio" class="radio validate-one-required-by-name" id="downloadable_link_{{id}}_url_type" name="downloadable[link][{{id}}][type]" value="url"{{url_checked}} /> URL:</label><input type="text" class="validate-downloadable-url input-text" name="downloadable[link][{{id}}][link_url]" value="{{link_url}}" />'+
175
+ '</div>'+
176
+ '<div>'+
177
+ '<span id="downloadable_link_{{id}}_link_container"></span>'+
178
+ '</div>'+
179
+ '</div>'+
180
+ '</td>'+
181
+ '<td class="a-center"><input type="text" name="downloadable[link][{{id}}][sort_order]" value="{{sort_order}}" class="input-text sort" /></td>'+
182
+ '<td>'+
183
+ '<button id="downloadable_link_{{id}}_delete_button" type="button" class="scalable delete icon-btn delete-link-item"><span><span><span><?php echo $this->jsQuoteEscape(Mage::helper('downloadable')->__('Delete')); ?></span></span></span></button>'+
184
+ '</td>'+
185
+ '</tr>';
186
+
187
+ var linkItems = {
188
+ tbody : $('link_items_body'),
189
+ templateSyntax : /(^|.|\r|\n)({{(\w+)}})/,
190
+ templateText : linkTemplate,
191
+ itemCount : 0,
192
+ add : function(data) {
193
+ alertAlreadyDisplayed = false;
194
+ this.template = new Template(this.templateText, this.templateSyntax);
195
+
196
+ if(!data.link_id){
197
+ data = {};
198
+ data.link_id = 0;
199
+ data.link_type = 'file';
200
+ data.sample_type = 'none';
201
+ data.number_of_downloads = '<?php echo $this->getConfigMaxDownloads() ?>';
202
+ }
203
+
204
+ data.id = this.itemCount;
205
+
206
+ if (data.link_type == 'url') {
207
+ data.url_checked = ' checked="checked"';
208
+ } else if (data.link_type == 'file') {
209
+ data.file_checked = ' checked="checked"';
210
+ }
211
+ if (data.sample_type == 'url') {
212
+ data.sample_url_checked = ' checked="checked"';
213
+ } else if (data.sample_type == 'file') {
214
+ data.sample_file_checked = ' checked="checked"';
215
+ }
216
+
217
+ Element.insert(this.tbody, {'bottom':this.template.evaluate(data)});
218
+
219
+ scopeTitle = $('downloadable_link_'+data.id+'_title');
220
+ if (scopeTitle) {
221
+ Event.observe(scopeTitle, 'click', function(event){
222
+ scopeElm = $(Event.findElement(event, 'input'));
223
+ titleField = scopeElm.up(0).down('input[type="text"]');
224
+ if (scopeElm.checked == true) {
225
+ titleField.disabled = true;
226
+ } else {
227
+ titleField.disabled = false;
228
+ }
229
+ });
230
+ }
231
+ if (!data.store_title && scopeTitle) {
232
+ scopeTitle.up(0).down('input[type="text"]').disabled = true;
233
+ scopeTitle.checked = true;
234
+ }
235
+
236
+ scopePrice = $('downloadable_link_'+data.id+'_price');
237
+ if (scopePrice) {
238
+ Event.observe(scopePrice, 'click', function(event){
239
+ scopeElm = $(Event.findElement(event, 'input'));
240
+ priceField = scopeElm.up(0).down('input[type="text"]');
241
+ if (scopeElm.checked == true) {
242
+ priceField.disabled = true;
243
+ } else {
244
+ priceField.disabled = false;
245
+ }
246
+ });
247
+ }
248
+ if (!data.website_price && scopePrice) {
249
+ scopePrice.up(0).down('input[type="text"]').disabled = true;
250
+ scopePrice.checked = true;
251
+ }
252
+ downloadsElm = $('downloadable_link_'+data.id+'_downloads');
253
+ isUnlimitedElm = $('downloadable_link_'+data.id+'_is_unlimited');
254
+ if (data.is_unlimited) {
255
+ downloadsElm.disabled = true;
256
+ }
257
+ Event.observe(isUnlimitedElm, 'click', function(event){
258
+ elm = Event.element(event);
259
+ elm.up('td').down('input[type="text"].downloads').disabled = elm.checked;
260
+ });
261
+
262
+ if (data.is_shareable) {
263
+ options = $('downloadable_link _'+data.id+'_shareable').options;
264
+ for (var i=0; i < options.length; i++) {
265
+ if (options[i].value == data.is_shareable) {
266
+ options[i].selected = true;
267
+ }
268
+ }
269
+ }
270
+
271
+ sampleUrl = $('downloadable_link_'+data.id+'_sample_url_type');
272
+ linkUrl = $('downloadable_link_'+data.id+'_url_type');
273
+
274
+ if (!data.file_save) {
275
+ data.file_save = [];
276
+ }
277
+ if (!data.sample_file_save) {
278
+ data.sample_file_save = [];
279
+ }
280
+ var UploaderConfigLinkSamples = <?php echo $this->getConfigJson('link_samples') ?>.replace(
281
+ new RegExp('<?php echo $this->getId(); ?>', 'g'),
282
+ 'downloadable_link_'+data.id+'_sample_file');
283
+
284
+ // link sample file
285
+ new Downloadable.FileUploader(
286
+ 'linkssample',
287
+ 'linkssample_'+data.id,
288
+ sampleUrl.up('td'),
289
+ 'downloadable[link]['+data.id+'][sample]',
290
+ data.sample_file_save,
291
+ 'downloadable_link_'+data.id+'_sample_file',
292
+ UploaderConfigLinkSamples
293
+ );
294
+
295
+ var UploaderConfigLink = <?php echo $this->getConfigJson() ?>.replace(
296
+ new RegExp('<?php echo $this->getId(); ?>', 'g'),
297
+ 'downloadable_link_'+data.id+'_file');
298
+ // link file
299
+ new Downloadable.FileUploader(
300
+ 'links',
301
+ 'links_'+data.id,
302
+ linkUrl.up('td'),
303
+ 'downloadable[link]['+data.id+']',
304
+ data.file_save,
305
+ 'downloadable_link_'+data.id+'_file',
306
+ UploaderConfigLink
307
+ );
308
+
309
+ linkFile = $('downloadable_link_'+data.id+'_file_type');
310
+ linkFile.advaiceContainer = 'downloadable_link_'+data.id+'_link_container';
311
+ linkUrl.advaiceContainer = 'downloadable_link_'+data.id+'_link_container';
312
+ $('downloadable_link_'+data.id+'_file_save').advaiceContainer = 'downloadable_link_'+data.id+'_link_container';
313
+
314
+ sampleFile = $('downloadable_link_'+data.id+'_sample_file_type');
315
+
316
+ this.itemCount++;
317
+ this.togglePriceFields();
318
+ this.bindRemoveButtons();
319
+ },
320
+ remove : function(event){
321
+ var element = $(Event.findElement(event, 'tr'));
322
+ alertAlreadyDisplayed = false;
323
+ if(element){
324
+ element.down('input[type="hidden"].__delete__').value = '1';
325
+ Element.select(element, 'div.flex').each(function(elm){
326
+ elm.remove();
327
+ });
328
+ element.addClassName('no-display');
329
+ element.addClassName('ignore-validate');
330
+ element.hide();
331
+ }
332
+ },
333
+ bindRemoveButtons : function(){
334
+ var buttons = $$('tbody#link_items_body .delete-link-item');
335
+ for(var i=0;i<buttons.length;i++){
336
+ if(!$(buttons[i]).binded && !$(buttons[i]).hasClassName('disabled')){
337
+ $(buttons[i]).binded = true;
338
+ Event.observe(buttons[i], 'click', this.remove.bind(this));
339
+ }
340
+ }
341
+ },
342
+ togglePriceFields : function(){
343
+ var toogleTo = $('downloadable_link_purchase_type').value;
344
+ var disableFlag = true;
345
+ if (toogleTo == '1') {
346
+ disableFlag = false;
347
+ }
348
+ $$('.link-prices[type="text"]').each(function(elm){
349
+ var flag = disableFlag;
350
+ if (elm.hasClassName('disabled')) {
351
+ flag = true;
352
+ }
353
+ elm.disabled = flag;
354
+ });
355
+ }
356
+ }
357
+
358
+ linkItems.bindRemoveButtons();
359
+
360
+ if ($('downloadable_link_purchase_type')) {
361
+ Event.observe('downloadable_link_purchase_type', 'change', linkItems.togglePriceFields.bind());
362
+ }
363
+
364
+ if($('add_link_item')) {
365
+ Event.observe('add_link_item', 'click', linkItems.add.bind(linkItems));
366
+ }
367
+
368
+ <?php foreach ($this->getLinkData() as $item): ?>
369
+ linkItems.add(<?php echo $item->toJson()?>);
370
+ <?php endforeach; ?>
371
+
372
+ Validation.addAllThese([
373
+ ['validate-downloadable-link-sample-file', 'Please specify File.', function(v,element) {
374
+ fileSaveElm = element.up('div').next('input[type="hidden"]');
375
+ if (element.checked && (fileSaveElm.value == '' || fileSaveElm.value == '[]')) {
376
+ return false;
377
+ }
378
+ return true;
379
+ }]
380
+ ]);
381
+ Validation.addAllThese([
382
+ ['validate-downloadable-link-sample-url', 'Please specify Sample URL.', function(v,element) {
383
+ if (element.checked && element.up('p').down('input[type="text"]').value == '') {
384
+ return false;
385
+ }
386
+ return true;
387
+ }]
388
+ ]);
389
+ //]]>
390
+ </script>
app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable/samples.phtml ADDED
@@ -0,0 +1,219 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * @see Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Samples
30
+ * @var $this Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Samples
31
+ */
32
+ ?>
33
+
34
+ <?php $_product = $this->getProduct() ?>
35
+ <div class="fieldset">
36
+ <table cellspacing="0" class="form-list">
37
+ <tbody>
38
+ <tr class="headings">
39
+ <td class="label"><label for="name"><?php echo Mage::helper('downloadable')->__('Title')?></label>
40
+ </td>
41
+ <td class="value">
42
+ <input type="text" class="input-text" name="product[samples_title]" value="<?php echo $_product->getId()?$_product->getSamplesTitle():$this->getSamplesTitle() ?>" <?php echo ($_product->getStoreId() && $this->getUsedDefault())?'disabled="disabled"':'' ?> />
43
+ </td>
44
+ <td class="scope-label"><?php echo !Mage::app()->isSingleStoreMode() ? Mage::helper('adminhtml')->__('[STORE VIEW]') : ''; ?></td>
45
+ <td class="value use-default">
46
+ <?php if($_product->getStoreId()): ?>
47
+ <input id="sample_title_default" type="checkbox" name="use_default[]" value="samples_title" onclick="toggleValueElements(this, this.parentNode.parentNode)" <?php echo $this->getUsedDefault()?'checked="checked"':'' ?> />
48
+ <label class="normal" for="sample_title_default">Use Default Value</label>
49
+ <?php endif; ?>
50
+ </td>
51
+ </tr>
52
+ </tbody>
53
+ </table>
54
+ <br />
55
+ <div class="grid">
56
+ <div class="hor-scroll">
57
+ <table cellspacing="0" class="data border">
58
+ <col />
59
+ <col width="1" />
60
+ <col width="1" />
61
+ <col width="1" />
62
+ <thead>
63
+ <tr class="headings">
64
+ <th><?php echo Mage::helper('downloadable')->__('Title') ?> <span class="required">*</span></th>
65
+ <th><?php echo Mage::helper('downloadable')->__('File') ?></th>
66
+ <th><span class="nobr"><?php echo Mage::helper('downloadable')->__('Sort Order') ?></span></th>
67
+ <th>&nbsp;</th>
68
+ </tr>
69
+ </thead>
70
+ <tfoot>
71
+ <tr>
72
+ <td colspan="4" class="a-right"><?php echo $this->getAddButtonHtml() ?>&nbsp;<?php echo $this->getUploadButtonHtml() ?></td>
73
+ </tr>
74
+ </tfoot>
75
+ <tbody id="sample_items_body">
76
+ </tbody>
77
+ </table>
78
+ <div><small><?php echo Mage::helper('downloadable')->__('Alphanumeric, dash and underscore characters are recommended for filenames. Improper characters are replaced with \'_\'.')?></small></div>
79
+ </div>
80
+ </div>
81
+ </div>
82
+ <script type="text/javascript">
83
+ //<![CDATA[>
84
+ var sampleTemplate = '<tr>'+
85
+ '<td>'+
86
+ '<input type="hidden" class="__delete__" name="downloadable[sample][{{id}}][is_delete]" value="" />'+
87
+ '<input type="hidden" name="downloadable[sample][{{id}}][sample_id]" value="{{sample_id}}" />'+
88
+ '<input type="text" class="required-entry input-text" name="downloadable[sample][{{id}}][title]" value="{{title}}" />'+
89
+ '<?php echo $_product->getStoreId()?'<br /><input type="checkbox" id="downloadable_sample_{{id}}_title" name="downloadable[sample][{{id}}][use_default_title]" value="1" /><label class="normal" for="downloadable_sample_{{id}}_title">Use Default Value</label>':'' ?>'+
90
+ '</td>'+
91
+ '<td>'+
92
+ '<div class="files-wide">'+
93
+ '<div class="row a-right">'+
94
+ '<label for="downloadable_sample_{{id}}_file_type" class="a-left"><input type="radio" class="radio validate-one-required-by-name" id="downloadable_sample_{{id}}_file_type" name="downloadable[sample][{{id}}][type]" value="file"{{file_checked}} /> File:</label>'+
95
+ '<input type="hidden" class="validate-downloadable-file" id="downloadable_sample_{{id}}_file_save" name="downloadable[sample][{{id}}][file]" value="{{file_save}}" />'+
96
+ '<?php echo $this->getBrowseButtonHtml(); ?>'+
97
+ '<?php echo $this->getDeleteButtonHtml(); ?>'+
98
+ '<div id="downloadable_sample_{{id}}_file" class="uploader a-left">' +
99
+ '<div id="downloadable_sample_{{id}}_file-old" class="file-row-info"></div>'+
100
+ '<div id="downloadable_sample_{{id}}_file-new" class="file-row-info new-file"></div>'+
101
+ '<div class="clear"></div>'+
102
+ '</div>'+
103
+ '</div>'+
104
+ '<div class="row">'+
105
+ '<label for="downloadable_sample_{{id}}_url_type"><input type="radio" class="radio validate-one-required-by-name" id="downloadable_sample_{{id}}_url_type" name="downloadable[sample][{{id}}][type]" value="url"{{url_checked}} /> URL:</label> <input type="text" class="validate-downloadable-url input-text" name="downloadable[sample][{{id}}][sample_url]" value="{{sample_url}}" />'+
106
+ '</div>'+
107
+ '<div>'+
108
+ '<span id="downloadable_sample_{{id}}_container"></span>'+
109
+ '</div>'+
110
+ '</div>'+
111
+
112
+ '</td>'+
113
+ '<td class="a-center"><input type="text" name="downloadable[sample][{{id}}][sort_order]" value="{{sort_order}}" class="input-text sort" /></td>'+
114
+ '<td>'+
115
+ '<button type="button" class="scalable delete icon-btn delete-sample-item"><span><span><span>Delete</span></span></span></button>'+
116
+ '</td>'+
117
+ '</tr>';
118
+ var sampleItems = {
119
+ tbody : $('sample_items_body'),
120
+ templateSyntax : /(^|.|\r|\n)({{(\w+)}})/,
121
+ templateText : sampleTemplate,
122
+ itemCount : 0,
123
+ add : function(data) {
124
+ alertAlreadyDisplayed = false;
125
+ this.template = new Template(this.templateText, this.templateSyntax);
126
+
127
+ if(!data.sample_id){
128
+ data = {};
129
+ data.sample_type = 'file';
130
+ data.sample_id = 0;
131
+ }
132
+
133
+ data.id = this.itemCount;
134
+
135
+ if (data.sample_type == 'url') {
136
+ data.url_checked = ' checked="checked"';
137
+ } else if (data.sample_type == 'file') {
138
+ data.file_checked = ' checked="checked"';
139
+ }
140
+
141
+ Element.insert(this.tbody, {'bottom':this.template.evaluate(data)});
142
+
143
+ scopeTitle = $('downloadable_sample_'+data.id+'_title');
144
+ if (scopeTitle) {
145
+ Event.observe(scopeTitle, 'click', function(event){
146
+ scopeElm = $(Event.findElement(event, 'input'));
147
+ titleField = scopeElm.up(0).down('input[type="text"]');
148
+ if (scopeElm.checked == true) {
149
+ titleField.disabled = true;
150
+ } else {
151
+ titleField.disabled = false;
152
+ }
153
+ });
154
+ }
155
+ if (!data.store_title && scopeTitle) {
156
+ scopeTitle.up(0).down('input[type="text"]').disabled = true;
157
+ scopeTitle.checked = true;
158
+ }
159
+
160
+ sampleUrl = $('downloadable_sample_'+data.id+'_url_type');
161
+
162
+ var UploaderConfig = <?php echo $this->getConfigJson() ?>.replace(
163
+ new RegExp('<?php echo $this->getId(); ?>', 'g'),
164
+ 'downloadable_sample_'+data.id+'_file');
165
+
166
+ if (!data.file_save) {
167
+ data.file_save = [];
168
+ }
169
+ new Downloadable.FileUploader(
170
+ 'samples',
171
+ data.id,
172
+ sampleUrl.up('td').down('div.uploader'),
173
+ 'downloadable[sample]['+data.id+']',
174
+ data.file_save,
175
+ 'downloadable_sample_'+data.id+'_file',
176
+ UploaderConfig
177
+ );
178
+ sampleUrl.advaiceContainer = 'downloadable_sample_'+data.id+'_container';
179
+ sampleFile = $('downloadable_sample_'+data.id+'_file_type');
180
+ sampleFile.advaiceContainer = 'downloadable_sample_'+data.id+'_container';
181
+ $('downloadable_sample_'+data.id+'_file_save').advaiceContainer = 'downloadable_sample_'+data.id+'_container';
182
+
183
+ this.itemCount++;
184
+ this.bindRemoveButtons();
185
+ },
186
+ remove : function(event){
187
+ var element = $(Event.findElement(event, 'tr'));
188
+ alertAlreadyDisplayed = false;
189
+ if(element){
190
+ element.down('input[type="hidden"].__delete__').value = '1';
191
+ element.down('div.flex').remove();
192
+ element.addClassName('no-display');
193
+ element.addClassName('ignore-validate');
194
+ element.hide();
195
+ }
196
+ },
197
+ bindRemoveButtons : function(){
198
+ var buttons = $$('tbody#sample_items_body .delete-sample-item');
199
+ for(var i=0;i<buttons.length;i++){
200
+ if(!$(buttons[i]).binded){
201
+ $(buttons[i]).binded = true;
202
+ Event.observe(buttons[i], 'click', this.remove.bind(this));
203
+ }
204
+ }
205
+ }
206
+ }
207
+
208
+ sampleItems.bindRemoveButtons();
209
+
210
+ if($('add_sample_item')){
211
+ Event.observe('add_sample_item', 'click', sampleItems.add.bind(sampleItems));
212
+ }
213
+
214
+ <?php foreach ($this->getSampleData() as $item): ?>
215
+ sampleItems.add(<?php echo $item->toJson() ?>);
216
+ <?php endforeach; ?>
217
+
218
+ //]]>
219
+ </script>
app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/creditmemo/name.phtml ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <?php if ($_item = $this->getItem()): ?>
29
+ <h5 class="title"><?php echo $_item->getName() ?></h5>
30
+ <div><strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong> <?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->escapeHtml($this->getSku()))); ?></div>
31
+ <?php if ($this->getOrderOptions()): ?>
32
+ <dl class="item-options">
33
+ <?php foreach ($this->getOrderOptions() as $_option): ?>
34
+ <dt><?php echo $this->escapeHtml($_option['label']) ?></dt>
35
+ <dd>
36
+ <?php if (isset($_option['custom_view']) && $_option['custom_view']): ?>
37
+ <?php echo $_option['value'];?>
38
+ <?php else: ?>
39
+ <?php echo Mage::helper('core/string')->truncate($_option['value'], 55, '', $_remainder);?>
40
+ <?php if ($_remainder):?>
41
+ ... <span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_remainder ?></span>
42
+ <script type="text/javascript">
43
+ $('<?php echo $_id ?>').hide();
44
+ $('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
45
+ $('<?php echo $_id ?>').up().observe('mouseout', function(){$('<?php echo $_id ?>').hide();});
46
+ </script>
47
+ <?php endif;?>
48
+ <?php endif;?>
49
+ </dd>
50
+ <?php endforeach; ?>
51
+ </dl>
52
+ <?php endif; ?>
53
+ <?php if ($this->getLinks()): ?>
54
+ <dl class="item-options">
55
+ <dt><?php echo $this->getLinksTitle(); ?></dt>
56
+ <?php foreach ($this->getLinks()->getPurchasedItems() as $_link): ?>
57
+ <dd><?php echo $this->escapeHtml($_link->getLinkTitle()); ?></dd>
58
+ <?php endforeach; ?>
59
+ </dl>
60
+ <?php endif; ?>
61
+ <?php echo $this->escapeHtml($_item->getDescription()) ?>
62
+ <?php endif; ?>
app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/invoice/name.phtml ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <?php if ($_item = $this->getItem()): ?>
29
+ <h5 class="title"><?php echo $_item->getName() ?></h5>
30
+ <div><strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong> <?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->escapeHtml($this->getSku()))); ?></div>
31
+ <?php if ($this->getOrderOptions()): ?>
32
+ <dl class="item-options">
33
+ <?php foreach ($this->getOrderOptions() as $_option): ?>
34
+ <dt><?php echo $this->escapeHtml($_option['label']) ?></dt>
35
+ <dd>
36
+ <?php if (isset($_option['custom_view']) && $_option['custom_view']): ?>
37
+ <?php echo $_option['value'];?>
38
+ <?php else: ?>
39
+ <?php echo Mage::helper('core/string')->truncate($_option['value'], 55, '', $_remainder);?>
40
+ <?php if ($_remainder):?>
41
+ ... <span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_remainder ?></span>
42
+ <script type="text/javascript">
43
+ $('<?php echo $_id ?>').hide();
44
+ $('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
45
+ $('<?php echo $_id ?>').up().observe('mouseout', function(){$('<?php echo $_id ?>').hide();});
46
+ </script>
47
+ <?php endif;?>
48
+ <?php endif;?>
49
+ </dd>
50
+ <?php endforeach; ?>
51
+ </dl>
52
+ <?php endif; ?>
53
+ <?php if ($this->getLinks()): ?>
54
+ <dl class="item-options">
55
+ <dt><?php echo $this->getLinksTitle(); ?></dt>
56
+ <?php foreach ($this->getLinks()->getPurchasedItems() as $_link): ?>
57
+ <dd><?php echo $this->escapeHtml($_link->getLinkTitle()); ?> (<?php echo $_link->getNumberOfDownloadsBought()?$_link->getNumberOfDownloadsBought():Mage::helper('downloadable')->__('Unlimited') ?>)</dd>
58
+ <?php endforeach; ?>
59
+ </dl>
60
+ <?php endif; ?>
61
+ <?php echo $this->escapeHtml($_item->getDescription()) ?>
62
+ <?php endif; ?>
app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/name.phtml ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <?php if ($_item = $this->getItem()): ?>
29
+ <h5 class="title"><?php echo $_item->getName() ?></h5>
30
+ <div><strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong> <?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->escapeHtml($this->getSku()))); ?></div>
31
+ <?php if ($this->getOrderOptions()): ?>
32
+ <dl class="item-options">
33
+ <?php foreach ($this->getOrderOptions() as $_option): ?>
34
+ <dt><?php echo $this->escapeHtml($_option['label']) ?></dt>
35
+ <dd>
36
+ <?php if (isset($_option['custom_view']) && $_option['custom_view']): ?>
37
+ <?php echo $_option['value'];?>
38
+ <?php else: ?>
39
+ <?php echo Mage::helper('core/string')->truncate($_option['value'], 55, '', $_remainder);?>
40
+ <?php if ($_remainder):?>
41
+ ... <span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_remainder ?></span>
42
+ <script type="text/javascript">
43
+ $('<?php echo $_id ?>').hide();
44
+ $('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
45
+ $('<?php echo $_id ?>').up().observe('mouseout', function(){$('<?php echo $_id ?>').hide();});
46
+ </script>
47
+ <?php endif;?>
48
+ <?php endif;?>
49
+ </dd>
50
+ <?php endforeach; ?>
51
+ </dl>
52
+ <?php endif; ?>
53
+ <?php if ($this->getLinks()): ?>
54
+ <dl class="item-options">
55
+ <dt><?php echo $this->getLinksTitle(); ?></dt>
56
+ <?php foreach ($this->getLinks()->getPurchasedItems() as $_link): ?>
57
+ <dd><?php echo $this->escapeHtml($_link->getLinkTitle()) ?> (<?php echo $_link->getNumberOfDownloadsUsed() . ' / ' . ($_link->getNumberOfDownloadsBought()?$_link->getNumberOfDownloadsBought():Mage::helper('downloadable')->__('U')) ?>)</dd>
58
+ <?php endforeach; ?>
59
+ </dl>
60
+ <?php endif; ?>
61
+ <?php echo $this->escapeHtml($_item->getDescription()) ?>
62
+ <?php endif; ?>
app/design/adminhtml/default/default/template/downloadable/sales/order/creditmemo/create/items/renderer/downloadable.phtml ADDED
@@ -0,0 +1,246 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php $_item = $this->getItem() ?>
28
+ <?php $this->setPriceDataObject($_item); ?>
29
+ <tr class="border">
30
+ <td><?php echo $this->getColumnHtml($_item, 'downloadable') ?></td>
31
+ <td class="a-right">
32
+
33
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
34
+ <span class="price-excl-tax">
35
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
36
+ <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
37
+ <?php endif; ?>
38
+
39
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales', $_item->getStoreId())): ?>
40
+ <?php
41
+ echo $this->displayPrices(
42
+ $_item->getBasePrice() + $_item->getBaseWeeeTaxAppliedAmount() + $_item->getBaseWeeeTaxDisposition(),
43
+ $_item->getPrice() + $_item->getWeeeTaxAppliedAmount() + $_item->getWeeeTaxDisposition()
44
+ );
45
+ ?>
46
+ <?php else: ?>
47
+ <?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?>
48
+ <?php endif; ?>
49
+
50
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
51
+ <br/>
52
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales', $_item->getStoreId())): ?>
53
+ <small>
54
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
55
+ <span class="nobr"><?php echo $tax['title']; ?>
56
+ : <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
57
+ <?php endforeach; ?>
58
+ </small>
59
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales', $_item->getStoreId())): ?>
60
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
61
+ <span class="nobr"><small><?php echo $tax['title']; ?>
62
+ : <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></small></span>
63
+ <?php endforeach; ?>
64
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales', $_item->getStoreId())): ?>
65
+ <small>
66
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
67
+ <span class="nobr"><?php echo $tax['title']; ?>
68
+ : <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
69
+ <?php endforeach; ?>
70
+ </small>
71
+ <?php endif; ?>
72
+
73
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales', $_item->getStoreId())): ?>
74
+ <br/>
75
+ <span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br/>
76
+ <?php
77
+ echo $this->displayPrices(
78
+ $_item->getBasePrice() + $_item->getBaseWeeeTaxAppliedAmount() + $_item->getBaseWeeeTaxDisposition(),
79
+ $_item->getPrice() + $_item->getWeeeTaxAppliedAmount() + $_item->getWeeeTaxDisposition()
80
+ );
81
+ ?>
82
+ </span>
83
+ <?php endif; ?>
84
+ <?php endif; ?>
85
+ </span>
86
+ <br/>
87
+ <?php endif; ?>
88
+
89
+ <?php if ($this->helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()): ?>
90
+ <span class="price-incl-tax">
91
+ <?php if ($this->helper('tax')->displayCartBothPrices()): ?>
92
+ <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax'); ?>:</span>
93
+ <?php endif; ?>
94
+ <?php $weeeTaxInclTax = Mage::helper('weee')->getWeeeTaxInclTax($_item); ?>
95
+ <?php if ($weeeTaxInclTax && Mage::helper('weee')->typeOfDisplay($_item, 0, 'sales')): // including ?>
96
+ <?php echo $this->helper('checkout')->formatPrice($this->helper('checkout')->getPriceInclTax($_item) + $weeeTaxInclTax); ?>
97
+ <?php elseif ($weeeTaxInclTax && Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): // incl. + weee ?>
98
+ <?php echo $this->helper('checkout')->formatPrice($this->helper('checkout')->getPriceInclTax($_item) + $weeeTaxInclTax); ?>
99
+ <br/>
100
+ <small>
101
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
102
+ <span class="nobr"><?php echo $tax['title']; ?>
103
+ : <?php echo Mage::helper('core')->currency($tax['amount_incl_tax'], true, true); ?></span>
104
+ <br/>
105
+ <?php endforeach; ?>
106
+ </small>
107
+ <?php elseif ($weeeTaxInclTax && Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): // excl. + weee + final ?>
108
+ <?php echo $this->helper('checkout')->formatPrice($this->helper('checkout')->getPriceInclTax($_item)); ?>
109
+ <br/>
110
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
111
+ <span class="nobr"><small><?php echo $tax['title']; ?>
112
+ : <?php echo Mage::helper('core')->currency($tax['amount_incl_tax'], true, true); ?></small></span>
113
+ <br/>
114
+ <?php endforeach; ?>
115
+ <span class="nobr">
116
+ <?php echo Mage::helper('weee')->__('Total'); ?>:
117
+ <?php echo $this->helper('checkout')->formatPrice($this->helper('checkout')->getPriceInclTax($_item) + $weeeTaxInclTax); ?>
118
+ </span>
119
+ <?php else: // excl. ?>
120
+ <?php echo $this->helper('checkout')->formatPrice($this->helper('checkout')->getPriceInclTax($_item)); ?>
121
+ <?php endif; ?>
122
+ </span>
123
+ <?php endif; ?>
124
+ </td>
125
+ <td class="a-center"><?php echo $this->getColumnHtml($_item, 'qty') ?></td>
126
+ <?php if ($this->canParentReturnToStock($_item)) : ?>
127
+ <td class="a-center">
128
+ <?php if ($this->canReturnItemToStock($_item)) : ?>
129
+ <input type="checkbox" name="creditmemo[items][<?php echo $_item->getOrderItemId() ?>][back_to_stock]"
130
+ value="1"<?php if ($_item->getBackToStock()): ?> checked<?php endif; ?>/>
131
+ <?php endif; ?>
132
+ </td>
133
+ <?php endif; ?>
134
+ <td class="a-center">
135
+ <?php if ($this->canEditQty()) : ?>
136
+ <input type="text" class="input-text qty-input"
137
+ name="creditmemo[items][<?php echo $_item->getOrderItemId() ?>][qty]"
138
+ value="<?php echo $_item->getQty() * 1 ?>"/>
139
+ <?php else : ?>
140
+ <?php echo $_item->getQty() * 1 ?>
141
+ <?php endif; ?>
142
+ </td>
143
+ <td class="a-right">
144
+
145
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
146
+ <span class="price-excl-tax">
147
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
148
+ <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
149
+ <?php endif; ?>
150
+
151
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales', $_item->getStoreId())): ?>
152
+ <?php
153
+ echo $this->displayPrices(
154
+ $_item->getBaseRowTotal() + $_item->getBaseWeeeTaxAppliedRowAmount() + $_item->getBaseWeeeTaxRowDisposition(),
155
+ $_item->getRowTotal() + $_item->getWeeeTaxAppliedRowAmount() + $_item->getWeeeTaxRowDisposition()
156
+ );
157
+ ?>
158
+ <?php else: ?>
159
+ <?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?>
160
+ <?php endif; ?>
161
+
162
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
163
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales', $_item->getStoreId())): ?>
164
+ <small>
165
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
166
+ <span class="nobr"><?php echo $tax['title']; ?>
167
+ : <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
168
+ <?php endforeach; ?>
169
+ </small>
170
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales', $_item->getStoreId())): ?>
171
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
172
+ <span class="nobr"><small><?php echo $tax['title']; ?>
173
+ : <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></small></span>
174
+ <?php endforeach; ?>
175
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales', $_item->getStoreId())): ?>
176
+ <small>
177
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
178
+ <span class="nobr"><?php echo $tax['title']; ?>
179
+ : <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
180
+ <?php endforeach; ?>
181
+ </small>
182
+ <?php endif; ?>
183
+
184
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales', $_item->getStoreId())): ?>
185
+ <br/>
186
+ <span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br/>
187
+ <?php
188
+ echo $this->displayPrices(
189
+ $_item->getBaseRowTotal() + $_item->getBaseWeeeTaxAppliedRowAmount() + $_item->getBaseWeeeTaxRowDisposition(),
190
+ $_item->getRowTotal() + $_item->getWeeeTaxAppliedRowAmount() + $_item->getWeeeTaxRowDisposition()
191
+ );
192
+ ?>
193
+ </span>
194
+ <?php endif; ?>
195
+ <?php endif; ?>
196
+ </span>
197
+ <br/>
198
+ <?php endif; ?>
199
+
200
+ <?php if ($this->helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()): ?>
201
+ <span class="price-incl-tax">
202
+ <?php if ($this->helper('tax')->displayCartBothPrices()): ?>
203
+ <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax'); ?>:</span>
204
+ <?php endif; ?>
205
+ <?php $rowWeeeTaxInclTax = Mage::helper('weee')->getRowWeeeTaxInclTax($_item); ?>
206
+
207
+ <?php if ($rowWeeeTaxInclTax && Mage::helper('weee')->typeOfDisplay($_item, 0, 'sales')): // including ?>
208
+ <?php echo $this->helper('checkout')->formatPrice($this->helper('checkout')->getSubtotalInclTax($_item) + $rowWeeeTaxInclTax); ?>
209
+ <?php elseif ($rowWeeeTaxInclTax && Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): // incl. + weee ?>
210
+ <?php echo $this->helper('checkout')->formatPrice($this->helper('checkout')->getSubtotalInclTax($_item) + $rowWeeeTaxInclTax); ?>
211
+ <br/>
212
+ <small>
213
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
214
+ <span class="nobr"><?php echo $tax['title']; ?>
215
+ : <?php echo Mage::helper('core')->currency($tax['row_amount_incl_tax'], true, true); ?></span>
216
+ <br/>
217
+ <?php endforeach; ?>
218
+ </small>
219
+ <?php elseif ($rowWeeeTaxInclTax && Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): // excl. + weee + final ?>
220
+ <?php echo $this->helper('checkout')->formatPrice($this->helper('checkout')->getSubtotalInclTax($_item)); ?>
221
+ <br/>
222
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
223
+ <span class="nobr"><small><?php echo $tax['title']; ?>
224
+ : <?php echo Mage::helper('core')->currency($tax['row_amount_incl_tax'], true, true); ?></small></span>
225
+ <br/>
226
+ <?php endforeach; ?>
227
+ <span class="nobr">
228
+ <?php echo Mage::helper('weee')->__('Total'); ?>:
229
+ <?php echo $this->helper('checkout')->formatPrice($this->helper('checkout')->getSubtotalInclTax($_item) + $rowWeeeTaxInclTax); ?>
230
+ </span>
231
+ <?php else: // excl. ?>
232
+ <?php echo $this->helper('checkout')->formatPrice($this->helper('checkout')->getSubtotalInclTax($_item)); ?>
233
+ <?php endif; ?>
234
+ </span>
235
+ <?php endif; ?>
236
+ </td>
237
+
238
+ <td class="a-right"><?php echo $this->displayPriceAttribute('tax_amount') ?></td>
239
+ <td class="a-right"><?php echo $this->displayPriceAttribute('discount_amount') ?></td>
240
+ <td class="a-right last">
241
+ <?php echo $this->displayPrices(
242
+ $_item->getBaseRowTotal() + $_item->getBaseTaxAmount() - $_item->getBaseDiscountAmount() + $_item->getBaseHiddenTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmount(),
243
+ $_item->getRowTotal() + $_item->getTaxAmount() - $_item->getDiscountAmount() + $_item->getHiddenTaxAmount() + $_item->getWeeeTaxAppliedRowAmount()
244
+ ) ?>
245
+ </td>
246
+ </tr>
app/design/adminhtml/default/default/template/downloadable/sales/order/creditmemo/view/items/renderer/downloadable.phtml ADDED
@@ -0,0 +1,229 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php $_item = $this->getItem() ?>
28
+ <?php $this->setPriceDataObject($_item) ?>
29
+ <tr class="border">
30
+ <td><?php echo $this->getColumnHtml($_item, 'downloadable') ?></td>
31
+ <td class="a-right">
32
+
33
+ <?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
34
+ <span class="price-excl-tax">
35
+ <?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
36
+ <span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
37
+ <?php endif; ?>
38
+
39
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales', $_item->getStoreId())): ?>
40
+ <?php
41
+ echo $this->displayPrices(
42
+ $_item->getBasePrice() + $_item->getBaseWeeeTaxAppliedAmount() + $_item->getBaseWeeeTaxDisposition(),
43
+ $_item->getPrice() + $_item->getWeeeTaxAppliedAmount() + $_item->getWeeeTaxDisposition()
44
+ );
45
+ ?>
46
+ <?php else: ?>
47
+ <?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?>
48
+ <?php endif; ?>
49
+
50
+ <?php if (Mage::helper('weee')->getApplied($_item)): ?>
51
+ <br/>
52
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales', $_item->getStoreId())): ?>
53
+ <small>
54
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
55
+ <span class="nobr"><?php echo $tax['title']; ?>
56
+ : <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
57
+ <?php endforeach; ?>
58
+ </small>
59
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales', $_item->getStoreId())): ?>
60
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
61
+ <span class="nobr"><small><?php echo $tax['title']; ?>
62
+ : <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></small></span>
63
+ <?php endforeach; ?>
64
+ <?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales', $_item->getStoreId())): ?>
65
+ <small>
66
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
67
+ <span class="nobr"><?php echo $tax['title']; ?>
68
+ : <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
69
+ <?php endforeach; ?>
70
+ </small>
71
+ <?php endif; ?>
72
+
73
+ <?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales', $_item->getStoreId())): ?>
74
+ <br/>
75
+ <span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br/>
76
+ <?php
77
+ echo $this->displayPrices(
78
+ $_item->getBasePrice() + $_item->getBaseWeeeTaxAppliedAmount() + $_item->getBaseWeeeTaxDisposition(),
79
+ $_item->getPrice() + $_item->getWeeeTaxAppliedAmount() + $_item->getWeeeTaxDisposition()
80
+ );
81
+ ?>
82
+ </span>
83
+ <?php endif; ?>
84
+ <?php endif; ?>
85
+ </span>
86
+ <br/>
87
+ <?php endif; ?>
88
+
89
+ <?php if ($this->helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()): ?>
90
+ <span class="price-incl-tax">
91
+ <?php if ($this->helper('tax')->displayCartBothPrices()): ?>
92
+ <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax'); ?>:</span>
93
+ <?php endif; ?>
94
+
95
+ <?php $weeeTaxInclTax = Mage::helper('weee')->getWeeeTaxInclTax($_item); ?>
96
+
97
+ <?php if ($weeeTaxInclTax && Mage::helper('weee')->typeOfDisplay($_item, 0, 'sales')): // including ?>
98
+ <?php echo $this->helper('checkout')->formatPrice($this->helper('checkout')->getPriceInclTax($_item) + $weeeTaxInclTax); ?>
99
+ <?php elseif ($weeeTaxInclTax && Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): // incl. + weee ?>
100
+ <?php echo $this->helper('checkout')->formatPrice($this->helper('checkout')->getPriceInclTax($_item) + $weeeTaxInclTax); ?>
101
+ <br/>
102
+ <small>
103
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
104
+ <span class="nobr"><?php echo $tax['title']; ?>
105
+ : <?php echo Mage::helper('core')->currency($tax['amount_incl_tax'], true, true); ?></span>
106
+ <br/>
107
+ <?php endforeach; ?>
108
+ </small>
109
+ <?php elseif ($weeeTaxInclTax && Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): // excl. + weee + final ?>
110
+ <?php echo $this->helper('checkout')->formatPrice($this->helper('checkout')->getPriceInclTax($_item)); ?>
111
+ <br/>
112
+ <?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
113
+ <span class="nobr"><small><?php echo $tax['title']; ?>
114
+ : <?php echo Mage::helper('core')->currency($tax['amount_incl_tax'], true, true); ?></small></span>
115
+ <br/>
116
+ <