mVentory_Productivity - Version 1.1.0

Version Notes

* Better compatibility with mVentory API extension
* Allow user to set scope for product save
* Move settings into single tab
* Workaround for bug in Magento code

Download this release

Release Info

Developer Anatoly A. Kazantsev
Extension mVentory_Productivity
Version 1.1.0
Comparing to
See all releases


Code changes from version 1.0.0 to 1.1.0

app/code/community/MVentory/Productivity/Block/Config/Hint.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * NOTICE OF LICENSE
5
+ *
6
+ * This source file is subject to the Open Software License (OSL 3.0)
7
+ * that is bundled with this package in the file LICENSE-OSL.
8
+ * It is also available through the world-wide-web at this URL:
9
+ * http://opensource.org/licenses/osl-3.0.php
10
+ *
11
+ * @package MVentory/Productivity
12
+ * @copyright Copyright (c) 2014 mVentory Ltd. (http://mventory.com)
13
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
14
+ */
15
+
16
+ /**
17
+ * Block for system config hint
18
+ *
19
+ * @package MVentory/Productivity
20
+ * @author Anatoly A. Kazantsev <anatoly@mventory.com>
21
+ */
22
+
23
+ class MVentory_Productivity_Block_Config_Hint
24
+ extends Mage_Adminhtml_Block_Abstract
25
+ implements Varien_Data_Form_Element_Renderer_Interface
26
+ {
27
+ protected $_template = 'productivity/config/hint.phtml';
28
+
29
+ /**
30
+ * Render fieldset html
31
+ *
32
+ * @param Varien_Data_Form_Element_Abstract $element
33
+ * @return string
34
+ */
35
+ public function render(Varien_Data_Form_Element_Abstract $element) {
36
+ return $this->toHtml();
37
+ }
38
+ }
app/code/community/MVentory/Productivity/Block/Mage/Page/Html/Breadcrumbs.php CHANGED
@@ -22,8 +22,6 @@
22
  class MVentory_Productivity_Block_Mage_Page_Html_Breadcrumbs
23
  extends Mage_Page_Block_Html_Breadcrumbs {
24
 
25
- const PATH_HOME_URL = 'catalog/navigation/home_url';
26
-
27
  /*
28
  * Replaces link in 'home' crumb with external home URL if it's set
29
  * and adds 'shop' crumb with link to Magento's home page
@@ -32,10 +30,13 @@ class MVentory_Productivity_Block_Mage_Page_Html_Breadcrumbs
32
  * @return Mage_Core_Block_Abstract
33
  */
34
  protected function _beforeToHtml () {
35
- if (is_array($this->_crumbs)
36
- && isset($this->_crumbs['home'])
37
- && ($url = Mage::getStoreConfig(self::PATH_HOME_URL))) {
 
 
38
 
 
39
  $shopUrl = $this->_crumbs['home']['link'];
40
 
41
  $this->_crumbs['home']['link'] = $url;
22
  class MVentory_Productivity_Block_Mage_Page_Html_Breadcrumbs
23
  extends Mage_Page_Block_Html_Breadcrumbs {
24
 
 
 
25
  /*
26
  * Replaces link in 'home' crumb with external home URL if it's set
27
  * and adds 'shop' crumb with link to Magento's home page
30
  * @return Mage_Core_Block_Abstract
31
  */
32
  protected function _beforeToHtml () {
33
+ $replace = is_array($this->_crumbs)
34
+ && isset($this->_crumbs['home'])
35
+ && ($url = Mage::getStoreConfig(
36
+ MVentory_Productivity_Model_Config::_CATEGORY_HOME_URL
37
+ ));
38
 
39
+ if ($replace) {
40
  $shopUrl = $this->_crumbs['home']['link'];
41
 
42
  $this->_crumbs['home']['link'] = $url;
app/code/community/MVentory/Productivity/Block/Panel.php CHANGED
@@ -22,8 +22,6 @@
22
  class MVentory_Productivity_Block_Panel
23
  extends Mage_Core_Block_Template {
24
 
25
- const CONFIG_ANALYTICS_URL = 'google/analytics/productivity_analytics_url';
26
-
27
  protected function _getType () {
28
  return $this->getRequest()->getControllerName();
29
  }
@@ -79,7 +77,9 @@ class MVentory_Productivity_Block_Panel
79
  }
80
 
81
  public function _getAnalyticsUrl () {
82
- return Mage::getStoreConfig(self::CONFIG_ANALYTICS_URL);
 
 
83
  }
84
 
85
  public function _getHelpUrl () {
22
  class MVentory_Productivity_Block_Panel
23
  extends Mage_Core_Block_Template {
24
 
 
 
25
  protected function _getType () {
26
  return $this->getRequest()->getControllerName();
27
  }
77
  }
78
 
79
  public function _getAnalyticsUrl () {
80
+ return Mage::getStoreConfig(
81
+ MVentory_Productivity_Model_Config::_ANALYTICS_URL
82
+ );
83
  }
84
 
85
  public function _getHelpUrl () {
app/code/community/MVentory/Productivity/Model/Config.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * NOTICE OF LICENSE
5
+ *
6
+ * This source file is subject to the Open Software License (OSL 3.0)
7
+ * that is bundled with this package in the file LICENSE-OSL.
8
+ * It is also available through the world-wide-web at this URL:
9
+ * http://opensource.org/licenses/osl-3.0.php
10
+ *
11
+ * @package MVentory/Productivity
12
+ * @copyright Copyright (c) 2014 mVentory Ltd. (http://mventory.com)
13
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
14
+ */
15
+
16
+ /**
17
+ * Various constants and values
18
+ *
19
+ * @package MVentory/Productivity
20
+ * @author Anatoly A. Kazantsev <anatoly@mventory.com>
21
+ */
22
+ class MVentory_Productivity_Model_Config {
23
+
24
+ //Config paths
25
+ const _CATEGORY_FLATTEN_TREE = 'productivity/category/flatten_tree';
26
+ const _CATEGORY_HOME_URL = 'productivity/category/home_url';
27
+ const _DISPLAY_PRODUCTS = 'productivity/category/display_descending_products';
28
+ const _PRODUCT_SAVE_SCOPE = 'productivity/product/save_scope';
29
+ const _ANALYTICS_URL = 'productivity/analytics/url';
30
+
31
+ //Product save scopes
32
+ const PRODUCT_SCOPE_GLOBAL = 1;
33
+ const PRODUCT_SCOPE_CURRENT = 2;
34
+ }
app/code/community/MVentory/Productivity/Model/Mage/Catalog/Category.php CHANGED
@@ -22,11 +22,6 @@
22
  class MVentory_Productivity_Model_Mage_Catalog_Category
23
  extends Mage_Catalog_Model_Category {
24
 
25
- const DISPLAY_DESCENDING_PRODUCTS
26
- = 'catalog/frontend/display_descending_products';
27
-
28
- const HIDE_EMPTY_CATEGORIES = 'catalog/navigation/hide_empty_categories';
29
-
30
  /**
31
  * Get category products collection
32
  *
@@ -37,8 +32,12 @@ class MVentory_Productivity_Model_Mage_Catalog_Category
37
  * @return Varien_Data_Collection_Db
38
  */
39
  public function getProductCollection () {
40
- if ($this->getIsAnchor()
41
- || !Mage::getStoreConfig(self::DISPLAY_DESCENDING_PRODUCTS))
 
 
 
 
42
  return parent::getProductCollection();
43
 
44
  return Mage::getResourceModel('catalog/product_collection')
@@ -80,7 +79,9 @@ class MVentory_Productivity_Model_Mage_Catalog_Category
80
  $toLoad
81
  );
82
 
83
- return Mage::getStoreConfig(self::HIDE_EMPTY_CATEGORIES)
 
 
84
  ? $this->_removeParentCategories($categories)
85
  : $categories;
86
  }
22
  class MVentory_Productivity_Model_Mage_Catalog_Category
23
  extends Mage_Catalog_Model_Category {
24
 
 
 
 
 
 
25
  /**
26
  * Get category products collection
27
  *
32
  * @return Varien_Data_Collection_Db
33
  */
34
  public function getProductCollection () {
35
+ $default = $this->getIsAnchor()
36
+ || !Mage::getStoreConfig(
37
+ MVentory_Productivity_Model_Config::_DISPLAY_PRODUCTS
38
+ );
39
+
40
+ if ($default)
41
  return parent::getProductCollection();
42
 
43
  return Mage::getResourceModel('catalog/product_collection')
79
  $toLoad
80
  );
81
 
82
+ return Mage::getStoreConfig(
83
+ MVentory_Productivity_Model_Config::_CATEGORY_FLATTEN_TREE
84
+ )
85
  ? $this->_removeParentCategories($categories)
86
  : $categories;
87
  }
app/code/community/MVentory/Productivity/Model/Setting/Source/Savescope.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * NOTICE OF LICENSE
5
+ *
6
+ * This source file is subject to the Open Software License (OSL 3.0)
7
+ * that is bundled with this package in the file LICENSE-OSL.
8
+ * It is also available through the world-wide-web at this URL:
9
+ * http://opensource.org/licenses/osl-3.0.php
10
+ *
11
+ * @package MVentory/Productivity
12
+ * @copyright Copyright (c) 2014 mVentory Ltd. (http://mventory.com)
13
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
14
+ */
15
+
16
+ /**
17
+ * Source model for product saving scope
18
+ *
19
+ * @package MVentory/Productivity
20
+ * @author Anatoly A. Kazantsev <anatoly@mventory.com>
21
+ */
22
+ class MVentory_Productivity_Model_Setting_Source_Savescope {
23
+
24
+ /**
25
+ * Options getter
26
+ *
27
+ * @return array
28
+ */
29
+ public function toOptionArray () {
30
+ $helper = Mage::helper('productivity');
31
+
32
+ return array(
33
+ array(
34
+ 'value' => MVentory_Productivity_Model_Config::PRODUCT_SCOPE_GLOBAL,
35
+ 'label' => $helper->__('Default scope')
36
+ ),
37
+ array(
38
+ 'value' => MVentory_Productivity_Model_Config::PRODUCT_SCOPE_CURRENT,
39
+ 'label' => $helper->__('Current store')
40
+ )
41
+ );
42
+ }
43
+ }
44
+
45
+ ?>
app/code/community/MVentory/Productivity/controllers/ImageController.php CHANGED
@@ -255,7 +255,12 @@ class MVentory_Productivity_ImageController
255
 
256
  $product = Mage::getModel('catalog/product')->load($id);
257
 
258
- return $product->getId() ? $product : null;
 
 
 
 
 
259
  }
260
 
261
  private function _getImageUrl ($product,
255
 
256
  $product = Mage::getModel('catalog/product')->load($id);
257
 
258
+ if (!$product->getId())
259
+ return null;
260
+
261
+ Mage::register('product', $product, true);
262
+
263
+ return $product;
264
  }
265
 
266
  private function _getImageUrl ($product,
app/code/community/MVentory/Productivity/controllers/ProductController.php CHANGED
@@ -39,12 +39,22 @@ class MVentory_Productivity_ProductController extends Mage_Core_Controller_Front
39
 
40
  if ($helper->isReviewerLogged())
41
  {
42
- // Product saves must be made from admin store
43
- Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
 
 
 
 
 
 
 
 
 
 
 
 
44
 
45
- //Don't set store ID to product because it has to be saved
46
- //in a global scope
47
- $product = Mage::getModel('catalog/product')->load($productId);
48
 
49
  // Only allow certain attributes to be set, if missing product will not be changed.
50
  $data = array_intersect_key(
@@ -55,6 +65,19 @@ class MVentory_Productivity_ProductController extends Mage_Core_Controller_Front
55
  $data['short_description'] = $data['description'];
56
  }
57
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
  if ($product->getTypeId() != 'configurable') {
59
  $qty = (float) $request->getParam('qty');
60
 
@@ -70,11 +93,43 @@ class MVentory_Productivity_ProductController extends Mage_Core_Controller_Front
70
  );
71
  }
72
 
73
- $product->addData($data)
74
- ->save();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
 
76
- // Reset store to be neat
77
- Mage::app()->setCurrentStore($storeId);
 
 
 
 
 
 
 
 
 
 
 
 
78
  }
79
 
80
  // Always show same page, even if nothing has changed
39
 
40
  if ($helper->isReviewerLogged())
41
  {
42
+ //Check if save scope is set and we need to load product
43
+ //with dara from current store
44
+ $hasScope = (int) Mage::getStoreConfig(
45
+ MVentory_Productivity_Model_Config::_PRODUCT_SAVE_SCOPE
46
+ );
47
+ $hasScope = MVentory_Productivity_Model_Config::PRODUCT_SCOPE_CURRENT
48
+ == $hasScope;
49
+
50
+ $product = Mage::getModel('catalog/product');
51
+
52
+ //Set current store ID before laoding product if save scope is set,
53
+ //e.g. user selected Current scope optin in admin interface
54
+ if ($hasScope)
55
+ $product->setStoreId($storeId);
56
 
57
+ $product->load($productId);
 
 
58
 
59
  // Only allow certain attributes to be set, if missing product will not be changed.
60
  $data = array_intersect_key(
65
  $data['short_description'] = $data['description'];
66
  }
67
 
68
+ //Find all attributes which value was changed in the editor by comparing
69
+ //data from request with product's data
70
+ //
71
+ //In admin interface it uses special Use default flag for every field
72
+ //which user removes before setting different value in selected scope.
73
+ //Productivity interface doesn't provide such flags, so it simply
74
+ //compares current product values with values entered in the form to
75
+ //find changed fields.
76
+ $changeAttrs = array();
77
+ foreach ($data as $code => $value)
78
+ if ($product->getData($code) != $value)
79
+ $changeAttrs[$code] = true;
80
+
81
  if ($product->getTypeId() != 'configurable') {
82
  $qty = (float) $request->getParam('qty');
83
 
93
  );
94
  }
95
 
96
+ if ($data) {
97
+ $product->addData($data);
98
+
99
+ //Set value of not changed attributes to false to prevents from copying
100
+ //attribute's values to current scope if user selected Current store
101
+ //option of Save edits to setting in admin interface
102
+ //
103
+ //Filter out following attributes:
104
+ // - Gallery attr (is a complex attr with it's own editor)
105
+ // - Global (setting value of global attr to false removes it globally)
106
+ // - Non-visible (non-visible attributes can't be edited directly)
107
+ // - Without input field (this attributes can'be edited directly)
108
+ //
109
+ //Filtering rules are taken from:
110
+ // - Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Attributes::_prepareForm()
111
+ // - Mage_Adminhtml_Block_Widget_Form::_setFieldset()
112
+ if ($hasScope) foreach ($product->getAttributes() as $code => $attr) {
113
+ $allow = $code != 'gallery'
114
+ && $attr->getIsGlobal()
115
+ != Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL
116
+ && $attr->getIsVisible()
117
+ && $attr->getFrontend()->getInputType();
118
 
119
+ if (!$allow || isset($changeAttrs[$code]))
120
+ continue;
121
+
122
+ $product->setData($code, false);
123
+ }
124
+
125
+ //Product saves must be made from admin store
126
+ Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
127
+
128
+ $product->save();
129
+
130
+ //Reset store to be neat
131
+ Mage::app()->setCurrentStore($storeId);
132
+ }
133
  }
134
 
135
  // Always show same page, even if nothing has changed
app/code/community/MVentory/Productivity/etc/config.xml CHANGED
@@ -191,5 +191,33 @@
191
  </productivity>
192
  </updates>
193
  </layout>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
194
  </adminhtml>
 
 
 
 
 
 
 
 
195
  </config>
191
  </productivity>
192
  </updates>
193
  </layout>
194
+
195
+ <acl>
196
+ <resources>
197
+ <admin>
198
+ <children>
199
+ <system>
200
+ <children>
201
+ <config>
202
+ <children>
203
+ <productivity>
204
+ <title>mVentory Productivity</title>
205
+ </productivity>
206
+ </children>
207
+ </config>
208
+ </children>
209
+ </system>
210
+ </children>
211
+ </admin>
212
+ </resources>
213
+ </acl>
214
  </adminhtml>
215
+
216
+ <default>
217
+ <productivity>
218
+ <product>
219
+ <save_scope>2</save_scope>
220
+ </product>
221
+ </productivity>
222
+ </default>
223
  </config>
app/code/community/MVentory/Productivity/etc/system.xml CHANGED
@@ -16,13 +16,50 @@
16
  -->
17
 
18
  <config>
 
 
 
 
 
 
 
19
  <sections>
20
- <catalog>
 
 
 
 
 
 
 
 
 
 
21
  <groups>
22
- <frontend>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  <fields>
24
- <display_descending_products translate="label" module="productivity">
25
- <label>Display all descending products</label>
 
 
26
  <frontend_type>select</frontend_type>
27
  <source_model>adminhtml/system_config_source_yesno</source_model>
28
 
@@ -30,15 +67,27 @@
30
  <show_in_website>1</show_in_website>
31
  <show_in_store>0</show_in_store>
32
 
33
- <sort_order>300</sort_order>
34
- </display_descending_products>
35
- </fields>
36
- </frontend>
37
 
38
- <navigation>
39
- <fields>
40
- <hide_empty_categories translate="label" module="productivity">
41
- <label>Show categories only with 2 or more sub-categories</label>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  <frontend_type>select</frontend_type>
43
  <source_model>adminhtml/system_config_source_yesno</source_model>
44
 
@@ -46,43 +95,63 @@
46
  <show_in_website>1</show_in_website>
47
  <show_in_store>0</show_in_store>
48
 
49
- <sort_order>100</sort_order>
50
- </hide_empty_categories>
 
 
51
 
52
- <home_url translate="label" module="productivity">
53
- <label>External Home URL</label>
54
- <frontend_type>text</frontend_type>
 
 
 
 
 
 
 
 
 
 
 
 
 
55
 
56
- <show_in_default>0</show_in_default>
57
  <show_in_website>1</show_in_website>
58
- <show_in_store>0</show_in_store>
59
 
60
- <sort_order>101</sort_order>
61
- </home_url>
62
  </fields>
63
- </navigation>
64
- </groups>
65
- </catalog>
66
 
67
- <google>
68
- <groups>
69
  <analytics>
 
 
 
 
 
 
 
 
70
  <fields>
71
- <productivity_analytics_url translate="label comment" module="productivity">
72
  <label>Analytics Reports URL</label>
 
 
73
  <frontend_type>text</frontend_type>
74
  <validate>validate-url</validate>
75
- <comment>Link to analytics reports for Productivity toolbar.</comment>
76
 
77
- <show_in_default>0</show_in_default>
78
  <show_in_website>1</show_in_website>
79
  <show_in_store>0</show_in_store>
80
 
81
- <sort_order>30</sort_order>
82
- </productivity_analytics_url>
83
  </fields>
84
  </analytics>
85
  </groups>
86
- </google>
87
  </sections>
88
  </config>
16
  -->
17
 
18
  <config>
19
+ <tabs>
20
+ <mventory translate="label">
21
+ <label>mVentory</label>
22
+ <sort_order>100</sort_order>
23
+ </mventory>
24
+ </tabs>
25
+
26
  <sections>
27
+ <productivity translate="label">
28
+ <label>Productivity</label>
29
+ <tab>mventory</tab>
30
+ <frontend_type>text</frontend_type>
31
+
32
+ <show_in_default>1</show_in_default>
33
+ <show_in_website>1</show_in_website>
34
+ <show_in_store>1</show_in_store>
35
+
36
+ <sort_order>0</sort_order>
37
+
38
  <groups>
39
+ <hint>
40
+ <frontend_model>productivity/config_hint</frontend_model>
41
+
42
+ <show_in_default>1</show_in_default>
43
+ <show_in_website>1</show_in_website>
44
+ <show_in_store>1</show_in_store>
45
+
46
+ <sort_order>0</sort_order>
47
+ </hint>
48
+
49
+ <category translate="label">
50
+ <label>Category</label>
51
+
52
+ <show_in_default>1</show_in_default>
53
+ <show_in_website>1</show_in_website>
54
+ <show_in_store>0</show_in_store>
55
+
56
+ <sort_order>1</sort_order>
57
+
58
  <fields>
59
+ <flatten_tree translate="label comment tooltip">
60
+ <label>Flatten categories tree</label>
61
+ <comment>Skip tree nodes with no products and only a single sub-category.</comment>
62
+ <tooltip>E.g. if category Furniture has no products assigned to it, but has a single sub-category Tables then Furniture is removed from the tree and Tables is shown in its place.</tooltip>
63
  <frontend_type>select</frontend_type>
64
  <source_model>adminhtml/system_config_source_yesno</source_model>
65
 
67
  <show_in_website>1</show_in_website>
68
  <show_in_store>0</show_in_store>
69
 
70
+ <sort_order>0</sort_order>
71
+ </flatten_tree>
 
 
72
 
73
+ <home_url translate="label comment tooltip">
74
+ <label>External Homepage URL</label>
75
+ <comment>Replace the URL of HOME in breadcrubms with this URL.</comment>
76
+ <tooltip>E.g. if the Magento store is in a subdomain and the main website is in the root domain then it is logical that clicking Home takes the user to the main website.</tooltip>
77
+ <frontend_type>text</frontend_type>
78
+ <validate>validate-url</validate>
79
+
80
+ <show_in_default>1</show_in_default>
81
+ <show_in_website>1</show_in_website>
82
+ <show_in_store>0</show_in_store>
83
+
84
+ <sort_order>1</sort_order>
85
+ </home_url>
86
+
87
+ <display_descending_products translate="label comment tooltip">
88
+ <label>Display products from subcategories</label>
89
+ <comment>Display all products from all subcategories.</comment>
90
+ <tooltip>E.g. category Furniture has no products assigned to it, but it will still show all products from subcategories Tables, Shelves, etc.</tooltip>
91
  <frontend_type>select</frontend_type>
92
  <source_model>adminhtml/system_config_source_yesno</source_model>
93
 
95
  <show_in_website>1</show_in_website>
96
  <show_in_store>0</show_in_store>
97
 
98
+ <sort_order>2</sort_order>
99
+ </display_descending_products>
100
+ </fields>
101
+ </category>
102
 
103
+ <product translate="label">
104
+ <label>Product</label>
105
+
106
+ <show_in_default>1</show_in_default>
107
+ <show_in_website>1</show_in_website>
108
+ <show_in_store>1</show_in_store>
109
+
110
+ <sort_order>2</sort_order>
111
+
112
+ <fields>
113
+ <save_scope translate="label comment tooltip">
114
+ <label>Save edits to</label>
115
+ <comment>Recommended: Current store. Use 'Default scope' for multiple websites with 1 store each.</comment>
116
+ <tooltip>Magento can save attribute values at Default or Store level. It may cause data discrepancies depending on your site config. Consider where front end edits should be saved or use 'Store level' if in doubt.</tooltip>
117
+ <frontend_type>select</frontend_type>
118
+ <source_model>productivity/setting_source_savescope</source_model>
119
 
120
+ <show_in_default>1</show_in_default>
121
  <show_in_website>1</show_in_website>
122
+ <show_in_store>1</show_in_store>
123
 
124
+ <sort_order>1</sort_order>
125
+ </save_scope>
126
  </fields>
127
+ </product>
 
 
128
 
 
 
129
  <analytics>
130
+ <label>Google Analytics</label>
131
+
132
+ <show_in_default>1</show_in_default>
133
+ <show_in_website>1</show_in_website>
134
+ <show_in_store>0</show_in_store>
135
+
136
+ <sort_order>3</sort_order>
137
+
138
  <fields>
139
+ <url translate="label comment tooltip">
140
  <label>Analytics Reports URL</label>
141
+ <comment>Direct link to reports in Google Analytics.</comment>
142
+ <tooltip>Log in to Google Analytics, navigate to the default report page and copy the URL into this text box. Any user with access to the reports will be able to jump there with one click in the toolbar.</tooltip>
143
  <frontend_type>text</frontend_type>
144
  <validate>validate-url</validate>
 
145
 
146
+ <show_in_default>1</show_in_default>
147
  <show_in_website>1</show_in_website>
148
  <show_in_store>0</show_in_store>
149
 
150
+ <sort_order>0</sort_order>
151
+ </url>
152
  </fields>
153
  </analytics>
154
  </groups>
155
+ </productivity>
156
  </sections>
157
  </config>
app/design/adminhtml/default/default/layout/productivity.xml CHANGED
@@ -16,44 +16,55 @@
16
  -->
17
 
18
  <layout>
19
- <adminhtml_catalog_product_set_edit>
20
- <reference name="js">
21
- <block type="productivity/adminhtml_catalog_product_attribute_set_edit_script" template="productivity/catalog/product/attribute/set/edit/script.js.phtml" name="attribute.script.js" />
22
- </reference>
23
- </adminhtml_catalog_product_set_edit>
24
- <adminhtml_catalog_product_attribute_index>
25
- <reference name="head">
26
- <action method="addJs"><script>productivity/adminhtml/update_grid.js</script></action>
27
- <action method="addCss"><name>productivity.css</name></action>
28
- </reference>
29
- </adminhtml_catalog_product_attribute_index>
30
- <adminhtml_catalog_product_set_index>
31
- <reference name="head">
32
- <action method="addJs"><script>productivity/adminhtml/update_grid.js</script></action>
33
- </reference>
34
- </adminhtml_catalog_product_set_index>
35
- <adminhtml_catalog_product_edit>
36
- <reference name="head">
37
- <action method="addCss"><name>productivity.css</name></action>
38
- </reference>
39
- <reference name="content">
40
- <block name="product.edit.frontview.button" type="productivity/adminhtml_catalog_product_edit_button" before="-" template="productivity/catalog/product/edit/button.phtml" />
41
- </reference>
42
- </adminhtml_catalog_product_edit>
43
- <adminhtml_catalog_category_edit>
44
- <reference name="head">
45
- <action method="addCss"><name>productivity.css</name></action>
46
- </reference>
47
- <reference name="content">
48
- <block name="category.edit.frontview.button" type="productivity/adminhtml_catalog_category_edit_button" before="-" template="productivity/catalog/category/edit/button.phtml" />
49
- </reference>
50
- </adminhtml_catalog_category_edit>
51
- <adminhtml_cms_page_edit>
52
- <reference name="head">
53
- <action method="addCss"><name>productivity.css</name></action>
54
- </reference>
55
- <reference name="content">
56
- <block name="page.edit.frontview.button" type="productivity/adminhtml_cms_page_edit_button" before="-" template="productivity/cms/page/edit/button.phtml" />
57
- </reference>
58
- </adminhtml_cms_page_edit>
59
- </layout>
 
 
 
 
 
 
 
 
 
 
 
16
  -->
17
 
18
  <layout>
19
+ <adminhtml_catalog_product_set_edit>
20
+ <reference name="js">
21
+ <block type="productivity/adminhtml_catalog_product_attribute_set_edit_script" template="productivity/catalog/product/attribute/set/edit/script.js.phtml" name="attribute.script.js" />
22
+ </reference>
23
+ </adminhtml_catalog_product_set_edit>
24
+
25
+ <adminhtml_catalog_product_attribute_index>
26
+ <reference name="head">
27
+ <action method="addJs"><script>productivity/adminhtml/update_grid.js</script></action>
28
+ <action method="addCss"><name>productivity.css</name></action>
29
+ </reference>
30
+ </adminhtml_catalog_product_attribute_index>
31
+
32
+ <adminhtml_catalog_product_set_index>
33
+ <reference name="head">
34
+ <action method="addJs"><script>productivity/adminhtml/update_grid.js</script></action>
35
+ </reference>
36
+ </adminhtml_catalog_product_set_index>
37
+
38
+ <adminhtml_catalog_product_edit>
39
+ <reference name="head">
40
+ <action method="addCss"><name>productivity.css</name></action>
41
+ </reference>
42
+ <reference name="content">
43
+ <block name="product.edit.frontview.button" type="productivity/adminhtml_catalog_product_edit_button" before="-" template="productivity/catalog/product/edit/button.phtml" />
44
+ </reference>
45
+ </adminhtml_catalog_product_edit>
46
+
47
+ <adminhtml_catalog_category_edit>
48
+ <reference name="head">
49
+ <action method="addCss"><name>productivity.css</name></action>
50
+ </reference>
51
+ <reference name="content">
52
+ <block name="category.edit.frontview.button" type="productivity/adminhtml_catalog_category_edit_button" before="-" template="productivity/catalog/category/edit/button.phtml" />
53
+ </reference>
54
+ </adminhtml_catalog_category_edit>
55
+
56
+ <adminhtml_cms_page_edit>
57
+ <reference name="head">
58
+ <action method="addCss"><name>productivity.css</name></action>
59
+ </reference>
60
+ <reference name="content">
61
+ <block name="page.edit.frontview.button" type="productivity/adminhtml_cms_page_edit_button" before="-" template="productivity/cms/page/edit/button.phtml" />
62
+ </reference>
63
+ </adminhtml_cms_page_edit>
64
+
65
+ <adminhtml_system_config_edit>
66
+ <reference name="head">
67
+ <action method="addCss"><name>productivity.css</name></action>
68
+ </reference>
69
+ </adminhtml_system_config_edit>
70
+ </layout>
app/design/adminhtml/default/default/template/productivity/config/hint.phtml ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * NOTICE OF LICENSE
5
+ *
6
+ * This source file is subject to the Open Software License (OSL 3.0)
7
+ * that is bundled with this package in the file LICENSE-OSL.
8
+ * It is also available through the world-wide-web at this URL:
9
+ * http://opensource.org/licenses/osl-3.0.php
10
+ *
11
+ * @package MVentory/Productivity
12
+ * @copyright Copyright (c) 2014 mVentory Ltd. (http://mventory.com)
13
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
14
+ */
15
+
16
+ ?>
17
+
18
+ <div class="productivity-config-hint">
19
+ Logged in Admins and Customers from group Reviewers can access some admin functions via Productivity Toolbar in the front end.
20
+ <br />
21
+ See <a target="_blank" href="https://github.com/mVentory/MVentory_Productivity/">project page</a> for documentation and source code. Check out our <a target="_blank" href="http://mventory.com/why-mventory/">Android app</a> for Magento admin.
22
+ </div>
app/design/frontend/base/default/template/productivity/catalog/product/latest.phtml CHANGED
@@ -21,8 +21,6 @@
21
 
22
  ?>
23
 
24
- <h1 class="no-display">Building materials and supplies</h1>
25
-
26
  <?php if (($_productCollection = $this->getProductCollection()) && $_productCollection->getSize()): ?>
27
 
28
  <div id="lastProducts" class="block" style="border-radius: 3px 3px 3px 3px;">
21
 
22
  ?>
23
 
 
 
24
  <?php if (($_productCollection = $this->getProductCollection()) && $_productCollection->getSize()): ?>
25
 
26
  <div id="lastProducts" class="block" style="border-radius: 3px 3px 3px 3px;">
app/etc/modules/MVentory_Productivity.xml CHANGED
@@ -16,10 +16,16 @@
16
  -->
17
 
18
  <config>
19
- <modules>
20
- <MVentory_Productivity>
21
- <active>true</active>
22
- <codePool>community</codePool>
23
- </MVentory_Productivity>
24
- </modules>
 
 
 
 
 
 
25
  </config>
16
  -->
17
 
18
  <config>
19
+ <modules>
20
+ <MVentory_Productivity>
21
+ <active>true</active>
22
+ <codePool>community</codePool>
23
+ </MVentory_Productivity>
24
+
25
+ <Mage_Review>
26
+ <depends>
27
+ <MVentory_Productivity />
28
+ </depends>
29
+ </Mage_Review>
30
+ </modules>
31
  </config>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>mVentory_Productivity</name>
4
- <version>1.0.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License version 3.0</license>
7
  <channel>community</channel>
@@ -36,7 +36,7 @@ Customers assigned to customer group called "Reviewers" can see most of the func
36
  &#xD;
37
  Source code and documentation&#xD;
38
  &#xD;
39
- https://github.com/mVentory/mvProductivity&#xD;
40
  &#xD;
41
  Support&#xD;
42
  &#xD;
@@ -45,11 +45,14 @@ Bug reports are welcome at support@zetaprints.com&#xD;
45
  License&#xD;
46
  &#xD;
47
  The extension is free open source released under OSL 3 license. Please, contribute your code if you make useful changes.</description>
48
- <notes>Initial release</notes>
 
 
 
49
  <authors><author><name>Anatoly A. Kazantsev</name><user>anatoly</user><email>anatoly@mventory.com</email></author></authors>
50
- <date>2014-05-29</date>
51
- <time>15:09:38</time>
52
- <contents><target name="mageetc"><dir name="modules"><file name="MVentory_Productivity.xml" hash="00d807ff8a6f07f118a2019aad343fe2"/></dir></target><target name="magecommunity"><dir name="MVentory"><dir name="Productivity"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Category"><dir name="Edit"><file name="Button.php" hash="373fde50d4cb8b2baf3cb0a0fe10fa34"/></dir></dir><dir name="Product"><dir name="Attribute"><dir name="Set"><dir name="Edit"><file name="Script.php" hash="082af8108d6e4e04a4919577873e8a4b"/></dir></dir></dir><dir name="Edit"><file name="Button.php" hash="b468bcf3eb55742ee50ea88cee50eda8"/></dir></dir></dir><dir name="Cms"><dir name="Page"><dir name="Edit"><file name="Button.php" hash="aa52a3a5c37605b062a167871c7d0040"/></dir></dir></dir></dir><dir name="Catalog"><dir name="Product"><dir name="Attribute"><dir name="Edit"><dir name="Tab"><file name="Options.php" hash="b29713fe74e58b53dec333fb351f1dd8"/></dir></dir></dir></dir></dir><dir name="Image"><file name="Edit.php" hash="859a79c62b6ce085d770d01ca9140a6d"/></dir><dir name="Mage"><dir name="Page"><dir name="Html"><file name="Breadcrumbs.php" hash="32e927420838a37870c2d49241425a63"/></dir></dir></dir><file name="Panel.php" hash="70842ca2ab8bff289598ba95fb82ff20"/><dir name="Product"><file name="Latest.php" hash="f139481ebac4b96354062afc7999188f"/><file name="Random.php" hash="ddb01f3903cdf72d1fb1b356b7e683f2"/><file name="Related.php" hash="9cc932519b8e303b8a08a88761a13ad0"/><file name="View.php" hash="94f99f7b2fa9bbf710bd10d1a3328ad7"/></dir><dir name="Rss"><file name="Import.php" hash="f8795dabbd7a0eac41969655313a2ea0"/><dir name="Product"><file name="Latest.php" hash="ace95b91bea601e481b5efa1f2cf3faa"/></dir></dir><file name="Slideshow.php" hash="135ea70800c6de483be020cbbf03fb42"/><dir name="Widget"><file name="Attribute.php" hash="729262fdc7af8cc0922d09528ac56cf9"/><file name="Latest.php" hash="ee48ecbf4dd02fff2f1449e5f30454eb"/></dir></dir><file name="Exception.php" hash="14c5537ef3ab7013c789b36683098ee9"/><dir name="Helper"><file name="Data.php" hash="29f0cecca1eff276c6342693453f7cd9"/><dir name="Mage"><dir name="Catalog"><file name="Category.php" hash="80ce1244afa3fcbce92e46c1b48a6794"/></dir></dir><file name="Rss.php" hash="9e15b418c3e36c5e65e9a4d3955c965f"/></dir><dir name="Model"><dir name="Mage"><dir name="Catalog"><file name="Category.php" hash="9ea79bfffb1aded54b5bfe7940e7ec78"/></dir></dir><file name="Observer.php" hash="8e30a2d92db5a99ac3fd2ddb8ccb5eea"/><dir name="Widget"><file name="Attribute.php" hash="f22ee6f057193a66fa94c0c61569436f"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="IndexController.php" hash="59b1e39d51d8149db9559c396c02b744"/></dir><file name="CategoryController.php" hash="96abc201272ebc19d25e5ea9f4469d8b"/><file name="FeedController.php" hash="67306629ab968a4a9420d01d331847b8"/><file name="ImageController.php" hash="05bc5aa23fe494324274fc57dc7956b5"/><file name="ProductController.php" hash="ead7f325b147e80e4ca06c0f0cde713d"/><dir name="Rss"><file name="ProductController.php" hash="777ab9eaa50ff3179b45bdcca8140e39"/></dir></dir><dir name="etc"><file name="config.xml" hash="bfaa9652ad0e76ca40c95579824574b5"/><file name="jstranslator.xml" hash="b6553078458f63a4d4a68193bf75ffea"/><file name="system.xml" hash="aa1b3e7a0187490f1d7ee0b6e935fcba"/><file name="widget.xml" hash="0e8e731f5b1db6c7273bc57ba2203cd1"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="productivity.xml" hash="c1ee89cd9608911869e256ccbe46a35c"/></dir><dir name="template"><dir name="productivity"><dir name="catalog"><dir name="category"><dir name="edit"><file name="button.phtml" hash="843be360ed96ceb9231d35851f965928"/></dir></dir><dir name="product"><dir name="attribute"><file name="options.phtml" hash="30c3519bfded836babbc09d158a109fd"/><dir name="set"><dir name="edit"><file name="script.js.phtml" hash="d6d948e7689f209e9b2ce3cd951701d6"/></dir></dir></dir><dir name="edit"><file name="button.phtml" hash="77383909622e733ae65e604448d73260"/></dir></dir></dir><dir name="cms"><dir name="page"><dir name="edit"><file name="button.phtml" hash="2020e28aa1f61fe8ad458625a2a7e562"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="productivity.xml" hash="5cd13638e961f15995833041f2f97f81"/></dir><dir name="template"><dir name="productivity"><dir name="catalog"><dir name="product"><file name="latest.phtml" hash="abb48de7fa51fa6358bd5b2b4407915e"/></dir></dir><dir name="image"><file name="edit.phtml" hash="866d085cf7f564eca6f75b00a83ad8e9"/></dir><dir name="panel"><dir name="uploader"><file name="js.phtml" hash="1cf70f10f7b1a4d3d0f551a358e2fad0"/></dir></dir><file name="panel.phtml" hash="50690ba5acbe0c86810fed29ff70be1a"/><dir name="rss"><file name="import.phtml" hash="aed85a2741c9aeb394a44d7e010e1d78"/></dir></dir></dir></dir></dir></dir></target><target name="mageweb"><dir name="js"><dir name="jquery"><file name="jquery-fineuploader-min.js" hash="452dd95488a3f7a345187b779d70f987"/></dir><dir name="productivity"><dir name="adminhtml"><file name="update_grid.js" hash="241898d8bba1b0ad536a24d66aa7c57e"/></dir><dir name="image"><file name="edit.js" hash="09423c39f6c217b3a687cd930198d3b7"/></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><file name="productivity.css" hash="40e9e1590d28490c80fc3e45e6435576"/></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="productivity"><dir name="css"><file name="styles.css" hash="16056a87b3fa6133932343c44204086b"/></dir><dir name="images"><file name="icon-attention.png" hash="0e954041eca8913ec6137ecb93634147"/><file name="icon-edit.png" hash="d7f2a1693b5896d6902629299351dc1b"/><file name="main-image-icon.png" hash="d2040c34ba1ffd8fa5b72ab37be11eca"/><file name="remove-icon.png" hash="757aa607cbcd1616ced5a336e56b0e6c"/><file name="rotate-left-icon.png" hash="6c35dd8068d99911e997ef493ae0d5e8"/><file name="rotate-right-icon.png" hash="70a8e355befd6b1bc7759429ecc18ef7"/><dir name="uploader"><file name="add.png" hash="10fca3834d6218d74c7c42697921e9cc"/><file name="cancel.png" hash="bd8732813a429c4f82580bc0286aed6f"/><file name="loading.gif" hash="0d2f777150e56c31a224755821511d94"/></dir></dir></dir></dir></dir></dir></target></contents>
53
  <compatible/>
54
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><package><name>MVentory_JQuery</name><channel>community</channel><min/><max/></package></required></dependencies>
55
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>mVentory_Productivity</name>
4
+ <version>1.1.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License version 3.0</license>
7
  <channel>community</channel>
36
  &#xD;
37
  Source code and documentation&#xD;
38
  &#xD;
39
+ https://github.com/mVentory/MVentory_Productivity&#xD;
40
  &#xD;
41
  Support&#xD;
42
  &#xD;
45
  License&#xD;
46
  &#xD;
47
  The extension is free open source released under OSL 3 license. Please, contribute your code if you make useful changes.</description>
48
+ <notes>* Better compatibility with mVentory API extension&#xD;
49
+ * Allow user to set scope for product save&#xD;
50
+ * Move settings into single tab&#xD;
51
+ * Workaround for bug in Magento code</notes>
52
  <authors><author><name>Anatoly A. Kazantsev</name><user>anatoly</user><email>anatoly@mventory.com</email></author></authors>
53
+ <date>2014-06-26</date>
54
+ <time>03:25:01</time>
55
+ <contents><target name="mageetc"><dir name="modules"><file name="MVentory_Productivity.xml" hash="b400b5f5c913237459121c5f34988959"/></dir></target><target name="magecommunity"><dir name="MVentory"><dir name="Productivity"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Category"><dir name="Edit"><file name="Button.php" hash="373fde50d4cb8b2baf3cb0a0fe10fa34"/></dir></dir><dir name="Product"><dir name="Attribute"><dir name="Set"><dir name="Edit"><file name="Script.php" hash="082af8108d6e4e04a4919577873e8a4b"/></dir></dir></dir><dir name="Edit"><file name="Button.php" hash="b468bcf3eb55742ee50ea88cee50eda8"/></dir></dir></dir><dir name="Cms"><dir name="Page"><dir name="Edit"><file name="Button.php" hash="aa52a3a5c37605b062a167871c7d0040"/></dir></dir></dir></dir><dir name="Catalog"><dir name="Product"><dir name="Attribute"><dir name="Edit"><dir name="Tab"><file name="Options.php" hash="b29713fe74e58b53dec333fb351f1dd8"/></dir></dir></dir></dir></dir><dir name="Config"><file name="Hint.php" hash="390dff64cac0eb392be19046810a60f1"/></dir><dir name="Image"><file name="Edit.php" hash="859a79c62b6ce085d770d01ca9140a6d"/></dir><dir name="Mage"><dir name="Page"><dir name="Html"><file name="Breadcrumbs.php" hash="3380b86a7fb6e427f2d2776cfff7b3d6"/></dir></dir></dir><file name="Panel.php" hash="67430164c70ef939165d8e5e755a5bd4"/><dir name="Product"><file name="Latest.php" hash="f139481ebac4b96354062afc7999188f"/><file name="Random.php" hash="ddb01f3903cdf72d1fb1b356b7e683f2"/><file name="Related.php" hash="9cc932519b8e303b8a08a88761a13ad0"/><file name="View.php" hash="94f99f7b2fa9bbf710bd10d1a3328ad7"/></dir><dir name="Rss"><file name="Import.php" hash="f8795dabbd7a0eac41969655313a2ea0"/><dir name="Product"><file name="Latest.php" hash="ace95b91bea601e481b5efa1f2cf3faa"/></dir></dir><file name="Slideshow.php" hash="135ea70800c6de483be020cbbf03fb42"/><dir name="Widget"><file name="Attribute.php" hash="729262fdc7af8cc0922d09528ac56cf9"/><file name="Latest.php" hash="ee48ecbf4dd02fff2f1449e5f30454eb"/></dir></dir><file name="Exception.php" hash="14c5537ef3ab7013c789b36683098ee9"/><dir name="Helper"><file name="Data.php" hash="29f0cecca1eff276c6342693453f7cd9"/><dir name="Mage"><dir name="Catalog"><file name="Category.php" hash="80ce1244afa3fcbce92e46c1b48a6794"/></dir></dir><file name="Rss.php" hash="9e15b418c3e36c5e65e9a4d3955c965f"/></dir><dir name="Model"><file name="Config.php" hash="d6468c75cb1260dea583d067b6015e42"/><dir name="Mage"><dir name="Catalog"><file name="Category.php" hash="e75b8a8e23d7c9659eb6fd53a6a0f530"/></dir></dir><file name="Observer.php" hash="8e30a2d92db5a99ac3fd2ddb8ccb5eea"/><dir name="Setting"><dir name="Source"><file name="Savescope.php" hash="157a051c1d897cccf5c7752613c2d433"/></dir></dir><dir name="Widget"><file name="Attribute.php" hash="f22ee6f057193a66fa94c0c61569436f"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="IndexController.php" hash="59b1e39d51d8149db9559c396c02b744"/></dir><file name="CategoryController.php" hash="96abc201272ebc19d25e5ea9f4469d8b"/><file name="FeedController.php" hash="67306629ab968a4a9420d01d331847b8"/><file name="ImageController.php" hash="0eac4482eab007a0d8ed30f99b6cf4c8"/><file name="ProductController.php" hash="142a82577d9e5556cccf9c1b8cdcc068"/><dir name="Rss"><file name="ProductController.php" hash="777ab9eaa50ff3179b45bdcca8140e39"/></dir></dir><dir name="etc"><file name="config.xml" hash="52d2576c4633d933dfeab52344e0d7b9"/><file name="jstranslator.xml" hash="b6553078458f63a4d4a68193bf75ffea"/><file name="system.xml" hash="7ef03f418b7fde17b014f8381553d77d"/><file name="widget.xml" hash="0e8e731f5b1db6c7273bc57ba2203cd1"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="productivity.xml" hash="00f0fa3327007a24ff60a5cfc724524b"/></dir><dir name="template"><dir name="productivity"><dir name="catalog"><dir name="category"><dir name="edit"><file name="button.phtml" hash="843be360ed96ceb9231d35851f965928"/></dir></dir><dir name="product"><dir name="attribute"><file name="options.phtml" hash="30c3519bfded836babbc09d158a109fd"/><dir name="set"><dir name="edit"><file name="script.js.phtml" hash="d6d948e7689f209e9b2ce3cd951701d6"/></dir></dir></dir><dir name="edit"><file name="button.phtml" hash="77383909622e733ae65e604448d73260"/></dir></dir></dir><dir name="cms"><dir name="page"><dir name="edit"><file name="button.phtml" hash="2020e28aa1f61fe8ad458625a2a7e562"/></dir></dir></dir><dir name="config"><file name="hint.phtml" hash="835d4fa6470429eec0643f0822240a49"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="productivity.xml" hash="5cd13638e961f15995833041f2f97f81"/></dir><dir name="template"><dir name="productivity"><dir name="catalog"><dir name="product"><file name="latest.phtml" hash="f17d98c023d1619b7d8fae616853d772"/></dir></dir><dir name="image"><file name="edit.phtml" hash="866d085cf7f564eca6f75b00a83ad8e9"/></dir><dir name="panel"><dir name="uploader"><file name="js.phtml" hash="1cf70f10f7b1a4d3d0f551a358e2fad0"/></dir></dir><file name="panel.phtml" hash="50690ba5acbe0c86810fed29ff70be1a"/><dir name="rss"><file name="import.phtml" hash="aed85a2741c9aeb394a44d7e010e1d78"/></dir></dir></dir></dir></dir></dir></target><target name="mageweb"><dir name="js"><dir name="jquery"><file name="jquery-fineuploader-min.js" hash="452dd95488a3f7a345187b779d70f987"/></dir><dir name="productivity"><dir name="adminhtml"><file name="update_grid.js" hash="241898d8bba1b0ad536a24d66aa7c57e"/></dir><dir name="image"><file name="edit.js" hash="09423c39f6c217b3a687cd930198d3b7"/></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><file name="productivity.css" hash="f048b3e17dcb29463d7d632e22b04852"/></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="productivity"><dir name="css"><file name="styles.css" hash="16056a87b3fa6133932343c44204086b"/></dir><dir name="images"><file name="icon-attention.png" hash="0e954041eca8913ec6137ecb93634147"/><file name="icon-edit.png" hash="d7f2a1693b5896d6902629299351dc1b"/><file name="main-image-icon.png" hash="d2040c34ba1ffd8fa5b72ab37be11eca"/><file name="remove-icon.png" hash="757aa607cbcd1616ced5a336e56b0e6c"/><file name="rotate-left-icon.png" hash="6c35dd8068d99911e997ef493ae0d5e8"/><file name="rotate-right-icon.png" hash="70a8e355befd6b1bc7759429ecc18ef7"/><dir name="uploader"><file name="add.png" hash="10fca3834d6218d74c7c42697921e9cc"/><file name="cancel.png" hash="bd8732813a429c4f82580bc0286aed6f"/><file name="loading.gif" hash="0d2f777150e56c31a224755821511d94"/></dir></dir></dir></dir></dir></dir></target></contents>
56
  <compatible/>
57
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><package><name>MVentory_JQuery</name><channel>community</channel><min/><max/></package></required></dependencies>
58
  </package>
skin/adminhtml/default/default/productivity.css CHANGED
@@ -11,12 +11,7 @@
11
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
12
  */
13
 
14
- .frontshop-button{
15
- text-align:right;
16
- margin-bottom: 5px;
17
- }
18
- button.frontshop {
19
- opacity: .8;
20
- border-color: #777 #505050 #505050 #777;
21
- background: #919191 url(images/btn_bg-disabled.gif) 0 0 repeat-x;
22
- }
11
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
12
  */
13
 
14
+ .frontshop-button { text-align:right; margin-bottom:5px }
15
+ button.frontshop { opacity:.8; border-color:#777 #505050 #505050 #777; background:#919191 url(images/btn_bg-disabled.gif) 0 0 repeat-x }
16
+
17
+ .productivity-config-hint { font-weight:bold; margin:0 0 10px }