diff --git a/application/controllers/Cis/Documents.php b/application/controllers/Cis/Documents.php
index 20380ca5a..094ade296 100644
--- a/application/controllers/Cis/Documents.php
+++ b/application/controllers/Cis/Documents.php
@@ -14,9 +14,12 @@ class Documents extends Auth_Controller
{
parent::__construct([
'index' => ['student/anrechnung_beantragen:r','user:r'], // TODO(chris): permissions?
- 'Semester' => ['student/anrechnung_beantragen:r','user:r'] // TODO(chris): permissions?
+ 'student' => ['admin:r'],
+ 'download' => ['student/anrechnung_beantragen:r','user:r'] // TODO(chris): permissions?
]);
+ $this->load->model('crm/Prestudentstatus_model', 'PrestudentstatusModel');
+
$this->loadPhrases([
'global',
'tools'
@@ -27,121 +30,151 @@ class Documents extends Auth_Controller
// Public methods
/**
- * @param string $stsem
* @return void
*/
- public function index($stsem = null)
+ public function index()
{
- return $this->Semester($stsem);
+ return $this->showDocuments(getAuthUID());
}
/**
- * @param string $stsem
+ * @param string $uid Administratoren dürfen die UID als Parameter übergeben um die Dokumente von anderen Personen anzuzeigen
* @return void
*/
- public function Semester($stsem = null)
+ public function student($uid)
+ {
+ return $this->showDocuments($uid);
+ }
+
+ /**
+ * @param string $uid
+ * @return void
+ */
+ protected function showDocuments($uid)
{
- $this->load->model('crm/Prestudentstatus_model', 'PrestudentstatusModel');
$this->load->model('crm/Konto_model', 'KontoModel');
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
- $uid = getAuthUID();
$studiengaenge = [];
$stati = $this->PrestudentstatusModel->loadWhereUid($uid, null, true);
if (isError($stati))
- return $this->view->load('errors/html/error_db.php', [
+ return $this->load->view('errors/html/error_db.php', [
'heading' => 'Database Error',
'message' => getError($stati)
]);
$stati = getData($stati);
if (!$stati)
- return $this->view->load('errors/html/error_general.php', [
+ return $this->load->view('errors/html/error_general.php', [
'heading' => 'User ist kein Student',
'message' => 'Es konnten keine Studiensemester gefunden werden in denen der User als Student inskripiert ist'
]);
- $stsemArray = [];
+ $stgs = [];
+ $buchungstypen = implode('\',\'', defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN") ? unserialize(CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN) : []);
+ $person_ids = [];
foreach ($stati as $status) {
- if (!isset($studiengaenge[$status->studiengang_kz])) {
+ $person_ids[] = $status->person_id;
+
+ if (!isset($stgs[$status->studiengang_kz])) {
$stg = $this->StudiengangModel->load($status->studiengang_kz);
if (isError($stg))
- return $this->view->load('errors/html/error_db.php', [
+ return $this->load->view('errors/html/error_db.php', [
'heading' => 'Database Error',
'message' => getError($stg)
]);
$stg = getData($stg);
if (!$stg)
- return $this->view->load('errors/html/error_db.php', [
+ return $this->load->view('errors/html/error_db.php', [
'heading' => 'Database Error',
'message' => 'No Studiengang found for studiengang_kz ' . $status->studiengang_kz
]);
- $studiengaenge[$status->studiengang_kz] = current($stg);
+ $stgs[$status->studiengang_kz] = current($stg);
+ $stgs[$status->studiengang_kz]->studiensemester = [];
}
- if (!isset($stsemArray[$status->studiensemester_kurzbz]))
- $stsemArray[$status->studiensemester_kurzbz] = [];
- // TODO(chris): maybe just use prestudent_id?
- $stsemArray[$status->studiensemester_kurzbz][] = $status;
- }
-
- $hasSemester = true;
- $inskriptionsbestaetigungen = [];
-
- if ($stsem && !isset($stsemArray[$stsem])) {
- $hasSemester = false;
- } else {
- if (!$stsem)
- $stsem = end($stsemArray);
-
- #$stsemArray[$stsem] = array_unique($stsemArray[$stsem]);
-
- $buchungstypen = implode('\',\'', defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN") ? unserialize(CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN) : []);
-
- foreach ($stsemArray[$stsem] as $status) {
- // NOTE(chris): multiple prestudentstatus for prestudent and semester
- if (isset($inskriptionsbestaetigungen[$status->studiengang_kz]))
- continue;
-
- $inskriptionsbestaetigungen[$status->studiengang_kz] = (boolean) getData($this->KontoModel->checkStudienbeitragFromPrestudent($status->prestudent_id, $stsem, $buchungstypen));
+ if (!isset($stgs[$status->studiengang_kz]->studiensemester[$status->studiensemester_kurzbz])) {
+ $stgs[$status->studiengang_kz]->studiensemester[$status->studiensemester_kurzbz] = new stdClass();
+ $stgs[$status->studiengang_kz]->studiensemester[$status->studiensemester_kurzbz]->inskriptionsbestaetigung = (boolean) getData($this->KontoModel->checkStudienbeitragFromPrestudent($status->prestudent_id, $status->studiensemester_kurzbz, $buchungstypen));
}
}
+ $person_ids = array_unique($person_ids);
$selfservice = null;
if (!defined('CIS_DOKUMENTE_SELFSERVICE') || CIS_DOKUMENTE_SELFSERVICE) {
$this->load->model('crm/Akte_model', 'AkteModel');
- $result = $this->AkteModel->getArchiv(getAuthPersonId(), null, true);
- if (isError($result))
- return $this->view->load('errors/html/error_db.php', [
- 'heading' => 'Database Error',
- 'message' => getError($result)
- ]);
- $selfservice = getData($result) ?: [];
+ $selfservice = [];
+ foreach ($person_ids as $person_id) {
+ $result = $this->AkteModel->getArchiv($person_id, null, true);
+ if (isError($result))
+ return $this->load->view('errors/html/error_db.php', [
+ 'heading' => 'Database Error',
+ 'message' => getError($result)
+ ]);
+ $selfservice = array_merge($selfservice, getData($result) ?: []);
+ }
}
- // TODO(chris): in array stsem stsemArray:
- // TODO(chris): - inskriptionsbestaetigung (konto)
- // TODO(chris): - CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN? studienbuchblatt
- // TODO(chris): - CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN? studienerfolgsbestaetigung
- // TODO(chris): else: msg
-
- // TODO(chris): CIS_DOKUMENTE_SELFSERVICE?: ...abschlussdokumente (akte)
-
- $stsemArray = array_keys($stsemArray);
- if (!$hasSemester)
- array_unshift($stsemArray, $stsem);
-
$this->load->view('Cis/Documents', [
+ 'stgs' => $stgs,
'uid' => $uid,
- 'stsem' => $stsem,
- 'stsemArray' => $stsemArray,
- 'hasSemester' => $hasSemester,
- 'studiengaenge' => $studiengaenge,
- 'inskriptionsbestaetigungen' => $inskriptionsbestaetigungen,
'studienbuchblatt' => defined('CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN') && CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN,
'studienerfolgsbestaetigung' => defined('CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN') && CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN,
'selfservice' => $selfservice
]);
}
+ /**
+ * @param integer $akte_id
+ * @param string $uid (optional) Administratoren dürfen die UID als Parameter übergeben um die Dokumente von anderen Personen anzuzeigen
+ *
+ * @return void
+ */
+ public function download($akte_id, $uid = null)
+ {
+ if (!is_numeric($akte_id))
+ return show_404();
+
+ $this->load->model('crm/Akte_model', 'AkteModel');
+ $result = $this->AkteModel->load($akte_id);
+ if (isError($result))
+ return show_error(getError($result));
+ $akte = getData($result);
+ if (!$akte)
+ return show_404();
+ $akte = current($akte);
+
+ $admin_access = false;
+ if ($uid !== null && $this->permissionlib->isBerechtigt('admin')) {
+ $stati = $this->PrestudentstatusModel->loadWhereUid($uid, null, true);
+ if (hasData($stati)) {
+ $person_ids = array_map(function ($status) {
+ return $status->person_id;
+ }, getData($stati));
+ $person_ids = array_unique($person_ids);
+ if (count($person_ids) == 1 && current($person_ids) == $akte->person_id) {
+ $admin_access = true;
+ }
+ }
+ }
+
+ if (!$admin_access && ($akte->person_id != getAuthPersonId() || !$akte->stud_selfservice))
+ return show_error('Forbidden', 403);
+
+ // NOTE(chris): Log bei einem Download vom Becheid
+ if (isset($akte->dokument_kurzbz) && ($akte->dokument_kurzbz === 'Bescheid' || $akte->dokument_kurzbz === 'BescheidEng')) {
+ $this->load->model('system/Webservicelog_model', 'WebservicelogModel');
+ $this->WebservicelogModel->insert([
+ 'webservicetyp_kurzbz' => 'content',
+ 'request_id' => (isset($akte->akte_id) && !empty($akte->akte_id)) ? $akte->akte_id : NULL,
+ 'beschreibung' => 'Bescheidbestaetigungsdownload',
+ 'request_data' => $_SERVER['QUERY_STRING'],
+ 'execute_time' => date('c'),
+ 'execute_user' => getAuthUID()
+ ]);
+ }
+
+ $this->output->set_content_type($akte->mimetype);
+ $this->output->set_output(base64_decode($akte->inhalt));
+ }
}
diff --git a/application/views/Cis/Documents.php b/application/views/Cis/Documents.php
index 480fabe85..1e7b0ea48 100644
--- a/application/views/Cis/Documents.php
+++ b/application/views/Cis/Documents.php
@@ -1,131 +1,210 @@
true,
+ 'customJSModules' => ['public/js/apps/Cis/Documents.js']
+);
$this->load->view('templates/CISHTML-Header', $includesArray);
?>
-
-
-
-
-
+
= $this->p->t('tools', 'dokumente'); ?>= $this->p->t('tools', 'bestaetigungenZeugnisse'); ?>
-
-
load->view('templates/CISHTML-Footer', $includesArray); ?>
diff --git a/public/js/apps/Cis/Documents.js b/public/js/apps/Cis/Documents.js
new file mode 100644
index 000000000..d484c06db
--- /dev/null
+++ b/public/js/apps/Cis/Documents.js
@@ -0,0 +1,93 @@
+import Phrasen from '../../mixins/Phrasen.js';
+//import {TabulatorFull as Tabulator} from '../../../../vendor/olifolkerd/tabulator5/dist/js/tabulator_esm.min.js';
+//import CssLib from '../../helpers/CssLib.js';
+//CssLib.import('../../vendor/olifolkerd/tabulator5/dist/css/tabulator_bootstrap5.min.css');
+
+const app = Vue.createApp({
+ mixins: [
+ Phrasen
+ ],
+ data() {
+ return {
+ inscriptiontable: null,
+ inscriptiontableFilters: {},
+ studienerfolgsbestaetigungtable: null,
+ studienerfolgsbestaetigungtableFilters: {},
+ abschlussdokumentetable: null
+ };
+ },
+ computed: {
+ inscriptiontableFilter() {
+ const filter = [];
+ for (var k in this.inscriptiontableFilters)
+ if (this.inscriptiontableFilters[k])
+ filter.push({
+ field: k,
+ type: '=',
+ value: this.inscriptiontableFilters[k]
+ });
+ return filter;
+ },
+ inscriptiontableEmpty() {
+ // NOTE(chris): empty result on filter
+ if (this.inscriptiontableFilters.Stsem)
+ return this.p.t('tools', 'studienbeitragFuerSSNochNichtBezahlt', {stsem: this.inscriptiontableFilters.Stsem});
+ if (this.inscriptiontableFilters.Stg)
+ return this.p.t('tools', 'studienbeitragFuerStgNochNichtBezahlt', {stsem: this.inscriptiontableFilters.Stg});
+
+ return this.p.t('tools', 'studienbeitragNochNichtBezahlt');
+ },
+ studienerfolgsbestaetigungtableFilter() {
+ const filter = [];
+ for (var k in this.studienerfolgsbestaetigungtableFilters)
+ if (this.studienerfolgsbestaetigungtableFilters[k])
+ filter.push({
+ field: k,
+ type: '=',
+ value: this.studienerfolgsbestaetigungtableFilters[k]
+ });
+ return filter;
+ }
+ },
+ methods: {
+ changeFilter(table, field, evt) {
+ this[table + 'Filters'][field] = evt.target.value;
+ this[table].clearFilter();
+ if (this[table + 'Filter'].length)
+ this[table].setFilter(this[table + 'Filter']);
+ }
+ },
+ mounted() {
+ this.inscriptiontable = new Tabulator(this.$refs.inscriptiontable, {
+ layout: 'fitDataStretch',
+ placeholder: this.p.t('tools', 'studienbeitragNochNichtBezahlt')
+ });
+ this.studienerfolgsbestaetigungtable = new Tabulator(this.$refs.studienerfolgsbestaetigungtable, {
+ layout: 'fitDataStretch'
+ });
+ this.abschlussdokumentetable = new Tabulator(this.$refs.abschlussdokumentetable, {
+ layout: 'fitDataStretch',
+ placeholder: this.p.t('tools', 'nochKeineAbschlussdokumenteVorhanden')
+ });
+
+ // NOTE(chris): empty result on filter
+ const div = Vue.h(
+ 'div',
+ {
+ class: 'position-absolute top-0 left-0 w-100 h-100 d-flex justify-content-center align-items-center fw-bold text-muted'
+ },
+ [
+ this.inscriptiontableEmpty
+ ]
+ );
+ this.inscriptiontable.on('dataSorted', (sorters, rows) => {
+ if (!rows.length) {
+ div.children = [this.inscriptiontableEmpty];
+ Vue.render(div, this.inscriptiontable.element.querySelector('.tabulator-tableholder'));
+ } else {
+ Vue.render(null, this.inscriptiontable.element.querySelector('.tabulator-tableholder'));
+ }
+ });
+ }
+});
+app.mount('#content');
\ No newline at end of file
diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php
index 78807f26d..cf344aa52 100644
--- a/system/phrasesupdate.php
+++ b/system/phrasesupdate.php
@@ -17318,6 +17318,46 @@ array(
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'global',
+ 'phrase' => 'englisch',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Englisch",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "English",
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'global',
+ 'phrase' => 'deutsch',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Deutsch",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "German",
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'global',
@@ -17341,18 +17381,78 @@ array(
array(
'app' => 'core',
'category' => 'tools',
- 'phrase' => 'keinStatusImStudiensemester',
+ 'phrase' => 'dokumente',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
- 'text' => 'Für das übergebene Studiensemester {stsem} existiert kein Status. Bitte wählen Sie ein gültiges Studiensemester aus dem DropDown.',
+ 'text' => 'Dokumente',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
- 'text' => 'No status found for {stsem}. Please select a valid semester from the dropdown.',
+ 'text' => 'Documents',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'tools',
+ 'phrase' => 'dokument',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Dokument',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Document',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'tools',
+ 'phrase' => 'erstelldatum',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Erstelldatum',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Creation date',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'tools',
+ 'phrase' => 'bestaetigungenZeugnisse',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Bestätigungen/Zeugnisse',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Certificates/Transcripts',
'description' => '',
'insertvon' => 'system'
)
@@ -17381,18 +17481,258 @@ array(
array(
'app' => 'core',
'category' => 'tools',
- 'phrase' => 'studienbeitragFuerSSNochNichtBezahlt',
+ 'phrase' => 'studienbeitragFuerSSBezahlt',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
- 'text' => 'Studienbeitrag für das {stsem} noch nicht bezahlt',
+ 'text' => 'Studienbeitrag für das %1$s bezahlt',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
- 'text' => 'tuition fee for semester {stsem} not yet paid',
+ 'text' => 'tuition fee for semester %1$s paid',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'tools',
+ 'phrase' => 'studienbeitragFuerSSNochNichtBezahlt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Studienbeitrag für das %1$s noch nicht bezahlt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'tuition fee for semester %1$s not yet paid',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'tools',
+ 'phrase' => 'studienbeitragFuerStgNochNichtBezahlt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Studienbeitrag für %1$s noch nicht bezahlt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'tuition fee for %1$s not yet paid',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'tools',
+ 'phrase' => 'studienbeitragNochNichtBezahlt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Studienbeitrag noch nicht bezahlt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'tuition fee not yet paid',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'tools',
+ 'phrase' => 'studienerfolgsbestaetigung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Studienerfolgsbestätigung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Student progress report',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'tools',
+ 'phrase' => 'studiensemesterAuswaehlen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Bitte wählen Sie das entsprechende Studiensemester aus',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Please select the corresponding semester',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'tools',
+ 'phrase' => 'vorlageWohnsitzfinanzamt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'zur Vorlage beim Wohnsitzfinanzamt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'for submission to local tax office',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'tools',
+ 'phrase' => 'studienbuchblatt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Studienbuchblatt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Student Record', //Noch zu übersetzen
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'tools',
+ 'phrase' => 'alleStudiensemester',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Alle Studiensemester',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'All semester',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'tools',
+ 'phrase' => 'abschlussdokumente',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Abschlussdokumente/Zeugnisse',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Final documents/Transcripts',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'tools',
+ 'phrase' => 'nochKeineAbschlussdokumenteVorhanden',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Noch keine Abschlussdokumente vorhanden',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No final documents available yet',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'tools',
+ 'phrase' => 'keinStatusImStudiensemester',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Für das übergebene Studiensemester %1$s existiert kein Status. Bitte wählen Sie ein gültiges Studiensemester aus dem DropDown.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No status found for %1$s. Please select a valid semester from the dropdown.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'tools',
+ 'phrase' => 'warnungDruckDigitaleSignatur',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => '
Hinweis! Digital signierte Dokumente werden in manchen Browsern und PDF-Readern nicht korrekt angezeigt.
Bitte verwenden Sie den
Adobe Acrobat Reader, wenn Sie das Dokument ausdrucken möchten.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '
Note! Digitally signed documents are not displayed correctly in some browsers and PDF readers.
Please use the
Adobe Acrobat Reader if you want to print the document.',
'description' => '',
'insertvon' => 'system'
)