Files
kupshop/admin/static/js/comments.list.js
2025-08-02 16:30:27 +02:00

87 lines
2.6 KiB
JavaScript

var CommentsList = {
listName: null,
init: function (listName, unconfirmedFilterActive) {
this.listName = listName;
this.registerClickEvent({
selector: '[data-form-top]',
inputSelector: '[data-form-top-input]',
inputDataSelector: 'formTopInput',
type: 'top',
removeRow: unconfirmedFilterActive,
successMessage: 'Uloženo',
callback: null
});
this.registerClickEvent({
selector: '[data-form-delete]',
inputSelector: '[data-form-delete-input]',
inputDataSelector: 'formDeleteInput',
type: 'delete',
removeRow: true,
successMessage: 'Smazáno',
callback: function (row) {
if (!unconfirmedFilterActive) {
row.find('.comment-status').html('Schváleno');
row.find('.comments-top').addClass('disabled');
}
}
});
this.registerClickEvent({
selector: '[data-form-solved]',
inputSelector: '[data-form-solved-input]',
inputDataSelector: 'formSolvedInput',
type: 'solved',
removeRow: unconfirmedFilterActive,
successMessage: 'Uloženo',
callback: function (row) {
if (!unconfirmedFilterActive) {
row.find('.comment-solved').html('Ano');
row.find('.comment-is-solved').addClass('disabled');
}
}
});
},
registerClickEvent: function (config) {
var self = this;
$(config.selector).on('click', function () {
var row = $(this).closest('tr');
var commentId = row.find(config.inputSelector).data(config.inputDataSelector);
var data = {};
data[commentId] = { [config.type]: 1 };
self.ajaxCall(row, data, config.successMessage, config.removeRow, config.callback);
});
},
ajaxCall: function (row, data, successMessage, removeRow, customCallback) {
$.ajax({
type: 'POST',
url: 'launch.php?s=list.php&type=' + this.listName,
data: {
'data': {
'comments': data
}
},
success: function(msg){
console.log('removeRow', removeRow);
if (removeRow) {
row.fadeOut(500);
}
if (customCallback) {
customCallback(row);
}
showInfoMessage(successMessage, 'success');
if (removeRow) {
row.remove();
}
},
error: function(){
showInfoMessage("Chyba při odeslání. Obnovte prosím stránku a zkuste to znovu.", 'error');
}
});
}
};