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 $ 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 getBlockCartModal() {
|
||||
return $('#blockcart-modal');
|
||||
$(function() {
|
||||
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()
|
||||
}
|
||||
|
||||
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.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
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
|
||||
*/
|
||||
/* eslint-disable */
|
||||
// import 'bootstrap/dist/js/bootstrap.min';
|
||||
import "jquery-offcanvas/dist/jquery.offcanvas.min.css";
|
||||
import touchspin from "bootstrap-touchspin";
|
||||
import "jquery-touchswipe";
|
||||
|
@ -163,45 +164,4 @@ $(function () {
|
|||
|
||||
$(".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