OpenXE/classes/Modules/CollectiveDebitors/www/js/collectivedebitors.js
2021-05-21 08:49:41 +02:00

310 lines
10 KiB
JavaScript

/**
* 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();
});