87 lines
2.6 KiB
JavaScript
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');
|
|
}
|
|
});
|
|
}
|
|
};
|