forked from brooksbingham/theme-elegance
refactor: move the blockcart code from theme to blockcart file
parent
e81cdd9d00
commit
d6ccccdfa7
|
@ -25,26 +25,69 @@
|
||||||
import prestashop from 'prestashop';
|
import prestashop from 'prestashop';
|
||||||
import $ from 'jquery';
|
import $ from 'jquery';
|
||||||
|
|
||||||
prestashop.blockcart = prestashop.blockcart || {};
|
// TODO: kept here as a reference, to be removed in future once we have our own modal implementaion
|
||||||
|
// prestashop.blockcart.showModal = (html) => {
|
||||||
|
// function getBlockCartModal() {
|
||||||
|
// return $('#blockcart-modal');
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// let $blockCartModal = getBlockCartModal();
|
||||||
|
//
|
||||||
|
// if ($blockCartModal.length) {
|
||||||
|
// $blockCartModal.remove();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// $('body').append(html);
|
||||||
|
//
|
||||||
|
// $blockCartModal = getBlockCartModal();
|
||||||
|
// $blockCartModal.modal('show').on('hidden.bs.modal', (event) => {
|
||||||
|
// prestashop.emit('updateProduct', {
|
||||||
|
// reason: event.currentTarget.dataset,
|
||||||
|
// event,
|
||||||
|
// });
|
||||||
|
// });
|
||||||
|
// };
|
||||||
|
|
||||||
prestashop.blockcart.showModal = (html) => {
|
$(function() {
|
||||||
function getBlockCartModal() {
|
prestashop.blockcart = prestashop.blockcart || {};
|
||||||
return $('#blockcart-modal');
|
var showModal = prestashop.blockcart.showModal || function(modal) {
|
||||||
|
var $body = $('body');
|
||||||
|
$body.append(modal);
|
||||||
|
$body.one('click', '#blockcart-modal', function(event) {
|
||||||
|
if (event.target.id === 'blockcart-modal') {
|
||||||
|
$(event.target).remove()
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
;
|
||||||
let $blockCartModal = getBlockCartModal();
|
prestashop.on('updateCart', function(event) {
|
||||||
|
var refreshURL = $('.blockcart').data('refresh-url');
|
||||||
if ($blockCartModal.length) {
|
var requestData = {};
|
||||||
$blockCartModal.remove();
|
if (event && event.reason && typeof event.resp !== 'undefined' && !event.resp.hasError) {
|
||||||
}
|
requestData = {
|
||||||
|
id_customization: event.reason.idCustomization,
|
||||||
$('body').append(html);
|
id_product_attribute: event.reason.idProductAttribute,
|
||||||
|
id_product: event.reason.idProduct,
|
||||||
$blockCartModal = getBlockCartModal();
|
action: event.reason.linkAction
|
||||||
$blockCartModal.modal('show').on('hidden.bs.modal', (event) => {
|
}
|
||||||
prestashop.emit('updateProduct', {
|
}
|
||||||
reason: event.currentTarget.dataset,
|
if (event && event.resp && event.resp.hasError) {
|
||||||
event,
|
prestashop.emit('showErrorNextToAddtoCartButton', {
|
||||||
});
|
errorMessage: event.resp.errors.join('<br/>')
|
||||||
});
|
})
|
||||||
};
|
}
|
||||||
|
$.post(refreshURL, requestData).then(function(resp) {
|
||||||
|
// TODO: keeping this over here, for later purposes if need be
|
||||||
|
var html = $('<div />').append($.parseHTML(resp.preview));
|
||||||
|
$('.blockcart').replaceWith($(resp.preview).find('.blockcart'));
|
||||||
|
if (resp.modal) {
|
||||||
|
showModal(resp.modal)
|
||||||
|
}
|
||||||
|
}).fail(function(resp) {
|
||||||
|
prestashop.emit('handleError', {
|
||||||
|
eventType: 'updateShoppingCart',
|
||||||
|
resp: resp
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
|
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
|
||||||
*/
|
*/
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
|
// import 'bootstrap/dist/js/bootstrap.min';
|
||||||
import "jquery-offcanvas/dist/jquery.offcanvas.min.css";
|
import "jquery-offcanvas/dist/jquery.offcanvas.min.css";
|
||||||
import touchspin from "bootstrap-touchspin";
|
import touchspin from "bootstrap-touchspin";
|
||||||
import "jquery-touchswipe";
|
import "jquery-touchswipe";
|
||||||
|
@ -163,45 +164,4 @@ $(function () {
|
||||||
|
|
||||||
$(".th-accordion").thaccordion();
|
$(".th-accordion").thaccordion();
|
||||||
|
|
||||||
prestashop.blockcart = prestashop.blockcart || {};
|
|
||||||
var showModal = prestashop.blockcart.showModal || function(modal) {
|
|
||||||
var $body = $('body');
|
|
||||||
$body.append(modal);
|
|
||||||
$body.one('click', '#blockcart-modal', function(event) {
|
|
||||||
if (event.target.id === 'blockcart-modal') {
|
|
||||||
$(event.target).remove()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
;
|
|
||||||
prestashop.on('updateCart', function(event) {
|
|
||||||
var refreshURL = $('.blockcart').data('refresh-url');
|
|
||||||
var requestData = {};
|
|
||||||
if (event && event.reason && typeof event.resp !== 'undefined' && !event.resp.hasError) {
|
|
||||||
requestData = {
|
|
||||||
id_customization: event.reason.idCustomization,
|
|
||||||
id_product_attribute: event.reason.idProductAttribute,
|
|
||||||
id_product: event.reason.idProduct,
|
|
||||||
action: event.reason.linkAction
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (event && event.resp && event.resp.hasError) {
|
|
||||||
prestashop.emit('showErrorNextToAddtoCartButton', {
|
|
||||||
errorMessage: event.resp.errors.join('<br/>')
|
|
||||||
})
|
|
||||||
}
|
|
||||||
$.post(refreshURL, requestData).then(function(resp) {
|
|
||||||
// TODO: keeping this over here, for later purposes if need be
|
|
||||||
// var html = $('<div />').append($.parseHTML(resp.preview));
|
|
||||||
// $('.blockcart').replaceWith($(resp.preview).find('.blockcart'));
|
|
||||||
// if (resp.modal) {
|
|
||||||
// showModal(resp.modal)
|
|
||||||
// }
|
|
||||||
}).fail(function(resp) {
|
|
||||||
prestashop.emit('handleError', {
|
|
||||||
eventType: 'updateShoppingCart',
|
|
||||||
resp: resp
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue