File: /home/lgooir/public_html/wp-content/themes/woodmart/js/scripts/wc/ptTable.js
/* global woodmart_settings */
woodmartThemeModule.ptTable = function() {
var ptTable = document.querySelector('.wd-pt-table');
if (!ptTable) {
return;
}
var unsubscribeBtns = ptTable.querySelectorAll('.wd-pt-remove');
var desiredPriceEditBtns = ptTable.querySelectorAll('.wd-desired-price-opener');
var desiredPriceCancelBtns = ptTable.querySelectorAll('.wd-desired-price-cancel');
var desiredPriceSaveBtns = ptTable.querySelectorAll('.wd-desired-price-save');
unsubscribeBtns.forEach(function(unsubscribeBtn) {
unsubscribeBtn.addEventListener('click', function(e) {
e.preventDefault();
var actionBtn = this;
ptTable.parentNode.querySelector('.wd-loader-overlay').classList.add('wd-loading');
jQuery.ajax({
url : woodmart_settings.ajaxurl,
data : {
action : 'woodmart_remove_from_price_tracker_in_my_account',
security : woodmart_settings.pt_remove_button_nonce,
product_id : actionBtn.dataset.productId,
variation_id : actionBtn.dataset.variationId,
},
method : 'POST',
success : function(response) {
if (!response) {
return;
}
if (response.success) {
actionBtn.closest('tr').remove();
}
if (response.data.content) {
tempDiv = document.createElement('div');
tempDiv.innerHTML = response.data.content;
var childNodes = tempDiv.querySelector('.wd-pt-content').childNodes;
ptTable.parentNode.replaceChildren(...childNodes);
}
},
error : function() {
console.error('ajax remove from waitlist error');
},
complete: function() {
ptTable.parentNode.querySelector('.wd-loader-overlay').classList.remove('wd-loading');
}
});
});
});
desiredPriceEditBtns.forEach(function(editBtn) {
editBtn.addEventListener('click', function(e) {
e.preventDefault();
var desiredPriceEdit = this.closest('td').querySelector('.wd-desired-price-edit');
var amount = this.closest('td').querySelector('.amount');
var emptyCell = this.closest('td').querySelector('.wd-cell-empty');
if (desiredPriceEdit) {
desiredPriceEdit.classList.toggle('wd-hide');
this.classList.toggle('wd-hide');
}
if (amount) {
amount.classList.add('wd-hide');
}
if (emptyCell) {
emptyCell.classList.add('wd-hide');
}
});
});
desiredPriceCancelBtns.forEach(function(cancelBtn) {
cancelBtn.addEventListener('click', function(e) {
e.preventDefault();
var desiredPriceEdit = this.closest('.wd-desired-price-edit');
var amount = desiredPriceEdit.closest('td').querySelector('.amount');
var emptyCell = desiredPriceEdit.closest('td').querySelector('.wd-cell-empty');
if (desiredPriceEdit) {
desiredPriceEdit.classList.add('wd-hide');
desiredPriceEdit.parentNode.querySelector('.wd-desired-price-opener').classList.remove('wd-hide');
}
if (amount) {
amount.classList.remove('wd-hide');
}
if (emptyCell) {
emptyCell.classList.remove('wd-hide');
}
});
});
desiredPriceSaveBtns.forEach(function(saveBtn) {
saveBtn.addEventListener('click', function(e) {
e.preventDefault();
var desiredPriceEdit = this.closest('.wd-desired-price-edit');
var desiredPriceChangeInput = desiredPriceEdit.querySelector('[name="wd-desired-price-change"]');
var noticesWrapper = document.querySelector('.woocommerce-notices-wrapper');
if (desiredPriceChangeInput) {
var newDesiredPrice = desiredPriceChangeInput.value;
ptTable.parentNode.querySelector('.wd-loader-overlay').classList.add('wd-loading');
jQuery.ajax({
url : woodmart_settings.ajaxurl,
data : {
action : 'woodmart_update_price_tracker_desired_price',
security : woodmart_settings.pt_update_desired_price_nonce,
product_id : desiredPriceEdit.dataset.productId,
variation_id : desiredPriceEdit.dataset.variationId,
desired_price: newDesiredPrice,
},
method : 'POST',
success : function(response) {
if (!response) {
return;
}
if ( response.data.notice ) {
var noticeNodes = noticesWrapper.querySelectorAll('.wd-notice');
var noticeNode = document.createElement("div");
var status = response.success ? 'success' : 'warning';
noticeNodes.forEach(noticeNode => {
noticeNode.remove();
});
noticeNode.classList.add(
'wd-notice',
`wd-${status}`
);
noticeNode.append(response.data.notice);
noticesWrapper.append(noticeNode);
}
if (response.success) {
var amount = desiredPriceEdit.parentNode.querySelector('.amount');
var emptyCell = desiredPriceEdit.parentNode.querySelector('.wd-cell-empty');
if (amount) {
amount.remove();
}
if (emptyCell) {
emptyCell.remove();
}
if (response.data.desired_price_html) {
var tempDiv = document.createElement('div');
tempDiv.innerHTML = response.data.desired_price_html;
desiredPriceEdit.parentNode.prepend(tempDiv.firstElementChild);
}
desiredPriceEdit.classList.add('wd-hide');
desiredPriceEdit.parentNode.querySelector('.wd-desired-price-opener').classList.remove('wd-hide');
}
},
error : function() {
console.error('ajax update desired price error');
},
complete: function() {
ptTable.parentNode.querySelector('.wd-loader-overlay').classList.remove('wd-loading');
}
});
}
});
});
}
window.addEventListener('load', function() {
woodmartThemeModule.ptTable();
});