Initial xentral_oss_20.3.c9ffacf
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
.project-gantt {
|
||||
width: 98%;
|
||||
margin: 10px 0;
|
||||
border: 6px solid var(--fieldset-dark);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.project-gantt h3 {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.project-gantt h3 a,
|
||||
.project-gantt h3 a:link,
|
||||
.project-gantt h3 a:visited,
|
||||
.project-gantt h3 a:hover,
|
||||
.project-gantt h3 a:active {
|
||||
color: var(--turquoise);
|
||||
}
|
||||
|
||||
.project-gantt .fn-gantt .bar .fn-label {
|
||||
color: #FFF;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
.project-gantt .fn-gantt .leftPanel {
|
||||
width: 325px;
|
||||
}
|
||||
|
||||
.project-gantt .fn-gantt .leftPanel .fn-wide,
|
||||
.project-gantt .fn-gantt .leftPanel .fn-wide .fn-label {
|
||||
width: 325px;
|
||||
}
|
||||
|
||||
.project-gantt .fn-gantt .leftPanel .fn-label {
|
||||
width: 305px;
|
||||
}
|
||||
|
||||
.project-gantt .fn-gantt .leftPanel .desc {
|
||||
width: 305px;
|
||||
}
|
||||
|
||||
.project-gantt .fn-gantt .navigate {
|
||||
padding-left: 325px;
|
||||
}
|
||||
|
||||
@media print {
|
||||
#main {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
min-height: unset;
|
||||
overflow: unset;
|
||||
}
|
||||
|
||||
.menu-wrapper,
|
||||
#inlinehelp,
|
||||
#wawitooltip {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.ui-tabs .ui-tabs-panel {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.project-gantt .fn-gantt .bottom {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,204 @@
|
||||
/**
|
||||
* Projektplan über alle Projekte
|
||||
*/
|
||||
var ProjectScheduleOverview = (function ($) {
|
||||
'use strict';
|
||||
|
||||
var me = {
|
||||
|
||||
storage: {
|
||||
$jsonElement: null,
|
||||
$container: null
|
||||
},
|
||||
|
||||
init: function () {
|
||||
me.storage.$jsonElement = $('#project-schedule-jsondata');
|
||||
if (me.storage.$jsonElement.length === 0) {
|
||||
return;
|
||||
}
|
||||
me.storage.$container = $('#project-schedule-overview');
|
||||
if (me.storage.$container.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
me.registerEvents();
|
||||
|
||||
// Json einlesen und Gantt-Diagramm initialisieren
|
||||
var scheduleJson = me.storage.$jsonElement.html();
|
||||
var scheduleData = JSON.parse(scheduleJson);
|
||||
me.initGantt(scheduleData);
|
||||
},
|
||||
|
||||
registerEvents: function () {
|
||||
$('.print-button').on('click', function (e) {
|
||||
e.preventDefault();
|
||||
window.print();
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Gantt-Diagramm initialisieren
|
||||
*
|
||||
* @see http://taitems.github.io/jQuery.Gantt/
|
||||
*
|
||||
* @param {object} scheduleData
|
||||
*/
|
||||
initGantt: function (scheduleData) {
|
||||
var $ganttItem = $('<div class="project-gantt">').appendTo(me.storage.$container);
|
||||
|
||||
$ganttItem.gantt({
|
||||
source: scheduleData,
|
||||
navigate: 'scroll',
|
||||
scale: 'days',
|
||||
maxScale: 'months',
|
||||
minScale: 'hours',
|
||||
itemsPerPage: 20,
|
||||
useCookie: false
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
init: me.init
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
|
||||
/**
|
||||
* Projektplan für ein Projekt
|
||||
*/
|
||||
var ProjectScheduleDetail = (function ($) {
|
||||
'use strict';
|
||||
|
||||
var me = {
|
||||
|
||||
storage: {
|
||||
$jsonData: null,
|
||||
$container: null
|
||||
},
|
||||
|
||||
init: function () {
|
||||
me.storage.$jsonData = $('#project-schedule-jsondata');
|
||||
if (me.storage.$jsonData.length === 0) {
|
||||
return;
|
||||
}
|
||||
me.storage.$container = $('#project-schedule-detail');
|
||||
if (me.storage.$container.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
me.registerEvents();
|
||||
|
||||
// Json einlesen und Gantt-Diagramm initialisieren
|
||||
var scheduleJson = me.storage.$jsonData.html();
|
||||
var scheduleData = JSON.parse(scheduleJson);
|
||||
me.initGantt(scheduleData);
|
||||
},
|
||||
|
||||
registerEvents: function () {
|
||||
$('.print-button').on('click', function (e) {
|
||||
e.preventDefault();
|
||||
window.print();
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Gantt-Diagramm initialisieren
|
||||
*
|
||||
* @see http://taitems.github.io/jQuery.Gantt/
|
||||
*
|
||||
* @param {object} scheduleData
|
||||
*/
|
||||
initGantt: function (scheduleData) {
|
||||
var $ganttItem = $('<div class="project-gantt">').appendTo(me.storage.$container);
|
||||
|
||||
$ganttItem.gantt({
|
||||
source: scheduleData,
|
||||
navigate: 'scroll',
|
||||
scale: 'days',
|
||||
maxScale: 'months',
|
||||
minScale: 'hours',
|
||||
itemsPerPage: 100,
|
||||
useCookie: false,
|
||||
onItemClick: function (dataObj) {
|
||||
me.handleClick(dataObj);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {Object} dataObj
|
||||
*/
|
||||
handleClick: function (dataObj) {
|
||||
if (!dataObj.hasOwnProperty('type')) {
|
||||
throw 'Kann Klick nicht verarbeiten. Typ fehlt.';
|
||||
}
|
||||
if (!dataObj.hasOwnProperty('projectId')) {
|
||||
throw 'Kann Klick nicht verarbeiten. Projekt-ID fehlt.';
|
||||
}
|
||||
|
||||
var objectType = dataObj.type;
|
||||
var projectId = dataObj.projectId;
|
||||
|
||||
// Meilenstein wurde angeklickt
|
||||
if (objectType === 'milestone') {
|
||||
var taskId = dataObj.milestoneId;
|
||||
$.ajax({
|
||||
url: 'index.php?module=projekt&action=gant&cmd=getkalender&id=' + projectId,
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {uid: taskId},
|
||||
success: function (data) {
|
||||
$('#kalenderbeschreibung').html(data.beschreibung);
|
||||
$('#kalenderid').val(taskId);
|
||||
$('#kalenderbezeichnung').html(data.bezeichnung);
|
||||
$('#kalendervon').html(data.von);
|
||||
$('#kalenderbis').html(data.bis);
|
||||
$('#dialogkalender').dialog('open');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Arbeitspaket wurde angeklickt
|
||||
if (objectType === 'package') {
|
||||
var packageId = dataObj.packageId;
|
||||
$.ajax({
|
||||
url: 'index.php?module=projekt&action=gant&cmd=getteilprojekt&id=' + projectId,
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {uid: packageId},
|
||||
success: function (data) {
|
||||
$('#beschreibung').val(data.beschreibung);
|
||||
$('#cke_beschreibung').find('iframe').contents().find('body').html(data.beschreibung);
|
||||
$('#teilprojekt').val(packageId);
|
||||
$('#aufgabe').val(data.aufgabe);
|
||||
$('#adresse').val(data.verantwortlicher);
|
||||
$('#farbe').val(data.farbe).change();
|
||||
$('#status').val(data.status).change();
|
||||
$('#startdatum').val(data.startdatum);
|
||||
$('#abgabedatum').val(data.abgabedatum);
|
||||
$('#dialoggantt').dialog('open');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
init: me.init
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
|
||||
$(document).ready(function () {
|
||||
// Projektplan über alle Projekte
|
||||
if ($('#project-schedule-overview').length > 0) {
|
||||
ProjectScheduleOverview.init();
|
||||
}
|
||||
|
||||
// Projektplan für ein Projekt
|
||||
if ($('#project-schedule-detail').length > 0) {
|
||||
ProjectScheduleDetail.init();
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user