Files
kupshop/web/templates/x/static/js/wpj.watchdog.js
2025-08-02 16:30:27 +02:00

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);
}
})
});
}