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