Merge branch 'feature-36185/requestAnrechnung_bootstrap3_zu_bootstrap5' into feature-25999/C4_cleanup

This commit is contained in:
Harald Bamberger
2024-10-31 16:00:12 +01:00
82 changed files with 5908 additions and 5249 deletions
+2
View File
@@ -26,6 +26,8 @@ class TableWidgetLib
{
const TABLE_UNIQUE_ID = 'tableUniqueId'; // TableWidget unique id
const TABLE_BOOTSTRAP_VERSION = 'bootstrapVersion'; // TableWidget bootstrap version
// TableWidget session name
const SESSION_NAME = 'FHC_TABLE_WIDGET';
-2
View File
@@ -26,7 +26,6 @@ $this->load->view(
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -63,6 +62,5 @@ $this->load->view(
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -7,7 +7,8 @@ $includesArray = array(
'fontawesome6' => true,
'ajaxlib' => true,
'dialoglib' => true,
'tabulator4' => true,
'tabulator5' => true,
'tabulator5JQuery' => true,
'tablewidget' => true,
'sbadmintemplate3' => true,
'navigationwidget' => true,
@@ -48,7 +49,8 @@ $includesArray = array(
'public/js/lehre/anrechnung/adminAnrechnung.js'
),
'customCSSs' => array(
'public/css/sbadmin2/tablesort_bootstrap.css'
'public/css/sbadmin2/tablesort_bootstrap.css',
'public/css/lehre/anrechnung.css'
)
);
@@ -83,7 +85,8 @@ if (defined("CIS4")) {
<div class="row">
<div class="col-xs-4">
<button class="btn btn-primary azrOpenModal" data-toggle="modal" data-target="#azrModal">
<i class="fa fa-plus"></i> <?php echo $this->p->t('anrechnung', 'anrechnungszeitraumHinzufuegen'); ?>
<i class="fa fa-plus"></i>
<?php echo $this->p->t('anrechnung', 'anrechnungszeitraumHinzufuegen'); ?>
</button>
</div>
</div>
@@ -96,48 +99,52 @@ if (defined("CIS4")) {
</div>
<!-- Modal (für insert und update von Anrechnungszeitraum)-->
<div class="modal fade" id="azrModal" tabindex="-1" role="dialog" aria-labelledby="azrModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="azrModalLabel"></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="row">
<input type="hidden" id="anrechnungszeitraum_id" value="">
<input type="hidden" id="defaultStudiensemester_kurzbz" value="<?php echo $studiensemester_kurzbz ?>">
<div class="col-xs-4">
<label for="studiensemester" class="small">Studiensemester</label>
<?php
echo $this->widgetlib->widget(
'Studiensemester_widget',
array(
DropdownWidget::SELECTED_ELEMENT => $studiensemester_kurzbz
),
array(
'name' => 'studiensemester',
'id' => 'studiensemester'
)
);
?>
</div>
<div class="col-xs-4">
<label for="azrStart" class="small">Anr.-Zeitraum Start</label>
<input type="date" id="azrStart" value="" class="form-control" required>
</div>
<div class="col-xs-4">
<label for="azrEnde" class="small">Anr.-Zeitraum Ende</label>
<input type="date" id="azrEnde" value="" class="form-control" required>
<div class="modal fade" id="azrModal" tabindex="-1" role="dialog" aria-labelledby="azrModalLabel"
aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="azrModalLabel"></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="row">
<input type="hidden" id="anrechnungszeitraum_id" value="">
<input type="hidden" id="defaultStudiensemester_kurzbz"
value="<?php echo $studiensemester_kurzbz ?>">
<div class="col-xs-4">
<label for="studiensemester" class="small">Studiensemester</label>
<?php
echo $this->widgetlib->widget(
'Studiensemester_widget',
array(
DropdownWidget::SELECTED_ELEMENT => $studiensemester_kurzbz
),
array(
'name' => 'studiensemester',
'id' => 'studiensemester'
)
);
?>
</div>
<div class="col-xs-4">
<label for="azrStart" class="small">Anr.-Zeitraum Start</label>
<input type="date" id="azrStart" value="" class="form-control" required>
</div>
<div class="col-xs-4">
<label for="azrEnde" class="small">Anr.-Zeitraum Ende</label>
<input type="date" id="azrEnde" value="" class="form-control" required>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" id="azrInsertBtn" class="btn btn-primary" value=""><?php echo $this->p->t('ui', 'speichern'); ?></button>
<div class="modal-footer">
<button type="button" id="azrInsertBtn" class="btn btn-primary"
value=""><?php echo $this->p->t('ui', 'speichern'); ?></button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@@ -156,4 +163,3 @@ if (defined("CIS4")) {
);
}
?>
@@ -12,7 +12,7 @@ $filterWidgetArray = array(
'requiredPermissions' => 'lehre/anrechnungszeitfenster',
'datasetRepresentation' => 'tabulator',
'columnsAliases' => array(
'AzrID',
'AzrID',
ucfirst($this->p->t('lehre', 'studiensemester')),
ucfirst($this->p->t('anrechnung', 'anrechnungszeitraumStart')),
ucfirst($this->p->t('anrechnung', 'anrechnungszeitraumEnde')),
@@ -24,13 +24,15 @@ $filterWidgetArray = array(
layout: "fitDataFill",
persistentLayout:true,
autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated
headerFilterPlaceholder: " ",
index: "anrechnungszeitraum_id", // assign specific column as unique id (important for row indexing)
selectable: false, // allow row selection
tableWidgetHeader: true,
tableBuilt: function(){
func_tableBuilt(this);
},
columnDefaults:{
headerFilterPlaceholder:" ",
},
}',
'datasetRepFieldsDefs' => '{
anrechnungszeitraum_id: {visible: false, headerFilter:"input"},
@@ -1,11 +1,12 @@
<?php
$this->load->config('anrechnung');
$includesArray = array(
$includesArray = array(
'title' => $this->p->t('anrechnung', 'anrechnungenGenehmigen'),
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'bootstrap5' => true,
'cis' => true,
'fontawesome4' => true,
'ajaxlib' => true,
'dialoglib' => true,
@@ -50,12 +51,11 @@ $includesArray = array(
)
),
'customCSSs' => array(
'public/css/Tabulator.css'
'public/css/lehre/anrechnung.css'
),
'customJSs' => array(
'public/js/bootstrapper.js',
'public/js/lehre/anrechnung/approveAnrechnungDetail.js'
)
);
@@ -73,125 +73,155 @@ if (defined("CIS4")) {
?>
<div id="page-wrapper">
<div class="container-fluid">
<!-- header -->
<div class="row">
<div class="col-lg-12 page-header">
<h3>
<div class="container-fluid">
<!-- header -->
<div class="row">
<div class="col-lg-12 my-4 border-bottom">
<h3 class="fw-normal ">
<?php echo $this->p->t('anrechnung', 'anrechnungenGenehmigen'); ?>
<small>| <?php echo $this->p->t('global', 'detailsicht'); ?></small>
</h3>
</div>
</div>
<small class="text-secondary fs-6">| <?php echo $this->p->t('global', 'detailsicht'); ?></small>
</h3>
</div>
</div>
<!--end header -->
<div class="row" id="approveAnrechnungDetail-generell" data-readonly="<?php echo json_encode($hasReadOnlyAccess)?>">
<div class="col-xs-8">
<div class="row " id="approveAnrechnungDetail-generell"
data-readonly="<?php echo json_encode($hasReadOnlyAccess) ?>">
<div class="col-8">
<!-- Antragsdaten -->
<div class="row">
<div class="row mb-4">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
<span class="text-uppercase"><b><?php echo $this->p->t('anrechnung', 'antrag'); ?></b></span>&emsp;
<span class="approveAnrechnungDetail-anrechnungInfoTooltip"
data-toggle="tooltip" data-placement="right"
title="<?php echo $this->p->t('anrechnung', 'anrechnungInfoTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</span>
<span class="pull-right"><?php echo $this->p->t('anrechnung', 'antragdatum'); ?>: <span
id="approveAnrechnung-status"><?php echo !empty($anrechnungData->anrechnung_id) ? $anrechnungData->insertamum : '-' ?></span></span>
<div class="card">
<div class="card-header">
<span
class="text-uppercase"><b><?php echo $this->p->t('anrechnung', 'antrag'); ?></b></span>&emsp;
<span class="approveAnrechnungDetail-anrechnungInfoTooltip" data-bs-toggle="tooltip"
data-bs-placement="right"
title="<?php echo $this->p->t('anrechnung', 'anrechnungInfoTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</span>
<span class="float-end"><?php echo $this->p->t('anrechnung', 'antragdatum'); ?>: <span
id="approveAnrechnung-status"><?php echo !empty($anrechnungData->anrechnung_id) ? $anrechnungData->insertamum : '-' ?></span></span>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-lg-4">
<table class="table table-bordered table-condensed table-fixed">
<div class="col-xxl-4">
<table class="table table-bordered table-condensed table-fixed mb-0">
<tbody>
<tr>
<th class="col-xs-5"><?php echo ucfirst($this->p->t('person', 'studentIn')); ?></th>
<td><?php echo $antragData->vorname . ' ' . $antragData->nachname; ?></td>
</tr>
<tr>
<th class="col-xs-5"><?php echo $this->p->t('person', 'personenkennzeichen'); ?></th>
<td><?php echo $antragData->matrikelnr ?></td>
</tr>
<tr>
<th class="col-xs-5"><?php echo ucfirst($this->p->t('lehre', 'studiensemester')); ?></th>
<td><?php echo $antragData->studiensemester_kurzbz ?></td>
</tr>
<tr>
<th class="col-xs-5"><?php echo ucfirst($this->p->t('lehre', 'studiengang')); ?></th>
<td><?php echo $antragData->stg_bezeichnung ?></td>
</tr>
<tr>
<th class="col-xs-5"><?php echo $this->p->t('lehre', 'lehrveranstaltung'); ?></th>
<td><?php echo $antragData->lv_bezeichnung ?></td>
</tr>
<tr>
<th class="col-xs-5"><?php echo $this->p->t('lehre', 'lektorInnen'); ?></th>
<td>
<?php $len = count($antragData->lektoren) - 1 ?>
<?php foreach ($antragData->lektoren as $key => $lektor): ?>
<?php echo $lektor->vorname . ' ' . $lektor->nachname;
echo $key === $len ? '' : ', ' ?>
<?php endforeach; ?>
</td>
</tr>
<tr>
<th class="col-xs-5"><?php echo $this->p->t('lehre', 'ects'); ?></th>
<td><span id="ects"><?php echo $antragData->ects ?></span></td>
</tr>
<tr>
<th class="col-xs-5">
<?php echo $this->p->t('anrechnung', 'bisherAngerechneteEcts'); ?>
<span class="approveAnrechnungDetail-anrechnungEctsTooltip"
data-toggle="tooltip" data-placement="right"
title="<?php echo $this->p->t('anrechnung', 'anrechnungEctsTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</span>
</th>
<td>
Total: <span id="sumEctsTotal"><?php echo number_format($antragData->sumEctsSchulisch + $antragData->sumEctsBeruflich, 1) ?></span>
[Schulisch: <span id="sumEctsSchulisch" value="<?php echo $antragData->sumEctsSchulisch ?>"><?php echo $antragData->sumEctsSchulisch ?></span> /
Beruflich: <span id="sumEctsBeruflich" value="<?php echo $antragData->sumEctsBeruflich ?>"><?php echo $antragData->sumEctsBeruflich ?></span> ]
<span id="sumEctsMsg"></span>
</td>
</tr>
<tr>
<th class="col-5">
<?php echo ucfirst($this->p->t('person', 'studentIn')); ?></th>
<td><?php echo $antragData->vorname . ' ' . $antragData->nachname; ?>
</td>
</tr>
<tr>
<th class="col-5">
<?php echo $this->p->t('person', 'personenkennzeichen'); ?></th>
<td><?php echo $antragData->matrikelnr ?></td>
</tr>
<tr>
<th class="col-5">
<?php echo ucfirst($this->p->t('lehre', 'studiensemester')); ?>
</th>
<td><?php echo $antragData->studiensemester_kurzbz ?></td>
</tr>
<tr>
<th class="col-5">
<?php echo ucfirst($this->p->t('lehre', 'studiengang')); ?></th>
<td><?php echo $antragData->stg_bezeichnung ?></td>
</tr>
<tr>
<th class="col-5">
<?php echo $this->p->t('lehre', 'lehrveranstaltung'); ?></th>
<td><?php echo $antragData->lv_bezeichnung ?></td>
</tr>
<tr>
<th class="col-5"><?php echo $this->p->t('lehre', 'lektorInnen'); ?>
</th>
<td>
<?php $len = count($antragData->lektoren) - 1 ?>
<?php foreach ($antragData->lektoren as $key => $lektor): ?>
<?php echo $lektor->vorname . ' ' . $lektor->nachname;
echo $key === $len ? '' : ', ' ?>
<?php endforeach; ?>
</td>
</tr>
<tr>
<th class="col-5"><?php echo $this->p->t('lehre', 'ects'); ?></th>
<td><span id="ects"><?php echo $antragData->ects ?></span></td>
</tr>
<tr>
<th class="col-5">
<?php echo $this->p->t('anrechnung', 'bisherAngerechneteEcts'); ?>
<span class="approveAnrechnungDetail-anrechnungEctsTooltip"
data-bs-toggle="tooltip" data-bs-placement="right"
data-bs-html="true"
title="<?php echo $this->p->t('anrechnung', 'anrechnungEctsTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</span>
</th>
<td>
Total: <span
id="sumEctsTotal"><?php echo number_format($antragData->sumEctsSchulisch + $antragData->sumEctsBeruflich, 1) ?></span>
[Schulisch: <span id="sumEctsSchulisch"
value="<?php echo $antragData->sumEctsSchulisch ?>"><?php echo $antragData->sumEctsSchulisch ?></span>
/
Beruflich: <span id="sumEctsBeruflich"
value="<?php echo $antragData->sumEctsBeruflich ?>"><?php echo $antragData->sumEctsBeruflich ?></span>
]
<div class="p-1 align-items-center" id="sumEctsMsg"></div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="col-lg-8">
<table class="table table-bordered table-condensed table-fixed">
<div class="col-xxl-8">
<table class="table table-bordered table-condensed table-fixed mb-0">
<tbody>
<tr>
<th class="col-xs-3"><?php echo ucfirst($this->p->t('global', 'zgv')); ?></th>
<td><?php echo $antragData->zgv ?></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'herkunftDerKenntnisse'); ?></th>
<td><?php echo $anrechnungData->anmerkung ?></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'nachweisdokumente'); ?></th>
<td>
<a href="<?php echo current_url() . '/download?dms_id=' . $anrechnungData->dms_id; ?>"
target="_blank"><?php echo htmlentities($anrechnungData->dokumentname) ?></a>
</td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('global', 'begruendung'); ?></th>
<td><span id="begruendung_id" data-begruendung_id="<?php echo $anrechnungData->begruendung_id ?>" ><?php echo $anrechnungData->begruendung ?></span></td>
</tr>
<tr>
<th class="col-3">
<?php echo ucfirst($this->p->t('global', 'zgv')); ?></th>
<td><?php echo $antragData->zgv ?></td>
</tr>
<tr>
<th class="col-4">
<?php echo $this->p->t('anrechnung', 'herkunftDerKenntnisse'); ?>
</th>
<td><?php echo $anrechnungData->anmerkung ?></td>
</tr>
<tr>
<th class="col-4">
<?php echo $this->p->t('anrechnung', 'nachweisdokumente'); ?>
</th>
<td>
<a href="<?php echo current_url() . '/download?dms_id=' . $anrechnungData->dms_id; ?>"
target="_blank"><?php echo htmlentities($anrechnungData->dokumentname) ?></a>
</td>
</tr>
<tr>
<th class="col-4">
<?php echo $this->p->t('global', 'begruendung'); ?></th>
<td><span id="begruendung_id"
data-begruendung_id="<?php echo $anrechnungData->begruendung_id ?>"><?php echo $anrechnungData->begruendung ?></span>
</td>
</tr>
<?php if ($this->config->item('explain_equivalence')): ?>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'begruendungEctsLabel'); ?></th>
<td><span><?php echo $anrechnungData->begruendung_ects ?></span></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'begruendungLvinhaltLabel'); ?></th>
<td><span><?php echo $anrechnungData->begruendung_lvinhalt ?></span></td>
</tr>
<tr>
<th class="col-4">
<?php echo $this->p->t('anrechnung', 'begruendungEctsLabel'); ?>
</th>
<td><span><?php echo $anrechnungData->begruendung_ects ?></span>
</td>
</tr>
<tr>
<th class="col-4">
<?php echo $this->p->t('anrechnung', 'begruendungLvinhaltLabel'); ?>
</th>
<td><span><?php echo $anrechnungData->begruendung_lvinhalt ?></span>
</td>
</tr>
<?php endif; ?>
</tbody>
</table>
@@ -204,86 +234,105 @@ if (defined("CIS4")) {
<!-- Empfehlungsdaten -->
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default" id="approveAnrechnungDetail-empfehlung"
data-empfehlung="<?php echo json_encode($empfehlungData->empfehlung) ?>">
<div class="panel-heading">
<span class="text-uppercase"><b><?php echo $this->p->t('anrechnung', 'empfehlung'); ?></b></span>&emsp;
<div class="pull-right">
<?php echo $this->p->t('anrechnung', 'empfehlungVon'); ?>:
<span id="approveAnrechnungDetail-empfehlungVon"><?php echo $empfehlungData->empfehlung_von ?></span>
&emsp;|&emsp;
<?php echo $this->p->t('anrechnung', 'empfehlungdatum'); ?>:
<span id="approveAnrechnungDetail-empfehlungAm"><?php echo $empfehlungData->empfehlung_am ?></span>
</div>
<div class="card " id="approveAnrechnungDetail-empfehlung"
data-empfehlung="<?php echo json_encode($empfehlungData->empfehlung) ?>">
<div class="card-header">
<span
class="text-uppercase"><b><?php echo $this->p->t('anrechnung', 'empfehlung'); ?></b></span>&emsp;
<div class="float-end">
<?php echo $this->p->t('anrechnung', 'empfehlungVon'); ?>:
<span
id="approveAnrechnungDetail-empfehlungVon"><?php echo $empfehlungData->empfehlung_von ?></span>
&emsp;|&emsp;
<?php echo $this->p->t('anrechnung', 'empfehlungdatum'); ?>:
<span
id="approveAnrechnungDetail-empfehlungAm"><?php echo $empfehlungData->empfehlung_am ?></span>
</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-6">
<form id="form-empfehlung">
<input type="hidden" name="anrechnung_id" value="<?php echo $anrechnungData->anrechnung_id ?>">
<input type="hidden" name="ects" value="<?php echo $antragData->ects ?>">
<input type="hidden" name="sumEctsSchulisch" value="<?php echo $antragData->sumEctsSchulisch ?>">
<input type="hidden" name="sumEctsBeruflich" value="<?php echo $antragData->sumEctsBeruflich ?>">
<table class="table table-bordered table-condensed table-fixed">
<tbody>
</div>
<div class="card-body">
<div class="row">
<div class="col-lg-6">
<form id="form-empfehlung">
<input type="hidden" name="anrechnung_id"
value="<?php echo $anrechnungData->anrechnung_id ?>">
<input type="hidden" name="ects" value="<?php echo $antragData->ects ?>">
<input type="hidden" name="sumEctsSchulisch"
value="<?php echo $antragData->sumEctsSchulisch ?>">
<input type="hidden" name="sumEctsBeruflich"
value="<?php echo $antragData->sumEctsBeruflich ?>">
<table class="table table-bordered table-condensed table-fixed mb-0">
<tbody>
<tr>
<th class="col-xs-4"><?php echo ucfirst($this->p->t('anrechnung', 'empfehlungsanfrageAm')); ?></th>
<td id="approveAnrechnungDetail-empfehlungDetail-empfehlungsanfrageAm">
<th class="col-4">
<?php echo ucfirst($this->p->t('anrechnung', 'empfehlungsanfrageAm')); ?>
</th>
<td
id="approveAnrechnungDetail-empfehlungDetail-empfehlungsanfrageAm">
<?php echo $empfehlungData->empfehlungsanfrageAm; ?>
</td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'empfehlungsanfrageAn'); ?></th>
<td id="approveAnrechnungDetail-empfehlungDetail-empfehlungsanfrageAn">
<th class="col-4">
<?php echo $this->p->t('anrechnung', 'empfehlungsanfrageAn'); ?>
</th>
<td
id="approveAnrechnungDetail-empfehlungDetail-empfehlungsanfrageAn">
<?php echo $empfehlungData->empfehlungsanfrageAn; ?>
</td>
</tr>
<tr>
<th class="col-xs-4"><?php echo ucfirst($this->p->t('anrechnung', 'empfehlungAm')); ?></th>
<th class="col-4">
<?php echo ucfirst($this->p->t('anrechnung', 'empfehlungAm')); ?>
</th>
<td><?php echo $empfehlungData->empfehlung_am ?></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo ucfirst($this->p->t('anrechnung', 'empfehlungVon')); ?></th>
<th class="col-4">
<?php echo ucfirst($this->p->t('anrechnung', 'empfehlungVon')); ?>
</th>
<td><?php echo $empfehlungData->empfehlung_von ?></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'empfehlung'); ?></th>
<td id="approveAnrechnungDetail-empfehlungDetail-empfehlung"></td>
<th class="col-4">
<?php echo $this->p->t('anrechnung', 'empfehlung'); ?></th>
<td id="approveAnrechnungDetail-empfehlungDetail-empfehlung">
</td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('global', 'begruendung'); ?></th>
<th class="col-4">
<?php echo $this->p->t('global', 'begruendung'); ?></th>
<td id="approveAnrechnungDetail-empfehlungDetail-begruendung">
<?php echo htmlentities($empfehlungData->begruendung) ?>
</td>
</tr>
</tbody>
</table>
</form>
</div>
<div class="col-lg-6">
<form id="form-empfehlungNotiz">
<input type="hidden" name="anrechnung_id"
value="<?php echo $anrechnungData->anrechnung_id ?>">
<input type="hidden" name="notiz_id"
value="<?php echo $empfehlungData->notiz_id ?>">
<div class="form-group">
<label class="text-center">
<?php echo ucfirst($this->p->t('global', 'notiz')); ?>
</label>
<textarea name="empfehlungText" rows="4"><?php echo htmlentities($empfehlungData->notiz) ?></textarea>
</div>
<input type="submit" class="btn btn-default pull-right" value="<?php echo ucfirst($this->p->t('ui', 'speichern')); ?>">
</form>
</div>
</tbody>
</table>
</form>
</div>
<div class="col-lg-6">
<form id="form-empfehlungNotiz">
<input type="hidden" name="anrechnung_id"
value="<?php echo $anrechnungData->anrechnung_id ?>">
<input type="hidden" name="notiz_id"
value="<?php echo $empfehlungData->notiz_id ?>">
<div class="form-row mb-3">
<label class="fw-bold text-center mb-2">
<?php echo ucfirst($this->p->t('global', 'notiz')); ?>
</label>
<textarea name="empfehlungText"
rows="4"><?php echo htmlentities($empfehlungData->notiz) ?></textarea>
</div>
<input type="submit" class="btn btn-outline-secondary float-end"
value="<?php echo ucfirst($this->p->t('ui', 'speichern')); ?>">
</form>
</div>
</div>
</div>
<div class="pull-right">
<button id="approveAnrechnungDetail-withdraw-request-recommedation"
class="btn btn-default btn-w200 <?php echo (is_null($empfehlungData->empfehlung) &&
$anrechnungData->status_kurzbz == 'inProgressLektor') ? '' : 'hidden' ?>"
type="button">
</div>
<div class="mt-4 mb-5 d-flex justify-content-end">
<button id="approveAnrechnungDetail-withdraw-request-recommedation" class="me-1 btn btn-outline-secondary btn-w200 <?php echo (is_null($empfehlungData->empfehlung) &&
$anrechnungData->status_kurzbz == 'inProgressLektor') ? '' : 'visually-hidden' ?>" type="button">
<?php echo ucfirst($this->p->t('global', 'zuruecknehmen')); ?>
</button>
<button id="approveAnrechnungDetail-request-recommendation" class="btn btn-primary btn-w200"
@@ -293,164 +342,174 @@ if (defined("CIS4")) {
</div>
</div>
</div>
<br><br>
<!-- Genehmigungssdaten -->
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
<span class="text-uppercase"><b><?php echo $this->p->t('anrechnung', 'genehmigung'); ?></b></span>&emsp;
<div class="pull-right">
<div class="card my-4">
<div class="card-header">
<span
class="text-uppercase"><b><?php echo $this->p->t('anrechnung', 'genehmigung'); ?></b></span>&emsp;
<div class="float-end">
<?php echo $this->p->t('anrechnung', 'abgeschlossenVon'); ?>:
<span id="approveAnrechnungDetail-abgeschlossenVon"><?php echo $genehmigungData->abgeschlossen_von ?></span>
<span
id="approveAnrechnungDetail-abgeschlossenVon"><?php echo $genehmigungData->abgeschlossen_von ?></span>
&emsp;|&emsp;
<?php echo $this->p->t('anrechnung', 'abschlussdatum'); ?>:
<span id="approveAnrechnungDetail-abgeschlossenAm"><?php echo $genehmigungData->abgeschlossen_am ?></span>
<span
id="approveAnrechnungDetail-abgeschlossenAm"><?php echo $genehmigungData->abgeschlossen_am ?></span>
</div>
</div>
<div class="panel-body" id="approveAnrechnungDetail-genehmigungDetail">
<div class="card-body" id="approveAnrechnungDetail-genehmigungDetail">
<!-- Infopanel: Noch nicht genehmigt / abgelehnt -->
<div class="panel panel-default panel-body <?php echo is_null($genehmigungData->genehmigung) ? '' : 'hidden' ?>"
id="approveAnrechnungDetail-genehmigungDetail-genehmigungIsNull">
<div class="card card-body my-3 <?php echo is_null($genehmigungData->genehmigung) ? '' : 'visually-hidden' ?>"
id="approveAnrechnungDetail-genehmigungDetail-genehmigungIsNull">
<?php echo $this->p->t('anrechnung', 'nochKeineGenehmigung'); ?>
</div>
<!-- Infopanel: Genehmigt -->
<div class="alert alert-success <?php echo $genehmigungData->genehmigung === true ? '' : 'hidden' ?>" id="approveAnrechnungDetail-genehmigungDetail-genehmigungIsPositiv">
<div class="card card-body bg-success-subtle my-3 <?php echo $genehmigungData->genehmigung === true ? '' : 'visually-hidden' ?>"
id="approveAnrechnungDetail-genehmigungDetail-genehmigungIsPositiv">
<b><?php echo $this->p->t('anrechnung', 'genehmigungPositiv'); ?></b>
</div>
<!-- Infopanel: Abgelehnt -->
<div class="<?php echo $genehmigungData->genehmigung === false ? '' : 'hidden' ?>" id="approveAnrechnungDetail-genehmigungDetail-genehmigungIsNegativ">
<div class="alert alert-danger">
<div class="<?php echo $genehmigungData->genehmigung === false ? '' : 'visually-hidden' ?>"
id="approveAnrechnungDetail-genehmigungDetail-genehmigungIsNegativ">
<div class="card card-body bg-danger-subtle my-3">
<b><?php echo $this->p->t('anrechnung', 'genehmigungNegativ'); ?></b>
</div>
<div class="well"><b><?php echo $this->p->t('global', 'begruendung'); ?>
<div class="card card-body bg-secondary-subtle my-3">
<b><?php echo $this->p->t('global', 'begruendung'); ?>
: </b>
<span id="approveAnrechnungDetail-genehmigungDetail-begruendung"><?php echo htmlentities($genehmigungData->notiz) ?></span>
<span
id="approveAnrechnungDetail-genehmigungDetail-begruendung"><?php echo htmlentities($genehmigungData->notiz) ?></span>
</div>
</div>
<form>
<input type="hidden" name="anrechnung_id" value="<?php echo $anrechnungData->anrechnung_id ?>">
<!-- Ablehnen -->
<div style="display: none" id="approveAnrechnungDetail-begruendung-panel">
<div>
<h4 class="panel panel-body panel-danger text-danger"><?php echo $this->p->t('anrechnung', 'genehmigungNegativQuestion'); ?></h4>
<ul class="list-group">
<li class="list-group-item">
<span><?php echo $this->p->t('anrechnung', 'genehmigungNegativPruefungNichtMoeglich'); ?></span>
<span class="btn-copyIntoTextarea pull-right" data-toggle="tooltip"
data-placement="right"
title="<?php echo $this->p->t('ui', 'textUebernehmen'); ?>">
<i class="fa fa-clipboard fa-lg" aria-hidden="true"></i>
</span>
</li>
<li class="list-group-item">
<span><?php echo $this->p->t('anrechnung', 'genehmigungNegativEctsHoechstgrenzeUeberschritten'); ?></span>
<span class="btn-copyIntoTextarea pull-right" data-toggle="tooltip"
data-placement="right"
title="<?php echo $this->p->t('ui', 'textUebernehmen'); ?>">
<i class="fa fa-clipboard fa-lg" aria-hidden="true"></i>
</span>
</li>
<li class="list-group-item">
<span><?php echo $this->p->t('anrechnung', 'genehmigungNegativKenntnisseNichtGleichwertigWeil'); ?></span>
<span class="btn-copyIntoTextarea pull-right" data-toggle="tooltip"
data-placement="right"
title="<?php echo $this->p->t('ui', 'textUebernehmen'); ?>">
<i class="fa fa-clipboard fa-lg" aria-hidden="true"></i>
</span>
</li>
<li class="list-group-item">
<span><?php echo $this->p->t('anrechnung', 'genehmigungNegativEmpfehlungstextUebernehmen'); ?></span>
<span id="empfehlungstextUebernehmen" class="btn-copyIntoTextarea pull-right" data-toggle="tooltip"
data-placement="right"
title="<?php echo $this->p->t('ui', 'textUebernehmen'); ?>">
<i class="fa fa-clipboard fa-lg" aria-hidden="true"></i>
</span>
</li>
<li class="list-group-item" onclick="{ $(this).closest('div').find('textarea').val('').focus()}">
<span><?php echo $this->p->t('anrechnung', 'andereBegruendung'); ?></span>
</li>
</ul>
<textarea class="form-control" name="begruendung"
id="approveAnrechnungDetail-begruendung"
rows="2"
placeholder="<?php echo $this->p->t('anrechnung', 'textUebernehmenOderEigenenBegruendungstext'); ?>" required></textarea>
</div>
<br>
<!-- Action Button 'Abbrechen'-->
<div class="pull-right">
<button id="approveAnrechnungDetail-begruendung-abbrechen"
class="btn btn-default btn-w200" type="reset">
<?php echo ucfirst($this->p->t('ui', 'abbrechen')); ?>
</button>
<button id="approveAnrechnungDetail-reject-anrechnung-confirm"
<form>
<input type="hidden" name="anrechnung_id"
value="<?php echo $anrechnungData->anrechnung_id ?>">
<!-- Ablehnen -->
<div style="display: none" id="approveAnrechnungDetail-begruendung-panel">
<div>
<h4 class="card card-body bg-danger-subtle my-3">
<?php echo $this->p->t('anrechnung', 'genehmigungNegativQuestion'); ?>
</h4>
<ul class="list-group my-3">
<li class="list-group-item">
<span><?php echo $this->p->t('anrechnung', 'genehmigungNegativPruefungNichtMoeglich'); ?></span>
<span class="btn-copyIntoTextarea float-end"
data-bs-toggle="tooltip" data-bs-placement="right"
title="<?php echo $this->p->t('ui', 'textUebernehmen'); ?>">
<i class="fa fa-clipboard fa-lg" aria-hidden="true"></i>
</span>
</li>
<li class="list-group-item">
<span><?php echo $this->p->t('anrechnung', 'genehmigungNegativEctsHoechstgrenzeUeberschritten'); ?></span>
<span class="btn-copyIntoTextarea float-end"
data-bs-toggle="tooltip" data-bs-placement="right"
title="<?php echo $this->p->t('ui', 'textUebernehmen'); ?>">
<i class="fa fa-clipboard fa-lg" aria-hidden="true"></i>
</span>
</li>
<li class="list-group-item">
<span><?php echo $this->p->t('anrechnung', 'genehmigungNegativKenntnisseNichtGleichwertigWeil'); ?></span>
<span class="btn-copyIntoTextarea float-end"
data-bs-toggle="tooltip" data-bs-placement="right"
title="<?php echo $this->p->t('ui', 'textUebernehmen'); ?>">
<i class="fa fa-clipboard fa-lg" aria-hidden="true"></i>
</span>
</li>
<li class="list-group-item">
<span><?php echo $this->p->t('anrechnung', 'genehmigungNegativEmpfehlungstextUebernehmen'); ?></span>
<span id="empfehlungstextUebernehmen"
class="btn-copyIntoTextarea float-end" data-bs-toggle="tooltip"
data-bs-placement="right"
title="<?php echo $this->p->t('ui', 'textUebernehmen'); ?>">
<i class="fa fa-clipboard fa-lg" aria-hidden="true"></i>
</span>
</li>
<li class="list-group-item"
onclick="{ $(this).closest('div').find('textarea').val('').focus()}">
<span><?php echo $this->p->t('anrechnung', 'andereBegruendung'); ?></span>
</li>
</ul>
<textarea class="my-3 form-control" name="begruendung"
id="approveAnrechnungDetail-begruendung" rows="2"
placeholder="<?php echo $this->p->t('anrechnung', 'textUebernehmenOderEigenenBegruendungstext'); ?>"
required></textarea>
</div>
<!-- Action Button 'Abbrechen'-->
<div class="float-end">
<button id="approveAnrechnungDetail-begruendung-abbrechen"
class="me-1 btn btn-outline-secondary btn-w200" type="reset">
<?php echo ucfirst($this->p->t('ui', 'abbrechen')); ?>
</button>
<button id="approveAnrechnungDetail-reject-anrechnung-confirm"
class="btn btn-primary btn-w200" type="button">
<?php echo ucfirst($this->p->t('ui', 'bestaetigen')); ?>
</button>
<?php echo ucfirst($this->p->t('ui', 'bestaetigen')); ?>
</button>
</div>
</div>
</div>
<!-- Genehmigen -->
<div style="display: none" id="approveAnrechnungDetail-genehmigung-panel">
<div>
<h4 class="panel panel-body panel-success text-success"><?php echo $this->p->t('anrechnung', 'genehmigungPositivQuestion'); ?></h4>
&ensp; <?php echo $this->p->t('anrechnung', 'genehmigungPositivSubquestion'); ?>
</div>
<br>
<!-- Action Button 'Abbrechen'-->
<div class="pull-right">
<button id="approveAnrechnungDetail-genehmigung-abbrechen"
class="btn btn-default btn-w200" type="reset">
<?php echo ucfirst($this->p->t('ui', 'abbrechen')); ?>
</button>
<button id="approveAnrechnungDetail-approve-anrechnung-confirm"
<!-- Genehmigen -->
<div style="display: none" id="approveAnrechnungDetail-genehmigung-panel">
<div class="my-3">
<h4 class="card card-body bg-success-subtle ">
<?php echo $this->p->t('anrechnung', 'genehmigungPositivQuestion'); ?>
</h4>
<span><?php echo $this->p->t('anrechnung', 'genehmigungPositivSubquestion'); ?></span>
</div>
<!-- Action Button 'Abbrechen'-->
<div class="float-end">
<button id="approveAnrechnungDetail-genehmigung-abbrechen"
class="me-1 btn btn-outline-secondary btn-w200" type="reset">
<?php echo ucfirst($this->p->t('ui', 'abbrechen')); ?>
</button>
<button id="approveAnrechnungDetail-approve-anrechnung-confirm"
class="btn btn-primary btn-w200" type="button">
<?php echo ucfirst($this->p->t('ui', 'bestaetigen')); ?>
</button>
<?php echo ucfirst($this->p->t('ui', 'bestaetigen')); ?>
</button>
</div>
</div>
</div>
</form>
</form>
</div>
</div>
<!-- Button Gehenhmigen / Ablehnen / Zurücknehmen -->
<div class="pull-right">
<button id="approveAnrechnungDetail-withdraw-anrechnung-approvement"
class="btn btn-default btn-w200 <?php echo ($anrechnungData->status_kurzbz == 'approved' ||
$anrechnungData->status_kurzbz == 'rejected') ? '' : 'hidden' ?>"
type="button">
<div class="float-end mb-5">
<button id="approveAnrechnungDetail-withdraw-anrechnung-approvement" class="me-1 btn btn-outline-secondary btn-w200 <?php echo ($anrechnungData->status_kurzbz == 'approved' ||
$anrechnungData->status_kurzbz == 'rejected') ? '' : 'visually-hidden' ?>" type="button">
<?php echo ucfirst($this->p->t('global', 'zuruecknehmen')); ?>
</button>
<button id="approveAnrechnungDetail-reject-anrechnung-ask" class="btn btn-danger btn-w200"
type="button"
<?php echo $anrechnungData->status_kurzbz == 'inProgressDP' ? '' : 'disabled' ?>>
<button id="approveAnrechnungDetail-reject-anrechnung-ask"
class="me-1 btn btn-danger btn-w200" type="button" <?php echo $anrechnungData->status_kurzbz == 'inProgressDP' ? '' : 'disabled' ?>>
<?php echo ucfirst($this->p->t('global', 'ablehnen')); ?>
</button>
<button id="approveAnrechnungDetail-approve-anrechnung-ask" class="btn btn-primary btn-w200"
type="button"
<?php echo $anrechnungData->status_kurzbz == 'inProgressDP' ? '' : 'disabled' ?>>
<button id="approveAnrechnungDetail-approve-anrechnung-ask"
class="me-1 btn btn-primary btn-w200" type="button" <?php echo $anrechnungData->status_kurzbz == 'inProgressDP' ? '' : 'disabled' ?>>
<?php echo ucfirst($this->p->t('global', 'genehmigen')); ?>
</button>
</div>
</div>
</div>
<br><br><br><br>
</div>
<div class="col-xs-4">
</div>
<div class="col-4">
<!-- -Statusleiste -->
<div class="alert text-center">
Status: <b><span class="text-uppercase" id="approveAnrechnungDetail-status_kurzbz"
data-status_kurzbz="<?php echo $anrechnungData->status_kurzbz ?>">
<?php echo $anrechnungData->status; ?>
</span></b>
</div>
<br>
<div class="mb-5 alert text-center">
Status: <b><span class="text-uppercase" id="approveAnrechnungDetail-status_kurzbz"
data-status_kurzbz="<?php echo $anrechnungData->status_kurzbz ?>">
<?php echo $anrechnungData->status; ?>
</span></b>
</div>
<!-- Infopanels -->
<?php $this->load->view('lehre/anrechnung/reviewAnrechnungInfo'); ?>
</div>
</div>
</div>
</div>
</div><!--end container-fluid-->
</div><!--end container-fluid-->
</div><!--end page-wrapper-->
<?php
@@ -4,16 +4,18 @@ $includesArray = array(
'title' => $this->p->t('anrechnung', 'anrechnungenGenehmigen'),
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'bootstrap5' => true,
'fontawesome4' => true,
'tabulator4' => true,
'tabulator5' => true,
'tabulator5JQuery' => true,
'ajaxlib' => true,
'dialoglib' => true,
'cis'=>true,
'tablewidget' => true,
'phrases' => array(
'global' => array(
'begruendung',
'zgv'
'zgv'
),
'anrechnung' => array(
'nachweisdokumente',
@@ -48,7 +50,7 @@ $includesArray = array(
'empfehlungWurdeAngefordertAusnahmeWoKeineLektoren',
'anrechnungenWurdenGenehmigt',
'anrechnungenWurdenAbgelehnt',
'nurLeseberechtigung'
'nurLeseberechtigung'
),
'person' => array(
'student',
@@ -79,8 +81,11 @@ $includesArray = array(
)
),
'customJSs' => array(
'public/js/bootstrapper.js',
//'public/js/bootstrapper5.js',
'public/js/lehre/anrechnung/approveAnrechnungUebersicht.js'
),
'customCSSs' => array(
'public/css/lehre/anrechnung.css'
)
);
@@ -99,20 +104,23 @@ if (defined("CIS4")) {
<div id="page-wrapper">
<div class="container-fluid">
<!-- title -->
<!-- header -->
<div class="row">
<div class="col-lg-12 page-header">
<h3>
<div class="col-lg-12 my-4 border-bottom">
<h3 class="fw-normal ">
<?php echo $this->p->t('anrechnung', 'anrechnungenGenehmigen'); ?>
<small>| <?php echo ucfirst($this->p->t('global', 'uebersicht')); ?></small>
<small class="text-secondary fs-6">| <?php echo ucfirst($this->p->t('global', 'uebersicht')); ?></small>
</h3>
</div>
</div>
<!-- end header -->
<!-- dropdown studiensemester -->
<div class="row">
<div class="col-lg-12">
<form id="formApproveAnrechnungUebersicht" class="form-inline" action="" method="get" data-readonly="<?php echo json_encode($hasReadOnlyAccess)?>" data-createaccess="<?php echo json_encode($hasCreateAnrechnungAccess)?>">
<div class="form-group">
<form id="formApproveAnrechnungUebersicht" class="row align-items-center" action="" method="get" data-readonly="<?php echo json_encode($hasReadOnlyAccess)?>" data-createaccess="<?php echo json_encode($hasCreateAnrechnungAccess)?>">
<div class="col-auto">
<?php
echo $this->widgetlib->widget(
'Studiensemester_widget',
@@ -121,76 +129,81 @@ if (defined("CIS4")) {
),
array(
'name' => 'studiensemester',
'id' => 'studiensemester'
'id'=>'studiensemester',
'class'=>'form-select w-auto ',
)
);
?>
</div>
<button type="submit"
class="btn btn-default form-group"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
class="btn btn-outline-secondary col-auto"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
</form>
</div>
</div>
<!-- Tabelle -->
<div class="row">
<div class="col-xs-12">
<div class="row mb-4">
<div class="col-12">
<?php $this->load->view('lehre/anrechnung/approveAnrechnungUebersichtData.php'); ?>
</div>
</div>
<!-- Genehmigen / Ablehnen Panel -->
<div class="row">
<div class="panel panel-default panel-body" style="display: none"
<div class="border border-1 mb-4" style="display: none"
id="approveAnrechnungUebersicht-begruendung-panel">
<div>
<h4 class="panel panel-body panel-danger text-danger"><?php echo $this->p->t('anrechnung', 'genehmigungenNegativQuestion'); ?></h4>
&nbsp;<b><?php echo $this->p->t('anrechnung', 'bitteBegruendungAngeben'); ?>
<span class="text-danger">
<?php echo $this->p->t('anrechnung', 'begruendungWirdFuerAlleUebernommen'); ?>
</span></b>
<br><br>
<ol class="list-group">
<div class="mb-4 col-12">
<h4 class="card card-body border-danger text-danger my-3"><?php echo $this->p->t('anrechnung', 'genehmigungenNegativQuestion'); ?></h4>
<div class="mb-4">
<b><?php echo $this->p->t('anrechnung', 'bitteBegruendungAngeben'); ?>
<span class="text-danger">
<?php echo $this->p->t('anrechnung', 'begruendungWirdFuerAlleUebernommen'); ?>
</span></b>
</div>
<ol class="list-group mb-4">
<li class="list-group-item"><?php echo $this->p->t('anrechnung', 'genehmigungNegativPruefungNichtMoeglich'); ?>
<span class="btn-copyIntoTextarea pull-right" data-toggle="tooltip" data-placement="left"
<span role="button" class="btn-copyIntoTextarea float-end" data-bs-toggle="tooltip" data-bs-placement="left"
title="<?php echo $this->p->t('ui', 'textUebernehmen'); ?>">
<i class="fa fa-clipboard fa-lg" aria-hidden="true"></i>
</span>
</li>
<li class="list-group-item"><?php echo $this->p->t('anrechnung', 'genehmigungNegativEctsHoechstgrenzeUeberschritten'); ?>
<span class="btn-copyIntoTextarea pull-right" data-toggle="tooltip" data-placement="left"
<span role="button" class="btn-copyIntoTextarea float-end" data-bs-toggle="tooltip" data-bs-placement="left"
title="<?php echo $this->p->t('ui', 'textUebernehmen'); ?>">
<i class="fa fa-clipboard fa-lg" aria-hidden="true"></i>
</span>
</li>
<li class="list-group-item disabled"><?php echo $this->p->t('anrechnung', 'genehmigungNegativKenntnisseNichtGleichwertigWeilHinweis'); ?></li>
<li class="list-group-item list-group-item-secondary"><?php echo $this->p->t('anrechnung', 'genehmigungNegativKenntnisseNichtGleichwertigWeilHinweis'); ?></li>
</ol>
<textarea class="form-control" name="begruendung" id="approveAnrechnungUebersicht-begruendung"
rows="2"
placeholder="<?php echo $this->p->t('anrechnung', 'textUebernehmenOderEigenenBegruendungstext'); ?>" required></textarea>
</div>
<br>
<!-- Action Button 'Abbrechen'-->
<div class="pull-right">
<div class="mb-4 d-flex justify-content-end" >
<button id="approveAnrechnungUebersicht-begruendung-abbrechen"
class="btn btn-default btn-w200" type="reset">
class="me-1 btn btn-outline-secondary btn-w200 " type="reset">
<?php echo ucfirst($this->p->t('ui', 'abbrechen')); ?>
</button>
<button id="approveAnrechnungUebersicht-reject-anrechnungen-confirm"
class="btn btn-primary btn-w200" type="button">
class="btn btn-primary btn-w200 " type="button">
<?php echo ucfirst($this->p->t('ui', 'bestaetigen')); ?>
</button>
</div>
</div>
<div class="panel panel-default panel-body" style="display: none"
<div class="border border-1 mb-4" style="display: none"
id="approveAnrechnungUebersicht-genehmigung-panel">
<div>
<h4 class="panel panel-body panel-success text-success"><?php echo $this->p->t('anrechnung', 'genehmigungenPositivQuestion'); ?></h4>
&ensp;<?php echo $this->p->t('anrechnung', 'genehmigungenPositiv'); ?><br><br>
<div class="mb-4">
<h4 class="card card-body border-success text-success my-3"><?php echo $this->p->t('anrechnung', 'genehmigungenPositivQuestion'); ?></h4>
<div class="ps-2 mb-4"><?php echo $this->p->t('anrechnung', 'genehmigungenPositiv'); ?></div>
</div>
<br>
<!-- Action Button 'Abbrechen'-->
<div class="pull-right">
<div class="mb-4 d-flex justify-content-end">
<button id="approveAnrechnungUebersicht-empfehlung-abbrechen"
class="btn btn-default btn-w200" type="reset">
class="me-1 btn btn-outline-secondary btn-w200" type="reset">
<?php echo ucfirst($this->p->t('ui', 'abbrechen')); ?>
</button>
<button id="approveAnrechnungUebersicht-approve-anrechnungen-confirm"
@@ -203,57 +216,58 @@ if (defined("CIS4")) {
<!-- Filter buttons / Submit buttons-->
<div class="row">
<!-- Filter buttons -->
<div class="col-xs-4 col-md-5">
<div class="btn-toolbar" role="toolbar">
<div class="col-12 col-md-5">
<div class="btn-toolbar " role="toolbar">
<div class="btn-group" role="group">
<button id="show-inProgressDP" class="btn btn-default btn-clearfilter" type="button"
data-toggle="tooltip" data-placement="left"
<button id="show-inProgressDP" class="btn btn-outline-secondary btn-clearfilter" type="button"
data-bs-toggle="tooltip" data-bs-placement="left"
title="<?php echo $this->p->t('ui', 'alleInBearbeitungSTGL'); ?>">
<i class='fa fa-eye'></i>
</button>
<button id="show-inProgressLektor" class="btn btn-default btn-clearfilter" type="button"
data-toggle="tooltip" data-placement="left"
<button id="show-inProgressLektor" class="btn btn-outline-secondary btn-clearfilter" type="button"
data-bs-toggle="tooltip" data-bs-placement="left"
title="<?php echo $this->p->t('ui', 'alleInBearbeitungLektor'); ?>"><i
class='fa fa-clock-o'></i>
</button>
<button id="show-recommended" class="btn btn-default btn-clearfilter" type="button"
data-toggle="tooltip" data-placement="left"
<button id="show-recommended" class="btn btn-outline-secondary btn-clearfilter" type="button"
data-bs-toggle="tooltip" data-bs-placement="left"
title="<?php echo $this->p->t('ui', 'nurEmpfohleneAnzeigen'); ?>"><i
class='fa fa-thumbs-o-up'></i>
</button>
<button id="show-not-recommended" class="btn btn-default btn-clearfilter" type="button"
data-toggle="tooltip" data-placement="left"
<button id="show-not-recommended" class="btn btn-outline-secondary btn-clearfilter" type="button"
data-bs-toggle="tooltip" data-bs-placement="left"
title="<?php echo $this->p->t('ui', 'nurNichtEmpfohleneAnzeigen'); ?>"><i
class='fa fa-thumbs-o-down'></i>
</button>
<button id="show-approved" class="btn btn-default btn-clearfilter" type="button"
data-toggle="tooltip" data-placement="left"
<button id="show-approved" class="btn btn-outline-secondary btn-clearfilter" type="button"
data-bs-toggle="tooltip" data-bs-placement="left"
title="<?php echo $this->p->t('ui', 'nurGenehmigteAnzeigen'); ?>"><i
class='fa fa-check'></i>
</button>
<button id="show-rejected" class="btn btn-default btn-clearfilter" type="button"
data-toggle="tooltip" data-placement="left"
<button id="show-rejected" class="btn btn-outline-secondary btn-clearfilter" type="button"
data-bs-toggle="tooltip" data-bs-placement="left"
title="<?php echo $this->p->t('ui', 'nurAbgelehnteAnzeigen'); ?>"><i
class='fa fa-times'></i>
</button>
</div>
<a type="button" id="approveAnrechnungUebersicht-create-anrechnung" class="btn btn-default" style="margin-left: 20px;" href='<?php echo site_url('lehre/anrechnung/createAnrechnung') ?>' target='_blank'>
<a type="button" id="approveAnrechnungUebersicht-create-anrechnung" class="btn btn-outline-secondary ms-4" href='<?php echo site_url('lehre/anrechnung/createAnrechnung') ?>' target='_blank'>
<i class='fa fa-plus' aria-hidden='true'></i> <?php echo $this->p->t('global', 'antragAnlegen'); ?>
</a>
</div>
</div>
<!-- Action Buttons 'Genehmigen', Ablehnen, 'Empfehlung anfordern'-->
<div class="col-xs-8 col-md-7">
<div class="pull-right">
<div class="col-12 col-md-7">
<div class="d-flex ">
<button id="approveAnrechnungUebersicht-request-recommendation"
class="btn btn-default btn-w200 btn-mr50" type="button">
class="btn btn-outline-secondary btn-w200 me-5" type="button">
<?php echo ucfirst($this->p->t('anrechnung', 'empfehlungAnfordern')); ?></button>
<button id="approveAnrechnungUebersicht-reject-anrechnungen-ask"
class="btn btn-danger btn-w200" type="button">
class="btn btn-danger btn-w200 me-1" type="button">
<?php echo ucfirst($this->p->t('global', 'ablehnen')); ?></button>
<button id="approveAnrechnungUebersicht-approve-anrechnungen-ask"
class="btn btn-primary btn-w200" type="button">
<?php echo ucfirst($this->p->t('global', 'genehmigen')); ?></button>
<?php echo ucfirst($this->p->t('global', 'genehmigen')); ?></button>
</div>
</div>
</div>
@@ -4,7 +4,7 @@ const ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR = 'inProgressLektor';
$STUDIENSEMESTER = $studiensemester_selected;
$STUDIENGAENGE_ENTITLED = implode(', ', $studiengaenge_entitled); // alle STG mit Lese- und Schreibberechtigung
$ORGANISATIONSEINHEITEN_SCHREIBBERECHTIGT = "'". implode('\',\'', $oes_schreibberechtigt). "'"; // alle OE nur mit Schreibberechtigung; singlequote für jeden string notwendig
$ORGANISATIONSEINHEITEN_SCHREIBBERECHTIGT = "'" . implode('\',\'', $oes_schreibberechtigt) . "'"; // alle OE nur mit Schreibberechtigung; singlequote für jeden string notwendig
$LANGUAGE_INDEX = getUserLanguage() == 'German' ? '1' : '2';
$query = '
@@ -109,9 +109,8 @@ $query = '
LIMIT 1)
END "empfehlungsanfrageAm",';
if ($configFachbereichsleitung === TRUE)
{
$query.= ' CASE
if ($configFachbereichsleitung === TRUE) {
$query .= ' CASE
WHEN (anrechnungen.empfehlung_anrechnung IS NULL AND anrechnungen.status_kurzbz = \'' . ANRECHNUNGSTATUS_PROGRESSED_BY_STGL . '\') THEN NULL
ELSE
(SELECT COALESCE(
@@ -136,10 +135,8 @@ if ($configFachbereichsleitung === TRUE)
) as tmp_empfehlungsanfrageEmpfaenger
)
END "empfehlungsanfrageAn"';
}
else
{
$query.= ' CASE
} else {
$query .= ' CASE
WHEN (anrechnungen.empfehlung_anrechnung IS NULL AND anrechnungen.status_kurzbz = \'' . ANRECHNUNGSTATUS_PROGRESSED_BY_STGL . '\') THEN NULL
ELSE
(SELECT COALESCE(
@@ -164,7 +161,7 @@ else
END "empfehlungsanfrageAn"';
}
$query.= ' FROM anrechnungen
$query .= ' FROM anrechnungen
JOIN lehre.tbl_anrechnungstatus as anrechnungstatus ON (anrechnungstatus.status_kurzbz = anrechnungen.status_kurzbz)
WHERE studiensemester_kurzbz = \'' . $STUDIENSEMESTER . '\'
AND studiengang_kz IN (' . $STUDIENGAENGE_ENTITLED . ')
@@ -172,6 +169,7 @@ $query.= ' FROM anrechnungen
$filterWidgetArray = array(
'query' => $query,
'bootstrapVersion' => 5,
'tableUniqueId' => 'approveAnrechnungUebersicht',
'requiredPermissions' => 'lehre/anrechnung_genehmigen',
'datasetRepresentation' => 'tabulator',
@@ -189,8 +187,8 @@ $filterWidgetArray = array(
ucfirst($this->p->t('lehre', 'lehrveranstaltung')),
'ECTS (LV)',
'ECTS (LV + Bisher)',
'ECTS (Bisher schulisch)',
'ECTS (Bisher beruflich',
'ECTS (Bisher schulisch)',
'ECTS (Bisher beruflich',
ucfirst($this->p->t('global', 'begruendung')),
ucfirst($this->p->t('person', 'studentIn')),
ucfirst($this->p->t('anrechnung', 'nachweisdokumente')),
@@ -200,46 +198,45 @@ $filterWidgetArray = array(
ucfirst($this->p->t('anrechnung', 'empfehlung')),
'status_kurzbz',
'Status',
'PrestudentID',
'PrestudentID',
ucfirst($this->p->t('anrechnung', 'empfehlungsanfrageAm')),
ucfirst($this->p->t('anrechnung', 'empfehlungsanfrageAn'))
),
'datasetRepOptions' => '{
height: func_height(this),
layout: "fitColumns", // fit columns to width of table
persistenceID: "approveAnrechnungUebersicht_V1",
autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated
headerFilterPlaceholder: " ",
index: "anrechnung_id", // assign specific column as unique id (important for row indexing)
index: "anrechnung_id", // assign specific column as unique id (important for row indexing)
selectable: true, // allow row selection
selectableRangeMode: "click", // allow range selection using shift end click on end of range
selectablePersistence:false, // deselect previously selected rows when table is filtered, sorted or paginated
tableBuilt: function(){
func_tableBuilt(this);
},
tableWidgetFooter: {
selectButtons: true
selectButtons: true // tableWidgetFooter properties are checked in _renderTabulatorFooterHTML function
},
selectableCheck: function(row){
return func_selectableCheck(row);
},
rowFormatter:function(row){
func_rowFormatter(row);
},
rowSelectionChanged:function(data, rows){
func_rowSelectionChanged(data, rows);
},
tooltips: function(cell){
return func_tooltips(cell);
}
rowFormatter:function(row){
return func_rowFormatter(row);
},
columnDefaults:{
tooltip:func_tooltips,
headerFilterPlaceholder: " ",
}
}', // tabulator properties
'datasetRepFieldsDefs' => '{
anrechnung_id: {visible: false, headerFilter:"input"},
lehrveranstaltung_id: {visible: false, headerFilter:"input"},
begruendung_id: {visible: false, headerFilter:"input"},
dms_id: {visible: false, headerFilter:"input"},
schreibberechtigt: {
formatter:"tickCross", align:"center",
formatter:"tickCross", hozAlign:"center",
headerFilter:"tickCross", headerFilterParams:{tristate: true}, headerFilterFunc: hf_schreibberechtigt
},
studiensemester_kurzbz: {visible: false, headerFilter:"input"},
@@ -248,25 +245,26 @@ $filterWidgetArray = array(
orgform_kurzbz: {headerFilter:"input"},
ausbildungssemester: {headerFilter:"input"},
lv_bezeichnung: {headerFilter:"input"},
ects: {headerFilter:"input", align:"center"},
ects: {headerFilter:"input", hozAlign:"center"},
ectsSumBisherUndNeu: {formatter: format_ectsSumBisherUndNeu},
ectsSumSchulisch: {visible: false, headerFilter:"input", align:"right"},
ectsSumBeruflich: {visible: false, headerFilter:"input", align:"right"},
ectsSumSchulisch: {visible: false, headerFilter:"input", hozAlign:"right"},
ectsSumBeruflich: {visible: false, headerFilter:"input", hozAlign:"right"},
begruendung: {headerFilter:"input", visible: true},
student: {headerFilter:"input"},
zgv: {headerFilter:"input"},
dokument_bezeichnung: {headerFilter:"input", formatter:"link", formatterParams: paramLookup_dokBez},
anmerkung_student: {headerFilter:"input"},
antragsdatum: {align:"center", headerFilter:"input", mutator: mut_formatStringDate},
empfehlung_anrechnung: {headerFilter:"input", align:"center", formatter: format_empfehlung_anrechnung, headerFilterFunc: hf_filterTrueFalse},
antragsdatum: {hozAlign:"center", headerFilter:"input", mutator: mut_formatStringDate},
empfehlung_anrechnung: {headerFilter:"input", hozAlign:"center", formatter: format_empfehlung_anrechnung, headerFilterFunc: hf_filterTrueFalse},
status_kurzbz: {visible: false, headerFilter:"input"},
status_bezeichnung: {headerFilter:"input"},
prestudent_id: {visible: false, headerFilter:"input"},
empfehlungsanfrageAm: {visible: false, align:"center", headerFilter:"input", mutator: mut_formatStringDate},
empfehlungsanfrageAm: {visible: false, hozAlign:"center", headerFilter:"input", mutator: mut_formatStringDate},
empfehlungsanfrageAn: {visible: false, headerFilter:"input"}
}', // col properties
);
echo $this->widgetlib->widget('TableWidget', $filterWidgetArray);
?>
?>
@@ -1,14 +1,16 @@
<?php
$includesArray =array(
$includesArray = array(
'title' => $this->p->t('anrechnung', 'neueAnrechnung'),
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'bootstrap5' => true,
'fontawesome4' => true,
'ajaxlib' => true,
'dialoglib' => true,
'tabulator4' => true,
'tabulator5' => true,
'tabulator5JQuery' => true,
'cis' => true,
'tablewidget' => true,
'phrases' => array(
'global' => array(
@@ -31,7 +33,7 @@ $includesArray =array(
'public/js/lehre/anrechnung/createAnrechnung.js'
),
'customCSSs' => array(
'public/css/lehre/anrechnung.css'
'public/css/lehre/anrechnung.css'
)
);
@@ -49,139 +51,141 @@ if (defined("CIS4")) {
?>
<div id="page-wrapper">
<div class="container-fluid">
<div class="container-fluid">
<!-- Title -->
<div class="row">
<div class="col-lg-12 page-header">
<h3>
<?php echo $this->p->t('anrechnung', 'neueAnrechnung'); ?>
<small>| <?php echo $this->p->t('global', 'antragAnlegen'); ?></small>
</h3>
</div>
</div>
<!-- Studiensemester Dropdown -->
<div class="row">
<div class="col-xs-12">
<form 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'
)
);
?>
<!-- Title -->
<div class="row my-4">
<div class="col-lg-12 border-bottom">
<h3 class="fw-normal">
<?php echo $this->p->t('anrechnung', 'neueAnrechnung'); ?>
<small class="text-secondary fs-6">| <?php echo $this->p->t('global', 'antragAnlegen'); ?></small>
</h3>
</div>
<button type="submit"
class="btn btn-default form-group">
<?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?>
</button>
</form>
</div>
</div>
</div>
<!-- StudentInnen Table -->
<div class="row">
<div class="col-lg-10">
<?php $this->load->view('lehre/anrechnung/createAnrechnungData.php'); ?>
</div>
</div>
<br><br>
<!-- FORM START ------------------------------------------------------------------------------------------------------->
<form id="createAnrechnung-form">
<input name="prestudent_id" id="prestudent_id" type="hidden" value="" data-prestudent_id = "" >
<input name="studiensemester_kurzbz" id="studiensemester_kurzbz" type="hidden" value="<?php echo $studiensemester_selected ?>">
<div class="row">
<div class="col-lg-10">
<table class="table table-condensed table-bordered">
<!-- StudentIn -->
<tr>
<th class="col-xs-5 col-lg-2"><label><?php echo $this->p->t('person', 'studentIn'); ?></label></th>
<td><span id="student" class="pl-15"></span></td>
</tr>
<!-- Selectmenu Lehrveranstaltungen -->
<tr>
<th class="col-xs-5 col-lg-2"><?php echo $this->p->t('lehre', 'lehrveranstaltung'); ?> *</th>
<td>
<select name="lehrveranstaltung_id" id="select-lehrveranstaltung" class="form-control select-w500">
<option value="" <?php echo set_select('lehrveranstaltung', '', true); ?> >
<?php echo $this->p->t('ui', 'bitteWaehlen'); ?>
</option>
</select>
</td>
</tr>
<!-- Select Anrechnungbegruendungen -->
<tr>
<th class="col-xs-5 col-lg-2"><?php echo $this->p->t('global', 'begruendung'); ?> *</th>
<td>
<select name="begruendung_id" id="select-begruendung" class="form-control select-w500">
<option value="" <?php echo set_select('begruendung', '', true); ?> >
<?php echo $this->p->t('ui', 'bitteWaehlen'); ?>
</option>
<?php foreach ($begruendungen as $begruendung) : ?>
<option value="<?php echo $begruendung->begruendung_id ?>"
<?php echo set_select('begruendung', $begruendung->begruendung_id); ?> >
<?php echo ucfirst($begruendung->bezeichnung) ?>
</option>
<?php endforeach; ?>
</select>
</td>
</tr>
<!-- Submit Herkunft der Kenntnisse -->
<tr>
<th class="col-xs-5 col-lg-2"><?php echo $this->p->t('anrechnung', 'herkunftDerKenntnisse'); ?></th>
<td>
<?php echo form_textarea(array(
'name' => 'herkunftKenntnisse',
'rows' => 1
)); ?>
</td>
</tr>
<!-- Submit Upload Nachweisdokumente -->
<tr>
<th class="col-xs-5 col-lg-2"><?php echo $this->p->t('anrechnung', 'nachweisdokumente'); ?> *</th>
<td>
<div><?php echo form_upload(array(
'name' => 'uploadfile',
'accept' => '.pdf',
'size' => '50',
'required' => 'required',
'enctype' => "multipart/form-data"
)); ?>
<!-- Studiensemester Dropdown -->
<div class="row my-4">
<div class="col-12">
<form class="row align-items-center" action="" method="get">
<div class="col-auto">
<?php
echo $this->widgetlib->widget(
'Studiensemester_widget',
array(
DropdownWidget::SELECTED_ELEMENT => $studiensemester_selected
),
array(
'name' => 'studiensemester',
'id' => 'studiensemester',
'class' => 'form-select w-auto ',
)
);
?>
</div>
<a class="pull-right" id="download-nachweisdokumente"></a>
</td>
</tr>
</table>
<button type="submit" class="btn btn-outline-secondary col-auto">
<?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?>
</button>
</form>
</div>
</div>
<!-- StudentInnen Table -->
<div class="row my-4">
<div class="col-lg-10">
<?php $this->load->view('lehre/anrechnung/createAnrechnungData.php'); ?>
</div>
</div>
<!-- FORM START ------------------------------------------------------------------------------------------------------->
<form id="createAnrechnung-form">
<input name="prestudent_id" id="prestudent_id" type="hidden" value="" data-prestudent_id="">
<input name="studiensemester_kurzbz" id="studiensemester_kurzbz" type="hidden"
value="<?php echo $studiensemester_selected ?>">
<div class="row my-4">
<div class="col-lg-10">
<table class="table table-condensed table-bordered mb-0">
<!-- StudentIn -->
<tr>
<th class="col-5 col-lg-2"><label><?php echo $this->p->t('person', 'studentIn'); ?></label>
</th>
<td><span id="student" class="ps-3"></span></td>
</tr>
<!-- Selectmenu Lehrveranstaltungen -->
<tr>
<th class="col-5 col-lg-2"><?php echo $this->p->t('lehre', 'lehrveranstaltung'); ?> *</th>
<td>
<select name="lehrveranstaltung_id" id="select-lehrveranstaltung"
class="form-select select-w500">
<option value="" <?php echo set_select('lehrveranstaltung', '', true); ?>>
<?php echo $this->p->t('ui', 'bitteWaehlen'); ?>
</option>
</select>
</td>
</tr>
<!-- Select Anrechnungbegruendungen -->
<tr>
<th class="col-5 col-lg-2"><?php echo $this->p->t('global', 'begruendung'); ?> *</th>
<td>
<select name="begruendung_id" id="select-begruendung" class="form-select select-w500">
<option value="" <?php echo set_select('begruendung', '', true); ?>>
<?php echo $this->p->t('ui', 'bitteWaehlen'); ?>
</option>
<?php foreach ($begruendungen as $begruendung): ?>
<option value="<?php echo $begruendung->begruendung_id ?>" <?php echo set_select('begruendung', $begruendung->begruendung_id); ?>>
<?php echo ucfirst($begruendung->bezeichnung) ?>
</option>
<?php endforeach; ?>
</select>
</td>
</tr>
<!-- Submit Herkunft der Kenntnisse -->
<tr>
<th class="col-5 col-lg-2"><?php echo $this->p->t('anrechnung', 'herkunftDerKenntnisse'); ?>
</th>
<td>
<?php echo form_textarea(
array(
'name' => 'herkunftKenntnisse',
'rows' => 1
)
); ?>
</td>
</tr>
<!-- Submit Upload Nachweisdokumente -->
<tr>
<th class="col-5 col-lg-2 "><?php echo $this->p->t('anrechnung', 'nachweisdokumente'); ?> *
</th>
<td class="d-flex input-group align-items-center">
<input class="form-control flex-fill" type="file" id="requestAnrechnung-uploadfile"
name="uploadfile" accept=".pdf" size="50"
data-maxsize="<?php echo (int) ini_get('upload_max_filesize') * 1024 * 1024 ?>"
required>
</td>
</tr>
</table>
</div>
</div>
<div class="row my-4">
<div class="col-lg-10">
<!-- Submit Button -->
<button class="btn btn-primary btn-w200 float-end" id="createAnrechnung-submit" type="submit"
value="submit">
<?php echo $this->p->t('global', 'antragAnlegen'); ?>
</button>
<!-- Open new Anrechnung Button (hidden by default) -->
<a type="button" class="btn btn-outline-secondary me-1 float-end visually-hidden"
id="createAnrechnung-openAnrechnung" target="_blank"></a>
</div>
</div>
</form>
<!-- FORM END --------------------------------------------------------------------------------------------------------->
</div>
</div>
<div class="row">
<div class="col-lg-10">
<!-- Submit Button -->
<button class="btn btn-primary btn-w200 pull-right" id="createAnrechnung-submit" type="submit" value="submit">
<?php echo $this->p->t('global', 'antragAnlegen'); ?>
</button>
<!-- Open new Anrechnung Button (hidden by default) -->
<a type="button" class="btn btn-default btn-mr10 pull-right hidden" id="createAnrechnung-openAnrechnung" target="_blank"></a>
</div>
</div>
</form>
<!-- FORM END --------------------------------------------------------------------------------------------------------->
</div>
</div>
<?php
if (defined("CIS4")) {
$this->load->view(
'templates/CISVUE-Footer',
@@ -37,6 +37,7 @@ $query = '
$filterWidgetArray = array(
'query' => $query,
'bootstrapVersion'=>5,
'tableUniqueId' => 'createAnrechnung',
'requiredPermissions' => 'lehre/anrechnung_anlegen',
'datasetRepresentation' => 'tabulator',
@@ -56,17 +57,13 @@ $filterWidgetArray = array(
layout: "fitColumns", // fit columns to width of table
persistentLayout:true,
autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated
headerFilterPlaceholder: " ",
index: "prestudent_id", // assign specific column as unique id (important for row indexing)
selectable: 1, // allow row selection
selectablePersistence:false, // deselect previously selected rows when table is filtered, sorted or paginated
rowSelected: function(row) {
func_rowSelected(row);
},
rowSelectionChanged:function(data, rows){
func_rowSelectionChanged(data, rows);
},
tableWidgetHeader: false
tableWidgetHeader: false,
columnDefaults:{
headerFilterPlaceholder: " ",
}
}',
'datasetRepFieldsDefs' => '{
prestudent_id: {visible: false, headerFilter:"input"},
@@ -10,33 +10,34 @@ $includesArray = array(
'title' => $this->p->t('anrechnung', 'antragStellen'),
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'bootstrap5' => true,
'fontawesome4' => true,
'ajaxlib' => true,
'dialoglib' => true,
'cis'=>true,
'phrases' => array(
'global' => array(
'anerkennungNachgewiesenerKenntnisse',
'antragStellen',
'antragWurdeGestellt',
'antragBereitsGestellt',
'antragWurdeGestellt',
'antragBereitsGestellt',
'bearbeitungGesperrt'
),
'ui' => array(
'hilfeZuDieserSeite',
'hochladen',
'inBearbeitung',
'neu',
'inBearbeitung',
'neu',
'maxZeichen',
'errorBestaetigungFehlt',
'errorBestaetigungFehlt',
'systemfehler',
'errorDokumentZuGross'
'errorDokumentZuGross'
),
'anrechnung' => array(
'deadlineUeberschritten',
'benotungDerLV',
'anrechnungEctsTextBeiUeberschreitung',
'anrechnungEctsTooltipTextBeiUeberschreitung'
'anrechnungEctsTextBeiUeberschreitung',
'anrechnungEctsTooltipTextBeiUeberschreitung'
),
'person' => array(
'student',
@@ -54,6 +55,9 @@ $includesArray = array(
'public/js/bootstrapper.js',
'public/js/lehre/anrechnung/requestAnrechnung.js'
),
'customCSSs' => array(
'public/css/lehre/anrechnung.css'
)
);
@@ -81,23 +85,23 @@ else
}
</style>
<div id="page-wrapper">
<div id="page-wrapper">
<div class="container-fluid">
<!-- header -->
<div class="row">
<div class="col-lg-12 page-header">
<h3>
<div class="col-lg-12 my-4 border-bottom">
<h3 class="fw-normal">
<?php echo $this->p->t('anrechnung', 'anerkennungNachgewiesenerKenntnisse'); ?>
<small>| <?php echo $this->p->t('anrechnung', 'antragStellen'); ?></small>
<small class="text-secondary fs-6">| <?php echo $this->p->t('anrechnung', 'antragStellen'); ?></small>
</h3>
</div>
</div>
<!-- end header-->
<div class="row">
<div class="col-xs-8">
<div class="col-8">
<!-- Antragsdaten, Dokument Upload, Notiz-->
<div class="row">
<div class="row mb-5">
<div class="col-lg-12">
<form id="requestAnrechnung-form">
<input type="hidden" name="anrechnung_id" id="anrechnung_id" value="<?php echo $anrechnungData->anrechnung_id ?>">
@@ -107,19 +111,19 @@ else
<input type="hidden" name="sumEctsSchulisch" value="<?php echo $antragData->sumEctsSchulisch ?>">
<input type="hidden" name="sumEctsBeruflich" value="<?php echo $antragData->sumEctsBeruflich ?>">
<!-- Antragsdaten -->
<div class="row">
<div class="row mb-3">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
<span class="text-uppercase"><b><?php echo $this->p->t('anrechnung', 'antrag'); ?></b></span>&emsp;
<span class="requestAnrechnung-anrechnungInfoTooltip" data-toggle="tooltip" data-placement="right"
title="<?php echo $this->p->t('anrechnung', 'anrechnungInfoTooltipText'); ?>">
<div class="card">
<div class="card-header">
<span class="text-uppercase fw-bold"><?php echo $this->p->t('anrechnung', 'antrag'); ?></span>&emsp;
<div class="d-inline" data-bs-toggle="tooltip" data-bs-placement="right"
data-bs-html="true" data-bs-title="<?php echo $this->p->t('anrechnung', 'anrechnungInfoTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</span>
<span class="pull-right"><?php echo $this->p->t('anrechnung', 'antragdatum'); ?>: <span
</div>
<span class="float-end"><?php echo $this->p->t('anrechnung', 'antragdatum'); ?>: <span
id="requestAnrechnung-antragdatum"><?php echo !empty($anrechnungData->anrechnung_id) ? $anrechnungData->insertamum : '-' ?></span></span>
</div>
<table class="panel-body table table-bordered table-condensed">
<table class="card-body table table-bordered table-condensed mb-0">
<tbody>
<tr>
<th><?php echo ucfirst($this->p->t('person', 'studentIn')); ?></th>
@@ -147,17 +151,17 @@ else
</tr>
<tr>
<th>
<?php echo $this->p->t('anrechnung', 'bisherAngerechneteEcts'); ?>
<span data-toggle="tooltip" data-placement="right"
title="<?php echo $this->p->t('anrechnung', 'anrechnungEctsTooltipText'); ?>">
<?php echo $this->p->t('anrechnung', 'bisherAngerechneteEcts'); ?>&emsp;
<div class="d-inline" data-bs-toggle="tooltip" data-bs-placement="right"
data-bs-html="true" data-bs-title="<?php echo $this->p->t('anrechnung', 'anrechnungEctsTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</span>
</div>
</th>
<td colspan="3">
Total ECTS: <span id="sumEctsTotal"><?php echo number_format($antragData->sumEctsSchulisch + $antragData->sumEctsBeruflich, 1) ?></span>
[ Schulisch: <span id="sumEctsSchulisch"><?php echo $antragData->sumEctsSchulisch ?></span> |
Beruflich: <span id="sumEctsBeruflich"><?php echo $antragData->sumEctsBeruflich ?></span> ]
<span id="requestAnrechnung-maxEctsUeberschrittenMsg"></span>
<div class="p-1 align-items-center" id="requestAnrechnung-maxEctsUeberschrittenMsg"></div>
</td>
</tr>
<tr>
@@ -176,84 +180,88 @@ else
</div>
</div>
<!-- Antrag mit Checkboxen -->
<div class="row">
<div class="row mb-3">
<div class="col-lg-12">
<div class="well" style="border:solid black 3px">
<span><?php echo $this->p->t('anrechnung', 'antragStellenText'); ?></span>&emsp;
<div class="checkbox">
<label>
<input type="radio" name="begruendung" value="1" required
<?php echo $anrechnungData->begruendung_id == '1' ? 'checked' : ''; ?> />
<div class="border border-dark border-3 rounded p-3" >
<p ><?php echo $this->p->t('anrechnung', 'antragStellenText'); ?></p>
<div class="ps-3 ">
<div class="form-check mb-1">
<input class="form-check-input" type="radio" name="begruendung" value="1" <?php echo $anrechnungData->begruendung_id == '1' ? 'checked' : ''; ?> required />
<?php echo $this->p->t('anrechnung', 'antragStellenWegenZeugnis'); ?>&emsp;
<span id="requestAnrechnung-anrechnungGrundZeugnisTooltip" data-toggle="tooltip" data-placement="right"
title="<?php echo $this->p->t('anrechnung', 'anrechnungGrundZeugnisTooltipText'); ?>" />
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</span>
</label>
</div>
<div class="checkbox">
<label>
<input type="radio" name="begruendung" value="5" required
<?php echo $anrechnungData->begruendung_id == '5' ? 'checked' : ''; ?> />
<?php echo $this->p->t('anrechnung', 'antragStellenWegenHochschulzeugnis'); ?>&emsp;
<span id="requestAnrechnung-anrechnungGrundHochschulzeugnisTooltip" data-toggle="tooltip" data-placement="right"
title="<?php echo $this->p->t('anrechnung', 'anrechnungGrundZeugnisTooltipText'); ?>" />
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</span>
</label>
</div>
<div class="checkbox">
<label>
<input type="radio" name="begruendung" value="4" required
<?php echo $anrechnungData->begruendung_id == '4' ? 'checked' : ''; ?>>
<div class="d-inline" id="requestAnrechnung-anrechnungGrundZeugnisTooltip" data-bs-toggle="tooltip" data-bs-placement="right" data-bs-html="true"
data-bs-title="<?php echo $this->p->t('anrechnung', 'anrechnungGrundZeugnisTooltipText'); ?>" >
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</div>
</div>
<div class="form-check mb-1">
<input class="form-check-input" type="radio" name="begruendung" value="5" <?php echo $anrechnungData->begruendung_id == '5' ? 'checked' : ''; ?> required />
<?php echo $this->p->t('anrechnung', 'antragStellenWegenHochschulzeugnis'); ?>&emsp;
<div class="d-inline" id="requestAnrechnung-anrechnungGrundHochschulzeugnisTooltip" data-bs-toggle="tooltip" data-bs-placement="right" data-bs-html="true"
data-bs-title="<?php echo $this->p->t('anrechnung', 'anrechnungGrundZeugnisTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</div>
</div>
<div class="form-check mb-1">
<input class="form-check-input" type="radio" name="begruendung" value="4" <?php echo $anrechnungData->begruendung_id == '4' ? 'checked' : ''; ?> required />
<?php echo $this->p->t('anrechnung', 'antragStellenWegenPraxis'); ?>&emsp;
<span id="requestAnrechnung-anrechnungGrundBerufTooltip" data-toggle="tooltip" data-placement="right"
title="<?php echo $this->p->t('anrechnung', 'anrechnungGrundBerufTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</span>
</label>
<div class="d-inline" id="requestAnrechnung-anrechnungGrundBerufTooltip" data-bs-toggle="tooltip" data-bs-placement="right" data-bs-html="true"
data-bs-title="<?php echo $this->p->t('anrechnung', 'anrechnungGrundBerufTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<?php if ($this->config->item('explain_equivalence')): ?>
<!-- Begruendung ECTS -->
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
<b><?php echo $this->p->t('anrechnung', 'begruendungEcts'); ?></b>&emsp;
<span class="requestAnrechnung-anrechnungInfoTooltip" data-toggle="tooltip" data-placement="right"
title="<?php echo $this->p->t('anrechnung', 'anrechnungBegruendungEctsTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</span>
</div>
<div class="panel-body">
<textarea class="form-control" name="begruendung_ects" rows="1" id="requestAnrechnung-begruendungEcts"
maxlength="<?php echo CHAR_LENGTH150 ?>" required><?php echo $anrechnungData->begruendung_ects; ?></textarea>
<small><span class="text-muted pull-right"><?php echo $this->p->t('ui', 'maxZeichen'); ?> :<span id="requestAnrechnung-begruendungEcts-charCounter"><?php echo CHAR_LENGTH150 ?></span></span></small>
<!-- Begruendung ECTS -->
<div class="row mb-3">
<div class="col-lg-12">
<div class="card">
<div class="card-header">
<span class="fw-bold"><?php echo $this->p->t('anrechnung', 'begruendungEcts'); ?></span>&emsp;
<div class="d-inline" data-bs-toggle="tooltip" data-bs-placement="right" data-bs-html="true" data-bs-title="<?php echo $this->p->t('anrechnung', 'anrechnungBegruendungEctsTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</div>
</div>
<div class="card-body">
<textarea class="form-control" name="begruendung_ects" rows="1" id="requestAnrechnung-begruendungEcts"
maxlength="<?php echo CHAR_LENGTH150 ?>" required><?php echo $anrechnungData->begruendung_ects; ?></textarea>
<small><span class="text-muted float-end"><?php echo $this->p->t('ui', 'maxZeichen'); ?> :<span id="requestAnrechnung-begruendungEcts-charCounter"><?php echo CHAR_LENGTH150 ?></span></span></small>
</div>
</div>
</div>
<!-- Begruendung LV Inhalt -->
<div class="row">
</div>
<!-- Begruendung LV Inhalt -->
<div class="row mb-3">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
<b><?php echo $this->p->t('anrechnung', 'begruendungLvinhalt'); ?></b>&emsp;
<span class="requestAnrechnung-anrechnungInfoTooltip" data-toggle="tooltip" data-placement="right"
title="<?php echo $this->p->t('anrechnung', 'anrechnungBegruendungLvinhaltTooltipText'); ?>">
<div class="card">
<div class="card-header">
<span class="fw-bold"><?php echo $this->p->t('anrechnung', 'begruendungLvinhalt'); ?></span>&emsp;
<div class="d-inline" data-bs-toggle="tooltip" data-bs-placement="right"
data-bs-html="true" data-bs-title="<?php echo $this->p->t('anrechnung', 'anrechnungBegruendungLvinhaltTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</span>
</div>
</div>
<div class="panel-body">
<div class="card-body">
<textarea class="form-control" name="begruendung_lvinhalt" rows="7" id="requestAnrechnung-begruendungLvinhalt"
minlength="<?php echo CHAR_LENGTH500 ?>"
maxlength="<?php echo CHAR_LENGTH1000 ?>" required><?php echo $anrechnungData->begruendung_lvinhalt; ?></textarea>
<small><span class="text-muted pull-right">&nbsp;/&nbsp;<?php echo $this->p->t('ui', 'maxZeichen'); ?> :<span id="requestAnrechnung-begruendungLvinhalt-charCounterMax"><?php echo CHAR_LENGTH1000 ?></span></span></small>
<small><span class="text-muted pull-right"><?php echo $this->p->t('ui', 'fehlendeMinZeichen'); ?> :<span id="requestAnrechnung-begruendungLvinhalt-charCounterMin"><?php echo CHAR_LENGTH500 ?></span></span></small>
<small><span class="text-muted float-end">&nbsp;/&nbsp;<?php echo $this->p->t('ui', 'maxZeichen'); ?> :<span id="requestAnrechnung-begruendungLvinhalt-charCounterMax"><?php echo CHAR_LENGTH1000 ?></span></span></small>
<small><span class="text-muted float-end"><?php echo $this->p->t('ui', 'fehlendeMinZeichen'); ?> :<span id="requestAnrechnung-begruendungLvinhalt-charCounterMin"><?php echo CHAR_LENGTH500 ?></span></span></small>
</div>
</div>
</div>
@@ -261,95 +269,91 @@ else
<?php endif; ?>
<!-- Dokument Upload-->
<div class="row">
<div class="row mb-3">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
<b><?php echo $this->p->t('anrechnung', 'nachweisdokumente'); ?></b>&emsp;
<span class="requestAnrechnung-anrechnungInfoTooltip" data-toggle="tooltip" data-placement="right"
title="<?php echo $this->p->t('anrechnung', 'anrechnungGrundAllgemeinTooltipText'); ?>">
<div class="card">
<div class="card-header">
<span class="fw-bold"><?php echo $this->p->t('anrechnung', 'nachweisdokumente'); ?></span>&emsp;
<div class="d-inline" data-bs-toggle="tooltip" data-bs-placement="right" data-bs-html="true" data-bs-title="<?php echo $this->p->t('anrechnung', 'anrechnungGrundAllgemeinTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</span>
</div>
<div class="form-inline panel-body">
<div class="form-group">
<input type="file" id="requestAnrechnung-uploadfile"
name="uploadfile" accept=".pdf" size="50" data-maxsize="<?php echo (int)ini_get('upload_max_filesize') * 1024 * 1024 ?>"
required>
</div>
<span id="requestAnrechnung-uploadTooltip" data-toggle="tooltip" data-placement="right"
title="<?php echo $this->p->t('ui', 'uploadTooltipText'); ?>">
<i class="fa fa-lg fa-question-circle-o" aria-hidden="true"></i>
</span>
<a class="pull-right <?php echo !empty($anrechnungData->dms_id) ? '' : 'hidden' ?>"
id="requestAnrechnung-downloadDocLink"
href="<?php echo current_url() . '/download?dms_id=' . $anrechnungData->dms_id; ?>"
target="_blank"><?php echo htmlentities($anrechnungData->dokumentname) ?>
</a>
</div>
<div class=" card-body">
<div class="input-group d-flex align-items-center ">
<input class="form-control flex-fill" type="file" id="requestAnrechnung-uploadfile"
name="uploadfile" accept=".pdf" size="50" data-maxsize="<?php echo (int)ini_get('upload_max_filesize') * 1024 * 1024 ?>"
required>
<div class="mx-4 " id="requestAnrechnung-uploadTooltip" data-bs-toggle="tooltip" data-bs-placement="right" data-bs-html="true"
data-bs-title="<?php echo $this->p->t('ui', 'uploadTooltipText'); ?>">
<i class="fa fa-lg fa-question-circle-o" aria-hidden="true"></i>
</div>
<a class="mx-4 float-end <?php echo !empty($anrechnungData->dms_id) ? '' : 'visually-hidden' ?>"
id="requestAnrechnung-downloadDocLink"
href="<?php echo current_url() . '/download?dms_id=' . $anrechnungData->dms_id; ?>"
target="_blank"><?php echo htmlentities($anrechnungData->dokumentname) ?>
</a>
</div>
</div>
</div>
</div>
</div>
<!-- Herkunft der Kenntnisse -->
<div class="row">
<div class="row mb-3">
<div class="col-lg-12">
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
<b><?php echo $this->p->t('anrechnung', 'herkunftDerKenntnisse'); ?></b>&emsp;
<span class="requestAnrechnung-anrechnungInfoTooltip" data-toggle="tooltip" data-placement="right"
title="<?php echo $this->p->t('anrechnung', 'anrechnungInfoTooltipText'); ?>">
<div class="card">
<div class="card-header">
<span class="fw-bold"><?php echo $this->p->t('anrechnung', 'herkunftDerKenntnisse'); ?></span>&emsp;
<div class="d-inline" data-bs-toggle="tooltip" data-bs-placement="right" data-bs-html="true" data-bs-title="<?php echo $this->p->t('anrechnung', 'anrechnungInfoTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</span>
</div>
</div>
<div class="panel-body">
<div class="card-body">
<textarea class="form-control" name="anmerkung" rows="1" id="requestAnrechnung-herkunftDerKenntnisse"
maxlength="<?php echo CHAR_LENGTH125 ?>" required><?php echo $anrechnungData->anmerkung; ?></textarea>
<small><span class="text-muted pull-right"><?php echo $this->p->t('ui', 'maxZeichen'); ?> :<span id="requestAnrechnung-herkunftDerKenntnisse-charCounter"><?php echo CHAR_LENGTH125 ?></span></span></small>
<small><span class="text-muted float-end"><?php echo $this->p->t('ui', 'maxZeichen'); ?> :<span id="requestAnrechnung-herkunftDerKenntnisse-charCounter"><?php echo CHAR_LENGTH125 ?></span></span></small>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Bestaetigung-->
<div class="row">
<div class="row mb-3">
<div class="col-lg-12">
<div class="well" style="border:solid black 3px">
<div class="checkbox">
<label>
<input type="checkbox" name="bestaetigung" required>
<b><?php echo $this->p->t('anrechnung', 'bestaetigungstext'); ?></b>
</label>
</div>
<div class="border border-3 rounded border-dark p-3" >
<div class="form-check">
<input class="form-check-input border-3" type="checkbox" name="bestaetigung" required>
<small class=" fw-bold"><?php echo $this->p->t('anrechnung', 'bestaetigungstext'); ?></small>
</div>
</div>
</div>
</div>
<!-- Button 'Anrechnung beantragen'-->
<div class="pull-right">
<div class="float-end">
<input type="submit" id="requestAnrechnung-apply-anrechnung" class="btn btn-primary"
value="<?php echo $this->p->t('anrechnung', 'anrechnungBeantragen'); ?>">
</div>
</form>
</div>
</div>
<br><br><br><br>
</div>
<div class="col-xs-4">
<div class="col-4">
<!-- Status panel -->
<div class="alert text-center" id="requestAnrechnung-status">Status: <b><span class="text-uppercase" id="requestAnrechnung-status_kurzbz"
<div class="alert text-center" id="requestAnrechnung-status">Status: <span class="fw-bold text-uppercase" id="requestAnrechnung-status_kurzbz"
data-status_kurzbz="<?php echo $anrechnungData->status_kurzbz ?>">
<?php echo $anrechnungData->status; ?>
</span></b>
</span>
</div>
<!-- Sperregrund panel (hidden by default) -->
<div class="alert alert-danger text-center hidden" id="requestAnrechnung-sperre"
<div class="alert bg-danger-subtle text-center visually-hidden" id="requestAnrechnung-sperre"
data-anrechnung_id="<?php echo empty($anrechnungData->anrechnung_id) ? '' : $anrechnungData->anrechnung_id; ?>"
data-expired="<?php echo json_encode($is_expired); ?>"
data-blocked="<?php echo json_encode($is_blocked) ?>">
</div>
<br>
<?php $this->load->view('lehre/anrechnung/requestAnrechnungImportant'); ?>
</div>
</div>
@@ -1,70 +1,71 @@
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<!-- Beantragung: Fristen panel -->
<div class="panel panel-info">
<div class="panel-heading" role="tab" id="headingOne">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOne"
aria-expanded="true" aria-controls="collapseOne">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoFristenTitle'); ?>
</a>
</h4>
<div class="accordion" id="requestAnrechnungImportant">
<!-- Beantragung: Fristen panel -->
<div class="accordion-item">
<h2 class="accordion-header">
<div class="bg-info-subtle accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#Beantragung" aria-expanded="true" aria-controls="Beantragung">
<div class="d-flex">
<i class="me-2 fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoFristenTitle'); ?>
</div>
<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body">
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoFristenBody'); ?>
</div>
</div>
</h2>
<div id="Beantragung" class="accordion-collapse collapse show" data-bs-parent="#requestAnrechnungImportant">
<div class="accordion-body">
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoFristenBody'); ?>
</div>
</div>
<!-- Referenzbeispiele ECTS Berechnung panel -->
<div class="panel panel-info">
<div class="panel-heading" role="tab" id="headingBegruendung">
<h4 class="panel-title">
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseBegruendung"
aria-expanded="false" aria-controls="collapseBegruendung">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
</div>
<!-- Referenzbeispiele ECTS Berechnung panel -->
<div class="accordion-item">
<h2 class="accordion-header">
<div class="bg-info-subtle accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#Referenzbeispiele" aria-expanded="false" aria-controls="Referenzbeispiele">
<div class="d-flex">
<i class="me-2 fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoEctsBerechnungTitle'); ?>
</a>
</h4>
</div>
<div id="collapseBegruendung" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingBegruendung">
<div class="panel-body">
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoEctsBerechnungBody'); ?>
</div>
</div>
</h2>
<div id="Referenzbeispiele" class="accordion-collapse collapse" data-bs-parent="#requestAnrechnungImportant">
<div class="accordion-body">
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoEctsBerechnungBody'); ?>
</div>
</div>
<!-- Nachweisdokumente: Voraussetzung panel -->
<div class="panel panel-info">
<div class="panel-heading" role="tab" id="headingTwo">
<h4 class="panel-title">
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo"
aria-expanded="false" aria-controls="collapseTwo">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
</div>
<!-- Nachweisdokumente: Voraussetzung panel -->
<div class="accordion-item">
<h2 class="accordion-header">
<div class="d-flex">
<div class="bg-info-subtle accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#Nachweisdokumente" aria-expanded="false" aria-controls="Nachweisdokumente">
<i class="me-2 fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoNachweisdokumenteTitle'); ?>
</a>
</h4>
</div>
<div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo">
<div class="panel-body">
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoNachweisdokumenteBody'); ?>
</div>
</div>
</h2>
<div id="Nachweisdokumente" class="accordion-collapse collapse" data-bs-parent="#requestAnrechnungImportant">
<div class="accordion-body">
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoNachweisdokumenteBody'); ?>
</div>
</div>
</div>
<!-- Herkunft der Kenntnisse: Angaben panel -->
<div class="panel panel-info">
<div class="panel-heading" role="tab" id="headingThree">
<h4 class="panel-title">
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseThree"
aria-expanded="false" aria-controls="collapseThree">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
<div class="accordion-item">
<h2 class="accordion-header">
<div class="bg-info-subtle accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#HerkunftKenntnisse" aria-expanded="false" aria-controls="HerkunftKenntnisse">
<div class="d-flex">
<i class="me-2 fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoHerkunftKenntnisseTitle'); ?>
</a>
</h4>
</div>
<div id="collapseThree" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingThree">
<div class="panel-body">
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoHerkunftKenntnisseBody'); ?>
</div>
</div>
</h2>
<div id="HerkunftKenntnisse" class="accordion-collapse collapse" data-bs-parent="#requestAnrechnungImportant">
<div class="accordion-body">
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoHerkunftKenntnisseBody'); ?>
</div>
</div>
</div>
</div>
@@ -2,51 +2,53 @@
$this->load->config('anrechnung');
$includesArray = array(
'title' => $this->p->t('anrechnung', 'anrechnungenPruefen'),
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'ajaxlib' => true,
'dialoglib' => true,
'phrases' => array(
'global' => array(
'anerkennungNachgewiesenerKenntnisse',
'antragStellen'
array(
'title' => $this->p->t('anrechnung', 'anrechnungenPruefen'),
'jquery3' => true,
'jqueryui1' => true,
'bootstrap5' => true,
'cis' => true,
'fontawesome4' => true,
'ajaxlib' => true,
'dialoglib' => true,
'phrases' => array(
'global' => array(
'anerkennungNachgewiesenerKenntnisse',
'antragStellen'
),
'ui' => array(
'hilfeZuDieserSeite',
'hochladen',
'nichtSelektierbarAufgrundVon',
'systemfehler',
'bitteMindEinenAntragWaehlen',
'bitteBegruendungAngeben',
'bitteBegruendungVervollstaendigen',
'anrechnungenWurdenEmpfohlen',
'anrechnungenWurdenNichtEmpfohlen'
),
'person' => array(
'student',
'personenkennzeichen'
),
'lehre' => array(
'studiensemester',
'studiengang',
'lehrveranstaltung',
'ects',
'lektor',
),
'anrechnung' => array(
'empfehlungPositivConfirmed',
'empfehlungNegativConfirmed'
)
),
'ui' => array(
'hilfeZuDieserSeite',
'hochladen',
'nichtSelektierbarAufgrundVon',
'systemfehler',
'bitteMindEinenAntragWaehlen',
'bitteBegruendungAngeben',
'bitteBegruendungVervollstaendigen',
'anrechnungenWurdenEmpfohlen',
'anrechnungenWurdenNichtEmpfohlen'
'customCSSs' => array(
'public/css/lehre/anrechnung.css'
),
'person' => array(
'student',
'personenkennzeichen'
),
'lehre' => array(
'studiensemester',
'studiengang',
'lehrveranstaltung',
'ects',
'lektor',
),
'anrechnung' => array(
'empfehlungPositivConfirmed',
'empfehlungNegativConfirmed'
)
),
'customCSSs' => array(
'public/css/Tabulator.css'
),
'customJSs' => array(
'public/js/bootstrapper.js',
'public/js/lehre/anrechnung/reviewAnrechnungDetail.js'
'customJSs' => array(
'public/js/bootstrapper.js',
'public/js/lehre/anrechnung/reviewAnrechnungDetail.js'
)
);
@@ -65,104 +67,129 @@ if (defined("CIS4")) {
?>
<div id="page-wrapper">
<div class="container-fluid">
<!-- title -->
<div class="row">
<div class="col-lg-12 page-header">
<h3>
<div class="container-fluid">
<!-- title -->
<div class="row">
<div class="col-lg-12 my-4 border-bottom">
<h3 class="fw-normal ">
<?php echo $this->p->t('anrechnung', 'anrechnungenPruefen'); ?>
<small>| <?php echo $this->p->t('global', 'detailsicht'); ?></small>
</h3>
</div>
</div>
<small class="text-secondary fs-6">| <?php echo $this->p->t('global', 'detailsicht'); ?></small>
</h3>
</div>
</div>
<div class="row">
<div class="col-xs-8">
<div class="row">
<div class="col-8">
<!-- Antragsdaten -->
<div class="row">
<div class="row mb-4">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
<span class="text-uppercase"><b><?php echo $this->p->t('anrechnung', 'antrag'); ?></b></span>
<div class="card">
<div class="card-header">
<span
class="text-uppercase"><b><?php echo $this->p->t('anrechnung', 'antrag'); ?></b></span>
</span>&emsp;
<span class="reviewAnrechnungDetail-anrechnungInfoTooltip" data-toggle="tooltip"
data-placement="right"
title="<?php echo $this->p->t('anrechnung', 'anrechnungInfoTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</span>
<span class="pull-right"><?php echo $this->p->t('anrechnung', 'antragdatum'); ?>: <span
id="reviewAnrechnung-status"><?php echo !empty($anrechnungData->anrechnung_id) ? $anrechnungData->insertamum : '-' ?></span></span>
<span class="reviewAnrechnungDetail-anrechnungInfoTooltip" data-bs-toggle="tooltip"
data-bs-placement="right" data-bs-html="true"
title="<?php echo $this->p->t('anrechnung', 'anrechnungInfoTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</span>
<span class="float-end"><?php echo $this->p->t('anrechnung', 'antragdatum'); ?>: <span
id="reviewAnrechnung-status"><?php echo !empty($anrechnungData->anrechnung_id) ? $anrechnungData->insertamum : '-' ?></span></span>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-lg-4">
<table class="table table-bordered table-condensed table-fixed">
<table class="table table-bordered table-condensed table-fixed mb-0">
<tbody>
<tr>
<th class="col-xs-5"><?php echo ucfirst($this->p->t('person', 'studentIn')); ?></th>
<td><?php echo $antragData->vorname . ' ' . $antragData->nachname; ?></td>
</tr>
<tr>
<th class="col-xs-5"><?php echo $this->p->t('person', 'personenkennzeichen'); ?></th>
<td><?php echo $antragData->matrikelnr ?></td>
</tr>
<tr>
<th class="col-xs-5"><?php echo ucfirst($this->p->t('lehre', 'studiensemester')); ?></th>
<td><?php echo $antragData->studiensemester_kurzbz ?></td>
</tr>
<tr>
<th class="col-xs-5"><?php echo ucfirst($this->p->t('lehre', 'studiengang')); ?></th>
<td><?php echo $antragData->stg_bezeichnung ?></td>
</tr>
<tr>
<th class="col-xs-5"><?php echo $this->p->t('lehre', 'lehrveranstaltung'); ?></th>
<td><?php echo $antragData->lv_bezeichnung ?></td>
</tr>
<tr>
<th class="col-xs-5"><?php echo $this->p->t('lehre', 'ects'); ?></th>
<td><?php echo $antragData->ects ?></td>
</tr>
<tr>
<th class="col-xs-5"><?php echo $this->p->t('lehre', 'lektorInnen'); ?></th>
<td>
<?php $len = count($antragData->lektoren) - 1 ?>
<?php foreach ($antragData->lektoren as $key => $lektor): ?>
<?php echo $lektor->vorname . ' ' . $lektor->nachname;
echo $key === $len ? '' : ', ' ?>
<?php endforeach; ?>
</td>
</tr>
<tr>
<th class="col-5">
<?php echo ucfirst($this->p->t('person', 'studentIn')); ?>
</th>
<td><?php echo $antragData->vorname . ' ' . $antragData->nachname; ?>
</td>
</tr>
<tr>
<th class="col-5">
<?php echo $this->p->t('person', 'personenkennzeichen'); ?>
</th>
<td><?php echo $antragData->matrikelnr ?></td>
</tr>
<tr>
<th class="col-5">
<?php echo ucfirst($this->p->t('lehre', 'studiensemester')); ?>
</th>
<td><?php echo $antragData->studiensemester_kurzbz ?></td>
</tr>
<tr>
<th class="col-5">
<?php echo ucfirst($this->p->t('lehre', 'studiengang')); ?>
</th>
<td><?php echo $antragData->stg_bezeichnung ?></td>
</tr>
<tr>
<th class="col-5">
<?php echo $this->p->t('lehre', 'lehrveranstaltung'); ?>
</th>
<td><?php echo $antragData->lv_bezeichnung ?></td>
</tr>
<tr>
<th class="col-5"><?php echo $this->p->t('lehre', 'ects'); ?></th>
<td><?php echo $antragData->ects ?></td>
</tr>
<tr>
<th class="col-5"><?php echo $this->p->t('lehre', 'lektorInnen'); ?>
</th>
<td>
<?php $len = count($antragData->lektoren) - 1 ?>
<?php foreach ($antragData->lektoren as $key => $lektor): ?>
<?php echo $lektor->vorname . ' ' . $lektor->nachname;
echo $key === $len ? '' : ', ' ?>
<?php endforeach; ?>
</td>
</tr>
</tbody>
</table>
</div>
<div class="col-lg-8">
<table class="table table-bordered table-condensed table-fixed">
<table class="table table-bordered table-condensed table-fixed mb-0">
<tbody>
<tr>
<th class="col-xs-4"><?php echo ucfirst($this->p->t('global', 'zgv')); ?></th>
<td><?php echo $antragData->zgv ?></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'herkunftDerKenntnisse'); ?></th>
<td><?php echo $anrechnungData->anmerkung ?></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'nachweisdokumente'); ?></th>
<td>
<a href="<?php echo current_url() . '/download?dms_id=' . $anrechnungData->dms_id; ?>"
target="_blank"><?php echo htmlentities($anrechnungData->dokumentname) ?></a>
</td>
</tr>
<tr>
<th class="col-4">
<?php echo ucfirst($this->p->t('global', 'zgv')); ?>
</th>
<td><?php echo $antragData->zgv ?></td>
</tr>
<tr>
<th class="col-4">
<?php echo $this->p->t('anrechnung', 'herkunftDerKenntnisse'); ?>
</th>
<td><?php echo $anrechnungData->anmerkung ?></td>
</tr>
<tr>
<th class="col-4">
<?php echo $this->p->t('anrechnung', 'nachweisdokumente'); ?>
</th>
<td>
<a href="<?php echo current_url() . '/download?dms_id=' . $anrechnungData->dms_id; ?>"
target="_blank"><?php echo htmlentities($anrechnungData->dokumentname) ?></a>
</td>
</tr>
<?php if ($this->config->item('explain_equivalence')): ?>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'begruendungEctsLabel'); ?></th>
<td><span><?php echo $anrechnungData->begruendung_ects ?></span></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'begruendungLvinhaltLabel'); ?></th>
<td><span><?php echo $anrechnungData->begruendung_lvinhalt ?></span></td>
</tr>
<tr>
<th class="col-4">
<?php echo $this->p->t('anrechnung', 'begruendungEctsLabel'); ?>
</th>
<td><span><?php echo $anrechnungData->begruendung_ects ?></span>
</td>
</tr>
<tr>
<th class="col-4">
<?php echo $this->p->t('anrechnung', 'begruendungLvinhaltLabel'); ?>
</th>
<td><span><?php echo $anrechnungData->begruendung_lvinhalt ?></span>
</td>
</tr>
<?php endif; ?>
</tbody>
</table>
@@ -176,133 +203,158 @@ if (defined("CIS4")) {
<!-- Empfehlungsdaten -->
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default" id="reviewAnrechnungDetail-empfehlung" data-empfehlung="<?php echo json_encode($empfehlungData->empfehlung) ?>">
<div class="panel-heading">
<span class="text-uppercase"><b><?php echo $this->p->t('anrechnung', 'empfehlung'); ?></b></span>
<div class="pull-right">
<div class="card mb-4" id="reviewAnrechnungDetail-empfehlung"
data-empfehlung="<?php echo json_encode($empfehlungData->empfehlung) ?>">
<div class="card-header">
<span
class="text-uppercase"><b><?php echo $this->p->t('anrechnung', 'empfehlung'); ?></b></span>
<div class="float-end">
<?php echo $this->p->t('anrechnung', 'empfehlungVon'); ?>:
<span id="reviewAnrechnungDetail-empfehlungVon"><?php echo $empfehlungData->empfehlung_von ?></span>
<span
id="reviewAnrechnungDetail-empfehlungVon"><?php echo $empfehlungData->empfehlung_von ?></span>
&emsp;|&emsp;
<?php echo $this->p->t('anrechnung', 'empfehlungdatum'); ?>:
<span id="reviewAnrechnungDetail-empfehlungAm"><?php echo $empfehlungData->empfehlung_am ?></span>
<span
id="reviewAnrechnungDetail-empfehlungAm"><?php echo $empfehlungData->empfehlung_am ?></span>
</div>
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-lg-6">
<table class="table table-bordered table-condensed table-fixed">
<tbody>
<table class="table table-bordered table-condensed table-fixed mb-0">
<tbody>
<tr>
<th class="col-xs-4"><?php echo ucfirst($this->p->t('anrechnung', 'empfehlungsanfrageAm')); ?></th>
<td id="reviewAnrechnungDetail-empfehlungDetail-empfehlungsanfrageAm">
<th class="col-4">
<?php echo ucfirst($this->p->t('anrechnung', 'empfehlungsanfrageAm')); ?>
</th>
<td
id="reviewAnrechnungDetail-empfehlungDetail-empfehlungsanfrageAm">
<?php echo $empfehlungData->empfehlungsanfrageAm; ?>
</td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'empfehlungsanfrageAn'); ?></th>
<td id="reviewAnrechnungDetail-empfehlungDetail-empfehlungsanfrageAn">
<th class="col-4">
<?php echo $this->p->t('anrechnung', 'empfehlungsanfrageAn'); ?>
</th>
<td
id="reviewAnrechnungDetail-empfehlungDetail-empfehlungsanfrageAn">
<?php echo $empfehlungData->empfehlungsanfrageAn; ?>
</td>
</tr>
<tr>
<th class="col-xs-4"><?php echo ucfirst($this->p->t('anrechnung', 'empfehlungAm')); ?></th>
<th class="col-4">
<?php echo ucfirst($this->p->t('anrechnung', 'empfehlungAm')); ?>
</th>
<td id="reviewAnrechnungDetail-empfehlungDetail-empfehlungAm">
<?php echo $empfehlungData->empfehlung_am ?>
</td>
</tr>
<tr>
<th class="col-xs-4"><?php echo ucfirst($this->p->t('anrechnung', 'empfehlungVon')); ?></th>
<th class="col-4">
<?php echo ucfirst($this->p->t('anrechnung', 'empfehlungVon')); ?>
</th>
<td id="reviewAnrechnungDetail-empfehlungDetail-empfehlungVon">
<?php echo $empfehlungData->empfehlung_von ?>
</td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'empfehlung'); ?></th>
<th class="col-4">
<?php echo $this->p->t('anrechnung', 'empfehlung'); ?>
</th>
<td id="reviewAnrechnungDetail-empfehlungDetail-empfehlung"></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('global', 'begruendung'); ?></th>
<th class="col-4">
<?php echo $this->p->t('global', 'begruendung'); ?>
</th>
<td id="reviewAnrechnungDetail-empfehlungDetail-begruendung">
<?php echo htmlentities($empfehlungData->begruendung) ?>
</td>
</tr>
</tbody>
</table>
</tbody>
</table>
</div>
<div class="col-lg-6">
<div>
<label class="text-center">
<?php echo ucfirst($this->p->t('global', 'notizDerSTGL')); ?>
<label class="text-center mb-2">
<b><?php echo ucfirst($this->p->t('global', 'notizDerSTGL')); ?></b>
</label>
<textarea rows="4" readonly><?php echo htmlentities($empfehlungData->notiz) ?></textarea>
<textarea rows="4"
readonly><?php echo htmlentities($empfehlungData->notiz) ?></textarea>
</div>
</div>
</div>
</div>
<form>
<input type="hidden" name="anrechnung_id"
value="<?php echo $anrechnungData->anrechnung_id ?>">
value="<?php echo $anrechnungData->anrechnung_id ?>">
<!-- Nicht empfehlen panel (hidden) -->
<div class="panel panel-default panel-body" style="display: none" id="reviewAnrechnungDetail-begruendung-panel">
<div>
<h4 class="panel panel-body panel-danger text-danger"><?php echo $this->p->t('anrechnung', 'empfehlungNegativQuestion'); ?></h4>
<ul class="list-group">
<div class="card card-body" style="display: none"
id="reviewAnrechnungDetail-begruendung-panel">
<div class="mb-4">
<h4 class="card card-body bg-danger-subtle my-3">
<?php echo $this->p->t('anrechnung', 'empfehlungNegativQuestion'); ?>
</h4>
<ul class="list-group mb-4">
<li class="list-group-item">
<span><?php echo $this->p->t('anrechnung', 'empfehlungNegativPruefungNichtMoeglich'); ?></span>&emsp;
<span class="btn-copyIntoTextarea pull-right" data-toggle="tooltip"
data-placement="right"
title="<?php echo $this->p->t('ui', 'textUebernehmen'); ?>">
<span class="btn-copyIntoTextarea float-end" data-bs-toggle="tooltip"
data-bs-placement="right" data-bs-html="true"
title="<?php echo $this->p->t('ui', 'textUebernehmen'); ?>">
<i class="fa fa-clipboard fa-lg" aria-hidden="true"></i>
</span>
</li>
<li class="list-group-item">
<span><?php echo $this->p->t('anrechnung', 'empfehlungNegativKenntnisseNichtGleichwertigWeil'); ?></span>&emsp;
<span class="btn-copyIntoTextarea pull-right" data-toggle="tooltip"
data-placement="right"
title="<?php echo $this->p->t('ui', 'textUebernehmen'); ?>">
<span class="btn-copyIntoTextarea float-end" data-bs-toggle="tooltip"
data-bs-placement="right" data-bs-html="true"
title="<?php echo $this->p->t('ui', 'textUebernehmen'); ?>">
<i class="fa fa-clipboard fa-lg" aria-hidden="true"></i>
</span>
</li>
<li class="list-group-item" onclick="{ $(this).closest('div').find('textarea').val('').focus()}">
<span><?php echo $this->p->t('anrechnung', 'andereBegruendung'); ?></span>
</li>
<li class="list-group-item"
onclick="{ $(this).closest('div').find('textarea').val('').focus()}">
<span><?php echo $this->p->t('anrechnung', 'andereBegruendung'); ?></span>
</li>
</ul>
<textarea class="form-control" name="begruendung"
id="reviewAnrechnungDetail-begruendung"
rows="2"
placeholder="<?php echo $this->p->t('anrechnung', 'textUebernehmenOderEigenenBegruendungstext'); ?>"
required></textarea>
<textarea class="my-3 form-control" name="begruendung"
id="reviewAnrechnungDetail-begruendung" rows="2"
placeholder="<?php echo $this->p->t('anrechnung', 'textUebernehmenOderEigenenBegruendungstext'); ?>"
required></textarea>
</div>
<br>
<!-- Button Abbrechen & Bestaetigen-->
<div class="pull-right">
<div class="d-flex justify-content-end">
<button id="reviewAnrechnungDetail-begruendung-abbrechen"
class="btn btn-default btn-w200" type="reset">
class="me-1 btn btn-outline-secondary btn-w200" type="reset">
<?php echo ucfirst($this->p->t('ui', 'abbrechen')); ?>
</button>
<button id="reviewAnrechnungDetail-dont-recommend-anrechnung-confirm"
class="btn btn-primary btn-w200" type="button">
class="btn btn-primary btn-w200" type="button">
<?php echo ucfirst($this->p->t('ui', 'bestaetigen')); ?>
</button>
</div>
</div>
<!-- Empfehlen panel (hidden)-->
<div class="panel panel-default panel-body" style="display: none" id="reviewAnrechnungDetail-empfehlung-panel">
<div>
<h4 class="panel panel-body panel-success text-success"><?php echo $this->p->t('anrechnung', 'empfehlungPositivQuestion'); ?></h4>
&ensp;<?php echo $this->p->t('anrechnung', 'empfehlungPositivSubquestion'); ?>
<br><br>
<div class="card card-body" style="display: none"
id="reviewAnrechnungDetail-empfehlung-panel">
<div class="my-3">
<h4 class="card card-body bg-success-subtle">
<?php echo $this->p->t('anrechnung', 'empfehlungPositivQuestion'); ?>
</h4>
<span><?php echo $this->p->t('anrechnung', 'empfehlungPositivSubquestion'); ?>
</span>
</div>
<br>
<!-- Action Button Abbrechen & Bestaetigen-->
<div class="pull-right">
<div class="d-flex justify-content-end">
<button id="reviewAnrechnungDetail-empfehlung-abbrechen"
class="btn btn-default btn-w200" type="reset">
class="me-1 btn btn-outline-secondary btn-w200" type="reset">
<?php echo ucfirst($this->p->t('ui', 'abbrechen')); ?>
</button>
<button id="reviewAnrechnungDetail-recommend-anrechnung-confirm"
class="btn btn-primary btn-w200" type="button">
class="btn btn-primary btn-w200" type="button">
<?php echo ucfirst($this->p->t('ui', 'bestaetigen')); ?>
</button>
</div>
@@ -310,36 +362,39 @@ if (defined("CIS4")) {
</form>
</div>
<!-- Button Empfehlen / Nicht Empfehlen -->
<div class="pull-right">
<button id="reviewAnrechnungDetail-dont-recommend-anrechnung-ask" class="btn btn-danger btn-w200"
type="button"
<?php echo (is_null($empfehlungData->empfehlung) && $isEmpfehlungsberechtigt) ? '' : 'disabled' ?>>
<div class="row justify-content-center justify-content-sm-end align-items-center mb-5">
<div class="col-auto mb-1">
<button id="reviewAnrechnungDetail-dont-recommend-anrechnung-ask"
class=" btn btn-danger btn-w200" type="button" <?php echo (is_null($empfehlungData->empfehlung) && $isEmpfehlungsberechtigt) ? '' : 'disabled' ?>>
<?php echo ucfirst($this->p->t('anrechnung', 'nichtEmpfehlen')); ?>
</button>
<button id="reviewAnrechnungDetail-recommend-anrechnung-ask" class="btn btn-primary btn-w200"
type="button"
<?php echo (is_null($empfehlungData->empfehlung) && $isEmpfehlungsberechtigt) ? '' : 'disabled' ?>>
</div>
<div class="col-auto mb-1">
<button id="reviewAnrechnungDetail-recommend-anrechnung-ask"
class="btn btn-primary btn-w200" type="button" <?php echo (is_null($empfehlungData->empfehlung) && $isEmpfehlungsberechtigt) ? '' : 'disabled' ?>>
<?php echo ucfirst($this->p->t('anrechnung', 'empfehlen')); ?>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-4 ">
<div class="mb-5 alert text-center">
Status:
<b><span class="text-uppercase" id="reviewAnrechnungDetail-status_kurzbz"
data-status_kurzbz="<?php echo $anrechnungData->status_kurzbz ?>">
<?php echo $anrechnungData->status; ?>
</span></b>
</div>
<div class="col-xs-4">
<div class="alert text-center">
Status:
<b><span class="text-uppercase" id="reviewAnrechnungDetail-status_kurzbz"
data-status_kurzbz="<?php echo $anrechnungData->status_kurzbz ?>">
<?php echo $anrechnungData->status; ?>
</span></b>
</div>
<br>
<?php $this->load->view('lehre/anrechnung/reviewAnrechnungInfo'); ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
@@ -1,82 +1,86 @@
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<div class="panel panel-info">
<div class="panel-heading" role="tab" id="headingOne">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOne"
aria-expanded="true" aria-controls="collapseOne">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
<?php echo $this->p->t('anrechnung', 'reviewAnrechnungInfoFristenTitle'); ?>
</a>
</h4>
<div class="accordion" id="requestAnrechnungImportant">
<!-- Beantragung: Fristen panel -->
<div class="accordion-item">
<h2 class="accordion-header">
<div class="bg-info-subtle accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#Beantragung" aria-expanded="true" aria-controls="Beantragung">
<div class="d-flex">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
<?php echo $this->p->t('anrechnung', 'reviewAnrechnungInfoFristenTitle'); ?>
</div>
<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body">
<?php echo $this->p->t('anrechnung', 'reviewAnrechnungInfoFristenBody'); ?>
</div>
</div>
</h2>
<div id="Beantragung" class="accordion-collapse collapse show" data-bs-parent="#requestAnrechnungImportant">
<div class="accordion-body">
<?php echo $this->p->t('anrechnung', 'reviewAnrechnungInfoFristenBody'); ?>
</div>
</div>
<div class="panel panel-info">
<div class="panel-heading" role="tab" id="headingBegruendung">
<h4 class="panel-title">
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseBegruendung"
aria-expanded="false" aria-controls="collapseBegruendung">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoEctsBerechnungTitle'); ?>
</a>
</h4>
</div>
<!-- Referenzbeispiele ECTS Berechnung panel -->
<div class="accordion-item">
<h2 class="accordion-header">
<div class="bg-info-subtle accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#Referenzbeispiele" aria-expanded="false" aria-controls="Referenzbeispiele">
<div class="d-flex">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoEctsBerechnungTitle'); ?>
</div>
<div id="collapseBegruendung" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingBegruendung">
<div class="panel-body">
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoEctsBerechnungBody'); ?>
</div>
</div>
</h2>
<div id="Referenzbeispiele" class="accordion-collapse collapse" data-bs-parent="#requestAnrechnungImportant">
<div class="accordion-body">
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoEctsBerechnungBody'); ?>
</div>
</div>
<div class="panel panel-info">
<div class="panel-heading" role="tab" id="headingZero">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseZero"
aria-expanded="true" aria-controls="collapseZero">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
<?php echo $this->p->t('anrechnung', 'reviewAnrechnungInfoAntragVoraussetungenTitle'); ?>
</a>
</h4>
</div>
<!-- Antrag: Voraussetzungen panel -->
<div class="accordion-item">
<h2 class="accordion-header">
<div class="d-flex">
<div class="bg-info-subtle accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#Antrag" aria-expanded="false" aria-controls="Antrag">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
<?php echo $this->p->t('anrechnung', 'reviewAnrechnungInfoAntragVoraussetungenTitle'); ?>
</div>
<div id="collapseZero" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingZero">
<div class="panel-body">
<?php echo $this->p->t('anrechnung', 'reviewAnrechnungInfoAntragVoraussetungenBody'); ?>
</div>
</div>
</h2>
<div id="Antrag" class="accordion-collapse collapse" data-bs-parent="#requestAnrechnungImportant">
<div class="accordion-body">
<?php echo $this->p->t('anrechnung', 'reviewAnrechnungInfoAntragVoraussetungenBody'); ?>
</div>
</div>
<div class="panel panel-info">
<div class="panel-heading" role="tab" id="headingTwo">
<h4 class="panel-title">
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo"
aria-expanded="false" aria-controls="collapseTwo">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
<?php echo $this->p->t('anrechnung', 'reviewAnrechnungInfoNachweisdokumenteTitle'); ?>
</a>
</h4>
</div>
<!-- Nachweisdokumente: Voraussetzung panel -->
<div class="accordion-item">
<h2 class="accordion-header">
<div class="bg-info-subtle accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#Nachweisdokumente" aria-expanded="false" aria-controls="Nachweisdokumente">
<div class="d-flex">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
<?php echo $this->p->t('anrechnung', 'reviewAnrechnungInfoNachweisdokumenteTitle'); ?>
</div>
<div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo">
<div class="panel-body">
<?php echo $this->p->t('anrechnung', 'reviewAnrechnungInfoNachweisdokumenteBody'); ?>
</div>
</div>
</h2>
<div id="Nachweisdokumente" class="accordion-collapse collapse" data-bs-parent="#requestAnrechnungImportant">
<div class="accordion-body">
<?php echo $this->p->t('anrechnung', 'reviewAnrechnungInfoNachweisdokumenteBody'); ?>
</div>
</div>
<div class="panel panel-info">
<div class="panel-heading" role="tab" id="headingThree">
<h4 class="panel-title">
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseThree"
aria-expanded="false" aria-controls="collapseThree">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
<?php echo $this->p->t('anrechnung', 'reviewAnrechnungInfoHerkunftKenntnisseTitle'); ?>
</a>
</h4>
</div>
<!-- Herkunft der Kenntnisse: Angaben panel -->
<div class="accordion-item">
<h2 class="accordion-header">
<div class="bg-info-subtle accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#HerkunftKenntnisse" aria-expanded="false" aria-controls="HerkunftKenntnisse">
<div class="d-flex">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
<?php echo $this->p->t('anrechnung', 'reviewAnrechnungInfoHerkunftKenntnisseTitle'); ?>
</div>
<div id="collapseThree" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingThree">
<div class="panel-body">
<?php echo $this->p->t('anrechnung', 'reviewAnrechnungInfoHerkunftKenntnisseBody'); ?>
</div>
</div>
</h2>
<div id="HerkunftKenntnisse" class="accordion-collapse collapse" data-bs-parent="#requestAnrechnungImportant">
<div class="accordion-body">
<?php echo $this->p->t('anrechnung', 'reviewAnrechnungInfoHerkunftKenntnisseBody'); ?>
</div>
</div>
</div>
</div>
</div>
@@ -1,80 +1,85 @@
<?php
$includesArray = array(
'title' => $this->p->t('anrechnung', 'anrechnungenPruefen'),
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'tabulator4' => true,
'ajaxlib' => true,
'dialoglib' => true,
'tablewidget' => true,
'phrases' => array(
'global' => array(
'begruendung',
'zgv'
),
'anrechnung' => array(
'nachweisdokumente',
'empfehlung',
'herkunft'
),
'ui' => array(
'anzeigen',
'alleAnzeigen',
'hilfeZuDieserSeite',
'hochladen',
'spaltenEinstellen',
'hilfeZuDieserSeite',
'alleAuswaehlen',
'alleAbwaehlen',
'ausgewaehlteZeilen',
'hilfe',
'tabelleneinstellungen',
'keineDatenVorhanden',
'spaltenEinstellen',
'ja',
'nein',
'nichtSelektierbarAufgrundVon',
'systemfehler',
'bitteMindEinenAntragWaehlen',
'bitteBegruendungAngeben',
'anrechnungenWurdenEmpfohlen',
'anrechnungenWurdenNichtEmpfohlen'
),
'person' => array(
'student',
'personenkennzeichen',
'vorname',
'nachname'
),
'lehre' => array(
'studiensemester',
'studiengang',
'lehrveranstaltung',
'ects',
'lektor',
),
'table' => array(
'spaltenEinAusblenden',
'spaltenEinAusblendenMitKlickOeffnen',
'spaltenEinAusblendenAufEinstellungenKlicken',
'spaltenEinAusblendenMitKlickAktivieren',
'spaltenEinAusblendenMitKlickSchliessen',
'spaltenbreiteVeraendern',
'spaltenbreiteVeraendernText',
'spaltenbreiteVeraendernInfotext',
'zeilenAuswaehlen',
'zeilenAuswaehlenEinzeln',
'zeilenAuswaehlenBereich',
'zeilenAuswaehlenAlle'
)
),
'customJSs' => array(
'public/js/bootstrapper.js',
'public/js/lehre/anrechnung/reviewAnrechnungUebersicht.js'
)
'title' => $this->p->t('anrechnung', 'anrechnungenPruefen'),
'jquery3' => true,
'jqueryui1' => true,
'bootstrap5' => true,
'fontawesome4' => true,
'tabulator5' => true,
'tabulator5JQuery' => true,
'cis' => true,
'ajaxlib' => true,
'dialoglib' => true,
'tablewidget' => true,
'phrases' => array(
'global' => array(
'begruendung',
'zgv'
),
'anrechnung' => array(
'nachweisdokumente',
'empfehlung',
'herkunft'
),
'ui' => array(
'anzeigen',
'alleAnzeigen',
'hilfeZuDieserSeite',
'hochladen',
'spaltenEinstellen',
'hilfeZuDieserSeite',
'alleAuswaehlen',
'alleAbwaehlen',
'ausgewaehlteZeilen',
'hilfe',
'tabelleneinstellungen',
'keineDatenVorhanden',
'spaltenEinstellen',
'ja',
'nein',
'nichtSelektierbarAufgrundVon',
'systemfehler',
'bitteMindEinenAntragWaehlen',
'bitteBegruendungAngeben',
'anrechnungenWurdenEmpfohlen',
'anrechnungenWurdenNichtEmpfohlen'
),
'person' => array(
'student',
'personenkennzeichen',
'vorname',
'nachname'
),
'lehre' => array(
'studiensemester',
'studiengang',
'lehrveranstaltung',
'ects',
'lektor',
),
'table' => array(
'spaltenEinAusblenden',
'spaltenEinAusblendenMitKlickOeffnen',
'spaltenEinAusblendenAufEinstellungenKlicken',
'spaltenEinAusblendenMitKlickAktivieren',
'spaltenEinAusblendenMitKlickSchliessen',
'spaltenbreiteVeraendern',
'spaltenbreiteVeraendernText',
'spaltenbreiteVeraendernInfotext',
'zeilenAuswaehlen',
'zeilenAuswaehlenEinzeln',
'zeilenAuswaehlenBereich',
'zeilenAuswaehlenAlle'
)
),
'customCSSs' => array(
'public/css/lehre/anrechnung.css'
),
'customJSs' => array(
'public/js/bootstrapper.js',
'public/js/lehre/anrechnung/reviewAnrechnungUebersicht.js'
)
);
if (defined("CIS4")) {
@@ -94,147 +99,152 @@ if (defined("CIS4")) {
<div class="container-fluid">
<!-- title -->
<div class="row">
<div class="col-lg-12 page-header">
<h3>
<?php echo $this->p->t('anrechnung', 'anrechnungenPruefen'); ?>
<small>| <?php echo ucfirst($this->p->t('global', 'uebersicht')); ?></small>
<div class="col-lg-12 my-4 border-bottom">
<h3 class="fw-normal">
<?php echo $this->p->t('anrechnung', 'anrechnungenPruefen'); ?>
<small class="text-secondary fs-6">|
<?php echo ucfirst($this->p->t('global', 'uebersicht')); ?></small>
</h3>
</div>
</div>
<!-- dropdown studiensemester -->
<div class="row">
<div class="col-lg-12">
<form id="formApproveAnrechnungUebersicht" 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'
)
);
?>
<form id="formReviewAnrechnungUebersicht" class="row align-items-center" action="" method="get">
<div class="col-auto">
<?php
echo $this->widgetlib->widget(
'Studiensemester_widget',
array(
DropdownWidget::SELECTED_ELEMENT => $studiensemester_selected
),
array(
'name' => 'studiensemester',
'id' => 'studiensemester',
'class' => 'form-select w-auto ',
)
);
?>
</div>
<button type="submit"
class="btn btn-default form-group"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
class="btn btn-outline-secondary col-auto"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
</form>
</div>
</div>
<!-- Tabelle -->
<div class="row">
<div class="col-xs-12">
<?php $this->load->view('lehre/anrechnung/reviewAnrechnungUebersichtData.php');?>
<div class="col-12">
<?php $this->load->view('lehre/anrechnung/reviewAnrechnungUebersichtData.php'); ?>
</div>
</div>
<!-- Empfehlung / Nicht Empfehlung Panel -->
<div class="row">
<div class="panel panel-default panel-body" style="display: none"
id="reviewAnrechnungUebersicht-begruendung-panel">
<div>
<h4 class="panel panel-body panel-danger text-danger"><?php echo $this->p->t('anrechnung', 'empfehlungenNegativQuestion'); ?></h4>
<b><span>&ensp;<?php echo $this->p->t('anrechnung', 'bitteBegruendungAngeben'); ?></span>
<span class="text-danger">
<?php echo $this->p->t('anrechnung', 'begruendungWirdFuerAlleUebernommen'); ?>
</span></b>
<br><br>
<ul class="list-group">
<div class="border border-1 mb-4" style="display: none" id="reviewAnrechnungUebersicht-begruendung-panel">
<div class="mb-4 col-12">
<h4 class="card card-body border-danger text-danger my-3">
<?php echo $this->p->t('anrechnung', 'empfehlungenNegativQuestion'); ?>
</h4>
<div class="mb-4">
<b><span>&ensp;<?php echo $this->p->t('anrechnung', 'bitteBegruendungAngeben'); ?></span>
<span class="text-danger">
<?php echo $this->p->t('anrechnung', 'begruendungWirdFuerAlleUebernommen'); ?>
</span></b>
</div>
<ul class="list-group mb-4">
<li class="list-group-item">
<span><?php echo $this->p->t('anrechnung', 'empfehlungNegativPruefungNichtMoeglich'); ?></span>
<span class="btn-copyIntoTextarea pull-right" data-toggle="tooltip" data-placement="right"
title="<?php echo $this->p->t('ui', 'textUebernehmen'); ?>">
<span class="btn-copyIntoTextarea float-end" data-bs-toggle="tooltip"
data-bs-placement="right" title="<?php echo $this->p->t('ui', 'textUebernehmen'); ?>">
<i class="fa fa-clipboard fa-lg" aria-hidden="true"></i>
</span>
</li>
<li class="list-group-item disabled">
<li class="list-group-item list-group-item-secondary">
<?php echo $this->p->t('anrechnung', 'empfehlungNegativKenntnisseNichtGleichwertigWeilHinweis'); ?>
</li>
</ul>
<textarea class="form-control" name="begruendung" id="reviewAnrechnungUebersicht-begruendung"
rows="2"
placeholder="<?php echo $this->p->t('anrechnung', 'textUebernehmenOderEigenenBegruendungstext'); ?>"
required></textarea>
rows="2"
placeholder="<?php echo $this->p->t('anrechnung', 'textUebernehmenOderEigenenBegruendungstext'); ?>"
required></textarea>
</div>
<br>
<!-- Action Button Abbrechen & Bestaetigen-->
<div class="pull-right">
<div class=" mb-4 d-flex justify-content-end">
<button id="reviewAnrechnungUebersicht-begruendung-abbrechen"
class="btn btn-default btn-w200" type="reset">
<?php echo ucfirst($this->p->t('ui', 'abbrechen')); ?>
class="me-1 btn btn-outline-secondary btn-w200" type="reset">
<?php echo ucfirst($this->p->t('ui', 'abbrechen')); ?>
</button>
<button id="reviewAnrechnungUebersicht-dont-recommend-anrechnungen-confirm"
class="btn btn-primary btn-w200" type="button">
<?php echo ucfirst($this->p->t('ui', 'bestaetigen')); ?>
class="btn btn-primary btn-w200" type="button">
<?php echo ucfirst($this->p->t('ui', 'bestaetigen')); ?>
</button>
</div>
</div>
<div class="panel panel-default panel-body" style="display: none"
id="reviewAnrechnungUebersicht-empfehlung-panel">
<div>
<h4 class="panel panel-body panel-success text-success"><?php echo $this->p->t('anrechnung', 'empfehlungenPositivQuestion'); ?></h4>
&ensp;<?php echo $this->p->t('anrechnung', 'empfehlungenPositiv'); ?><br><br>
<div class="border border-1 mb-4" style="display: none" id="reviewAnrechnungUebersicht-empfehlung-panel">
<div class="mb-4">
<h4 class="card card-body border-success text-success my-3">
<?php echo $this->p->t('anrechnung', 'empfehlungenPositivQuestion'); ?>
</h4>
<div class="ps-2 mb-4"><?php echo $this->p->t('anrechnung', 'empfehlungenPositiv'); ?></div>
</div>
<br>
<!-- Action Button 'Abbrechen'-->
<div class="pull-right">
<div class="mb-4 d-flex justify-content-end">
<button id="reviewAnrechnungUebersicht-empfehlung-abbrechen"
class="btn btn-default btn-w200" type="reset">
<?php echo ucfirst($this->p->t('ui', 'abbrechen')); ?>
class="me-1 btn btn-outline-secondary btn-w200" type="reset">
<?php echo ucfirst($this->p->t('ui', 'abbrechen')); ?>
</button>
<button id="reviewAnrechnungUebersicht-recommend-anrechnungen-confirm"
class="btn btn-primary btn-w200" type="button">
<?php echo ucfirst($this->p->t('ui', 'bestaetigen')); ?>
class="btn btn-primary btn-w200" type="button">
<?php echo ucfirst($this->p->t('ui', 'bestaetigen')); ?>
</button>
</div>
</div>
</div>
<!-- Filter buttons / Submit buttons-->
<div class="row">
<!-- Filter buttons -->
<div class="col-xs-3">
<div class="col-3">
<div class="btn-toolbar" role="toolbar">
<div class="btn-group" role="group">
<button id="show-need-recommendation" class="btn btn-default btn-clearfilter" type="button"
data-toggle="tooltip" data-placement="left"
title="<?php echo $this->p->t('ui', 'nurFehlendeEmpfehlungenAnzeigen'); ?>"><i
class='fa fa-eye'></i>
<button id="show-need-recommendation" class="btn btn-outline-secondary btn-clearfilter"
type="button" data-bs-toggle="tooltip" data-bs-placement="left" data-bs-html="true"
title="<?php echo $this->p->t('ui', 'nurFehlendeEmpfehlungenAnzeigen'); ?>"><i
class='fa fa-eye'></i>
</button>
<button id="show-recommended" class="btn btn-default btn-clearfilter" type="button"
data-toggle="tooltip" data-placement="left"
title="<?php echo $this->p->t('ui', 'nurEmpfohleneAnzeigen'); ?>"><i
class='fa fa-thumbs-o-up'></i>
<button id="show-recommended" class="btn btn-outline-secondary btn-clearfilter" type="button"
data-bs-toggle="tooltip" data-bs-placement="left" data-bs-html="true"
title="<?php echo $this->p->t('ui', 'nurEmpfohleneAnzeigen'); ?>"><i
class='fa fa-thumbs-o-up'></i>
</button>
<button id="show-not-recommended" class="btn btn-default btn-clearfilter" type="button"
data-toggle="tooltip" data-placement="left"
title="<?php echo $this->p->t('ui', 'nurNichtEmpfohleneAnzeigen'); ?>"><i
class='fa fa-thumbs-o-down'></i>
<button id="show-not-recommended" class="btn btn-outline-secondary btn-clearfilter"
type="button" data-bs-toggle="tooltip" data-bs-placement="left" data-bs-html="true"
title="<?php echo $this->p->t('ui', 'nurNichtEmpfohleneAnzeigen'); ?>"><i
class='fa fa-thumbs-o-down'></i>
</button>
<button id="show-approved" class="btn btn-default btn-clearfilter" type="button"
data-toggle="tooltip" data-placement="left"
title="<?php echo $this->p->t('ui', 'nurGenehmigteAnzeigen'); ?>"><i
class='fa fa-check'></i>
<button id="show-approved" class="btn btn-outline-secondary btn-clearfilter" type="button"
data-bs-toggle="tooltip" data-bs-placement="left" data-bs-html="true"
title="<?php echo $this->p->t('ui', 'nurGenehmigteAnzeigen'); ?>"><i
class='fa fa-check'></i>
</button>
<button id="show-rejected" class="btn btn-default btn-clearfilter" type="button"
data-toggle="tooltip" data-placement="left"
title="<?php echo $this->p->t('ui', 'nurAbgelehnteAnzeigen'); ?>"><i
class='fa fa-times'></i>
<button id="show-rejected" class="btn btn-outline-secondary btn-clearfilter" type="button"
data-bs-toggle="tooltip" data-bs-placement="left" data-bs-html="true"
title="<?php echo $this->p->t('ui', 'nurAbgelehnteAnzeigen'); ?>"><i
class='fa fa-times'></i>
</button>
</div>
</div>
</div>
<!-- Action Buttons 'Empfehlen', 'Nicht empfehlen'-->
<div class="col-xs-9">
<div class="pull-right">
<div class="col-9">
<div class="d-flex justify-content-end">
<button id="reviewAnrechnungUebersicht-dont-recommend-anrechnungen-ask"
class="btn btn-danger btn-w200" type="button">
class="me-1 btn btn-danger btn-w200" type="button">
<?php echo ucfirst($this->p->t('anrechnung', 'nichtEmpfehlen')); ?></button>
<button id="reviewAnrechnungUebersicht-recommend-anrechnungen-ask"
class="btn btn-primary btn-w200" type="button">
<button id="reviewAnrechnungUebersicht-recommend-anrechnungen-ask" class="btn btn-primary btn-w200"
type="button">
<?php echo ucfirst($this->p->t('anrechnung', 'empfehlen')); ?></button>
</div>
</div>
@@ -255,4 +265,3 @@ if (defined("CIS4")) {
);
}
?>
@@ -70,9 +70,8 @@ $query = '
ORDER BY lehrveranstaltung_id, benutzer.uid, lehrfunktion_kurzbz DESC
)';
if ($configFachbereichsleitung === TRUE)
{
$query.= '
if ($configFachbereichsleitung === TRUE) {
$query .= '
SELECT
-- immer empfehlungsberechtigt, da hier nur Leitungen der LV-OE eine Empfehlungsanfrage erhalten
TRUE AS empfehlungsberechtigt,
@@ -95,10 +94,8 @@ if ($configFachbereichsleitung === TRUE)
)
order by empfehlung_anrechnung NULLS FIRST, antragsdatum
';
}
else
{
$query.= '
} else {
$query .= '
SELECT DISTINCT ON (anrechnungen.*, lema.mitarbeiter_uid)
CASE
-- erst prüfen, ob es überhaupt eine LV Leitung gibt (wenn nicht, dann immer empfehlungsberechtigt)
@@ -127,11 +124,12 @@ else
$filterWidgetArray = array(
'query' => $query,
'bootstrapVersion' => 5,
'tableUniqueId' => 'approveAnrechnungUebersicht',
'requiredPermissions' => 'lehre/anrechnung_empfehlen',
'datasetRepresentation' => 'tabulator',
'columnsAliases' => array(
'Empfehlungsberechtigt',
'Empfehlungsberechtigt',
'anrechnung_id',
'lehrveranstaltung_id',
'begruendung_id',
@@ -157,33 +155,29 @@ $filterWidgetArray = array(
persistentLayout:true,
persistentSort:true,
autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated
headerFilterPlaceholder: " ",
initialHeaderFilter: [{field:"empfehlungsberechtigt", value: true}],
index: "anrechnung_id", // assign specific column as unique id (important for row indexing)
selectable: true, // allow row selection
selectableRangeMode: "click", // allow range selection using shift end click on end of range
selectablePersistence:false, // deselect previously selected rows when table is filtered, sorted or paginated
tableBuilt: function(){
func_tableBuilt(this);
},
tableWidgetFooter: {
selectButtons: true
},
selectableCheck: function(row){
return func_selectableCheck(row);
},
rowFormatter:function(row){
func_rowFormatter(row);
},
rowUpdated:function(row){
func_rowUpdated(row);
},
tooltips: function(cell){
return func_tooltips(cell);
}
rowFormatter:function(row){
return func_rowFormatter(row);
},
columnDefaults:{
tooltip:func_tooltips,
headerFilterPlaceholder: " ",
}
}', // tabulator properties
'datasetRepFieldsDefs' => '{
empfehlungsberechtigt: {formatter:"tickCross", align:"center", headerTooltip:"Berechtigt wenn man die LV leitet oder wenn der LV keine LV-Leitung zugeordnet ist.",
empfehlungsberechtigt: {formatter:"tickCross", hozAlign:"center", headerTooltip:"Berechtigt wenn man die LV leitet oder wenn der LV keine LV-Leitung zugeordnet ist.",
headerFilter:"tickCross", headerFilterParams:{"tristate": true}, headerFilterFunc: hf_empfehlungsberechtigt
},
anrechnung_id: {visible: false, headerFilter:"input"},
@@ -194,14 +188,14 @@ $filterWidgetArray = array(
studiengang_kz: {visible: false, headerFilter:"input"},
stg_bezeichnung: {headerFilter:"input"},
lv_bezeichnung: {headerFilter:"input"},
ects: {headerFilter:"input", align:"center"},
ects: {headerFilter:"input", hozAlign:"center"},
student: {headerFilter:"input"},
begruendung: {headerFilter:"input"},
zgv: {headerFilter:"input"},
dokument_bezeichnung: {headerFilter:"input", formatter:"link", formatterParams: paramLookup_dokBez},
anmerkung_student: {headerFilter:"input"},
antragsdatum: {align:"center", headerFilter:"input", mutator: mut_formatStringDate},
empfehlung_anrechnung: {headerFilter:"input", align:"center", formatter: format_empfehlung_anrechnung, headerFilterFunc: hf_filterTrueFalse},
antragsdatum: {hozAlign:"center", headerFilter:"input", mutator: mut_formatStringDate},
empfehlung_anrechnung: {headerFilter:"input", hozAlign:"center", formatter: format_empfehlung_anrechnung, headerFilterFunc: hf_filterTrueFalse},
status_kurzbz: {visible: false, headerFilter:"input"},
status_bezeichnung: {headerFilter:"input"}
}', // col properties
@@ -209,4 +203,4 @@ $filterWidgetArray = array(
echo $this->widgetlib->widget('TableWidget', $filterWidgetArray);
?>
?>
@@ -16,7 +16,6 @@ $this->load->view(
);
?>
<body>
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
@@ -33,6 +32,5 @@ $this->load->view(
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -13,7 +13,6 @@ $this->load->view(
);
?>
<body>
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
@@ -34,6 +33,5 @@ $this->load->view(
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -6,10 +6,12 @@ $this->load->view(
'jquery3' => true,
'jqueryui1' => true,
'jquerycheckboxes1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'bootstrap5' => true,
'fontawesome6' => true,
'sbadmintemplate' => false,
'tabulator4' => true,
'tabulator5' => true,
'tabulator5JQuery' => true,
'cis'=>true,
'momentjs2' => true,
'ajaxlib' => true,
'dialoglib' => true,
@@ -84,14 +86,14 @@ $this->load->view(
);
?>
<body>
<div id="page-wrapper">
<div class="container-fluid">
<!-- 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">
<a class="float-end" data-bs-toggle="collapse" href="#collapseHelp" aria-expanded="false" aria-controls="collapseExample">
<?php echo $this->p->t('ui', 'hilfeZuDieserSeite'); ?>
</a>
<h3>
@@ -102,19 +104,20 @@ $this->load->view(
<!-- helper collapse module -->
<div class="row">
<div class="col-lg-12 collapse" id="collapseHelp">
<div class="well">
<div class="col-lg-12 collapse my-4" id="collapseHelp">
<div class="card p-3">
<?php $this->load->view('lehre/lehrauftrag/acceptLehrauftragHelp') ?>
</div> <!--./well-->
</div>
</div>
</div>
<!-- dropdown widgets -->
<div class="row">
<div class="col-lg-12">
<form id="formLehrauftrag" class="form-inline" action="" method="get">
<form id="formLehrauftrag" class="row align-items-center" action="" method="get">
<input type="hidden" id="uid" name="uid" value="<?php echo getAuthUID(); ?>">
<div class="form-group">
<div class="col-auto">
<?php
echo $this->widgetlib->widget(
'Studiensemester_widget',
@@ -123,12 +126,13 @@ $this->load->view(
),
array(
'name' => 'studiensemester',
'id' => 'studiensemester'
'id' => 'studiensemester',
'class' => 'form-select w-auto ',
)
);
?>
</div>
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
<button type="submit" name="submit" value="anzeigen" class="btn btn-outline-secondary col-auto"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
</form>
</div>
</div>
@@ -144,10 +148,10 @@ $this->load->view(
<!-- link for external lectors 'Informationsblatt fuer externe Lehrende'. Show only for external lecturers -->
<div class="row">
<div class="col-xs-12">
<span class="pull-left"><?php echo $this->p->t('ui' , 'hinweistextLehrauftrag'); ?></span>
<div class="col-12">
<span class="float-start"><?php echo $this->p->t('ui' , 'hinweistextLehrauftrag'); ?></span>
<?php if ($is_external_lector): ?>
<span class="pull-right"><?php echo $this->p->t('dms' , 'informationsblattExterneLehrende'); ?></span>
<span class="float-start"><?php echo $this->p->t('dms' , 'informationsblattExterneLehrende'); ?></span>
<?php endif; ?>
</div>
</div>
@@ -156,46 +160,46 @@ $this->load->view(
<!-- filter buttons & PDF downloads & password field & akzeptieren-button -->
<div class="row">
<div class="col-xs-5 col-md-4">
<div class="col-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 id="show-all" class="btn btn-outline-secondary btn-lehrauftrag active focus" type="button"
data-bs-toggle="tooltip" data-bs-placement="left" title="<?php echo $this->p->t('ui', 'alleAnzeigen'); ?>"><i class='fa fa-users'></i>
</button>
<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 id="show-approved" class="btn btn-outline-secondary btn-lehrauftrag" type="button"
data-bs-toggle="tooltip" data-bs-placement="left" title="<?php echo $this->p->t('ui', 'nurErteilteAnzeigen'); ?>"><i class='fa fa-user-check'></i>
</button>
<button id="show-accepted" class="btn btn-outline-secondary btn-lehrauftrag" type="button"
data-bs-toggle="tooltip" data-bs-placement="left" title="<?php echo $this->p->t('ui', 'nurAngenommeneAnzeigen'); ?>"><i class='fa-regular fa-handshake'></i>
</button>
</div>
<button id="show-cancelled" class="btn btn-default btn-lehrauftrag" type="button" style="margin-left: 20px;"
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 -->
<button id="show-cancelled" class="btn btn-outline-secondary btn-lehrauftrag" type="button" style="margin-left: 20px;"
data-bs-toggle="collapse" data-placement="left" title="<?php echo $this->p->t('ui', 'nurStornierteAnzeigen'); ?>"
data-bs-target ="#collapseCancelledLehrauftraege" aria-expanded="false" aria-controls="collapseExample"><i class="fa fa-user-xmark"></i>
</button>
</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">
<div class="col-3 offset-md-2 col-md-2">
<div class="btn-group dropup float-end">
<button type="button" class="btn btn-outline-secondary dropdown-toggle" data-bs-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>
<li value="etw"><a class="dropdown-item" href="#"><?php echo $this->p->t('global', 'PDFLehrauftraegeFH'); ?></a></li>
<li value="lehrgang"><a class="dropdown-item" 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="col-4 offset-md-0 col-md-4">
<div class="input-group">
<input id="username" autocomplete="username" style="position: absolute; opacity: 0;"><!-- 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="accept-lehrauftraege" class="btn btn-primary pull-right"><?php echo ucfirst($this->p->t('global', 'lehrauftraegeAnnehmen')); ?></button>
<button id="accept-lehrauftraege" class="btn btn-primary float-end"><?php echo ucfirst($this->p->t('global', 'lehrauftraegeAnnehmen')); ?></button>
</span>
</div>
</div>
@@ -225,7 +229,6 @@ $this->load->view(
</div><!-- end container -->
</div><!-- end page-wrapper -->
<br>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -294,6 +294,7 @@ ORDER BY "akzeptiert" NULLS FIRST, "erteilt" NULLS LAST, "bestellt"
$filterWidgetArray = array(
'query' => $query,
'bootstrapVersion' => 5,
'tableUniqueId' => 'acceptLehrauftrag',
'requiredPermissions' => 'lehre/lehrauftrag_akzeptieren',
'datasetRepresentation' => 'tabulator',
@@ -330,7 +331,6 @@ $filterWidgetArray = array(
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
selectableRangeMode: "click", // allow range selection using shift end click on end of range
@@ -338,24 +338,16 @@ $filterWidgetArray = array(
selectableCheck: function(row){
return func_selectableCheck(row);
},
rowUpdated:function(row){
func_rowUpdated(row);
},
rowFormatter:function(row){
func_rowFormatter(row);
},
tableBuilt: function(){
func_tableBuilt(this);
},
renderComplete:function(){
func_renderComplete(this);
},
renderStarted:function(){
func_renderStarted(this);
},
tableWidgetFooter: {
selectButtons: true
}
},
columnsDefaults:{
headerFilterPlaceholder: " ",
}
}', // tabulator properties
'datasetRepFieldsDefs' => '{
row_index: {visible:false}, // necessary for row indexing
@@ -375,11 +367,11 @@ $filterWidgetArray = array(
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:2},
stunden: {hozAlign:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:2},
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
bottomCalc:"sum", bottomCalcParams:{precision:2}
},
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
betrag: {hozAlign:"right", formatter: form_formatNulltoStringNumber,
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}
},
@@ -387,9 +379,9 @@ $filterWidgetArray = array(
vertrag_stunden: {visible: false},
vertrag_betrag: {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: {hozAlign:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip},
erteilt: {hozAlign:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip},
akzeptiert: {hozAlign:"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"}
@@ -1,5 +1,6 @@
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeAnnehmen'); ?></h4>
<div class="panel panel-body">
<div class="card-body">
<?php echo $this->p->t('lehre', 'lehrauftraegeAnnehmenText'); ?>
<ol>
<li><?php echo $this->p->t('lehre', 'lehrauftraegeAnnehmenKlickStatusicon'); ?></li>
@@ -7,22 +8,26 @@
<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">
<div class="card-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">
<div class="card-body">
<div class="col-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>
<td class="col-1"><i class='fa fa-users'></i></td>
<td class="col-1"><i class='fa fa-user-check'></i></td>
<td class="col-1"><i class='fa-regular fa-handshake'></i></td>
</tr>
<tr class="text-center">
<td><?php echo $this->p->t('lehre', 'filterAlleBeiAnnahme'); ?></td>
@@ -31,5 +36,6 @@
</tr>
</table>
</div>
</div>
<br>
@@ -7,9 +7,10 @@ $this->load->view(
'jqueryui1' => true,
'jquerycheckboxes1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'fontawesome6' => true,
'sbadmintemplate3' => true,
'tabulator4' => true,
'tabulator5' => true,
'tabulator5JQuery' => true,
'momentjs2' => true,
'ajaxlib' => true,
'dialoglib' => true,
@@ -88,14 +89,13 @@ $this->load->view(
)
),
'customJSs' => array(
'public/js/bootstrapper.js',
'public/js/bootstrapper.js',
'public/js/lehre/lehrauftrag/approveLehrauftrag.js'
)
)
);
?>
<body>
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
@@ -190,12 +190,12 @@ $this->load->view(
<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="<?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>
<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'); ?>"><i class='fa fa-user-tag'></i></button>
<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'); ?>"><i class='fa fa-user-check'></i></button>
<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-regular fa-handshake'></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="<?php echo $this->p->t('ui', 'nurGeaenderteAnzeigen'); ?>"></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'); ?>"><i class='fa fa-user-pen'></i></button>
</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="<?php echo $this->p->t('ui', 'nurDummiesAnzeigen'); ?>"><i class='fa fa-user-secret'></i></button>
@@ -207,7 +207,6 @@ $this->load->view(
</div><!-- end container -->
</div><!-- end page-wrapper -->
<br>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -346,7 +346,6 @@ $filterWidgetArray = array(
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){
@@ -361,22 +360,16 @@ $filterWidgetArray = array(
return func_selectableCheck(row);
},
initialFilter: func_initialFilter(),
rowUpdated:function(row){
func_rowUpdated(row);
},
rowFormatter:function(row)
{
func_rowFormatter(row);
},
renderStarted:function(){
func_renderStarted(this);
},
tableBuilt: function(){
func_tableBuilt(this);
},
tableWidgetFooter: {
selectButtons: true
}
},
columnDefaults:{
headerFilterPlaceholder: " ",
}
}', // tabulator properties
'datasetRepFieldsDefs' => '{
// column status is built dynamically in funcTableBuilt(),
@@ -400,21 +393,21 @@ $filterWidgetArray = array(
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:2},
stunden: {hozAlign:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:2},
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
bottomCalc:"sum", bottomCalcParams:{precision:2}},
stundensatz: {visible: true, align:"right", formatter: form_formatNulltoStringNumber,
stundensatz: {visible: true, hozAlign:"right", formatter: form_formatNulltoStringNumber,
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator},
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
betrag: {hozAlign:"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, 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: {hozAlign:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip},
erteilt: {hozAlign:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip},
akzeptiert: {hozAlign:"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"},
@@ -2,11 +2,11 @@
<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-user-tag'></i></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-user-check'></i></td>
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
<td><i class='fa fa-2x fa-handshake-o'></i></td>
<td><i class='fa-regular fa-2x fa-handshake'></i></td>
</tr>
<tr class="text-center">
<td class="text-muted"><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessBestellen'); ?></td>
@@ -48,10 +48,10 @@
<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-tag'></i></td>
<td class="col-xs-1"><i class='fa fa-user-check'></i></td>
<td class="col-xs-1"><i class='fa-regular fa-handshake'></i></td>
<td class="col-xs-1"><i class='fa fa-user-pen'></i></td>
<td class="col-xs-1"><i class='fa fa-user-secret'></i></td>
</tr>
@@ -50,6 +50,7 @@ $query = '
$tableWidgetArray = array(
'query' => $query,
'bootstrapVersion' => 5,
'tableUniqueId' => 'cancelledLehrauftrag',
'requiredPermissions' => 'lehre/lehrauftrag_akzeptieren',
'datasetRepresentation' => 'tabulator',
@@ -70,12 +71,7 @@ $tableWidgetArray = array(
selectableCheck: function(row){
return func_selectableCheck(row);
},
renderComplete:function(){
func_renderComplete(this);
},
tableBuilt: function(){
func_tableBuilt(this);
},
}', // tabulator properties
'datasetRepFieldsDefs' => '{
vertrag_id: {visible: false},
@@ -83,16 +79,16 @@ $tableWidgetArray = array(
vertragstyp_kurzbz: {minWidth: 200},
bezeichnung: {minWidth: 200},
vertragsstunden: {
align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
hozAlign:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
bottomCalc:"sum", bottomCalcParams:{precision:1},
minWidth: 200
},
betrag: {
align:"right", formatter: form_formatNulltoStringNumber,
hozAlign:"right", formatter: form_formatNulltoStringNumber,
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"},
minWidth: 200
},
storniert: {align:"center", mutator: mut_formatStringDate, tooltip: storniert_tooltip, minWidth: 200},
storniert: {hozAlign:"center", mutator: mut_formatStringDate, tooltip: storniert_tooltip, minWidth: 200},
storniert_von: {visible: false},
letzterStatus_vorStorniert: {visible: false}
}', // col properties
@@ -7,9 +7,10 @@ $this->load->view(
'jqueryui1' => true,
'jquerycheckboxes1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'fontawesome6' => true,
'sbadmintemplate3' => true,
'tabulator4' => true,
'tabulator5' => true,
'tabulator5JQuery' => true,
'momentjs2' => true,
'ajaxlib' => true,
'dialoglib' => true,
@@ -95,7 +96,7 @@ $this->load->view(
);
?>
<body>
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
@@ -186,13 +187,14 @@ $this->load->view(
<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="<?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>
<button id="show-newAndChanged" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'neuUndGeaenderteAnzeigen'); ?>"><i style="margin-right:10px" class='fa fa-user-plus'></i><i style="margin-right:10px" class="fa fa-ellipsis-vertical"></i>&nbsp;<i class='fa fa-user-pen'></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="<?php echo $this->p->t('ui', 'nurGeaenderteAnzeigen'); ?>"></button><!-- png img set in javascript -->
<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'); ?>"><i class='fa fa-user-tag'></i></button>
<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'); ?>"><i class='fa fa-user-check'></i></button>
<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-regular fa-handshake'></i></button>
<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'); ?>"><i class='fa fa-user-pen'></i></button></button>
</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="<?php echo $this->p->t('ui', 'nurDummiesAnzeigen'); ?>"><i class='fa fa-user-secret'></i></button>
@@ -204,7 +206,6 @@ $this->load->view(
</div><!-- end container -->
</div><!-- end page-wrapper -->
<br>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -376,7 +376,6 @@ $filterWidgetArray = array(
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){
@@ -390,24 +389,15 @@ $filterWidgetArray = array(
selectableCheck: function(row){
return func_selectableCheck(row);
},
rowUpdated:function(row){
func_rowUpdated(row);
},
rowFormatter:function(row){
func_rowFormatter(row);
},
renderStarted:function(){
func_renderStarted(this);
},
tableBuilt: function(){
func_tableBuilt(this);
},
dataLoaded: function(data){
func_dataLoaded(data, this);
},
tableWidgetFooter: {
selectButtons: true
}
},
columnDefaults:{
headerFilterPlaceholder:" ",
}
}', // tabulator properties
'datasetRepFieldsDefs' => '{
// column status is built dynamically in funcTableBuilt()
@@ -432,12 +422,12 @@ $filterWidgetArray = array(
person_id: {visible: false, headerFilter:"input"},
lv_oe_kurzbz: {headerFilter:"input"},
lektor: {headerFilter:"input", widthGrow: 2},
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:2},
stunden: {hozAlign:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:2},
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
bottomCalc:"sum", bottomCalcParams:{precision:2}},
stundensatz: {visible: true, align:"right", formatter: form_formatNulltoStringNumber,
stundensatz: {visible: true, hozAlign:"right", formatter: form_formatNulltoStringNumber,
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator},
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
betrag: {hozAlign:"right", formatter: form_formatNulltoStringNumber,
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money",
bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}},
@@ -445,9 +435,9 @@ $filterWidgetArray = array(
vertrag_stunden: {visible: false},
vertrag_betrag: {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: {hozAlign:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip},
erteilt: {hozAlign:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip},
akzeptiert: {hozAlign:"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"}
@@ -2,11 +2,11 @@
<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-user-tag'></i></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-user-check'></i></td>
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
<td><i class='fa fa-2x fa-handshake-o'></i></td>
<td><i class='fa-regular fa-2x fa-handshake'></i></td>
</tr>
<tr class="text-center">
<td><b><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessBestellen'); ?></b></td>
@@ -50,10 +50,10 @@
<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-tag'></i></td>
<td class="col-xs-1"><i class='fa fa-user-check'></i></td>
<td class="col-xs-1"><i class='fa-regular fa-handshake'></i></td>
<td class="col-xs-1"><i class='fa fa-user-pen'></i></td>
<td class="col-xs-1"><i class='fa fa-user-secret'></i></td>
</tr>
@@ -9,7 +9,8 @@ $this->load->view(
'fontawesome4' => true,
'momentjs2' => true,
'ajaxlib' => true,
'tabulator4' => true,
'tabulator5' => true,
'tabulator5JQuery' => true,
'tablewidget' => true,
'navigationwidget' => true,
'sbadmintemplate3' => true,
@@ -33,6 +34,7 @@ $this->load->view(
),
'widgets' => true,
'dialoglib' => true,
'customJSs' => array(
'public/js/bootstrapper.js',
'public/js/lehre/lvplanung/zverfueg.js'
@@ -41,128 +43,130 @@ $this->load->view(
);
?>
<body>
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
<!-- title -->
<div class="row">
<div class="col-lg-12 page-header">
<h3>Zeitverf&uuml;gbarkeiten verwalten<small>
| Punktuelle Zeitverfügbarkeiten von Lehrenden für die LV-Planung verwalten</small>
</h3>
<!-- title -->
<div class="row">
<div class="col-lg-12 page-header">
<h3>Zeitverf&uuml;gbarkeiten verwalten<small>
| Punktuelle Zeitverfügbarkeiten von Lehrenden für die LV-Planung verwalten</small>
</h3>
</div>
</div>
</div>
<!-- form -->
<div class="row">
<div class="col-lg-12">
<form id="form-zeitverfuegbarkeit" class="form-horizontal">
<input type="hidden" id="studsemStart" value="<?php echo $studsemStart ?>">
<input type="hidden" id="zeitsperre_id" name="zeitsperre_id" value="">
<!-- form -->
<div class="row">
<div class="col-lg-12">
<form id="form-zeitverfuegbarkeit" class="form-horizontal">
<input type="hidden" id="studsemStart" value="<?php echo $studsemStart ?>">
<input type="hidden" id="zeitsperre_id" name="zeitsperre_id" value="">
<div class="form-group">
<label for="mitarbeiter_uid" class="col-sm-1 control-label">LektorIn: </label>
<div class="col-sm-3">
<select id="mitarbeiter_uid" name="mitarbeiter_uid" class="form-control select-w500" required>
<option value="" >
<?php echo $this->p->t('ui', 'bitteWaehlen'); ?>
</option>
<?php foreach ($lektor_arr as $lektor) : ?>
<option value="<?php echo $lektor->mitarbeiter_uid ?>">
<?php echo $lektor->nachname. ' '. $lektor->vorname ?>
<div class="form-group">
<label for="mitarbeiter_uid" class="col-sm-1 control-label">LektorIn: </label>
<div class="col-sm-3">
<select id="mitarbeiter_uid" name="mitarbeiter_uid" class="form-control " required>
<option value="">
<?php echo $this->p->t('ui', 'bitteWaehlen'); ?>
</option>
<?php endforeach; ?>
</select>
<?php foreach ($lektor_arr as $lektor): ?>
<option value="<?php echo $lektor->mitarbeiter_uid ?>">
<?php echo $lektor->nachname . ' ' . $lektor->vorname ?>
</option>
<?php endforeach; ?>
</select>
</div>
</div>
</div>
<div class="form-group">
<label for="zverfueg" class="col-sm-1 control-label">Grund: </label>
<div class="col-sm-3">
<input type="text" id="zeitsperretyp_kurzbz" value="Zeitverf&uuml;gbarkeit" name="zeitsperretyp_kurzbz" readonly />
<div class="form-group">
<label for="zverfueg" class="col-sm-1 control-label">Grund: </label>
<div class="col-sm-3">
<input type="text" id="zeitsperretyp_kurzbz" value="Zeitverf&uuml;gbarkeit"
name="zeitsperretyp_kurzbz" readonly />
</div>
</div>
</div>
<div class="form-group">
<label for="bezeichnung" class="col-sm-1 control-label">Notiz: </label>
<div class="col-sm-3">
<textarea type="" id="bezeichnung" name="bezeichnung" value="" required></textarea>
<div class="form-group">
<label for="bezeichnung" class="col-sm-1 control-label">Notiz: </label>
<div class="col-sm-3">
<textarea type="" id="bezeichnung" name="bezeichnung" value="" required></textarea>
</div>
</div>
</div>
<div class="form-group">
<label for="vondatum" class="col-sm-1 control-label">Von: </label>
<div class="col-sm-3">
<input type="date" id="vondatum" name="vondatum" class="form-control zverfueg-datepicker" required>
<div class="form-group">
<label for="vondatum" class="col-sm-1 control-label">Von: </label>
<div class="col-sm-3">
<input type="date" id="vondatum" name="vondatum"
class="form-control zverfueg-datepicker" required>
</div>
<label for="vonstunde" class="col-sm-1 control-label">Stunde (inkl.): </label>
<div class="col-sm-3">
<select id="vonstunde" name="vonstunde" class="form-control ">
<option value="">*</option>
<?php foreach ($stunde_arr as $stunde): ?>
<option value="<?php echo $stunde->stunde ?>">
<?php echo $stunde->stunde .
' [' .
(new DateTime($stunde->beginn))->format('H:i') . ' - ' .
(new DateTime($stunde->ende))->format('H:i') .
']' ?>
</option>
<?php endforeach; ?>
</select>
</div>
</div>
<label for="vonstunde" class="col-sm-1 control-label">Stunde (inkl.): </label>
<div class="col-sm-3">
<select id="vonstunde" name="vonstunde" class="form-control select-w500">
<option value="" >*</option>
<?php foreach ($stunde_arr as $stunde) : ?>
<option value="<?php echo $stunde->stunde ?>">
<?php echo $stunde->stunde.
' ['.
(new DateTime($stunde->beginn))->format('H:i'). ' - '.
(new DateTime($stunde->ende))->format('H:i').
']' ?>
</option>
<?php endforeach; ?>
</select>
</div>
</div>
<div class="form-group">
<label for="bisdatum" class="col-sm-1 control-label">Bis: </label>
<div class="col-sm-3">
<input type="date" id="bisdatum" name="bisdatum" class="form-control zverfueg-datepicker" required>
<div class="form-group">
<label for="bisdatum" class="col-sm-1 control-label">Bis: </label>
<div class="col-sm-3">
<input type="date" id="bisdatum" name="bisdatum"
class="form-control zverfueg-datepicker" required>
</div>
<label for="bisstunde" class="col-sm-1 control-label">Stunde (inkl.): </label>
<div class="col-sm-3">
<select id="bisstunde" name="bisstunde" class="form-control ">
<option value="">*</option>
<?php foreach ($stunde_arr as $stunde): ?>
<option value="<?php echo $stunde->stunde ?>">
<?php echo $stunde->stunde .
' [' .
(new DateTime($stunde->beginn))->format('H:i') . ' - ' .
(new DateTime($stunde->ende))->format('H:i') .
']' ?>
</option>
<?php endforeach; ?>
</select>
</div>
</div>
<label for="bisstunde" class="col-sm-1 control-label">Stunde (inkl.): </label>
<div class="col-sm-3">
<select id="bisstunde" name="bisstunde" class="form-control select-w500">
<option value="" >*</option>
<?php foreach ($stunde_arr as $stunde) : ?>
<option value="<?php echo $stunde->stunde ?>">
<?php echo $stunde->stunde.
' ['.
(new DateTime($stunde->beginn))->format('H:i'). ' - '.
(new DateTime($stunde->ende))->format('H:i').
']' ?>
</option>
<?php endforeach; ?>
</select>
</div>
</div>
<div class="col-sm-8">
<button type="submit" id="btn-save" class="btn btn-primary btn-w200 pull-right">
<?php echo ucfirst($this->p->t('ui', 'speichern')); ?>
</button>
<button type="button" id="btn-delete" class="btn btn-danger btn-w200 btn-mr5 pull-right" disabled
data-toggle="tooltip" data-placement="right"
<div class="col-sm-8">
<button type="submit" id="btn-save" style="width:200px;" class="btn btn-primary pull-right">
<?php echo ucfirst($this->p->t('ui', 'speichern')); ?>
</button>
<button type="button" id="btn-delete" style="width:200px; margin-right:10px"
class="btn btn-danger pull-right" disabled data-toggle="tooltip" data-placement="right"
title="Zum Löschen LektorIn aus Tabelle wählen">
<?php echo ucfirst($this->p->t('ui', 'loeschen')); ?>
</button>
<button type="reset" id="btn-break" class="btn btn-default btn-w200 btn-mr5 pull-right">
<?php echo ucfirst($this->p->t('ui', 'abbrechen')); ?>
</button>
</div>
</form>
<?php echo ucfirst($this->p->t('ui', 'loeschen')); ?>
</button>
<button type="reset" id="btn-break" style="width:200px; margin-right:10px"
class="btn btn-default pull-right">
<?php echo ucfirst($this->p->t('ui', 'abbrechen')); ?>
</button>
</div>
</form>
</div>
</div>
</div>
<!-- data table -->
<div class="row">
<div class="col-lg-12">
<?php $this->load->view('lehre/lvplanung/adminZeitverfuegbarkeitData.php'); ?>
<!-- data table -->
<div class="row">
<div class="col-lg-12">
<?php $this->load->view('lehre/lvplanung/adminZeitverfuegbarkeitData.php'); ?>
</div>
</div>
</div>
</div><!-- end container -->
</div><!-- end page-wrapper -->
<br>
</body>
</div><!-- end container -->
</div><!-- end page-wrapper -->
<br>
<?php $this->load->view('templates/FHC-Footer'); ?>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -15,7 +15,7 @@ $qry = '
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
JOIN public.tbl_studiensemester ss USING (studiensemester_kurzbz)
JOIN campus.tbl_zeitsperre zsp ON zsp.mitarbeiter_uid = lema.mitarbeiter_uid
WHERE lv.studiengang_kz IN ('. implode (',', $STUDIENGANG_KZ_ARR). ')
WHERE lv.studiengang_kz IN (' . implode(',', $STUDIENGANG_KZ_ARR) . ')
AND b.aktiv
AND zsp.vondatum >= ss.start
AND zeitsperretyp_kurzbz = \'ZVerfueg\'
@@ -40,18 +40,17 @@ $filterWidgetArray = array(
ucfirst($this->p->t('global', 'notiz'))
),
'datasetRepOptions' => '{
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: "zeitsperre_id", // assign specific column as unique id (important for row indexing)
selectable: 1, // allow row selection
tableWidgetHeader: false,
rowSelected: function(row) {
func_rowSelected(row);
columnDefaults:{
headerFilterPlaceholder: " ",
},
rowDeselected: function(row) {
func_rowDeselected(row);
}
}', // tabulator properties
'datasetRepFieldsDefs' => '{
zeitsperre_id: {visible:false},
@@ -67,4 +66,4 @@ $filterWidgetArray = array(
echo $this->widgetlib->widget('TableWidget', $filterWidgetArray);
?>
?>
@@ -9,6 +9,9 @@
'bootstrap3' => true,
'fontawesome4' => true,
'tablesorter2' => true,
'tabulator5' => true,
'tabulator5JQuery' => true,
'cis'=>true,
'ajaxlib' => true,
'dialoglib' => true,
'tablewidget' => true,
@@ -27,7 +30,6 @@
);
?>
<body>
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
@@ -63,6 +65,5 @@
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -21,7 +21,6 @@
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -41,6 +40,5 @@
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -1,7 +1,7 @@
<?php
$this->load->view('templates/header', array('title' => 'StudienjahrList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '2:{sorter:false}, 3:{sorter:false}', 'sortList' => '0,1'));
?>
<body>
<div class="row">
<div class="span4">
<h2>Studienjahr</h2>
@@ -40,7 +40,6 @@ $this->load->view('templates/header', array('title' => 'StudienjahrList', 'table
</table>
</div>
</div>
</body>
</html>
@@ -34,7 +34,6 @@
)
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -155,6 +154,5 @@
</div> <!-- ./container-fluid-->
</div> <!-- ./page-wrapper-->
</div> <!-- ./wrapper -->
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -21,7 +21,6 @@
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -46,6 +45,5 @@
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -18,7 +18,6 @@
)
);
?>
<body>
<div id="wrapper">
<div id="page-wrapper">
<div class="container-fluid">
@@ -63,7 +62,6 @@
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -22,7 +22,6 @@
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -70,6 +69,5 @@
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -21,7 +21,6 @@
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -41,6 +40,5 @@
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -25,7 +25,6 @@
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -45,6 +44,5 @@
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -25,7 +25,6 @@
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -45,6 +44,5 @@
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -25,7 +25,6 @@
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -46,6 +45,5 @@
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -25,7 +25,6 @@
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -46,6 +45,5 @@
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -52,7 +52,6 @@
)
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -241,6 +240,5 @@
</div> <!-- ./page-wrapper-->
</div> <!-- ./wrapper -->
<button id="scrollToTop" title="Go to top"><i class="fa fa-chevron-up"></i></button>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -24,7 +24,6 @@ $this->load->view(
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -44,6 +43,5 @@ $this->load->view(
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -11,7 +11,6 @@ $this->load->view(
)
);
?>
<body>
<div id="wrapper">
<div id="page-wrapper">
<div class="container-fluid">
@@ -36,7 +35,6 @@ $this->load->view(
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
+1 -2
View File
@@ -24,7 +24,7 @@ $this->load->view(
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -44,6 +44,5 @@ $this->load->view(
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -24,7 +24,7 @@ $this->load->view(
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -195,6 +195,5 @@ $this->load->view(
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -24,7 +24,6 @@ $this->load->view(
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -163,6 +162,5 @@ $this->load->view(
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -22,7 +22,6 @@
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -42,6 +41,5 @@
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -16,7 +16,7 @@
);
?>
<body>
<div class="login-form">
<p class="text-center">
@@ -40,6 +40,5 @@
<p class="text-center"><a href="#">Forgot Password?</a></p>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -17,7 +17,6 @@
)
);
?>
<body>
<div id="wrapper">
<div id="page-wrapper">
<div class="container-fluid">
@@ -191,7 +190,6 @@
</div>
</div>
</div>
</body>
<?php $this->load->view("templates/FHC-Footer"); ?>
@@ -19,7 +19,6 @@
)
);
?>
<body>
<fieldset>
@@ -56,6 +55,5 @@
<div id="readMessagePanel"></div>
</body>
<?php $this->load->view("templates/FHC-Footer"); ?>
@@ -17,7 +17,6 @@
)
);
?>
<body>
<div id="wrapper">
<div id="page-wrapper">
<div class="container-fluid">
@@ -101,6 +100,5 @@
</div>
</div>
</div>
</body>
<?php $this->load->view("templates/FHC-Footer"); ?>
@@ -17,7 +17,6 @@
)
);
?>
<body>
<div id="wrapper">
<div id="page-wrapper">
<div class="container-fluid">
@@ -96,6 +95,5 @@
</div>
</div>
</div>
</body>
<?php $this->load->view("templates/FHC-Footer"); ?>
@@ -12,7 +12,6 @@
);
?>
<body>
<div id="wrapper">
<div id="page-wrapper">
<div class="container-fluid">
@@ -77,6 +76,5 @@
</div>
</div>
</div>
</body>
<?php $this->load->view("templates/FHC-Footer"); ?>
@@ -12,7 +12,6 @@
);
?>
<body>
<div id="wrapper">
<div id="page-wrapper">
<div class="container-fluid">
@@ -77,6 +76,5 @@
</div>
</div>
</div>
</body>
<?php $this->load->view("templates/FHC-Footer"); ?>
@@ -11,7 +11,6 @@
)
);
?>
<body>
<div id="wrapper">
<div id="page-wrapper">
<div class="container-fluid">
@@ -99,6 +98,5 @@
</div>
</div>
</div>
</body>
<?php $this->load->view("templates/FHC-Footer"); ?>
@@ -13,7 +13,6 @@
)
);
?>
<body>
<div id="wrapper">
<div id="page-wrapper">
<div class="container-fluid">
@@ -88,6 +87,5 @@
</div>
</div>
</div>
</body>
<?php $this->load->view("templates/FHC-Footer"); ?>
@@ -17,7 +17,6 @@
)
);
?>
<body>
<div id="wrapper">
<div id="page-wrapper">
<div class="container-fluid">
@@ -191,6 +190,5 @@
</div>
</div>
</div>
</body>
<?php $this->load->view("templates/FHC-Footer"); ?>
@@ -23,6 +23,7 @@
$tablesorter2 = isset($tablesorter2) ? $tablesorter2 : false;
$tabulator4 = isset($tabulator4) ? $tabulator4 : false;
$tabulator5 = isset($tabulator5) ? $tabulator5 : false;
$tabulator5JQuery = isset($tabulator5JQuery) ? $tabulator5JQuery : false;
$tinymce3 = isset($tinymce3) ? $tinymce3 : false;
$tinymce5 = isset($tinymce5) ? $tinymce5 : false;
$vue3 = isset($vue3) ? $vue3 : false;
+2 -1
View File
@@ -99,7 +99,8 @@
// Tabulator 5 JS
if ($tabulator5 === true) generateJSsInclude('vendor/olifolkerd/tabulator5/dist/js/tabulator.min.js');
// Tabulator 5 JQuery
if ($tabulator5JQuery === true) generateJSsInclude('public/js/tabulator/jquery_wrapper.js');
// Tinymce 3 JS
if ($tinymce3 === true) generateJSsInclude('include/tiny_mce/tiny_mce.js');
+1
View File
@@ -34,6 +34,7 @@
<?php HTMLWidget::printAttribute(${HTMLWidget::HTML_ARG_NAME}, HTMLWidget::REGEX); ?>
<?php HTMLWidget::printAttribute(${HTMLWidget::HTML_ARG_NAME}, HTMLWidget::TITLE); ?>
<?php HTMLWidget::printAttribute(${HTMLWidget::HTML_ARG_NAME}, HTMLWidget::DISABLED, false); ?>
<?php HTMLWidget::printAttribute(${HTMLWidget::HTML_ARG_NAME}, HTMLWidget::STYLE); ?>
>
<?php
$elements = ${DropdownWidget::WIDGET_DATA_ELEMENTS_ARRAY_NAME};
+10 -9
View File
@@ -1,24 +1,25 @@
<br>
<div class="row" id="divTableWidgetDataset" tableUniqueId="<?php echo $tableUniqueId; ?>">
<div class="col-lg-12">
<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 )-->
<!-- 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 style="border:1px solid lightgrey; border-bottom:none; ">
<?php TableWidget::loadViewDataset(); ?>
</div>
<!-- Table info bottom -->
<div id="tableDatasetActionsBottom"></div>
<!-- Table widget footer -->
<div id="tableWidgetFooter"></div>
</div>
</div>
</div>
</div>
@@ -1,10 +1,19 @@
<!--CollapseHTML 'Help'-->
<div class="row">
<div class="col-lg-12 collapse" id="tabulatorHelp-<?php echo $tableUniqueId; ?>">
<div class="well">
<div class="mb-2 "
style="<?php
if(isset($bootstrapVersion) && $bootstrapVersion==5)
{
echo "border: 1px solid #ccc;
border-radius: 4px;
padding: 15px;
background-color: #f5f5f5;";
} ?>"
>
<h4><?php echo ucfirst($this->p->t('ui', 'tabelleneinstellungen')); ?></h4>
<div class="panel panel-body">
<div class=" <?php echo (isset($bootstrapVersion) && $bootstrapVersion==5)?"card card-body":"panel panel-body" ?>">
<b><?php echo $this->p->t('table', 'spaltenEinAusblenden'); ?></b>
<p>
<ul>
@@ -25,11 +34,11 @@
<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>
<div class="<?php echo (isset($bootstrapVersion) && $bootstrapVersion==5)?"card card-body":"panel panel-body" ?>">
<ul class="mb-0">
<li class="mb-1"><?php echo $this->p->t('table', 'zeilenAuswaehlenEinzeln'); ?></li>
<li class="mb-1"><?php echo $this->p->t('table', 'zeilenAuswaehlenBereich'); ?></li>
<li class="mb-1"><?php echo $this->p->t('table', 'zeilenAuswaehlenAlle'); ?></li>
</ul>
</div>
<br> <!--end panel-body-->
+14 -1
View File
@@ -35,6 +35,9 @@ class TableWidget extends Widget
// Required permissions to use this TableWidget
private $_requiredPermissions;
// optional bootstrap version can be set to use different bootstrap classes
private $_bootstrapVersion=3;
// SQL statement
private $_query;
@@ -92,8 +95,10 @@ class TableWidget extends Widget
*/
public function display($widgetData)
{
$this->view(self::WIDGET_URL_TABLE, array(
'tableUniqueId' => $widgetData[TableWidgetLib::TABLE_UNIQUE_ID]
'tableUniqueId' => $widgetData[TableWidgetLib::TABLE_UNIQUE_ID],
'bootstrapVersion' => $widgetData[TableWidgetLib::TABLE_BOOTSTRAP_VERSION],
)); // GUI starts here
}
@@ -135,6 +140,7 @@ class TableWidget extends Widget
// Initialize class properties
$this->_requiredPermissions = null;
$this->_bootstrapVersion = 3;
$this->_reloadDataset = true; // by default the dataset is NOT cached in session
$this->_query = null;
$this->_additionalColumns = null;
@@ -154,6 +160,12 @@ class TableWidget extends Widget
$this->_requiredPermissions = $args[TableWidgetLib::REQUIRED_PERMISSIONS];
}
// Retrieved the optional tableWindget Bootstrap version
if (isset($args[TableWidgetLib::TABLE_BOOTSTRAP_VERSION]) && !isEmptyString($args[TableWidgetLib::TABLE_BOOTSTRAP_VERSION]))
{
$this->_bootstrapVersion = $args[TableWidgetLib::TABLE_BOOTSTRAP_VERSION];
}
// How to retrieve data for the table: SQL statement or a result from DB
if (isset($args[TableWidgetLib::QUERY]))
{
@@ -349,6 +361,7 @@ class TableWidget extends Widget
$this->tablewidgetlib->setSession(
array(
TableWidgetLib::TABLE_UNIQUE_ID => $tableUniqueId, // table unique id
TableWidgetLib::TABLE_BOOTSTRAP_VERSION => $this->_bootstrapVersion, // bootstrap version for tableWidget
TableWidgetLib::SESSION_FIELDS => $this->tablewidgetlib->getExecutedQueryListFields(), // all the fields of the dataset
TableWidgetLib::SESSION_COLUMNS_ALIASES => $this->_columnsAliases, // all the fields aliases
TableWidgetLib::SESSION_ADDITIONAL_COLUMNS => $this->_additionalColumns, // additional columns
+1
View File
@@ -27,6 +27,7 @@ class HTMLWidget extends Widget
const MIN_LENGTH = 'min-length';
const PLACEHOLDER = 'placeholder';
const DISABLED = 'disabled';
const STYLE = 'class';
/**
* It gets also the htmlArgs array as parameter, it will be used to set the HTML properties
+76
View File
@@ -39,6 +39,71 @@
z-index: 999999;
}
/* classes for rows that are not selectable in the tabulator, except for rows that are used for calculation */
.tabulator-row.tabulator-unselectable:not(.tabulator-calcs) {
color: #adb5bd !important;
pointer-events: none !important;
}
.tabulator-row.tabulator-unselectable a {
pointer-events: auto !important;
}
/* using bootstrap background classes to style the background color of tabulator rows */
/* bg-warning */
/* odd-rows */
.tabulator-headers .tabulator-frozen.bg-warning,
.tabulator-row.tabulator-row-odd .tabulator-frozen.bg-warning,
.tabulator-row.tabulator-row-odd .tabulator-cell.bg-warning {
background-color: #fcf8e3;
}
/* even-rows */
.tabulator-headers .tabulator-frozen.bg-warning,
.tabulator-row.tabulator-row-even .tabulator-frozen.bg-warning,
.tabulator-row.tabulator-row-even .tabulator-cell.bg-warning {
background-color: #fcf8e3;
}
/* bg-success */
/* odd-rows */
.tabulator-headers .tabulator-frozen.bg-success,
.tabulator-row.tabulator-row-odd .tabulator-frozen.bg-success,
.tabulator-row.tabulator-row-odd .tabulator-cell.bg-success {
background-color: #dff0d8;
}
/* even-rows */
.tabulator-headers .tabulator-frozen.bg-success,
.tabulator-row.tabulator-row-even .tabulator-frozen.bg-success,
.tabulator-row.tabulator-row-even .tabulator-cell.bg-success {
background-color: #dff0d8;
}
/* bg-info */
/* odd-rows */
.tabulator-headers .tabulator-frozen.bg-info,
.tabulator-row.tabulator-row-odd .tabulator-frozen.bg-info,
.tabulator-row.tabulator-row-odd .tabulator-cell.bg-info {
background-color: #d9edf7;
}
/* even-rows */
.tabulator-headers .tabulator-frozen.bg-info,
.tabulator-row.tabulator-row-even .tabulator-frozen.bg-info,
.tabulator-row.tabulator-row-even .tabulator-cell.bg-info {
background-color: #d9edf7;
}
/* special bootstrap5 styling for tableWidget and their accordion-item ::after content */
.accordion-button::after{
content:none !important;
}
.tabulator {
font-size: 1rem;
}
@@ -54,3 +119,14 @@
z-index: 1;
outline: 0;
}
.btn-select-col-selected
{
background-color: #e6e6e6;
}
.accordion-item-dark, .accordion-item-dark:focus{
background-color:#CED4DA !important;
border-color:#ADB5BD !important;
box-shadow: none !important;
}
+45
View File
@@ -64,6 +64,7 @@ h6, .h6 {
.tabulator {
font-size: var(--bs-body-font-size);
}
.fhc-container .tabulator {
@@ -93,6 +94,50 @@ h6, .h6 {
background-color: #ececec;
}
/* using bootstrap background classes to style the background color of tabulator rows */
/* bg-warning */
/* odd-rows */
.fhc-container .tabulator .tabulator-row.tabulator-row-odd .tabulator-frozen.bg-warning,
.fhc-container .tabulator .tabulator-row.tabulator-row-odd .tabulator-cell.bg-warning {
background-color: #fcf8e3;
}
/* even-rows */
.fhc-container .tabulator .tabulator-row.tabulator-row-even .tabulator-frozen.bg-warning,
.fhc-container .tabulator .tabulator-row.tabulator-row-even .tabulator-cell.bg-warning {
background-color: #fcf8e3;
}
/* bg-success */
/* odd-rows */
.fhc-container .tabulator .tabulator-row.tabulator-row-odd .tabulator-frozen.bg-success,
.fhc-container .tabulator .tabulator-row.tabulator-row-odd .tabulator-cell.bg-success {
background-color: #dff0d8;
}
/* even-rows */
.fhc-container .tabulator .tabulator-row.tabulator-row-even .tabulator-frozen.bg-success,
.fhc-container .tabulator .tabulator-row.tabulator-row-even .tabulator-cell.bg-success {
background-color: #dff0d8;
}
/* bg-info */
/* odd-rows */
.fhc-container .tabulator .tabulator-row.tabulator-row-odd .tabulator-frozen.bg-info,
.fhc-container .tabulator .tabulator-row.tabulator-row-odd .tabulator-cell.bg-info {
background-color: #d9edf7;
}
/* even-rows */
.fhc-container .tabulator .tabulator-row.tabulator-row-even .tabulator-frozen.bg-info,
.fhc-container .tabulator .tabulator-row.tabulator-row-even .tabulator-cell.bg-info {
background-color: #d9edf7;
}
.fhc-container .tabulator .tabulator-col,
.fhc-container .tabulator .tabulator-cell {
border-right: 1px solid #dee2e6;
+67 -1
View File
@@ -1,7 +1,73 @@
.btn-w200
{
width: 200px;
}
.btn-mr5
{
margin-right: 10px;
}
.select-w500 {
width: 500px;
}
.pl-15 {
padding-left: 15px !important;
}
}
.bg-secondary-subtle{
background-color: #E9ECEF !important;
border-style: solid !important;
border-width: 1px !important;
border-color: #DEE2E6 !important;
}
.bg-info-subtle{
background-color: #D9EDF7 !important;
color: #31708F !important;
border-style: solid !important;
border-width: 1px !important;
border-color: #BCE8F1 !important;
}
.bg-warning-subtle{
background-color: #FFF3CD !important;
color: #664D03 !important;
border-style: solid !important;
border-width: 1px !important;
border-color: #FFE69C !important;
}
.bg-success-subtle{
background-color: #D1E7DD !important;
color: #0A3622 !important;
border-style: solid !important;
border-width: 1px !important;
border-color: #A3CFBB !important;
}
.bg-danger-subtle{
background-color: #F8D7DA !important;
color: #672B31 !important;
border-style: solid !important;
border-width: 1px !important;
border-color: #F1AEB5 !important;
}
.bg-primary-subtle{
background-color: #CFE2FF !important;
color: #052C65 !important;
border-style: solid !important;
border-width: 1px !important;
border-color: #9EC5FE !important;
}
/* html attribute disabled and title don't work together, sets the pointer-event to auto in order to see the title toolip */
.btn:disabled {
pointer-events: auto !important;
cursor: default;
}
+913 -835
View File
File diff suppressed because it is too large Load Diff
+240 -198
View File
@@ -1,242 +1,284 @@
// TABULATOR
// ---------------------------------------------------------------------------------------------------------------------
// global variable used to check whether the modal button should insert or update a
var isUpdate = false;
// Add Edit and Update Buttons to table rows
function func_tableBuilt(table) {
table.addColumn(
{
title: "Aktion",
align: "center",
width: 150,
formatter: addActionButtons,
}, false // place column right
);
table.tabulator(
"addColumn",
{
title: "Aktion",
align: "center",
width: 150,
formatter: addActionButtons,
},
false // place column right
);
// fully redrawing the table after adding the Details column
table.tabulator("redraw", true);
}
// Returns relative height (depending on screen size)
function func_height(table){
return $(window).height() * 0.50;
function func_height(table) {
return $(window).height() * 0.5;
}
// Converts string date postgre style to string DD.MM.YYYY.
// This will allow correct filtering.
var formatDate = function(cell, formatterParams){
let postgreDate = cell.getValue();
if (postgreDate != null)
{
var d = new Date(postgreDate);
return ("0" + (d.getDate())).slice(-2) + "." + ("0" + (d.getMonth() + 1)).slice(-2) + "." + d.getFullYear();
}
}
var formatDate = function (cell, formatterParams) {
let postgreDate = cell.getValue();
if (postgreDate != null) {
var d = new Date(postgreDate);
return (
("0" + d.getDate()).slice(-2) +
"." +
("0" + (d.getMonth() + 1)).slice(-2) +
"." +
d.getFullYear()
);
}
};
// Create Edit and Update Buttons for table rows
var addActionButtons = function(cell) {
var addActionButtons = function (cell) {
// Create edit button
var editBtn = document.createElement("button");
editBtn.type = "button";
editBtn.innerHTML = '<i class="fa fa-edit"></i>';
editBtn.classList.add("azrEditBtn");
editBtn.classList.add("btn");
editBtn.classList.add("btn-default");
editBtn.addEventListener("click", function () {
adminAnrechnung.editRow(cell);
});
// Create edit button
var editBtn = document.createElement("button");
editBtn.type = "button";
editBtn.innerHTML = "<i class=\"fa fa-edit\"></i>";
editBtn.classList.add("azrEditBtn");
editBtn.classList.add("btn");
editBtn.classList.add("btn-default");
editBtn.addEventListener("click", function(){
adminAnrechnung.editRow(cell);
});
// Create delete button
var delBtn = document.createElement("button");
delBtn.type = "button";
delBtn.innerHTML = '<i class="fa fa-times"></i>';
delBtn.classList.add("azrDeleteBtn");
delBtn.classList.add("btn");
delBtn.classList.add("btn-default");
delBtn.style.marginLeft = "5px";
delBtn.addEventListener("click", function () {
adminAnrechnung.deleteRow(cell);
});
// Add buttons to cell
var buttonHolder = document.createElement("span");
buttonHolder.appendChild(editBtn);
buttonHolder.appendChild(delBtn);
// Create delete button
var delBtn= document.createElement("button");
delBtn.type = "button";
delBtn.innerHTML = "<i class=\"fa fa-times\"></i>";
delBtn.classList.add("azrDeleteBtn");
delBtn.classList.add("btn");
delBtn.classList.add("btn-default");
delBtn.style.marginLeft = '5px';
delBtn.addEventListener("click", function(){
adminAnrechnung.deleteRow(cell);
});
// Add buttons to cell
var buttonHolder = document.createElement("span");
buttonHolder.appendChild(editBtn);
buttonHolder.appendChild(delBtn);
return buttonHolder;
}
return buttonHolder;
};
// ---------------------------------------------------------------------------------------------------------------------
$(function () {
$(document).on("tableInit", function (event, tabulatorInstance) {
// tablutBuilt has to be attached as a callback the the tabulator in tabulator5
func_tableBuilt($("#tableWidgetTabulator"));
});
// Empty Modal fields on 'Anrechnungszeitraum hinzufuegen'
$(document).on('click', '.azrOpenModal', function(){
// Empty Modal fields on 'Anrechnungszeitraum hinzufuegen'
$(document).on("click", ".azrOpenModal", function () {
let defaultStudiensemester_kurzbz = $(
".modal-body #defaultStudiensemester_kurzbz"
).val();
let defaultStudiensemester_kurzbz = $('.modal-body #defaultStudiensemester_kurzbz').val();
$(".modal-header #azrModalLabel").text(
FHC_PhrasesLib.t("anrechnung", "anrechnungszeitraumHinzufuegen")
);
$('.modal-header #azrModalLabel').text(FHC_PhrasesLib.t("anrechnung", "anrechnungszeitraumHinzufuegen"));
$(".modal-body #anrechnungszeitraum_id").val("");
$(".modal-body #studiensemester")
.val(defaultStudiensemester_kurzbz)
.change();
$(".modal-body #azrStart").val("");
$(".modal-body #azrEnde").val("");
});
$('.modal-body #anrechnungszeitraum_id').val('');
$('.modal-body #studiensemester').val(defaultStudiensemester_kurzbz).change();
$('.modal-body #azrStart').val('');
$('.modal-body #azrEnde').val('');
// Insert Anrechnungszeitraum
$(document).on("click", "#azrInsertBtn", function () {
var studiensemester_kurzbz = $(".modal-body #studiensemester").val();
var anrechnungstart = $(".modal-body #azrStart").val();
var anrechnungende = $(".modal-body #azrEnde").val();
});
if (isUpdate) {
// read the id of the anrechungszeitraum
var anrechnungszeitraum_id = $(
".modal-body #anrechnungszeitraum_id"
).val();
// Insert Anrechnungszeitraum
$(document).on('click', '#azrInsertBtn', function(){
var studiensemester_kurzbz = $('.modal-body #studiensemester').val();
var anrechnungstart = $('.modal-body #azrStart').val();
var anrechnungende = $('.modal-body #azrEnde').val();
// Insert Anrechnungszeitraum
adminAnrechnung.insertAzr(studiensemester_kurzbz, anrechnungstart, anrechnungende);
});
})
// Update Anrechnungszeitraum
adminAnrechnung.updateAzr(
anrechnungszeitraum_id,
studiensemester_kurzbz,
anrechnungstart,
anrechnungende
);
} else {
// Insert Anrechnungszeitraum
adminAnrechnung.insertAzr(
studiensemester_kurzbz,
anrechnungstart,
anrechnungende
);
}
});
});
var adminAnrechnung = {
insertAzr: function(studiensemester_kurzbz, anrechnungstart, anrechnungende){
FHC_AjaxClient.ajaxCallPost(
FHC_JS_DATA_STORAGE_OBJECT.called_path + "/save",
{
studiensemester_kurzbz: studiensemester_kurzbz,
anrechnungstart: anrechnungstart,
anrechnungende: anrechnungende
},
{
successCallback: function (data, textStatus, jqXHR)
insertAzr: function (
studiensemester_kurzbz,
anrechnungstart,
anrechnungende
) {
FHC_AjaxClient.ajaxCallPost(
FHC_JS_DATA_STORAGE_OBJECT.called_path + "/save",
{
studiensemester_kurzbz: studiensemester_kurzbz,
anrechnungstart: anrechnungstart,
anrechnungende: anrechnungende,
},
{
successCallback: function (data, textStatus, jqXHR) {
if (FHC_AjaxClient.isError(data)) {
FHC_DialogLib.alertWarning(FHC_AjaxClient.getError(data));
}
if (FHC_AjaxClient.hasData(data)) {
data = FHC_AjaxClient.getData(data);
// Update row
$("#tableWidgetTabulator").tabulator(
"addData",
[
{
if (FHC_AjaxClient.isError(data))
{
FHC_DialogLib.alertWarning(FHC_AjaxClient.getError(data));
}
if (FHC_AjaxClient.hasData(data))
{
data = FHC_AjaxClient.getData(data);
// Update row
$('#tableWidgetTabulator').tabulator('addData', [{
anrechnungszeitraum_id: data.anrechnungszeitraum_id,
studiensemester_kurzbz: studiensemester_kurzbz,
anrechnungstart: anrechnungstart,
anrechnungende: anrechnungende
}], true); // true to add row on top
// Close Modal
$('#azrModal').modal('hide');
// Success message
FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t("ui", "gespeichert"));
}
anrechnungszeitraum_id: data.anrechnungszeitraum_id,
studiensemester_kurzbz: studiensemester_kurzbz,
anrechnungstart: anrechnungstart,
anrechnungende: anrechnungende,
},
errorCallback: function (jqXHR, textStatus, errorThrown)
{
FHC_DialogLib.alertError(FHC_PhrasesLib.t("ui", "systemfehler"));
}
}
);
},
editRow: function (cell){
// Open Modal
$('#azrModal').modal('show');
],
true
); // true to add row on top
let row = cell.getRow();
var anrechnungszeitraum_id = row.getData().anrechnungszeitraum_id;
var studiensemester_kurzbz = row.getData().studiensemester_kurzbz;
var anrechnungstart = row.getData().anrechnungstart;
var anrechnungende = row.getData().anrechnungende;
// Close Modal
$("#azrModal").modal("hide");
$('.modal-header #azrModalLabel').text('Anrechnungszeitraum bearbeiten');
// Success message
FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t("ui", "gespeichert"));
}
},
errorCallback: function (jqXHR, textStatus, errorThrown) {
FHC_DialogLib.alertError(FHC_PhrasesLib.t("ui", "systemfehler"));
},
}
);
},
editRow: function (cell) {
// Open Modal
$("#azrModal").modal("show");
$('.modal-body #anrechnungszeitraum_id').val(anrechnungszeitraum_id);
$('.modal-body #studiensemester').val(studiensemester_kurzbz).change();
$('.modal-body #azrStart').val(anrechnungstart);
$('.modal-body #azrEnde').val(anrechnungende);
// set global condition to true, so that the modal knows whether to display an insert or edit button
isUpdate = true;
},
updateAzr: function (anrechnungszeitraum_id, studiensemester_kurzbz, anrechnungstart, anrechnungende) {
FHC_AjaxClient.ajaxCallPost(
FHC_JS_DATA_STORAGE_OBJECT.called_path + "/edit",
{
let row = cell.getRow();
var anrechnungszeitraum_id = row.getData().anrechnungszeitraum_id;
var studiensemester_kurzbz = row.getData().studiensemester_kurzbz;
var anrechnungstart = row.getData().anrechnungstart;
var anrechnungende = row.getData().anrechnungende;
$(".modal-header #azrModalLabel").text("Anrechnungszeitraum bearbeiten");
$(".modal-body #anrechnungszeitraum_id").val(anrechnungszeitraum_id);
$(".modal-body #studiensemester").val(studiensemester_kurzbz).change();
$(".modal-body #azrStart").val(anrechnungstart);
$(".modal-body #azrEnde").val(anrechnungende);
},
updateAzr: function (
anrechnungszeitraum_id,
studiensemester_kurzbz,
anrechnungstart,
anrechnungende
) {
FHC_AjaxClient.ajaxCallPost(
FHC_JS_DATA_STORAGE_OBJECT.called_path + "/edit",
{
anrechnungszeitraum_id: anrechnungszeitraum_id,
studiensemester_kurzbz: studiensemester_kurzbz,
anrechnungstart: anrechnungstart,
anrechnungende: anrechnungende,
},
{
successCallback: function (data, textStatus, jqXHR) {
if (FHC_AjaxClient.isError(data)) {
FHC_DialogLib.alertWarning(FHC_AjaxClient.getError(data));
}
if (FHC_AjaxClient.hasData(data)) {
// Update row
$("#tableWidgetTabulator").tabulator("updateData", [
{
anrechnungszeitraum_id: anrechnungszeitraum_id,
studiensemester_kurzbz: studiensemester_kurzbz,
anrechnungstart: anrechnungstart,
anrechnungende: anrechnungende
},
{
successCallback: function (data, textStatus, jqXHR)
{
if (FHC_AjaxClient.isError(data))
{
FHC_DialogLib.alertWarning(FHC_AjaxClient.getError(data));
}
anrechnungende: anrechnungende,
},
]);
if (FHC_AjaxClient.hasData(data))
{
// Update row
$('#tableWidgetTabulator').tabulator('updateData', [{
anrechnungszeitraum_id: anrechnungszeitraum_id,
studiensemester_kurzbz: studiensemester_kurzbz,
anrechnungstart: anrechnungstart,
anrechnungende: anrechnungende
}]);
// Close Modal
$("#azrModal").modal("hide");
// Close Modal
$('#azrModal').modal('hide');
// Success message
FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t("ui", "gespeichert"));
}
},
errorCallback: function (jqXHR, textStatus, errorThrown) {
FHC_DialogLib.alertError(FHC_PhrasesLib.t("ui", "systemfehler"));
},
}
);
},
deleteAzr: function (anrechnungszeitraum_id) {
FHC_AjaxClient.ajaxCallPost(
FHC_JS_DATA_STORAGE_OBJECT.called_path + "/delete",
{
anrechnungszeitraum_id: anrechnungszeitraum_id,
},
{
successCallback: function (data, textStatus, jqXHR) {
if (FHC_AjaxClient.isError(data)) {
FHC_DialogLib.alertWarning(FHC_AjaxClient.getError(data));
}
// Success message
FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t("ui", "gespeichert"));
if (FHC_AjaxClient.hasData(data)) {
let row = $("#tableWidgetTabulator").tabulator(
"getRow",
anrechnungszeitraum_id
);
row.delete(anrechnungszeitraum_id);
}
},
errorCallback: function (jqXHR, textStatus, errorThrown)
{
FHC_DialogLib.alertError(FHC_PhrasesLib.t("ui", "systemfehler"));
}
}
);
},
deleteAzr: function(anrechnungszeitraum_id){
FHC_AjaxClient.ajaxCallPost(
FHC_JS_DATA_STORAGE_OBJECT.called_path + "/delete",
{
anrechnungszeitraum_id: anrechnungszeitraum_id
},
{
successCallback: function (data, textStatus, jqXHR)
{
if (FHC_AjaxClient.isError(data))
{
FHC_DialogLib.alertWarning(FHC_AjaxClient.getError(data));
}
if (FHC_AjaxClient.hasData(data))
{
let row = $('#tableWidgetTabulator').tabulator('getRow', anrechnungszeitraum_id);
row.delete(anrechnungszeitraum_id);
// Success message
FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t("ui", "geloescht"));
}
},
errorCallback: function (jqXHR, textStatus, errorThrown)
{
FHC_DialogLib.alertError(FHC_PhrasesLib.t("ui", "systemfehler"));
}
}
);
},
deleteRow: function (cell){
if(!confirm(FHC_PhrasesLib.t("ui", "frageSicherLoeschen")))
{
return;
}
// Delete Anrechnungszeitraum
adminAnrechnung.deleteAzr(cell.getRow().getData().anrechnungszeitraum_id);
// Success message
FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t("ui", "geloescht"));
}
},
errorCallback: function (jqXHR, textStatus, errorThrown) {
FHC_DialogLib.alertError(FHC_PhrasesLib.t("ui", "systemfehler"));
},
}
);
},
deleteRow: function (cell) {
if (!confirm(FHC_PhrasesLib.t("ui", "frageSicherLoeschen"))) {
return;
}
}
// Delete Anrechnungszeitraum
adminAnrechnung.deleteAzr(cell.getRow().getData().anrechnungszeitraum_id);
},
};
@@ -393,16 +393,16 @@ var approveAnrechnungDetail = {
switch (status_kurzbz) {
case ANRECHNUNGSTATUS_APPROVED:
$('#approveAnrechnungDetail-status_kurzbz').closest('div').addClass('alert-success');
$('#approveAnrechnungDetail-status_kurzbz').closest('div').addClass('bg-success-subtle');
break;
case ANRECHNUNGSTATUS_REJECTED:
$('#approveAnrechnungDetail-status_kurzbz').closest('div').addClass('alert-danger');
$('#approveAnrechnungDetail-status_kurzbz').closest('div').addClass('bg-danger-subtle');
break;
case '':
$('#approveAnrechnungDetail-status_kurzbz').closest('div').addClass('alert-info');
$('#approveAnrechnungDetail-status_kurzbz').closest('div').addClass('bg-info-subtle');
break;
default:
$('#approveAnrechnungDetail-status_kurzbz').closest('div').addClass('alert-warning');
$('#approveAnrechnungDetail-status_kurzbz').closest('div').addClass('bg-warning-subtle');
}
},
setEmpfehlungstext: function () {
@@ -424,7 +424,7 @@ var approveAnrechnungDetail = {
}
},
initTooltips: function (){
$('[data-toggle="tooltip"]').tooltip({
$('[data-bs-toggle="tooltip"]').tooltip({
delay: { "show": 200, "hide": 200 },
html: true
}
@@ -498,14 +498,14 @@ var approveAnrechnungDetail = {
$('#approveAnrechnungDetail-request-recommendation').prop('disabled', true);
$('#approveAnrechnungDetail-approve-anrechnung-ask').prop('disabled', true);
$('#approveAnrechnungDetail-reject-anrechnung-ask').prop('disabled', true);
$('#approveAnrechnungDetail-withdraw-request-recommedation').removeClass('hidden');
$('#approveAnrechnungDetail-withdraw-request-recommedation').removeClass('visually-hidden');
},
formatGenehmigungIsPositiv: function(abgeschlossenAm, abgeschlossenVon, statusKurzbz, statusBezeichnung){
$('#approveAnrechnungDetail-genehmigungDetail-genehmigungIsNull').addClass('hidden');
$('#approveAnrechnungDetail-genehmigungDetail-genehmigungIsNegativ').addClass('hidden');
$('#approveAnrechnungDetail-genehmigungDetail-genehmigungIsPositiv').removeClass('hidden');
$('#approveAnrechnungDetail-genehmigungDetail-genehmigungIsNull').addClass('visually-hidden');
$('#approveAnrechnungDetail-genehmigungDetail-genehmigungIsNegativ').addClass('visually-hidden');
$('#approveAnrechnungDetail-genehmigungDetail-genehmigungIsPositiv').removeClass('visually-hidden');
$('#approveAnrechnungDetail-status_kurzbz').text(statusBezeichnung);
$('#approveAnrechnungDetail-status_kurzbz').closest('div').removeClass('alert-warning').addClass('alert-success');
$('#approveAnrechnungDetail-status_kurzbz').closest('div').removeClass('bg-warning-subtle').addClass('bg-success-subtle');
$('#approveAnrechnungDetail-status_kurzbz').data('status_kurzbz', statusKurzbz);
$('#approveAnrechnungDetail-abgeschlossenAm').text(abgeschlossenAm);
$('#approveAnrechnungDetail-abgeschlossenVon').text(abgeschlossenVon);
@@ -514,14 +514,14 @@ var approveAnrechnungDetail = {
$('#approveAnrechnungDetail-reject-anrechnung-ask').prop('disabled', true);
// Show button to withdraw approval
$('#approveAnrechnungDetail-withdraw-anrechnung-approvement').removeClass('hidden');
$('#approveAnrechnungDetail-withdraw-anrechnung-approvement').removeClass('visually-hidden');
},
formatGenehmigungIsNegativ: function(abgeschlossenAm, abgeschlossenVon, statusKurzbz, statusBezeichnung, begruendung){
$('#approveAnrechnungDetail-genehmigungDetail-genehmigungIsNull').addClass('hidden');
$('#approveAnrechnungDetail-genehmigungDetail-genehmigungIsPositiv').addClass('hidden');
$('#approveAnrechnungDetail-genehmigungDetail-genehmigungIsNegativ').removeClass('hidden');
$('#approveAnrechnungDetail-genehmigungDetail-genehmigungIsNull').addClass('visually-hidden');
$('#approveAnrechnungDetail-genehmigungDetail-genehmigungIsPositiv').addClass('visually-hidden');
$('#approveAnrechnungDetail-genehmigungDetail-genehmigungIsNegativ').removeClass('visually-hidden');
$('#approveAnrechnungDetail-status_kurzbz').text(statusBezeichnung);
$('#approveAnrechnungDetail-status_kurzbz').closest('div').removeClass('alert-warning').addClass('alert-danger');
$('#approveAnrechnungDetail-status_kurzbz').closest('div').removeClass('bg-warning-subtle').addClass('bg-danger-subtle');
$('#approveAnrechnungDetail-status_kurzbz').data('status_kurzbz', statusKurzbz);
$('#approveAnrechnungDetail-abgeschlossenAm').text(abgeschlossenAm);
$('#approveAnrechnungDetail-abgeschlossenVon').text(abgeschlossenVon);
@@ -531,18 +531,18 @@ var approveAnrechnungDetail = {
$('#approveAnrechnungDetail-reject-anrechnung-ask').prop('disabled', true);
// Show button to withdraw approval
$('#approveAnrechnungDetail-withdraw-anrechnung-approvement').removeClass('hidden');
$('#approveAnrechnungDetail-withdraw-anrechnung-approvement').removeClass('visually-hidden');
},
formatGenehmigungIsWithdrawed: function (statusBezeichnung){
let empfehlung = $('#approveAnrechnungDetail-empfehlung').data('empfehlung'); // null / false / true
$('#approveAnrechnungDetail-status_kurzbz').text(statusBezeichnung);
$('#approveAnrechnungDetail-status_kurzbz').closest('div').removeClass('alert-danger').removeClass('alert-success');
$('#approveAnrechnungDetail-status_kurzbz').closest('div').addClass('alert-warning');
$('#approveAnrechnungDetail-status_kurzbz').closest('div').removeClass('bg-danger-subtle').removeClass('bg-success-subtle');
$('#approveAnrechnungDetail-status_kurzbz').closest('div').addClass('bg-warning-subtle');
$('#approveAnrechnungDetail-genehmigungDetail-genehmigungIsNull').removeClass('hidden');
$('#approveAnrechnungDetail-genehmigungDetail-genehmigungIsPositiv').addClass('hidden');
$('#approveAnrechnungDetail-genehmigungDetail-genehmigungIsNegativ').addClass('hidden');
$('#approveAnrechnungDetail-genehmigungDetail-genehmigungIsNull').removeClass('visually-hidden');
$('#approveAnrechnungDetail-genehmigungDetail-genehmigungIsPositiv').addClass('visually-hidden');
$('#approveAnrechnungDetail-genehmigungDetail-genehmigungIsNegativ').addClass('visually-hidden');
$('#approveAnrechnungDetail-abgeschlossenAm').text('-');
$('#approveAnrechnungDetail-abgeschlossenVon').text('-');
@@ -555,12 +555,12 @@ var approveAnrechnungDetail = {
$('#approveAnrechnungDetail-approve-anrechnung-ask').prop('disabled', false);
$('#approveAnrechnungDetail-reject-anrechnung-ask').prop('disabled', false);
// Hide button to withdraw approval
$('#approveAnrechnungDetail-withdraw-anrechnung-approvement').addClass('hidden');
$('#approveAnrechnungDetail-withdraw-anrechnung-approvement').addClass('visually-hidden');
},
formatEmpfehlungIsWithdrawed: function (statusBezeichnung){
$('#approveAnrechnungDetail-status_kurzbz').text(statusBezeichnung);
$('#approveAnrechnungDetail-empfehlungDetail-empfehlungIsNull').removeClass('hidden');
$('#approveAnrechnungDetail-empfehlungDetail-empfehlungIsNull').removeClass('visually-hidden');
$('#approveAnrechnungDetail-empfehlungDetail-empfehlungsanfrageAm').html('-');
$('#approveAnrechnungDetail-empfehlungDetail-empfehlungsanfrageAn').html('-');
@@ -568,7 +568,7 @@ var approveAnrechnungDetail = {
$('#approveAnrechnungDetail-approve-anrechnung-ask').prop('disabled', false);
$('#approveAnrechnungDetail-reject-anrechnung-ask').prop('disabled', false);
// Hide button to withdraw approval
$('#approveAnrechnungDetail-withdraw-request-recommedation').addClass('hidden');
$('#approveAnrechnungDetail-withdraw-request-recommedation').addClass('visually-hidden');
},
sumUpEcts: function(){
var ects = parseFloat($('#ects').text());
@@ -615,8 +615,9 @@ var approveAnrechnungDetail = {
$('#sumEctsTotal').text(sumEctsSchulisch + sumEctsBeruflich - ects);
},
alertIfMaxEctsExceeded: function(){
var begruendung_id = $('#begruendung_id').data('begruendung_id');
if (begruendung_id == 5)
{
return;
@@ -626,20 +627,19 @@ var approveAnrechnungDetail = {
(begruendung_id != 4 && (parseFloat($('#ects').text()) + parseFloat($('#sumEctsSchulisch').text()))) > 60 ||
(begruendung_id == 4 && (parseFloat($('#ects').text()) + parseFloat($('#sumEctsBeruflich').text()))) > 60 ||
(parseFloat($('#ects').text()) + parseFloat($('#sumEctsSchulisch').text()) + parseFloat($('#sumEctsBeruflich').text())) > 90
)
{
){
$('#sumEctsMsg')
.html("<br><b>ACHTUNG! Bei Anrechnung von LV: Überschreitung der Höchstgrenze für Anrechnungen gem. § 12 Abs. 3 Fachhochschulgesetz</b><i class=\"fa fa-lg fa-info-circle\"></i></br>")
.addClass('bg-danger text-danger')
.html("<span class='flex-fill fw-bold'>Die Höchstgrenze für Anrechnungen gem. § 12 Abs. 3 Fachhochschulgesetz ist überschritten. </span><i class='mx-4 fa fa-lg fa-info-circle'></i>")
.addClass('bg-danger-subtle')
.tooltip({
title: FHC_PhrasesLib.t("anrechnung", "anrechnungEctsTooltipTextBeiUeberschreitung"),
placement: 'right',
html: true
});
}
else
});
}else
{
$('#sumEctsMsg').html('').css('border', 'none');
}
}
},
}
File diff suppressed because it is too large Load Diff
+34 -2
View File
@@ -1,5 +1,16 @@
$(function () {
// tableInit is called in the jquery_wrapper when the tableBuilt event was finished
$(document).on("tableInit", function(event,tabulatorInstance) {
// event rowSelected needs to be attached as a callback to the tableBuilt event in tabulator5
$("#tableWidgetTabulator").tabulator("on","rowSelected",(row)=>{func_rowSelected(row)});
// event rowSelectionChanged needs to be attached as a callback to the tableBuilt event in tabulator5
$("#tableWidgetTabulator").tabulator("on","rowSelectionChanged",(data,rows)=>{func_rowSelectionChanged(data,rows)});
});
// Disable all form fields by default
createAnrechnung.disableFormFields();
@@ -8,6 +19,13 @@ $(function () {
e.preventDefault();
var fileInput = $('#requestAnrechnung-uploadfile');
const uploadMaxFilesize = $('#requestAnrechnung-uploadfile').data('maxsize') ; // in byte
if (!createAnrechnung.fileSizeOk(fileInput, uploadMaxFilesize)) // in byte
{
return FHC_DialogLib.alertWarning(FHC_PhrasesLib.t("ui", "errorDokumentZuGross"));
}
FHC_AjaxClient.ajaxCallPost(
FHC_JS_DATA_STORAGE_OBJECT.called_path + "/create",
{
@@ -93,6 +111,20 @@ function func_rowSelectionChanged(data, rows){
// ---------------------------------------------------------------------------------------------------------------------
var createAnrechnung = {
fileSizeOk: function(fileInput, maxSize){
if (fileInput.get(0).files.length){
var fileSize = fileInput.get(0).files[0].size; // in bytes
if (fileSize > maxSize)
{
return false;
}
return true;
}
},
emptyFormFields: function(){
// Empty field StudentIn
@@ -102,7 +134,7 @@ var createAnrechnung = {
$('#createAnrechnung-form :input:not([type=hidden])').val('');
// Hide eventually displayed button to open Anrechnung
$('#createAnrechnung-openAnrechnung').addClass('hidden');
$('#createAnrechnung-openAnrechnung').addClass('visually-hidden');
},
disableFormFields: function(){
let prestudent_id = $('#prestudent_id').data('prestudent_id');
@@ -152,7 +184,7 @@ var createAnrechnung = {
displayButtonToOpenAnrechnung: function(anrechnung_id){
// Display button to open Anrechnung in new tab
$('#createAnrechnung-openAnrechnung')
.removeClass('hidden')
.removeClass('visually-hidden')
.attr('href', 'ApproveAnrechnungDetail/?anrechnung_id=' + anrechnung_id)
.html('<i class="fa fa-external-link" aria-hidden="true"></i> ' + FHC_PhrasesLib.t("global", "antragBearbeiten"));
}
+27 -26
View File
@@ -62,7 +62,7 @@ $(function(){
var msgBeiEctsUeberschreitung = requestAnrechnung.getMsgBeiEctsUeberschreitung(begruendung_id, ectsLv, sumEctsSchulisch, sumEctsBeruflich);
// Add to Checkbox text
$(this).closest('label').append(msgBeiEctsUeberschreitung);
$(this).closest('div').append(msgBeiEctsUeberschreitung);
}
return;
}
@@ -76,7 +76,7 @@ $(function(){
var msgBeiEctsUeberschreitung = requestAnrechnung.getMsgBeiEctsUeberschreitung(begruendung_id, ectsLv, sumEctsSchulisch, sumEctsBeruflich);
// Add to Checkbox text
$(this).closest('label').append(msgBeiEctsUeberschreitung);
$(this).closest('div').append(msgBeiEctsUeberschreitung);
}
}
@@ -142,17 +142,17 @@ var requestAnrechnung = {
switch (status_kurzbz) {
case ANRECHNUNGSTATUS_APPROVED:
$('#requestAnrechnung-status_kurzbz').closest('div').addClass('alert-success');
$('#requestAnrechnung-status_kurzbz').closest('div').addClass('bg-success-subtle');
break;
case ANRECHNUNGSTATUS_REJECTED:
$('#requestAnrechnung-status_kurzbz').closest('div').addClass('alert-danger');
$('#requestAnrechnung-status_kurzbz').closest('div').addClass('bg-danger-subtle');
break;
case '':
$('#requestAnrechnung-status_kurzbz').closest('div').addClass('alert-info');
$('#requestAnrechnung-status_kurzbz').closest('div').addClass('bg-info-subtle');
$('#requestAnrechnung-status_kurzbz').text(FHC_PhrasesLib.t("ui", "neu"));
break;
default:
$('#requestAnrechnung-status_kurzbz').closest('div').addClass('alert-warning');
$('#requestAnrechnung-status_kurzbz').closest('div').addClass('bg-warning-subtle');
$('#requestAnrechnung-status_kurzbz').text(FHC_PhrasesLib.t("ui", "inBearbeitung"));
}
},
@@ -190,7 +190,7 @@ var requestAnrechnung = {
// Show sperre panel
$('#requestAnrechnung-sperre')
.removeClass('hidden')
.removeClass('visually-hidden')
.html(function(){
let sperregrund = FHC_PhrasesLib.t('global', 'bearbeitungGesperrt') + ': ';
@@ -200,7 +200,7 @@ var requestAnrechnung = {
else if (is_blocked){
sperregrund += FHC_PhrasesLib.t('anrechnung', 'benotungDerLV');
}
return "<b>"+ sperregrund + "</b>";
return "<span class='fw-bold'>"+ sperregrund + "</span>";
})
// Disable all form elements
@@ -208,7 +208,7 @@ var requestAnrechnung = {
}
},
initTooltips: function (){
$('[data-toggle="tooltip"]').tooltip({
$('[data-bs-toggle="tooltip"]').tooltip({
delay: { "show": 200, "hide": 200 },
html: true
}
@@ -240,11 +240,11 @@ var requestAnrechnung = {
formatAnrechnungIsApplied: function (antragdatum, dms_id, filename){
$('#requestAnrechnung-antragdatum').text(antragdatum);
$('#requestAnrechnung-status_kurzbz').text(FHC_PhrasesLib.t("ui", "inBearbeitung"));
$('#requestAnrechnung-status_kurzbz').closest('div').addClass('alert-warning');
$('#requestAnrechnung-status_kurzbz').closest('div').addClass('bg-warning-subtle');
// Display File-Downloadlink
$('#requestAnrechnung-downloadDocLink')
.removeClass('hidden')
.removeClass('visually-hidden')
.attr('href', 'RequestAnrechnung/download?dms_id=' + dms_id)
.html(filename);
@@ -287,14 +287,15 @@ var requestAnrechnung = {
alertIfMaxEctsExceeded: function(){
if(
(parseFloat($('#sumEctsSchulisch').text())) > 60 ||
(parseFloat($('#sumEctsBeruflich').text())) > 60 ||
(parseFloat($('#sumEctsSchulisch').text()) + parseFloat($('#sumEctsBeruflich').text())) > 90
(parseFloat($('#sumEctsSchulisch').text())) > 60 ||
(parseFloat($('#sumEctsBeruflich').text())) > 60 ||
(parseFloat($('#sumEctsSchulisch').text()) + parseFloat($('#sumEctsBeruflich').text())) > 90
)
{
$('#requestAnrechnung-maxEctsUeberschrittenMsg')
.html("<br><b>Die Höchstgrenze für Anrechnungen gem. § 12 Abs. 3 Fachhochschulgesetz ist überschritten. </b><i class=\"fa fa-lg fa-info-circle\"></i></br>")
.addClass('bg-danger text-danger')
.html("<span class='flex-fill fw-bold'>Die Höchstgrenze für Anrechnungen gem. § 12 Abs. 3 Fachhochschulgesetz ist überschritten. </span><i class='mx-4 fa fa-lg fa-info-circle'></i>")
.addClass('bg-danger-subtle')
.tooltip({
title: FHC_PhrasesLib.t("anrechnung", "anrechnungEctsTooltipTextBeiUeberschreitung"),
placement: 'right',
@@ -304,7 +305,8 @@ var requestAnrechnung = {
},
alertIfMaxEctsExceededInsideBegruendungsbox: function(){
let status_kurzbz = $('#requestAnrechnung-status_kurzbz').data('status_kurzbz');
if (status_kurzbz != ' ' && status_kurzbz != ANRECHNUNGSTATUS_APPROVED)
{
var ectsLv = parseFloat($('#ects').text());
@@ -317,7 +319,7 @@ var requestAnrechnung = {
{
return;
}
// If max ECTS is ecceeded
if (begruendung_id == 4)
{
@@ -329,7 +331,7 @@ var requestAnrechnung = {
var msgBeiEctsUeberschreitung = requestAnrechnung.getMsgBeiEctsUeberschreitung(begruendung_id, ectsLv, sumEctsSchulisch, sumEctsBeruflich);
// Add to Checkbox text
$('#requestAnrechnung-form :input[name="begruendung"]:checked').closest('label').append(msgBeiEctsUeberschreitung);
$('#requestAnrechnung-form :input[name="begruendung"]:checked').closest('div').append(msgBeiEctsUeberschreitung);
}
}
else
@@ -342,20 +344,19 @@ var requestAnrechnung = {
var msgBeiEctsUeberschreitung = requestAnrechnung.getMsgBeiEctsUeberschreitung(begruendung_id, ectsLv, sumEctsSchulisch, sumEctsBeruflich);
// Add to Checkbox text
$('#requestAnrechnung-form :input[name="begruendung"]:checked').closest('label').append(msgBeiEctsUeberschreitung);
$('#requestAnrechnung-form :input[name="begruendung"]:checked').closest('div').append(msgBeiEctsUeberschreitung);
}
}
}
},
getMsgBeiEctsUeberschreitung: function(begruendung_id, ects, sumEctsSchulisch, sumEctsBeruflich){
return $('<span id="sumEctsMsg"></span>')
.html(FHC_PhrasesLib.t("anrechnung", "anrechnungEctsTextBeiUeberschreitung",
begruendung_id == 4
? [(sumEctsSchulisch + sumEctsBeruflich + ects), sumEctsSchulisch, (sumEctsBeruflich + ects)] // beruflich
: [(sumEctsSchulisch + sumEctsBeruflich + ects), (sumEctsSchulisch + ects), sumEctsBeruflich])) // schulisch
const phraseUsed = '<span class="d-block">Die Höchstgrenze für Anrechnungen gem. § 12 Abs. 3 Fachhochschulgesetz wird überschritten.</span><span class=" fw-bold">Bisherige ECTS + ECTS dieser LV: Total: {0} [ Schulisch: {1} | Beruflich: {2} ]</span>&emsp;';
return $('<div class="p-1" id="sumEctsMsg"></div>')
.html(phraseUsed) // schulisch
.append('<i class="fa fa-lg fa-info-circle"></i>')
.addClass('bg-danger text-danger')
.addClass('bg-danger-subtle')
.tooltip({
title: FHC_PhrasesLib.t("anrechnung", "anrechnungEctsTooltipTextBeiUeberschreitung"),
placement: 'right',
@@ -205,16 +205,16 @@ var reviewAnrechnung = {
switch (status_kurzbz) {
case ANRECHNUNGSTATUS_APPROVED:
$('#reviewAnrechnungDetail-status_kurzbz').closest('div').addClass('alert-success');
$('#reviewAnrechnungDetail-status_kurzbz').closest('div').addClass('bg-success-subtle');
break;
case ANRECHNUNGSTATUS_REJECTED:
$('#reviewAnrechnungDetail-status_kurzbz').closest('div').addClass('alert-danger');
$('#reviewAnrechnungDetail-status_kurzbz').closest('div').addClass('bg-danger-subtle');
break;
case '':
$('#reviewAnrechnungDetail-status_kurzbz').closest('div').addClass('alert-info');
$('#reviewAnrechnungDetail-status_kurzbz').closest('div').addClass('bg-info-subtle');
break;
default:
$('#reviewAnrechnungDetail-status_kurzbz').closest('div').addClass('alert-warning');
$('#reviewAnrechnungDetail-status_kurzbz').closest('div').addClass('bg-warning-subtle');
}
},
setEmpfehlungstext: function () {
@@ -236,7 +236,7 @@ var reviewAnrechnung = {
}
},
initTooltips: function (){
$('[data-toggle="tooltip"]').tooltip({
$('[data-bs-toggle="tooltip"]').tooltip({
delay: { "show": 200, "hide": 200 },
html: true
}
@@ -1,13 +1,14 @@
const BASE_URL = FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router;
const BASE_URL =
FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router;
const CALLED_PATH = FHC_JS_DATA_STORAGE_OBJECT.called_path;
const CONTROLLER_URL = BASE_URL + '/' + CALLED_PATH;
const CONTROLLER_URL = BASE_URL + "/" + CALLED_PATH;
const APPROVE_ANRECHNUNG_DETAIL_URI = "lehre/anrechnung/ReviewAnrechnungDetail";
const ANRECHNUNGSTATUS_PROGRESSED_BY_STGL = 'inProgressDP';
const ANRECHNUNGSTATUS_PROGRESSED_BY_KF = 'inProgressKF';
const ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR = 'inProgressLektor';
const ANRECHNUNGSTATUS_APPROVED = 'approved';
const ANRECHNUNGSTATUS_REJECTED = 'rejected';
const ANRECHNUNGSTATUS_PROGRESSED_BY_STGL = "inProgressDP";
const ANRECHNUNGSTATUS_PROGRESSED_BY_KF = "inProgressKF";
const ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR = "inProgressLektor";
const ANRECHNUNGSTATUS_APPROVED = "approved";
const ANRECHNUNGSTATUS_REJECTED = "rejected";
const COLOR_LIGHTGREY = "#f5f5f5";
@@ -17,130 +18,133 @@ const COLOR_LIGHTGREY = "#f5f5f5";
// Converts string date postgre style to string DD.MM.YYYY.
// This will allow correct filtering.
var mut_formatStringDate = function(value, data, type, params, component) {
if (value != null)
{
var d = new Date(value);
return ("0" + (d.getDate())).slice(-2) + "." + ("0" + (d.getMonth() + 1)).slice(-2) + "." + d.getFullYear();
}
}
var mut_formatStringDate = function (value, data, type, params, component) {
if (value != null) {
var d = new Date(value);
return (
("0" + d.getDate()).slice(-2) +
"." +
("0" + (d.getMonth() + 1)).slice(-2) +
"." +
d.getFullYear()
);
}
};
// TABULATOR FUNCTIONS
// ---------------------------------------------------------------------------------------------------------------------
// Returns relative height (depending on screen size)
function func_height(table){
return $(window).height() * 0.50;
function func_height(table) {
return $(window).height() * 0.5;
}
// Filters boolean values
function hf_filterTrueFalse(headerValue, rowValue){
function hf_filterTrueFalse(headerValue, rowValue) {
if ("ja".startsWith(headerValue) || "yes".startsWith(headerValue)) {
return rowValue == "true";
}
if ('ja'.startsWith(headerValue) || 'yes'.startsWith(headerValue))
{
return rowValue == 'true';
}
if ("nein".startsWith(headerValue) || "no".startsWith(headerValue)) {
return rowValue == "false";
}
if ('nein'.startsWith(headerValue) || 'no'.startsWith(headerValue))
{
return rowValue == 'false';
}
if (headerValue = '-')
{
return rowValue == null;
}
if ((headerValue = "-")) {
return rowValue == null;
}
}
// Filters empfehlungsberechtigt boolean values
function hf_empfehlungsberechtigt(headerValue, rowValue){
return rowValue == headerValue.toString();
function hf_empfehlungsberechtigt(headerValue, rowValue) {
return rowValue == headerValue.toString();
}
// Adds column details
function func_tableBuilt(table) {
table.addColumn(
{
title: "Details",
field: 'details',
align: "center",
width: 100,
formatter: "link",
formatterParams:{
label:"Details",
url:function(cell){
return BASE_URL + "/" + APPROVE_ANRECHNUNG_DETAIL_URI + "?anrechnung_id=" + cell.getData().anrechnung_id
},
target:"_blank"
}
}, true // place column on the very left
);
table.tabulator(
"addColumn",
{
title: "Details",
field: "details",
align: "center",
width: 100,
formatter: "link",
formatterParams: {
label: "Details",
url: function (cell) {
return (
BASE_URL +
"/" +
APPROVE_ANRECHNUNG_DETAIL_URI +
"?anrechnung_id=" +
cell.getData().anrechnung_id
);
},
target: "_blank",
},
},
true // place column on the very left
);
// fully redrawing the table after adding the Details column
table.tabulator("redraw", true);
}
// Formats the rows
function func_rowFormatter(row){
let status_kurzbz = row.getData().status_kurzbz;
let empfehlungsberechtigt = row.getData().empfehlungsberechtigt;
row.getCells().forEach(function(cell){
if (status_kurzbz != ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR || empfehlungsberechtigt == "false")
{
row.getElement().style["background-color"] = COLOR_LIGHTGREY; // default
}
});
}
// Formats row selectable/unselectable
function func_selectableCheck(row){
let status_kurzbz = row.getData().status_kurzbz;
let empfehlungsberechtigt = row.getData().empfehlungsberechtigt;
function func_selectableCheck(row) {
let status_kurzbz = row.getData().status_kurzbz;
let empfehlungsberechtigt = row.getData().empfehlungsberechtigt;
return (
status_kurzbz == ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR || empfehlungsberechtigt == "false"
);
return status_kurzbz == ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR || empfehlungsberechtigt == "false";
}
// Performes after row was updated
function func_rowUpdated(row){
// Refresh row formatters
row.reformat();
// Deselect and disable new selection of updated rows
row.deselect();
row.getElement().style["pointerEvents"] = "none";
function func_rowFormatter(row){
const rowData = row.getData();
// ...but leave url links selectable
row.getCell('dokument_bezeichnung').getElement().firstChild.style["pointerEvents"] = "auto";
row.getCell('details').getElement().firstChild.style["pointerEvents"] = "auto";
// add the tabulator-unselectable class to the row if its data property isSelectable is false
if(rowData.isSelectable===false && !row.getElement().classList.contains("tabulator-unselectable")){
row.getElement().classList.add("tabulator-unselectable");
}
// remove the tabulator-selectable class if the data property isSelectable is false and it contains the class
if(rowData.isSelectable===false && row.getElement().classList.contains("tabulator-selectable")){
row.getElement().classList.remove("tabulator-selectable");
}
}
// Returns tooltip
function func_tooltips(cell) {
// Return tooltip if row is unselectable
if (!func_selectableCheck(cell.getRow())){
return FHC_PhrasesLib.t("ui", "nichtSelektierbarAufgrundVon") + 'Status';
}
function func_tooltips(e, cell, onRendered) {
//e - mouseover event
//cell - cell component
//onRendered - onRendered callback registration functionfunction
// Return tooltip if row is unselectable
if (!func_selectableCheck(cell.getRow())) {
return FHC_PhrasesLib.t("ui", "nichtSelektierbarAufgrundVon") + "Status";
}
}
// Formats empfehlung_anrechnung
var format_empfehlung_anrechnung = function(cell, formatterParams){
return (cell.getValue() == null)
? '-'
: (cell.getValue() == 'true')
? FHC_PhrasesLib.t("ui", "ja")
: FHC_PhrasesLib.t("ui", "nein");
}
var format_empfehlung_anrechnung = function (cell, formatterParams) {
return cell.getValue() == null
? "-"
: cell.getValue() == "true"
? FHC_PhrasesLib.t("ui", "ja")
: FHC_PhrasesLib.t("ui", "nein");
};
/**
* Returns formatter params for field dokument_bezeichnung (= Spalte Nachweisdokumente)
* NOTE: Returning a formatter param object fixes the problem, that tabulator did not know the url after refreshing the page.
*/
function paramLookup_dokBez(cell){
return {
labelField: 'dokument_bezeichnung',
url: CONTROLLER_URL + '/download?dms_id=' + cell.getData().dms_id,
target: '_blank'
}
function paramLookup_dokBez(cell) {
return {
labelField: "dokument_bezeichnung",
url: CONTROLLER_URL + "/download?dms_id=" + cell.getData().dms_id,
target: "_blank",
};
}
/*
@@ -148,308 +152,330 @@ function paramLookup_dokBez(cell){
* Select all (filtered) rows that are progressed by stg leiter.
* (Ignore rows that are approved, rejected or in request for recommendation)
*/
function tableWidgetHook_selectAllButton(tableWidgetDiv){
var resultRows = tableWidgetDiv.find("#tableWidgetTabulator").tabulator('getRows', true)
.filter(row =>
row.getData().status_kurzbz == ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR
);
function tableWidgetHook_selectAllButton(tableWidgetDiv) {
var resultRows = tableWidgetDiv
.find("#tableWidgetTabulator")
.tabulator("getRows", true)
.filter(
(row) =>
row.getData().status_kurzbz == ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR
);
tableWidgetDiv.find("#tableWidgetTabulator").tabulator('selectRow', resultRows);
tableWidgetDiv
.find("#tableWidgetTabulator")
.tabulator("selectRow", resultRows);
}
$(function () {
const empfehlung_panel = $("#reviewAnrechnungUebersicht-empfehlung-panel");
const begruendung_panel = $("#reviewAnrechnungUebersicht-begruendung-panel");
$(function(){
// Pruefen ob Promise unterstuetzt wird
// Tabulator funktioniert nicht mit IE
var canPromise = !!window.Promise;
if (!canPromise) {
alert(
"Diese Seite kann mit ihrem Browser nicht angezeigt werden. Bitte verwenden Sie Firefox, Chrome oder Edge um die Seite anzuzeigen"
);
window.location.href = "about:blank";
return;
}
const empfehlung_panel = $('#reviewAnrechnungUebersicht-empfehlung-panel');
const begruendung_panel = $('#reviewAnrechnungUebersicht-begruendung-panel');
$(document).on("tableInit", function (event, tabulatorInstance) {
func_tableBuilt($("#tableWidgetTabulator"));
});
// Pruefen ob Promise unterstuetzt wird
// Tabulator funktioniert nicht mit IE
var canPromise = !! window.Promise;
if(!canPromise)
{
alert("Diese Seite kann mit ihrem Browser nicht angezeigt werden. Bitte verwenden Sie Firefox, Chrome oder Edge um die Seite anzuzeigen");
window.location.href='about:blank';
return;
// Redraw table on resize to fit tabulators height to windows height
window.addEventListener("resize", function () {
$("#tableWidgetTabulator").tabulator("setHeight", $(window).height() * 0.5);
$("#tableWidgetTabulator").tabulator("redraw", true);
});
// Show only rows with anrechnungen ohne Empfehlung
$("#show-need-recommendation").click(function () {
$("#tableWidgetTabulator").tabulator("setFilter", [
{
field: "status_kurzbz",
type: "=",
value: ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR,
},
]);
});
// Show only rows with empfohlene + noch nicht genehmigte/abgelehnte anrechnungen
$("#show-recommended").click(function () {
$("#tableWidgetTabulator").tabulator("setFilter", [
{
field: "status_kurzbz",
type: "=",
value: ANRECHNUNGSTATUS_PROGRESSED_BY_STGL,
},
{ field: "empfehlung_anrechnung", type: "=", value: "true" },
]);
});
// Show only rows with nicht empfohlene + noch nicht genehmigte/abgelehnte anrechnungen
$("#show-not-recommended").click(function () {
$("#tableWidgetTabulator").tabulator("setFilter", [
{
field: "status_kurzbz",
type: "=",
value: ANRECHNUNGSTATUS_PROGRESSED_BY_STGL,
},
{ field: "empfehlung_anrechnung", type: "=", value: "false" },
]);
});
// Show only rows with genehmigte anrechnungen
$("#show-approved").click(function () {
$("#tableWidgetTabulator").tabulator("setFilter", [
{ field: "status_kurzbz", type: "=", value: ANRECHNUNGSTATUS_APPROVED },
]);
});
// Show only rows with abgelehnte anrechnungen
$("#show-rejected").click(function () {
$("#tableWidgetTabulator").tabulator("setFilter", [
{ field: "status_kurzbz", type: "=", value: ANRECHNUNGSTATUS_REJECTED },
]);
});
/**
* Show all rows: clear filter and blur button
* Bootstrap button remains in activated style, even when clicking various times.
* This function "resets" button style and clear all tabulators filter.
* NOTE: MUST be after all other filters
*/
$(".btn-clearfilter").click(function () {
if ($(this).hasClass("active")) {
$("#tableWidgetTabulator").tabulator("clearFilter");
$(this).blur();
}
});
// Redraw table on resize to fit tabulators height to windows height
window.addEventListener('resize', function(){
$('#tableWidgetTabulator').tabulator('setHeight', $(window).height() * 0.50);
$('#tableWidgetTabulator').tabulator('redraw', true);
});
// Ask ifRecommend Anrechnungen
$("#reviewAnrechnungUebersicht-recommend-anrechnungen-ask").click(
function () {
begruendung_panel.css("display", "none");
// Set status alert color
reviewAnrechnung.setStatusAlertColor();
// Show only rows with anrechnungen ohne Empfehlung
$("#show-need-recommendation").click(function(){
$('#tableWidgetTabulator').tabulator('setFilter',
[
{field: 'status_kurzbz', type: '=', value: ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR}
]
);
});
// Show only rows with empfohlene + noch nicht genehmigte/abgelehnte anrechnungen
$("#show-recommended").click(function(){
$('#tableWidgetTabulator').tabulator('setFilter',
[
{field: 'status_kurzbz', type: '=', value: ANRECHNUNGSTATUS_PROGRESSED_BY_STGL},
{field: 'empfehlung_anrechnung', type: '=', value: 'true'}
]
);
});
// Show only rows with nicht empfohlene + noch nicht genehmigte/abgelehnte anrechnungen
$("#show-not-recommended").click(function(){
$('#tableWidgetTabulator').tabulator('setFilter', [
{field: 'status_kurzbz', type: '=', value: ANRECHNUNGSTATUS_PROGRESSED_BY_STGL},
{field: 'empfehlung_anrechnung', type: '=', value: 'false'},
]
);
});
// Show only rows with genehmigte anrechnungen
$("#show-approved").click(function(){
$('#tableWidgetTabulator').tabulator('setFilter',
[
{field: 'status_kurzbz', type: '=', value: ANRECHNUNGSTATUS_APPROVED}
]
);
});
// Show only rows with abgelehnte anrechnungen
$("#show-rejected").click(function(){
$('#tableWidgetTabulator').tabulator('setFilter',
[
{field: 'status_kurzbz', type: '=', value: ANRECHNUNGSTATUS_REJECTED}
]
);
});
/**
* Show all rows: clear filter and blur button
* Bootstrap button remains in activated style, even when clicking various times.
* This function "resets" button style and clear all tabulators filter.
* NOTE: MUST be after all other filters
*/
$(".btn-clearfilter").click(function(){
if($(this).hasClass('active'))
{
$('#tableWidgetTabulator').tabulator('clearFilter');
$(this).blur();
}
})
// Ask ifRecommend Anrechnungen
$("#reviewAnrechnungUebersicht-recommend-anrechnungen-ask").click(function(){
begruendung_panel.css('display', 'none');
if (empfehlung_panel.is(":hidden"))
{
// Show begruendung panel if is hidden
empfehlung_panel.slideDown(400, function() {
$('html, body').animate({
scrollTop: empfehlung_panel.offset().top // Move empfehlung panel bottom up to be visible within window screen
}, 400);
});
return;
}
});
// Recommend Anrechnungen
$("#reviewAnrechnungUebersicht-recommend-anrechnungen-confirm").click(function(e){
// Avoid bubbling click event to sibling break button
e.stopImmediatePropagation();
// Get selected rows data
let selected_data = $('#tableWidgetTabulator').tabulator('getSelectedData')
.map(function(data){
// reduce to necessary fields
return {
'anrechnung_id' : data.anrechnung_id,
}
});
// Alert and exit if no anrechnung is selected
if (selected_data.length == 0)
{
FHC_DialogLib.alertInfo(FHC_PhrasesLib.t("ui", "bitteMindEinenAntragWaehlen"));
return;
}
// Prepare data object for ajax call
let data = {
'data': selected_data
};
// Hide empfehlung panel again
empfehlung_panel.slideUp('slow');
FHC_AjaxClient.ajaxCallPost(
FHC_JS_DATA_STORAGE_OBJECT.called_path + "/recommend",
data,
if (empfehlung_panel.is(":hidden")) {
// Show begruendung panel if is hidden
empfehlung_panel.slideDown(400, function () {
$("html, body").animate(
{
successCallback: function (data, textStatus, jqXHR)
{
if (data.error && data.retval != null)
{
// Print error message
FHC_DialogLib.alertWarning(data.retval);
}
scrollTop: empfehlung_panel.offset().top, // Move empfehlung panel bottom up to be visible within window screen
},
400
);
});
return;
}
}
);
if (!data.error && data.retval != null)
{
// Update status 'genehmigt'
$('#tableWidgetTabulator').tabulator('updateData', data.retval);
// Recommend Anrechnungen
$("#reviewAnrechnungUebersicht-recommend-anrechnungen-confirm").click(
function (e) {
// Avoid bubbling click event to sibling break button
e.stopImmediatePropagation();
// Print success message
FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t("ui", "anrechnungenWurdenEmpfohlen"));
}
},
errorCallback: function (jqXHR, textStatus, errorThrown)
{
FHC_DialogLib.alertError(FHC_PhrasesLib.t("ui", "systemfehler"));
}
}
// Get selected rows data
let selected_data = $("#tableWidgetTabulator")
.tabulator("getSelectedData")
.map(function (data) {
// reduce to necessary fields
return {
anrechnung_id: data.anrechnung_id,
};
});
// Alert and exit if no anrechnung is selected
if (selected_data.length == 0) {
FHC_DialogLib.alertInfo(
FHC_PhrasesLib.t("ui", "bitteMindEinenAntragWaehlen")
);
});
return;
}
// Ask if Dont recommend Anrechnungen
$("#reviewAnrechnungUebersicht-dont-recommend-anrechnungen-ask").click(function(){
// Prepare data object for ajax call
let data = {
data: selected_data,
};
empfehlung_panel.css('display', 'none');
// Hide empfehlung panel again
empfehlung_panel.slideUp("slow");
if (begruendung_panel.is(":hidden"))
FHC_AjaxClient.ajaxCallPost(
FHC_JS_DATA_STORAGE_OBJECT.called_path + "/recommend",
data,
{
// Show begruendung panel if is hidden
begruendung_panel.slideDown(400, function() {
$('html, body').animate({
scrollTop: begruendung_panel.offset().top // Move genehmigung panel bottom up to be visible within window screen
}, 400);
});
return;
successCallback: function (data, textStatus, jqXHR) {
if (data.error && data.retval != null) {
// Print error message
FHC_DialogLib.alertWarning(data.retval);
}
if (!data.error && data.retval != null) {
// Update status 'genehmigt'
$("#tableWidgetTabulator").tabulator("updateData", data.retval);
// make all confirmed anrechnungen unselectable and deselect them
let selectedRows = $("#tableWidgetTabulator").tabulator("getSelectedRows");
selectedRows.forEach(row => {
row.update({...row.getData(), isSelectable:false});
row.reformat();
});
// deselect all selected rows
$("#tableWidgetTabulator").tabulator(
"deselectRow",
selectedRows
);
// Print success message
FHC_DialogLib.alertSuccess(
FHC_PhrasesLib.t("ui", "anrechnungenWurdenEmpfohlen")
);
}
},
errorCallback: function (jqXHR, textStatus, errorThrown) {
FHC_DialogLib.alertError(FHC_PhrasesLib.t("ui", "systemfehler"));
},
}
});
);
}
);
// Dont recommend Anrechnungen
$("#reviewAnrechnungUebersicht-dont-recommend-anrechnungen-confirm").click(function(e){
// Ask if Dont recommend Anrechnungen
$("#reviewAnrechnungUebersicht-dont-recommend-anrechnungen-ask").click(
function () {
empfehlung_panel.css("display", "none");
// Avoid bubbling click event to sibling break button
e.stopImmediatePropagation();
let begruendung = $('#reviewAnrechnungUebersicht-begruendung').val();
empfehlung_panel.css('display', 'none');
// Check if begruendung is given
if (!begruendung.trim()) // empty or white spaces only
{
FHC_DialogLib.alertInfo(FHC_PhrasesLib.t("ui", "bitteBegruendungAngeben"));
return;
}
// Get selected rows data and add begruendung
let selected_data = $('#tableWidgetTabulator').tabulator('getSelectedData')
.map(function(data){
// reduce to necessary fields
return {
'anrechnung_id' : data.anrechnung_id,
'begruendung' : begruendung
}
});
// Alert and exit if no anrechnung is selected
if (selected_data.length == 0)
{
FHC_DialogLib.alertInfo(FHC_PhrasesLib.t("ui", "bitteMindEinenAntragWaehlen"));
return;
}
// Prepare data object for ajax call
let data = {
'data': selected_data
};
// Hide begruendung panel again
begruendung_panel.slideUp('slow');
FHC_AjaxClient.ajaxCallPost(
FHC_JS_DATA_STORAGE_OBJECT.called_path + "/dontRecommend",
data,
if (begruendung_panel.is(":hidden")) {
// Show begruendung panel if is hidden
begruendung_panel.slideDown(400, function () {
$("html, body").animate(
{
successCallback: function (data, textStatus, jqXHR)
{
if (data.error && data.retval != null)
{
// Print error message
FHC_DialogLib.alertWarning(data.retval);
}
scrollTop: begruendung_panel.offset().top, // Move genehmigung panel bottom up to be visible within window screen
},
400
);
});
return;
}
}
);
if (!data.error && data.retval != null)
{
// Update status 'genehmigt'
$('#tableWidgetTabulator').tabulator('updateData', data.retval);
// Dont recommend Anrechnungen
$("#reviewAnrechnungUebersicht-dont-recommend-anrechnungen-confirm").click(
function (e) {
// Avoid bubbling click event to sibling break button
e.stopImmediatePropagation();
// Print success message
FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t("ui", "anrechnungenWurdenNichtEmpfohlen"));
}
},
errorCallback: function (jqXHR, textStatus, errorThrown)
{
FHC_DialogLib.alertError(FHC_PhrasesLib.t("ui", "systemfehler"));
}
}
let begruendung = $("#reviewAnrechnungUebersicht-begruendung").val();
empfehlung_panel.css("display", "none");
// Check if begruendung is given
if (!begruendung.trim()) {
// empty or white spaces only
FHC_DialogLib.alertInfo(
FHC_PhrasesLib.t("ui", "bitteBegruendungAngeben")
);
});
return;
}
// Break Empfehlung abgeben
$('#reviewAnrechnungUebersicht-empfehlung-abbrechen').click(function(){
empfehlung_panel.slideUp('slow');
// Get selected rows data and add begruendung
let selected_data = $("#tableWidgetTabulator")
.tabulator("getSelectedData")
.map(function (data) {
// reduce to necessary fields
return {
anrechnung_id: data.anrechnung_id,
begruendung: begruendung,
};
});
})
// Alert and exit if no anrechnung is selected
if (selected_data.length == 0) {
FHC_DialogLib.alertInfo(
FHC_PhrasesLib.t("ui", "bitteMindEinenAntragWaehlen")
);
return;
}
// Break Begruendung abgeben
$('#reviewAnrechnungUebersicht-begruendung-abbrechen').click(function(){
// Prepare data object for ajax call
let data = {
data: selected_data,
};
begruendung_panel.slideUp('slow');
// Hide begruendung panel again
begruendung_panel.slideUp("slow");
})
FHC_AjaxClient.ajaxCallPost(
FHC_JS_DATA_STORAGE_OBJECT.called_path + "/dontRecommend",
data,
{
successCallback: function (data, textStatus, jqXHR) {
if (data.error && data.retval != null) {
// Print error message
FHC_DialogLib.alertWarning(data.retval);
}
// Copy Begruendung into textarea
$(".btn-copyIntoTextarea").click(function(){
reviewAnrechnung.copyIntoTextarea(this);
})
if (!data.error && data.retval != null) {
// Update status 'genehmigt'
$("#tableWidgetTabulator").tabulator("updateData", data.retval);
const selectedRows = $("#tableWidgetTabulator").tabulator("getSelectedRows");
// makes all denied anrechnungen unselectable by adding the isSelectable property and retriggering the rowFormatter function
selectedRows.forEach(row=>{
row.update({...row.getData(), isSelectable:false});
row.reformat();
})
// deselect all selected rows
$("#tableWidgetTabulator").tabulator("deselectRow", selectedRows);
// Print success message
FHC_DialogLib.alertSuccess(
FHC_PhrasesLib.t("ui", "anrechnungenWurdenNichtEmpfohlen")
);
}
},
errorCallback: function (jqXHR, textStatus, errorThrown) {
FHC_DialogLib.alertError(FHC_PhrasesLib.t("ui", "systemfehler"));
},
}
);
}
);
// Break Empfehlung abgeben
$("#reviewAnrechnungUebersicht-empfehlung-abbrechen").click(function () {
empfehlung_panel.slideUp("slow");
});
// Break Begruendung abgeben
$("#reviewAnrechnungUebersicht-begruendung-abbrechen").click(function () {
begruendung_panel.slideUp("slow");
});
// Copy Begruendung into textarea
$(".btn-copyIntoTextarea").click(function () {
reviewAnrechnung.copyIntoTextarea(this);
});
});
var reviewAnrechnung = {
setStatusAlertColor: function () {
let status_kurzbz = $('#reviewAnrechnung-status_kurzbz').data('status_kurzbz');
copyIntoTextarea: function (elem) {
// Find closest textarea
let textarea = $(elem).closest("div").find("textarea");
switch (status_kurzbz) {
case ANRECHNUNGSTATUS_APPROVED:
$('#reviewAnrechnung-status_kurzbz').closest('div').addClass('alert-success');
break;
case ANRECHNUNGSTATUS_REJECTED:
$('#reviewAnrechnung-status_kurzbz').closest('div').addClass('alert-danger');
break;
case '':
$('#reviewAnrechnung-status_kurzbz').closest('div').addClass('alert-info');
break;
default:
$('#reviewAnrechnung-status_kurzbz').closest('div').addClass('alert-warning');
}
},
copyIntoTextarea: function(elem){
// Find closest textarea
let textarea = $(elem).closest('div').find('textarea');
// Copy begruendung into textarea and set focus
textarea.val($.trim($(elem).parent().text())).focus();
}
}
// Copy begruendung into textarea and set focus
textarea.val($.trim($(elem).parent().text())).focus();
},
};
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+15
View File
@@ -1,4 +1,19 @@
// Returns relative height (depending on screen size)
function func_height(table) {
return $(window).height() * 0.5;
}
$(function(){
// tableInit is called in the jquery_wrapper when the tableBuilt event was finished
$(document).on("tableInit", function(event,tabulatorInstance) {
$("#tableWidgetTabulator").tabulator("on","rowDeselected",(row)=>func_rowDeselected(row));
$("#tableWidgetTabulator").tabulator("on","rowSelected",(row)=>func_rowSelected(row));
});
var studiensemesterStart = $("#studsemStart").val();
Zverfueg.initDatepicker(studiensemesterStart);
+76
View File
@@ -0,0 +1,76 @@
/*
* This file is part of the Tabulator package.
*
* (c) Oliver Folkerd <oliver.folkerd@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* Full Documentation & Demos can be found at: http://olifolkerd.github.io/tabulator/
*
*/
(function (root, factory) {
"use strict";
if (typeof define === 'function' && define.amd) {
define(['jquery', 'tabulator', 'jquery-ui'], factory);
}
else if(typeof module !== 'undefined' && module.exports) {
module.exports = factory(
require('jquery'),
require('tabulator'),
require('jquery-ui')
);
}
else {
factory(root.jQuery, root.Tabulator);
}
}(this, function ($, Tabulator) {
$.widget("ui.tabulator", {
_create:function(){
var options = Object.assign({}, this.options);
var props = [];
delete options.create;
delete options.disabled;
this.table = new Tabulator(this.element[0], options);
window.table = this.table;
const that = this;
this.table.on("tableBuilt", function(){
props = Object.getOwnPropertyNames(Object.getPrototypeOf(Object.getPrototypeOf(this)));
props = props.concat(Object.getOwnPropertyNames(this));
for(let key of props){
if(typeof this[key] === "function" && key.charAt(0) !== "_"){
that[key] = this[key].bind(this);
}
}
$(document).trigger("tableInit",[this]);
});
//retrieve properties on prototype
props = Object.getOwnPropertyNames(Object.getPrototypeOf(Object.getPrototypeOf(this.table)));
//retrieve properties added by modules
props = props.concat(Object.getOwnPropertyNames(this.table));
//map tabulator functions to jquery wrapper
for(let key of props){
if(typeof this.table[key] === "function" && key.charAt(0) !== "_"){
this[key] = this.table[key].bind(this.table);
}
}
},
_setOption: function(option, value){
console.error("Tabulator jQuery wrapper does not support setting options after the table has been instantiated");
},
_destroy: function(option, value){
this.table.destroy();
},
});
}));
+21 -1
View File
@@ -6401,6 +6401,26 @@ The invoice will be sent to you again. <u><strong>The amount is only to be trans
)
)
),
array(
'app' => 'core',
'category' => 'ui',
'phrase' => 'neuUndGeaenderteAnzeigen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Neue und geänderte anzeigen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Show new and changed',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'ui',
@@ -12165,7 +12185,7 @@ Any unusual occurrences
'phrases' => array(
array(
'sprache' => 'German',
'text' => '<br>Die Höchstgrenze für Anrechnungen gem. § 12 Abs. 3 Fachhochschulgesetz wird überschritten.<br><b>Bisherige ECTS + ECTS dieser LV: Total: {0} [ Schulisch: {1} | Beruflich: {2} ]</b> ',
'text' => 'Die Höchstgrenze für Anrechnungen gem. § 12 Abs. 3 Fachhochschulgesetz wird überschritten.<span class="fw-bold">Bisherige ECTS + ECTS dieser LV: Total: {0} [ Schulisch: {1} | Beruflich: {2} ]</span>',
'description' => '',
'insertvon' => 'system'
),