/** * Für die Bedienung der Modul-Oberfläche */ var CollectiveDebitorsUi = (function ($) { 'use strict'; var me = { isInitialized: false, storage: { $table: null, dataTable: null, $editDialog: null }, /** * @return void */ init: function () { if (me.isInitialized === true) { return; } me.storage.$table = $('#collectivedebitors_list'); me.storage.dataTable = me.storage.$table.dataTable(); me.storage.$editDialog = $('#editCollectiveDebitor'); if (me.storage.$table.length === 0 || me.storage.$editDialog.length === 0) { throw 'Could not initialize CollectiveDebitorUi. Required elements are missing.'; } me.initDialog(); me.registerEvents(); me.isInitialized = true; }, /** * @return {void} */ initDialog: function () { me.storage.$editDialog.dialog({ modal: true, bgiframe: true, closeOnEscape: false, minWidth: 500, minHeight: 420, maxHeight: 700, autoOpen: false, buttons: [ { text: 'ABBRECHEN', click: function () { me.resetEditDialog(); me.closeEditDialog(); } }, { text: 'SPEICHERN', click: function () { me.saveItem(); } }], open: function () { $('#collectivedebitor_paymentmethod').trigger('focus'); }, close: function () { me.resetEditDialog(); } }); }, /** * @return {void} */ registerEvents: function () { $(document).on('click', '.collectivedebitor-edit', function (e) { e.preventDefault(); var fieldId = $(this).data('collectivedebitor-id'); me.editItem(fieldId); }); $(document).on('click', '.collectivedebitor-delete', function (e) { e.preventDefault(); var fieldId = $(this).data('collectivedebitor-id'); me.deleteItem(fieldId); }); $(document).on('click', '.collectivedebitor-down', function (e) { e.preventDefault(); var fieldId = $(this).data('collectivedebitor-id'); me.sortItem(fieldId, 'down'); }); $(document).on('click', '.collectivedebitor-up', function (e) { e.preventDefault(); var fieldId = $(this).data('collectivedebitor-id'); me.sortItem(fieldId, 'up'); }); }, /** * @return {void} */ createItem: function () { if (me.isInitialized === false) { me.init(); } me.resetEditDialog(); me.openEditDialog(); }, /** * @param {number} fieldId * * @return {void} */ editItem: function (fieldId) { fieldId = parseInt(fieldId); if (isNaN(fieldId) || fieldId <= 0) { return; } $.ajax({ url: 'index.php?module=collectivedebitors&action=edit&cmd=get', data: { id: fieldId }, method: 'post', dataType: 'json', beforeSend: function () { App.loading.open(); }, success: function (data) { me.storage.$editDialog.find('#collectivedebitor_id').val(data.id); me.storage.$editDialog.find('#collectivedebitor_paymentmethod').val(data.paymentmethod_id); me.storage.$editDialog.find('#collectivedebitor_channel').val(data.channel_id); me.storage.$editDialog.find('#collectivedebitor_country').val(data.country); me.storage.$editDialog.find('#collectivedebitor_project').val(data.project); me.storage.$editDialog.find('#collectivedebitor_group').val(data.group); me.storage.$editDialog.find('#collectivedebitor_account').val(data.account); me.storage.$editDialog.find('#collectivedebitor_storeaddress0').prop('checked', Number(data.store_in_address) === 0); me.storage.$editDialog.find('#collectivedebitor_storeaddress1').prop('checked', Number(data.store_in_address) === 1); me.storage.$editDialog.find('#collectivedebitor_storeaddress2').prop('checked', Number(data.store_in_address) === 2); App.loading.close(); me.storage.$editDialog.dialog('open'); } }); }, /** * @param {number} fieldId * @param {string} direction * * @return {void} */ sortItem: function (fieldId, direction) { fieldId = parseInt(fieldId); if (isNaN(fieldId) || fieldId <= 0) { return; } direction = direction.toString(); if (direction !== 'up' && direction !== 'down') { return; } $.ajax({ url: 'index.php?module=collectivedebitors&action=edit&cmd=sort', data: { id: fieldId, direction: direction }, method: 'post', dataType: 'json', beforeSend: function () { App.loading.open(); }, success: function() { me.reloadDataTable(); } }); }, /** * @return {void} */ saveItem: function () { var storeAddress = 0; if ($('#collectivedebitor_storeaddress1').prop('checked')) { storeAddress = 1; } if ($('#collectivedebitor_storeaddress2').prop('checked')) { storeAddress = 2; } $.ajax({ url: 'index.php?module=collectivedebitors&action=save', data: { //Alle Felder die fürs editieren vorhanden sind id: $('#collectivedebitor_id').val(), paymentmethod: $('#collectivedebitor_paymentmethod').val(), channel: $('#collectivedebitor_channel').val(), country: $('#collectivedebitor_country').val(), project: $('#collectivedebitor_project').val(), group: $('#collectivedebitor_group').val(), account: $('#collectivedebitor_account').val(), store_in_address: storeAddress }, method: 'post', dataType: 'json', beforeSend: function () { App.loading.open(); }, success: function (data) { App.loading.close(); if (data.success === true) { me.resetEditDialog(); me.reloadDataTable(); me.closeEditDialog(); } if (data.success === false) { alert(data.error); } } }); }, /** * @param {number} fieldId * * @return {void} */ deleteItem: function (fieldId) { var confirmValue = confirm('Wirklich löschen?'); if (confirmValue === false) { return; } $.ajax({ url: 'index.php?module=collectivedebitors&action=delete', data: { id: fieldId }, method: 'post', dataType: 'json', beforeSend: function () { App.loading.open(); }, success: function (data) { if (data.success === true) { me.reloadDataTable(); } if (data.success === false) { alert('Unbekannter Fehler beim Löschen.'); } App.loading.close(); } }); }, /** * @return void */ openEditDialog: function () { me.storage.$editDialog.dialog('open'); }, /** * @return void */ closeEditDialog: function () { me.storage.$editDialog.dialog('close'); }, /** * @return void */ resetEditDialog: function () { me.storage.$editDialog.find('#collectivedebitor_id').val(''); me.storage.$editDialog.find('#collectivedebitor_paymentmethod').val(''); me.storage.$editDialog.find('#collectivedebitor_channel').val(''); me.storage.$editDialog.find('#collectivedebitor_country').val(''); me.storage.$editDialog.find('#collectivedebitor_project').val(''); me.storage.$editDialog.find('#collectivedebitor_group').val(''); me.storage.$editDialog.find('#collectivedebitor_account').val(''); me.storage.$editDialog.find('#collectivedebitor_storeaddress0').prop('checked', true); me.storage.$editDialog.find('#collectivedebitor_storeaddress1').prop('checked', false); me.storage.$editDialog.find('#collectivedebitor_storeaddress2').prop('checked', false); }, /** * @return {void} */ reloadDataTable: function () { me.storage.dataTable.api().ajax.reload(); } }; return { init: me.init, createItem: me.createItem }; })(jQuery); $(document).ready(function () { CollectiveDebitorsUi.init(); });