diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
index 95fea45354..513c159e5d 100644
--- a/RELEASE_NOTES.txt
+++ b/RELEASE_NOTES.txt
@@ -1,3 +1,89 @@
+=== 1.5.0.0-alpha2 ====
+
+=== Major Highlights ===
+Added Payflow Link using HSS (Hosted Sole Solution)
+
+=== Improvements ===
+Upgraded Zend Framework to 1.11.1
+Phoenix_Moneybookers improvements:
+- updated payment logo images
+- added "Maestro" and "Online Bank Transfer" payment methods into Moneybookers group
+- wrapped Moneybookers payment logo title and alt text on payment selection text into translation calls
+
+=== Fixes ===
+Fixed Price for composite products in a products grid on Order creation page
+Fixed No ability to delete item from Wishlist by specifying Qty = 0 and click on Update Wishlist
+Fixed Do not hide ajax loader on 'Place order' step on onepage checkout when customer selected PayflowLink payment method until PayPal iframe will be loaded
+Fixed Admin reorder with bundle item cause wrong qty of simple products
+Fixed Incorrect bundle product price and bundle items Qty count during the process of Admin Order creation
+Fixed When bundle item is configured in that way, when it cannot have User defined quantity, Qty field remains editable in AJAX-popup
+Fixed "UPS XML" allowed methods bug
+Fixed Mage_Page_Block_Template_Links_Block::$_afterText is never used
+Fixed No configuration popup for Grouped products in admin backend new order creation
+- the problem was in sales.js during parsing currency from price cell. In case when no price was present in cell the JS exeption occurs. So it was needed to determine currency symbol in other way. And it way was in sets this.currencySymbol in AdminOrder class when order obj initialization or when current currency is switched.
+- small fix in grouped.phtml and giftcatd.phtml: set additioal attributes for price calculation
+- small fix in configure.js: using parameter listType instead of this.current.listType in _requestItemConfiguration method
+- small fix in sales.js: do overall popup cleaning by productConfigure.clean() for each loadArea calling
+Fixed When bundle item is configured in that way, when it cannot have User defined quantity, Qty field remains editable in AJAX-popup
+Fixed Customer data not saved when returning to cart and back to checkout
+Fixed Bad sku value for non-configured bundle in Create New Order at admin backend
+Fixed Integrity Constraint Violation in Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Indexer_Price::_prepareWebsiteDateTable
+Fixed URL Rewrite Exeption
+Fixed Menu "Catalog-Manage Products-Gift Options" have incorrect design and wrong position in menu list:
+Fixed Displaying Out of Stock Products on the front-end.
+Fixed Incorrect shipping tax calculation on invoice creditmemos with included tax
+Fixed Cannot login to backend while notify "This is a required field." is present
+- There was JS error, invisible due to try-catch construction. Fixed
+Fixed Authorize.net invoice capture.
+- Do not capture/refund/void transaction if transaction has been captured/voided in authorize.net panel
+Fixed Inadequate URL in Moneybookers eWallet "More Info" Link
+Fixed It is impossible to export products using the new Export module
+Fixed Tax Rate = 0% displayed in Cart
+Fixed Unable to specify quantites for bundle items in AJAX-popup, when selection of bundle items is provided using radiobuttons
+Fixed Incorrect style tables in customer confirmation email. For orders with Authorize.net payment method
+- fixed incorrect styling in customer confirmation email;
+- simplified styling on admin order page
+Fixed Cron job dispatcher incorrectly releases locks
+Fixed Incorrect items number in "MY WISHLIST" after updated quantity in the Wishlist
+- Added new configuration option "Display Wishlist Summary" in System -> Configuration -> Customers -> Wishlist section
+- Removed quantity information from wishlist frontend page
+Fixed Update compare list after delete one item
+Fixed No hint for disabled "Configure" button
+Fixed In Bundle product's page "Availability" string is not placed well
+Fixed Non-correct headers uses for email return-path.
+Fixed Numerous issued with displaying tax on front-end for bundled items
+Fixed Impossible save empty values for store view scope
+Fixed Non-correct headers uses for email return-path.
+- Added "-f" parameter to transport instance at Mage_Core_Model_Email_Template::send() like PHP mail() needs
+Fixed Do not hide ajax loader on 'Place order' step on onepage checkout when customer selected PayflowLink payment method until PayPal iframe will be loaded
+Fixed Order can be placed with non-configured composite product in Ordered Items
+Fixed Using "Update Wishlist" adds quantity to existing value even nothing wasn't changed
+
+
+==== 1.5.x-devel-89318 ====
+
+=== Fixes ===
+Fixed Tax Rate = 0% displayed in Cart
+Fixed Unable to specify quantites for bundle items in AJAX-popup, when selection of bundle items is provided using radiobuttons
+Fixed Incorrect style tables in customer confirmation email. For orders with Authorize.net payment method
+- fixed incorrect styling in customer confirmation email;
+- simplified styling on admin order page
+Fixed Cron job dispatcher incorrectly releases locks
+Fixed Incorrect items number in "MY WISHLIST" after updated quantity in the Wishlist
+- Added new configuration option "Display Wishlist Summary" in System -> Configuration -> Customers -> Wishlist section
+- Removed quantity information from wishlist frontend page
+Fixed Update compare list after delete one item
+Fixed No hint for disabled "Configure" button
+Fixed In Bundle product's page "Availability" string is not placed well
+Fixed Non-correct headers uses for email return-path.
+Fixed Numerous issued with displaying tax on front-end for bundled items
+Fixed Impossible save empty values for store view scope
+Fixed Non-correct headers uses for email return-path.
+- Added "-f" parameter to transport instance at Mage_Core_Model_Email_Template::send() like PHP mail() needs
+Fixed Do not hide ajax loader on 'Place order' step on onepage checkout when customer selected PayflowLink payment method until PayPal iframe will be loaded
+Fixed Order can be placed with non-configured composite product in Ordered Items
+Fixed Using "Update Wishlist" adds quantity to existing value even nothing wasn't changed
+
==== 1.5.0.0-alpha1 ====
=== Major Highlights ===
diff --git a/app/Mage.php b/app/Mage.php
index 9760351883..f1b0f00798 100644
--- a/app/Mage.php
+++ b/app/Mage.php
@@ -155,7 +155,7 @@ public static function getVersionInfo()
'revision' => '0',
'patch' => '0',
'stability' => 'alpha',
- 'number' => '1',
+ 'number' => '2',
);
}
diff --git a/app/code/community/Phoenix/Moneybookers/Block/Form.php b/app/code/community/Phoenix/Moneybookers/Block/Form.php
index 3649a2a1a4..c23036d36f 100644
--- a/app/code/community/Phoenix/Moneybookers/Block/Form.php
+++ b/app/code/community/Phoenix/Moneybookers/Block/Form.php
@@ -19,6 +19,20 @@
*/
class Phoenix_Moneybookers_Block_Form extends Mage_Payment_Block_Form
{
+ /**
+ * Available locales for content URL generation
+ *
+ * @var array
+ */
+ protected $_supportedInfoLocales = array('de');
+
+ /**
+ * Default locale for content URL generation
+ *
+ * @var string
+ */
+ protected $_defaultInfoLocale = 'en';
+
/**
* Constructor. Set template.
*/
@@ -36,6 +50,10 @@ protected function _construct()
*/
public function getPaymentImageSrc($payment)
{
+ if ($payment == 'moneybookers_obt') {
+ $payment .= '_'.$this->getInfoLocale();
+ }
+
$imageFilename = Mage::getDesign()
->getFilename('images' . DS . 'moneybookers' . DS . $payment, array('_type' => 'skin'));
@@ -47,4 +65,29 @@ public function getPaymentImageSrc($payment)
return false;
}
+
+ /**
+ * Return supported locale for information text
+ *
+ * @return string
+ */
+ public function getInfoLocale()
+ {
+ $locale = substr(Mage::app()->getLocale()->getLocaleCode(), 0 ,2);
+ if (!in_array($locale, $this->_supportedInfoLocales)) {
+ $locale = $this->_defaultInfoLocale;
+ }
+ return $locale;
+ }
+
+ /**
+ * Return info URL for eWallet payment
+ *
+ * @return string
+ */
+ public function getWltInfoUrl()
+ {
+ $locale = substr(Mage::app()->getLocale()->getLocaleCode(), 0 ,2);
+ return 'http://www.moneybookers.com/app/?l=' . strtoupper($locale);
+ }
}
diff --git a/app/code/community/Phoenix/Moneybookers/Block/Payment.php b/app/code/community/Phoenix/Moneybookers/Block/Payment.php
index 5702a7dd4d..0b98a83dd7 100644
--- a/app/code/community/Phoenix/Moneybookers/Block/Payment.php
+++ b/app/code/community/Phoenix/Moneybookers/Block/Payment.php
@@ -28,12 +28,12 @@ public function getMoneybookersLogoSrc()
{
$locale = Mage::getModel('moneybookers/acc')->getLocale();
$logoFilename = Mage::getDesign()
- ->getFilename('images' . DS . 'moneybookers' . DS . 'banner_120_' . $locale . '.png', array('_type' => 'skin'));
+ ->getFilename('images' . DS . 'moneybookers' . DS . 'banner_120_' . $locale . '.gif', array('_type' => 'skin'));
if (file_exists($logoFilename)) {
- return $this->getSkinUrl('images/moneybookers/banner_120_'.$locale.'.png');
+ return $this->getSkinUrl('images/moneybookers/banner_120_'.$locale.'.gif');
}
- return $this->getSkinUrl('images/moneybookers/banner_120_int.png');
+ return $this->getSkinUrl('images/moneybookers/banner_120_int.gif');
}
}
diff --git a/app/code/community/Phoenix/Moneybookers/Model/Mae.php b/app/code/community/Phoenix/Moneybookers/Model/Mae.php
new file mode 100644
index 0000000000..e985454a2f
--- /dev/null
+++ b/app/code/community/Phoenix/Moneybookers/Model/Mae.php
@@ -0,0 +1,27 @@
+1
IE
+
+ mbookers
+ 0
+ moneybookers/mae
+ Maestro
+ 1
+ GB,AT,ES
+ mbookers0
@@ -280,6 +288,13 @@
Moneybookers eWallet0
+
+ mbookers
+ 0
+ moneybookers/obt
+ Onlineüberweisung (empfohlen)
+ 0
+
diff --git a/app/code/community/Phoenix/Moneybookers/etc/system.xml b/app/code/community/Phoenix/Moneybookers/etc/system.xml
index eb970f470a..06f71be304 100644
--- a/app/code/community/Phoenix/Moneybookers/etc/system.xml
+++ b/app/code/community/Phoenix/Moneybookers/etc/system.xml
@@ -664,6 +664,65 @@
+
+
+ text
+ 231
+ 1
+ 1
+ 1
+
+
+
+ select
+ payment/moneybookers_mae/active
+ adminhtml/system_config_source_yesno
+ 1
+ 1
+ 1
+ 1
+
+
+
+ text
+ payment/moneybookers_mae/sort_order
+ 3
+ 1
+ 1
+ 1
+
+
+
+ text
+ payment/moneybookers_mae/title
+ 5
+ 1
+ 1
+ 1
+
+
+
+ allowspecific
+ payment/moneybookers_mae/allowspecific
+ 6
+ adminhtml/system_config_source_payment_allspecificcountries
+ 1
+ 1
+ 1
+
+
+
+ multiselect
+ payment/moneybookers_mae/specificcountry
+ 7
+ adminhtml/system_config_source_country
+ 1
+ 1
+ 1
+ 1
+
+
+ text
@@ -1077,6 +1136,65 @@
+
+
+ text
+ 381
+ 1
+ 1
+ 1
+
+
+
+ select
+ payment/moneybookers_obt/active
+ adminhtml/system_config_source_yesno
+ 1
+ 1
+ 1
+ 1
+
+
+
+ text
+ payment/moneybookers_obt/sort_order
+ 3
+ 1
+ 1
+ 1
+
+
+
+ text
+ payment/moneybookers_obt/title
+ 5
+ 1
+ 1
+ 1
+
+
+
+ allowspecific
+ payment/moneybookers_obt/allowspecific
+ 6
+ adminhtml/system_config_source_payment_allspecificcountries
+ 1
+ 1
+ 1
+
+
+
+ multiselect
+ payment/moneybookers_obt/specificcountry
+ 7
+ adminhtml/system_config_source_country
+ 1
+ 1
+ 1
+ 1
+
+
+
diff --git a/app/code/core/Mage/Adminhtml/Block/Catalog/Form/Renderer/Fieldset/Element.php b/app/code/core/Mage/Adminhtml/Block/Catalog/Form/Renderer/Fieldset/Element.php
index c53ebaba3b..8bcb3d6ace 100644
--- a/app/code/core/Mage/Adminhtml/Block/Catalog/Form/Renderer/Fieldset/Element.php
+++ b/app/code/core/Mage/Adminhtml/Block/Catalog/Form/Renderer/Fieldset/Element.php
@@ -101,6 +101,9 @@ public function usedDefault()
if (!$this->getDataObject()->getExistsStoreValueFlag($attributeCode)) {
return true;
+ } else if ($this->getElement()->getValue() == $defaultValue &&
+ $this->getDataObject()->getStoreId() != $this->_getDefaultStoreId()) {
+ return false;
}
if ($defaultValue === false && !$this->getAttribute()->getIsRequired() && $this->getElement()->getValue()) {
return false;
@@ -167,4 +170,14 @@ public function getElementHtml()
{
return $this->getElement()->getElementHtml();
}
+
+ /**
+ * Default sore ID getter
+ *
+ * @return integer
+ */
+ protected function _getDefaultStoreId()
+ {
+ return Mage_Catalog_Model_Abstract::DEFAULT_STORE_ID;
+ }
}
diff --git a/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Helper/Form/Config.php b/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Helper/Form/Config.php
new file mode 100644
index 0000000000..4704f958b0
--- /dev/null
+++ b/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Helper/Form/Config.php
@@ -0,0 +1,56 @@
+
+ */
+class Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Config extends Varien_Data_Form_Element_Select
+{
+ /**
+ * Retrieve element html
+ *
+ * @return string
+ */
+ public function getElementHtml()
+ {
+ $html = parent::getElementHtml();
+
+ $htmlId = 'use_config_' . $this->getHtmlId();
+ $checked = ($this->getValue() == '') ? ' checked="checked"' : '';
+ $disabled = ($this->getReadonly()) ? ' disabled="disabled"' : '';
+
+ $html .= '' . Mage::helper('adminhtml')->__('Use Config Settings').'';
+ $html .= '';
+
+ return $html;
+ }
+}
diff --git a/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Helper/Form/Gallery.php b/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Helper/Form/Gallery.php
index 07c3ab6312..fd4dcf8d1c 100644
--- a/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Helper/Form/Gallery.php
+++ b/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Helper/Form/Gallery.php
@@ -87,7 +87,18 @@ public function canDisplayUseDefault($attribute)
*/
public function usedDefault($attribute)
{
- $defaultValue = $this->getDataObject()->getAttributeDefaultValue($attribute->getAttributeCode());
+ $attributeCode = $attribute->getAttributeCode();
+ $defaultValue = $this->getDataObject()->getAttributeDefaultValue($attributeCode);
+
+ if (!$this->getDataObject()->getExistsStoreValueFlag($attributeCode)) {
+ return true;
+ } else if ($this->getValue() == $defaultValue &&
+ $this->getDataObject()->getStoreId() != $this->_getDefaultStoreId()) {
+ return false;
+ }
+ if ($defaultValue === false && !$attribute->getIsRequired() && $this->getValue()) {
+ return false;
+ }
return $defaultValue === false;
}
@@ -168,4 +179,13 @@ public function toHtml()
return '