mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-16 22:42:16 +00:00
Merge branch 'master' into feature-53904/Vertragshistorie_valorisierte_Gehaelter_anzeigen
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
// apps for which issues should be displayed
|
||||
$config['issues_list_apps'] = array('core', 'dvuh');
|
||||
|
||||
// functions which enable users to see issues
|
||||
$config['issues_list_functions'] = array('ass');
|
||||
|
||||
// functions which enable users to see issues
|
||||
$config['issues_list_status'] = array('Aufgenommener', 'Student', 'Incoming', 'Diplomand', 'Abbrecher', 'Unterbrecher', 'Absolvent');
|
||||
@@ -4,4 +4,6 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
// use vuejs dev version
|
||||
$config['use_vuejs_dev_version'] = false;
|
||||
// use bundled javascript
|
||||
$config['use_bundled_javascript'] = false;
|
||||
$config['use_bundled_javascript'] = false;
|
||||
// systemerror_mailto use in FHC-Alert Plugin - if empty Link will not be rendered
|
||||
$config['systemerror_mailto'] = '';
|
||||
@@ -85,7 +85,10 @@ class Kontakt extends FHCAPI_Controller
|
||||
|| $this->router->method == 'addNewBankverbindung'
|
||||
) {
|
||||
$person_id = current(array_slice($this->uri->rsegments, 2));
|
||||
|
||||
|
||||
if (is_null($person_id) || !ctype_digit((string)$person_id))
|
||||
$this->terminateWithError( $this->p->t('ui', 'ungueltigeParameter'), self::ERROR_TYPE_GENERAL);
|
||||
|
||||
$this->checkPermissionsForPerson($person_id, $permsMa, $permsStud);
|
||||
} elseif ($this->router->method == 'loadAddress'
|
||||
|| $this->router->method == 'loadContact'
|
||||
@@ -119,6 +122,9 @@ class Kontakt extends FHCAPI_Controller
|
||||
$model = 'person/Bankverbindung_model';
|
||||
}
|
||||
|
||||
if (!isset($id) || !ctype_digit((string)$id))
|
||||
$this->terminateWithError($this->p->t('ui', 'ungueltigeParameter'), self::ERROR_TYPE_GENERAL);
|
||||
|
||||
$this->load->model($model, 'TempModel');
|
||||
$result = $this->TempModel->load($id);
|
||||
$data = $this->getDataOrTerminateWithError($result);
|
||||
@@ -387,8 +393,11 @@ class Kontakt extends FHCAPI_Controller
|
||||
$this->terminateWithSuccess(getData($result) ?: []);
|
||||
}
|
||||
|
||||
public function getFirmen($searchString)
|
||||
public function getFirmen($searchString = null)
|
||||
{
|
||||
if (is_null($searchString))
|
||||
$this->terminateWithError($this->p->t('ui', 'ungueltigeParameter'), self::ERROR_TYPE_GENERAL);
|
||||
|
||||
$this->load->model('ressource/firma_model', 'FirmaModel');
|
||||
|
||||
$result = $this->FirmaModel->searchFirmen($searchString);
|
||||
@@ -398,8 +407,11 @@ class Kontakt extends FHCAPI_Controller
|
||||
$this->terminateWithSuccess($result ?: []);
|
||||
}
|
||||
|
||||
public function getStandorte($searchString)
|
||||
public function getStandorte($searchString = null)
|
||||
{
|
||||
if (is_null($searchString))
|
||||
$this->terminateWithError($this->p->t('ui', 'ungueltigeParameter'), self::ERROR_TYPE_GENERAL);
|
||||
|
||||
$this->load->model('organisation/standort_model', 'StandortModel');
|
||||
|
||||
$result = $this->StandortModel->searchStandorte($searchString);
|
||||
@@ -409,8 +421,11 @@ class Kontakt extends FHCAPI_Controller
|
||||
$this->terminateWithSuccess($data);
|
||||
}
|
||||
|
||||
public function getStandorteByFirma($firma_id)
|
||||
public function getStandorteByFirma($firma_id = null)
|
||||
{
|
||||
if (is_null($firma_id) || !ctype_digit((string)$firma_id))
|
||||
$this->terminateWithError($this->p->t('ui', 'ungueltigeParameter'), self::ERROR_TYPE_GENERAL);
|
||||
|
||||
$this->load->model('organisation/standort_model', 'StandortModel');
|
||||
|
||||
$result = $this->StandortModel->getStandorteByFirma($firma_id);
|
||||
@@ -652,6 +667,9 @@ class Kontakt extends FHCAPI_Controller
|
||||
$bic = $this->input->post('bic');
|
||||
$blz = $this->input->post('blz');
|
||||
$kontonr = $this->input->post('kontonr');
|
||||
$iban = $this->input->post('iban');
|
||||
$typ = $this->input->post('typ');
|
||||
$verrechnung = $this->input->post('verrechnung');
|
||||
|
||||
$result = $this->BankverbindungModel->insert(
|
||||
[
|
||||
@@ -659,13 +677,13 @@ class Kontakt extends FHCAPI_Controller
|
||||
'name' => $name,
|
||||
'anschrift' => $anschrift,
|
||||
'bic' => $bic,
|
||||
'iban' => $_POST['iban'],
|
||||
'iban' => $iban,
|
||||
'blz' => $blz,
|
||||
'kontonr' => $kontonr,
|
||||
'insertvon' => 'uid',
|
||||
'insertamum' => date('c'),
|
||||
'typ' => $_POST['typ'],
|
||||
'verrechnung' => $_POST['verrechnung'],
|
||||
'typ' => $typ,
|
||||
'verrechnung' => $verrechnung,
|
||||
'ext_id' => $ext_id,
|
||||
'oe_kurzbz' => $oe_kurzbz,
|
||||
'orgform_kurzbz' => $orgform_kurzbz
|
||||
|
||||
@@ -156,6 +156,8 @@ class Student extends FHCAPI_Controller
|
||||
|
||||
$uid = $student ? current($student)->student_uid : null;
|
||||
|
||||
$studiengang_kz = $student ? current($student)->studiengang_kz : null;
|
||||
|
||||
$result = $this->PrestudentModel->loadWhere(['prestudent_id' => $prestudent_id]);
|
||||
|
||||
$person = $this->getDataOrTerminateWithError($result);
|
||||
@@ -231,10 +233,27 @@ class Student extends FHCAPI_Controller
|
||||
|
||||
// Do Updates
|
||||
if (count($update_lehrverband)) {
|
||||
$result = $this->StudentlehrverbandModel->update([
|
||||
$curstudlvb = $this->StudentlehrverbandModel->load([
|
||||
'studiensemester_kurzbz' => $studiensemester_kurzbz,
|
||||
'student_uid' => $uid
|
||||
], $update_lehrverband);
|
||||
]);
|
||||
|
||||
if(hasData($curstudlvb) && count(getData($curstudlvb)) > 0 )
|
||||
{
|
||||
$result = $this->StudentlehrverbandModel->update([
|
||||
'studiensemester_kurzbz' => $studiensemester_kurzbz,
|
||||
'student_uid' => $uid
|
||||
], $update_lehrverband);
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = $this->StudentlehrverbandModel->insert(array_merge([
|
||||
'studiensemester_kurzbz' => $studiensemester_kurzbz,
|
||||
'student_uid' => $uid,
|
||||
'studiengang_kz' => $studiengang_kz
|
||||
], $update_lehrverband));
|
||||
}
|
||||
|
||||
$this->getDataOrTerminateWithError($result);
|
||||
}
|
||||
|
||||
|
||||
@@ -95,12 +95,15 @@ class AntragJob extends JOB_Controller
|
||||
continue;
|
||||
}
|
||||
|
||||
$leitung = current(getData($result));
|
||||
if (!isset($stgLeitungen[$leitung->uid]))
|
||||
$leitungen = getData($result);
|
||||
foreach ($leitungen as $leitung)
|
||||
{
|
||||
$stgLeitungen[$leitung->uid] = [ 'Details' => $leitung, 'stgs' => [] ];
|
||||
if (!isset($stgLeitungen[$leitung->uid]))
|
||||
{
|
||||
$stgLeitungen[$leitung->uid] = ['Details' => $leitung, 'stgs' => []];
|
||||
}
|
||||
$stgLeitungen[$leitung->uid]['stgs'][] = $antrag->studiengang_kz;
|
||||
}
|
||||
$stgLeitungen[$leitung->uid]['stgs'][] = $antrag->studiengang_kz;
|
||||
|
||||
$result = $this->StudierendenantragModel->getStgAndSem($antrag->studierendenantrag_id);
|
||||
if (isError($result))
|
||||
|
||||
@@ -48,7 +48,9 @@ class IssueResolver extends IssueResolver_Controller
|
||||
'CORE_PERSON_0001' => 'CORE_PERSON_0001',
|
||||
'CORE_PERSON_0002' => 'CORE_PERSON_0002',
|
||||
'CORE_PERSON_0003' => 'CORE_PERSON_0003',
|
||||
'CORE_PERSON_0004' => 'CORE_PERSON_0004'
|
||||
'CORE_PERSON_0004' => 'CORE_PERSON_0004',
|
||||
'CORE_PERSON_0005' => 'CORE_PERSON_0005',
|
||||
'CORE_PERSON_0006' => 'CORE_PERSON_0006'
|
||||
);
|
||||
|
||||
// fehler which are resolved by the job the same way as they are produced
|
||||
|
||||
@@ -2375,16 +2375,50 @@ class InfoCenter extends Auth_Controller
|
||||
if ($statusgrund === 'null' || $studiengang === 'null' || $abgeschickt === 'null' || empty($personen))
|
||||
$this->terminateWithJsonError("Bitte füllen Sie alle Felder aus");
|
||||
|
||||
foreach($personen as $person)
|
||||
if ($studiengang === 'all' && $abgeschickt === 'all')
|
||||
{
|
||||
$prestudent = $this->PrestudentModel->getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester, $abgeschickt);
|
||||
foreach($personen as $person)
|
||||
{
|
||||
$prestudenten = $this->PrestudentModel->getByPersonWithoutLehrgang($person, $studienSemester);
|
||||
|
||||
if (!hasData($prestudent))
|
||||
continue;
|
||||
if (!hasData($prestudenten))
|
||||
continue;
|
||||
|
||||
$prestudentData = getData($prestudent);
|
||||
$prestudentenData = getData($prestudenten);
|
||||
|
||||
foreach ($prestudentenData as $prestudent)
|
||||
{
|
||||
$this->saveAbsage($prestudent->prestudent_id, $statusgrund);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->load->model('organisation/Studienplan_model', 'StudienplanModel');
|
||||
|
||||
$this->StudienplanModel->addSelect('1');
|
||||
$this->StudienplanModel->addJoin('lehre.tbl_studienordnung so', 'studienordnung_id');
|
||||
$escaped = $this->StudienplanModel->db->escape(strtoupper($studiengang));
|
||||
$this->StudienplanModel->db->where("UPPER(so.studiengangkurzbzlang || ':' || tbl_studienplan.orgform_kurzbz) = $escaped");
|
||||
$this->StudienplanModel->addLimit(1);
|
||||
$studiengangResult = $this->StudienplanModel->load();
|
||||
|
||||
if (hasData($studiengangResult))
|
||||
{
|
||||
foreach($personen as $person)
|
||||
{
|
||||
$prestudent = $this->PrestudentModel->getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester, $abgeschickt, $abgeschickt === 'all');
|
||||
|
||||
if (!hasData($prestudent))
|
||||
continue;
|
||||
|
||||
$prestudentData = getData($prestudent);
|
||||
$this->saveAbsage($prestudentData[0]->prestudent_id, $statusgrund);
|
||||
}
|
||||
}
|
||||
else
|
||||
$this->terminateWithJsonError("Falschen Studiengang übergeben!");
|
||||
|
||||
$this->saveAbsage($prestudentData[0]->prestudent_id, $statusgrund);
|
||||
}
|
||||
|
||||
$this->outputJsonSuccess("Success");
|
||||
|
||||
@@ -14,7 +14,8 @@ class Rueckstellung extends Auth_Controller
|
||||
'get' => array('infocenter:r', 'lehre/zgvpruefung:r'),
|
||||
'set' => array('infocenter:r', 'lehre/zgvpruefung:r'),
|
||||
'delete' => array('infocenter:r', 'lehre/zgvpruefung:r'),
|
||||
'getStatus' => array('infocenter:rw', 'lehre/zgvpruefung:rw')
|
||||
'getStatus' => array('infocenter:rw', 'lehre/zgvpruefung:rw'),
|
||||
'setForPersonen' => array('infocenter:rw', 'lehre/zgvpruefung:rw'),
|
||||
)
|
||||
);
|
||||
|
||||
@@ -79,7 +80,34 @@ class Rueckstellung extends Auth_Controller
|
||||
|
||||
$this->outputJson($result);
|
||||
}
|
||||
|
||||
|
||||
public function setForPersonen()
|
||||
{
|
||||
$personen = $this->input->post('personen');
|
||||
$datum_bis = $this->input->post('datum_bis');
|
||||
$status_kurzbz = $this->input->post('status_kurzbz');
|
||||
|
||||
foreach ($personen as $person)
|
||||
{
|
||||
$rueckstellung = $this->_ci->RueckstellungModel->loadWhere(array('person_id' => $person));
|
||||
if (hasData($rueckstellung))
|
||||
continue;
|
||||
|
||||
$result = $this->_ci->RueckstellungModel->insert(
|
||||
array('person_id' => $person,
|
||||
'status_kurzbz' => $status_kurzbz,
|
||||
'datum_bis' => date_format(date_create($datum_bis), 'Y-m-d'),
|
||||
'insertvon' => $this->_uid
|
||||
)
|
||||
);
|
||||
|
||||
if (isError($result))
|
||||
$this->terminateWithJsonError(getError($result));
|
||||
$this->_log($person, $status_kurzbz);
|
||||
}
|
||||
$this->outputJsonSuccess("Erfolgreich gespeichert!");
|
||||
}
|
||||
|
||||
public function delete()
|
||||
{
|
||||
$person_id = $this->input->post('person_id');
|
||||
|
||||
@@ -6,7 +6,6 @@ class Issues extends Auth_Controller
|
||||
{
|
||||
private $_uid;
|
||||
|
||||
const FUNKTION_KURZBZ = 'ass'; // user having this funktion can see issues for oes assigned with this funktion
|
||||
const BERECHTIGUNG_KURZBZ = 'system/issues_verwalten'; // user having this permission can see issues for oes assigned with this permission
|
||||
|
||||
public function __construct()
|
||||
@@ -28,6 +27,9 @@ class Issues extends Auth_Controller
|
||||
$this->load->model('organisation/Organisationseinheit_model', 'OrganisationseinheitModel');
|
||||
$this->load->model('system/Sprache_model', 'SpracheModel');
|
||||
|
||||
// load config
|
||||
$this->load->config('issueList');
|
||||
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
'global',
|
||||
@@ -47,10 +49,12 @@ class Issues extends Auth_Controller
|
||||
{
|
||||
$oes_for_issues = $this->_getOesForIssues();
|
||||
$language_index = $this->_getLanguageIndex();
|
||||
$apps = $this->config->item('issues_list_apps');
|
||||
$status = $this->config->item('issues_list_status');
|
||||
|
||||
$this->load->view(
|
||||
'system/issues/issues',
|
||||
array_merge($oes_for_issues, array('language_index' => $language_index))
|
||||
array_merge($oes_for_issues, array('language_index' => $language_index, 'apps' => $apps, 'status' => $status))
|
||||
);
|
||||
}
|
||||
|
||||
@@ -121,6 +125,8 @@ class Issues extends Auth_Controller
|
||||
$oe_kurzbz_for_funktion = array();
|
||||
$benutzerfunktionRes = $this->BenutzerfunktionModel->getBenutzerFunktionByUid($this->_uid, null, date('Y-m-d'), date('Y-m-d'));
|
||||
|
||||
$functions = $this->config->item('issues_list_functions');
|
||||
|
||||
if (isError($benutzerfunktionRes))
|
||||
show_error(getError($benutzerfunktionRes));
|
||||
|
||||
@@ -130,8 +136,8 @@ class Issues extends Auth_Controller
|
||||
{
|
||||
$all_funktionen_oe_kurzbz[$benutzerfunktion->oe_kurzbz][] = $benutzerfunktion->funktion_kurzbz;
|
||||
|
||||
// separate oes for the additional funktion which enables displaying issues
|
||||
if ($benutzerfunktion->funktion_kurzbz == self::FUNKTION_KURZBZ)
|
||||
// separate oes for the additional functions which enables displaying issues
|
||||
if (in_array($benutzerfunktion->funktion_kurzbz, $functions))
|
||||
{
|
||||
$oe_kurzbz_for_funktion[] = $benutzerfunktion->oe_kurzbz;
|
||||
|
||||
|
||||
@@ -95,6 +95,9 @@ function generateJSDataStorageObject($indexPage, $calledPath, $calledMethod)
|
||||
}, $server_language);
|
||||
$user_language = getUserLanguage();
|
||||
|
||||
$ci->load->config('javascript');
|
||||
$systemerror_mailto = $ci->config->item('systemerror_mailto');
|
||||
|
||||
$FHC_JS_DATA_STORAGE_OBJECT = array(
|
||||
'app_root' => APP_ROOT,
|
||||
'ci_router' => $indexPage,
|
||||
@@ -103,6 +106,7 @@ function generateJSDataStorageObject($indexPage, $calledPath, $calledMethod)
|
||||
'server_languages' => $server_language,
|
||||
'user_language' => $user_language,
|
||||
'timezone' => date_default_timezone_get(),
|
||||
'systemerror_mailto' => $systemerror_mailto,
|
||||
);
|
||||
|
||||
$toPrint = "\n";
|
||||
|
||||
@@ -77,7 +77,9 @@ class AntragLib
|
||||
'studiensemester_kurzbz'=>$prestudentstatus->studiensemester_kurzbz,
|
||||
'ausbildungssemester'=>$prestudentstatus->ausbildungssemester
|
||||
], [
|
||||
'statusgrund_id' => null
|
||||
'statusgrund_id' => null,
|
||||
'updateamum' => date('c'),
|
||||
'updatevon' => $insertvon
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -335,7 +337,10 @@ class AntragLib
|
||||
'status_kurzbz'=>$prestudentstatus->status_kurzbz,
|
||||
'studiensemester_kurzbz'=>$prestudentstatus->studiensemester_kurzbz,
|
||||
'ausbildungssemester'=>$prestudentstatus->ausbildungssemester
|
||||
], []);
|
||||
], [
|
||||
'updateamum' => $insertam,
|
||||
'updatevon' => $insertvon
|
||||
]);
|
||||
if (isError($result))
|
||||
{
|
||||
$errors[] = getError($result);
|
||||
|
||||
@@ -13,7 +13,7 @@ class PlausicheckResolverLib
|
||||
private $_ci; // ci instance
|
||||
private $_extensionName; // name of extension
|
||||
private $_codeLibMappings = []; // mappings for issues which explicitly defined resolver
|
||||
private $_codeProducerLibMappings = []; // mappings for issues which are resolved as produced
|
||||
private $_codeProducerLibMappings = []; // mappings for issues which are resolved with the same check as they are produced
|
||||
|
||||
public function __construct($params = null)
|
||||
{
|
||||
@@ -99,10 +99,11 @@ class PlausicheckResolverLib
|
||||
$issueResolved = getData($issueResolvedRes) === true;
|
||||
}
|
||||
}
|
||||
elseif (isset($this->_codeProducerLibMappings[$issue->fehlercode]))
|
||||
elseif (isset($this->_codeProducerLibMappings[$issue->fehlercode])) // check if it is an issue without explicit resolver, "self-resolving"
|
||||
{
|
||||
$libName = $this->_codeProducerLibMappings[$issue->fehlercode];
|
||||
|
||||
// execute same check as used for issue production
|
||||
$issueResolvedRes = $this->_ci->plausicheckproducerlib->producePlausicheckIssue(
|
||||
$libName,
|
||||
$issue->fehler_kurzbz,
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Geburtsnation missing
|
||||
*/
|
||||
class CORE_PERSON_0005 implements IIssueResolvedChecker
|
||||
{
|
||||
public function checkIfIssueIsResolved($params)
|
||||
{
|
||||
if (!isset($params['issue_person_id']) || !is_numeric($params['issue_person_id']))
|
||||
return error('Person Id missing, issue_id: '.$params['issue_id']);
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->model('person/Person_model', 'PersonModel');
|
||||
|
||||
// load geburtsnation for the given person
|
||||
$this->_ci->PersonModel->addSelect('geburtsnation');
|
||||
$personRes = $this->_ci->PersonModel->load($params['issue_person_id']);
|
||||
|
||||
if (isError($personRes)) return $personRes;
|
||||
|
||||
if (hasData($personRes))
|
||||
{
|
||||
// get person data
|
||||
$personData = getData($personRes)[0];
|
||||
|
||||
// if geburtsnation present, issue is resolved
|
||||
return success(!isEmptyString($personData->geburtsnation));
|
||||
}
|
||||
else
|
||||
return success(false); // if no person found, not resolved
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Geburtsnation missing
|
||||
*/
|
||||
class CORE_PERSON_0006 implements IIssueResolvedChecker
|
||||
{
|
||||
public function checkIfIssueIsResolved($params)
|
||||
{
|
||||
if (!isset($params['issue_person_id']) || !is_numeric($params['issue_person_id']))
|
||||
return error('Person Id missing, issue_id: '.$params['issue_id']);
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->model('codex/Uhstat1daten_model', 'UhstatModel');
|
||||
|
||||
$personRes = $this->_ci->UhstatModel->getUHSTAT1PersonData([$params['issue_person_id']]);
|
||||
|
||||
if (isError($personRes)) return $personRes;
|
||||
|
||||
if (hasData($personRes))
|
||||
{
|
||||
// get person data
|
||||
$personData = getData($personRes)[0];
|
||||
|
||||
// if person identification data present, issue is resolved
|
||||
return success(
|
||||
!isEmptyString($personData->ersatzkennzeichen)
|
||||
|| (!isEmptyString($personData->vbpkAs) && !isEmptyString($personData->vbpkBf))
|
||||
);
|
||||
}
|
||||
else
|
||||
return success(false); // if no person found, not resolved
|
||||
}
|
||||
}
|
||||
@@ -143,6 +143,11 @@ class VertragsbestandteilLib
|
||||
return $this->VertragsbestandteilModel->getVertragsbestandteil($vertragsbestandteil_id);
|
||||
}
|
||||
|
||||
public function fetchLastVertragsbestandteilStundenBeforeAltersteilzeit($dienstverhaeltnis_id)
|
||||
{
|
||||
return $this->VertragsbestandteilModel->getLastVertragsbestanteilStundenBeforeAltersteilzeit($dienstverhaeltnis_id);
|
||||
}
|
||||
|
||||
public function storeDienstverhaeltnis(Dienstverhaeltnis $dv)
|
||||
{
|
||||
if( intval($dv->getDienstverhaeltnis_id()) > 0 )
|
||||
|
||||
@@ -11,4 +11,44 @@ class Uhstat1daten_model extends DB_Model
|
||||
$this->dbTable = 'bis.tbl_uhstat1daten';
|
||||
$this->pk = 'uhstat1daten_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets person data needed for sending as UHSTAT1 data.
|
||||
* @param array $person_id_arr
|
||||
* @param string $studiensemester
|
||||
* @param array $status_kurzbz
|
||||
* @return object success with prestudents or error
|
||||
*/
|
||||
public function getUHSTAT1PersonData($person_id_arr)
|
||||
{
|
||||
if (!isset($person_id_arr) || isEmptyArray($person_id_arr)) return success([]);
|
||||
|
||||
$params = array($person_id_arr);
|
||||
|
||||
$prstQry = "SELECT
|
||||
DISTINCT ON (pers.person_id)
|
||||
pers.person_id, uhstat_daten.uhstat1daten_id, pers.svnr, pers.ersatzkennzeichen, pers.geburtsnation,
|
||||
uhstat_daten.mutter_geburtsstaat, uhstat_daten.mutter_bildungsstaat, uhstat_daten.mutter_geburtsjahr,
|
||||
uhstat_daten.mutter_bildungmax, uhstat_daten.vater_geburtsstaat, uhstat_daten.vater_bildungsstaat,
|
||||
uhstat_daten.vater_geburtsjahr, uhstat_daten.vater_bildungmax,
|
||||
kzVbpkAs.inhalt AS \"vbpkAs\", kzVbpkBf.inhalt AS \"vbpkBf\"
|
||||
FROM
|
||||
public.tbl_person pers
|
||||
JOIN public.tbl_prestudent ps USING (person_id)
|
||||
JOIN public.tbl_studiengang stg USING (studiengang_kz)
|
||||
JOIN bis.tbl_uhstat1daten uhstat_daten USING (person_id)
|
||||
LEFT JOIN public.tbl_kennzeichen kzVbpkAs ON kzVbpkAs.kennzeichentyp_kurzbz = 'vbpkAs'AND kzVbpkAs.person_id = pers.person_id AND kzVbpkAs.aktiv
|
||||
LEFT JOIN public.tbl_kennzeichen kzVbpkBf ON kzVbpkBf.kennzeichentyp_kurzbz = 'vbpkBf'AND kzVbpkBf.person_id = pers.person_id AND kzVbpkBf.aktiv
|
||||
WHERE
|
||||
ps.bismelden
|
||||
AND stg.melderelevant
|
||||
AND pers.person_id IN ?
|
||||
ORDER BY
|
||||
pers.person_id";
|
||||
|
||||
return $this->execReadOnlyQuery(
|
||||
$prstQry,
|
||||
$params
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -677,7 +677,7 @@ class Prestudent_model extends DB_Model
|
||||
));
|
||||
}
|
||||
|
||||
public function getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester, $abgeschickt)
|
||||
public function getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester, $abgeschickt, $ignoreAbgeschickt = false)
|
||||
{
|
||||
$query = "SELECT ps.prestudent_id
|
||||
FROM public.tbl_prestudentstatus pss
|
||||
@@ -687,22 +687,42 @@ class Prestudent_model extends DB_Model
|
||||
JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
|
||||
WHERE ps.person_id = ?
|
||||
AND UPPER(so.studiengangkurzbzlang || ':' || sp.orgform_kurzbz) = ?
|
||||
AND pss.studiensemester_kurzbz = ?
|
||||
AND";
|
||||
AND pss.studiensemester_kurzbz = ?";
|
||||
|
||||
if ($abgeschickt === 'true')
|
||||
$query .= " EXISTS";
|
||||
else
|
||||
$query .= " NOT EXISTS";
|
||||
if (!$ignoreAbgeschickt)
|
||||
{
|
||||
$query .= "AND";
|
||||
|
||||
$query .= " (SELECT 1 FROM public.tbl_prestudentstatus spss
|
||||
if ($abgeschickt === 'true')
|
||||
$query .= " EXISTS";
|
||||
else
|
||||
$query .= " NOT EXISTS";
|
||||
|
||||
$query .= " (SELECT 1 FROM public.tbl_prestudentstatus spss
|
||||
JOIN public.tbl_prestudent sps USING(prestudent_id)
|
||||
WHERE sps.prestudent_id = ps.prestudent_id
|
||||
AND spss.bewerbung_abgeschicktamum IS NOT NULL)";
|
||||
}
|
||||
|
||||
return $this->execQuery($query, array($person, $studiengang, $studienSemester));
|
||||
}
|
||||
|
||||
public function getByPersonWithoutLehrgang($person, $studienSemester)
|
||||
{
|
||||
$query = "SELECT DISTINCT(ps.prestudent_id)
|
||||
FROM public.tbl_prestudentstatus pss
|
||||
JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang sg USING(studiengang_kz)
|
||||
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
|
||||
JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
|
||||
WHERE ps.person_id = ?
|
||||
AND (sg.typ = 'b' OR sg.typ = 'm')
|
||||
AND pss.studiensemester_kurzbz = ?";
|
||||
|
||||
return $this->execQuery($query, array($person, $studienSemester));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets förderrelevant flag for a prestudent, from prestudent, or, if not set on prestudent level, from studiengang
|
||||
* @param int $prestudent_id
|
||||
|
||||
@@ -59,7 +59,14 @@ class Dienstverhaeltnis_model extends DB_Model
|
||||
}
|
||||
|
||||
$qry .="
|
||||
ORDER BY dv.von desc
|
||||
ORDER BY
|
||||
CASE
|
||||
WHEN (COALESCE(dv.bis, '2999-12-31'::date) - NOW()::date) < 0 THEN NULL
|
||||
ELSE
|
||||
(COALESCE(dv.bis, '2999-12-31'::date) - NOW()::date)
|
||||
END ASC NULLS LAST,
|
||||
COALESCE(dv.bis, '2999-12-31'::date) DESC,
|
||||
dv.von DESC
|
||||
";
|
||||
|
||||
return $this->execQuery($qry, $data);
|
||||
|
||||
@@ -183,6 +183,46 @@ EOSQL;
|
||||
return $vbcount[0]->overlappingvbs;
|
||||
}
|
||||
|
||||
public function getLastVertragsbestanteilStundenBeforeAltersteilzeit($dienstverhaeltnis_id)
|
||||
{
|
||||
$sql = <<<EOATZSQL
|
||||
select
|
||||
*
|
||||
from
|
||||
hr.tbl_vertragsbestandteil vb
|
||||
join
|
||||
hr.tbl_vertragsbestandteil_stunden vbs USING(vertragsbestandteil_id)
|
||||
where
|
||||
vb.dienstverhaeltnis_id = ?
|
||||
and (
|
||||
vbs.teilzeittyp_kurzbz != 'altersteilzeit'
|
||||
or
|
||||
vbs.teilzeittyp_kurzbz is NULL
|
||||
)
|
||||
order by
|
||||
vb.bis desc
|
||||
limit 1
|
||||
EOATZSQL;
|
||||
$query = $this->execReadOnlyQuery($sql, array($dienstverhaeltnis_id));
|
||||
$data = getData($query);
|
||||
|
||||
if ($data == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
$vertragsbestandteil = null;
|
||||
try
|
||||
{
|
||||
$vertragsbestandteil = VertragsbestandteilFactory::getVertragsbestandteil($data[0], true);
|
||||
}
|
||||
catch (Exception $ex)
|
||||
{
|
||||
echo $ex->getMessage() . "\n";
|
||||
}
|
||||
return $vertragsbestandteil;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if sap sync table exists.
|
||||
* @return bool
|
||||
|
||||
@@ -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,7 +20,7 @@
|
||||
'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')
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
'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')
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
'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')
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
@@ -112,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)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
'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')
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
@@ -1,11 +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')";
|
||||
$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 (
|
||||
@@ -37,8 +47,8 @@ $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[".$language_index."] AS \"Fehlertyp\",
|
||||
stat.bezeichnung_mehrsprachig[".$language_index."] AS \"Fehlerstatus\",
|
||||
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\",
|
||||
@@ -118,44 +128,48 @@ $query .= "
|
||||
JOIN system.tbl_issue_status stat USING (status_kurzbz)
|
||||
LEFT JOIN public.tbl_person pers ON iss.person_id = pers.person_id
|
||||
WHERE
|
||||
fr.app IN ('core', 'dvuh')
|
||||
AND (
|
||||
(
|
||||
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;
|
||||
|
||||
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 .= " 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 .= ") ";
|
||||
|
||||
if (!isEmptyString($APPS)) $query .= " AND fr.app IN ".$APPS;
|
||||
|
||||
$query .= " ORDER BY
|
||||
CASE
|
||||
WHEN fehlertyp_kurzbz = '".IssuesLib::ERRORTYPE_CODE."' THEN 0
|
||||
|
||||
@@ -1090,7 +1090,10 @@ foreach ($stsem_obj->studiensemester as $studiensemester)
|
||||
}
|
||||
$stsem_content .= "</SELECT>\n";
|
||||
|
||||
if (! $rechte->isBerechtigt('admin', 0) && ! $rechte->isBerechtigt('admin', $lv_obj->studiengang_kz) && ! $rechte->isBerechtigt('lehre', $lv_obj->studiengang_kz))
|
||||
if (! $rechte->isBerechtigt('admin', 0)
|
||||
&& ! $rechte->isBerechtigt('admin', $lv_obj->studiengang_kz)
|
||||
&& ! $rechte->isBerechtigt('lehre', $lv_obj->studiengang_kz)
|
||||
&& ! $rechte->isBerechtigt('lehre', $lv_obj->oe_kurzbz))
|
||||
{
|
||||
$qry = "SELECT
|
||||
lehreinheit_id
|
||||
|
||||
@@ -384,17 +384,6 @@ for ($i = 0; $i < count($ztaufdata); $i++)
|
||||
}
|
||||
}
|
||||
|
||||
//worktime with no break greater 6 -> compulsory break of half an hour
|
||||
if ($pauseSubtracted < 0.5 && !$lehreExternExists)
|
||||
{
|
||||
if ($projektlines[$day]->arbeitszeit >= 6.5)
|
||||
$projektlines[$day]->arbeitszeit -= 0.5;
|
||||
|
||||
//ensure that no worktime gets smaller than 6 hours because of compulsory break
|
||||
elseif ($projektlines[$day]->arbeitszeit > 6)
|
||||
$projektlines[$day]->arbeitszeit -= $projektlines[$day]->arbeitszeit - 6;
|
||||
}
|
||||
|
||||
$projektlines[$day]->arbeitszeit = round($projektlines[$day]->arbeitszeit, 2);
|
||||
|
||||
//calculate sums
|
||||
|
||||
+307
-55
@@ -65,7 +65,7 @@ if (isset($_GET['nummer']))
|
||||
}
|
||||
else
|
||||
{
|
||||
$nummer = '';
|
||||
$nummer = '0';
|
||||
}
|
||||
|
||||
if (isset($_GET['frage_id']))
|
||||
@@ -102,29 +102,175 @@ echo '<?xml version="1.0" encoding="UTF-8"?>';
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css" />
|
||||
<script language="Javascript">
|
||||
//Vorschau anzeigen
|
||||
function preview()
|
||||
{
|
||||
document.getElementById('vorschau').innerHTML = document.getElementById('text').value;
|
||||
function preview(input) {
|
||||
const xmlText = document.getElementById('text_'+input).value;
|
||||
const vorschau = document.getElementById('vorschau_'+input);
|
||||
|
||||
// Zurücksetzen der Styles
|
||||
vorschau.style.textAlign = 'center';
|
||||
vorschau.style.backgroundColor = 'initial';
|
||||
vorschau.style.color = 'initial';
|
||||
|
||||
// Prüfen ob überhaupt Inhalt vorhanden ist
|
||||
if (!xmlText.trim()) {
|
||||
vorschau.innerHTML = '';
|
||||
return;
|
||||
}
|
||||
|
||||
// Prüfe ob HTML/XML-Tags vorhanden sind
|
||||
const hatTags = xmlText.indexOf('<') != -1 && xmlText.indexOf('>') != -1;
|
||||
|
||||
if (!hatTags) {
|
||||
// Kein HTML/XML - zeige als normalen Text
|
||||
vorschau.innerText = xmlText;
|
||||
return;
|
||||
}
|
||||
|
||||
// Versuche HTML/MathML zu rendern
|
||||
try {
|
||||
// Erstelle einen temporären Container für die Validierung
|
||||
const tempDiv = document.createElement('div');
|
||||
tempDiv.innerHTML = xmlText;
|
||||
|
||||
// Prüfe auf MathML-Elemente und stelle sicher, dass sie korrekt sind
|
||||
const mathElements = tempDiv.querySelectorAll('math');
|
||||
let mathmlValid = true;
|
||||
|
||||
// Verwende eine while-Schleife statt for-Schleife um XML-Probleme zu vermeiden
|
||||
let i = 0;
|
||||
while (i < mathElements.length) {
|
||||
const mathEl = mathElements[i];
|
||||
// Prüfe ob das MathML-Element den korrekten Namespace hat
|
||||
if (!mathEl.hasAttribute('xmlns')) {
|
||||
mathEl.setAttribute('xmlns', 'http://www.w3.org/1998/Math/MathML');
|
||||
}
|
||||
|
||||
// Grundlegende MathML-Validierung
|
||||
const mathmlContent = mathEl.innerHTML;
|
||||
if (mathmlContent.trim() === '') {
|
||||
mathmlValid = false;
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
if (mathmlValid) {
|
||||
// Wenn alles ok ist, zeige den Inhalt an
|
||||
vorschau.innerHTML = xmlText;
|
||||
|
||||
// Versuche MathML zu rendern falls MathJax verfügbar ist
|
||||
if (typeof MathJax != 'undefined' && MathJax.typesetPromise) {
|
||||
MathJax.typesetPromise([vorschau]).catch(function (err) {
|
||||
console.log('MathJax-Fehler:', err.message);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
throw new Error('Ungültiges MathML');
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
// HTML-Parsing fehlgeschlagen - prüfe ob es sich um reines XML handelt
|
||||
const startetMitTag = xmlText.trim().charAt(0) === '<';
|
||||
const endetMitTag = xmlText.trim().charAt(xmlText.trim().length - 1) === '>';
|
||||
const hatNurTags = xmlText.indexOf('<') === 0 && xmlText.lastIndexOf('>') === xmlText.length - 1;
|
||||
|
||||
if (startetMitTag && endetMitTag && hatNurTags) {
|
||||
// Versuche XML-Parsing
|
||||
try {
|
||||
const parser = new DOMParser();
|
||||
const parsed = parser.parseFromString(xmlText, 'application/xml');
|
||||
const parsererror = parsed.getElementsByTagName('parsererror');
|
||||
|
||||
if (parsererror.length > 0) {
|
||||
let fehlertext = parsererror[0].textContent;
|
||||
const zeileninfoStart = fehlertext.indexOf("Zeile Nr.");
|
||||
if (zeileninfoStart != -1) {
|
||||
const zeileninfo = fehlertext.substring(zeileninfoStart);
|
||||
fehlertext = 'XML-Verarbeitungsfehler:\n' + zeileninfo;
|
||||
}
|
||||
vorschau.innerText = fehlertext;
|
||||
vorschau.style.textAlign = 'left';
|
||||
vorschau.style.backgroundColor = 'lightyellow';
|
||||
vorschau.style.color = 'red';
|
||||
return;
|
||||
} else {
|
||||
// XML ist gültig
|
||||
vorschau.innerText = xmlText;
|
||||
return;
|
||||
}
|
||||
} catch (xmlError) {
|
||||
// XML-Parsing fehlgeschlagen
|
||||
vorschau.innerText = 'XML-Formatfehler: ' + xmlError.message;
|
||||
vorschau.style.textAlign = 'left';
|
||||
vorschau.style.backgroundColor = 'lightyellow';
|
||||
vorschau.style.color = 'red';
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
// Gemischter Inhalt oder HTML mit Fehlern - zeige Fehlermeldung
|
||||
vorschau.innerText = 'HTML/MathML-Formatfehler: ' + error.message;
|
||||
vorschau.style.textAlign = 'left';
|
||||
vorschau.style.backgroundColor = 'lightyellow';
|
||||
vorschau.style.color = 'red';
|
||||
}
|
||||
}
|
||||
}
|
||||
function previewvorschlag()
|
||||
{
|
||||
document.getElementById('vorschauvorschlag').innerHTML = document.getElementById('text_vorschlag').value;
|
||||
function previewvorschlag() {
|
||||
const xmlText = document.getElementById('text_vorschlag').value;
|
||||
const vorschau = document.getElementById('vorschauvorschlag');
|
||||
const parser = new DOMParser();
|
||||
const parsed = parser.parseFromString(xmlText, 'application/xml');
|
||||
|
||||
const parsererror = parsed.getElementsByTagName('parsererror');
|
||||
|
||||
if (parsererror.length > 0) {
|
||||
var fehlertext = parsererror[0].textContent;
|
||||
const zeileninfoStart = fehlertext.indexOf("Zeile Nr.");
|
||||
|
||||
if (zeileninfoStart !== -1) {
|
||||
const zeileninfo = fehlertext.substring(zeileninfoStart);
|
||||
fehlertext = 'XML-Verarbeitungsfehler:\n ' + zeileninfo;
|
||||
} else {
|
||||
fehlertext = fehlertext; // Fallback
|
||||
}
|
||||
vorschau.innerText = fehlertext;
|
||||
vorschau.style.textAlign = 'left';
|
||||
vorschau.style.backgroundColor = 'lightyellow';
|
||||
} else {
|
||||
// Zeige XML als Text (nicht als HTML rendern!)
|
||||
vorschau.innerHTML = xmlText;
|
||||
vorschau.style.textAlign = 'center';
|
||||
vorschau.style.backgroundColor = 'initial';
|
||||
}
|
||||
}
|
||||
function insertfrage(aTag, eTag)
|
||||
{
|
||||
var input = document.forms['formular_frage'].elements['text'];
|
||||
var input = document.forms['formular_frage'].elements['text_frage'];
|
||||
input.focus();
|
||||
/* Einfügen des Formatierungscodes */
|
||||
var start = input.selectionStart;
|
||||
var end = input.selectionEnd;
|
||||
var insText = input.value.substring(start, end);
|
||||
input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
|
||||
if (eTag)
|
||||
{
|
||||
input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
|
||||
}
|
||||
else
|
||||
{
|
||||
input.value = input.value.substr(0, start) + aTag + input.value.substr(end);
|
||||
}
|
||||
/* Anpassen der Cursorposition */
|
||||
var pos;
|
||||
if (insText.length == 0) {
|
||||
pos = start + aTag.length;
|
||||
} else {
|
||||
pos = start + aTag.length + insText.length + eTag.length;
|
||||
} else
|
||||
{
|
||||
if (eTag) {
|
||||
pos = start + aTag.length + insText.length + eTag.length;
|
||||
}
|
||||
else {
|
||||
pos = start + aTag.length + insText.length;
|
||||
}
|
||||
}
|
||||
input.selectionStart = pos;
|
||||
input.selectionEnd = pos;
|
||||
@@ -137,13 +283,25 @@ function insertvorschlag(aTag, eTag)
|
||||
var start = input.selectionStart;
|
||||
var end = input.selectionEnd;
|
||||
var insText = input.value.substring(start, end);
|
||||
input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
|
||||
if (eTag)
|
||||
{
|
||||
input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
|
||||
}
|
||||
else
|
||||
{
|
||||
input.value = input.value.substr(0, start) + aTag + input.value.substr(end);
|
||||
}
|
||||
/* Anpassen der Cursorposition */
|
||||
var pos;
|
||||
if (insText.length == 0) {
|
||||
pos = start + aTag.length;
|
||||
} else {
|
||||
pos = start + aTag.length + insText.length + eTag.length;
|
||||
if (eTag) {
|
||||
pos = start + aTag.length + insText.length + eTag.length;
|
||||
}
|
||||
else {
|
||||
pos = start + aTag.length + insText.length;
|
||||
}
|
||||
}
|
||||
input.selectionStart = pos;
|
||||
input.selectionEnd = pos;
|
||||
@@ -153,6 +311,14 @@ function confirmDeleteFrage()
|
||||
{
|
||||
return confirm('Wollen Sie diese Frage wirklich löschen?');
|
||||
}
|
||||
|
||||
function increaseMATHML()
|
||||
{
|
||||
const mathTags = document.querySelectorAll('math');
|
||||
mathTags.forEach(tag => {
|
||||
tag.style.fontSize = '200%';
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<style type="text/css">
|
||||
|
||||
@@ -778,44 +944,83 @@ if (($anzahl !== 0) || ($stg_kz == '-1') && ($stg_kz !== ''))
|
||||
<a href="'.$PHP_SELF.'?gebiet_id='.$gebiet_id.'&stg_kz='.$stg_kz.'&nummer='.$nummer.'&filter=aktiv">
|
||||
<input type="checkbox" name="inaktiv" '.$inaktivchecked.' onclick="window.location.assign(\''.$PHP_SELF.'?gebiet_id='.$gebiet_id.'&stg_kz='.$stg_kz.'&nummer='.$nummer.'&filter=aktiv\');"/>inaktiv</a>';
|
||||
}
|
||||
echo '<br/><table class="nummern" style="display: inline-table;"><tbody><tr>
|
||||
<td>Nummer:</td>';
|
||||
foreach ($resultArray AS $key=>$value)
|
||||
{
|
||||
if ($nummer == '')
|
||||
$nummer = $value['nummer'];
|
||||
echo '<br/>';
|
||||
|
||||
$style = '';
|
||||
if ($db->db_parse_bool($value['aktiv']) == false)
|
||||
$style = 'style="color: lightgrey"';
|
||||
$counter = 0;
|
||||
$maxPerTable = 50;
|
||||
$totalItems = count($resultArray);
|
||||
|
||||
$styleSelected = '';
|
||||
if ($nummer == $value['nummer'])
|
||||
{
|
||||
$styleSelected = 'style="background-color: lightblue"';
|
||||
}
|
||||
// Erste Tabelle öffnen
|
||||
echo '<table class="nummern" style="display: inline-table; margin-bottom: 10px;"><tbody><tr>
|
||||
<td>Nummer:</td>';
|
||||
|
||||
echo '<td class="nummern" '.$styleSelected.'><a href="'.$PHP_SELF.'?gebiet_id='.$gebiet_id.'&stg_kz='.$stg_kz.'&nummer='.$value['nummer'].'&filter='.$filter.'" '.$style.'>'.$value['nummer'].'</a></td>';
|
||||
foreach ($resultArray AS $key=>$value) {
|
||||
// Neue Tabelle starten, wenn 50 Einträge erreicht sind
|
||||
if ($counter > 0 && $counter % $maxPerTable == 0) {
|
||||
// Aktuelle Tabelle schließen
|
||||
echo '</tr><tr><td>Level:</td>';
|
||||
|
||||
// Level-Zeile für die vorherigen Einträge
|
||||
$startIndex = $counter - $maxPerTable;
|
||||
$endIndex = $counter;
|
||||
$tempArray = array_slice($resultArray, $startIndex, $maxPerTable, true);
|
||||
|
||||
foreach ($tempArray AS $tempKey=>$tempValue) {
|
||||
$leveltext = '';
|
||||
if ($tempValue['level'] == '') {
|
||||
$leveltext = '-';
|
||||
} else {
|
||||
$leveltext = $tempValue['level'];
|
||||
if ($tempValue['demo'] == 't') {
|
||||
$leveltext .= '*';
|
||||
}
|
||||
}
|
||||
echo '<td class="nummern" style="color: grey">'.$leveltext.'</td>';
|
||||
}
|
||||
|
||||
echo '</tr></tbody></table><br/>';
|
||||
|
||||
// Neue Tabelle starten
|
||||
echo '<table class="nummern" style="display: inline-table; margin-bottom: 10px;"><tbody><tr>
|
||||
<td>Nummer:</td>';
|
||||
}
|
||||
|
||||
if ($nummer == '')
|
||||
$nummer = $value['nummer'];
|
||||
$style = '';
|
||||
if ($db->db_parse_bool($value['aktiv']) == false)
|
||||
$style = 'style="color: lightgrey"';
|
||||
$styleSelected = '';
|
||||
if ($nummer == $value['nummer']) {
|
||||
$styleSelected = 'style="background-color: lightblue"';
|
||||
}
|
||||
echo '<td class="nummern" '.$styleSelected.'><a href="'.$PHP_SELF.'?gebiet_id='.$gebiet_id.'&stg_kz='.$stg_kz.'&nummer='.$value['nummer'].'&filter='.$filter.'" '.$style.'>'.$value['nummer'].'</a></td>';
|
||||
|
||||
$counter++;
|
||||
}
|
||||
echo '</tr><tr>
|
||||
<td>Level:</td>';
|
||||
$leveltext = '';
|
||||
foreach ($resultArray AS $key=>$value)
|
||||
{
|
||||
if ($value['level'] == '')
|
||||
{
|
||||
$leveltext = '-';
|
||||
}
|
||||
else
|
||||
{
|
||||
$leveltext = $value['level'];
|
||||
if ($value['demo'] == 't')
|
||||
{
|
||||
$leveltext .= '*';
|
||||
}
|
||||
}
|
||||
echo '<td class="nummern" style="color: grey">'.$leveltext.'</td>';
|
||||
|
||||
// Letzte Tabelle schließen
|
||||
echo '</tr><tr><td>Level:</td>';
|
||||
|
||||
// Level-Zeile für die letzten Einträge
|
||||
$remainingItems = $counter % $maxPerTable;
|
||||
if ($remainingItems == 0) $remainingItems = $maxPerTable;
|
||||
$startIndex = $counter - $remainingItems;
|
||||
$tempArray = array_slice($resultArray, $startIndex, $remainingItems, true);
|
||||
|
||||
foreach ($tempArray AS $tempKey=>$tempValue) {
|
||||
$leveltext = '';
|
||||
if ($tempValue['level'] == '') {
|
||||
$leveltext = '-';
|
||||
} else {
|
||||
$leveltext = $tempValue['level'];
|
||||
if ($tempValue['demo'] == 't') {
|
||||
$leveltext .= '*';
|
||||
}
|
||||
}
|
||||
echo '<td class="nummern" style="color: grey">'.$leveltext.'</td>';
|
||||
}
|
||||
|
||||
echo '</tr></tbody></table>';
|
||||
echo " <a href='$PHP_SELF?gebiet_id=$gebiet_id&stg_kz=$stg_kz&type=neuefrage&filter=$filter' class='Item'>neue Frage hinzufuegen</a>";
|
||||
$frage_obj = new frage();
|
||||
@@ -931,7 +1136,7 @@ if ($frage_id != '')
|
||||
//Bei Aenderungen im Textfeld werden diese sofort in der Vorschau angezeigt
|
||||
//Wenn beim Speichern der Text kein Gueltiges XML ist, wird der vorige Text erneut angezeigt
|
||||
|
||||
echo "<tr valign='top'><td colspan='2'>\n<textarea name='text' id='text' cols='50' rows='27' oninput='preview()' ".($frage->aktiv == false?'disabled="disabled"':'')."><![CDATA[".(isset($frage_error_text)?$frage_error_text:$frage->text)."]]></textarea>\n</td>";
|
||||
echo "<tr valign='top'><td colspan='2'>\n<textarea name='text' id='text_frage' cols='50' rows='27' oninput='preview(\"frage\")' ".($frage->aktiv == false?'disabled="disabled"':'')."><![CDATA[".(isset($frage_error_text)?$frage_error_text:$frage->text)."]]></textarea>\n</td>";
|
||||
echo "<table><tr><td><input type='button' value='br' onclick='insertfrage(\"<br/>\", \"\")' />";
|
||||
echo "<input type='button' value='F' style='font-weight:bold' onclick='insertfrage(\"<strong>\", \"</strong>\")' />";
|
||||
echo "<input type='button' value='K' style='font-style:italic' onclick='insertfrage(\"<i>\", \"</i>\")' /><br/><br/>";
|
||||
@@ -948,8 +1153,14 @@ if ($frage_id != '')
|
||||
echo "<input type='button' value='msqrt' onclick='insertfrage(\"<msqrt>\", \"</msqrt>\")' title='Wurzel' /><br/>";
|
||||
echo "<input type='button' value='munderover' onclick='insertfrage(\"<munderover><mo movablelimits=\"false\">Das steht mittig</mo><mo>Das steht unten</mo><mo>Das steht oben</mo></munderover>\", \"\")' title='Oben und unten' /><br/>";
|
||||
echo "<input type='button' value='mtext' onclick='insertfrage(\"<mtext>\", \"</mtext>\")' title='Text' /><br/>";
|
||||
echo "Operatoren:<br/>π<br/>·<br/>∑<br/>∫<br/><a href='http://de.selfhtml.org/html/referenz/zeichen.htm#benannte_iso8859_1' target='blank'>Weitere</a>";
|
||||
echo "</td>";
|
||||
echo "Operatoren:<p>";
|
||||
echo "<button type='button' onclick='insertfrage(\"<mo>π</mo>\")'>π</button> ";
|
||||
echo "<button type='button' onclick='insertfrage(\"<mo>·</mo>\")'>·</button> ";
|
||||
echo "<button type='button' onclick='insertfrage(\"<mo>∑</mo>\")'>∑</button> ";
|
||||
echo "<button type='button' onclick='insertfrage(\"<mo>∫</mo>\")'>∫</button>";
|
||||
echo "<p><a href='http://de.selfhtml.org/html/referenz/zeichen.htm#benannte_iso8859_1' target='blank'>Weitere</a></p>";
|
||||
echo "<button type='button' onclick='increaseMATHML()'>MathML größer</button>";
|
||||
echo "</p></td>";
|
||||
echo "</tr></table></tr>";
|
||||
echo "<tr><td>Demo <input type='checkbox' name='demo' ".($frage->demo?'checked="true"':'')." />
|
||||
Level <input type='text' name='level' value='$frage->level' size='1' />
|
||||
@@ -960,7 +1171,10 @@ if ($frage_id != '')
|
||||
echo "</form>";
|
||||
echo "</td></tr>";
|
||||
//Vorschau fuer das Text-Feld
|
||||
echo "<tr><td colspan='2'>Vorschau:<br /><div id='vorschau' style='border: 1px solid black' align='center'>$frage->text</div></td></tr>";
|
||||
echo "<tr><td style='width: 50%'>Vorschau:<br />
|
||||
<div id='vorschau_frage' style='border: 1px solid black' align='center'>$frage->text</div></td>
|
||||
<td style='width: 50%'>Derzeit:<br /><div id='aktuell' style='border: 1px solid black' align='center'>$frage->text</div>
|
||||
</td></tr>";
|
||||
echo "</table>";
|
||||
echo '</td><td style="border-left: 1px solid black" valign="top">';
|
||||
|
||||
@@ -1022,7 +1236,7 @@ if ($frage_id != '')
|
||||
echo "<input type='button' value='+1/2' style='background-color:#C5FFBF' onclick='document.getElementById(\"punkte\").value=\"0.5\";' /></td>";
|
||||
echo '</tr>';
|
||||
echo '<tr valign="top">';
|
||||
echo '<td>Text:</td><td><textarea name="text" id="text_vorschlag" rows="25" cols="45" oninput="previewvorschlag()" '.($vorschlag->aktiv == true || is_null($vorschlag->aktiv)?'':'disabled="disabled"').'><![CDATA['.$vorschlag->text."]]></textarea>\n</td>";
|
||||
echo '<td>Text:</td><td><textarea name="text" id="text_vorschlag" rows="25" cols="45" oninput="preview(\'vorschlag\')" '.($vorschlag->aktiv == true || is_null($vorschlag->aktiv)?'':'disabled="disabled"').'><![CDATA['.$vorschlag->text."]]></textarea>\n</td>";
|
||||
echo "<td><input type='button' value='br' onclick='insertvorschlag(\"<br/>\", \"\")' />";
|
||||
echo "<input type='button' value='F' style='font-weight:bold' onclick='insertvorschlag(\"<strong>\", \"</strong>\")' />";
|
||||
echo "<input type='button' value='K' style='font-style:italic' onclick='insertvorschlag(\"<i>\", \"</i>\")' /><br/><br/>";
|
||||
@@ -1039,8 +1253,12 @@ if ($frage_id != '')
|
||||
echo "<input type='button' value='msqrt' onclick='insertvorschlag(\"<msqrt>\", \"</msqrt>\")' title='Wurzel' /><br/>";
|
||||
echo "<input type='button' value='munderover' onclick='insertvorschlag(\"<munderover><mo movablelimits=\"false\">Das steht mittig</mo><mo>Das steht unten</mo><mo>Das steht oben</mo></munderover>\", \"\")' title='Oben und unten' /><br/>";
|
||||
echo "<input type='button' value='mtext' onclick='insertvorschlag(\"<mtext>\", \"</mtext>\")' title='Text' /><br/>";
|
||||
echo "Operatoren:<br/>π<br/>·<br/>∑<br/>∫<br/><a href='http://de.selfhtml.org/html/referenz/zeichen.htm#benannte_iso8859_1' target='blank'>Weitere</a>";
|
||||
echo "</td>";
|
||||
echo "Operatoren:<p>";
|
||||
echo "<button type='button' onclick='insertvorschlag(\"<mo>π</mo>\")'>π</button> ";
|
||||
echo "<button type='button' onclick='insertvorschlag(\"<mo>·</mo>\")'>·</button> ";
|
||||
echo "<button type='button' onclick='insertvorschlag(\"<mo>∑</mo>\")'>∑</button> ";
|
||||
echo "<button type='button' onclick='insertvorschlag(\"<mo>∫</mo>\")'>∫</button>";
|
||||
echo "</p></td>";
|
||||
echo '</tr><tr valign="top">';
|
||||
//Upload Feld fuer Bild
|
||||
echo "<td>Bild:</td><td><input type='file' name='bild' /></td>";
|
||||
@@ -1062,10 +1280,10 @@ if ($frage_id != '')
|
||||
echo "/></td></tr>";
|
||||
echo "<tr><td colspan='2' align='right'><input type='submit' name='submitvorschlag' value='Speichern' />".($vorschlag_id != ''?"<input type='button' value='Abbrechen' onclick=\"document.location.href='$PHP_SELF?gebiet_id=$gebiet_id&stg_kz=$stg_kz&nummer=$nummer&frage_id=$frage->frage_id'\" />":'')."</td></tr>";
|
||||
//Vorschau fuer das Text-Feld
|
||||
echo "<tr><td colspan='2'>Vorschau:<br /><div id='vorschauvorschlag' style='border: 1px solid black' align='center'>$vorschlag->text</div></td></tr>";
|
||||
echo "<tr><td colspan='2'>Vorschau:<br /><div id='vorschau_vorschlag' style='border: 1px solid black' align='center'>$vorschlag->text</div>
|
||||
Derzeit:<br /><div id='aktuellvorschlag' style='border: 1px solid black' align='center'>$vorschlag->text</div></td></tr>";
|
||||
echo "</table>";
|
||||
echo "</form>";
|
||||
|
||||
echo '</td></tr></table>';
|
||||
|
||||
$vorschlag = new vorschlag();
|
||||
@@ -1115,6 +1333,40 @@ if ($frage_id != '')
|
||||
echo '<tr><td><input type="hidden" name="allevorschlaege" value="'.$allevorschlaege.'" />Summe:</td><td align="left">'.number_format(array_sum($a), 2, ".", "").' </td><td></td><td></td><td></td><td></td><td></td><td><input type="submit" value="Speichern"/></td></tr>';
|
||||
echo '</table></form><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>';
|
||||
}
|
||||
echo "<script>
|
||||
document.getElementById('text_vorschlag').addEventListener('keydown', function(e)
|
||||
{
|
||||
if (e.key === 'Tab') {
|
||||
e.preventDefault();
|
||||
|
||||
const textarea = e.target;
|
||||
const start = textarea.selectionStart;
|
||||
const end = textarea.selectionEnd;
|
||||
|
||||
// Tabulator-Zeichen einfügen
|
||||
textarea.value = textarea.value.substring(0, start) + '\t' + textarea.value.substring(end);
|
||||
|
||||
// Cursor hinter den Tab setzen
|
||||
textarea.selectionStart = textarea.selectionEnd = start + 1;
|
||||
}
|
||||
});
|
||||
document.getElementById('text_frage').addEventListener('keydown', function(e)
|
||||
{
|
||||
if (e.key === 'Tab') {
|
||||
e.preventDefault();
|
||||
|
||||
const textarea = e.target;
|
||||
const start = textarea.selectionStart;
|
||||
const end = textarea.selectionEnd;
|
||||
|
||||
// Tabulator-Zeichen einfügen
|
||||
textarea.value = textarea.value.substring(0, start) + '\t' + textarea.value.substring(end);
|
||||
|
||||
// Cursor hinter den Tab setzen
|
||||
textarea.selectionStart = textarea.selectionEnd = start + 1;
|
||||
}
|
||||
});
|
||||
</script>";
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -148,7 +148,7 @@ echo '
|
||||
alert(<?php echo "'".$p->t("testtool/alleFragenBeantwortet")."'"?>);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
$(document).ready(function () {
|
||||
$(document).bind('cut copy paste', function(e)
|
||||
{
|
||||
@@ -717,7 +717,7 @@ if($frage->frage_id!='')
|
||||
|
||||
if(!$demo)
|
||||
{
|
||||
echo '<input style="width:180px; white-space:normal" class="btn btn-default btn-testtool" type="submit" name="submitantwort" value="'.$p->t('testtool/speichernUndWeiter').'" />';
|
||||
echo '<input style="width:180px; white-space:normal; margin-bottom: 130px;" class="btn btn-default btn-testtool" type="submit" name="submitantwort" value="'.$p->t('testtool/speichernUndWeiter').'" />';
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -634,6 +634,7 @@ if(!$error)
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE
|
||||
mitarbeiter_uid=".$db->db_add_param($lem->mitarbeiter_uid)." AND
|
||||
lower(mitarbeiter_uid) NOT LIKE '_dummy%' AND
|
||||
studiensemester_kurzbz=".$db->db_add_param($le->studiensemester_kurzbz)." AND
|
||||
bismelden";
|
||||
|
||||
|
||||
@@ -575,5 +575,47 @@ class ampel extends basis_db
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Zählt die Anzahl der UIDs, welche mit einer Ampel adressiert werden
|
||||
* @param $ampel_id integer ID der Ampel, die geladen werden soll
|
||||
*/
|
||||
public function getAnzahlUserAmpel($ampel_id)
|
||||
{
|
||||
// Ampel laden
|
||||
$qry_ampel = "SELECT benutzer_select FROM public.tbl_ampel WHERE ampel_id=".$this->db_add_param($ampel_id, FHC_INTEGER);
|
||||
|
||||
if($result_ampel = $this->db_query($qry_ampel))
|
||||
{
|
||||
// Anzahl User laden
|
||||
if ($row_ampel = $this->db_fetch_object($result_ampel))
|
||||
{
|
||||
$qry_user = "SELECT count(*) AS anzahl FROM (SELECT uid FROM public.tbl_benutzer WHERE uid IN (".$row_ampel->benutzer_select."))subquery";
|
||||
}
|
||||
|
||||
if ($result = $this->db_query($qry_user))
|
||||
{
|
||||
if ($row = $this->db_fetch_object($result))
|
||||
{
|
||||
return $row->anzahl;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Anzahl UIDs konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Anzahl UIDs konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Ampel';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -200,7 +200,7 @@ class LehreListHelper
|
||||
//Studierende der LV laden und in ein Array schreiben
|
||||
|
||||
$qry = 'SELECT
|
||||
distinct on(nachname, vorname, person_id) vorname, nachname, wahlname, matrikelnr, public.tbl_student.student_uid,
|
||||
distinct on(nachname, vorname, public.tbl_benutzer.person_id) vorname, nachname, wahlname, matrikelnr, public.tbl_student.student_uid,
|
||||
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
|
||||
(SELECT status_kurzbz FROM public.tbl_prestudentstatus
|
||||
WHERE prestudent_id=tbl_student.prestudent_id
|
||||
@@ -209,7 +209,8 @@ class LehreListHelper
|
||||
tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_person.geschlecht, tbl_studiengang.kurzbzlang,
|
||||
tbl_mobilitaet.mobilitaetstyp_kurzbz, tbl_zeugnisnote.note,
|
||||
(CASE WHEN bis.tbl_mobilitaet.studiensemester_kurzbz = vw_student_lehrveranstaltung.studiensemester_kurzbz THEN 1 ELSE 0 END) as doubledegree,
|
||||
(tbl_bisio.bis::timestamp - tbl_bisio.von::timestamp) as daysout
|
||||
(tbl_bisio.bis::timestamp - tbl_bisio.von::timestamp) as daysout,
|
||||
public.tbl_prestudent.gsstudientyp_kurzbz as ddtype
|
||||
FROM
|
||||
campus.vw_student_lehrveranstaltung
|
||||
JOIN public.tbl_benutzer USING(uid)
|
||||
@@ -223,6 +224,7 @@ class LehreListHelper
|
||||
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
|
||||
LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz)
|
||||
LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id)
|
||||
LEFT JOIN public.tbl_prestudent USING(prestudent_id)
|
||||
WHERE
|
||||
vw_student_lehrveranstaltung.lehrveranstaltung_id='.$this->db->db_add_param($this->lvid, FHC_INTEGER).' AND
|
||||
vw_student_lehrveranstaltung.studiensemester_kurzbz='.$this->db->db_add_param($this->studiensemester);
|
||||
@@ -231,7 +233,7 @@ class LehreListHelper
|
||||
if($this->lehreinheit!='')
|
||||
$qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$this->db->db_add_param($this->lehreinheit, FHC_INTEGER);
|
||||
|
||||
$qry.=' ORDER BY nachname, vorname, person_id, daysout DESC, doubledegree DESC';
|
||||
$qry.=' ORDER BY nachname, vorname, public.tbl_benutzer.person_id, daysout DESC, doubledegree DESC';
|
||||
|
||||
$stsem_obj = new studiensemester();
|
||||
$stsem_obj->load($this->studiensemester);
|
||||
@@ -263,8 +265,13 @@ class LehreListHelper
|
||||
|
||||
//Outgoing
|
||||
if($row->bisio_id != '' && $row->status != 'Incoming' && ($row->bis > $stsemdatumvon || $row->bis == '')
|
||||
&& $row->von < $stsemdatumbis && (anzahlTage($row->von, $row->bis) >= 30))
|
||||
&& $row->von < $stsemdatumbis && (anzahlTage($row->von, $row->bis) >= 30)) {
|
||||
$zusatz .= '(o)(ab '.$datum->formatDatum($row->von, 'd.m.Y').')';
|
||||
} else if ($row->bisio_id != '' && $row->status != 'Incoming' && ($row->von > $stsemdatumvon || $row->von == '')) {
|
||||
// if bis datum is not yet known but von is available already
|
||||
$zusatz .= '(o)(ab '.$datum->formatDatum($row->von, 'd.m.Y').')';
|
||||
}
|
||||
|
||||
|
||||
if($row->lkt_ueberschreibbar == 'f') // angerechnet / intern angerechnet / nicht zugelassen
|
||||
$zusatz.= '('. $row->anmerkung. ')';
|
||||
@@ -275,8 +282,13 @@ class LehreListHelper
|
||||
if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende
|
||||
$zusatz.='(a.o.)';
|
||||
|
||||
if(($row->mobilitaetstyp_kurzbz != '') && ($row->doubledegree == 1)) //Double Degree Student
|
||||
$zusatz .= '(d.d.)';
|
||||
if(($row->mobilitaetstyp_kurzbz != '') && ($row->doubledegree == 1)) {
|
||||
//Double Degree Student
|
||||
$zusatz .= '(d.d.';
|
||||
if($row->ddtype == 'Intern') $zusatz .= 'i.)';
|
||||
else if ($row->ddtype == 'Extern') $zusatz .='o.)';
|
||||
else $zusatz .= ')';
|
||||
}
|
||||
|
||||
if(($row->wahlname != ''))
|
||||
{
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getLvMenu(lvid, studiensemester_kurzbz) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: `/api/frontend/v1/LvMenu/getLvMenu/${lvid}/${studiensemester_kurzbz}`
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getAuthUID() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/AuthInfo/getAuthUID'
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,22 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import person from "./betriebsmittel/person.js";
|
||||
|
||||
export default {
|
||||
person
|
||||
};
|
||||
@@ -0,0 +1,63 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getAllBetriebsmittel(type, id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/getAllBetriebsmittel/' + type + '/' + id
|
||||
};
|
||||
},
|
||||
addNewBetriebsmittel(person_id, params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/addNewBetriebsmittel/' + person_id,
|
||||
params
|
||||
};
|
||||
},
|
||||
loadBetriebsmittel(betriebsmittelperson_id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/loadBetriebsmittel/' + betriebsmittelperson_id
|
||||
};
|
||||
},
|
||||
updateBetriebsmittel(betriebsmittelperson_id, params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/updateBetriebsmittel/' + betriebsmittelperson_id,
|
||||
params
|
||||
};
|
||||
},
|
||||
deleteBetriebsmittel(betriebsmittelperson_id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/deleteBetriebsmittel/' + betriebsmittelperson_id
|
||||
};
|
||||
},
|
||||
getTypenBetriebsmittel() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/getTypenBetriebsmittel/'
|
||||
};
|
||||
},
|
||||
loadInventarliste(query) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/loadInventarliste/' + query
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,37 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
updatePersonUnrulyStatus(person_id, unruly) {
|
||||
const params = { person_id, unruly }
|
||||
const url = '/api/frontend/v1/checkperson/CheckPerson/updatePersonUnrulyStatus';
|
||||
return {
|
||||
method: 'post',
|
||||
url,
|
||||
params
|
||||
};
|
||||
},
|
||||
filterPerson(params, base = '') {
|
||||
// TODO(chris): seems to be called from nowhere?
|
||||
const url = base + '/api/frontend/v1/checkperson/CheckPerson/filterPerson';
|
||||
return {
|
||||
method: 'post',
|
||||
url,
|
||||
params
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getViewData() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Cis4FhcApi/getViewData'
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getMenu() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/CisMenu/getMenu'
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,64 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
content(content_id, version=null, sprache=null, sichtbar=null) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Cms/content',
|
||||
params: {
|
||||
content_id,
|
||||
...(version ? { version } : {}),
|
||||
...(sprache ? { sprache } : {}),
|
||||
...(sichtbar ? { sichtbar } : {})
|
||||
}
|
||||
};
|
||||
},
|
||||
//api function used for the news View that renders the html
|
||||
getNews(page = 1, page_size = 10, sprache) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Cms/getNews',
|
||||
params: {
|
||||
page,
|
||||
page_size,
|
||||
sprache
|
||||
},
|
||||
};
|
||||
},
|
||||
//api function used for the widget component
|
||||
news(limit) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Cms/news',
|
||||
params: { limit }
|
||||
};
|
||||
},
|
||||
getNewsRowCount() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Cms/getNewsRowCount'
|
||||
};
|
||||
},
|
||||
getNewsExtra() {
|
||||
// TODO(chris): seems to be called from nowhere?
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Cms/getStudiengangInfoForNews'
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,95 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
saveCustomFilter(wsParams) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/filter/saveCustomFilter',
|
||||
params: {
|
||||
filterUniqueId: wsParams.filterUniqueId,
|
||||
filterType: wsParams.filterType,
|
||||
customFilterName: wsParams.customFilterName
|
||||
}
|
||||
};
|
||||
},
|
||||
removeCustomFilter(wsParams) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/filter/removeCustomFilter',
|
||||
params: {
|
||||
filterUniqueId: wsParams.filterUniqueId,
|
||||
filterType: wsParams.filterType,
|
||||
filterId: wsParams.filterId
|
||||
}
|
||||
};
|
||||
},
|
||||
applyFilterFields(wsParams) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/filter/applyFilterFields',
|
||||
params: {
|
||||
filterUniqueId: wsParams.filterUniqueId,
|
||||
filterType: wsParams.filterType,
|
||||
filterFields: wsParams.filterFields
|
||||
}
|
||||
};
|
||||
},
|
||||
addFilterField(wsParams) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/filter/addFilterField',
|
||||
params: {
|
||||
filterUniqueId: wsParams.filterUniqueId,
|
||||
filterType: wsParams.filterType,
|
||||
filterField: wsParams.filterField
|
||||
}
|
||||
};
|
||||
},
|
||||
removeFilterField(wsParams) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/filter/removeFilterField',
|
||||
params: {
|
||||
filterUniqueId: wsParams.filterUniqueId,
|
||||
filterType: wsParams.filterType,
|
||||
filterField: wsParams.filterField
|
||||
}
|
||||
};
|
||||
},
|
||||
getFilterById(wsParams) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/filter/getFilter',
|
||||
params: {
|
||||
filterUniqueId: wsParams.filterUniqueId,
|
||||
filterType: wsParams.filterType,
|
||||
filterId: wsParams.filterId
|
||||
}
|
||||
};
|
||||
},
|
||||
getFilter(wsParams) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/filter/getFilter',
|
||||
params: {
|
||||
filterUniqueId: wsParams.filterUniqueId,
|
||||
filterType: wsParams.filterType
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,39 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getStudentenMail(lehreinheit_id) {
|
||||
// TODO(chris): seems to be called from nowhere?
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Lehre/lvStudentenMail',
|
||||
params: { lehreinheit_id }
|
||||
};
|
||||
},
|
||||
getLvInfo(studiensemester_kurzbz, lehrveranstaltung_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: `/api/frontend/v1/Lehre/LV/${studiensemester_kurzbz}/${lehrveranstaltung_id}`
|
||||
};
|
||||
},
|
||||
getStudentPruefungen(lehrveranstaltung_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: `/api/frontend/v1/Lehre/Pruefungen/${lehrveranstaltung_id}`
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getHeader(navigation_page) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/navigation/header',
|
||||
params: { navigation_page }
|
||||
};
|
||||
},
|
||||
getMenu(navigation_page) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/navigation/menu',
|
||||
params: { navigation_page }
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,22 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import person from "./notiz/person.js";
|
||||
|
||||
export default {
|
||||
person
|
||||
};
|
||||
@@ -0,0 +1,87 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getNotizen(id, type) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/notiz/notizPerson/getNotizen/' + id + '/' + type
|
||||
};
|
||||
},
|
||||
getUid() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/notiz/notizPerson/getUid/'
|
||||
};
|
||||
},
|
||||
addNewNotiz(id, params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/notiz/notizPerson/addNewNotiz/' + id,
|
||||
params
|
||||
};
|
||||
},
|
||||
loadNotiz(notiz_id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/notiz/notizPerson/loadNotiz/',
|
||||
params: {
|
||||
notiz_id
|
||||
}
|
||||
};
|
||||
},
|
||||
loadDokumente(notiz_id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/notiz/notizPerson/loadDokumente/',
|
||||
params: {
|
||||
notiz_id
|
||||
}
|
||||
};
|
||||
},
|
||||
deleteNotiz(notiz_id, type_id, id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/notiz/notizPerson/deleteNotiz/',
|
||||
params: {
|
||||
notiz_id,
|
||||
type_id,
|
||||
id
|
||||
}
|
||||
};
|
||||
},
|
||||
updateNotiz(notiz_id, params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/notiz/notizPerson/updateNotiz/' + notiz_id,
|
||||
params
|
||||
};
|
||||
},
|
||||
getMitarbeiter(event) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/notiz/notizPerson/getMitarbeiter/' + event
|
||||
};
|
||||
},
|
||||
isBerechtigt(id, type_id) {
|
||||
// TODO(chris): seems to be called from nowhere?
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/notiz/notizPerson/isBerechtigt/'
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getContentID(ort_kurbz) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Ort/ContentID',
|
||||
params: { ort_kurzbz: ort_kurbz }
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,45 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
loadCategory(category) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/phrasen/loadModule/' + category
|
||||
};
|
||||
},
|
||||
setLanguage(categories,language) {
|
||||
const params = {categories, language}
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/phrasen/setLanguage',
|
||||
params
|
||||
};
|
||||
},
|
||||
getLanguage() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/phrasen/getLanguage'
|
||||
};
|
||||
},
|
||||
getActiveDbLanguages() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/phrasen/getAllLanguages'
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,73 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getView(uid) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: `/api/frontend/v1/Profil/getView/${uid}`
|
||||
};
|
||||
},
|
||||
fotoSperre(value) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: `/api/frontend/v1/Profil/fotoSperre/${value}`
|
||||
};
|
||||
|
||||
},
|
||||
isStudent(uid) {
|
||||
// TODO(chris): seems to be called from nowhere?
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Profil/isStudent',
|
||||
params: { uid }
|
||||
};
|
||||
},
|
||||
isMitarbeiter(uid) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: `/api/frontend/v1/Profil/isMitarbeiter/${uid}`
|
||||
};
|
||||
},
|
||||
getZustellAdresse() {
|
||||
// TODO(chris): seems to be called from nowhere?
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Profil/getZustellAdresse'
|
||||
};
|
||||
},
|
||||
getZustellKontakt() {
|
||||
// TODO(chris): seems to be called from nowhere?
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Profil/getZustellKontakt'
|
||||
};
|
||||
},
|
||||
getGemeinden(nation, zip) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: `/api/frontend/v1/Profil/getGemeinden/${nation}/${zip}`
|
||||
};
|
||||
|
||||
},
|
||||
getAllNationen() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Profil/getAllNationen'
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,110 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
//! API calls for profil update requests
|
||||
getStatus() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/ProfilUpdate/getStatus'
|
||||
};
|
||||
},
|
||||
getTopic() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/ProfilUpdate/getTopic'
|
||||
};
|
||||
},
|
||||
acceptProfilRequest({profil_update_id, uid, status_message, topic, requested_change}) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/ProfilUpdate/acceptProfilRequest',
|
||||
params: {
|
||||
profil_update_id,
|
||||
uid,
|
||||
status_message,
|
||||
topic,
|
||||
requested_change
|
||||
}
|
||||
};
|
||||
},
|
||||
denyProfilRequest({profil_update_id, uid, topic, status_message}) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/ProfilUpdate/denyProfilRequest',
|
||||
params: {
|
||||
profil_update_id,
|
||||
uid,
|
||||
topic,
|
||||
status_message
|
||||
}
|
||||
};
|
||||
},
|
||||
insertFile(dms, replace = null) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: `/api/frontend/v1/ProfilUpdate/insertFile/${replace}`,
|
||||
params: dms
|
||||
};
|
||||
},
|
||||
getProfilRequestFiles(requestID) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: `/api/frontend/v1/ProfilUpdate/getProfilRequestFiles/${requestID}`
|
||||
};
|
||||
},
|
||||
selectProfilRequest(uid = null, id = null) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/ProfilUpdate/selectProfilRequest',
|
||||
params: {
|
||||
...(uid ? { uid } : {}),
|
||||
...(id ? { id } : {})
|
||||
}
|
||||
};
|
||||
},
|
||||
insertProfilRequest(topic, payload, fileID = null) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/ProfilUpdate/insertProfilRequest',
|
||||
params: {
|
||||
topic,
|
||||
payload,
|
||||
...(fileID ? { fileID } : {})
|
||||
}
|
||||
};
|
||||
},
|
||||
updateProfilRequest(topic, payload, ID, fileID = null) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/ProfilUpdate/updateProfilRequest',
|
||||
params: {
|
||||
topic,
|
||||
payload,
|
||||
ID,
|
||||
...(fileID ? { fileID } : {})
|
||||
}
|
||||
};
|
||||
},
|
||||
deleteProfilRequest(requestID) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/ProfilUpdate/deleteProfilRequest',
|
||||
params: { requestID }
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
search(params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/searchbar/search',
|
||||
params
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
studiengangInformation() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Studgang/getStudiengangInfo'
|
||||
};
|
||||
},
|
||||
getStudiengangByKz(studiengang_kz) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/organisation/StudiengangEP/getStudiengangByKz',
|
||||
params: { studiengang_kz }
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,28 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import abmeldung from "./studstatus/abmeldung.js";
|
||||
import unterbrechung from "./studstatus/unterbrechung.js";
|
||||
import wiederholung from "./studstatus/wiederholung.js";
|
||||
import leitung from "./studstatus/leitung.js";
|
||||
|
||||
export default {
|
||||
abmeldung,
|
||||
unterbrechung,
|
||||
wiederholung,
|
||||
leitung
|
||||
};
|
||||
@@ -0,0 +1,45 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getDetails(antrag_id, prestudent_id) {
|
||||
const url = '/api/frontend/v1/studstatus/abmeldung/'
|
||||
+ (antrag_id !== undefined ? 'getDetailsForAntrag/' + antrag_id : 'getDetailsForNewAntrag/' + prestudent_id);
|
||||
return {
|
||||
method: 'get',
|
||||
url
|
||||
};
|
||||
},
|
||||
create(studiensemester, prestudent_id, grund) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/studstatus/abmeldung/createAntrag',
|
||||
params: {
|
||||
studiensemester,
|
||||
prestudent_id,
|
||||
grund
|
||||
}
|
||||
};
|
||||
},
|
||||
cancel(antrag_id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/studstatus/abmeldung/cancelAntrag',
|
||||
params: { antrag_id }
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,100 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getStgs() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/studstatus/leitung/getActiveStgs'
|
||||
};
|
||||
},
|
||||
getAntraege(url, config, params) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/studstatus/leitung/getAntraege/' + url
|
||||
};
|
||||
},
|
||||
getHistory(antrag_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/studstatus/leitung/getHistory/' + antrag_id
|
||||
};
|
||||
},
|
||||
getPrestudents(query, signal) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/studstatus/leitung/getPrestudents',
|
||||
params: { query }
|
||||
};
|
||||
},
|
||||
approve(antrag) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/studstatus/leitung/approveAntrag',
|
||||
params: antrag
|
||||
};
|
||||
},
|
||||
reject(antrag) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/studstatus/leitung/rejectAntrag',
|
||||
params: antrag
|
||||
};
|
||||
},
|
||||
reopen(antrag) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/studstatus/leitung/reopenAntrag',
|
||||
params: antrag
|
||||
};
|
||||
},
|
||||
pause(antrag) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/studstatus/leitung/pauseAntrag',
|
||||
params: antrag
|
||||
};
|
||||
},
|
||||
unpause(antrag) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/studstatus/leitung/unpauseAntrag',
|
||||
params: antrag
|
||||
};
|
||||
},
|
||||
object(antrag) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/studstatus/leitung/objectAntrag',
|
||||
params: antrag
|
||||
};
|
||||
},
|
||||
approveObjection(antrag) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/studstatus/leitung/approveObjection',
|
||||
params: antrag
|
||||
};
|
||||
},
|
||||
denyObjection(antrag) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/studstatus/leitung/denyObjection',
|
||||
params: antrag
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,49 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getDetails(antrag_id, prestudent_id) {
|
||||
const url = '/api/frontend/v1/studstatus/unterbrechung/'
|
||||
+ (antrag_id !== undefined ? 'getDetailsForAntrag/' + antrag_id : 'getDetailsForNewAntrag/' + prestudent_id);
|
||||
return {
|
||||
method: 'get',
|
||||
url
|
||||
};
|
||||
},
|
||||
create(studiensemester, prestudent_id, grund, datum_wiedereinstieg, attachment) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/studstatus/unterbrechung/createAntrag',
|
||||
params: {
|
||||
studiensemester,
|
||||
prestudent_id,
|
||||
grund,
|
||||
datum_wiedereinstieg,
|
||||
attachment
|
||||
}
|
||||
};
|
||||
},
|
||||
cancel(antrag_id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/studstatus/unterbrechung/cancelAntrag',
|
||||
params: {
|
||||
antrag_id
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,63 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getDetails(prestudent_id) {
|
||||
const url = '/api/frontend/v1/studstatus/wiederholung/getDetailsForNewAntrag/' + prestudent_id;
|
||||
return {
|
||||
method: 'get',
|
||||
url
|
||||
};
|
||||
},
|
||||
getLvs(antrag_id) {
|
||||
const url = '/api/frontend/v1/studstatus/wiederholung/getLvs/' + antrag_id;
|
||||
return {
|
||||
method: 'get',
|
||||
url
|
||||
};
|
||||
},
|
||||
create(prestudent_id, studiensemester) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/studstatus/wiederholung/createAntrag',
|
||||
params: {
|
||||
prestudent_id,
|
||||
studiensemester
|
||||
}
|
||||
};
|
||||
},
|
||||
cancel(prestudent_id, studiensemester) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/studstatus/wiederholung/cancelAntrag',
|
||||
params: {
|
||||
prestudent_id,
|
||||
studiensemester
|
||||
}
|
||||
};
|
||||
},
|
||||
saveLvs(forbiddenLvs, mandatoryLvs) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/studstatus/wiederholung/saveLvs',
|
||||
params: {
|
||||
forbiddenLvs,
|
||||
mandatoryLvs
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,66 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getRoomInfo(ort_kurzbz, start_date, end_date) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Stundenplan/getRoomplan',
|
||||
params: { ort_kurzbz, start_date, end_date }
|
||||
};
|
||||
},
|
||||
getStundenplan(start_date, end_date, lv_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Stundenplan/getStundenplan',
|
||||
params: { start_date, end_date, lv_id }
|
||||
};
|
||||
},
|
||||
getStunden() {
|
||||
// TODO(chris): seems to be called from nowhere?
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Stundenplan/Stunden'
|
||||
};
|
||||
},
|
||||
getOrtReservierungen(ort_kurzbz, start_date, end_date) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: `/api/frontend/v1/Stundenplan/Reservierungen/${ort_kurzbz}`,
|
||||
params: { start_date, end_date }
|
||||
};
|
||||
},
|
||||
getStundenplanReservierungen(start_date, end_date) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Stundenplan/Reservierungen',
|
||||
params: { start_date, end_date }
|
||||
};
|
||||
},
|
||||
getLehreinheitStudiensemester(lehreinheit_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: `/api/frontend/v1/Stundenplan/getLehreinheitStudiensemester/${lehreinheit_id}`
|
||||
};
|
||||
},
|
||||
studiensemesterDateInterval(date) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: `/api/frontend/v1/Stundenplan/studiensemesterDateInterval/${date}`
|
||||
};
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,48 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import app from './stv/app.js';
|
||||
import lists from './stv/lists.js';
|
||||
import verband from './stv/verband.js';
|
||||
import students from './stv/students.js';
|
||||
import filter from './stv/filter.js';
|
||||
import konto from './stv/konto.js';
|
||||
import kontakt from './stv/kontakt.js';
|
||||
import prestudent from './stv/prestudent.js';
|
||||
import status from './stv/status.js';
|
||||
import details from './stv/details.js';
|
||||
import exam from './stv/exam.js';
|
||||
import abschlusspruefung from './stv/abschlusspruefung.js';
|
||||
import grades from './stv/grades.js';
|
||||
import mobility from './stv/mobility.js';
|
||||
|
||||
export default {
|
||||
app,
|
||||
lists,
|
||||
verband,
|
||||
students,
|
||||
filter,
|
||||
konto,
|
||||
kontakt,
|
||||
prestudent,
|
||||
status,
|
||||
details,
|
||||
exam,
|
||||
abschlusspruefung,
|
||||
grades,
|
||||
mobility
|
||||
};
|
||||
@@ -0,0 +1,111 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getAbschlusspruefung(uid) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/abschlusspruefung/getAbschlusspruefung/' + uid
|
||||
};
|
||||
},
|
||||
addNewAbschlusspruefung(params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/abschlusspruefung/insertAbschlusspruefung/',
|
||||
params
|
||||
};
|
||||
},
|
||||
loadAbschlusspruefung(id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/abschlusspruefung/loadAbschlusspruefung/',
|
||||
params: { id }
|
||||
};
|
||||
},
|
||||
updateAbschlusspruefung(params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/abschlusspruefung/updateAbschlusspruefung/',
|
||||
params
|
||||
};
|
||||
},
|
||||
deleteAbschlusspruefung(id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/abschlusspruefung/deleteAbschlusspruefung/',
|
||||
params: { id }
|
||||
};
|
||||
},
|
||||
getTypenAbschlusspruefung() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/abschlusspruefung/getTypenAbschlusspruefung/'
|
||||
};
|
||||
},
|
||||
getTypenAntritte() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/abschlusspruefung/getTypenAntritte/'
|
||||
};
|
||||
},
|
||||
getBeurteilungen() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/abschlusspruefung/getBeurteilungen/'
|
||||
};
|
||||
},
|
||||
getAkadGrade(studiengang_kz) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/abschlusspruefung/getAkadGrade/',
|
||||
params: { studiengang_kz }
|
||||
};
|
||||
},
|
||||
getTypStudiengang(studiengang_kz) {
|
||||
// TODO(chris): seems to be called from nowhere?
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/abschlusspruefung/getTypStudiengang/',
|
||||
params: { studiengang_kz }
|
||||
};
|
||||
},
|
||||
getMitarbeiter(searchString) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/abschlusspruefung/getMitarbeiter/' + searchString
|
||||
};
|
||||
},
|
||||
getPruefer(searchString) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/abschlusspruefung/getPruefer/' + searchString
|
||||
};
|
||||
},
|
||||
getNoten() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/abschlusspruefung/getNoten/'
|
||||
};
|
||||
},
|
||||
checkForExistingExams(uids) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/abschlusspruefung/checkForExistingExams/',
|
||||
params: { uid }
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
configStudent() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/config/student'
|
||||
};
|
||||
},
|
||||
configStudents() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/config/students'
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
get(prestudent_id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/student/get/' + prestudent_id
|
||||
};
|
||||
},
|
||||
save(prestudent_id, params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/student/save/' + prestudent_id,
|
||||
params
|
||||
};
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,101 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getPruefungen(uid) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/pruefung/getPruefungen/' + uid
|
||||
};
|
||||
},
|
||||
loadPruefung(pruefung_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/pruefung/loadPruefung/' + pruefung_id
|
||||
};
|
||||
},
|
||||
getTypenPruefungen() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/pruefung/getTypenPruefungen'
|
||||
};
|
||||
},
|
||||
getAllLehreinheiten(params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/pruefung/getAllLehreinheiten/',
|
||||
params
|
||||
};
|
||||
},
|
||||
getLvsByStudent(uid) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/pruefung/getLvsByStudent/' + uid
|
||||
};
|
||||
},
|
||||
getLvsandLesByStudent(uid, semester) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/pruefung/getLvsandLesByStudent/' + uid + '/' + semester
|
||||
};
|
||||
},
|
||||
getLvsAndMas(uid) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/pruefung/getLvsAndMas/' + uid
|
||||
};
|
||||
},
|
||||
getMitarbeiterLv(id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/pruefung/getMitarbeiterLv/' + id
|
||||
};
|
||||
},
|
||||
getNoten() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/pruefung/getNoten'
|
||||
};
|
||||
},
|
||||
checkZeugnisnoteLv(params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/pruefung/checkZeugnisnoteLv/',
|
||||
params
|
||||
};
|
||||
},
|
||||
addPruefung(params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/pruefung/insertPruefung/',
|
||||
params
|
||||
};
|
||||
},
|
||||
updatePruefung(id, params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/pruefung/updatePruefung/' + id,
|
||||
params
|
||||
};
|
||||
},
|
||||
deletePruefung(id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/pruefung/deletePruefung/' + id
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getStg() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/filter/getStg'
|
||||
};
|
||||
},
|
||||
setStg(studiengang_kz) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/filter/setStg',
|
||||
params: { studiengang_kz }
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,96 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
list() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/grades/list'
|
||||
};
|
||||
},
|
||||
getCertificate(prestudent_id, all) {
|
||||
all = all ? '/all' : '';
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/grades/getCertificate/' + prestudent_id + all
|
||||
};
|
||||
},
|
||||
getTeacherProposal(prestudent_id, all) {
|
||||
all = all ? '/all' : '';
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/grades/getTeacherProposal/' + prestudent_id + all
|
||||
};
|
||||
},
|
||||
getRepeaterGrades(prestudent_id, all) {
|
||||
all = all ? '/all' : '';
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/grades/getRepeaterGrades/' + prestudent_id + all
|
||||
};
|
||||
},
|
||||
updateCertificate({lehrveranstaltung_id, student_uid, studiensemester_kurzbz, note, lehrveranstaltung_bezeichnung}) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/grades/updateCertificate',
|
||||
params: {
|
||||
lehrveranstaltung_id,
|
||||
student_uid,
|
||||
studiensemester_kurzbz,
|
||||
note
|
||||
}
|
||||
};
|
||||
},
|
||||
deleteCertificate({lehrveranstaltung_id, student_uid, studiensemester_kurzbz, lehrveranstaltung_bezeichnung}) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/grades/deleteCertificate',
|
||||
params: {
|
||||
lehrveranstaltung_id,
|
||||
student_uid,
|
||||
studiensemester_kurzbz
|
||||
}
|
||||
};
|
||||
},
|
||||
copyTeacherProposalToCertificate({lehrveranstaltung_id, student_uid, studiensemester_kurzbz, lehrveranstaltung_bezeichnung}) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/grades/copyTeacherProposalToCertificate',
|
||||
params: {
|
||||
lehrveranstaltung_id,
|
||||
student_uid,
|
||||
studiensemester_kurzbz
|
||||
}
|
||||
};
|
||||
},
|
||||
copyRepeaterGradeToCertificate({studierendenantrag_lehrveranstaltung_id, lv_bezeichnung}) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/grades/copyRepeaterGradeToCertificate',
|
||||
params: {
|
||||
studierendenantrag_lehrveranstaltung_id
|
||||
}
|
||||
};
|
||||
},
|
||||
getGradeFromPoints(points, lehrveranstaltung_id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/grades/getGradeFromPoints',
|
||||
params: { points, lehrveranstaltung_id }
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,28 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import address from './kontakt/address.js';
|
||||
import bankaccount from './kontakt/bankaccount.js';
|
||||
import contact from './kontakt/contact.js';
|
||||
import company from './kontakt/company.js';
|
||||
|
||||
export default {
|
||||
address,
|
||||
bankaccount,
|
||||
contact,
|
||||
company
|
||||
};
|
||||
@@ -0,0 +1,71 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
get(uid) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/kontakt/getAdressen/' + uid
|
||||
};
|
||||
},
|
||||
add(uid, params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/kontakt/addNewAddress/' + uid,
|
||||
params
|
||||
};
|
||||
},
|
||||
load(address_id){
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/kontakt/loadAddress/',
|
||||
params: { address_id }
|
||||
};
|
||||
},
|
||||
update(address_id, params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/kontakt/updateAddress/' + address_id,
|
||||
params
|
||||
};
|
||||
},
|
||||
delete(address_id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/kontakt/deleteAddress/',
|
||||
params: { address_id }
|
||||
};
|
||||
},
|
||||
getTypes() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/kontakt/getAdressentypen/'
|
||||
};
|
||||
},
|
||||
getPlaces(plz) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/address/getPlaces/' + plz
|
||||
};
|
||||
},
|
||||
getNations() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/address/getNations/'
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,53 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
get(uid) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/kontakt/getBankverbindung/' + uid
|
||||
};
|
||||
},
|
||||
add(uid, params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/kontakt/addNewBankverbindung/' + uid,
|
||||
params
|
||||
};
|
||||
},
|
||||
load(bankverbindung_id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/kontakt/loadBankverbindung/',
|
||||
params: { bankverbindung_id }
|
||||
};
|
||||
},
|
||||
update(bankverbindung_id, params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/kontakt/updateBankverbindung/' + bankverbindung_id,
|
||||
params
|
||||
};
|
||||
},
|
||||
delete(bankverbindung_id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/kontakt/deleteBankverbindung/',
|
||||
params: { bankverbindung_id }
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
get(searchString) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/kontakt/getFirmen/' + searchString
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,65 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
get(uid) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/kontakt/getKontakte/' + uid
|
||||
};
|
||||
},
|
||||
add(uid, params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/kontakt/addNewContact/' + uid,
|
||||
params
|
||||
};
|
||||
},
|
||||
load(kontakt_id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/kontakt/loadContact/',
|
||||
params: { kontakt_id }
|
||||
};
|
||||
},
|
||||
update(kontakt_id, params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/kontakt/updateContact/' + kontakt_id,
|
||||
params
|
||||
};
|
||||
},
|
||||
delete(kontakt_id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/kontakt/deleteContact/',
|
||||
params: { kontakt_id }
|
||||
};
|
||||
},
|
||||
getTypes() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/kontakt/getKontakttypen/'
|
||||
};
|
||||
},
|
||||
getStandorteByFirma(searchString) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/kontakt/getStandorteByFirma/' + searchString
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,74 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
get(person_id, only_open, studiengang_kz) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/konto/get',
|
||||
params: {
|
||||
person_id,
|
||||
only_open,
|
||||
studiengang_kz
|
||||
}
|
||||
};
|
||||
},
|
||||
checkDoubles(params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/konto/checkDoubles',
|
||||
params,
|
||||
config: {
|
||||
confirmErrorHandler: error => true
|
||||
}
|
||||
};
|
||||
},
|
||||
insert(params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/konto/insert',
|
||||
params
|
||||
};
|
||||
},
|
||||
counter(params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/konto/counter',
|
||||
params
|
||||
};
|
||||
},
|
||||
edit(params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/konto/update',
|
||||
params
|
||||
};
|
||||
},
|
||||
delete(buchungsnr) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/konto/delete',
|
||||
params: { buchungsnr }
|
||||
};
|
||||
},
|
||||
getBuchungstypen() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/konto/getBuchungstypen'
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,55 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getSprachen() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/lists/getSprachen'
|
||||
};
|
||||
},
|
||||
getGeschlechter() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/lists/getGeschlechter'
|
||||
};
|
||||
},
|
||||
getAusbildungen() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/lists/getAusbildungen'
|
||||
};
|
||||
},
|
||||
getStgs() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/lists/getStgs'
|
||||
};
|
||||
},
|
||||
getOrgforms() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/lists/getOrgforms'
|
||||
};
|
||||
},
|
||||
getStudiensemester() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/lists/getStudiensemester'
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,128 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getMobilitaeten(uid) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/mobility/getMobilitaeten/' + uid
|
||||
};
|
||||
},
|
||||
getProgramsMobility() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/mobility/getProgramsMobility/'
|
||||
};
|
||||
},
|
||||
addNewMobility(params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/mobility/insertMobility/',
|
||||
params
|
||||
};
|
||||
},
|
||||
loadMobility(bisio_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/mobility/loadMobility/' + bisio_id
|
||||
};
|
||||
},
|
||||
updateMobility(params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/mobility/updateMobility/',
|
||||
params
|
||||
};
|
||||
},
|
||||
deleteMobility(bisio_id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/mobility/deleteMobility/' + bisio_id
|
||||
};
|
||||
},
|
||||
getLVList(studiengang_kz) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/mobility/getLVList/' + studiengang_kz
|
||||
};
|
||||
},
|
||||
getAllLehreinheiten(params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/mobility/getAllLehreinheiten/',
|
||||
params
|
||||
};
|
||||
},
|
||||
getLvsandLesByStudent(uid) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/mobility/getLvsandLesByStudent/' + uid
|
||||
};
|
||||
},
|
||||
getPurposes(bisio_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/mobility/getPurposes/' + bisio_id
|
||||
};
|
||||
},
|
||||
getSupports(bisio_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/mobility/getSupports/' + bisio_id
|
||||
};
|
||||
},
|
||||
getListPurposes() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/mobility/getListPurposes/'
|
||||
};
|
||||
},
|
||||
getListSupports() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/mobility/getListSupports/'
|
||||
};
|
||||
},
|
||||
deleteMobilityPurpose(params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/mobility/deleteMobilityPurpose/' + params.bisio_id,
|
||||
params
|
||||
};
|
||||
},
|
||||
addMobilityPurpose(params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/mobility/addMobilityPurpose/' + params.bisio_id,
|
||||
params
|
||||
};
|
||||
},
|
||||
deleteMobilitySupport(params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/mobility/deleteMobilitySupport/' + params.bisio_id,
|
||||
params
|
||||
};
|
||||
},
|
||||
addMobilitySupport(params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/mobility/addMobilitySupport/' + params.bisio_id,
|
||||
params
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,150 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
//------------- Prestudent.js------------------------------------------------------
|
||||
get(prestudent_id) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/prestudent/get/' + prestudent_id
|
||||
};
|
||||
},
|
||||
updatePrestudent(prestudent_id, params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/prestudent/updatePrestudent/' + prestudent_id,
|
||||
params
|
||||
};
|
||||
},
|
||||
getBezeichnungZGV() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/prestudent/getBezeichnungZGV/'
|
||||
};
|
||||
},
|
||||
getBezeichnungMZgv() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/prestudent/getBezeichnungMZgv/'
|
||||
};
|
||||
},
|
||||
getBezeichnungDZgv() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/prestudent/getBezeichnungDZgv/'
|
||||
};
|
||||
},
|
||||
getStgs() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/lists/getStgs/'
|
||||
};
|
||||
},
|
||||
getAusbildung() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/prestudent/getAusbildung/'
|
||||
};
|
||||
},
|
||||
getAufmerksamdurch() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/prestudent/getAufmerksamdurch/'
|
||||
};
|
||||
},
|
||||
getBerufstaetigkeit() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/prestudent/getBerufstaetigkeit/'
|
||||
};
|
||||
},
|
||||
getTypenStg() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/prestudent/getTypenStg/'
|
||||
};
|
||||
},
|
||||
getBisstandort() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/prestudent/getBisstandort/'
|
||||
};
|
||||
},
|
||||
//------------- MultiStatus.js------------------------------------------------------
|
||||
getHistoryPrestudent(prestudent_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/status/getHistoryPrestudent/' + prestudent_id
|
||||
};
|
||||
},
|
||||
getMaxSem(studiengang_kzs) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/status/getMaxSemester/',
|
||||
params: { studiengang_kzs }
|
||||
};
|
||||
},
|
||||
advanceStatus({prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester}) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/status/advanceStatus/'
|
||||
+ prestudent_id + '/'
|
||||
+ status_kurzbz + '/'
|
||||
+ studiensemester_kurzbz + '/'
|
||||
+ ausbildungssemester
|
||||
};
|
||||
},
|
||||
confirmStatus({prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester}) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/status/confirmStatus/'
|
||||
+ prestudent_id + '/'
|
||||
+ status_kurzbz + '/'
|
||||
+ studiensemester_kurzbz + '/'
|
||||
+ ausbildungssemester
|
||||
};
|
||||
},
|
||||
isLastStatus(id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/status/isLastStatus/' + id
|
||||
};
|
||||
},
|
||||
deleteStatus({prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester}) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/status/deleteStatus/'
|
||||
+ prestudent_id + '/'
|
||||
+ status_kurzbz + '/'
|
||||
+ studiensemester_kurzbz + '/'
|
||||
+ ausbildungssemester
|
||||
};
|
||||
},
|
||||
getLastBismeldestichtag() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/status/getLastBismeldestichtag/'
|
||||
};
|
||||
},
|
||||
//------------- History.js------------------------------------------------------
|
||||
getHistoryPrestudents(person_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/prestudent/getHistoryPrestudents/' + person_id
|
||||
};
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,98 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
//------------- Modal.js------------------------------------------------------
|
||||
insertStatus(id, params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/status/insertStatus/' + id,
|
||||
params
|
||||
};
|
||||
},
|
||||
loadStatus({prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester}) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/status/loadStatus/'
|
||||
+ prestudent_id + '/'
|
||||
+ status_kurzbz + '/'
|
||||
+ studiensemester_kurzbz + '/'
|
||||
+ ausbildungssemester
|
||||
};
|
||||
},
|
||||
updateStatus({
|
||||
prestudent_id,
|
||||
status_kurzbz,
|
||||
studiensemester_kurzbz,
|
||||
ausbildungssemester
|
||||
}, params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/status/updateStatus/'
|
||||
+ prestudent_id + '/'
|
||||
+ status_kurzbz + '/'
|
||||
+ studiensemester_kurzbz + '/'
|
||||
+ ausbildungssemester,
|
||||
params
|
||||
};
|
||||
},
|
||||
getStudienplaene(prestudent_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/prestudent/getStudienplaene/' + prestudent_id
|
||||
};
|
||||
},
|
||||
getStudiengang(prestudent_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/prestudent/getStudiengang/' + prestudent_id
|
||||
};
|
||||
},
|
||||
getStatusgruende() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/status/getStatusgruende/'
|
||||
};
|
||||
},
|
||||
getStati() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/lists/getStati/'
|
||||
};
|
||||
},
|
||||
//------------- Dropdown.js------------------------------------------------------
|
||||
addStudent(id, params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/status/addStudent/' + id,
|
||||
params
|
||||
};
|
||||
},
|
||||
changeStatus(id, params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/status/changeStatus/' + id,
|
||||
params
|
||||
};
|
||||
},
|
||||
getStatusarray() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/status/getStatusarray/'
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,50 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
uid(uid) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/students/uid/' + uid
|
||||
};
|
||||
},
|
||||
prestudent(prestudent_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/students/prestudent/' + prestudent_id
|
||||
};
|
||||
},
|
||||
person(person_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/students/person/' + person_id
|
||||
};
|
||||
},
|
||||
verband(relative_path) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/students/' + relative_path
|
||||
};
|
||||
},
|
||||
check(params) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/student/check',
|
||||
params
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,43 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
get(path) {
|
||||
let url = 'api/frontend/v1/stv/verband';
|
||||
if (path)
|
||||
url += '/' + path;
|
||||
return {
|
||||
method: 'get',
|
||||
url
|
||||
};
|
||||
},
|
||||
favorites: {
|
||||
get() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/stv/favorites'
|
||||
};
|
||||
},
|
||||
set(favorites) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: 'api/frontend/v1/stv/favorites/set',
|
||||
params: { favorites }
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,37 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
open() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Ampeln/open'
|
||||
};
|
||||
},
|
||||
all() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Ampeln/all'
|
||||
};
|
||||
},
|
||||
confirm(ampel_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: `/api/frontend/v1/Ampeln/confirm/${ampel_id}`
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,45 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
getBookmarks() {
|
||||
return {
|
||||
method: 'get',
|
||||
url: '/api/frontend/v1/Bookmark/getBookmarks'
|
||||
};
|
||||
},
|
||||
delete(bookmark_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: `/api/frontend/v1/Bookmark/delete/${bookmark_id}`
|
||||
};
|
||||
},
|
||||
update({ bookmark_id, url, title, tag=null }) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: `/api/frontend/v1/Bookmark/update/${bookmark_id}`,
|
||||
params: { url, title }
|
||||
};
|
||||
},
|
||||
insert({ url, title, tag }) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: `/api/frontend/v1/Bookmark/insert`,
|
||||
params: { url, title, tag }
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
/**
|
||||
* Copyright (C) 2025 fhcomplete.org
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export default {
|
||||
load({ ciModel, pk }) {
|
||||
return {
|
||||
method: 'post',
|
||||
url: '/api/frontend/v1/udf/load/' + ciModel,
|
||||
params: pk
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -23,7 +23,7 @@ import {CoreRESTClient} from '../../RESTClient.js';
|
||||
import {CoreFetchCmpt} from '../../components/Fetch.js';
|
||||
import {BismeldestichtagAPIs} from './API.js';
|
||||
|
||||
import Phrasen from '../../plugin/Phrasen.js';
|
||||
import PluginsPhrasen from '../../plugins/Phrasen.js';
|
||||
|
||||
const bismeldestichtagApp = Vue.createApp({
|
||||
data: function() {
|
||||
@@ -237,4 +237,4 @@ const bismeldestichtagApp = Vue.createApp({
|
||||
}
|
||||
});
|
||||
|
||||
bismeldestichtagApp.use(Phrasen).mount('#main');
|
||||
bismeldestichtagApp.use(PluginsPhrasen).mount('#main');
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
import FhcSearchbar from "../components/searchbar/searchbar.js";
|
||||
import CisMenu from "../components/Cis/Menu.js";
|
||||
import FhcApi from '../plugin/FhcApi.js';
|
||||
import Phrasen from '../plugin/Phrasen.js';
|
||||
import fhcapifactory from "./api/fhcapifactory.js";
|
||||
Vue.$fhcapi = fhcapifactory;
|
||||
import PluginsPhrasen from '../plugins/Phrasen.js';
|
||||
import ApiSearchbar from '../api/factory/searchbar.js';
|
||||
|
||||
const app = Vue.createApp({
|
||||
name: 'CisApp',
|
||||
@@ -113,16 +111,15 @@ const app = Vue.createApp({
|
||||
},
|
||||
methods: {
|
||||
searchfunction: function(searchsettings) {
|
||||
return Vue.$fhcapi.search.search(searchsettings);
|
||||
return this.$api.call(ApiSearchbar.search(searchsettings));
|
||||
}
|
||||
}
|
||||
});
|
||||
app.use(FhcApi);
|
||||
app.use(primevue.config.default, {
|
||||
zIndex: {
|
||||
overlay: 9000,
|
||||
tooltip: 8000
|
||||
}
|
||||
})
|
||||
app.use(Phrasen);
|
||||
app.use(PluginsPhrasen);
|
||||
app.mount('#cis-header');
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Phrasen from '../../plugin/Phrasen.js';
|
||||
import PluginsPhrasen from '../../plugins/Phrasen.js';
|
||||
import {setScrollbarWidth} from "../../helpers/CssVarCalcHelpers.js";
|
||||
|
||||
const app = Vue.createApp({
|
||||
@@ -89,5 +89,5 @@ const app = Vue.createApp({
|
||||
|
||||
setScrollbarWidth();
|
||||
|
||||
app.use(Phrasen);
|
||||
app.use(PluginsPhrasen);
|
||||
app.mount('#content');
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import ProfilUpdateView from "../../components/Cis/ProfilUpdate/ProfilUpdateView.js";
|
||||
import Phrasen from "../../plugin/Phrasen.js";
|
||||
import PluginsPhrasen from "../../plugins/Phrasen.js";
|
||||
|
||||
import ApiProfilUpdate from '../../api/factory/profilUpdate.js';
|
||||
|
||||
// TODO: sobald in verwendung den vue router pfad zu ProfilUpdateView definieren und diese app in component auslagern
|
||||
const app = Vue.createApp({
|
||||
@@ -23,7 +24,8 @@ const app = Vue.createApp({
|
||||
},
|
||||
methods: {},
|
||||
created() {
|
||||
this.$fhcApi.factory.profilUpdate.getStatus()
|
||||
this.$api
|
||||
.call(ApiProfilUpdate.getStatus())
|
||||
.then((response) => {
|
||||
this.profilUpdateStates = response.data;
|
||||
})
|
||||
@@ -32,4 +34,4 @@ const app = Vue.createApp({
|
||||
});
|
||||
},
|
||||
});
|
||||
app.use(Phrasen).mount("#content");
|
||||
app.use(PluginsPhrasen).mount("#content");
|
||||
@@ -1,7 +1,6 @@
|
||||
import {CoreNavigationCmpt} from '../../components/navigation/Navigation.js';
|
||||
import DashboardAdmin from '../../components/Dashboard/Admin.js';
|
||||
import FhcApi from '../../plugin/FhcApi.js';
|
||||
import Phrasen from '../../plugin/Phrasen.js';
|
||||
import PluginsPhrasen from '../../plugins/Phrasen.js';
|
||||
|
||||
const app = Vue.createApp({
|
||||
name: 'AdminApp',
|
||||
@@ -13,6 +12,5 @@ const app = Vue.createApp({
|
||||
DashboardAdmin
|
||||
}
|
||||
});
|
||||
app.use(FhcApi);
|
||||
app.use(Phrasen);
|
||||
app.use(PluginsPhrasen);
|
||||
app.mount('#main');
|
||||
@@ -1,6 +1,5 @@
|
||||
import FhcDashboard from '../../components/Dashboard/Dashboard.js';
|
||||
import FhcApi from '../../plugin/FhcApi.js';
|
||||
import Phrasen from '../../plugin/Phrasen.js';
|
||||
import PluginsPhrasen from '../../plugins/Phrasen.js';
|
||||
import contrast from '../../directives/contrast.js';
|
||||
import {setScrollbarWidth} from "../../helpers/CssVarCalcHelpers.js";
|
||||
import Stundenplan, {DEFAULT_MODE_STUNDENPLAN} from "../../components/Cis/Stundenplan/Stundenplan.js";
|
||||
@@ -259,13 +258,12 @@ const app = Vue.createApp({
|
||||
// kind of a bandaid for bad css on some pages to avoid horizontal scroll
|
||||
setScrollbarWidth();
|
||||
app.use(router);
|
||||
app.use(FhcApi);
|
||||
app.use(primevue.config.default, {
|
||||
zIndex: {
|
||||
overlay: 9000,
|
||||
tooltip: 8000
|
||||
}
|
||||
})
|
||||
app.use(Phrasen);
|
||||
app.use(PluginsPhrasen);
|
||||
app.directive('contrast', contrast);
|
||||
app.mount('#fhccontent');
|
||||
@@ -21,7 +21,7 @@ import {LogsViewerTabulatorEventHandlers} from './TabulatorSetup.js';
|
||||
import {CoreFilterCmpt} from '../../components/filter/Filter.js';
|
||||
import {CoreNavigationCmpt} from '../../components/navigation/Navigation.js';
|
||||
|
||||
import Phrasen from '../../plugin/Phrasen.js';
|
||||
import PluginsPhrasen from '../../plugins/Phrasen.js';
|
||||
|
||||
const logsViewerApp = Vue.createApp({
|
||||
data: function() {
|
||||
@@ -42,5 +42,5 @@ const logsViewerApp = Vue.createApp({
|
||||
}
|
||||
});
|
||||
|
||||
logsViewerApp.use(Phrasen).mount('#main');
|
||||
logsViewerApp.use(PluginsPhrasen).mount('#main');
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
import FhcStudentenverwaltung from "../components/Stv/Studentenverwaltung.js";
|
||||
import fhcapifactory from "./api/fhcapifactory.js";
|
||||
|
||||
import Phrasen from "../plugin/Phrasen.js";
|
||||
import PluginsPhrasen from "../plugins/Phrasen.js";
|
||||
|
||||
|
||||
const ciPath = FHC_JS_DATA_STORAGE_OBJECT.app_root.replace(/(https:|)(^|\/\/)(.*?\/)/g, '') + FHC_JS_DATA_STORAGE_OBJECT.ci_router;
|
||||
@@ -34,7 +34,9 @@ const router = VueRouter.createRouter({
|
||||
]
|
||||
});
|
||||
|
||||
const app = Vue.createApp();
|
||||
const app = Vue.createApp({
|
||||
name: 'StudentenverwaltungApp'
|
||||
});
|
||||
|
||||
app
|
||||
.use(router)
|
||||
@@ -43,5 +45,5 @@ app
|
||||
overlay: 1100
|
||||
}
|
||||
})
|
||||
.use(Phrasen)
|
||||
.use(PluginsPhrasen)
|
||||
.mount('#main');
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import StudierendenantragAntrag from "../../components/Studierendenantrag/Antrag.js";
|
||||
import StudierendenantragStatus from "../../components/Studierendenantrag/Status.js";
|
||||
import StudierendenantragInfoblock from "../../components/Studierendenantrag/Infoblock.js";
|
||||
import Phrasen from '../../plugin/Phrasen.js';
|
||||
import PluginsPhrasen from '../../plugins/Phrasen.js';
|
||||
|
||||
const app = Vue.createApp({
|
||||
name: 'AntragApp',
|
||||
@@ -21,5 +21,5 @@ const app = Vue.createApp({
|
||||
}
|
||||
});
|
||||
app
|
||||
.use(Phrasen)
|
||||
.use(PluginsPhrasen)
|
||||
.mount('#wrapper');
|
||||
@@ -1,5 +1,5 @@
|
||||
import StudierendenantragLeitung from '../../../components/Studierendenantrag/Leitung.js';
|
||||
import Phrasen from '../../../plugin/Phrasen.js';
|
||||
import PluginsPhrasen from '../../../plugins/Phrasen.js';
|
||||
|
||||
const app = Vue.createApp({
|
||||
name: 'LeitungApp',
|
||||
@@ -8,6 +8,6 @@ const app = Vue.createApp({
|
||||
}
|
||||
});
|
||||
app
|
||||
.use(Phrasen)
|
||||
.use(PluginsPhrasen)
|
||||
.use(primevue.config.default,{zIndex: {overlay: 9999}})
|
||||
.mount('#wrapper');
|
||||
@@ -1,5 +1,5 @@
|
||||
import LvZuweisung from '../../../components/Studierendenantrag/Lvzuweisung.js';
|
||||
import Phrasen from '../../../plugin/Phrasen.js';
|
||||
import PluginsPhrasen from '../../../plugins/Phrasen.js';
|
||||
|
||||
const app = Vue.createApp({
|
||||
name: 'LvzuweisungApp',
|
||||
@@ -13,5 +13,5 @@ const app = Vue.createApp({
|
||||
}
|
||||
});
|
||||
app
|
||||
.use(Phrasen)
|
||||
.use(PluginsPhrasen)
|
||||
.mount('#wrapper');
|
||||
@@ -1,5 +1,5 @@
|
||||
import LvPopup from '../../../components/Studierendenantrag/Leitung/LvPopup.js';
|
||||
import Phrasen from '../../../plugin/Phrasen.js';
|
||||
import PluginsPhrasen from '../../../plugins/Phrasen.js';
|
||||
|
||||
const app = Vue.createApp({
|
||||
name: 'StudentApp',
|
||||
@@ -8,5 +8,5 @@ const app = Vue.createApp({
|
||||
}
|
||||
});
|
||||
app
|
||||
.use(Phrasen)
|
||||
.use(PluginsPhrasen)
|
||||
.mount('#wrapper');
|
||||
@@ -17,9 +17,7 @@
|
||||
|
||||
import LvTemplateUebersicht from '../../../lehre/lvplanung/LvTemplateUebersicht.js';
|
||||
import {CoreNavigationCmpt} from '../../../components/navigation/Navigation.js';
|
||||
import FhcAlert from '../../../plugin/FhcAlert.js';
|
||||
import FhcApi from "../../../plugin/FhcApi.js";
|
||||
import Phrasen from "../../../plugin/Phrasen.js";
|
||||
import PluginsPhrasen from "../../../plugins/Phrasen.js";
|
||||
|
||||
|
||||
const lvTemplatesApp = Vue.createApp({
|
||||
@@ -32,7 +30,5 @@ const lvTemplatesApp = Vue.createApp({
|
||||
|
||||
lvTemplatesApp
|
||||
.use(primevue.config.default,{zIndex: {overlay: 9999}})
|
||||
.use(FhcAlert)
|
||||
.use(FhcApi)
|
||||
.use(Phrasen)
|
||||
.use(PluginsPhrasen)
|
||||
.mount('#main')
|
||||
@@ -35,13 +35,9 @@ export default {
|
||||
return {
|
||||
tabulatorOptions: {
|
||||
ajaxURL: 'dummy',
|
||||
ajaxRequestFunc: this.endpoint.getAllBetriebsmittel,
|
||||
ajaxParams: () => {
|
||||
return {
|
||||
type: this.typeId,
|
||||
id: this.id
|
||||
};
|
||||
},
|
||||
ajaxRequestFunc: () => this.$api.call(
|
||||
this.endpoint.getAllBetriebsmittel(this.typeId, this.id)
|
||||
),
|
||||
ajaxResponse: (url, params, response) => response.data,
|
||||
columns: [
|
||||
{title: "Nummer", field: "nummer", width: 150},
|
||||
@@ -221,7 +217,9 @@ export default {
|
||||
.then(result => result
|
||||
? betriebsmittelperson_id
|
||||
: Promise.reject({handled: true}))
|
||||
.then(this.endpoint.deleteBetriebsmittel)
|
||||
.then(betriebsmittelperson_id => this.$api.call(
|
||||
this.endpoint.deleteBetriebsmittel(betriebsmittelperson_id))
|
||||
)
|
||||
.then(result => {
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
|
||||
window.scrollTo(0, 0);
|
||||
@@ -234,8 +232,8 @@ export default {
|
||||
this.formData.uid = this.uid;
|
||||
if (this.formData.betriebsmitteltyp == 'Inventar')
|
||||
this.formData.betriebsmittel_id = this.formData.inventarData?.betriebsmittel_id;
|
||||
return this.endpoint
|
||||
.addNewBetriebsmittel(this.$refs.betriebsmittelData, this.id, this.formData)
|
||||
return this.$refs.betriebsmittelData
|
||||
.call(this.endpoint.addNewBetriebsmittel(this.id, this.formData))
|
||||
.then(response => {
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
|
||||
this.$refs.betriebsmittelModal.hide();
|
||||
@@ -248,8 +246,11 @@ export default {
|
||||
updateBetriebsmittel(betriebsmittelperson_id) {
|
||||
if (this.formData.betriebsmitteltyp == 'Inventar')
|
||||
this.formData.betriebsmittel_id = this.formData.inventarData?.betriebsmittel_id;
|
||||
return this.endpoint
|
||||
.updateBetriebsmittel(this.$refs.betriebsmittelData, betriebsmittelperson_id, this.formData)
|
||||
return this.$refs.betriebsmittelData
|
||||
.call(this.endpoint.updateBetriebsmittel(
|
||||
betriebsmittelperson_id,
|
||||
this.formData
|
||||
))
|
||||
.then(response => {
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
|
||||
this.$refs.betriebsmittelModal.hide();
|
||||
@@ -262,8 +263,8 @@ export default {
|
||||
loadBetriebsmittel(betriebsmittelperson_id) {
|
||||
this.resetModal();
|
||||
this.statusNew = false;
|
||||
return this.endpoint
|
||||
.loadBetriebsmittel(betriebsmittelperson_id)
|
||||
return this.$api
|
||||
.call(this.endpoint.loadBetriebsmittel(betriebsmittelperson_id))
|
||||
.then(result => {
|
||||
this.formData = result.data;
|
||||
})
|
||||
@@ -271,8 +272,8 @@ export default {
|
||||
},
|
||||
searchInventar(event) {
|
||||
const encodedQuery = encodeURIComponent(event.query);
|
||||
return this.endpoint
|
||||
.loadInventarliste(encodedQuery)
|
||||
return this.$api
|
||||
.call(this.endpoint.loadInventarliste(encodedQuery))
|
||||
.then(result => {
|
||||
this.filteredInventar = result.data;
|
||||
});
|
||||
@@ -294,8 +295,8 @@ export default {
|
||||
}
|
||||
},
|
||||
created() {
|
||||
return this.endpoint
|
||||
.getTypenBetriebsmittel()
|
||||
return this.$api
|
||||
.call(this.endpoint.getTypenBetriebsmittel())
|
||||
.then(result => {
|
||||
this.listBetriebsmitteltyp = result.data;
|
||||
})
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import BsModal from './Modal.js';
|
||||
|
||||
export default {
|
||||
name: 'BootstrapAlert',
|
||||
components: {
|
||||
BsModal
|
||||
},
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import BsAlert from './Alert.js';
|
||||
|
||||
export default {
|
||||
name: 'BootstrapConfirm',
|
||||
mixins: [
|
||||
BsAlert
|
||||
],
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import Phrasen from '../../plugin/Phrasen.js';
|
||||
//import Phrasen from '../../plugin/Phrasen.js';
|
||||
|
||||
export default {
|
||||
name: 'BootstrapModal',
|
||||
data: () => ({
|
||||
modal: null
|
||||
}),
|
||||
@@ -77,6 +78,7 @@ export default {
|
||||
|
||||
return new Promise((resolve,reject) => {
|
||||
const instance = Vue.createApp({
|
||||
name: 'ModalTmpApp',
|
||||
setup() {
|
||||
return () => Vue.h(BsModal, {...{
|
||||
class: 'fade'
|
||||
@@ -104,9 +106,12 @@ export default {
|
||||
instance.use(primevue.config.default, {zIndex: {overlay: 9999}})
|
||||
}
|
||||
|
||||
instance.use(Phrasen); // TODO(chris): find a more dynamic way
|
||||
instance.mount(wrapper);
|
||||
document.body.appendChild(wrapper);
|
||||
//instance.use(Phrasen); // TODO(chris): find a more dynamic way
|
||||
import('../../plugins/Phrasen.js').then((Phrasen) => {
|
||||
instance.use(Phrasen.default);
|
||||
instance.mount(wrapper);
|
||||
document.body.appendChild(wrapper);
|
||||
});
|
||||
});
|
||||
},
|
||||
template: `<div ref="modal" class="bootstrap-modal modal" tabindex="-1" @[\`hide.bs.modal\`]="$emit('hideBsModal')" @[\`hidden.bs.modal\`]="$emit('hiddenBsModal')" @[\`hidePrevented.bs.modal\`]="$emit('hidePreventedBsModal')" @[\`show.bs.modal\`]="$emit('showBsModal')" >
|
||||
@@ -114,6 +119,7 @@ export default {
|
||||
<div class="modal-content">
|
||||
<div v-if="$slots.title" class="modal-header">
|
||||
<h5 class="modal-title"><slot name="title"/></h5>
|
||||
<slot name="popoutButton"></slot>
|
||||
<button v-if="!noCloseBtn" type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body" :class="bodyClass">
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import BsAlert from './Alert.js';
|
||||
|
||||
export default {
|
||||
name: 'BootstrapPrompt',
|
||||
mixins: [
|
||||
BsAlert
|
||||
],
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import CalendarDate from '../../../composables/CalendarDate.js';
|
||||
import LvModal from "../../../components/Cis/Mylv/LvModal.js";
|
||||
|
||||
import ApiStundenplan from '../../../api/factory/stundenplan.js';
|
||||
import ApiAddons from '../../../api/factory/addons.js';
|
||||
|
||||
function ggt(m, n) {
|
||||
return n == 0 ? m : ggt(n, m % n);
|
||||
}
|
||||
@@ -245,17 +248,20 @@ export default {
|
||||
},
|
||||
fetchLvMenu(event) {
|
||||
if (event && event.type == 'lehreinheit') {
|
||||
this.$fhcApi.factory.stundenplan.getLehreinheitStudiensemester(event.lehreinheit_id[0]).then(
|
||||
res => res.data
|
||||
).then(
|
||||
studiensemester_kurzbz => {
|
||||
this.$fhcApi.factory.addons.getLvMenu(event.lehrveranstaltung_id, studiensemester_kurzbz).then(res => {
|
||||
if (res.data) {
|
||||
this.lvMenu = res.data;
|
||||
}
|
||||
});
|
||||
}
|
||||
)
|
||||
this.$api
|
||||
.call(ApiStundenplan.getLehreinheitStudiensemester(event.lehreinheit_id[0]))
|
||||
.then(res => res.data)
|
||||
.then(studiensemester_kurzbz => this.$api.call(
|
||||
ApiAddons.getLvMenu(
|
||||
event.lehreinheit_id,
|
||||
studiensemester_kurzbz
|
||||
)
|
||||
))
|
||||
.then(res => {
|
||||
if (res.data) {
|
||||
this.lvMenu = res.data;
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
hourGridIdentifier(hour) {
|
||||
|
||||
@@ -2,6 +2,8 @@ import raum_contentmittitel from './Content_types/Raum_contentmittitel.js'
|
||||
import general from './Content_types/General.js'
|
||||
import BsConfirm from "../../Bootstrap/Confirm.js";
|
||||
|
||||
import ApiCms from '../../../api/factory/cms.js';
|
||||
|
||||
export default {
|
||||
name: "ContentComponent",
|
||||
props: {
|
||||
@@ -30,33 +32,35 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
fetchContent(){
|
||||
return this.$fhcApi.factory.cms.content(this.content_id_internal, this.version, this.sprache, this.sichtbar).then(res => {
|
||||
this.content = res.data.content;
|
||||
this.content_type = res.data.type;
|
||||
|
||||
document.querySelectorAll("#cms [data-confirm]").forEach((el) => {
|
||||
el.addEventListener("click", (evt) => {
|
||||
evt.preventDefault();
|
||||
BsConfirm.popup(el.dataset.confirm)
|
||||
.then(() => {
|
||||
Axios.get(el.href)
|
||||
.then((res) => {
|
||||
// TODO(chris): check for success then show message and/or reload
|
||||
location = location;
|
||||
})
|
||||
.catch((err) => console.error("ERROR:", err));
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
return this.$api
|
||||
.call(ApiCms.content(this.content_id_internal, this.version, this.sprache, this.sichtbar))
|
||||
.then(res => {
|
||||
this.content = res.data.content;
|
||||
this.content_type = res.data.type;
|
||||
|
||||
document.querySelectorAll("#cms [data-confirm]").forEach((el) => {
|
||||
el.addEventListener("click", (evt) => {
|
||||
evt.preventDefault();
|
||||
BsConfirm.popup(el.dataset.confirm)
|
||||
.then(() => {
|
||||
Axios.get(el.href)
|
||||
.then((res) => {
|
||||
// TODO(chris): check for success then show message and/or reload
|
||||
location = location;
|
||||
})
|
||||
.catch((err) => console.error("ERROR:", err));
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
});
|
||||
});
|
||||
document.querySelectorAll("#cms [data-href]").forEach((el) => {
|
||||
el.href = el.dataset.href.replace(
|
||||
/^ROOT\//,
|
||||
FHC_JS_DATA_STORAGE_OBJECT.app_root
|
||||
);
|
||||
});
|
||||
});
|
||||
document.querySelectorAll("#cms [data-href]").forEach((el) => {
|
||||
el.href = el.dataset.href.replace(
|
||||
/^ROOT\//,
|
||||
FHC_JS_DATA_STORAGE_OBJECT.app_root
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user