Merge branch 'master' into feature-6656/Worker_queue

This commit is contained in:
Andreas Österreicher
2020-06-17 09:03:41 +02:00
146 changed files with 13208 additions and 4460 deletions
@@ -1,180 +1,202 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'Lehrauftrag annehmen',
'jquery' => true,
'jqueryui' => true,
'jquerycheckboxes' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => false,
'tabulator' => true,
'momentjs' => true,
'ajaxlib' => true,
'dialoglib' => true,
'tablewidget' => true,
'phrases' => array(
'global' => array('lehrauftraegeAnnehmen'),
),
'customJSs' => array(
'public/js/bootstrapper.js',
'public/js/lehre/lehrauftrag/acceptLehrauftrag.js')
)
'templates/FHC-Header',
array(
'title' => 'Lehrauftrag annehmen',
'jquery' => true,
'jqueryui' => true,
'jquerycheckboxes' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => false,
'tabulator' => true,
'momentjs' => true,
'ajaxlib' => true,
'dialoglib' => true,
'tablewidget' => true,
'phrases' => array(
'global' => array(
'lehrauftraegeAnnehmen',
'dokumentePDF',
'PDFLehrauftraegeFH',
'PDFLehrauftraegeLehrgaenge'
),
'ui' => array(
'anzeigen',
'alleAnzeigen',
'nurBestellteAnzeigen',
'nurErteilteAnzeigen',
'nurAngenommeneAnzeigen',
'nurStornierteAnzeigen',
'hilfeZuDieserSeite',
'alleAuswaehlen',
'alleAbwaehlen',
'ausgewaehlteZeilen',
'hilfe',
'tabelleneinstellungen',
'keineDatenVorhanden',
'spaltenEinstellen',
'bestelltVon',
'erteiltVon',
'angenommenVon',
'storniertVon',
'lehrauftragInBearbeitung',
'wartetAufErteilung',
'wartetAufErneuteErteilung',
'letzterStatusBestellt',
'letzterStatusErteilt',
'letzterStatusAngenommen',
'vertragWurdeStorniert',
),
'password' => array('password'),
'dms' => array('informationsblattExterneLehrende'),
'table' => array(
'spaltenEinAusblenden',
'spaltenEinAusblendenMitKlickOeffnen',
'spaltenEinAusblendenAufEinstellungenKlicken',
'spaltenEinAusblendenMitKlickAktivieren',
'spaltenEinAusblendenMitKlickSchliessen',
'spaltenbreiteVeraendern',
'spaltenbreiteVeraendernText',
'spaltenbreiteVeraendernInfotext',
'zeilenAuswaehlen',
'zeilenAuswaehlenEinzeln',
'zeilenAuswaehlenBereich',
'zeilenAuswaehlenAlle'
),
'lehre' => array(
'lehrauftraegeAnnehmen',
'lehrauftraegeAnnehmenText',
'lehrauftraegeAnnehmenKlickStatusicon',
'lehrauftraegeAnnehmenLehrauftraegeWaehlen',
'lehrauftraegeAnnehmenMitKlickAnnehmen',
'lehrauftraegeNichtAuswaehlbar',
'lehrauftraegeNichtAuswaehlbarTextBeiAnnahme',
'filterAlleBeiAnnahme',
'filterErteiltBeiAnnahme',
'filterAngenommen'
)
),
'customJSs' => array(
'public/js/bootstrapper.js',
'public/js/lehre/lehrauftrag/acceptLehrauftrag.js')
)
);
?>
<body>
<div id="page-wrapper">
<div class="container-fluid">
<div class="container-fluid">
<!-- title & helper link -->
<div class="row">
<div class="col-lg-12 page-header">
<div class="row">
<div class="col-lg-12 page-header">
<a class="pull-right" data-toggle="collapse" href="#collapseHelp" aria-expanded="false" aria-controls="collapseExample">
Hilfe zu dieser Seite
<?php echo $this->p->t('ui', 'hilfeZuDieserSeite'); ?>
</a>
<h3>
<?php echo ucfirst($this->p->t('global', 'lehrauftraegeAnnehmen')); ?>
</h3>
<?php echo ucfirst($this->p->t('global', 'lehrauftraegeAnnehmen')); ?>
</h3>
</div>
</div>
</div>
<!-- helper collapse module -->
<div class="row">
<div class="col-lg-12 collapse" id="collapseHelp">
<div class="well">
<h4>Wie nehme ich Lehraufträge an?</h4>
<div class="panel panel-body">
Sobald Ihnen ein oder mehrere Lehraufträge erteilt wurden, können Sie diese annehmen.
<ol>
<li>Klicken Sie unten auf das Status-Icon 'Nur erteilte anzeigen' oder 'Alle anzeigen'</li>
<li>Wählen Sie die Lehraufträge, die Sie annehmen möchten, selbst oder alle über den Button 'Alle auswählen'.</li>
<li>Geben Sie Ihr CIS-Passwort ein und klicken auf Lehrauftrag annehmen.</li>
</ol>
</div>
<br>
<h4>Warum kann ich manche Lehraufträge nicht auswählen?</h4>
<div class="panel panel-body">
Nur Lehraufträge mit dem Status 'erteilt' können gewählt werden.<br>
Angenommene Lehraufträge oder Lehraufträge in Bearbeitung werden nur zu Ihrer Information angezeigt.
</div>
<br>
<h4>Filter</h4>
<div class="panel panel-body">
<div class="col-xs-12 col-md-8 col-lg-6">
<table class="table table-bordered">
<tr class="text-center">
<td class="col-xs-1"><i class='fa fa-users'></i></td>
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px;"></td>
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
</tr>
<tr class="text-center">
<td><b>Alle</b><br>Alle Lehraufträge mit jedem Status</td>
<td><b>Bestellt</b><br>Nur bestellte UND bestellte Lehraufträge, die in Bearbeitung sind</td>
<td><b>Erteilt</b><br>Nur erteilte UND geänderte Lehraufträge, die in Bearbeitung sind</td>
<td><b>Angenommen</b><br>Nur von Ihnen angenommene Lehraufträge</td>
</tr>
</table>
</div>
</div>
<br>
<h4>Auswahl</h4>
<div class="panel panel-body">
<ul>
<li>Einzeln auswählen: <kbd>Strg</kbd> + Klick auf einzelne Zeile(n)</li>
<li>Bereich auswählen: <kbd>Shift</kbd> + Klick auf Anfangs- und Endzeile</li>
<li>Alle auswählen: Button 'Alle auswählen'</li>
</ul>
</div>
<br>
<h4>Ansicht</h4>
<div class="panel panel-body">
<b>Spaltenbreite verändern</b>
<p>
Um die Spaltenbreite zu verändern, fährt man im Spaltenkopf langsam mit dem Mauszeiger auf
den rechten Rand der entprechenden Spalte. <br>
Sobald sich der Mauszeiger in einen Doppelpfeil verwandelt, wird die Maustaste geklickt und
mit gedrückter Maustaste die Spalte nach rechts erweitert oder nach links verkleinert.
</p>
</div>
<br>
</div>
<?php $this->load->view('lehre/lehrauftrag/acceptLehrauftragHelp') ?>
</div> <!--./well-->
</div>
</div>
<!-- dropdown widgets -->
<div class="row">
<div class="col-lg-12">
<form id="formLehrauftrag" class="form-inline" action="" method="get">
<div class="form-group">
<?php
echo $this->widgetlib->widget(
'Studiensemester_widget',
array(
DropdownWidget::SELECTED_ELEMENT => $studiensemester_selected
),
array(
'name' => 'studiensemester',
'id' => 'studiensemester'
)
);
?>
</div>
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group">Anzeigen</button>
</form>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<form id="formLehrauftrag" class="form-inline" action="" method="get">
<input type="hidden" id="uid" name="uid" value="<?php echo getAuthUID(); ?>">
<div class="form-group">
<?php
echo $this->widgetlib->widget(
'Studiensemester_widget',
array(
DropdownWidget::SELECTED_ELEMENT => $studiensemester_selected
),
array(
'name' => 'studiensemester',
'id' => 'studiensemester'
)
);
?>
</div>
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
</form>
</div>
</div>
<!-- tabulator data table 'Lehrauftraege annehmen'-->
<div class="row">
<div class="col-lg-12">
<?php $this->load->view('lehre/lehrauftrag/acceptLehrauftragData.php'); ?>
</div>
</div>
<br>
<div class="row">
<div class="col-lg-12">
<?php $this->load->view('lehre/lehrauftrag/acceptLehrauftragData.php'); ?>
</div>
</div>
<br>
<!-- filter buttons & password field & akzeptieren-button -->
<div class="row">
<div class="col-xs-6">
<div class="btn-toolbar" role="toolbar">
<div class="btn-group" role="group">
<button id="show-all" class="btn btn-default btn-lehrauftrag active focus" type="button"
data-toggle="tooltip" data-placement="left" title="Alle anzeigen"><i class='fa fa-users'></i>
<!-- link for external lectors 'Informationsblatt fuer externe Lehrende'. Show only for external lecturers -->
<?php if ($is_external_lector): ?>
<div class="row">
<div class="col-xs-12">
<span class="pull-right"><?php echo $this->p->t('dms' , 'informationsblattExterneLehrende'); ?></span>
</div>
</div>
<br>
<?php endif; ?>
<!-- filter buttons & PDF downloads & password field & akzeptieren-button -->
<div class="row">
<div class="col-xs-5 col-md-4">
<div class="btn-toolbar" role="toolbar">
<div class="btn-group" role="group">
<button id="show-all" class="btn btn-default btn-lehrauftrag active focus" type="button"
data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'alleAnzeigen'); ?>"><i class='fa fa-users'></i>
</button>
<button id="show-ordered" class="btn btn-default btn-lehrauftrag" type="button"
data-toggle="tooltip" data-placement="left" title="Nur bestellte anzeigen">
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button"
data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurErteilteAnzeigen'); ?>">
</button><!-- png img set in javascript -->
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button"
data-toggle="tooltip" data-placement="left" title="Nur erteilte anzeigen">
</button><!-- png img set in javascript -->
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button"
data-toggle="tooltip" data-placement="left" title="Nur angenommene anzeigen"><i class='fa fa-handshake-o'></i>
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button"
data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurAngenommeneAnzeigen'); ?>"><i class='fa fa-handshake-o'></i>
</button>
</div>
</div>
<button id="show-cancelled" class="btn btn-default btn-lehrauftrag" type="button" style="margin-left: 20px;"
data-toggle="collapse" data-placement="left" title="Stornierte anzeigen"
data-toggle="collapse" data-placement="left" title="<?php echo $this->p->t('ui', 'nurStornierteAnzeigen'); ?>"
data-target ="#collapseCancelledLehrauftraege" aria-expanded="false" aria-controls="collapseExample">
</button><!-- png img set in javascript -->
</div>
</div>
<div class="col-md-offset-2 col-md-4 col-xs-6">
</div>
</div>
<div class="col-xs-3 col-md-offset-2 col-md-2">
<div class="btn-group dropup pull-right">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<?php echo $this->p->t('global', 'dokumentePDF'); ?>&nbsp;&nbsp;<i class="fa fa-arrow-down"></i>&nbsp;&nbsp;&nbsp;&nbsp;<span class="caret"></span>
</button>
<ul id="ul-download-pdf" class="dropdown-menu">
<li value="etw"><a href="#"><?php echo $this->p->t('global', 'PDFLehrauftraegeFH'); ?></a></li>
<li value="lehrgang"><a href="#"><?php echo $this->p->t('global', 'PDFLehrauftraegeLehrgaenge'); ?></a></li>
</ul>
</div>
</div>
<div class="col-xs-4 col-md-offset-0 col-md-4">
<div class="input-group">
<input id="username" type="hidden" value=""><!-- this is to prevent Chrome autofilling a random input field with the username-->
<input id="password" type="password" autocomplete="new-password" class="form-control" placeholder="CIS-Passwort">
<input id="password" type="password" autocomplete="new-password" class="form-control" placeholder="CIS-<?php echo ucfirst($this->p->t('password', 'password')); ?>">
<span class="input-group-btn">
<button id="accept-lehrauftraege" class="btn btn-primary pull-right">Lehrauftrag annehmen</button>
<button id="accept-lehrauftraege" class="btn btn-primary pull-right"><?php echo ucfirst($this->p->t('global', 'lehrauftraegeAnnehmen')); ?></button>
</span>
</div>
</div>
</div>
</div>
</div>
<br>
<br>
@@ -196,8 +218,8 @@ $this->load->view(
</div>
<br>
</div>
</div>
</div><!-- end container -->
</div>
</div><!-- end container -->
</div><!-- end page-wrapper -->
<br>
</body>
@@ -9,19 +9,19 @@ $query = '
SELECT
/* provide extra row index for tabulator, because no other column has unique ids */
ROW_NUMBER() OVER () AS "row_index",
auftrag,
stg_typ_kurzbz,
gruppe,
typ,
lehreinheit_id,
lehrveranstaltung_id,
projektarbeit_id,
studiensemester_kurzbz,
studiengang_kz,
stg_typ_kurzbz,
semester,
orgform_kurzbz,
person_id,
typ,
auftrag,
lv_oe_kurzbz,
gruppe,
stunden,
betrag,
vertrag_id,
@@ -170,7 +170,7 @@ FROM
/* filter active organisationseinheiten */
AND oe.aktiv = TRUE
/* filter vertragsstatus to avoid showing before status is bestellt */
AND vvs.vertragsstatus_kurzbz IN (\'bestellt\', \'erteilt\', \'akzeptiert\')
AND vvs.vertragsstatus_kurzbz IN (\'erteilt\', \'akzeptiert\')
) tmp_lehrauftraege
UNION
@@ -182,8 +182,8 @@ FROM
(SELECT
uid
FROM
public.tbl_benutzer JOIN public.tbl_mitarbeiter ma
ON tbl_benutzer.uid = ma.mitarbeiter_uid
public.tbl_benutzer JOIN public.tbl_mitarbeiter ma
ON tbl_benutzer.uid = ma.mitarbeiter_uid
WHERE
person_id = tmp_projektbetreuung.person_id
ORDER BY aktiv DESC, updateaktivam DESC -- accept inactive as some person_ids have no active, but order them last
@@ -285,8 +285,8 @@ FROM
AND lv.aktiv = TRUE
/* filter active organisationseinheiten */
AND oe.aktiv = TRUE
/* filter vertragsstatus to avoid showing before status is bestellt */
AND vvs.vertragsstatus_kurzbz IN (\'bestellt\', \'erteilt\', \'akzeptiert\')
/* filter vertragsstatus to avoid showing before status is erteilt */
AND vvs.vertragsstatus_kurzbz IN (\'erteilt\', \'akzeptiert\')
) tmp_projektbetreuung
) auftraege
ORDER BY "akzeptiert" NULLS FIRST, "erteilt" NULLS LAST, "bestellt"
@@ -297,40 +297,39 @@ $filterWidgetArray = array(
'tableUniqueId' => 'acceptLehrauftrag',
'requiredPermissions' => 'lehre/lehrauftrag_akzeptieren',
'datasetRepresentation' => 'tabulator',
'columnsAliases' => array( // TODO: use phrasen
'columnsAliases' => array(
'Status', // alias for row_index, because row_index is formatted to display the status icons
'LV-Teil',
'LV-ID',
'PA-ID',
'Studiensemester',
'Studiengang-KZ',
'Studiengang',
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '- / '.
ucfirst($this->p->t('ui', 'projekt')). lcfirst($this->p->t('ui', 'bezeichnung')),
ucfirst($this->p->t('lehre', 'studiengang')),
ucfirst($this->p->t('lehre', 'gruppe')),
ucfirst($this->p->t('global', 'typ')),
ucfirst($this->p->t('lehre', 'lehreinheit')),
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '-ID',
ucfirst($this->p->t('ui', 'projektarbeit')). '-ID',
ucfirst($this->p->t('lehre', 'studiensemester')),
ucfirst($this->p->t('lehre', 'studiengang')). '-'. ucfirst($this->p->t('ui', 'kz')),
'Semester',
'OrgForm',
ucfirst($this->p->t('lehre', 'organisationsform')),
'Person-ID',
'Typ',
'LV- / Projektbezeichnung',
'Organisationseinheit',
'Gruppe',
'Stunden',
'Betrag',
'Vertrag-ID',
'Vertrag-Stunden',
'Vertrag-Betrag',
ucfirst($this->p->t('lehre', 'organisationseinheit')),
ucfirst($this->p->t('ui', 'stunden')),
ucfirst($this->p->t('ui', 'betrag')),
ucfirst($this->p->t('ui', 'vertrag')). '-ID',
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'stunden')),
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'betrag')),
'UID',
'Bestellt',
'Erteilt',
'Angenommen',
'Bestellt von',
'Erteilt von',
'Angenommen von'
ucfirst($this->p->t('ui', 'bestellt')),
ucfirst($this->p->t('ui', 'erteilt')),
ucfirst($this->p->t('ui', 'angenommen')),
ucfirst($this->p->t('ui', 'bestelltVon')),
ucfirst($this->p->t('ui', 'erteiltVon')),
ucfirst($this->p->t('ui', 'angenommenVon'))
),
'datasetRepOptions' => '{
height: 550,
layout: "fitColumns", // fit columns to width of table
responsiveLayout: "hide", // hide columns that dont fit on the table
movableColumns: true, // allows changing column
placeholder: func_placeholder(),
height: func_height(this),
layout: "fitColumns", // fit columns to width of table
autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated
headerFilterPlaceholder: " ",
index: "row_index", // assign specific column as unique id (important for row indexing)
selectable: true, // allow row selection
@@ -339,13 +338,9 @@ $filterWidgetArray = array(
selectableCheck: function(row){
return func_selectableCheck(row);
},
footerElement: func_footerElement(),
rowUpdated:function(row){
func_rowUpdated(row);
},
rowSelectionChanged:function(data, rows){
func_rowSelectionChanged(data, rows);
},
rowFormatter:function(row){
func_rowFormatter(row);
},
@@ -357,40 +352,47 @@ $filterWidgetArray = array(
},
renderStarted:function(){
func_renderStarted(this);
}
},
tableWidgetFooter: {
selectButtons: true
}
}', // tabulator properties
'datasetRepFieldsDefs' => '{
row_index: {visible:false}, // necessary for row indexing
lehreinheit_id: {headerFilter:"input", bottomCalc:"count", bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();}, width: "7%"},
lehrveranstaltung_id: {headerFilter:"input", width: "5%"},
projektarbeit_id: {visible: false},
studiensemester_kurzbz: {visible: false},
studiengang_kz: {visible: false},
stg_typ_kurzbz: {headerFilter:"input", width: "5%"},
auftrag: {
headerFilter:"input", widthGrow: 3,
bottomCalc:"count", bottomCalcFormatter:function(cell){return "'. ucfirst($this->p->t('global', 'anzahl')). ': " + cell.getValue();}
},
stg_typ_kurzbz: {headerFilter:"input"},
gruppe: {headerFilter:"input"},
typ: {headerFilter:"input"},
lehreinheit_id: {visible: false, headerFilter:"input"},
lehrveranstaltung_id: {visible: false, headerFilter:"input"},
projektarbeit_id: {visible: false, headerFilter:"input"},
studiensemester_kurzbz: {visible: false, headerFilter:"input"},
studiengang_kz: {visible: false, headerFilter:"input"},
semester: {headerFilter:"input"},
orgform_kurzbz: {headerFilter:"input"},
person_id: {visible: false},
typ: {headerFilter:"input", width: "7%"},
auftrag: {headerFilter:"input", width: "15%"},
lv_oe_kurzbz: {headerFilter:"input", width: "8%"},
gruppe: {headerFilter:"input", width: "5%"},
orgform_kurzbz: {visible: false, headerFilter:"input"},
person_id: {visible: false, headerFilter:"input"},
lv_oe_kurzbz: {visible: false, headerFilter:"input"},
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
bottomCalc:"sum", bottomCalcParams:{precision:1}, width: "5%"},
betrag: {align:"right", width: "6%", formatter: form_formatNulltoStringNumber,
bottomCalc:"sum", bottomCalcParams:{precision:1}
},
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"},
width: "8%"},
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}
},
vertrag_id: {visible: false},
vertrag_stunden: {visible: false},
vertrag_betrag: {visible: false},
mitarbeiter_uid: {visible: false},
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"},
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"},
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"},
bestellt_von: {visible: false},
erteilt_von: {visible: false},
akzeptiert_von: {visible: false}
mitarbeiter_uid: {visible: false, headerFilter:"input"},
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip},
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip},
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip},
bestellt_von: {visible: false, headerFilter:"input"},
erteilt_von: {visible: false, headerFilter:"input"},
akzeptiert_von: {visible: false, headerFilter:"input"}
}', // col properties
);
@@ -0,0 +1,35 @@
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeAnnehmen'); ?></h4>
<div class="panel panel-body">
<?php echo $this->p->t('lehre', 'lehrauftraegeAnnehmenText'); ?>
<ol>
<li><?php echo $this->p->t('lehre', 'lehrauftraegeAnnehmenKlickStatusicon'); ?></li>
<li><?php echo $this->p->t('lehre', 'lehrauftraegeAnnehmenLehrauftraegeWaehlen'); ?></li>
<li><?php echo $this->p->t('lehre', 'lehrauftraegeAnnehmenMitKlickAnnehmen'); ?></li>
</ol>
</div>
<br>
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeNichtAuswaehlbar'); ?></h4>
<div class="panel panel-body">
<?php echo $this->p->t('lehre', 'lehrauftraegeNichtAuswaehlbarTextBeiAnnahme'); ?>
</div>
<br>
<h4>Filter</h4>
<div class="panel panel-body">
<div class="col-xs-12 col-md-8 col-lg-6">
<table class="table table-bordered">
<tr class="text-center">
<td class="col-xs-1"><i class='fa fa-users'></i></td>
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
</tr>
<tr class="text-center">
<td><?php echo $this->p->t('lehre', 'filterAlleBeiAnnahme'); ?></td>
<td><?php echo $this->p->t('lehre', 'filterErteiltBeiAnnahme'); ?></td>
<td><?php echo $this->p->t('lehre', 'filterAngenommen'); ?></td>
</tr>
</table>
</div>
</div>
<br>
@@ -16,7 +16,76 @@ $this->load->view(
'tablewidget' => true,
'navigationwidget' => true,
'phrases' => array(
'global' => array('lehrauftraegeErteilen'),
'global' => array(
'lehrauftraegeErteilen',
'mehrHilfe',
'weitereInformationenUnter'
),
'ui' => array(
'anzeigen',
'alleAnzeigen',
'nurNeueAnzeigen',
'nurBestellteAnzeigen',
'nurErteilteAnzeigen',
'nurAngenommeneAnzeigen',
'nurGeaenderteAnzeigen',
'nurDummiesAnzeigen',
'hilfeZuDieserSeite',
'alleAuswaehlen',
'alleAbwaehlen',
'ausgewaehlteZeilen',
'hilfe',
'tabelleneinstellungen',
'keineDatenVorhanden',
'spaltenEinstellen',
'bestelltVon',
'erteiltVon',
'angenommenVon',
'stundenStundensatzGeaendert',
'neuerLehrauftragOhneLektorVerplant',
'wartetAufBestellung',
'wartetAufErneuteBestellung',
'neuerLehrauftragWartetAufBestellung',
'letzterStatusBestellt',
'letzterStatusErteilt',
'letzterStatusAngenommen',
),
'table' => array(
'spaltenEinAusblenden',
'spaltenEinAusblendenMitKlickOeffnen',
'spaltenEinAusblendenAufEinstellungenKlicken',
'spaltenEinAusblendenMitKlickAktivieren',
'spaltenEinAusblendenMitKlickSchliessen',
'spaltenbreiteVeraendern',
'spaltenbreiteVeraendernText',
'spaltenbreiteVeraendernInfotext',
'zeilenAuswaehlen',
'zeilenAuswaehlenEinzeln',
'zeilenAuswaehlenBereich',
'zeilenAuswaehlenAlle'
),
'lehre' => array(
'lehrauftragStandardBestellprozess',
'lehrauftragStandardBestellprozessBestellen',
'lehrauftragStandardBestellprozessErteilen',
'lehrauftragStandardBestellprozessAnnehmen',
'lehrauftraegeErteilen',
'lehrauftraegeErteilenText',
'lehrauftraegeErteilenKlickStatusicon',
'lehrauftraegeErteilenLehrauftraegeWaehlen',
'lehrauftraegeErteilenMitKlickErteilen',
'geaenderteLehrauftraege',
'geaenderteLehrauftraegeTextBeiErteilung',
'lehrauftraegeNichtAuswaehlbar',
'lehrauftraegeNichtAuswaehlbarTextBeiErteilung',
'filterAlle',
'filterNeu',
'filterBestellt',
'filterErteilt',
'filterAngenommen',
'filterGeaendert',
'filterDummies'
)
),
'customJSs' => array(
'public/js/bootstrapper.js',
@@ -24,7 +93,6 @@ $this->load->view(
)
)
);
?>
<body>
@@ -36,7 +104,7 @@ $this->load->view(
<div class="row">
<div class="col-lg-12 page-header">
<a class="pull-right" data-toggle="collapse" href="#collapseHelp" aria-expanded="false" aria-controls="collapseExample">
Hilfe zu dieser Seite
<?php echo $this->p->t('ui', 'hilfeZuDieserSeite'); ?>
</a>
<h3>
<?php echo ucfirst($this->p->t('global', 'lehrauftraegeErteilen')); ?>
@@ -48,103 +116,7 @@ $this->load->view(
<div class="row">
<div class="col-lg-12 collapse" id="collapseHelp">
<div class="well">
<h4>Lehrauftrag Standard-Bestellprozess</h4>
<div class="panel panel-body">
<table>
<tr class="text-center">
<td><img src="../../../public/images/icons/fa-user-tag.png" style="height: 60px; width: 60px;"></td>
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
<td><img src="../../../public/images/icons/fa-user-check.png" style="height: 60px; width: 60px;"></td>
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
<td><i class='fa fa-2x fa-handshake-o'></i></td>
</tr>
<tr class="text-center">
<td class="text-muted">BESTELLEN<br>(Studiengangsleitung)</td>
<td></td>
<td><b>ERTEILEN<br>(Department-/Kompetenzfeldleitung)</b></td>
<td></td>
<td class="text-muted">ANNEHMEN<br>(LektorIn)</td>
</tr>
</table>
</div>
<br>
<h4>Lehraufträge erteilen</h4>
<div class="panel panel-body">
Sobald Lehraufträge bestellt wurden, können Sie diese hier erteilen.<br>
Erteilte Lehraufträge können von den Lehrenden angenommen werden.<br>
<ol>
<li>Klicken Sie unten auf das Status-Icon 'Nur bestellte anzeigen' oder 'Alle anzeigen'</li>
<li>Wählen Sie die zu erteilenden Lehraufträge selbst oder alle über den Button 'Alle auswählen'.</li>
<li>Klicken Sie auf Lehrauftrag erteilen.</li>
</ol>
</div>
<br>
<h4>Geänderte Lehraufträge</h4>
<div class="panel panel-body">
Im FAS können Änderungen an Stunden/Stundensatz eines Lehrauftrags durchgeführt werden, solange dieser nicht vom Lehrenden angenommen wurde.<br>
Wenn Änderungen an bereits bestellten oder erteilten Lehraufträgen vorgenommen wurden, müssen diese vom Studiengang erneut bestellt werden.<br>
Bei bereits erteilten Lehraufträgen wird zusätzlich der Status 'erteilt' zurückgesetzt.
</div>
<br>
<h4>Warum kann ich manche Lehraufträge nicht auswählen?</h4>
<div class="panel panel-body">
Nur Lehraufträge mit dem Status 'bestellt' können gewählt werden.<br>
Neue, Bestellte, Akzeptierte oder geänderte Lehraufträge werden nur zu Ihrer Information angezeigt und sind daher NICHT wählbar.
</div>
<br>
<h4>Filter</h4>
<div class="panel panel-body">
<table class="table table-bordered">
<tr class="text-center">
<td class="col-xs-1"><i class='fa fa-users'></i></td>
<td class="col-xs-1"><i class='fa fa-user-plus'></i></td>
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px;"></td>
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-edit.png" style="height: 30px; width: 30px;"></td>
<td class="col-xs-1"><i class='fa fa-user-secret'></i></td>
</tr>
<tr class="text-center">
<td><b>Alle</b><br>Alle Lehraufträge mit jedem Status, auch geänderte und Dummy-Aufträge</td>
<td><b>Neu</b><br>Nur Lehraufträge, die im FAS über die Zuteilung eines Lehrenden zu einer Lehreinheit/einem Projekt angelegt und noch nicht bestellt worden sind</td>
<td><b>Bestellt</b><br>Nur bestellte UND geänderte bestellte Lehraufträge</td>
<td><b>Erteilt</b><br>Nur erteilte UND geänderte erteilte Lehraufträge</td>
<td><b>Angenommen</b><br>Nur vom Lehrenden angenommene Lehraufträge</td>
<td><b>Geändert</b><br>Nur Lehraufträge, die geändert wurden, nachdem sie bereits bestellt oder erteilt worden sind</td>
<td><b>Dummies</b><br>Nur Lehraufträge, die mit einem Dummylektor angelegt sind</td>
</tr>
</table>
</div>
<br>
<h4>Auswahl</h4>
<div class="panel panel-body">
<ul>
<li>Einzeln auswählen: <kbd>Strg</kbd> + Klick auf einzelne Zeile(n)</li>
<li>Bereich auswählen: <kbd>Shift</kbd> + Klick auf Anfangs- und Endzeile</li>
<li>Alle auswählen: Button 'Alle auswählen'</li>
</ul>
</div>
<br>
<h4>Ansicht</h4>
<div class="panel panel-body">
<b>Spaltenbreite verändern</b>
<p>
Um die Spaltenbreite zu verändern, fährt man im Spaltenkopf langsam mit dem Mauszeiger auf
den rechten Rand der entprechenden Spalte. <br>
Sobald sich der Mauszeiger in einen Doppelpfeil verwandelt, wird die Maustaste geklickt und
mit gedrückter Maustaste die Spalte nach rechts erweitert oder nach links verkleinert.
</p>
</div>
<br>
<?php $this->load->view('lehre/lehrauftrag/approveLehrauftragHelp') ?>
</div>
</div>
</div>
@@ -197,7 +169,7 @@ $this->load->view(
);
?>
</div>
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group">Anzeigen</button>
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
</form>
</div>
</div>
@@ -213,20 +185,20 @@ $this->load->view(
<!-- filter buttons & erteil-button -->
<div class="row">
<div class="col-xs-12">
<button id="approve-lehrauftraege" class="btn btn-primary pull-right">Lehrauftrag erteilen</button>
<button id="approve-lehrauftraege" class="btn btn-primary pull-right"><?php echo ucfirst($this->p->t('global', 'lehrauftraegeErteilen')); ?></button>
<div class="btn-toolbar" role="toolbar">
<div class="btn-group" role="group">
<button id="show-all" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Alle anzeigen"><i class='fa fa-users'></i></button>
<button id="show-new" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur neue anzeigen"><i class='fa fa-user-plus'></i></button>
<button id="show-ordered" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="Nur bestellte anzeigen"></button><!-- png img set in javascript -->
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur erteilte anzeigen"></button><!-- png img set in javascript -->
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur angenommene anzeigen"><i class='fa fa-handshake-o'></i></button>
<button id="show-all" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'alleAnzeigen'); ?>"><i class='fa fa-users'></i></button>
<button id="show-new" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurNeueAnzeigen'); ?>"><i class='fa fa-user-plus'></i></button>
<button id="show-ordered" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurBestellteAnzeigen'); ?>"></button><!-- png img set in javascript -->
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurErteilteAnzeigen'); ?>"></button><!-- png img set in javascript -->
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurAngenommeneAnzeigen'); ?>"><i class='fa fa-handshake-o'></i></button>
</div>
<div class="btn-group" role="group" style="margin-left: 20px;">
<button id="show-changed" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur geänderte anzeigen"></button><!-- png img set in javascript -->
<button id="show-changed" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurGeaenderteAnzeigen'); ?>"></button><!-- png img set in javascript -->
</div>
<div class="btn-group" role="group" style="margin-left: 20px;">
<button id="show-dummies" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur verplante ohne Lektor anzeigen (Dummies)"><i class='fa fa-user-secret'></i></button>
<button id="show-dummies" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurDummiesAnzeigen'); ?>"><i class='fa fa-user-secret'></i></button>
</div>
</div>
</div>
@@ -9,20 +9,20 @@ SELECT
/* provide extra row index for tabulator, because no other column has unique ids */
ROW_NUMBER() OVER () AS "row_index",
personalnummer,
auftrag,
stg_typ_kurzbz,
gruppe,
typ,
lehreinheit_id,
lehrveranstaltung_id,
lv_bezeichnung,
projektarbeit_id,
studiensemester_kurzbz,
studiengang_kz,
stg_typ_kurzbz,
semester,
orgform_kurzbz,
person_id,
typ,
auftrag,
lv_oe_kurzbz,
gruppe,
lektor,
stunden,
betrag,
@@ -305,46 +305,46 @@ $filterWidgetArray = array(
'tableUniqueId' => 'approveLehrauftrag',
'requiredPermissions' => 'lehre/lehrauftrag_erteilen',
'datasetRepresentation' => 'tabulator',
'columnsAliases' => array( // TODO: use phrasen
'columnsAliases' => array(
'Status', // alias for row_index, because row_index is formatted to display the status icons
'Personalnummer',
'LV-Teil',
'LV-ID',
'LV',
'PA-ID',
'Studiensemester',
'Studiengang-KZ',
'Studiengang',
'Semester',
'OrgForm',
'Person-ID',
'Typ',
'LV- / Projektbezeichnung',
'Organisationseinheit',
'Gruppe',
'Lektor',
'Stunden',
'Betrag',
'Vertrag-ID',
'Vertrag-Stunden',
'Vertrag-Betrag',
'UID',
'Bestellt',
'Erteilt',
'Angenommen',
'Bestellt von',
'Erteilt von',
'Angenommen von'
ucfirst($this->p->t('global', 'personalnummer')),
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '- / '.
ucfirst($this->p->t('ui', 'projekt')). lcfirst($this->p->t('ui', 'bezeichnung')),
ucfirst($this->p->t('lehre', 'studiengang')),
ucfirst($this->p->t('lehre', 'gruppe')),
ucfirst($this->p->t('global', 'typ')),
ucfirst($this->p->t('lehre', 'lehreinheit')),
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '-ID',
ucfirst($this->p->t('lehre', 'lehrveranstaltung')),
ucfirst($this->p->t('ui', 'projektarbeit')). '-ID',
ucfirst($this->p->t('lehre', 'studiensemester')),
ucfirst($this->p->t('lehre', 'studiengang')). '-'. ucfirst($this->p->t('ui', 'kz')),
'Semester',
ucfirst($this->p->t('lehre', 'organisationsform')),
'Person-ID',
ucfirst($this->p->t('lehre', 'organisationseinheit')),
ucfirst($this->p->t('lehre', 'lektor')),
ucfirst($this->p->t('ui', 'stunden')),
ucfirst($this->p->t('ui', 'betrag')),
ucfirst($this->p->t('ui', 'vertrag')). '-ID',
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'stunden')),
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'betrag')),
'UID',
ucfirst($this->p->t('ui', 'bestellt')),
ucfirst($this->p->t('ui', 'erteilt')),
ucfirst($this->p->t('ui', 'angenommen')),
ucfirst($this->p->t('ui', 'bestelltVon')),
ucfirst($this->p->t('ui', 'erteiltVon')),
ucfirst($this->p->t('ui', 'angenommenVon'))
),
'datasetRepOptions' => '{
height: 700,
layout: "fitColumns", // fit columns to width of table
responsiveLayout: "hide", // hide columns that dont fit on the table
movableColumns: true, // allows changing column
placeholder: func_placeholder(),
height: func_height(this),
layout: "fitColumns", // fit columns to width of table
layoutColumnsOnNewData: true, // ajust column widths to the data each time TableWidget is loaded
autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated
headerFilterPlaceholder: " ",
groupBy:"lehrveranstaltung_id",
groupToggleElement:"header", //toggle group on click anywhere in the group header
groupToggleElement:"header", //toggle group on click anywhere in the group header
groupHeader: function(value, count, data, group){
return func_groupHeader(data);
},
@@ -357,13 +357,9 @@ $filterWidgetArray = array(
return func_selectableCheck(row);
},
initialFilter: func_initialFilter(),
footerElement: func_footerElement(),
rowUpdated:function(row){
func_rowUpdated(row);
},
rowSelectionChanged:function(data, rows){
func_rowSelectionChanged(data, rows);
},
rowFormatter:function(row)
{
func_rowFormatter(row);
@@ -373,44 +369,49 @@ $filterWidgetArray = array(
},
tableBuilt: function(){
func_tableBuilt(this);
}
},
tableWidgetFooter: {
selectButtons: true
}
}', // tabulator properties
'datasetRepFieldsDefs' => '{
// column status is built dynamically in funcTableBuilt(),
row_index: {visible:false}, // necessary for row indexing
personalnummer: {visible: false},
lehreinheit_id: {headerFilter:"input", bottomCalc:"count", width: "7%",
bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();},},
lehrveranstaltung_id: {headerFilter:"input"},
lv_bezeichnung: {visible: false},
projektarbeit_id: {visible: false},
studiensemester_kurzbz: {headerFilter:"input"},
studiengang_kz: {visible: false},
stg_typ_kurzbz: {headerFilter:"input", width: "5%"},
personalnummer: {visible: false, headerFilter:"input"},
auftrag: {
headerFilter:"input", widthGrow: 2,
bottomCalc:"count", bottomCalcFormatter:function(cell){return "'. ucfirst($this->p->t('global', 'anzahl')). ': " + cell.getValue();}
},
stg_typ_kurzbz: {headerFilter:"input"},
gruppe: {headerFilter:"input"},
typ: {headerFilter:"input"},
lehreinheit_id: {visible: false, headerFilter:"input"},
lehrveranstaltung_id: {visible: false, headerFilter:"input"},
lv_bezeichnung: {visible: false, headerFilter:"input"},
projektarbeit_id: {visible: false, headerFilter:"input"},
studiensemester_kurzbz: {visible: false, headerFilter:"input"},
studiengang_kz: {visible: false, headerFilter:"input"},
semester: {headerFilter:"input"},
orgform_kurzbz: {headerFilter:"input"},
person_id: {visible: false},
typ: {headerFilter:"input"},
auftrag: {headerFilter:"input", width:"20%"},
lv_oe_kurzbz: {headerFilter:"input"},
gruppe: {headerFilter:"input"},
lektor: {headerFilter:"input", widthGrow: 3},
orgform_kurzbz: {visible: false, headerFilter:"input"},
person_id: {visible: false, headerFilter:"input"},
lv_oe_kurzbz: {visible: false, headerFilter:"input"},
lektor: {headerFilter:"input", widthGrow: 2},
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
bottomCalc:"sum", bottomCalcParams:{precision:1}},
betrag: {align:"right", width: "8%", formatter: form_formatNulltoStringNumber,
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}},
vertrag_id: {visible: false},
vertrag_stunden: {visible: false},
vertrag_betrag: {visible: false},
mitarbeiter_uid: {visible: false},
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"},
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"},
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"},
bestellt_von: {visible: false},
erteilt_von: {visible: false},
akzeptiert_von: {visible: false},
mitarbeiter_uid: {visible: false, headerFilter:"input"},
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip},
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip},
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip},
bestellt_von: {visible: false, headerFilter:"input"},
erteilt_von: {visible: false, headerFilter:"input"},
akzeptiert_von: {visible: false, headerFilter:"input"},
}', // col properties
);
@@ -0,0 +1,74 @@
<h4><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozess'); ?></h4>
<div class="panel panel-body">
<table>
<tr class="text-center">
<td><img src="../../../public/images/icons/fa-user-tag.png" style="height: 60px; width: 60px;"></td>
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
<td><img src="../../../public/images/icons/fa-user-check.png" style="height: 60px; width: 60px;"></td>
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
<td><i class='fa fa-2x fa-handshake-o'></i></td>
</tr>
<tr class="text-center">
<td class="text-muted"><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessBestellen'); ?></td>
<td></td>
<td><b><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessErteilen'); ?></b></td>
<td></td>
<td class="text-muted"><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessAnnehmen'); ?></td>
</tr>
</table>
</div>
<br>
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeErteilen'); ?></h4>
<div class="panel panel-body">
<?php echo $this->p->t('lehre', 'lehrauftraegeErteilenText'); ?>
<ol>
<li><?php echo $this->p->t('lehre', 'lehrauftraegeErteilenKlickStatusicon'); ?></li>
<li><?php echo $this->p->t('lehre', 'lehrauftraegeErteilenLehrauftraegeWaehlen'); ?></li>
<li><?php echo $this->p->t('lehre', 'lehrauftraegeErteilenMitKlickErteilen'); ?></li>
</ol>
</div>
<br>
<h4><?php echo $this->p->t('lehre', 'geaenderteLehrauftraege'); ?></h4>
<div class="panel panel-body">
<?php echo $this->p->t('lehre', 'geaenderteLehrauftraegeTextBeiErteilung'); ?>
</div>
<br>
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeNichtAuswaehlbar'); ?></h4>
<div class="panel panel-body">
<?php echo $this->p->t('lehre', 'lehrauftraegeNichtAuswaehlbarTextBeiErteilung'); ?>
</div>
<br>
<h4>Filter</h4>
<div class="panel panel-body">
<table class="table table-bordered">
<tr class="text-center">
<td class="col-xs-1"><i class='fa fa-users'></i></td>
<td class="col-xs-1"><i class='fa fa-user-plus'></i></td>
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px;"></td>
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-edit.png" style="height: 30px; width: 30px;"></td>
<td class="col-xs-1"><i class='fa fa-user-secret'></i></td>
</tr>
<tr class="text-center">
<td><?php echo $this->p->t('lehre', 'filterAlle'); ?></td>
<td><?php echo $this->p->t('lehre', 'filterNeu'); ?></td>
<td><?php echo $this->p->t('lehre', 'filterBestellt'); ?></td>
<td><?php echo $this->p->t('lehre', 'filterErteilt'); ?></td>
<td><?php echo $this->p->t('lehre', 'filterAngenommen'); ?></td>
<td><?php echo $this->p->t('lehre', 'filterGeaendert'); ?></td>
<td><?php echo $this->p->t('lehre', 'filterDummies'); ?></td>
</tr>
</table>
</div>
<br>
<h4><?php echo $this->p->t('global', 'mehrHilfe'); ?></h4>
<div class="panel panel-info panel-body">
<?php echo $this->p->t('global', 'weitereInformationenUnter'); ?><a href="https://wiki.fhcomplete.org/doku.php?id=fhc:lehrauftraege" target="_blank">FH Complete WIKI</a>
</div><br>
@@ -53,20 +53,17 @@ $tableWidgetArray = array(
'tableUniqueId' => 'cancelledLehrauftrag',
'requiredPermissions' => 'lehre/lehrauftrag_akzeptieren',
'datasetRepresentation' => 'tabulator',
'columnsAliases' => array( // TODO: use phrasen
'columnsAliases' => array(
'Status',
'Studiensemester',
'Typ',
'LV- / Projektbezeichnung',
'Stunden',
'Betrag',
'Storniert am'
ucfirst($this->p->t('lehre', 'studiensemester')),
ucfirst($this->p->t('global', 'typ')),
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '- / '. ucfirst($this->p->t('ui', 'projekt')). lcfirst($this->p->t('ui', 'bezeichnung')),
ucfirst($this->p->t('ui', 'stunden')),
ucfirst($this->p->t('ui', 'betrag')),
ucfirst($this->p->t('ui', 'storniertAm')),
ucfirst($this->p->t('ui', 'storniertVon'))
),
'datasetRepOptions' => '{
layout: "fitColumns", // fit columns to width of table
responsiveLayout: "hide", // hide columns that dont fit on the table
movableColumns: true, // allows changing column
placeholder: func_placeholder(),
rowFormatter:function(row){
func_rowFormatter(row);
},
@@ -78,22 +75,24 @@ $tableWidgetArray = array(
},
tableBuilt: function(){
func_tableBuilt(this);
}
},
}', // tabulator properties
'datasetRepFieldsDefs' => '{
vertrag_id: {visible: false},
vertragsstunden_studiensemester_kurzbz: {visible: false},
vertragstyp_kurzbz: {widthGrow: 2},
bezeichnung: {widthGrow: 2},
vertragsstunden_studiensemester_kurzbz: {visible: false, widthShrink:1},
vertragstyp_kurzbz: {minWidth: 200},
bezeichnung: {minWidth: 200},
vertragsstunden: {
align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
bottomCalc:"sum", bottomCalcParams:{precision:1}
bottomCalc:"sum", bottomCalcParams:{precision:1},
minWidth: 200
},
betrag: {
align:"right", formatter: form_formatNulltoStringNumber,
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"},
minWidth: 200
},
storniert: {align:"center", mutator: mut_formatStringDate, tooltip: storniert_tooltip},
storniert: {align:"center", mutator: mut_formatStringDate, tooltip: storniert_tooltip, minWidth: 200},
storniert_von: {visible: false},
letzterStatus_vorStorniert: {visible: false}
}', // col properties
@@ -1,5 +1,4 @@
<?php
// TODO: phrasen anpassen
$this->load->view(
'templates/FHC-Header',
array(
@@ -17,7 +16,76 @@ $this->load->view(
'tablewidget' => true,
'navigationwidget' => true,
'phrases' => array(
'global' => array('lehrauftraegeBestellen'),
'global' => array(
'lehrauftraegeBestellen',
'mehrHilfe',
'weitereInformationenUnter'
),
'ui' => array(
'anzeigen',
'alleAnzeigen',
'nurNeueAnzeigen',
'nurBestellteAnzeigen',
'nurErteilteAnzeigen',
'nurAngenommeneAnzeigen',
'nurGeaenderteAnzeigen',
'nurDummiesAnzeigen',
'hilfeZuDieserSeite',
'alleAuswaehlen',
'alleAbwaehlen',
'ausgewaehlteZeilen',
'hilfe',
'tabelleneinstellungen',
'keineDatenVorhanden',
'spaltenEinstellen',
'bestelltVon',
'erteiltVon',
'angenommenVon',
'neuerLehrauftragOhneLektorVerplant',
'neuerLehrauftragWartetAufBestellung',
'letzterStatusBestellt',
'letzterStatusErteilt',
'letzterStatusAngenommen',
'nachAenderungStundensatzStunden',
'vorAenderungStundensatzStunden'
),
'table' => array(
'spaltenEinAusblenden',
'spaltenEinAusblendenMitKlickOeffnen',
'spaltenEinAusblendenAufEinstellungenKlicken',
'spaltenEinAusblendenMitKlickAktivieren',
'spaltenEinAusblendenMitKlickSchliessen',
'spaltenbreiteVeraendern',
'spaltenbreiteVeraendernText',
'spaltenbreiteVeraendernInfotext',
'zeilenAuswaehlen',
'zeilenAuswaehlenEinzeln',
'zeilenAuswaehlenBereich',
'zeilenAuswaehlenAlle'
),
'lehre' => array(
'lehrauftragStandardBestellprozess',
'lehrauftragStandardBestellprozessBestellen',
'lehrauftragStandardBestellprozessErteilen',
'lehrauftragStandardBestellprozessAnnehmen',
'lehrauftraegeBestellen',
'lehrauftraegeBestellenText',
'lehrauftraegeBestellenKlickStatusicon',
'lehrauftraegeBestellenLehrauftraegeWaehlen',
'lehrauftraegeBestellenMitKlickBestellen',
'lehrauftraegeBestellenVertragWirdAngelegt',
'geaenderteLehrauftraege',
'geaenderteLehrauftraegeText',
'lehrauftraegeNichtAuswaehlbar',
'lehrauftraegeNichtAuswaehlbarText',
'filterAlle',
'filterNeu',
'filterBestellt',
'filterErteilt',
'filterAngenommen',
'filterGeaendert',
'filterDummies'
)
),
'customJSs' => array(
'public/js/bootstrapper.js',
@@ -35,8 +103,8 @@ $this->load->view(
<!-- title & helper link -->
<div class="row">
<div class="col-lg-12 page-header">
<a class="pull-right" data-toggle="collapse" href="#collapseHelp" aria-expanded="false" aria-controls="collapseExample">
Hilfe zu dieser Seite
<a class="pull-right" data-toggle="collapse" href="#collapseHelp" aria-expanded="false" aria-controls="collapseHelp">
<?php echo $this->p->t('ui', 'hilfeZuDieserSeite'); ?>
</a>
<h3>
<?php echo ucfirst($this->p->t('global', 'lehrauftraegeBestellen')); ?>
@@ -48,105 +116,7 @@ $this->load->view(
<div class="row">
<div class="col-lg-12 collapse" id="collapseHelp">
<div class="well">
<h4>Lehrauftrag Standard-Bestellprozess</h4>
<div class="panel panel-body">
<table>
<tr class="text-center">
<td><img src="../../../public/images/icons/fa-user-tag.png" style="height: 60px; width: 60px;"></td>
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
<td><img src="../../../public/images/icons/fa-user-check.png" style="height: 60px; width: 60px;"></td>
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
<td><i class='fa fa-2x fa-handshake-o'></i></td>
</tr>
<tr class="text-center">
<td><b>BESTELLEN<br>(Studiengangsleitung)</b></td>
<td></td>
<td class="text-muted">ERTEILEN<br>(Department-/Kompetenzfeldleitung)</td>
<td></td>
<td class="text-muted">ANNEHMEN<br>(LektorIn)</td>
</tr>
</table>
</div>
<br>
<h4>Lehraufträge bestellen</h4>
<div class="panel panel-body">
Sobald im FAS ein Lehrauftrag/eine Projektbetreuung angelegt wurde, können Sie diese hier bestellen.<br>
Bestellte Lehraufträge sind zur Erteilung freigegeben.<br>
<ol>
<li>Klicken Sie unten auf das Status-Icon 'Nur neue anzeigen', 'Nur geänderte anzeigen' oder 'Alle anzeigen'</li>
<li>Wählen Sie die zu bestellenden Lehraufträge selbst oder über den Button 'Alle auswählen'.</li>
<li>Klicken Sie auf Lehrauftrag bestellen.</li>
</ol>
Für jeden bestellten Lehrauftrag legt das System einen Vertrag an.
</div>
<br>
<h4>Geänderte Lehraufträge</h4>
<div class="panel panel-body">
Im FAS können Änderungen an Stunden/Stundensatz eines Lehrauftrags durchgeführt werden, solange dieser nicht vom Lehrenden angenommen wurde.<br>
Diese müssen dann erneut bestellt werden.<br><br>
Wenn Änderungen an bereits bestellten oder erteilten Lehraufträgen vorgenommen wurden, werden diese in einem tooltip angezeigt.<br>
Fahren Sie dazu mit der Maus über dem Status-Icon am Beginn der Zeile.<br>
</div>
<br>
<h4>Warum kann ich manche Lehraufträge nicht auswählen?</h4>
<div class="panel panel-body">
Nur Lehraufträge mit dem Status 'neu' und 'geändert' können bestellt werden.<br>
Erteilte oder akzeptierte Lehraufträge werden nur zu Ihrer Information angezeigt und sind daher NICHT wählbar.
</div>
<br>
<h4>Filter</h4>
<div class="panel panel-body">
<table class="table table-bordered">
<tr class="text-center">
<td class="col-xs-1"><i class='fa fa-users'></i></td>
<td class="col-xs-1"><i class='fa fa-user-plus'></i></td>
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px;"></td>
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-edit.png" style="height: 30px; width: 30px;"></td>
<td class="col-xs-1"><i class='fa fa-user-secret'></i></td>
</tr>
<tr class="text-center">
<td><b>Alle</b><br>Alle Lehraufträge mit jedem Status, auch geänderte und Dummy-Aufträge</td>
<td><b>Neu</b><br>Nur Lehraufträge, die im FAS über die Zuteilung eines Lehrenden zu einer Lehreinheit/einem Projekt angelegt und noch nicht bestellt worden sind</td>
<td><b>Bestellt</b><br>Nur bestellte UND geänderte bestellte Lehraufträge</td>
<td><b>Erteilt</b><br>Nur erteilte UND geänderte erteilte Lehraufträge</td>
<td><b>Angenommen</b><br>Nur vom Lehrenden angenommene Lehraufträge</td>
<td><b>Geändert</b><br>Nur Lehraufträge, die geändert wurden, nachdem sie bereits bestellt oder erteilt worden sind</td>
<td><b>Dummies</b><br>Nur Lehraufträge, die mit einem Dummylektor angelegt sind</td>
</tr>
</table>
</div>
<br>
<h4>Auswahl</h4>
<div class="panel panel-body">
<ul>
<li>Einzeln auswählen: <kbd>Strg</kbd> + Klick auf einzelne Zeile(n)</li>
<li>Bereich auswählen: <kbd>Shift</kbd> + Klick auf Anfangs- und Endzeile</li>
<li>Alle auswählen: Button 'Alle auswählen'</li>
</ul>
</div>
<br>
<h4>Ansicht</h4>
<div class="panel panel-body">
<b>Spaltenbreite verändern</b>
<p>
Um die Spaltenbreite zu verändern, fährt man im Spaltenkopf langsam mit dem Mauszeiger auf
den rechten Rand der entprechenden Spalte. <br>
Sobald sich der Mauszeiger in einen Doppelpfeil verwandelt, wird die Maustaste geklickt und
mit gedrückter Maustaste die Spalte nach rechts erweitert oder nach links verkleinert.
</p>
</div>
<br>
<?php $this->load->view('lehre/lehrauftrag/orderLehrauftragHelp') ?>
</div>
</div>
</div>
@@ -199,36 +169,31 @@ $this->load->view(
);
?>
</div>
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group">Anzeigen</button>
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
</form>
</div>
</div>
<!-- tabulator data table -->
<div class="row">
<div class="col-lg-12">
<?php $this->load->view('lehre/lehrauftrag/orderLehrauftragData.php'); ?>
</div>
</div>
<br>
<?php $this->load->view('lehre/lehrauftrag/orderLehrauftragData.php'); ?>
<!-- filter buttons & bestell-button -->
<div class="row">
<div class="col-xs-12">
<button id="order-lehrauftraege" class="btn btn-primary pull-right" data-toggle="tooltip" data-placement="left" title="">Lehrauftrag bestellen</button>
<button id="order-lehrauftraege" class="btn btn-primary pull-right" data-toggle="tooltip" data-placement="left" title=""><?php echo ucfirst($this->p->t('global', 'lehrauftraegeBestellen')); ?></button>
<div class="btn-toolbar" role="toolbar">
<div class="btn-group" role="group">
<button id="show-all" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Alle anzeigen"><i class='fa fa-users'></i></button>
<button id="show-new" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="Nur neue anzeigen"><i class='fa fa-user-plus'></i></button>
<button id="show-ordered" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur bestellte anzeigen"></button><!-- png img set in javascript -->
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur erteilte anzeigen"></button><!-- png img set in javascript -->
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur angenommene anzeigen"><i class='fa fa-handshake-o'></i></button>
<button id="show-all" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'alleAnzeigen'); ?>"><i class='fa fa-users'></i></button>
<button id="show-new" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurNeueAnzeigen'); ?>"><i class='fa fa-user-plus'></i></button>
<button id="show-ordered" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurBestellteAnzeigen'); ?>"></button><!-- png img set in javascript -->
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurErteilteAnzeigen'); ?>"></button><!-- png img set in javascript -->
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurAngenommeneAnzeigen'); ?>"><i class='fa fa-handshake-o'></i></button>
</div>
<div class="btn-group" role="group" style="margin-left: 20px;">
<button id="show-changed" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="Nur geänderte anzeigen"></button><!-- png img set in javascript -->
<button id="show-changed" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurGeaenderteAnzeigen'); ?>"></button><!-- png img set in javascript -->
</div>
<div class="btn-group" role="group" style="margin-left: 20px;">
<button id="show-dummies" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur verplante ohne Lektor anzeigen (Dummies)"><i class='fa fa-user-secret'></i></button>
<button id="show-dummies" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurDummiesAnzeigen'); ?>"><i class='fa fa-user-secret'></i></button>
</div>
</div>
</div>
@@ -239,4 +204,4 @@ $this->load->view(
<br>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -9,13 +9,16 @@ SELECT
/* provide extra row index for tabulator, because no other column has unique ids */
ROW_NUMBER() OVER () AS "row_index",
personalnummer,
auftrag,
stg_typ_kurzbz,
gruppe,
typ,
lehreinheit_id,
lehrveranstaltung_id,
lv_bezeichnung,
projektarbeit_id,
studiensemester_kurzbz,
studiengang_kz,
stg_typ_kurzbz,
semester,
/* get valid STPL(s), to which the lehrveranstaltung is assigned to (can be more) */
/* therefore join over lv, studiensemester and semester */
@@ -49,10 +52,7 @@ SELECT
) AS "studienplan_bezeichnung",
orgform_kurzbz,
person_id,
typ,
auftrag,
lv_oe_kurzbz,
gruppe,
lektor,
stunden,
stundensatz,
@@ -337,54 +337,53 @@ $filterWidgetArray = array(
'tableUniqueId' => 'orderLehrauftrag',
'requiredPermissions' => 'lehre/lehrauftrag_bestellen',
'datasetRepresentation' => 'tabulator',
'columnsAliases' => array( // TODO: use phrasen
'columnsAliases' => array(
'Status', // alias for row_index, because row_index is formatted to display the status icons
'Personalnummer',
'LV-Teil',
'LV-ID',
'LV',
'PA-ID',
'Studiensemester',
'Studiengang-KZ',
'Studiengang',
ucfirst($this->p->t('global', 'personalnummer')),
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '- / '.
ucfirst($this->p->t('ui', 'projekt')). lcfirst($this->p->t('ui', 'bezeichnung')),
ucfirst($this->p->t('lehre', 'studiengang')),
ucfirst($this->p->t('lehre', 'gruppe')),
ucfirst($this->p->t('global', 'typ')),
ucfirst($this->p->t('lehre', 'lehreinheit')),
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '-ID',
ucfirst($this->p->t('lehre', 'lehrveranstaltung')),
ucfirst($this->p->t('ui', 'projektarbeit')). '-ID',
ucfirst($this->p->t('lehre', 'studiensemester')),
ucfirst($this->p->t('lehre', 'studiengang')). '-'. ucfirst($this->p->t('ui', 'kz')),
'Semester',
'Studienplan',
'OrgForm',
ucfirst($this->p->t('lehre', 'studienplan')),
ucfirst($this->p->t('lehre', 'organisationsform')),
'Person-ID',
'Typ',
'LV- / Projektbezeichnung',
'Organisationseinheit',
'Gruppe',
'Lektor',
'Stunden',
'Stundensatz',
'Betrag',
'Vertrag-ID',
'Vertrag-Stunden',
'Vertrag-Betrag',
ucfirst($this->p->t('lehre', 'organisationseinheit')),
ucfirst($this->p->t('lehre', 'lektor')),
ucfirst($this->p->t('ui', 'stunden')),
ucfirst($this->p->t('ui', 'stundensatz')),
ucfirst($this->p->t('ui', 'betrag')),
ucfirst($this->p->t('ui', 'vertrag')). '-ID',
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'stunden')),
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'betrag')),
'UID',
'Bestellt',
'Erteilt',
'Angenommen',
'Bestellt von',
'Erteilt von',
'Angenommen von'
ucfirst($this->p->t('ui', 'bestellt')),
ucfirst($this->p->t('ui', 'erteilt')),
ucfirst($this->p->t('ui', 'angenommen')),
ucfirst($this->p->t('ui', 'bestelltVon')),
ucfirst($this->p->t('ui', 'erteiltVon')),
ucfirst($this->p->t('ui', 'angenommenVon'))
),
'datasetRepOptions' => '{
height: 700,
layout:"fitColumns", // fit columns to width of table
responsiveLayout:"hide", // hide columns that dont fit on the table
movableColumns: true, // allows changing column
placeholder: func_placeholder(),
headerFilterPlaceholder: " ",
groupBy:"lehrveranstaltung_id",
groupToggleElement:"header", //toggle group on click anywhere in the group header
groupHeader: function(value, count, data, group){
return func_groupHeader(data);
},
footerElement: func_footerElement(),
columnCalcs:"both", // show column calculations at top and bottom of table and in groups
index: "row_index", // assign specific column as unique id (important for row indexing)
height: func_height(this),
layout:"fitColumns", // fit columns to width of table
layoutColumnsOnNewData: true, // ajust column widths to the data each time TableWidget is loaded
autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated
headerFilterPlaceholder: " ",
groupBy:"lehrveranstaltung_id",
groupToggleElement:"header", //toggle group on click anywhere in the group header
groupHeader: function(value, count, data, group){
return func_groupHeader(data);
},
columnCalcs:"both", // show column calculations at top and bottom of table and in groups
index: "row_index", // assign specific column as unique id (important for row indexing)
selectable: true, // allows row selection
selectableRangeMode: "click", // allows range selection using shift end click on end of range
selectablePersistence:false, // deselect previously selected rows when table is filtered, sorted or paginated
@@ -394,9 +393,6 @@ $filterWidgetArray = array(
rowUpdated:function(row){
func_rowUpdated(row);
},
rowSelectionChanged:function(data, rows){
func_rowSelectionChanged(data, rows);
},
rowFormatter:function(row){
func_rowFormatter(row);
},
@@ -409,46 +405,52 @@ $filterWidgetArray = array(
dataLoaded: function(data){
func_dataLoaded(data, this);
},
tableWidgetFooter: {
selectButtons: true
}
}', // tabulator properties
'datasetRepFieldsDefs' => '{
// column status is built dynamically in funcTableBuilt()
row_index: {visible: false},
personalnummer: {visible: false},
lehreinheit_id: {headerFilter:"input", bottomCalc:"count", width: "7%",
bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();}},
lehrveranstaltung_id: {headerFilter:"input"},
lv_bezeichnung: {visible: false},
projektarbeit_id: {visible: false},
studiensemester_kurzbz: {headerFilter:"input"},
studiengang_kz: {visible: false},
stg_typ_kurzbz: {headerFilter:"input", width: "5%"},
personalnummer: {visible: false, headerFilter:"input"},
auftrag: {
headerFilter:"input", widthGrow: 2,
bottomCalc:"count", bottomCalcFormatter:function(cell){return "'. ucfirst($this->p->t('global', 'anzahl')). ': " + cell.getValue();}
},
stg_typ_kurzbz: {headerFilter:"input"},
gruppe: {headerFilter:"input"},
typ: {headerFilter:"input"},
lehreinheit_id: {visible: false, headerFilter:"input"},
lehrveranstaltung_id: {visible: false, headerFilter:"input"},
lv_bezeichnung: {visible: false, headerFilter:"input"},
projektarbeit_id: {visible: false, headerFilter:"input"},
studiensemester_kurzbz: {visible: false, headerFilter:"input"},
studiengang_kz: {visible: false, headerFilter:"input"},
semester: {headerFilter:"input"},
studienplan_bezeichnung: {headerFilter:"input", width: "7%"},
orgform_kurzbz: {headerFilter:"input"},
person_id: {visible: false},
typ: {headerFilter:"input"},
auftrag: {headerFilter:"input", width:"15%"},
studienplan_bezeichnung: {visible: false, headerFilter:"input"},
orgform_kurzbz: {visible: false, headerFilter:"input", widthGrow: 2},
person_id: {visible: false, headerFilter:"input"},
lv_oe_kurzbz: {headerFilter:"input"},
gruppe: {headerFilter:"input"},
lektor: {headerFilter:"input", widthGrow: 3},
lektor: {headerFilter:"input", widthGrow: 2},
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
bottomCalc:"sum", bottomCalcParams:{precision:1}},
stundensatz: {visible: false},
betrag: {align:"right", width: "8%", formatter: form_formatNulltoStringNumber,
stundensatz: {visible: false, align:"right", formatter: form_formatNulltoStringNumber,
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator},
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money",
bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}},
vertrag_id: {visible: false},
vertrag_id: {visible: false, headerFilter:"input"},
vertrag_stunden: {visible: false},
vertrag_betrag: {visible: false},
mitarbeiter_uid: {visible: false},
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"},
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"},
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"},
bestellt_von: {visible: false},
erteilt_von: {visible: false},
akzeptiert_von: {visible: false}
mitarbeiter_uid: {visible: false, headerFilter:"input"},
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip},
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip},
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip},
bestellt_von: {visible: false, headerFilter:"input"},
erteilt_von: {visible: false, headerFilter:"input"},
akzeptiert_von: {visible: false, headerFilter:"input"}
}', // col properties
);
@@ -0,0 +1,77 @@
<h4><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozess'); ?></h4>
<div class="panel panel-body">
<table>
<tr class="text-center">
<td><img src="../../../public/images/icons/fa-user-tag.png" style="height: 60px; width: 60px;"></td>
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
<td><img src="../../../public/images/icons/fa-user-check.png" style="height: 60px; width: 60px;"></td>
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
<td><i class='fa fa-2x fa-handshake-o'></i></td>
</tr>
<tr class="text-center">
<td><b><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessBestellen'); ?></b></td>
<td></td>
<td class="text-muted"><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessErteilen'); ?></td>
<td></td>
<td class="text-muted"><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessAnnehmen'); ?></td>
</tr>
</table>
</div>
<br>
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeBestellen'); ?></h4>
<div class="panel panel-body">
<?php echo $this->p->t('lehre', 'lehrauftraegeBestellenText'); ?>
<br>
<ol>
<li><?php echo $this->p->t('lehre', 'lehrauftraegeBestellenKlickStatusicon'); ?></li>
<li><?php echo $this->p->t('lehre', 'lehrauftraegeBestellenLehrauftraegeWaehlen'); ?></li>
<li><?php echo $this->p->t('lehre', 'lehrauftraegeBestellenMitKlickBestellen'); ?></li>
</ol>
<?php echo $this->p->t('lehre', 'lehrauftraegeBestellenVertragWirdAngelegt'); ?>
</div>
<br>
<h4><?php echo $this->p->t('lehre', 'geaenderteLehrauftraege'); ?></h4>
<div class="panel panel-body">
<?php echo $this->p->t('lehre', 'geaenderteLehrauftraegeText'); ?>
</div>
<br>
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeNichtAuswaehlbar'); ?></h4>
<div class="panel panel-body">
<?php echo $this->p->t('lehre', 'lehrauftraegeNichtAuswaehlbarText'); ?>
</div>
<br>
<h4>Filter</h4>
<div class="panel panel-body">
<table class="table table-bordered">
<tr class="text-center">
<td class="col-xs-1"><i class='fa fa-users'></i></td>
<td class="col-xs-1"><i class='fa fa-user-plus'></i></td>
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px;"></td>
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-edit.png" style="height: 30px; width: 30px;"></td>
<td class="col-xs-1"><i class='fa fa-user-secret'></i></td>
</tr>
<tr class="text-center">
<td><?php echo $this->p->t('lehre', 'filterAlle'); ?></td>
<td><?php echo $this->p->t('lehre', 'filterNeu'); ?></td>
<td><?php echo $this->p->t('lehre', 'filterBestellt'); ?></td>
<td><?php echo $this->p->t('lehre', 'filterErteilt'); ?></td>
<td><?php echo $this->p->t('lehre', 'filterAngenommen'); ?></td>
<td><?php echo $this->p->t('lehre', 'filterGeaendert'); ?></td>
<td><?php echo $this->p->t('lehre', 'filterDummies'); ?></td>
</tr>
</table>
</div>
<br>
<h4><?php echo $this->p->t('global', 'mehrHilfe'); ?></h4>
<div class="panel panel-info panel-body">
<?php echo $this->p->t('global', 'weitereInformationenUnter'); ?>
<a href="https://wiki.fhcomplete.org/doku.php?id=fhc:lehrauftraege" target="_blank">FH Complete WIKI</a>
</div><br>
@@ -0,0 +1,232 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'Pruefungsprotokoll',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'dialoglib' => true,
'ajaxlib' => true,
'sbadmintemplate' => true,
'phrases' => array(
'abschlusspruefung' => array(
'freigegebenAm',
'pruefungGespeichert',
'pruefungSpeichernFehler',
'abschlussbeurteilungLeer',
'beginnzeitLeer',
'beginnzeitFormatError',
'endezeitLeer',
'endezeitFormatError',
'endezeitBeforeError',
'verfNotice'
),
'ui' => array(
'stunde',
'minute'
)
),
'customCSSs' => array(
'public/css/sbadmin2/admintemplate_contentonly.css',
'vendor/fgelinas/timepicker/jquery.ui.timepicker.css',
'public/css/lehre/pruefungsprotokoll.css'
),
'customJSs' => array(
'vendor/fgelinas/timepicker/jquery.ui.timepicker.js',
'public/js/lehre/pruefungsprotokoll.js'
)
)
);
?>
<body>
<div id="wrapper">
<div id="page-wrapper">
<div class="container-fluid">
<?php if (isset($abschlusspruefung)):
$studiengangstyp_name = $abschlusspruefung->studiengangstyp == 'b' ? 'Bachelor' : 'Master';
$pruefung_name = $abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'pruefungBachelor') : $this->p->t('abschlusspruefung', 'pruefungMaster');
$arbeit_name = $abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'arbeitBachelor') : $this->p->t('abschlusspruefung', 'arbeitMaster');
$protokolltextvorlage = $abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'pruefungsnotizenBachelor') : $this->p->t('abschlusspruefung', 'pruefungsnotizenMaster');
$protokolltext = isset($abschlusspruefung->protokoll) ? $abschlusspruefung->protokoll : $protokolltextvorlage;
?>
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">
<?php echo $this->p->t('abschlusspruefung', 'protokoll') ?>&nbsp;<?php echo $pruefung_name ?>
</h3>
<p>
<?php echo $abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'abgehaltenAmBachelor') : $this->p->t('abschlusspruefung', 'abgehaltenAmMaster'); ?>
<?php echo $language == 'German' ? $abschlusspruefung->studiengangbezeichnung : $abschlusspruefung->studiengangbezeichnung_englisch ?>,&nbsp;<?php echo $this->p->t('abschlusspruefung', 'studiengangskennzahl') ?>&nbsp;
<?php echo $abschlusspruefung->studiengang_kz ?>
</p>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<h4>
<?php echo $abschlusspruefung->titelpre_student . ' ' . $abschlusspruefung->vorname_student . ' ' . $abschlusspruefung->nachname_student . ' ' . $abschlusspruefung->titelpost_student?>
</h4>
<p><?php echo $this->p->t('abschlusspruefung', 'personenkennzeichen') ?>: <?php echo $abschlusspruefung->matrikelnr ?></p>
<br />
<input type="hidden" name="abschlusspruefung_id" value="<?php echo $abschlusspruefung->abschlusspruefung_id;?>" id="abschlusspruefung_id">
<form id="protocolform">
<table class="table-condensed table-bordered table-responsive" id="protocoltbl">
<tr>
<td colspan="6">
<?php echo $this->p->t('abschlusspruefung', 'pruefungssenat') ?>
</td>
</tr>
<tr>
<td>
<?php echo $this->p->t('abschlusspruefung', 'vorsitz') ?>
</td>
<td colspan="5">
<?php echo $abschlusspruefung->titelpre_vorsitz . ' ' . $abschlusspruefung->vorname_vorsitz . ' ' . $abschlusspruefung->nachname_vorsitz . ' ' . $abschlusspruefung->titelpost_vorsitz ?>
</td>
</tr>
<tr>
<td>
<?php echo $this->p->t('abschlusspruefung', 'erstpruefer') ?>
</td>
<td colspan="5">
<?php echo $abschlusspruefung->titelpre_erstpruefer . ' ' . $abschlusspruefung->vorname_erstpruefer . ' ' . $abschlusspruefung->nachname_erstpruefer . ' ' . $abschlusspruefung->titelpost_erstpruefer ?>
</td>
</tr>
<tr>
<td>
<?php echo $this->p->t('abschlusspruefung', 'zweitpruefer') ?>
</td>
<td colspan="5">
<?php echo $abschlusspruefung->titelpre_zweitpruefer . ' ' . $abschlusspruefung->vorname_zweitpruefer . ' ' . $abschlusspruefung->nachname_zweitpruefer . ' ' . $abschlusspruefung->titelpost_zweitpruefer ?>
</td>
</tr>
<tr>
<td class="namecellwidth">
<?php echo $this->p->t('abschlusspruefung', 'pruefungsdatum') ?>
</td>
<td class="datevalcellwidth">
<?php echo date_format(date_create($abschlusspruefung->datum), 'd.m.Y'); ?>
</td>
<td class="cellbg namecellwidth">
<?php echo $this->p->t('abschlusspruefung', 'pruefungsbeginn') ?>
</td>
<td class="timecellwidth">
<input class="timepicker form-control" name="pruefungsbeginn" id="pruefungsbeginn" value="<?php echo isEmptyString($abschlusspruefung->pruefungsbeginn) ? '' : date_format(date_create($abschlusspruefung->pruefungsbeginn), 'H:i') ?>">
</td>
<td class="cellbg namecellwidth">
<?php echo $this->p->t('abschlusspruefung', 'pruefungsende') ?>
</td>
<td class="timecellwidth">
<input class="timepicker form-control" name="pruefungsende" id="pruefungsende" value="<?php echo isEmptyString($abschlusspruefung->pruefungsbeginn) ? '' : date_format(date_create($abschlusspruefung->pruefungsende), 'H:i') ?>">
</td>
</tr>
<tr>
<td>
<?php echo $this->p->t('abschlusspruefung', 'pruefungsantritt') ?>
</td>
<td colspan="5">
<?php echo $language == 'German' ? $abschlusspruefung->pruefungsantritt_bezeichnung : $abschlusspruefung->pruefungsantritt_bezeichnung_english; ?>
</td>
</tr>
<tr>
<td>
<?php echo $this->p->t('abschlusspruefung', 'einverstaendniserklaerungName') ?>
</td>
<td colspan="5">
<input type="checkbox" id="verfCheck">
<?php echo $this->p->t('abschlusspruefung', 'einverstaendniserklaerungText') ?>
</td>
</tr>
<tr>
<td>
<?php echo $this->p->t('abschlusspruefung', 'themaBeurteilung') ?>&nbsp;<?php echo $arbeit_name ?>
</td>
<td colspan="4">
<?php echo isset($abschlusspruefung->abschlussarbeit_titel) ? $abschlusspruefung->abschlussarbeit_titel : '' ?>
</td>
<td>
<?php echo $this->p->t('lehre', 'note') ?>: <?php echo isset($abschlusspruefung->abschlussarbeit_note) ? $abschlusspruefung->abschlussarbeit_note : '' ?>
</td>
</tr>
<tr>
<td>
<?php echo $this->p->t('abschlusspruefung', 'pruefungsgegenstand') ?>
</td>
<td colspan="5">
<?php echo ($abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'pruefungsgegenstandBachelor') : $this->p->t('abschlusspruefung', 'pruefungsgegenstandMaster')) ?>
</td>
</tr>
<tr>
<td colspan="6">
<?php echo ucfirst($this->p->t('global', 'notizen')); ?>
</td>
</tr>
<tr>
<td colspan="6">
<textarea id="protokoll" name="protokoll" class="form-control" rows="15" cols="107"><?php echo $protokolltext ?></textarea>
</td>
</tr>
<tr>
<td colspan="6">
<?php echo $abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'beurteilungKriterienBachelor') : $this->p->t('abschlusspruefung', 'beurteilungKriterienMaster') ?>
</td>
</tr>
<tr>
<td colspan="6">
<?php echo $abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'beurteilungBachelor') : $this->p->t('abschlusspruefung', 'beurteilungMaster') ?>:
<select name="abschlussbeurteilung_kurzbz" id="abschlussbeurteilung_kurzbz" class="form-control">
<option value="">-- <?php echo $this->p->t('ui', 'bitteWaehlen'); ?> --</option>
<?php foreach ($abschlussbeurteilung as $beurteilung):
$selected = $beurteilung->abschlussbeurteilung_kurzbz == $abschlusspruefung->abschlussbeurteilung_kurzbz ? " selected" : "" ?>
<option value="<?php echo $beurteilung->abschlussbeurteilung_kurzbz; ?>"<?php echo $selected ?>><?php echo $language == 'German' ? $beurteilung->bezeichnung : $beurteilung->bezeichnung_english; ?> </option>
<?php endforeach; ?>
</select>
<span id="verfNotice"></span>
</td>
</tr>
</table>
</form>
<br />
</div>
</div>
<div class="row">
<div class="col-lg-12 text-right">
<p>
<?php $freigegeben = isset($abschlusspruefung->freigabedatum); ?>
<button id="saveProtocolBtn" class="btn btn-default"<?php echo $freigegeben ? " disabled" : "" ?>><?php echo $this->p->t('ui', 'speichern') ?></button>
</p>
</div>
</div>
<hr id="hrbottom">
<div class="row">
<div class="col-lg-12">
<span id="freigegebenText">
<?php
if ($freigegeben)
echo '&nbsp;&nbsp;' . $this->p->t('abschlusspruefung', 'freigegebenAm') . ' ' . date_format(date_create($abschlusspruefung->freigabedatum), 'd.m.Y')
?>
</span>
</div>
</div>
<br />
<div class="row">
<div class="col-lg-8">
<div class="input-group">
<input id="username" type="hidden" value=""><!-- this is to prevent Chrome autofilling a random input field with the username-->
<input id="password" type="password" autocomplete="new-password" class="form-control" placeholder="CIS-<?php echo ucfirst($this->p->t('password', 'password')); ?>">
<span class="input-group-btn">
<button id="freigebenProtocolBtn" class="btn btn-default"><?php echo $this->p->t('abschlusspruefung', 'ueberpruefenFreigeben') ?></button>
</span>
</div>
</div>
</div>
<br />
<br />
<?php endif; ?>
</div>
</div>
</div>
@@ -0,0 +1,46 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'Prüfungsprotokoll',
'jquery' => true,
'jqueryui' => true,
'jquerycheckboxes' => true,
'bootstrap' => true,
'fontawesome' => true,
'tablesorter' => true,
'ajaxlib' => true,
'dialoglib' => true,
'tablewidget' => true,
'phrases' => array(
'ui' => array(
'keineDatenVorhanden',
)
),
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css'),
'customJSs' => array('public/js/bootstrapper.js')
)
);
?>
<body>
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">
<?php echo $this->p->t('abschlusspruefung','pruefungsprotokoll'); ?>
</h3>
</div>
</div>
<?php echo $this->p->t('abschlusspruefung','einfuehrungstext'); ?>
<div class="row">
<div class="col-lg-12">
<?php $this->load->view('lehre/pruefungsprotokollUebersichtData.php'); ?>
</div>
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -0,0 +1,67 @@
<?php
$UID = getAuthUID();
$query = "
SELECT
tbl_abschlusspruefung.abschlusspruefung_id,
tbl_person.nachname || ' ' || tbl_person.vorname as name,
tbl_studiengangstyp.bezeichnung || ' ' || tbl_studiengang.bezeichnung,
tbl_abschlusspruefung.datum,
tbl_abschlusspruefung.freigabedatum
FROM
lehre.tbl_abschlusspruefung
JOIN public.tbl_student USING(student_uid)
JOIN public.tbl_benutzer ON(student_uid=uid)
JOIN public.tbl_person USING(person_id)
JOIN public.tbl_studiengang ON(tbl_studiengang.studiengang_kz=tbl_student.studiengang_kz)
JOIN public.tbl_studiengangstyp USING(typ);
WHERE
vorsitz='".$UID."'
AND datum>='2020-05-27'
ORDER BY datum, nachname, vorname
";
$filterWidgetArray = array(
'query' => $query,
'tableUniqueId' => 'pruefungsprotokoll',
'requiredPermissions' => 'lehre/pruefungsbeurteilung',
'datasetRepresentation' => 'tablesorter',
'columnsAliases' => array(
ucfirst($this->p->t('global', 'details')),
ucfirst($this->p->t('global', 'name')),
ucfirst($this->p->t('lehre', 'studiengang')),
ucfirst($this->p->t('global', 'datum')),
ucfirst($this->p->t('global', 'status')),
),
'formatRow' => function($datasetRaw) {
/* NOTE: Dont use $this here for PHP Version compatibility */
$datasetRaw->{'abschlusspruefung_id'} = sprintf(
'<a href="%s?abschlusspruefung_id=%s" target="_blank">Protokoll ausfüllen</a>',
site_url('lehre/Pruefungsprotokoll/Protokoll'),
$datasetRaw->{'abschlusspruefung_id'}
);
if ($datasetRaw->{'datum'} == null)
{
$datasetRaw->{'datum'} = '-';
}
else
{
$datasetRaw->{'datum'} = date_format(date_create($datasetRaw->{'datum'}),'d.m.Y');
}
if ($datasetRaw->{'freigabedatum'} == null)
{
$datasetRaw->{'freigabedatum'} = 'offen';
}
else
{
$datasetRaw->{'freigabedatum'} = 'Freigegeben am: '.date_format(date_create($datasetRaw->{'freigabedatum'}),'d.m.Y');
}
return $datasetRaw;
},
);
echo $this->widgetlib->widget('TableWidget', $filterWidgetArray);
?>
@@ -106,7 +106,7 @@
public.tbl_reihungstest
LEFT JOIN public.tbl_studiengang using(studiengang_kz)
WHERE
datum>now()-'2 weeks'::interval
datum>now()-'5 months'::interval
ORDER BY datum desc
) data
",
@@ -142,7 +142,7 @@
}
else
{
$datasetRaw->{'anmeldefrist'} = date_format(date_create($datasetRaw->{'anmeldefrist'}), 'd.m.Y');
$datasetRaw->{'anmeldefrist'} = date_format(date_create($datasetRaw->{'anmeldefrist'}), 'Y-m-d');
}
if ($datasetRaw->{'max_plaetze'} == null)
{
@@ -175,7 +175,7 @@
}
else
{
$datasetRaw->{'datum'} = date_format(date_create($datasetRaw->{'datum'}), 'd.m.Y');
$datasetRaw->{'datum'} = date_format(date_create($datasetRaw->{'datum'}), 'Y-m-d');
}
return $datasetRaw;
+111 -150
View File
@@ -1,150 +1,111 @@
<?php $this->load->view("templates/header", array("title" => "UDF", "widgetsCSS" => true)); ?>
<body style="background-color: #eff0f1;">
<?php
if ($result != null)
{
if (isSuccess($result))
{
?>
<div style="color: black;">
Saved!
</div>
<br>
<?php
}
else
{
?>
<div style="color: red;">
Error while saving!
</div>
<br>
<div style="color: red;">
<?php
$errors = $result->retval;
if(is_array($errors))
{
foreach ($errors as $error)
{
foreach ($error as $fieldError)
{
echo $fieldError->code . ': ' . $fieldError->retval . '<br>';
}
}
}
else
echo $result->retval;
?>
</div>
<br>
<br>
<br>
<?php
}
}
?>
<form action="<?php echo site_url('system/FAS_UDF/saveUDF'); ?>" method="POST">
<div class="div-table">
<div class="div-row">
<div class="div-cell" style="font-size: 20px; font-weight: bold;">
Zusatzfelder
</div>
</div>
<div class="div-row">
<div class="div-cell">
&nbsp;
</div>
</div>
<div class="div-row">
<?php
if (isset($personUdfs))
{
?>
<div class="div-cell">
<?php
echo $this->udflib->UDFWidget(
array(
UDFLib::SCHEMA_ARG_NAME => 'public',
UDFLib::TABLE_ARG_NAME => 'tbl_person',
UDFLib::UDFS_ARG_NAME => $personUdfs
)
);
?>
</div>
<div class="div-cell" style="width: 40px;">
&nbsp;
</div>
<?php
}
?>
<?php
if (isset($prestudentUdfs))
{
?>
<div class="div-cell">
<?php
echo $this->udflib->UDFWidget(
array(
UDFLib::SCHEMA_ARG_NAME => 'public',
UDFLib::TABLE_ARG_NAME => 'tbl_prestudent',
UDFLib::UDFS_ARG_NAME => $prestudentUdfs
)
);
?>
</div>
<?php
}
?>
</div>
<div class="div-row">
<div class="div-cell">
&nbsp;
</div>
</div>
<div class="div-row halign-right">
<?php
if (isset($personUdfs) && isset($prestudentUdfs))
{
?>
<div class="div-cell">
&nbsp;
</div>
<div class="div-cell">
&nbsp;
</div>
<?php
}
?>
<div class="div-cell halign-right">
<input type="submit" value="&nbsp;Speichern&nbsp;">
</div>
</div>
</div>
<?php
if (isset($personUdfs))
{
?>
<input type="hidden" name="person_id" value="<?php echo $personUdfs['person_id']; ?>">
<?php
}
?>
<?php
if (isset($prestudentUdfs))
{
?>
<input type="hidden" name="prestudent_id" value="<?php echo $prestudentUdfs['prestudent_id']; ?>">
<?php
}
?>
</form>
</body>
<?php $this->load->view("templates/footer"); ?>
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'InfocenterDetails',
'jquery' => true,
'bootstrap' => true,
'fontawesome' => true,
'jqueryui' => true,
'dialoglib' => true,
'ajaxlib' => true,
'udfs' => true,
'widgets' => true,
'sbadmintemplate' => true,
'customCSSs' => array(
'public/css/sbadmin2/admintemplate.css'
),
'customJSs' => array(
'public/js/bootstrapper.js'
)
)
);
?>
<body style="background-color: #eff0f1;">
<div class="div-table">
<div class="div-row">
<div class="div-cell" style="font-size: 20px; font-weight: bold;">
Zusatzfelder
</div>
</div>
<div class="div-row">
<div class="div-cell">
&nbsp;
</div>
</div>
<div class="div-row">
<?php
if (isset($personUdfs))
{
?>
<div class="div-cell">
<?php
echo $this->udflib->UDFWidget(
array(
UDFLib::UDF_UNIQUE_ID => 'fasPersonUDFs',
UDFLib::REQUIRED_PERMISSIONS_PARAMETER => 'basis/person',
UDFLib::SCHEMA_ARG_NAME => 'public',
UDFLib::TABLE_ARG_NAME => 'tbl_person',
UDFLib::PRIMARY_KEY_NAME => 'person_id',
UDFLib::PRIMARY_KEY_VALUE => $person_id,
UDFLib::UDFS_ARG_NAME => $personUdfs
)
);
?>
</div>
<div class="div-cell" style="width: 40px;">
&nbsp;
</div>
<?php
}
?>
<?php
if (isset($prestudentUdfs))
{
?>
<div class="div-cell">
<?php
echo $this->udflib->UDFWidget(
array(
UDFLib::UDF_UNIQUE_ID => 'fasPrestudentUDFs',
UDFLib::REQUIRED_PERMISSIONS_PARAMETER => 'basis/person',
UDFLib::SCHEMA_ARG_NAME => 'public',
UDFLib::TABLE_ARG_NAME => 'tbl_prestudent',
UDFLib::PRIMARY_KEY_NAME => 'prestudent_id',
UDFLib::PRIMARY_KEY_VALUE => $prestudent_id,
UDFLib::UDFS_ARG_NAME => $prestudentUdfs
)
);
?>
</div>
<?php
}
?>
</div>
<div class="div-row">
<div class="div-cell">
&nbsp;
</div>
</div>
<div class="div-row halign-right">
<?php
if (isset($personUdfs) && isset($prestudentUdfs))
{
?>
<div class="div-cell">
&nbsp;
</div>
<div class="div-cell">
&nbsp;
</div>
<?php
}
?>
</div>
</div>
</body>
<?php $this->load->view("templates/footer"); ?>
@@ -14,6 +14,8 @@
'sbadmintemplate' => true,
'addons' => true,
'navigationwidget' => true,
'udfs' => true,
'widgets' => true,
'customCSSs' => array(
'public/css/sbadmin2/admintemplate.css',
'public/css/sbadmin2/tablesort_bootstrap.css',
@@ -185,6 +185,25 @@
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
) AS "ReihungstestApplied",
(
SELECT rtp.datum
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
LEFT JOIN (
SELECT rtp.person_id,
rt.studiensemester_kurzbz,
rtp.teilgenommen,
rt.datum
FROM public.tbl_rt_person rtp
JOIN tbl_reihungstest rt ON(rtp.rt_id = rt.reihungstest_id)
WHERE rt.stufe = 1
) rtp ON(rtp.person_id = ps.person_id AND rtp.studiensemester_kurzbz = pss.studiensemester_kurzbz)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND ps.person_id = p.person_id
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
) AS "ReihungstestDate",
(
SELECT ps.zgvnation
FROM public.tbl_prestudent ps
@@ -258,6 +277,7 @@
'Statusgrund',
'Reihungstest angetreten',
'Reihungstest angemeldet',
'Reihungstest date',
'ZGV Nation'
),
'formatRow' => function($datasetRaw) {
@@ -337,6 +357,16 @@
{
$datasetRaw->{'ReihungstestApplied'} = 'Nein';
}
if ($datasetRaw->{'ReihungstestDate'} == null)
{
$datasetRaw->{'ReihungstestDate'} = '-';
}
else
{
$datasetRaw->{'ReihungstestDate'} = date_format(date_create($datasetRaw->{'ReihungstestDate'}),'Y-m-d');
}
if ($datasetRaw->{'ZGVNation'} == null)
{
$datasetRaw->{'ZGVNation'} = '-';
@@ -34,12 +34,14 @@
//set bootstrap columns for zgv form
$columns = array(3, 3, 3, 3);
$headercolumns = array(7, 5);
if (!$infoonly && isset($zgvpruefung->prestudentstatus->bewerbungsnachfrist) && isset($zgvpruefung->prestudentstatus->bewerbungstermin))
{
$headercolumns[0] = 4;
$headercolumns[1] = 8;
$headercolumns = $zgvpruefung->hasBewerber === true ? array(3, 5, 4) : array(4, 8);
}
else
{
$headercolumns = $zgvpruefung->hasBewerber === true ? array(4, 4, 4) : array(7, 5);
}
if (!$first)
echo '<br />';
@@ -68,6 +70,11 @@
?></a>
</h4>
</div>
<?php if($zgvpruefung->hasBewerber === true): ?>
<div class="col-xs-<?php echo $headercolumns[2]; ?> text-center text-danger">
<?php echo $this->p->t('infocenter', 'rtErgebnisExistiert') ?>
</div>
<?php endif; ?>
<?php
$changeup = isset($zgvpruefung->changeup) && $zgvpruefung->changeup === true;
$changedown = isset($zgvpruefung->changedown) && $zgvpruefung->changedown === true;
@@ -77,7 +84,7 @@
<span<?php echo $changeup || $changedown ? ' class="zgvheaderbeforeprio"' : ''?>>
<?php if ($infoonly): ?>
<?php if (isset($zgvpruefung->prestudentstatus->bestaetigtam)): ?>
<i class="fa fa-check" style="color: green"></i>
<i class="fa fa-check text-success"></i>
<?php if (isset($zgvpruefung->prestudentstatus->statusgrund_id))
echo $this->p->t('global', 'anStudiengangFreigegeben').(isset($zgvpruefung->prestudentstatus->bezeichnung_statusgrund[0]) ? ' ('.$zgvpruefung->prestudentstatus->bezeichnung_statusgrund[0].')' : '');
else
@@ -85,9 +92,9 @@
?>
<?php endif; ?>
<?php else: ?>
<?php echo ucfirst($this->p->t('infocenter', 'bewerbung')) . ' ' . $this->p->t('global', 'abgeschickt') . ': '.(isset($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum) ? '<i class="fa fa-check" style="color:green"></i>' : '<i class="fa fa-times" style="color:red"></i>'); ?>
<?php echo (isset($zgvpruefung->prestudentstatus->bewerbungsnachfrist) ? ' | ' . $this->p->t('infocenter', 'nachfrist') . ': ' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungsnachfrist), 'd.m.Y') : ''); ?>
<?php echo (isset($zgvpruefung->prestudentstatus->bewerbungstermin) ? ' | ' . $this->p->t('infocenter', 'bewerbungsfrist') . ': ' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungstermin), 'd.m.Y') : ''); ?>
<?php echo ucfirst($this->p->t('infocenter', 'bewerbung')) . ' ' . $this->p->t('global', 'abgeschickt') . ':&nbsp;'.(isset($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum) ? '<i class="fa fa-check text-success"></i>' : '<i class="fa fa-times text-danger"></i>'); ?>
<?php echo (isset($zgvpruefung->prestudentstatus->bewerbungsnachfrist) ? ' | ' . $this->p->t('infocenter', 'nachfrist') . ':&nbsp;' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungsnachfrist), 'd.m.Y') : ''); ?>
<?php echo (isset($zgvpruefung->prestudentstatus->bewerbungstermin) ? ' | ' . $this->p->t('infocenter', 'bewerbungsfrist') . ':&nbsp;' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungstermin), 'd.m.Y') : ''); ?>
<?php endif; ?>
<?php
echo ' | ' . ucfirst($this->p->t('infocenter', 'priorisierung')) . ': ';
@@ -118,8 +125,7 @@
<div id="collapse<?php echo $zgvpruefung->prestudent_id ?>"
class="panel-collapse collapse<?php echo $infoonly ? '' : ' in' ?>">
<div class="panel-body">
<form method="post"
action="#" class="zgvform">
<form action="javascript:void(0);" class="zgvform" id="zgvform_<?php echo $zgvpruefung->prestudent_id ?>">
<input type="hidden" name="prestudentid" value="<?php echo $zgvpruefung->prestudent_id ?>" class="prestudentidinput">
<div class="row">
<div class="col-lg-<?php echo $columns[0] ?>">
@@ -302,21 +308,38 @@
</div>
<!-- show only master zgv if master studiengang - end -->
<?php endif; ?>
<?php if (!$infoonly): ?>
<div class="row">
<div class="col-xs-6 text-left">
<button type="button" class="btn btn-default zgvUebernehmen" id="zgvUebernehmen_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'letzteZgvUebernehmen') ?>
</button>
</div>
<div class="col-xs-6 text-right">
<button type="submit" class="btn btn-default saveZgv" id="zgvSpeichern_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('ui', 'speichern') ?>
</button>
</div>
</div>
<?php endif; ?>
</form>
<?php if (!$infoonly): ?>
<div class="row">
<div class="col-xs-6 text-left">
<button type="button" class="btn btn-default zgvUebernehmen" id="zgvUebernehmen_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'letzteZgvUebernehmen') ?>
</button>
</div>
<div class="col-xs-6 text-right">
<button type="submit" class="btn btn-default saveZgv" id="zgvSpeichern_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('ui', 'speichern') ?>
</button>
</div>
</div>
<?php endif; ?>
<br />
<?php
if (isset($zgvpruefung->prestudentUdfs))
{
echo $this->udflib->UDFWidget(
array(
UDFLib::UDF_UNIQUE_ID => 'infocenterPrestudentUDFs_'.$zgvpruefung->prestudent_id,
UDFLib::REQUIRED_PERMISSIONS_PARAMETER => 'infocenter',
UDFLib::SCHEMA_ARG_NAME => 'public',
UDFLib::TABLE_ARG_NAME => 'tbl_prestudent',
UDFLib::PRIMARY_KEY_NAME => 'prestudent_id',
UDFLib::PRIMARY_KEY_VALUE => $zgvpruefung->prestudent_id,
UDFLib::UDFS_ARG_NAME => $zgvpruefung->prestudentUdfs
)
);
}
?>
</div>
<?php
@@ -472,10 +495,10 @@
</div><!-- /.row -->
</div><!-- /.panel-footer -->
<?php elseif (isset($zgvpruefung->prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz === 'Interessent'): ?>
<div class="panel-footer" style="border-top: 1px solid #ddd">
<div class="panel-footer solidtop">
<div class="row">
<div class="col-lg-12 text-left">
<?php echo isset($zgvpruefung->prestudentstatus->bestaetigtam) ? '<i class="fa fa-check" style="color: green"></i>' : '<i class="fa fa-check" style="color: red"></i>' ?>
<?php echo isset($zgvpruefung->prestudentstatus->bestaetigtam) ? '<i class="fa fa-check text-success"></i>' : '<i class="fa fa-check text-danger"></i>' ?>
<label>
<?php if (isset($zgvpruefung->prestudentstatus->statusgrund_id))
echo $this->p->t('global', 'anStudiengangFreigegeben').(isset($zgvpruefung->prestudentstatus->bezeichnung_statusgrund[0]) ? ' ('.$zgvpruefung->prestudentstatus->bezeichnung_statusgrund[0].')' : '');
@@ -44,7 +44,7 @@
<span class="buttonsSpacer"></span>
<span>
<input id="writeMessage" type="button" value="<?php echo $this->p->t('ui', 'nachrichtSenden'); ?>">
<?php echo $writeButton; ?>
<input id="replyMessage" type="button" value="<?php echo $this->p->t('global', 'reply'); ?>">
</span>
@@ -85,6 +85,12 @@
<br>
<div class="row">
<div class="col-lg-12 text-right">
<button id="backButton" class="btn btn-default" type="button">
<?php echo $this->p->t('ui', 'backToReadWriteMessage'); ?>
</button>
<button id="sendButton" class="btn btn-default" type="button">
<?php echo $this->p->t('ui', 'senden'); ?>
@@ -89,7 +89,7 @@
array(
'name' => 'variables[]',
'id' => 'variables',
'size' => 27,
'size' => count($variables),
'multiple' => true
)
);
+6 -1
View File
@@ -34,6 +34,7 @@
$tablewidget = isset($tablewidget) ? $tablewidget : false;
$tabulator = isset($tabulator) ? $tabulator : false;
$tinymce = isset($tinymce) ? $tinymce : false;
$udfs = isset($udfs) ? $udfs : false;
$widgets = isset($widgets) ? $widgets : false;
?>
@@ -195,6 +196,7 @@
// From public folder
// DialogLib JS
// NOTE: must be called before including others JS libraries that use it
if ($dialoglib === true) generateJSsInclude('public/js/DialogLib.js');
// AjaxLib JS
@@ -213,8 +215,11 @@
// TableWidget JS
if ($tablewidget === true) generateJSsInclude('public/js/TableWidget.js');
// User Defined Fields
if ($udfs === true) generateJSsInclude('public/js/UDFWidget.js');
// Load addon hooks JS
// NOTE: keep it as the latest but one
// NOTE: keep it as the last but one
if ($addons === true) generateAddonsJSsInclude($calledPath.'/'.$calledMethod);
// Eventually required JS
+11 -4
View File
@@ -1,17 +1,24 @@
<br>
<div class="row" id="divTableWidgetDataset" tableUniqueId="<?php echo $tableUniqueId; ?>">
<div class="col-lg-12">
<!-- Table widget header -->
<div id="tableWidgetHeader"></div>
<!-- TableWidget help site ( only rendered if widget is Tabulator )-->
<?php $this->load->view('widgets/table/tableHelpsite') ?>
<!-- Table info top -->
<div id="tableDatasetActionsTop"></div>
<!-- TableWidget table -->
<div>
<?php TableWidget::loadViewDataset(); ?>
</div>
<?php TableWidget::loadViewDataset(); ?>
<!-- Table info bottom -->
<div id="tableDatasetActionsBottom"></div>
<!-- Table widget footer -->
<div id="tableWidgetFooter"></div>
</div>
</div>
@@ -0,0 +1,39 @@
<!--CollapseHTML 'Help'-->
<div class="row">
<div class="col-lg-12 collapse" id="tabulatorHelp-<?php echo $tableUniqueId; ?>">
<div class="well">
<h4><?php echo ucfirst($this->p->t('ui', 'tabelleneinstellungen')); ?></h4>
<div class="panel panel-body">
<b><?php echo $this->p->t('table', 'spaltenEinAusblenden'); ?></b>
<p>
<ul>
<li><?php echo $this->p->t('table', 'spaltenEinAusblendenMitKlickOeffnen'); ?></li>
<li><?php echo $this->p->t('table', 'spaltenEinAusblendenAufEinstellungenKlicken'); ?></li>
<li><?php echo $this->p->t('table', 'spaltenEinAusblendenMitKlickAktivieren'); ?></li>
<li><?php echo $this->p->t('table', 'spaltenEinAusblendenMitKlickSchliessen'); ?></li>
</ul>
</p>
<br>
<b><?php echo $this->p->t('table', 'spaltenbreiteVeraendern'); ?></b>
<p><?php echo $this->p->t('table', 'spaltenbreiteVeraendernText'); ?></p>
<div class="alert alert-info">
<strong>INFO: </strong>
<?php echo $this->p->t('table', 'spaltenbreiteVeraendernInfotext'); ?>
</div>
</div>
<br> <!--end panel-body-->
<h4><?php echo $this->p->t('table', 'zeilenAuswaehlen'); ?></h4>
<div class="panel panel-body">
<ul>
<li><?php echo $this->p->t('table', 'zeilenAuswaehlenEinzeln'); ?></li>
<li><?php echo $this->p->t('table', 'zeilenAuswaehlenBereich'); ?></li>
<li><?php echo $this->p->t('table', 'zeilenAuswaehlenAlle'); ?></li>
</ul>
</div>
<br> <!--end panel-body-->
</div><!--end well-->
</div><!--end col collapse-->
</div><!--end row-->