84 lines
2.6 KiB
JavaScript
84 lines
2.6 KiB
JavaScript
export function initWatchdog() {
|
|
$('body')
|
|
.on('submit', '[data-watchdog="form"]', function(e) {
|
|
const $allVariations = $('[data-variations="variations"]');
|
|
const $form = $(this);
|
|
let varData;
|
|
e.preventDefault();
|
|
|
|
if ($allVariations.length) {
|
|
const $selectedVariation = $allVariations.find('[name="IDvariation"]:checked');
|
|
varData = wpj.variations[$selectedVariation.val()];
|
|
}
|
|
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: $form.attr('action'),
|
|
data: $form.serialize(),
|
|
success: function(data) {
|
|
if (!data.success) {
|
|
$('[data-watchdog="loggedout"]').before(`<div class="alert alert-danger">${data.error}</div>`);
|
|
return;
|
|
}
|
|
|
|
$form.find('.alert').remove();
|
|
|
|
if ($allVariations.length) {
|
|
varData.watchdogActive = true;
|
|
$('[data-watchdog="delete"]').attr('href', varData.deleteWatchdog);
|
|
}
|
|
|
|
$('[data-watchdog="info"], [data-watchdog="loggedout"]').hide();
|
|
$('[data-watchdog="success"]').show();
|
|
}
|
|
});
|
|
|
|
return false;
|
|
})
|
|
.on('click', '[data-watchdog="opener"]', function() {
|
|
$(this)
|
|
.closest('form')
|
|
.toggleClass('open')
|
|
.find('[data-watchdog="loggedout"]')
|
|
.slideToggle();
|
|
});
|
|
}
|
|
|
|
export function updateVarWatchdog(varData, selectedVarId) {
|
|
$('[data-watchdog="variation"]').val(selectedVarId);
|
|
|
|
if (varData.watchdog) {
|
|
$('[data-buy-form] .submit-block:visible').hide();
|
|
$('[data-watchdog="form"]:hidden').show();
|
|
} else {
|
|
$('[data-buy-form] .submit-block:hidden').show();
|
|
$('[data-watchdog="form"]:visible').hide();
|
|
}
|
|
|
|
if (varData.watchdogActive) {
|
|
$('[data-watchdog="success"]:hidden').show();
|
|
$('[data-watchdog="info"]:visible').hide();
|
|
$('[data-watchdog="delete"]').attr('href', varData.deleteWatchdog);
|
|
} else {
|
|
$('[data-watchdog="success"]:visible').hide();
|
|
$('[data-watchdog="info"]:hidden').show();
|
|
}
|
|
}
|
|
|
|
export function ajaxWatchdog() {
|
|
$(document).on('click', '[data-ajax-watchdog]', function(e) {
|
|
e.preventDefault();
|
|
|
|
const $this = $(this),
|
|
url = $(this).attr('href'),
|
|
$parent = $this.parent('[data-reload]');
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: url,
|
|
success: function(data) {
|
|
wpj.domUtils.reloadPartsFromUrl(document.location.href, $parent, null, null);
|
|
}
|
|
})
|
|
});
|
|
}
|