Merge branch 'master' into feature-26336/Composer_Twig_Dependency_Security_Issue

This commit is contained in:
Paolo
2026-06-10 14:24:24 +02:00
1470 changed files with 228566 additions and 13397 deletions
@@ -18,6 +18,9 @@
<?php (!isset($notiz->kurzbzlang)) ?: print_r('(' . nl2br($notiz->kurzbzlang) . ') - ') ?>
<?php echo nl2br($notiz->text) ?>
</td>
<td>
<a href="mailto:<?php echo htmlspecialchars($notiz->email)?>?body=<?php echo rawurlencode($notiz->text);; ?>"><i class="fa fa-envelope"></i></a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
@@ -14,12 +14,13 @@
'navigationwidget' => true,
'dialoglib' => true,
'phrases' => array(
'infocenter' => array('statusAuswahl'),
'person' => array('vorname', 'nachname'),
'global' => array('mailAnXversandt'),
'ui' => array('bitteEintragWaehlen')
),
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/rueckstellung.js', 'public/js/infocenter/infocenterPersonDataset.js')
);
$this->load->view('templates/FHC-Header', $includesArray);
@@ -20,12 +20,11 @@
'ui' => array('bitteEintragWaehlen')
),
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/rueckstellung.js', 'public/js/infocenter/infocenterPersonDataset.js')
)
);
?>
<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'); ?>
@@ -1,13 +1,14 @@
<?php
$this->config->load('infocenter');
$APP = '\'infocenter\'';
$ABGEWIESENEN_STATUS = '\'Abgewiesener\'';
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
$LOGDATA_NAME = '\'Message sent\'';
$LOGDATA_VON = '\'online\'';
$STUDIENGEBUEHR_ANZAHLUNG = '\'StudiengebuehrAnzahlung\'';
$KAUTION_DRITT_STAAT = '\'KautionDrittStaat\'';
$query = '
SELECT
@@ -17,6 +18,8 @@ $query = '
p.nachname AS "Nachname",
so.studiengangkurzbzlang as "Studiengang",
pss.insertamum AS "AbgewiesenAm",
pl.zeitpunkt AS "LockDate",
pl.lockuser AS "LockUser",
(
SELECT l.zeitpunkt
FROM system.tbl_log l
@@ -28,24 +31,38 @@ $query = '
ORDER BY l.log_id DESC
LIMIT 1
)
AND '. $LOGDATA_VON .' = (
AND ('. $LOGDATA_VON .' = (
SELECT l.insertvon
FROM system.tbl_log l
WHERE l.person_id = p.person_id
ORDER BY l.log_id DESC
LIMIT 1
)
OR
(
(
SELECT l.insertvon
FROM system.tbl_log l
WHERE l.person_id = p.person_id
ORDER BY l.log_id DESC
LIMIT 1
) IS NULL
)
)
AND l.zeitpunkt >= pss.insertamum
ORDER BY l.log_id DESC
LIMIT 1
) AS "Nachricht",
(
SELECT SUM(konto.betrag)
SELECT
CASE
WHEN COUNT(CASE WHEN konto.betrag != 0 THEN 1 END) = 0 THEN null
ELSE SUM(konto.betrag)
END AS "Kaution"
FROM public.tbl_konto konto
LEFT JOIN tbl_konto skonto ON (skonto.buchungsnr_verweis = konto.buchungsnr)
WHERE konto.person_id = p.person_id
AND konto.studiensemester_kurzbz = '. $STUDIENSEMESTER .'
AND konto.buchungstyp_kurzbz = '. $STUDIENGEBUEHR_ANZAHLUNG .'
AND konto.buchungstyp_kurzbz = '. $KAUTION_DRITT_STAAT .'
) AS "Kaution"
FROM
public.tbl_prestudentstatus pss
@@ -54,6 +71,15 @@ $query = '
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
LEFT JOIN (
SELECT tpl.person_id,
tpl.zeitpunkt,
sp.nachname AS lockuser
FROM system.tbl_person_lock tpl
JOIN public.tbl_benutzer sb USING (uid)
JOIN public.tbl_person sp ON sb.person_id = sp.person_id
WHERE tpl.app = '.$APP.'
) pl USING(person_id)
WHERE pss.status_kurzbz = '. $ABGEWIESENEN_STATUS .'
AND pss.studiensemester_kurzbz = '. $STUDIENSEMESTER .'
AND (sg.typ IN ('. $STUDIENGANG_TYP .')
@@ -70,6 +96,7 @@ $query = '
'requiredPermissions' => 'infocenter',
'datasetRepresentation' => 'tablesorter',
'checkboxes' => 'PersonId',
'additionalColumns' => array('Details'),
'columnsAliases' => array(
'PersonId',
'PreStudentID',
@@ -77,11 +104,23 @@ $query = '
ucfirst($this->p->t('person', 'nachname')),
ucfirst($this->p->t('lehre', 'studiengang')),
ucfirst($this->p->t('infocenter', 'abgewiesenam')),
ucfirst($this->p->t('global', 'sperrdatum')),
ucfirst($this->p->t('global', 'gesperrtVon')),
ucfirst($this->p->t('global', 'nachricht')),
ucfirst($this->p->t('infocenter', 'kaution'))
),
'formatRow' => function($datasetRaw) {
/* NOTE: Dont use $this here for PHP Version compatibility */
$datasetRaw->{'Details'} = sprintf(
'<a href="%s?person_id=%s&origin_page=%s&fhc_controller_id=%s&prev_filter_id=%s">Details</a>',
site_url('system/infocenter/InfoCenter/showDetails'),
$datasetRaw->{'PersonId'},
'abgewiesen',
(isset($_GET['fhc_controller_id']) ? $_GET['fhc_controller_id'] : ''),
(isset($_GET['filter_id']) ? $_GET['filter_id'] : '')
);
if ($datasetRaw->{'Nachricht'} === null)
{
$datasetRaw->{'Nachricht'} = 'Nein';
@@ -103,10 +142,29 @@ $query = '
{
$datasetRaw->{'Kaution'} = 'Offen';
}
if ($datasetRaw->{'LockDate'} == null)
{
$datasetRaw->{'LockDate'} = '-';
}
if ($datasetRaw->{'LockUser'} == null)
{
$datasetRaw->{'LockUser'} = '-';
}
$datasetRaw->{'AbgewiesenAm'} = date_format(date_create($datasetRaw->{'AbgewiesenAm'}),'Y-m-d H:i');
return $datasetRaw;
},
'markRow' => function($datasetRaw) {
if ($datasetRaw->LockDate != null)
{
return FilterWidget::DEFAULT_MARK_ROW_CLASS;
}
}
);
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
@@ -0,0 +1,48 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'Info Center',
'jquery3' => true,
'jqueryui1' => true,
'jquerycheckboxes1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'sbadmintemplate3' => true,
'tablesorter2' => true,
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
'dialoglib' => true,
'phrases' => array(
'person' => array('vorname', 'nachname'),
'global' => array('mailAnXversandt'),
'ui' => array('bitteEintragWaehlen')
),
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/rueckstellung.js', 'public/js/infocenter/infocenterPersonDataset.js')
)
);
?>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">
Aufgenommen
</h3>
</div>
</div>
<div>
<?php $this->load->view('system/infocenter/infocenterAufgenommenData.php'); ?>
</div>
</div>
</div>
</div>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -0,0 +1,95 @@
<?php
$this->config->load('infocenter');
$AUFGENOMMENER_STATUS = '\'Aufgenommener\'';
$REJECTED_STATUS = '\'Abgewiesener\'';
$STUDIENGANG_TYP = '\'l\'';
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
$LOGDATA_NAME = '\'Message sent\'';
$LOGDATA_VON = '\'online\'';
$query = '
SELECT
p.person_id AS "PersonId",
p.vorname AS "Vorname",
p.nachname AS "Nachname",
(
SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ) || UPPER(sg.kurzbz)), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE
pss.status_kurzbz = '. $AUFGENOMMENER_STATUS .'
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
AND NOT EXISTS (
SELECT 1
FROM tbl_prestudentstatus spss
WHERE spss.prestudent_id = pss.prestudent_id
AND spss.status_kurzbz = '. $REJECTED_STATUS .'
AND spss.studiensemester_kurzbz IN (
SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >
(SELECT start FROM public.tbl_studiensemester sss WHERE studiensemester_kurzbz = '. $STUDIENSEMESTER .'))
)
LIMIT 1
) AS "Studiengang"
FROM
public.tbl_person p
WHERE
EXISTS (
SELECT 1
FROM public.tbl_prestudent sps
JOIN public.tbl_studiengang ssg USING(studiengang_kz)
WHERE sps.person_id = p.person_id
AND ssg.typ IN (' . $STUDIENGANG_TYP . ')
AND ' . $AUFGENOMMENER_STATUS . ' = (
SELECT spss.status_kurzbz
FROM public.tbl_prestudentstatus spss
WHERE spss.prestudent_id = sps.prestudent_id
ORDER BY spss.datum DESC, spss.insertamum DESC, spss.ext_id DESC
LIMIT 1
)
AND EXISTS (
SELECT 1
FROM tbl_prestudentstatus spss
WHERE spss.prestudent_id = sps.prestudent_id
AND spss.status_kurzbz = ' . $AUFGENOMMENER_STATUS . '
AND spss.studiensemester_kurzbz = ' . $STUDIENSEMESTER . '
)
)
';
$filterWidgetArray = array(
'query' => $query,
'app' => InfoCenter::APP,
'datasetName' => 'aufgenommen',
'filter_id' => $this->input->get('filter_id'),
'requiredPermissions' => 'infocenter',
'datasetRepresentation' => 'tablesorter',
'checkboxes' => 'PersonId',
'additionalColumns' => array('Details'),
'columnsAliases' => array(
'PersonId',
ucfirst($this->p->t('person', 'vorname')) ,
ucfirst($this->p->t('person', 'nachname')),
ucfirst($this->p->t('lehre', 'studiengang'))
),
'formatRow' => function($datasetRaw)
{
$datasetRaw->{'Details'} = sprintf(
'<a href="%s?person_id=%s&origin_page=%s&fhc_controller_id=%s&prev_filter_id=%s">Details</a>',
site_url('system/infocenter/InfoCenter/showDetails'),
$datasetRaw->{'PersonId'},
'aufgenommen',
(isset($_GET['fhc_controller_id']) ? $_GET['fhc_controller_id'] : ''),
(isset($_GET['filter_id']) ? $_GET['filter_id'] : '')
);
return $datasetRaw;
}
);
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
?>
@@ -7,12 +7,13 @@
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Interessent rejected\', \'Attempt to register with existing mailadress\', \'Access code sent\', \'Personal data saved\'';
$LOGDATA_DELETED_BY_USER = '\'% deleted by user\'';
$POSTPONE_STATUS_PARKED = '\'parked\'';
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
$AKTE_TYP = '\'identity\', \'zgv_bakk\'';
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
$STUDIENGEBUEHR_ANZAHLUNG = '\'StudiengebuehrAnzahlung\'';
$KAUTION_DRITT_STAAT = '\'KautionDrittStaat\'';
$ORG_NAME = '\'InfoCenter\'';
$ONLINE = '\'online\'';
@@ -283,6 +284,7 @@
FROM system.tbl_log l
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.logdata->>\'message\' NOT LIKE ('.$LOGDATA_DELETED_BY_USER.')
AND l.person_id = p.person_id
ORDER BY l.log_id DESC
LIMIT 1
@@ -292,12 +294,15 @@
rueck.datum_bis AS "HoldDate",
rueck.bezeichnung AS "Rueckstellgrund",
(
SELECT SUM(konto.betrag)
SELECT
CASE
WHEN COUNT(CASE WHEN konto.betrag != 0 THEN 1 END) = 0 THEN null
ELSE SUM(konto.betrag)
END AS "Kaution"
FROM public.tbl_konto konto
LEFT JOIN tbl_konto skonto ON (skonto.buchungsnr_verweis = konto.buchungsnr)
WHERE konto.person_id = p.person_id
AND konto.studiensemester_kurzbz = '. $STUDIENSEMESTER .'
AND konto.buchungstyp_kurzbz = '. $STUDIENGEBUEHR_ANZAHLUNG .'
AND konto.buchungstyp_kurzbz = '. $KAUTION_DRITT_STAAT .'
) AS "Kaution"
FROM public.tbl_person p
LEFT JOIN (
@@ -310,22 +315,15 @@
WHERE tpl.app = '.$APP.'
) pl USING(person_id)
LEFT JOIN (
SELECT
SELECT DISTINCT ON (tbl_rueckstellung.person_id)
tbl_rueckstellung.person_id,
tbl_rueckstellung.datum_bis,
tbl_rueckstellung.status_kurzbz,
array_to_json(bezeichnung_mehrsprachig::varchar[])->>0 as bezeichnung
FROM public.tbl_rueckstellung
JOIN public.tbl_rueckstellung_status USING(status_kurzbz)
JOIN public.tbl_person sp ON tbl_rueckstellung.person_id = sp.person_id
WHERE tbl_rueckstellung.rueckstellung_id =
(
SELECT srueck.rueckstellung_id
FROM public.tbl_rueckstellung srueck
WHERE srueck.person_id = tbl_rueckstellung.person_id
AND datum_bis >= NOW()
ORDER BY srueck.datum_bis DESC LIMIT 1
)
WHERE tbl_rueckstellung.datum_bis >= NOW()
ORDER BY tbl_rueckstellung.person_id, tbl_rueckstellung.datum_bis DESC
) rueck ON rueck.person_id = p.person_id
WHERE
EXISTS (
@@ -8,7 +8,7 @@
'dialoglib' => true,
'ajaxlib' => true,
'tablesorter2' => true,
'tinymce4' => true,
'tinymce5' => true,
'sbadmintemplate3' => true,
'addons' => true,
'navigationwidget' => true,
@@ -27,7 +27,8 @@
'public/js/infocenter/rueckstellung.js',
'public/js/infocenter/zgvUeberpruefung.js',
'public/js/infocenter/docUeberpruefung.js',
'public/js/infocenter/stammdaten.js'
'public/js/infocenter/stammdaten.js',
'public/js/infocenter/personcheck.js'
),
'phrases' => array(
'infocenter',
@@ -38,6 +39,14 @@
$this->load->view('templates/FHC-Header', $includesArray);
?>
<script>
// Embed PHP data into JS as JSON to access from script files
const viewData = {
checkPerson: <?php echo json_encode(array('unruly' => $unruly, 'duplicate' => $duplicate)); ?>,
};
</script>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -48,7 +57,7 @@
<div class="row<?php if ($lockedbyother) echo ' alert-danger' ?>">
<div class="col-lg-8">
<h3 class="page-header">
Infocenter Details: <?php echo $stammdaten->vorname.' '.$stammdaten->nachname ?>
Infocenter Details: <a target="_blank" title="Studentenverwaltung" href="<?php echo site_url('/Studentenverwaltung/' . $studiensemester . '/person/' . $stammdaten->person_id) ?>"><?php echo $stammdaten->vorname.' '.$stammdaten->nachname ?> <i class="fa fa-external-link" style="font-size:small"></i></a>
</h3>
</div>
<div class="col-lg-4">
@@ -57,10 +66,11 @@
if (isset($lockedby)):
echo $this->p->t('global', 'wirdBearbeitetVon').': ';
echo $lockedby;
if ($origin_page == 'index'):
if (in_array($origin_page, array('index', 'abgewiesen'))):
$unlockpath = 'unlockPerson/'.$stammdaten->person_id;
$unlockpath .= '?fhc_controller_id='.$fhc_controller_id;
$unlockpath .= '&filter_id='.$prev_filter_id;
$unlockpath .= '&origin_page='.$origin_page;
?>
&nbsp;&nbsp;
<a href="<?php echo $unlockpath; ?>">
@@ -73,22 +83,8 @@
</div>
</div>
</div>
<?php if (!is_null($duplicated)): ?>
<div class="row alert-warning">
<h3 class="header col-lg-12">
<?php echo $this->p->t('global', 'bewerberVorhanden') . ':'; ?>
</h3>
<div class="text-left col-lg-12">
<?php
foreach ($duplicated as $duplicate)
{
echo 'Person ID: ' . $duplicate->person_id . '<br />';
}
?>
</div>
</div>
<?php endif; ?>
<br/>
<?php $this->load->view('system/infocenter/personCheck.php', array('unruly' => $unruly, 'duplicate' => $duplicate)); ?>
<br/>
<section>
<div class="row">
@@ -200,5 +196,4 @@
</div> <!-- ./wrapper -->
<button id="scrollToTop" title="Go to top"><i class="fa fa-chevron-up"></i></button>
<?php $this->load->view('templates/FHC-Footer', $includesArray); ?>
<?php $this->load->view('templates/FHC-Footer', $includesArray); ?>
@@ -20,12 +20,11 @@
'ui' => array('bitteEintragWaehlen')
),
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/rueckstellung.js', 'public/js/infocenter/infocenterPersonDataset.js')
)
);
?>
<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'); ?>
@@ -13,7 +13,8 @@
$ORG_NAME = '\'InfoCenter\'';
$IDENTITY = '\'identity\'';
$ONLINE = '\'online\'';
$STUDIENGEBUEHR_ANZAHLUNG = '\'StudiengebuehrAnzahlung\'';
$KAUTION_DRITT_STAAT = '\'KautionDrittStaat\'';
$query = '
SELECT
@@ -111,7 +112,7 @@ $query = '
LIMIT 1
) AS "AnzahlAbgeschickt",
(
SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(so.studiengangkurzbzlang) || \':\' || sp.orgform_kurzbz), \', \')
SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(so.studiengangkurzbzlang) || \':\' || sp.orgform_kurzbz || \' [\' || pss.ausbildungssemester || \']\'), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
@@ -267,12 +268,15 @@ $query = '
LIMIT 1
) AS "AktenId",
(
SELECT SUM(konto.betrag)
SELECT
CASE
WHEN COUNT(CASE WHEN konto.betrag != 0 THEN 1 END) = 0 THEN null
ELSE SUM(konto.betrag)
END AS "Kaution"
FROM public.tbl_konto konto
LEFT JOIN tbl_konto skonto ON (skonto.buchungsnr_verweis = konto.buchungsnr)
WHERE konto.person_id = p.person_id
AND konto.studiensemester_kurzbz = '. $STUDIENSEMESTER .'
AND konto.buchungstyp_kurzbz = '. $STUDIENGEBUEHR_ANZAHLUNG .'
AND konto.buchungstyp_kurzbz = '. $KAUTION_DRITT_STAAT .'
) AS "Kaution"
FROM public.tbl_person p
LEFT JOIN (
@@ -20,12 +20,11 @@
'ui' => array('bitteEintragWaehlen')
),
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/rueckstellung.js', 'public/js/infocenter/infocenterPersonDataset.js')
)
);
?>
<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'); ?>
@@ -9,7 +9,8 @@
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
$ORG_NAME = '\'InfoCenter\'';
$STUDIENGEBUEHR_ANZAHLUNG = '\'StudiengebuehrAnzahlung\'';
$KAUTION_DRITT_STAAT = '\'KautionDrittStaat\'';
$query = '
SELECT
@@ -198,11 +199,15 @@ $query = '
LIMIT 1
) AS "InfoCenterMitarbeiter",
(
SELECT SUM(konto.betrag)
SELECT
CASE
WHEN COUNT(CASE WHEN konto.betrag != 0 THEN 1 END) = 0 THEN null
ELSE SUM(konto.betrag)
END AS "Kaution"
FROM public.tbl_konto konto
WHERE konto.person_id = p.person_id
AND konto.studiensemester_kurzbz = '. $STUDIENSEMESTER .'
AND konto.buchungstyp_kurzbz = '. $STUDIENGEBUEHR_ANZAHLUNG .'
AND konto.buchungstyp_kurzbz = '. $KAUTION_DRITT_STAAT .'
) AS "Kaution"
FROM public.tbl_person p
LEFT JOIN (
@@ -10,7 +10,7 @@
'dialoglib' => true,
'ajaxlib' => true,
'tablesorter2' => true,
'tinymce4' => true,
'tinymce5' => true,
'sbadmintemplate3' => true,
'addons' => true,
'navigationwidget' => true,
@@ -52,7 +52,6 @@
)
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -131,7 +130,11 @@
<?php echo $this->p->t('infocenter', 'zgvNichtErfuellt') ?>
</button>
<?php if ($studiengang_typ === 'm') : ?>
<button type="button" class="btn btn-default zgvAkzeptierenPruefung" id="zgvAkzeptierenPruefung_<?php echo $prestudent_id ?>">
<button
type="button"
class="btn btn-default zgvAkzeptierenPruefung"
id="zgvAkzeptierenPruefung_<?php echo $prestudent_id ?>"
>
<?php echo $this->p->t('infocenter', 'zgvErfuelltPruefung') ?>
</button>
<?php endif; ?>
@@ -237,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'); ?>
@@ -0,0 +1,47 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'Info Center',
'jquery3' => true,
'jqueryui1' => true,
'jquerycheckboxes1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'sbadmintemplate3' => true,
'tablesorter2' => true,
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
'dialoglib' => true,
'phrases' => array(
'person' => array('vorname', 'nachname'),
'ui' => array('bitteEintragWaehlen')
),
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/rueckstellung.js', 'public/js/infocenter/infocenterPersonDataset.js')
)
);
?>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">
Electronic Onboarding
</h3>
</div>
</div>
<div>
<?php $this->load->view('system/infocenter/onboardingData.php'); ?>
</div>
</div>
</div>
</div>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -0,0 +1,109 @@
<?php
$APP = '\'infocenter\'';
$KENNZEICHEN = '\'eobRegistrierungsId\'';
$query = '
SELECT
p.person_id AS "PersonId",
p.vorname AS "Vorname",
p.nachname AS "Nachname",
pl.zeitpunkt AS "LockDate",
pl.lockuser AS "LockUser",
rueck.datum_bis AS "HoldDate",
rueck.bezeichnung AS "Rueckstellgrund"
FROM public.tbl_person p
JOIN tbl_kennzeichen ON p.person_id = tbl_kennzeichen.person_id AND kennzeichentyp_kurzbz = '. $KENNZEICHEN .'
LEFT JOIN (
SELECT tpl.person_id,
tpl.zeitpunkt,
sp.nachname AS lockuser
FROM system.tbl_person_lock tpl
JOIN public.tbl_benutzer sb USING (uid)
JOIN public.tbl_person sp ON sb.person_id = sp.person_id
WHERE tpl.app = '.$APP.'
) pl ON p.person_id = pl.person_id
LEFT JOIN (
SELECT DISTINCT ON (tbl_rueckstellung.person_id)
tbl_rueckstellung.person_id,
tbl_rueckstellung.datum_bis,
tbl_rueckstellung.status_kurzbz,
array_to_json(bezeichnung_mehrsprachig::varchar[])->>0 as bezeichnung
FROM public.tbl_rueckstellung
JOIN public.tbl_rueckstellung_status USING(status_kurzbz)
WHERE tbl_rueckstellung.datum_bis >= NOW()
ORDER BY tbl_rueckstellung.person_id, tbl_rueckstellung.datum_bis DESC
) rueck ON rueck.person_id = p.person_id
WHERE p.person_id NOT IN (SELECT person_id FROM public.tbl_prestudent)';
$filterWidgetArray = array(
'query' => $query,
'app' => InfoCenter::APP,
'datasetName' => 'onboarding',
'filter_id' => $this->input->get('filter_id'),
'requiredPermissions' => 'infocenter',
'datasetRepresentation' => 'tablesorter',
'checkboxes' => 'PersonId',
'additionalColumns' => array('Details'),
'columnsAliases' => array(
'PersonId',
ucfirst($this->p->t('person', 'vorname')) ,
ucfirst($this->p->t('person', 'nachname')),
ucfirst($this->p->t('global', 'sperrdatum')),
ucfirst($this->p->t('global', 'gesperrtVon')),
ucfirst($this->p->t('infocenter', 'rueckstelldatum')),
ucfirst($this->p->t('infocenter', 'rueckstellgrund')),
),
'formatRow' => function($datasetRaw) {
/* NOTE: Dont use $this here for PHP Version compatibility */
$datasetRaw->{'Details'} = sprintf(
'<a href="%s?person_id=%s&origin_page=%s&fhc_controller_id=%s&prev_filter_id=%s">Details</a>',
site_url('system/infocenter/InfoCenter/showDetails'),
$datasetRaw->{'PersonId'},
'onboarding',
(isset($_GET['fhc_controller_id']) ? $_GET['fhc_controller_id'] : ''),
(isset($_GET['filter_id']) ? $_GET['filter_id'] : '')
);
if ($datasetRaw->{'LockDate'} == null)
{
$datasetRaw->{'LockDate'} = '-';
}
if ($datasetRaw->{'LockUser'} == null)
{
$datasetRaw->{'LockUser'} = '-';
}
if ($datasetRaw->{'HoldDate'} == null)
{
$datasetRaw->{'HoldDate'} = '-';
}
else
{
$datasetRaw->{'HoldDate'} = date_format(date_create($datasetRaw->{'HoldDate'}), 'Y-m-d H:i');
}
if ($datasetRaw->{'Rueckstellgrund'} === null)
{
$datasetRaw->{'Rueckstellgrund'} = '-';
}
return $datasetRaw;
},
'markRow' => function($datasetRaw) {
if ($datasetRaw->LockDate != null)
{
return FilterWidget::DEFAULT_MARK_ROW_CLASS;
}
}
);
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
?>
@@ -0,0 +1,34 @@
<div class="row alert-info" id="unruly" style="display: none;">
<h3 class="header col-lg-12">
<?php echo $this->p->t('infocenter', 'unrulyPersonFound') . ':'; ?>
</h3>
<div class="text-left col-lg-12" id="unrulylist">
<?php
if($unruly) {
foreach ($unruly as $unruled)
{
echo '<p>Person ID: ' . $unruled->person_id . '<p/>';
}
}
?>
</div>
</div>
<div class="row alert-warning" id="duplicate" style="display: none;">
<h3 class="header col-lg-12">
<?php echo $this->p->t('global', 'bewerberVorhanden') . ':'; ?>
</h3>
<div class="text-left col-lg-12" id="duplicatelist">
<?php
if($duplicate) {
foreach ($duplicate as $dupe)
{
echo '<p>Person ID: ' . $dupe->person_id . '<p/>';
}
}
?>
</div>
</div>
@@ -32,12 +32,6 @@
<div class='stammdaten' id="gebdatum"><?php echo date_format(date_create($stammdaten->gebdatum), 'd.m.Y') ?></div>
</td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','svnr')) ?></strong></td>
<td>
<div class='stammdaten' id="svnr"><?php echo $stammdaten->svnr ?></div>
</td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','staatsbuergerschaft')) ?></strong></td>
<td>
@@ -112,6 +106,7 @@
<tbody>
<?php
$lastMailAdress = '';
$lastUnverifiedMailAdress = '';
foreach ($stammdaten->kontakte as $kontakt): ?>
<tr>
<?php if ($kontakt->kontakttyp === 'email'): ?>
@@ -125,14 +120,16 @@
<?php echo '<span class="kontakt '.$kontakt->kontakttyp.'" data-id="'. $kontakt->kontakt_id .'" data-value="' . $kontakt->kontakt .'">';?>
<?php if ($kontakt->kontakttyp === 'email'): ?>
<a href="mailto:<?php echo $kontakt->kontakt; ?>" target="_top">
<?php $lastMailAdress = $kontakt->kontakt;
<?php $lastMailAdress = $kontakt->kontakt; ?>
<?php elseif ($kontakt->kontakttyp === 'email_unverifiziert'): ?>
<?php $lastUnverifiedMailAdress = $kontakt->kontakt;
endif;
echo $kontakt->kontakt;
if ($kontakt->kontakttyp === 'email'):
if ($kontakt->kontakttyp === 'email'):
?>
</a>
<?php endif; ?>
<?php echo '</span>'?>
<?php endif; ?>
<?php echo '</span>'?>
</td>
<td><?php echo $kontakt->anmerkung; ?></td>
</tr>
@@ -146,9 +143,9 @@
<?php if (isset($adresse)): ?>
<div class="row adresse col-sm-12" data-id="<?php echo $adresse->adresse_id ?>">
<div class="float-left" data-value="<?php echo $adresse->strasse ?>" data-type="strasse"><?php echo $adresse->strasse ?></div>
<div class="float-left" data-value="<?php echo $adresse->plz ?>" data-type="plz"><?php echo $adresse->plz ?></div>
<div class="float-left" data-value="<?php echo $adresse->ort ?>" data-type="ort"><?php echo $adresse->ort ?></div>
<?php if (isset($adresse->nationkurztext)): ?>
@@ -188,7 +185,8 @@
</div>
<?php if (isset($stammdaten->zugangscode)): ?>
<div class="col-xs-6 text-right">
<a href="<?php echo CIS_ROOT.'addons/bewerbung/cis/registration.php?code='.html_escape($stammdaten->zugangscode).'&emailAdresse='.$lastMailAdress ?>"
<a href="<?php echo CIS_ROOT.'addons/bewerbung/cis/registration.php?code='.html_escape($stammdaten->zugangscode)
.'&emailAdresse='.(isEmptyString($lastMailAdress)?$lastUnverifiedMailAdress:$lastMailAdress).'&keepEmailUnverified=true' ?>"
target='_blank'><i class="glyphicon glyphicon-new-window"></i>&nbsp;<?php echo $this->p->t('infocenter','zugangBewerbung') ?></a>
</div>
<?php endif; ?>
@@ -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'); ?>
@@ -447,7 +447,6 @@
<div class="form-inline">
<div class="input-group" id="absgstatusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
<select name="absgstatusgrund"
<?php echo $disabledStg ?>
<?php echo $disabledPer ?>
class="d-inline float-right"
required>
@@ -460,7 +459,7 @@
</select>
<span class="input-group-btn">
<button type="button"
class="btn btn-default absageBtn" <?php echo $disabledStg . ' ' . $disabledPer?> id="absagebtn_<?php echo $zgvpruefung->prestudent_id ?>">
class="btn btn-default absageBtn" <?php echo $disabledPer?> id="absagebtn_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('ui', 'absagen') ?>
</button>
</span>
+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'); ?>
+153 -109
View File
@@ -1,12 +1,21 @@
<?php
$PERSON_ID = getAuthPersonId();
// all oe kurzbz for which logged user has a funktion
$ALL_FUNKTIONEN_OE_KURZBZ = "('" . implode("','", array_keys($all_funktionen_oe_kurzbz)) . "')";
$ALL_FUNKTIONEN_OE_KURZBZ = isEmptyArray($all_funktionen_oe_kurzbz) ? "(NULL)"
: "(" . implode(",", array_map(function($string) { return $this->db->escape($string); }, array_keys($all_funktionen_oe_kurzbz))) . ")";
// all oes for which logged user has issues permissions, including permissions for "special" issue funktion
$ALL_OE_KURZBZ_BERECHTIGT = "('" . implode("','", $all_oe_kurzbz_berechtigt) . "')";
$RELEVANT_PRESTUDENT_STATUS = "('Aufgenommener', 'Student', 'Incoming', 'Diplomand', 'Abbrecher', 'Unterbrecher', 'Absolvent')";
$LANGUAGE_INDEX = getUserLanguage() == 'German' ? '1' : '2';
$ALL_OE_KURZBZ_BERECHTIGT = isEmptyArray($all_oe_kurzbz_berechtigt) ? "(NULL)"
: "(" . implode(",", array_map(function($string) { return $this->db->escape($string); }, $all_oe_kurzbz_berechtigt)) . ")";
// app apps for which issues should be displayed
$APPS = isEmptyArray($apps) ? "" : "(" . implode(",", array_map(function($string) { return $this->db->escape($string); }, $apps)) . ")";
// all prestudent status for which issues should be displayed
$RELEVANT_PRESTUDENT_STATUS = isEmptyArray($status) ? ""
: "(" . implode(",", array_map(function($string) { return $this->db->escape($string); }, $status)) . ")";
// get issues for the oes of the logged user or for the persons (students, oe-zuordnung) of the oes
$query = "WITH zustaendigkeiten AS (
@@ -34,103 +43,132 @@ $query = "WITH zustaendigkeiten AS (
FROM system.tbl_fehler_zustaendigkeiten zst
)";
$query .= "SELECT issue_id, fehlercode AS \"Fehlercode\", iss.fehlercode_extern AS \"Fehlercode extern\", datum AS \"Datum\",
inhalt AS \"Inhalt\", inhalt_extern AS \"Inhalt extern\", iss.person_id AS \"PersonId\", iss.oe_kurzbz AS \"OE\",
ftyp.bezeichnung_mehrsprachig[".$LANGUAGE_INDEX."] AS \"Fehlertyp\", stat.bezeichnung_mehrsprachig[".$LANGUAGE_INDEX."] AS \"Fehlerstatus\",
verarbeitetvon AS \"Verarbeitet von\",verarbeitetamum AS \"Verarbeitet am\", fr.app AS \"Applikation\",
fr.fehlertyp_kurzbz AS \"Fehlertypcode\", iss.status_kurzbz AS \"Statuscode\",
pers.vorname AS \"Vorname\", pers.nachname AS \"Nachname\",
(
/* show all relevant Studiengänge of person and wether it is an employee*/
SELECT STRING_AGG(studiengang || ' ' || last_status, ' | ')
|| (CASE WHEN EXISTS (
SELECT 1 FROM public.tbl_mitarbeiter ma
JOIN public.tbl_benutzer ben ON ma.mitarbeiter_uid = ben.uid
WHERE person_id = prestudents.person_id
AND ben.aktiv
) THEN ' | Mitarbeiter' ELSE '' END)
FROM (
SELECT DISTINCT person_id, prestudent_id, UPPER(stg.typ || stg.kurzbz) AS studiengang, get_rolle_prestudent(ps.prestudent_id, null) AS last_status
FROM public.tbl_prestudent ps
JOIN public.tbl_studiengang stg USING (studiengang_kz)
WHERE person_id = pers.person_id
ORDER BY prestudent_id DESC
) prestudents
WHERE last_status IN ('Abgewiesener','Aufgenommener', 'Student', 'Incoming', 'Diplomand', 'Abbrecher', 'Unterbrecher', 'Absolvent')
GROUP BY person_id
LIMIT 1;
) AS \"Zugehörigkeit\",
CASE
WHEN
EXISTS(SELECT 1
FROM zustaendigkeiten
WHERE fehlercode = iss.fehlercode
AND zustaendig = TRUE) /* If Zuständigkeit is defined for the oe/person, zustaendig. */
THEN 'Ja'
WHEN
EXISTS(SELECT 1
FROM zustaendigkeiten
WHERE fehlercode = iss.fehlercode
AND zustaendig = FALSE) /* If Zuständigkeit is defined for different oe/person, not zustaendig. */
THEN 'Nein'
ELSE 'Ja' /* If no Zuständigkeit defined, zustaendig by default. */
END AS \"Hauptzuständig\",
(
SELECT string_agg(vorname || ' ' || nachname, ' | ' ORDER BY vorname, nachname)
FROM system.tbl_fehler_zustaendigkeiten
JOIN public.tbl_person USING (person_id)
WHERE fehlercode = fr.fehlercode
GROUP BY fehlercode
) AS \"Person Zuständigkeiten\",
(
SELECT string_agg(organisationseinheittyp_kurzbz || ' ' || oe.bezeichnung || COALESCE(' - ' || fu.beschreibung, ''), ' | ' ORDER BY bezeichnung, oe_kurzbz)
FROM system.tbl_fehler_zustaendigkeiten
LEFT JOIN public.tbl_organisationseinheit oe USING (oe_kurzbz)
LEFT JOIN public.tbl_funktion fu USING (funktion_kurzbz)
WHERE fehlercode = fr.fehlercode
GROUP BY fehlercode
) AS \"Organisationseinheit Zuständigkeiten\",
pers.bpk AS \"BPK\",
pers.matr_nr AS \"Matrikelnummer\"
FROM system.tbl_issue iss
JOIN system.tbl_fehler fr USING (fehlercode)
JOIN system.tbl_fehlertyp ftyp USING (fehlertyp_kurzbz)
JOIN system.tbl_issue_status stat USING (status_kurzbz)
LEFT JOIN public.tbl_person pers ON iss.person_id = pers.person_id
WHERE EXISTS ( /* if oe or person is specified in fehler_zustaendigkeiten */
SELECT 1 FROM zustaendigkeiten
WHERE fehlercode = iss.fehlercode
AND zustaendig = TRUE)";
$query .= "
SELECT
issue_id, fehlercode AS \"Fehlercode\", fehler_kurzbz AS \"Fehler Kurzbezeichnung\", iss.fehlercode_extern AS \"Fehlercode extern\", datum AS \"Datum\",
inhalt AS \"Inhalt\", inhalt_extern AS \"Inhalt extern\", iss.person_id AS \"PersonId\", iss.oe_kurzbz AS \"OE\",
ftyp.bezeichnung_mehrsprachig[".$this->db->escape($language_index)."] AS \"Fehlertyp\",
stat.bezeichnung_mehrsprachig[".$this->db->escape($language_index)."] AS \"Fehlerstatus\",
verarbeitetvon AS \"Verarbeitet von\",verarbeitetamum AS \"Verarbeitet am\", fr.app AS \"Applikation\",
fr.fehlertyp_kurzbz AS \"Fehlertypcode\", iss.status_kurzbz AS \"Statuscode\",
pers.vorname AS \"Vorname\", pers.nachname AS \"Nachname\",
(
/* show all relevant Studiengänge of person and wether it is an employee*/
SELECT
STRING_AGG(studiengang || ' ' || last_status, ' | ')
|| (CASE WHEN EXISTS (
SELECT 1 FROM public.tbl_mitarbeiter ma
JOIN public.tbl_benutzer ben ON ma.mitarbeiter_uid = ben.uid
WHERE person_id = prestudents.person_id
AND ben.aktiv
) THEN ' | Mitarbeiter' ELSE '' END)
FROM (
SELECT
DISTINCT person_id, prestudent_id, UPPER(stg.typ || stg.kurzbz) AS studiengang,
get_rolle_prestudent(ps.prestudent_id, null) AS last_status
FROM
public.tbl_prestudent ps
JOIN public.tbl_studiengang stg USING (studiengang_kz)
WHERE
person_id = pers.person_id
ORDER BY
prestudent_id DESC
) prestudents
WHERE
last_status IN ('Abgewiesener','Aufgenommener', 'Student', 'Incoming', 'Diplomand', 'Abbrecher', 'Unterbrecher', 'Absolvent')
GROUP BY
person_id
LIMIT 1;
) AS \"Zugehörigkeit\",
CASE
WHEN
EXISTS(SELECT 1
FROM zustaendigkeiten
WHERE fehlercode = iss.fehlercode
AND zustaendig = TRUE) /* If Zuständigkeit is defined for the oe/person, zustaendig. */
THEN 'Ja'
WHEN
EXISTS(SELECT 1
FROM zustaendigkeiten
WHERE fehlercode = iss.fehlercode
AND zustaendig = FALSE) /* If Zuständigkeit is defined for different oe/person, not zustaendig. */
THEN 'Nein'
ELSE 'Ja' /* If no Zuständigkeit defined, zustaendig by default. */
END AS \"Hauptzuständig\",
(
SELECT
string_agg(vorname || ' ' || nachname, ' | ' ORDER BY vorname, nachname)
FROM
system.tbl_fehler_zustaendigkeiten
JOIN public.tbl_person USING (person_id)
WHERE
fehlercode = fr.fehlercode
GROUP BY
fehlercode
) AS \"Person Zuständigkeiten\",
(
SELECT
string_agg(organisationseinheittyp_kurzbz || ' ' || oe.bezeichnung ||
COALESCE(' - ' || fu.beschreibung, ''), ' | ' ORDER BY bezeichnung, oe_kurzbz)
FROM
system.tbl_fehler_zustaendigkeiten
LEFT JOIN public.tbl_organisationseinheit oe USING (oe_kurzbz)
LEFT JOIN public.tbl_funktion fu USING (funktion_kurzbz)
WHERE
fehlercode = fr.fehlercode
GROUP BY
fehlercode
) AS \"Organisationseinheit Zuständigkeiten\",
pers.bpk AS \"BPK\",
pers.matr_nr AS \"Matrikelnummer\"
FROM
system.tbl_issue iss
JOIN system.tbl_fehler fr USING (fehlercode)
JOIN system.tbl_fehlertyp ftyp USING (fehlertyp_kurzbz)
JOIN system.tbl_issue_status stat USING (status_kurzbz)
LEFT JOIN public.tbl_person pers ON iss.person_id = pers.person_id
WHERE
(
EXISTS ( /* if oe or person is specified in fehler_zustaendigkeiten */
SELECT 1 FROM zustaendigkeiten
WHERE fehlercode = iss.fehlercode
AND zustaendig = TRUE)";
// show issue if it is assigend to oe of logged in user or to student of oe of logged in user
if (!isEmptyArray($all_oe_kurzbz_berechtigt))
{
$query .= " OR iss.oe_kurzbz IN $ALL_OE_KURZBZ_BERECHTIGT /* if issue is for oe */";
$query .= " OR iss.oe_kurzbz IN $ALL_OE_KURZBZ_BERECHTIGT /* if issue is for oe */";
$query .= " OR (iss.oe_kurzbz IS NULL AND EXISTS ( /* if person_id of issue is a student of studiengang oe */
SELECT 1 FROM public.tbl_prestudent ps
JOIN public.tbl_prestudentstatus pss USING (prestudent_id)
JOIN public.tbl_studiengang stg USING (studiengang_kz)
WHERE person_id = iss.person_id
AND stg.oe_kurzbz IN $ALL_OE_KURZBZ_BERECHTIGT
AND pss.status_kurzbz IN $RELEVANT_PRESTUDENT_STATUS
AND NOT EXISTS (SELECT 1 /* irrelevant if already finished studies and studied a while ago */
FROM public.tbl_prestudentstatus ps_finished
JOIN public.tbl_studiensemester sem_finished USING (studiensemester_kurzbz)
WHERE prestudent_id = ps.prestudent_id
AND status_kurzbz IN ('Absolvent','Abbrecher','Abgewiesener')
AND datum::date + interval '2 months' < NOW()
AND EXISTS (SELECT 1 FROM public.tbl_prestudent /* if more recent prestudent exists, still display the issue */
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
WHERE tbl_prestudentstatus.status_kurzbz IN $RELEVANT_PRESTUDENT_STATUS
AND person_id = ps.person_id
AND prestudent_id <> ps_finished.prestudent_id
AND tbl_studiensemester.start::date > sem_finished.start::date)
)
)
)";
}
$query .= " OR (iss.oe_kurzbz IS NULL AND EXISTS ( /* if person_id of issue is a student of studiengang oe */
SELECT 1 FROM public.tbl_prestudent ps
JOIN public.tbl_prestudentstatus pss USING (prestudent_id)
JOIN public.tbl_studiengang stg USING (studiengang_kz)
WHERE person_id = iss.person_id
AND stg.oe_kurzbz IN ".$ALL_OE_KURZBZ_BERECHTIGT;
if (!isEmptyString($RELEVANT_PRESTUDENT_STATUS)) $query .= " AND pss.status_kurzbz IN ".$RELEVANT_PRESTUDENT_STATUS;
$query .= " AND NOT EXISTS (SELECT 1 /* irrelevant if already finished studies and studied a while ago */
FROM public.tbl_prestudentstatus ps_finished
JOIN public.tbl_studiensemester sem_finished USING (studiensemester_kurzbz)
WHERE prestudent_id = ps.prestudent_id
AND status_kurzbz IN ('Absolvent','Abbrecher','Abgewiesener')
AND datum::date + interval '2 months' < NOW()
AND EXISTS (SELECT 1 FROM public.tbl_prestudent /* if more recent prestudent exists, still display the issue */
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
WHERE person_id = ps.person_id
AND prestudent_id <> ps_finished.prestudent_id
AND tbl_studiensemester.start::date > sem_finished.start::date";
if (!isEmptyString($RELEVANT_PRESTUDENT_STATUS)) $query .= " AND tbl_prestudentstatus.status_kurzbz IN ".$RELEVANT_PRESTUDENT_STATUS;
$query .= ")
)
)
)";
$query .= ") ";
if (!isEmptyString($APPS)) $query .= " AND fr.app IN ".$APPS;
$query .= " ORDER BY
CASE
@@ -146,17 +184,18 @@ $query .= " ORDER BY
datum DESC, fehlercode, issue_id DESC";
$filterWidgetArray = array(
'query' => $query,
'query' => $query,
'app' => 'core',
'datasetName' => 'issues',
'filter_id' => $this->input->get('filter_id'),
'tableUniqueId' => 'issues',
'requiredPermissions' => 'system/issues_verwalten',
'datasetRepresentation' => 'tablesorter',
'tableUniqueId' => 'issues',
'requiredPermissions' => 'system/issues_verwalten',
'datasetRepresentation' => 'tablesorter',
'checkboxes' => 'issue_id',
'columnsAliases' => array(
'ID',
'columnsAliases' => array(
'ID',
ucfirst($this->p->t('fehlermonitoring', 'fehlercode')),
ucfirst($this->p->t('fehlermonitoring', 'fehlerkurzbz')),
ucfirst($this->p->t('fehlermonitoring', 'fehlercodeExtern')),
ucfirst($this->p->t('global', 'datum')),
ucfirst($this->p->t('fehlermonitoring', 'inhalt')),
@@ -176,10 +215,15 @@ $filterWidgetArray = array(
ucfirst($this->p->t('fehlermonitoring', 'hauptzustaendig')),
ucfirst($this->p->t('fehlermonitoring', 'zustaendigePersonen')),
ucfirst($this->p->t('fehlermonitoring', 'zustaendigeOrganisationseinheiten')),
'BPK',
'Matrikelnummer'
),
'formatRow' => function($datasetRaw) {
'BPK',
'Matrikelnummer'
),
'formatRow' => function ($datasetRaw) {
if ($datasetRaw->{'Fehler Kurzbezeichnung'} == null)
{
$datasetRaw->{'Fehler Kurzbezeichnung'} = '-';
}
if ($datasetRaw->{'Fehlercode extern'} == null)
{
@@ -238,7 +282,7 @@ $filterWidgetArray = array(
return $datasetRaw;
},
'markRow' => function($datasetRaw) {
'markRow' => function ($datasetRaw) {
$mark = '';
@@ -0,0 +1,199 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'Fehler Konfiguration',
'jquery3' => true,
'jqueryui1' => true,
'jquerycheckboxes1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'sbadmintemplate3' => true,
'tablesorter2' => true,
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
'dialoglib' => true,
'phrases' => array(
'ui',
'fehlermonitoring'
),
'customCSSs' => array('public/css/issues/issuesKonfiguration.css', 'public/css/sbadmin2/tablesort_bootstrap.css'),
'customJSs' => array('public/js/issues/issuesKonfiguration.js', 'public/js/bootstrapper.js')
)
);
?>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">
<?php echo $this->p->t('fehlermonitoring', 'fehlerKonfiguration') ?>
</h3>
</div>
</div>
<div class="row">
<div class="col-lg-4">
<div class="panel panel-default">
<table class="table table-bordered" id="fehlercodeSelectTable">
<tr>
<td>
<label for="fehlerappSelect">App</label>
<select class="form-control" name="fehlerappSelect" id="fehlerappSelect">
</select>
</td>
</tr>
</table>
</div>
</div>
<div class="col-lg-8">
<div class="panel panel-default">
<table class="table table-bordered">
<tr>
<td class="tableCellNoRightBorder">
<label for="konfigSelect"><?php echo $this->p->t('fehlermonitoring', 'konfigurationstyp') ?></label>
<select class="form-control" name="konfigSelect" id="konfigSelect">
</select>
<i class="fa fa-info-circle" id="konfigurationstypInfoIcon"></i>
</td>
<td class="tableCellNoLeftBorder">
<label for="fehlercodeSelect"><?php echo $this->p->t('fehlermonitoring', 'fehlercode') ?></label>
<select class="form-control" name="fehlercodeSelect" id="fehlercodeSelect">
</select>
<i class="fa fa-info-circle" id="fehlercodeInfoIcon"></i>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12 text-center">
<div class="input-group">
<input type="text" class="form-control" name="konfigurationsWert" id="konfigurationsWert"
placeholder="<?php echo $this->p->t('fehlermonitoring', 'konfigurationswertPlatzhalter') ?>">
<div class="input-group-btn">
<button class="btn btn-default" id="assignKonfiguration">
<?php echo $this->p->t('fehlermonitoring', 'konfigurationswertZuweisen') ?>
</button>
<button class="btn btn-default" id="deleteKonfiguration">
<?php echo $this->p->t('fehlermonitoring', 'konfigurationswertLoeschen') ?>
</button>
</div>
</div>
</div>
</div>
<br>
<div>
<?php $this->load->view('system/issues/issuesKonfigurationData.php'); ?>
</div>
<div class="modal fade" id="fehlerInfo" tabindex="-1"
role="dialog"
aria-labelledby="fehlerInfoLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close"
data-dismiss="modal"
aria-hidden="true">&times;
</button>
<h4 class="modal-title" id="fehlerInfoLabel">
</h4>
</div>
<div class="modal-body" id="fehlerInfoContent">
<table class="table table-condensed table-bordered">
<tr>
<td>
<b><?php echo ucfirst($this->p->t('fehlermonitoring', 'fehlercode')) ?></b>
</td>
<td>
<span id="fehlercodeInfo"></span>
</td>
</tr>
<tr>
<td>
<b><?php echo ucfirst($this->p->t('fehlermonitoring', 'fehlerkurzbz')) ?></b>
</td>
<td>
<span id="fehlerkurzbzInfo"></span>
</td>
</tr>
<tr>
<td>
<b><?php echo ucfirst($this->p->t('fehlermonitoring', 'fehlertyp')) ?></b>
</td>
<td>
<span id="fehlertypInfo"></span>
</td>
</tr>
<tr>
<td>
<b><?php echo ucfirst($this->p->t('fehlermonitoring', 'fehlertext')) ?></b>
</td>
<td>
<span id="fehlertextInfo"></span>
</td>
</tr>
</table>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal-fade -->
<div class="modal fade" id="konfigurationsInfo" tabindex="-1"
role="dialog"
aria-labelledby="konfigurationstypInfoLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close"
data-dismiss="modal"
aria-hidden="true">&times;
</button>
<h4 class="modal-title" id="konfigurationstypInfoLabel">
</h4>
</div>
<div class="modal-body" id="konfigurationstypInfoContent">
<table class="table table-condensed table-bordered">
<tr>
<td>
<b><?php echo ucfirst($this->p->t('fehlermonitoring', 'konfigurationstyp')) ?></b>
</td>
<td>
<span id="konfigurationstypInfo"></span>
</td>
</tr>
<tr>
<td>
<b><?php echo ucfirst($this->p->t('fehlermonitoring', 'konfigurationsbeschreibung')) ?></b>
</td>
<td>
<span id="konfigurationsbeschreibungInfo"></span>
</td>
</tr>
<tr>
<td>
<b><?php echo ucfirst($this->p->t('fehlermonitoring', 'konfigurationsdatentyp')) ?></b>
</td>
<td>
<span id="konfigurationsdatentypInfo"></span>
</td>
</tr>
</table>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal-fade -->
</div>
</div>
</div>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -0,0 +1,56 @@
<?php
// get assigned Konfiguration
$query = "SELECT
konftyp.konfigurationstyp_kurzbz, fe.fehlercode, fe.fehler_kurzbz, konf.konfiguration, fe.app,
konftyp.beschreibung AS konfigurationsbeschreibung, konftyp.konfigurationsdatentyp, fe.fehlertext
FROM
system.tbl_fehler_konfiguration konf
JOIN system.tbl_fehler_konfigurationstyp konftyp USING (konfigurationstyp_kurzbz)
JOIN system.tbl_fehler fe USING (fehlercode)
ORDER BY
konf.konfigurationstyp_kurzbz, fe.fehlercode";
$filterWidgetArray = array(
'query' => $query,
'app' => 'core',
'datasetName' => 'fehlerKonfiguration',
'filter_id' => $this->input->get('filter_id'),
'tableUniqueId' => 'issuesKonfiguration',
'requiredPermissions' => 'admin',
'datasetRepresentation' => 'tablesorter',
'additionalColumns' => array('Delete'),
'columnsAliases' => array(
ucfirst($this->p->t('fehlermonitoring', 'konfigurationstyp')),
ucfirst($this->p->t('fehlermonitoring', 'fehlercode')),
ucfirst($this->p->t('fehlermonitoring', 'fehlerkurzbz')),
ucfirst($this->p->t('fehlermonitoring', 'konfigurationswert')),
'Application',
ucfirst($this->p->t('fehlermonitoring', 'konfigurationsbeschreibung')),
ucfirst($this->p->t('fehlermonitoring', 'konfigurationsdatentyp')),
ucfirst($this->p->t('fehlermonitoring', 'fehlertext')),
),
'formatRow' => function($datasetRaw) {
$datasetRaw->{'Delete'} =
"<button
data-konfigurationstyp-kurzbz='".$datasetRaw->{'konfigurationstyp_kurzbz'}."'
data-fehlercode='".$datasetRaw->{'fehlercode'}."'
class='btn btn-default deleteBtn'>"
.ucfirst($this->p->t('ui', 'loeschen'))."</button>";
if ($datasetRaw->{'konfigurationsbeschreibung'} == null)
{
$datasetRaw->{'konfigurationsbeschreibung'} = '-';
}
if ($datasetRaw->{'fehlertext'} == null)
{
$datasetRaw->{'fehlertext'} = '-';
}
return $datasetRaw;
}
);
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
@@ -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'); ?>
@@ -71,9 +71,9 @@ $this->load->view(
<label>Fehler</label>
<select class="form-control" name="fehler_kurzbz" id="fehler_kurzbz">
<option value="" selected="selected">Alle</option>';
<?php foreach ($fehler as $fehler_kurzbz):?>
<?php foreach ($fehlerKurzbzCodeMappings as $fehler_kurzbz => $fehlercode):?>
<option value="<?php echo $fehler_kurzbz ?>">
<?php echo $fehler_kurzbz ?>
<?php echo $fehler_kurzbz.' ('.$fehlercode.')' ?>
</option>
<?php endforeach; ?>
</select>
@@ -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'); ?>
+2 -1
View File
@@ -8,11 +8,12 @@
'filtercomponent' => true,
'navigationcomponent' => true,
'tabulator5' => true,
'primevue3' => true,
'phrases' => array(
'global' => array('mailAnXversandt'),
'ui' => array('bitteEintragWaehlen')
),
'customJSModules' => array('public/js/apps/LogsViewer/LogsViewer.js')
'customJSModules' => array('public/js/apps/LogsViewer/LogsViewer.js'),
);
$this->load->view('templates/FHC-Header', $includesArray);
@@ -1,60 +0,0 @@
<?php
$includesArray = array(
'title' => 'Test Search',
'jquery3' => true,
'bootstrap5' => true,
'fontawesome6' => true,
'tablesorter2' => true,
'vue3' => true,
'ajaxlib' => true,
'jqueryui1' => true,
'filtercomponent' => true,
'navigationcomponent' => true,
'phrases' => array(
'global' => array('mailAnXversandt'),
'ui' => array('bitteEintragWaehlen')
),
'customCSSs' => array(
'public/css/components/verticalsplit.css',
'public/css/components/searchbar.css',
),
'customJSs' => array('vendor/axios/axios/axios.min.js'),
'customJSModules' => array('public/js/apps/TestSearch.js')
);
$this->load->view('templates/FHC-Header', $includesArray);
?>
<div id="main">
<!-- Navigation component -->
<core-navigation-cmpt :add-side-menu-entries="appSideMenuEntries"></core-navigation-cmpt>
<div id="content">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">
Test Search
</h3>
</div>
</div>
<div>
<searchbar :searchoptions="searchbaroptions" :searchfunction="searchfunction"></searchbar>
<verticalsplit>
<template #top>
<searchbar :searchoptions="searchbaroptions" :searchfunction="searchfunctiondummy"></searchbar>
</template>
<template #bottom>
<!-- Filter component -->
<core-filter-cmpt filter-type="LogsViewer" @nw-new-entry="newSideMenuEntryHandler"></core-filter-cmpt>
</template>
</verticalsplit>
</div>
</div>
</div>
<?php $this->load->view('templates/FHC-Footer', $includesArray); ?>
@@ -0,0 +1,195 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'Write a new message or reply using templates',
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'ajaxlib' => true,
'fontawesome4' => true,
'tinymce3' => true,
'sbadmintemplate3' => true,
'dialoglib' => true,
'widgets' => true,
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/message.css'),
'customJSs' => array('public/js/bootstrapper.js', 'public/js/messaging/fasMessageWrite.js')
)
);
?>
<div id="wrapper">
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">
<?php echo ucfirst($this->p->t('ui', 'nachrichtSenden')); ?>
</h3>
</div>
</div>
<form id="sendForm" method="post" action="<?php echo site_url('/system/messages/Messages/sendImplicitTemplate'); ?>">
<div class="row">
<div class="form-group">
<div class="col-lg-1 msgfieldcol-left">
<label>
<?php echo ucfirst($this->p->t('global', 'empfaenger')); ?>:
</label>
</div>
<div class="col-lg-11 msgfieldcol-right">
<?php echo $recipientsList; ?>
</div>
</div>
</div>
<div class="row">
<div class="form-group">
<div class="col-lg-1 msgfield msgfieldcol-left">
<label>
<?php echo ucfirst($this->p->t('global', 'betreff')); ?>:
</label>
</div>
&nbsp;
<div class="col-lg-7">
<input id="subject" class="form-control" type="text" value="<?php echo $subject; ?>" name="subject">
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-lg-9">
<label>
<?php echo ucfirst($this->p->t('global', 'nachricht')); ?>:
</label>
<textarea id="bodyTextArea" class="bodyTextArea" name="body">
<?php echo $body; ?>
</textarea>
</div>
<div class="col-lg-3">
<div class="form-group">
<label>
<?php echo ucfirst($this->p->t('ui', 'felder')); ?>:
</label>
<?php
$size = count($variables) > 19 ? 19 : count($variables);
echo $this->widgetlib->widget(
'MultipleDropdown_widget',
array('elements' => success($variables)),
array(
'name' => 'variables[]',
'id' => 'variables',
'size' => $size,
'multiple' => true
)
);
?>
</div>
<br>
<div class="form-group">
<label>
<?php echo ucfirst($this->p->t('ui', 'meineFelder')); ?>:
</label>
<?php
$size = count($user_fields) > 5 ? 5 : count($user_fields);
echo $this->widgetlib->widget(
'MultipleDropdown_widget',
array('elements' => success($user_fields)),
array(
'name' => 'user_fields[]',
'id' => 'user_fields',
'size' => $size,
'multiple' => true
)
);
?>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-xs-3">
<?php
echo $this->widgetlib->widget(
'Vorlage_widget',
array('oe_kurzbz' => $organisationUnits, 'isAdmin' => $senderIsAdmin),
array('name' => 'vorlage', 'id' => 'vorlageDnD')
);
?>
</div>
<div class="col-xs-6">
<button id="sendButton" class="btn btn-default pull-right" type="button">
<?php echo $this->p->t('ui', 'senden'); ?>
</button>
</div>
</div>
<br>
<hr>
<div class="row">
<div class="col-lg-12">
<label>
<?php echo ucfirst($this->p->t('global', 'vorschau')); ?>:
</label>
</div>
</div>
<div class="well" id="templatePreviewDiv">
<div class="row">
<div class="col-sm-12" style="display: inline">
<div class="form-group form-inline">
<div class="input-group">
<?php
echo $this->widgetlib->widget(
'Dropdown_widget',
array(
'elements' => success($recipientsArray),
'emptyElement' => ucfirst($this->p->t('global', 'empfaenger')).'...'
),
array(
'name' => 'recipients[]',
'id' => 'recipients'
)
);
?>
<span class="input-group-btn">
<a class="btn btn-default" href="#templatePreviewDiv" id="refresh">
<?php echo ucfirst($this->p->t('ui', 'refresh')); ?>
</a>
</span>
</div>
</div>
</div>
</div>
<br>
<textarea id="tinymcePreview" class="tinymcePreview"></textarea>
</div>
<?php echo $recipients_ids; ?>
<?php echo $relationmessage_id; ?>
<?php echo $type; ?>
</form>
</div>
</div>
</div>
<?php $this->load->view("templates/FHC-Footer"); ?>
@@ -12,14 +12,13 @@
'tabulator4' => true,
'ajaxlib' => true,
'dialoglib' => true,
'tinymce4' => true,
'tinymce5' => true,
'phrases' => array('global', 'ui'),
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/message.css'),
'customJSs' => array('public/js/bootstrapper.js', 'public/js/messaging/read.js')
)
);
?>
<body>
<fieldset>
@@ -56,6 +55,5 @@
<div id="readMessagePanel"></div>
</body>
<?php $this->load->view("templates/FHC-Footer"); ?>
@@ -10,14 +10,13 @@
'sbadmintemplate3' => true,
'ajaxlib' => true,
'dialoglib' => true,
'tinymce4' => true,
'tinymce5' => true,
'phrases' => array('global', 'ui'),
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/message.css'),
'customJSs' => array('public/js/bootstrapper.js', 'public/js/messaging/write.js')
)
);
?>
<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"); ?>
@@ -10,14 +10,13 @@
'sbadmintemplate3' => true,
'ajaxlib' => true,
'dialoglib' => true,
'tinymce4' => true,
'tinymce5' => true,
'phrases' => array('global', 'ui'),
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/message.css'),
'customJSs' => array('public/js/bootstrapper.js', 'public/js/messaging/writeReply.js')
)
);
?>
<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"); ?>
@@ -6,14 +6,13 @@
'jquery3' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'tinymce4' => true,
'tinymce5' => true,
'sbadmintemplate3' => true,
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/message.css'),
'customJSs' => array('public/js/bootstrapper.js', 'public/js/messaging/messageWriteReply.js')
)
);
?>
<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"); ?>
@@ -8,7 +8,7 @@
'bootstrap3' => true,
'ajaxlib' => true,
'fontawesome4' => true,
'tinymce4' => true,
'tinymce5' => true,
'sbadmintemplate3' => true,
'dialoglib' => true,
'widgets' => true,
@@ -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"); ?>
@@ -0,0 +1,65 @@
<?php
$this->load->view('templates/header', array('title' => 'VorlageEdit', 'tinymce5' => true, 'jsonforms' => true));
?>
<div class="row">
<div class="span4">
<h2>Vorlagetext: <?=$vorlagestudiengang_id?></h2>
<!--StudiengangKZ: <?=$studiengang_kz?>-->
<form method="post" action="../saveText/<?=$vorlagestudiengang_id?>">
OE: <?php
echo $this->widgetlib->widget(
'Organisationseinheit_widget',
array(
DropdownWidget::SELECTED_ELEMENT => $oe_kurzbz,
'typ' => array('Erhalter', 'Studienzentrum', 'Studiengang', 'Lehrgang')
),
array('name' => 'organisationseinheit', 'id' => 'organisationseinheitDnD')
);
?>
Sprache: <?php
echo $this->widgetlib->widget(
'Sprache_widget',
array(DropdownWidget::SELECTED_ELEMENT => $sprache),
array('name' => 'sprache', 'id' => 'spracheDnD')
);
?>
OrgForm: <?php
echo $this->widgetlib->widget(
'Orgform_widget',
array(DropdownWidget::SELECTED_ELEMENT => $orgform_kurzbz),
array('name' => 'orgform', 'id' => 'orgformDnD')
);
?>
Version: <input type="text" name="version" value="<?php echo $version; ?>" size="1" />
Aktiv: <input type="text" name="aktiv" value="<?php echo $aktiv; ?>" size="1" />
<input type="hidden" name="vorlagestudiengang_id" value="<?php echo $vorlagestudiengang_id; ?>" />
<input type="hidden" name="studiengang_kz" value="<?php echo $studiengang_kz; ?>" />
<?php
// This is an example to show that you can load stuff from inside the template file
echo $this->widgetlib->widget("tinymce_widget", array('name' => 'text', 'text' => $text));
?>
<button type="submit">Save</button>
</form>
<hr/><h2>Preview-Data</h2>
<form method="post" action="../preview/<?=$vorlagestudiengang_id?>" target="VorlagePreview">
<?php echo $this->widgetlib->widget("jsonforms_widget", array('id' => 'dataform', 'schema' => $schema)); ?>
<input type="hidden" name="formdata" id="formdata" value="" />
<button type="submit" onclick="getFormdata(this.form);">Preview</button>
</form>
</div>
</div>
<script type="text/javascript" >
// get json
function getFormdata(form)
{
form.elements["formdata"].value = JSON.stringify(bf.getData(), null, 2);
//alert(form.elements["formdata"].value);
}
</script>
<iframe name="VorlagePreview" width="100%" src=""/>
</body>
</html>