mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-26 22:50:29 +01:00
119 lines
4.1 KiB
JavaScript
119 lines
4.1 KiB
JavaScript
/**
|
|
* Modal zur Anzeige von blockierenden Aufgabe/Freifeldern
|
|
*
|
|
* Modal wird angezeigt wenn beim Verschieben von Wiedervorlagen (auf eine andere Stage)
|
|
* die zugeodneten Aufgaben oder Freifelder nicht die Anforderungen erfüllen.
|
|
*/
|
|
var ResubmissionBlockingItemsModal = (function ($) {
|
|
"use strict";
|
|
|
|
var me = {
|
|
|
|
storage: {
|
|
$modal: null,
|
|
data: null,
|
|
displayEditButton: true
|
|
},
|
|
|
|
/**
|
|
* @param {Object} data
|
|
* @param {Boolean} displayEditButton "Wiedervorlage bearbeiten"-Button in Modal anzeigen?
|
|
*/
|
|
show: function (data, displayEditButton) {
|
|
if (typeof displayEditButton === 'boolean') {
|
|
me.storage.displayEditButton = displayEditButton;
|
|
}
|
|
|
|
me.storage.data = data;
|
|
me.storage.$modal = me.createModal();
|
|
me.storage.$modal.dialog('open');
|
|
},
|
|
|
|
/**
|
|
*/
|
|
hide: function () {
|
|
if (me.storage.$modal === null) {
|
|
return;
|
|
}
|
|
|
|
me.storage.$modal.dialog('close');
|
|
},
|
|
|
|
/**
|
|
* @return {jQuery}
|
|
*/
|
|
createModal: function () {
|
|
var $prevModal = $('#resubmissiontask-blocking-items-modal');
|
|
if ($prevModal.length > 0) {
|
|
$prevModal.remove();
|
|
}
|
|
|
|
var data = me.storage.data;
|
|
var $modal = $('<div>').attr('id', 'resubmissiontask-blocking-items-modal').appendTo('body').hide();
|
|
var content = '';
|
|
|
|
if (data.blocking.type === 'change-stage') {
|
|
content = '<p>Die Wiedervorlage "' + data.resubmission.title + '" kann nicht ';
|
|
content += 'in die Stage "' + data.stage.title + '" verschoben werden, weil ';
|
|
content += 'folgende Element blockieren:</p>';
|
|
}
|
|
if (data.blocking.type === 'create-resubmission') {
|
|
content = '<p>Die Wiedervorlage kann nicht in der Stage "' + data.stage.title + '" ';
|
|
content += 'angelegt werden, weil folgende Element blockieren:</p>';
|
|
}
|
|
if (data.blocking.type === 'update-resubmission') {
|
|
content = '<p>Die Wiedervorlage kann nicht in der Stage "' + data.stage.title + '" ';
|
|
content += 'gespeichert werden, weil folgende Element blockieren:</p>';
|
|
}
|
|
|
|
content += '<ul>';
|
|
$.each(data.blocking.tasks, function (index, task) {
|
|
content += '<li><p>Aufgabe "' + task.title + '"<br><strong>nicht abgeschlossen</strong></p></li>';
|
|
});
|
|
$.each(data.blocking.textfields, function (index, textfield) {
|
|
content += '<li><p>Freitextfeld "' + textfield.label + '"<br><strong>ist leer</strong></p></li>';
|
|
});
|
|
content += '</ul>';
|
|
$modal.html(content);
|
|
|
|
var modalTitle = data.blocking.hasOwnProperty('title') ? data.blocking.title : 'Speichern nicht möglich';
|
|
var modalButtons = [{
|
|
text: 'OK',
|
|
click: function () {
|
|
$modal.dialog('close');
|
|
}
|
|
}];
|
|
if (
|
|
me.storage.displayEditButton === true &&
|
|
me.storage.data.resubmission.id > 0 // Neue Wiedervorlage
|
|
) {
|
|
modalButtons.unshift({
|
|
text: 'Wiedervorlage bearbeiten',
|
|
click: function () {
|
|
EditWiedervorlage(me.storage.data.resubmission.id);
|
|
$modal.dialog('close');
|
|
}
|
|
});
|
|
}
|
|
|
|
$modal.dialog({
|
|
modal: true,
|
|
bgiframe: true,
|
|
minWidth: 420,
|
|
autoOpen: false,
|
|
closeOnEscape: false,
|
|
title: modalTitle,
|
|
buttons: modalButtons
|
|
});
|
|
|
|
return $modal;
|
|
}
|
|
};
|
|
|
|
return {
|
|
show: me.show,
|
|
hide: me.hide
|
|
};
|
|
|
|
})(jQuery);
|