Compare commits

..
23 changed files with 465 additions and 353 deletions
+103
View File
@@ -22,6 +22,109 @@ $config["list_columns"] = [
];
*/
$config['tabs'] =
[
'details' => [
//all fields can be configured to be hidden, see class attribute stv-details-details-name for name
'hiddenFields' => [],
'hideUDFs' => false
],
'prestudent' => [
//all fields can be configured to be hidden, see class attribute stv-details-prestudent-name for name
'hiddenFields' => [
//propably used by FH-Communities
'aufnahmeschluessel', 'standort_code', 'facheinschlaegigBerufstaetig'
],
'hideUDFs' => false
],
'finalexam' => [
'documents' => [
'pruefungsprotokoll' => [
'de' => [
'Bakk' => 'PrProtBA',
'Master' => 'PrProtMA',
],
'en' => [
'Bakk' => 'PrProtBAEng',
'Master' => 'PrProtMAEng',
],
],
'pruefungszeugnis' => [
'de' => [
'Bakk' => 'Bakkzeugnis',
'Master' => 'Diplomzeugnis',
],
'en' => [
'Bakk' => 'BakkzeugnisEng',
'Master' => 'DiplomzeugnisEng',
],
],
'urkunde' => [
'de' => [
'Bakk' => 'Bakkurkunde',
'Master' => 'Diplomurkunde',
],
'en' => [
'Bakk' => 'BakkurkundeEng',
'Master' => 'DiplomurkundeEng',
],
],
],
],
'exemptions' => [
//if true, Anrechnungen can be added and edited in tab Anrechnungen
'editableAnrechnungen' => false,
],
'notes' => [
//if true, the count of Messages will be shown in the header of the Tab Messages
'showCountNotes' => true,
//if true: section with following fields will be displayed: 'verfasser', 'bearbeiter', 'von', 'bis' and 'erledigt'
'showErweitert' => false,
//notizlayout: choose of "classicFas", "twoColumnsFormLeft", twoColumnsFormRight, popupModal"
'notizLayout' => 'popupModal'
],
'combinePeople' => [
//multitab should only be shown with this length of selection
'validCountMulti' => 2,
],
];
// List of fields to show when ZGV_DOKTOR_ANZEIGEN is defined
$fieldsZgvDoktor = ['zgvdoktorort', 'zgvdoktordatum', 'zgvdoktornation', 'zgvdoktor_erfuellt', 'zgvdoktor_code'];
// List of fields to show when ZGV_ERFUELLT_ANZEIGEN is defined
$fieldsZgvErfuellt = ['zgv_erfuellt', 'zgvmas_erfuellt','zgvdoktor_erfuellt'];
//order important: to show zgf_erfuellt_doktor just in case visibility of doktor is true
if (!defined('ZGV_ERFUELLT_ANZEIGEN') || !ZGV_ERFUELLT_ANZEIGEN) {
$config['tabs']['prestudent']['hiddenFields'] = array_merge(
$config['tabs']['prestudent']['hiddenFields'], $fieldsZgvErfuellt
);
}
if (!defined('ZGV_DOKTOR_ANZEIGEN') || !ZGV_DOKTOR_ANZEIGEN) {
$config['tabs']['prestudent']['hiddenFields'] = array_merge(
$config['tabs']['prestudent']['hiddenFields'],
$fieldsZgvDoktor
);
}
$config['tabs']['projektarbeit']['defaultProjektbetreuerStunden'] =
defined('FAS_STUDIERENDE_PROJEKTARBEIT_DEFAULT_BETREUER_STUNDEN_BACHELOR')
? FAS_STUDIERENDE_PROJEKTARBEIT_DEFAULT_BETREUER_STUNDEN_BACHELOR
: '0.0';
$config['tabs']['projektarbeit']['defaultProjektbetreuerStundenDiplom'] =
defined('FAS_STUDIERENDE_PROJEKTARBEIT_DEFAULT_BETREUER_STUNDEN_MASTER')
? FAS_STUDIERENDE_PROJEKTARBEIT_DEFAULT_BETREUER_STUNDEN_MASTER
: '0.0';
$config['tabs']['projektarbeit']['defaultProjektbetreuerStundensatz'] = '80.0';
$config['student_tab_order'] = [
'details',
'notes',
-5
View File
@@ -1,5 +0,0 @@
<?php
$config['showEditPermissions'] = [
'admin'
];
-116
View File
@@ -1,116 +0,0 @@
<?php
$config['showZahlungsbestaetigung'] = (defined('ZAHLUNGSBESTAETIGUNG_ANZEIGEN') && ZAHLUNGSBESTAETIGUNG_ANZEIGEN);
$config['showBuchungsnrPermissions'] = ['admin'];
$config['showMahnspanne'] = (!defined('FAS_KONTO_SHOW_MAHNSPANNE') || FAS_KONTO_SHOW_MAHNSPANNE === true);
$config['showCreditpoints'] = (defined('FAS_KONTO_SHOW_CREDIT_POINTS') && FAS_KONTO_SHOW_CREDIT_POINTS == 'true');
$config['columns'] = [
'buchungsdatum' => [
'field' => "buchungsdatum",
'title' => 'buchungsdatum',
'titlePhrase' => 'konto/buchungsdatum'
],
'buchungstext' => [
'field' => "buchungstext",
'title' => 'buchungstext',
'titlePhrase' => 'konto/buchungstext'
],
'betrag' => [
'field' => "betrag",
'title' => 'betrag',
'titlePhrase' => 'konto/betrag'
],
'studiensemester_kurzbz' => [
'field' => "studiensemester_kurzbz",
'title' => 'studiensemester',
'titlePhrase' => 'lehre/studiensemester'
],
'buchungstyp_kurzbz' => [
'field' => "buchungstyp_kurzbz",
'title' => 'buchungstyp',
'titlePhrase' => 'konto/buchungstyp',
'visible' => false
],
'buchungsnr' => [
'field' => "buchungsnr",
'title' => 'buchungsnr',
'titlePhrase' => 'konto/buchungsnr',
'visible' => false
],
'insertvon' => [
'field' => "insertvon",
'title' => 'insertvon',
'titlePhrase' => 'global/insertvon',
'visible' => false
],
'insertamum' => [
'field' => "insertamum",
'title' => 'insertamum',
'titlePhrase' => 'global/insertamum',
'visible' => false
],
'kuerzel' => [
'field' => "kuerzel",
'title' => 'studiengang',
'titlePhrase' => 'lehre/studiengang',
'visible' => false
],
'anmerkung' => [
'field' => "anmerkung",
'title' => 'anmerkung',
'titlePhrase' => 'global/anmerkung'
],
'actions' => [
'title' => 'actions',
'titlePhrase' => 'global/actions',
'frozen' => true
]
];
$config['columnsMultiPerson'] = [
'person_id' => [
'field' => "person_id",
'title' => 'person_id',
'titlePhrase' => 'person/person_id'
],
'anrede' => [
'field' => "anrede",
'title' => 'anrede',
'titlePhrase' => 'person/anrede',
'visible' => false
],
'titelpost' => [
'field' => "titelpost",
'title' => 'titelpost',
'titlePhrase' => 'person/titelpost',
'visible' => false
],
'titelpre' => [
'field' => "titelpre",
'title' => 'titelpre',
'titlePhrase' => 'person/titelpre',
'visible' => false
],
'vorname' => [
'field' => "vorname",
'title' => 'vorname',
'titlePhrase' => 'person/vorname'
],
'vornamen' => [
'field' => "vornamen",
'title' => 'vornamen',
'titlePhrase' => 'person/vornamen',
'visible' => false
],
'nachname' => [
'field' => "nachname",
'title' => 'nachname',
'titlePhrase' => 'person/nachname'
]
] + $config['columns'];
$config['additionalCols'] = [];
@@ -1,4 +0,0 @@
<?php
//multitab should only be shown with this length of selection
$config['validCountMulti'] = 2;
-6
View File
@@ -1,6 +0,0 @@
<?php
$config['showBankaccountPermissions'] = [
'mitarbeiter/bankdaten',
'student/bankdaten'
];
-6
View File
@@ -1,6 +0,0 @@
<?php
//all fields can be configured to be hidden, see class attribute stv-details-details-name for name
$config['hiddenFields'] = [];
$config['hideUDFs'] = false;
@@ -1,4 +0,0 @@
<?php
//if true, Anrechnungen can be added and edited in tab Anrechnungen
$config['editableAnrechnungen'] = false;
-38
View File
@@ -1,38 +0,0 @@
<?php
$config['documents'] = [
'pruefungsprotokoll' => [
'de' => [
'Bakk' => 'PrProtBA',
'Master' => 'PrProtMA',
],
'en' => [
'Bakk' => 'PrProtBAEng',
'Master' => 'PrProtMAEng',
],
],
'pruefungszeugnis' => [
'de' => [
'Bakk' => 'Bakkzeugnis',
'Master' => 'Diplomzeugnis',
],
'en' => [
'Bakk' => 'BakkzeugnisEng',
'Master' => 'DiplomzeugnisEng',
],
],
'urkunde' => [
'de' => [
'Bakk' => 'Bakkurkunde',
'Master' => 'Diplomurkunde',
],
'en' => [
'Bakk' => 'BakkurkundeEng',
'Master' => 'DiplomurkundeEng',
],
],
];
$config['hiddenFields'] = [
'uhrzeit'
];
-13
View File
@@ -1,13 +0,0 @@
<?php
$config['usePoints'] = (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE);
// Possible values: both|header|inline
$config['edit'] = 'both';
// Possible values: both|header|inline
$config['delete'] = 'inline';
// Possible values: both|header|inline
$config['documents'] = 'inline';
$config['documentslist'] = gradesDocumentsList();
@@ -1,11 +0,0 @@
<?php
$config['changeStatusToAbbrecherStglPermissions'] = [ 'admin' ];
$config['changeStatusToAbbrecherStudPermissions'] = [ 'admin' ];
$config['changeStatusToUnterbrecherPermissions'] = [ 'admin' ];
$config['changeStatusToDiplomandPermissions'] = [ 'admin' ];
$config['changeStatusToAbsolventPermissions'] = [ 'admin' ];
-10
View File
@@ -1,10 +0,0 @@
<?php
//if true, the count of Messages will be shown in the header of the Tab Messages
$config['showCountNotes'] = true;
//if true: section with following fields will be displayed: 'verfasser', 'bearbeiter', 'von', 'bis' and 'erledigt'
$config['showErweitert'] = false;
//notizlayout: choose of "classicFas", "twoColumnsFormLeft", twoColumnsFormRight, popupModal"
$config['notizLayout'] = 'popupModal';
@@ -1,13 +0,0 @@
<?php
//all fields can be configured to be hidden, see class attribute stv-details-prestudent-name for name
$config['hiddenFields'] = [
//propably used by FH-Communities
'aufnahmeschluessel', 'standort_code', 'facheinschlaegigBerufstaetig'
];
$config['hideUDFs'] = false;
$config['showZgvErfuellt'] = (defined('ZGV_ERFUELLT_ANZEIGEN') && ZGV_ERFUELLT_ANZEIGEN);
$config['showZgvDoktor'] = (defined('ZGV_DOKTOR_ANZEIGEN') && ZGV_DOKTOR_ANZEIGEN);
@@ -1,12 +0,0 @@
<?php
$config['defaultProjektbetreuerStunden'] =
defined('FAS_STUDIERENDE_PROJEKTARBEIT_DEFAULT_BETREUER_STUNDEN_BACHELOR')
? FAS_STUDIERENDE_PROJEKTARBEIT_DEFAULT_BETREUER_STUNDEN_BACHELOR
: '0.0';
$config['defaultProjektbetreuerStundenDiplom'] =
defined('FAS_STUDIERENDE_PROJEKTARBEIT_DEFAULT_BETREUER_STUNDEN_MASTER')
? FAS_STUDIERENDE_PROJEKTARBEIT_DEFAULT_BETREUER_STUNDEN_MASTER
: '0.0';
$config['defaultProjektbetreuerStundensatz'] = '80.0';
-3
View File
@@ -1,3 +0,0 @@
<?php
$config['showStatusVorruecken'] = defined('STATUS_VORRUECKEN_ANZEIGEN') ? STATUS_VORRUECKEN_ANZEIGEN : true;
@@ -315,7 +315,6 @@ class Abschlusspruefung extends FHCAPI_Controller
'abschlussbeurteilung_kurzbz' => $formData['abschlussbeurteilung_kurzbz'],
'datum' => $formData['datum'], //TODO(Manu) check if minute format like FAS
'sponsion' => $formData['sponsion'],
'uhrzeit' => $formData['uhrzeit'],
'pruefer1' => $formData['pruefer1'],
'pruefer2' => $formData['pruefer2'],
'pruefer3' => $formData['pruefer3'],
@@ -388,7 +387,6 @@ class Abschlusspruefung extends FHCAPI_Controller
'abschlussbeurteilung_kurzbz' => $formData['abschlussbeurteilung_kurzbz'],
'datum' => $datum,
'sponsion' => $sponsion,
'uhrzeit' => $formData['uhrzeit'],
'pruefer1' => $pruefer1,
'pruefer2' => $pruefer2,
'pruefer3' => $pruefer3,
@@ -303,79 +303,68 @@ class Config extends FHCAPI_Controller
{
$this->load->helper('hlp_document');
$result = [];
$config = $this->config->item('tabs');
$result['details'] = [
'title' => $this->p->t('stv', 'tab_details'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/Details.js'),
'config' => $this->getTabConfigFromConfigFile('details')
'config' => $config['details']
];
$result['notes'] = [
'title' => $this->p->t('stv', 'tab_notes'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/Notizen.js'),
'config' => $this->getTabConfigFromConfigFile('notes'),
'config' => $config['notes'],
'showSuffix' => ($config['notes']['showCountNotes'] ?? false),
'suffixhelper' => absoluteJsImportUrl('public/js/helpers/Stv/Studentenverwaltung/Details/Notizen/NotizenSuffixHelper.js')
];
$result['notes']['showSuffix'] = ($result['notes']['config']['notes']['showCountNotes'] ?? false);
$result['contact'] = [
'title' => $this->p->t('stv', 'tab_contact'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/Kontakt.js'),
'config' => $this->getTabConfigFromConfigFile('config', ['showBankaccount'])
'config' => [
'showBankaccount' => $this->permissionlib->isBerechtigt('mitarbeiter/bankdaten')
|| $this->permissionlib->isBerechtigt('student/bankdaten')
]
];
$result['prestudent'] = [
'title' => $this->p->t('stv', 'tab_prestudent'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/Prestudent.js'),
'config' => $this->getTabConfigFromConfigFile('prestudent')
'config' => $config['prestudent']
];
// List of fields to show when ZGV_DOKTOR_ANZEIGEN is defined
$fieldsZgvDoktor = ['zgvdoktorort', 'zgvdoktordatum', 'zgvdoktornation', 'zgvdoktor_erfuellt', 'zgvdoktor_code'];
// List of fields to show when ZGV_ERFUELLT_ANZEIGEN is defined
$fieldsZgvErfuellt = ['zgv_erfuellt', 'zgvmas_erfuellt','zgvdoktor_erfuellt'];
//order important: to show zgf_erfuellt_doktor just in case visibility of doktor is true
if (!$result['prestudent']['config']['showZgvErfuellt']) {
$result['prestudent']['config']['hiddenFields'] = array_merge(
$result['prestudent']['config']['hiddenFields'],
$fieldsZgvErfuellt
);
}
if (!$result['prestudent']['config']['showZgvDoktor']) {
$result['prestudent']['config']['hiddenFields'] = array_merge(
$result['prestudent']['config']['hiddenFields'],
$fieldsZgvDoktor
);
}
$result['status'] = [
'title' => 'Status',
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/MultiStatus.js'),
'config' => $this->getTabConfigFromConfigFile('status')
'config' => [
'showStatusVorruecken' => defined('STATUS_VORRUECKEN_ANZEIGEN') ? STATUS_VORRUECKEN_ANZEIGEN : true,
]
];
$result['documents'] = [
'title' => $this->p->t('stv', 'tab_documents'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/Dokumente.js')
];
$result['banking'] = [
'title' => $this->p->t('stv', 'tab_banking'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/Konto.js'),
'config' => $this->getTabConfigFromConfigFile('banking', ['showBuchungsnr'])
'config' => [
'showZahlungsbestaetigung' => (defined('ZAHLUNGSBESTAETIGUNG_ANZEIGEN') && ZAHLUNGSBESTAETIGUNG_ANZEIGEN),
'showBuchungsnr' => $this->permissionlib->isBerechtigt('admin'),
'showMahnspanne' => (!defined('FAS_KONTO_SHOW_MAHNSPANNE') || FAS_KONTO_SHOW_MAHNSPANNE===true),
'showCreditpoints' => (defined('FAS_KONTO_SHOW_CREDIT_POINTS') && FAS_KONTO_SHOW_CREDIT_POINTS == 'true'),
'columns' => $this->kontoColumns(),
'additionalCols' => []
]
];
$result['resources'] = [
'title' => $this->p->t('stv', 'tab_resources'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/Betriebsmittel.js'),
'showOnlyWithUid' => true
];
$result['groups'] = [
'title' => $this->p->t('stv', 'tab_groups'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/Groups.js'),
'showOnlyWithUid' => true
];
$result['messages'] = [
'title' => $this->p->t('stv', 'tab_messages'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/Messages.js'),
@@ -385,7 +374,13 @@ class Config extends FHCAPI_Controller
'title' => $this->p->t('stv', 'tab_grades'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/Noten.js'),
'showOnlyWithUid' => true,
'config' => $this->getTabConfigFromConfigFile('grades')
'config' => [
'usePoints' => defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE,
'edit' => 'both', // Possible values: both|header|inline
'delete' => 'inline', // Possible values: both|header|inline
'documents' => 'inline', // Possible values: both|header|inline
'documentslist' => gradesDocumentsList()
]
];
$result['exam'] = [
@@ -397,22 +392,25 @@ class Config extends FHCAPI_Controller
$result['exemptions'] = [
'title' => $this->p->t('lehre', 'anrechnungen'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/Anrechnungen.js'),
'config' => $this->getTabConfigFromConfigFile('exemptions')
'config' => $config['exemptions']
];
$result['finalexam'] = [
'title' => $this->p->t('stv', 'tab_finalexam'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung.js'),
'showOnlyWithUid' => true,
'config' => $this->getTabConfigFromConfigFile('finalexam')
'config' => $config['finalexam']
];
$result['projektarbeit'] = [
'title' => $this->p->t('stv', 'tab_projektarbeit'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit.js'),
'config' => $this->getTabConfigFromConfigFile('projektarbeit')
'config' => array_merge(
$config['projektarbeit'],
['showVertragsdetails' =>
defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN') && FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN]
)
];
$result['projektarbeit']['config']['showVertragsdetails'] = (defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN') && FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN);
$result['mobility'] = [
'title' => $this->p->t('stv', 'tab_mobility'),
@@ -423,7 +421,9 @@ class Config extends FHCAPI_Controller
$result['archive'] = [
'title' => $this->p->t('stv', 'tab_archive'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/Archiv.js'),
'config' => $this->getTabConfigFromConfigFile('archive', ['showEdit'])
'config' => [
'showEdit' => $this->permissionlib->isBerechtigt('admin')
]
];
$result['jointstudies'] = [
@@ -460,42 +460,47 @@ class Config extends FHCAPI_Controller
public function students()
{
$result = [];
$config = $this->config->item('tabs');
$result['banking'] = [
'title' => $this->p->t('stv', 'tab_banking'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/Konto.js'),
'config' => $this->getTabConfigFromConfigFile('banking', ['showBuchungsnr'])
'config' => [
'showZahlungsbestaetigung' => (defined('ZAHLUNGSBESTAETIGUNG_ANZEIGEN') && ZAHLUNGSBESTAETIGUNG_ANZEIGEN),
'showBuchungsnr' => $this->permissionlib->isBerechtigt('admin'),
'showMahnspanne' => (!defined('FAS_KONTO_SHOW_MAHNSPANNE') || FAS_KONTO_SHOW_MAHNSPANNE===true),
'showCreditpoints' => (defined('FAS_KONTO_SHOW_CREDIT_POINTS') && FAS_KONTO_SHOW_CREDIT_POINTS == 'true'),
'columns' => $this->kontoColumnsMultiPerson(),
'additionalCols' => []
]
];
$result['banking']['config']['columns'] = $result['banking']['config']['columnsMultiPerson'];
$result['groups'] = [
'title' => $this->p->t('stv', 'tab_groups'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/Groups.js'),
'showOnlyWithUid' => true
];
$result['status'] = [
'title' => 'Status',
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/MultiStatus.js'),
'config' => $this->getTabConfigFromConfigFile('multiStatus', [
'changeStatusToAbbrecherStgl',
'changeStatusToAbbrecherStud',
'changeStatusToUnterbrecher',
'changeStatusToDiplomand',
'changeStatusToAbsolvent'
])
'config' => [
'changeStatusToAbbrecherStgl' => $this->permissionlib->isBerechtigt('admin'),
'changeStatusToAbbrecherStud' => $this->permissionlib->isBerechtigt('admin'),
'changeStatusToUnterbrecher' => $this->permissionlib->isBerechtigt('admin'),
'changeStatusToDiplomand' => $this->permissionlib->isBerechtigt('admin'),
'changeStatusToAbsolvent' => $this->permissionlib->isBerechtigt('admin')
]
];
$result['finalexam'] = [
'title' => $this->p->t('stv', 'tab_finalexam'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung.js'),
'showOnlyWithUid' => true,
'config' => $this->getTabConfigFromConfigFile('finalexam')
'config' => $config['finalexam']
];
$result['archive'] = [
'title' => $this->p->t('stv', 'tab_archive'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/Archiv.js'),
'config' => $this->getTabConfigFromConfigFile('archive', ['showEdit'])
'config' => [
'showEdit' => $this->permissionlib->isBerechtigt('admin')
]
];
if($this->permissionlib->isBerechtigt('basis/person'))
@@ -503,7 +508,7 @@ class Config extends FHCAPI_Controller
$result['combinePeople'] = [
'title' => $this->p->t('stv', 'tab_combine_people'),
'component' => absoluteJsImportUrl('public/js/components/Stv/Studentenverwaltung/Details/CombinePeople.js'),
'config' => $this->getTabConfigFromConfigFile('combinePeople')
'config' => $config['combinePeople']
];
}
@@ -526,35 +531,96 @@ class Config extends FHCAPI_Controller
$this->terminateWithSuccess($this->sortTabList($result, $sortConfig));
}
/**
* Load config and return it as array
*
* @param string $file
* @param array $convertPermission
* @return array
*/
protected function getTabConfigFromConfigFile($file, $convertPermissions = [])
protected function kontoColumns()
{
$this->config->load('stv/tabs/' . $file, true, true);
$config = $this->config->item('stv/tabs/' . $file) ?? [];
// convert permissions into booleans
if (!is_array($convertPermissions))
$convertPermissions = [ $convertPermissions ];
foreach ($convertPermissions as $permKey => $resultKey) {
if (is_numeric($permKey))
$permKey = $resultKey . 'Permissions';
$permissions = $config[$permKey] ?? [];
foreach ($permissions as $permission) {
if ($this->permissionlib->isBerechtigt($permission)) {
$config[$resultKey] = true;
break;
}
}
}
return $config;
return [
'buchungsdatum' => [
'field' => "buchungsdatum",
'title' => $this->p->t('konto', 'buchungsdatum')
],
'buchungstext' => [
'field' => "buchungstext",
'title' => $this->p->t('konto', 'buchungstext')
],
'betrag' => [
'field' => "betrag",
'title' => $this->p->t('konto', 'betrag')
],
'studiensemester_kurzbz' => [
'field' => "studiensemester_kurzbz",
'title' => $this->p->t('lehre', 'studiensemester')
],
'buchungstyp_kurzbz' => [
'field' => "buchungstyp_kurzbz",
'title' => $this->p->t('konto', 'buchungstyp'),
'visible' => false
],
'buchungsnr' => [
'field' => "buchungsnr",
'title' => $this->p->t('konto', 'buchungsnr'),
'visible' => false
],
'insertvon' => [
'field' => "insertvon",
'title' => $this->p->t('global', 'insertvon'),
'visible' => false
],
'insertamum' => [
'field' => "insertamum",
'title' => $this->p->t('global', 'insertamum'),
'visible' => false
],
'kuerzel' => [
'field' => "kuerzel",
'title' => $this->p->t('lehre', 'studiengang'),
'visible' => false
],
'anmerkung' => [
'field' => "anmerkung",
'title' => $this->p->t('global', 'anmerkung')
],
'actions' => [
'title' => $this->p->t('global', 'actions'),
'frozen' => true
]
];
}
protected function kontoColumnsMultiPerson()
{
return [
'person_id' => [
'field' => "person_id",
'title' => $this->p->t('person', 'person_id')
],
'anrede' => [
'field' => "anrede",
'title' => $this->p->t('person', 'anrede'),
'visible' => false
],
'titelpost' => [
'field' => "titelpost",
'title' => $this->p->t('person', 'titelpost'),
'visible' => false
],
'titelpre' => [
'field' => "titelpre",
'title' => $this->p->t('person', 'titelpre'),
'visible' => false
],
'vorname' => [
'field' => "vorname",
'title' => $this->p->t('person', 'vorname')
],
'vornamen' => [
'field' => "vornamen",
'title' => $this->p->t('person', 'vornamen'),
'visible' => false
],
'nachname' => [
'field' => "nachname",
'title' => $this->p->t('person', 'nachname')
]
] + $this->kontoColumns();
}
/**
@@ -22,7 +22,7 @@ export default {
},
computed: {
pickerWidgets() {
return this.widgets.filter(widget => widget.allowed);
return this.widgets.filter(widget => widget.allowed).map(widget => ({ ...widget, permitted: true }));
},
sizeLimits() {
return Object.fromEntries(this.widgets.map(({ setup, widget_id: type }) => {
@@ -6,10 +6,16 @@ export default {
BsModal,
WidgetIcon,
},
props: [
"widgets",
"hiddenWidgets"
],
props: {
widgets: {
type: [ Array, null ],
required: true
},
hiddenWidgets: {
type: Array,
default: []
}
},
data: () => ({
callbacks: {}
}),
@@ -56,8 +56,7 @@ export default {
anmerkung: null,
protokoll: null,
note: null,
link: null,
uhrzeit: null
link: null
},
statusNew: true,
arrTypen: [],
@@ -311,7 +310,6 @@ export default {
this.formData.pruefungstyp_kurzbz = data.pruefungstyp_kurzbz;
this.formData.datum = data.datum;
this.formData.uhrzeit = data.uhrzeit;
this.formData.sponsion = data.sponsion;
this.formData.akadgrad_id = data.akadgrad_id;
this.formData.pruefungsantritt_kurzbz = data.pruefungsantritt_kurzbz;
@@ -413,7 +411,6 @@ export default {
pruefer3_label: this.selectedPruefer3?.label || null,
akadgrad_id: this.formData.akadgrad_id,
datum: this.formData.datum,
uhrzeit: this.formData.uhrzeit || null,
sponsion: this.formData.sponsion
};
localStorage.setItem(STORAGE_KEY, JSON.stringify(stored));
@@ -530,7 +527,6 @@ export default {
this.formData.abschlussbeurteilung_kurzbz = null;
this.formData.datum = null;
this.formData.sponsion = null;
this.formData.uhrzeit = null;
this.formData.pruefer1 = null;
this.formData.pruefer2 = null;
this.formData.pruefer3 = null;
@@ -624,7 +620,7 @@ export default {
);
}
});
}
},
},
created() {
this.$api
@@ -719,6 +715,7 @@ export default {
</template>
<form-form ref="formFinalExam" @submit.prevent>
<legend>{{this.$p.t('global','details')}}</legend>
<p v-if="statusNew">[{{$p.t('ui', 'neu')}}]</p>
@@ -919,22 +916,6 @@ export default {
</form-input>
</div>
<div v-if="!config.hiddenFields?.includes('uhrzeit')" class="row mb-3">
<form-input
container-class="col-6 stv-details-uhrzeit"
:label="$p.t('global', 'uhrzeit')"
type="DatePicker"
v-model="formData.uhrzeit"
model-type="HH:mm:ss"
time-picker
text-input
name="uhrzeit"
:teleport="true"
:cancel-text="$p.t('ui', 'abbrechen')"
:select-text="$p.t('ui', 'ok')"
/>
</div>
<div class="row mb-3">
<form-input
container-class="col-6 stv-details-abschlusspruefung-sponsion"
@@ -998,7 +979,7 @@ export default {
:cisRoot="cisRoot"
@linkGenerated="printDocument"
></abschlusspruefung-dropdown>
</Teleport>
</Teleport>
</div>
`
}
@@ -127,7 +127,6 @@ export default {
ajaxResponse: (url, params, response) => response.data,
dataTree: true,
columns: this.tabulatorColumns,
locale: true,
selectableRows: true,
selectableRowsRangeMode: 'click',
index: 'buchungsnr',
+34
View File
@@ -0,0 +1,34 @@
function loadCss(path) {
if (!document.head) {
return new Promise((resolve, reject) => {
window.addEventListener('load', () => loadCss(path).then(resolve).catch(reject));
});
}
if (path.match(/^\/[^\/]/))
path = FHC_JS_DATA_STORAGE_OBJECT.app_root.replace(/\/$/, "") + path;
if (document.querySelector('link[href="' + path + '"]'))
return Promise.resolve();
return new Promise((resolve, reject) => {
const link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.onload = resolve;
link.onerror = reject;
link.href = path;
document.head.append(link);
});
}
export {
loadCss,
};
export default {
loadCss,
};
+4
View File
@@ -62,3 +62,7 @@ function splitWordsInCamelCase(string) {
splitWords.push(string.slice(lastUpperCaseLetterIndex));
return splitWords;
}
export function isString(str) {
return typeof str === 'string' || str instanceof String;
}
+162
View File
@@ -2153,6 +2153,46 @@ $phrases = array(
)
)
),
array(
'app' => 'core',
'category' => 'ui',
'phrase' => 'aborted_by_user',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Abbruch durch Benutzer',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Aborted by the user',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'ui',
'phrase' => 'no_preview_available',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Keine Vorschau verfügbar',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'No preview available',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'anrechnung',
@@ -67370,6 +67410,128 @@ I have been informed that I am under no obligation to consent to the transmissio
)
),
// ### Phrases Dashboard Studstatus Widget END
// ### Phrases Dashboard OpenProject Widget START
array(
'app' => 'core',
'category' => 'dashboard',
'phrase' => 'widget_openproject_login',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'In OpenProject anmelden',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Login to OpenProject',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'dashboard',
'phrase' => 'widget_openproject_title_listWpOpen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Offene WorkPackages',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Open WorkPackages',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'dashboard',
'phrase' => 'widget_openproject_title_listWpOverdue',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Überfällige WorkPackages',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Overdue WorkPackages',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'dashboard',
'phrase' => 'widget_openproject_title_listWpNew',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Neue WorkPackages',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'New WorkPackages',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'dashboard',
'phrase' => 'widget_openproject_title_listMentioned',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Erwähnungen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Mentions',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'dashboard',
'phrase' => 'widget_openproject_select_endpoint',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Anzeigen:',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Show:',
'description' => '',
'insertvon' => 'system'
)
)
),
// ### Phrases Dashboard OpenProject Widget END
//******************* CORE/reservierung
array(
'app' => 'core',