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

124 lines
4.1 KiB
JavaScript

var ImportMasterdata = function ($) {
'use strict';
var me = {
url: {
activateJob: 'index.php?module=importvorlage&action=list&cmd=activatejob',
deleteJob: 'index.php?module=importvorlage&action=list&cmd=deletejob',
batchJob: 'index.php?module=importvorlage&action=list&cmd=batch'
},
selector: {
table: 'table#importvorlage_list',
deleteIcon: 'table#importvorlage_list img.deletejob',
activateIcon: 'table#importvorlage_list img.activatejob',
selectAll: 'input#selectall',
selectBoxes: 'table#importvorlage_list input.select',
selectBoxesSelected: 'table#importvorlage_list input.select:checked',
actionSelect: 'select#selaction',
actionSend: 'input#send'
},
updateTable: function () {
$(me.selector.table).DataTable().ajax.reload();
},
sendBatch: function () {
var $selection = $(me.selector.selectBoxesSelected);
if ($($selection).length === 0) {
alert('Bitte Importe auswählen');
return;
}
var ids = [];
$.each($selection, function () {
ids.push($(this).data('id'));
});
var select = $(me.selector.actionSelect).val();
switch (select) {
case 'delete':
if (!confirm('Wirklich löschen?')) {
return;
}
break;
case 'activate':
if (!confirm('Wirklich aktivieren?')) {
return;
}
break;
default:
return;
}
$.ajax({
url: me.url.batchJob,
method: 'post',
data: {
selection: select,
jobIds: ids
},
dataType: 'json',
success: function (data) {
me.updateTable();
},
error: function (xhr, status, httpStatus) {
console.log(status + ' ' + httpStatus + ': ' + xhr.responseText);
}
});
},
activateJob: function (id) {
$.ajax({
url: me.url.activateJob,
method: 'post',
data: {jobid: id},
dataType: 'json',
success: function (data) {
me.updateTable();
},
error: function (xhr, status, httpStatus) {
console.log(status + ' ' + httpStatus + ': ' + xhr.responseText);
}
});
},
deleteJob: function (id) {
if (!confirm('Wirklich löschen?')) {
return;
}
$.ajax({
url: me.url.deleteJob,
method: 'post',
data: {jobid: id},
dataType: 'json',
success: function (data) {
me.updateTable();
},
error: function (xhr, status, httpStatus) {
console.log(status + ' ' + httpStatus + ': ' + xhr.responseText);
}
});
},
init: function () {
$(me.selector.table).on('afterreload', function () {
$(me.selector.activateIcon).on('click', function () {
me.activateJob($(this).data('id'));
});
$(me.selector.deleteIcon).on('click', function () {
me.deleteJob($(this).data('id'));
});
});
$(me.selector.selectAll).on('click', function () {
$(me.selector.selectBoxes).prop('checked', $(this).prop('checked'));
});
$(me.selector.actionSend).on('click', function () {
me.sendBatch();
});
}
};
return {
init: me.init
};
}(jQuery);
$(document).ready(function () {
ImportMasterdata.init();
});