Skip to content

Commit 7e17cc9

Browse files
committed
Merge remote-tracking branch 'vanilla/PR' into MAGETWO-39663-NEW-Product-Save-Through-API-Service-Is-Not-Visible-On-Frontend
2 parents c546bbd + 24ac990 commit 7e17cc9

File tree

3 files changed

+51
-42
lines changed

3 files changed

+51
-42
lines changed

app/code/Magento/Catalog/view/base/templates/product/price/tier_prices.phtml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,25 +23,26 @@ $product = $block->getSaleableItem();
2323
<li class="item">
2424
<?php
2525
$productId = $product->getId();
26+
$isSaleable = $product->isSaleable();
2627
$popupId = 'msrp-popup-' . $productId . $block->getRandomString(20);
2728
if ($msrpShowOnGesture && $price['price']->getValue() < $product->getMsrp()):
2829
$addToCartUrl = '';
29-
if ($product->isSaleable()) {
30+
if ($isSaleable) {
3031
$addToCartUrl = $this->helper('\Magento\Checkout\Helper\Cart')
3132
->getAddUrl($product, ['qty' => $price['price_qty']]);
3233
}
3334
$tierPriceData = [
3435
'addToCartUrl' => $addToCartUrl,
3536
'name' => $product->getName(),
36-
'price' => $block->renderAmount(
37+
'realPrice' => $block->renderAmount(
3738
$price['price'],
3839
[
3940
'price_id' => $index,
4041
'id_suffix' => '-' . $index,
4142
'include_container' => true
4243
]
4344
),
44-
'msrp' => $block->renderAmount(
45+
'msrpPrice' => $block->renderAmount(
4546
$block->getPriceType('msrp_price')->getAmount(),
4647
[
4748
'price_id' => $index,
@@ -95,7 +96,8 @@ $product = $block->getSaleableItem();
9596
"attr": "[data-tier-price]",
9697
"productForm": "#product_addtocart_form",
9798
"productId": "<?php /* @escapeNotVerified */ echo $productId; ?>",
98-
"productIdInput": "input[type=hidden][name=product]"
99+
"productIdInput": "input[type=hidden][name=product]",
100+
"isSaleable": "<?php /* @escapeNotVerified */ echo $isSaleable; ?>"
99101
}
100102
}
101103
}

app/code/Magento/Msrp/view/base/web/js/msrp.js

Lines changed: 42 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -81,21 +81,23 @@ define([
8181
*/
8282
initMsrpPopup: function () {
8383
var popupDOM = $(this.options.popUpAttr)[0],
84-
$msrpPopup = $($(popupDOM).html()).clone();
84+
$msrpPopup = $(popupDOM.innerHTML.trim());
8585

8686
$msrpPopup.find(this.options.productIdInput).val(this.options.productId);
8787
$('body').append($msrpPopup);
8888
$msrpPopup.trigger('contentUpdated');
8989

90-
$msrpPopup.find('button').on('click', function (ev) {
91-
ev.preventDefault();
92-
this.handleMsrpAddToCart();
93-
}.bind(this));
90+
$msrpPopup.find('button')
91+
.on('click',
92+
this.handleMsrpAddToCart.bind(this))
93+
.filter(this.options.popupCartButtonId)
94+
.text($(this.options.addToCartButton).text());
9495

9596
$msrpPopup.find(this.options.paypalCheckoutButons).on('click',
9697
this.handleMsrpPaypalCheckout.bind(this));
9798

98-
$(this.options.popupId).on('click', this.openPopup.bind(this));
99+
$(this.options.popupId).on('click',
100+
this.openPopup.bind(this));
99101

100102
this.$popup = $msrpPopup;
101103
},
@@ -106,7 +108,9 @@ define([
106108
*/
107109
initInfoPopup: function () {
108110
var infoPopupDOM = $('[data-role=msrp-info-template]')[0],
109-
$infoPopup = $(infoPopupDOM.innerText).appendTo('body');
111+
$infoPopup = $(infoPopupDOM.innerHTML.trim());
112+
113+
$('body').append($infoPopup);
110114

111115
$(this.options.helpLinkId).on('click', function (e) {
112116
this.popUpOptions.position.of = $(e.target);
@@ -122,39 +126,37 @@ define([
122126
* @private
123127
*/
124128
initTierPopup: function () {
125-
var tierOptions = JSON.parse($(this.options.attr).attr('data-tier-price')),
126-
popupDOM = $(this.options.popUpAttr)[0],
127-
$tierPopup = $(popupDOM.innerText).appendTo('body');
129+
var popupDOM = $(this.options.popUpAttr)[0],
130+
$tierPopup = $(popupDOM.innerHTML.trim());
128131

132+
$('body').append($tierPopup);
129133
$tierPopup.find(this.options.productIdInput).val(this.options.productId);
130134
this.popUpOptions.position.of = $(this.options.helpLinkId);
131135

132-
$tierPopup.find('button').on('click', function (ev) {
133-
ev.preventDefault();
134-
this.handleTierAddToCart(tierOptions);
135-
}.bind(this));
136+
$tierPopup.find('button').on('click',
137+
this.handleTierAddToCart.bind(this))
138+
.filter(this.options.popupCartButtonId)
139+
.text($(this.options.addToCartButton).text());
136140

137-
$tierPopup.find(this.options.paypalCheckoutButons).on('click', function () {
138-
this.handleTierPaypalCheckout(tierOptions);
139-
}.bind(this));
141+
$tierPopup.find(this.options.paypalCheckoutButons).on('click',
142+
this.handleTierPaypalCheckout.bind(this));
140143

141144
$(this.options.attr).on('click', function (e) {
142-
this.popUpOptions.position.of = $(e.target);
143-
$tierPopup.find(this.options.msrpLabelId).html(tierOptions.msrp);
144-
$tierPopup.find(this.options.priceLabelId).html(tierOptions.price);
145-
$tierPopup.dropdownDialog(this.popUpOptions).dropdownDialog('open');
146-
this._toggle($tierPopup);
145+
this.$popup = $tierPopup;
146+
this.tierOptions = $(e.target).data('tier-price');
147+
this.openPopup(e);
147148
}.bind(this));
148-
149-
this.$popup = $tierPopup;
150149
},
151150

152151
/**
153152
* handle 'AddToCart' click on Msrp popup
153+
* @param {Object} ev
154154
*
155155
* @private
156156
*/
157-
handleMsrpAddToCart: function () {
157+
handleMsrpAddToCart: function (ev) {
158+
ev.preventDefault();
159+
158160
if (this.options.addToCartButton) {
159161
$(this.options.addToCartButton).click();
160162
this.closePopup(this.$popup);
@@ -173,14 +175,16 @@ define([
173175
/**
174176
* handle 'AddToCart' click on Tier popup
175177
*
176-
* @param {Object} tierOptions
178+
* @param {Object} ev
177179
* @private
178180
*/
179-
handleTierAddToCart: function (tierOptions) {
181+
handleTierAddToCart: function (ev) {
182+
ev.preventDefault();
183+
180184
if (this.options.addToCartButton &&
181-
this.options.inputQty && !isNaN(tierOptions.qty)
185+
this.options.inputQty && !isNaN(this.tierOptions.qty)
182186
) {
183-
$(this.options.inputQty).val(tierOptions.qty);
187+
$(this.options.inputQty).val(this.tierOptions.qty);
184188
$(this.options.addToCartButton).click();
185189
this.closePopup(this.$popup);
186190
}
@@ -189,13 +193,12 @@ define([
189193
/**
190194
* handle 'paypal checkout buttons' click on Tier popup
191195
*
192-
* @param {Object} tierOptions
193196
* @private
194197
*/
195-
handleTierPaypalCheckout: function (tierOptions) {
196-
if (this.options.inputQty && !isNaN(tierOptions.qty)
198+
handleTierPaypalCheckout: function () {
199+
if (this.options.inputQty && !isNaN(this.tierOptions.qty)
197200
) {
198-
$(this.options.inputQty).val(tierOptions.qty);
201+
$(this.options.inputQty).val(this.tierOptions.qty);
199202
this.closePopup(this.$popup);
200203
}
201204
},
@@ -206,9 +209,11 @@ define([
206209
* @param {Object} event
207210
*/
208211
openPopup: function (event) {
212+
var options = this.tierOptions || this.options;
213+
209214
this.popUpOptions.position.of = $(event.target);
210-
this.$popup.find(this.options.msrpLabelId).html(this.options.msrpPrice);
211-
this.$popup.find(this.options.priceLabelId).html(this.options.realPrice);
215+
this.$popup.find(this.options.msrpLabelId).html(options.msrpPrice);
216+
this.$popup.find(this.options.priceLabelId).html(options.realPrice);
212217
this.$popup.dropdownDialog(this.popUpOptions).dropdownDialog('open');
213218
this._toggle(this.$popup);
214219

@@ -223,7 +228,7 @@ define([
223228
* @private
224229
*/
225230
_toggle: function ($elem) {
226-
$(document).on('mouseup', function (e) {
231+
$(document).on('mouseup.msrp touchend.msrp', function (e) {
227232
if (!$elem.is(e.target) && $elem.has(e.target).length === 0) {
228233
this.closePopup($elem);
229234
}
@@ -239,7 +244,7 @@ define([
239244
*/
240245
closePopup: function ($elem) {
241246
$elem.dropdownDialog('close');
242-
$(document).off('mouseup');
247+
$(document).off('mouseup.msrp touchend.msrp');
243248
},
244249

245250
/**

app/code/Magento/Ui/view/base/ui_component/templates/form/default.xhtml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
-->
88
<div xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../Ui/etc/ui_template.xsd">
99
<div data-role="spinner" data-component="{{getName()}}.areas" class="admin__data-grid-loading-mask">
10-
<div class="grid-loader"></div>
10+
<div class="spinner">
11+
<span/><span/><span/><span/><span/><span/><span/><span/>
12+
</div>
1113
</div>
1214
<div data-bind="scope: '{{getName()}}.areas'" class="entry-edit form-inline">
1315
<!-- ko template: getTemplate() --><!-- /ko -->

0 commit comments

Comments
 (0)