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

349 lines
13 KiB
JavaScript

/**
* Für die Bedienung der Aufgaben Vorlagen-Konfigurations-Oberfläche
*/
var ResubmissionTaskTemplateConfig = (function ($) {
'use strict';
var me = {
isInitialized: false,
storage: {
$table: null,
$editDialog: null,
dataTableApi: null
},
/**
* @return void
*/
init: function () {
if (me.isInitialized === true) {
return;
}
me.storage.$table = $('#resubmission_tasktemplate_datatable');
me.storage.$editDialog = $('#resubmission_tasktemplate_edit');
if (me.storage.$table.length === 0 || me.storage.$editDialog.length === 0) {
throw 'Could not initialize ResubmissionTaskTemplateConfig. 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: 1100,
maxHeight: 700,
autoOpen: false,
buttons: [{
text: 'ABBRECHEN',
click: function () {
me.resetEditDialog();
me.closeEditDialog();
}
}, {
text: 'SPEICHERN',
click: function () {
me.saveItem();
}
}],
open: function () {
me.initCkEditor();
// ANFANG Workaround Projekt-Arbeitspaket-AutoComplete
addClicklupe();
//lupeclickevent();
// ENDE Workaround Projekt-Arbeitspaket-AutoComplete
// ANFANG Workaround Projekt-Arbeitspaket-AutoComplete
$('input#resubmissiontasktemplate-subproject').autocomplete({
source: 'index.php?module=ajax&action=filter&filtername=arbeitspaket&projekt=' + 0
});
$('input#resubmissiontasktemplate-project').autocomplete({
source: 'index.php?module=ajax&action=filter&filtername=projektname',
select: function (event, ui) {
if (ui.item) {
$('input#resubmissiontasktemplate-subproject').autocomplete({
source: 'index.php?module=ajax&action=filter&filtername=arbeitspaket&projekt=' +
ui.item.value
});
}
}
});
// ENDE Workaround Projekt-Arbeitspaket-AutoComplete
},
close: function () {
me.resetEditDialog();
me.destroyCkEditor();
}
});
},
/**
* CKEditor für Beschreibungsfeld initialisieren
*
* Workaround für CKEditor
* Workaround ist notwendig weil `$this->app->YUI->CkEditor('resubmissiontasktemplatedescription','belege');` nicht
* funktioniert
*
* @return void
*/
initCkEditor: function () {
if (CKEDITOR.instances.hasOwnProperty('resubmissiontasktemplatedescription')) {
console.log(1);
return; // Ist bereits initialisiert
}
if (CKEDITOR.instances.resubmissiontasktemplatedescription) {
console.log(2);
return;
}
console.log(3);
var ckeditorSettings = {
toolbar:
[
['Bold', 'Italic', 'Underline', 'RemoveFormat', '-', 'Undo', 'Redo'],
['NumberedList', 'BulletedList'],
['Font', 'FontSize', 'TextColor'],
['Source']
],
allowedContent: true,
extraPlugins: 'colorbutton,font'
};
var $description = me.storage.$editDialog.find('textarea#resubmissiontasktemplatedescription');
$description.ckeditor(ckeditorSettings);
},
/**
* @return void
*/
destroyCkEditor: function () {
if (!CKEDITOR.instances.hasOwnProperty('resubmissiontasktemplatedescription')) {
return; // Ist nicht initialisiert
}
if (!CKEDITOR.instances.resubmissiontasktemplatedescription) {
return;
}
CKEDITOR.instances.resubmissiontasktemplatedescription.destroy();
},
/**
* @return {void}
*/
registerEvents: function () {
// Eintrag bearbeiten
$(document).on('click', '.resubmissiontasktemplate-edit-button', function (e) {
e.preventDefault();
var textfieldConfigId = $(this).data('tasktemplateConfigId');
me.editItem(textfieldConfigId);
});
// Eintrag löschen
$(document).on('click', '.resubmissiontasktemplate-delete-button', function (e) {
e.preventDefault();
var textfieldConfigId = $(this).data('tasktemplateConfigId');
me.deleteItem(textfieldConfigId);
});
// Neuen Eintrag anlegen
$('#resubmissiontasktemplate-create-button').on('click', function (e) {
e.preventDefault();
me.createItem();
})
},
/**
* @return {void}
*/
createItem: function () {
if (me.isInitialized === false) {
me.init();
}
me.resetEditDialog();
me.openEditDialog();
},
/**
* @param {number} tasktemplateConfigId
*
* @return {void}
*/
editItem: function (tasktemplateConfigId) {
$.ajax({
url: 'index.php?module=wiedervorlage&action=settings&cmd=tasktemplate-detail',
data: {
id: tasktemplateConfigId
},
method: 'post',
dataType: 'json',
success: function (result) {
me.storage.$editDialog.find('#resubmissiontasktemplate-id').val(result.data.id);
me.storage.$editDialog.find('#resubmissiontasktemplate-title').val(result.data.title);
me.storage.$editDialog.find('#resubmissiontasktemplate-employee').val(result.data.employee);
me.storage.$editDialog.find('#resubmissiontasktemplate-submissiondatedays').val(result.data.submission_date_days);
me.storage.$editDialog.find('#resubmissiontasktemplate-submissiontime').val(result.data.submission_time);
me.storage.$editDialog.find('#resubmissiontasktemplate-project').val(result.data.project);
me.storage.$editDialog.find('#resubmissiontasktemplate-subproject').val(result.data.subproject);
me.storage.$editDialog.find('#resubmissiontasktemplate-requiredfromstage').val(result.data.required_from_stage_id);
me.storage.$editDialog.find('#resubmissiontasktemplate-addtaskatstage').val(result.data.add_task_at_stage_id);
me.storage.$editDialog.find('#resubmissiontasktemplate-state').val(result.data.state);
me.storage.$editDialog.find('#resubmissiontasktemplate-priority').val(result.data.priority);
if (CKEDITOR.instances.hasOwnProperty('resubmissiontasktemplatedescription')
&& CKEDITOR.instances.resubmissiontasktemplatedescription) {
CKEDITOR.instances.resubmissiontasktemplatedescription.setData(result.data.description);
} else {
$('textarea#resubmissiontasktemplatedescription').val(result.data.description);
}
me.storage.$editDialog.dialog('open');
},
error: function (jqXhr) {
alert('Fehler: ' + jqXhr.responseJSON.error);
}
});
},
/**
* @return {void}
*/
saveItem: function () {
$.ajax({
url: 'index.php?module=wiedervorlage&action=settings&cmd=tasktemplate-save',
data: {
id: $('#resubmissiontasktemplate-id').val(),
title: $('#resubmissiontasktemplate-title').val(),
employee: $('#resubmissiontasktemplate-employee').val(),
submissiondatedays: $('#resubmissiontasktemplate-submissiondatedays').val(),
submissiontime: $('#resubmissiontasktemplate-submissiontime').val(),
project: $('#resubmissiontasktemplate-project').val(),
subproject:$('#resubmissiontasktemplate-subproject').val(),
requiredfromstage:$('#resubmissiontasktemplate-requiredfromstage').val(),
addtaskatstage:$('#resubmissiontasktemplate-addtaskatstage').val(),
state:$('#resubmissiontasktemplate-state').val(),
priority:$('#resubmissiontasktemplate-priority').val(),
description:$('textarea#resubmissiontasktemplatedescription').val()
},
method: 'post',
dataType: 'json',
success: function (data) {
if (data.success === true) {
me.resetEditDialog();
me.reloadDataTable();
me.closeEditDialog();
}
if (data.success === false) {
alert(data.error);
}
},
error: function (jqXhr) {
alert('Fehler: ' + jqXhr.responseJSON.error);
}
});
},
/**
* @param {number} tasktemplateConfigId
*
* @return {void}
*/
deleteItem: function (tasktemplateConfigId) {
var confirmValue = confirm('Möchten Sie die Aufgaben Vorlage wirklich löschen?');
if (confirmValue === false) {
return;
}
$.ajax({
url: 'index.php?module=wiedervorlage&action=settings&cmd=tasktemplate-delete',
data: {
id: tasktemplateConfigId
},
method: 'post',
dataType: 'json',
success: function (data) {
if (data.success === true) {
me.reloadDataTable();
}
if (data.success === false) {
alert('Unbekannter Fehler beim Löschen.');
}
},
error: function (jqXhr) {
alert('Fehler: ' + jqXhr.responseJSON.error);
}
});
},
/**
* @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('#resubmissiontasktemplate-id').val('');
me.storage.$editDialog.find('#resubmissiontasktemplate-title').val('');
me.storage.$editDialog.find('#resubmissiontasktemplate-employee').val('');
me.storage.$editDialog.find('#resubmissiontasktemplate-submissiondatedays').val('');
me.storage.$editDialog.find('#resubmissiontasktemplate-submissiontime').val('');
me.storage.$editDialog.find('#resubmissiontasktemplate-project').val('');
me.storage.$editDialog.find('#resubmissiontasktemplate-subproject').val('');
me.storage.$editDialog.find('#resubmissiontasktemplate-requiredfromstage').val('0');
me.storage.$editDialog.find('#resubmissiontasktemplate-addtaskatstage').prop('selectedIndex', 0);
me.storage.$editDialog.find('#resubmissiontasktemplate-state').val('open');
me.storage.$editDialog.find('#resubmissiontasktemplate-priority').val('medium');
me.storage.$editDialog.find('textarea#resubmissiontasktemplatedescription').val('');
},
/**
* Lädt die DataTable-Inhalte neu; per AJAX
*
* @return {void}
*/
reloadDataTable: function () {
if (!$.fn.DataTable.isDataTable(me.storage.$table)) {
return; // DataTable ist noch nicht initalisiert
}
var dataTableApi = $(me.storage.$table).dataTable().api();
dataTableApi.ajax.reload();
}
};
return {
init: me.init
};
})(jQuery);
$(document).ready(function () {
if ($('#resubmission_tasktemplate_datatable').length > 0) {
ResubmissionTaskTemplateConfig.init();
}
});