diff --git a/application/controllers/api/frontend/v1/lv/StgTree.php b/application/controllers/api/frontend/v1/lv/StgTree.php
index 8272da978..792775833 100644
--- a/application/controllers/api/frontend/v1/lv/StgTree.php
+++ b/application/controllers/api/frontend/v1/lv/StgTree.php
@@ -25,7 +25,25 @@ class StgTree extends FHCAPI_Controller
return $this->_outputAuthError([$method => ['admin:r', 'assistenz:r']]);
}
- return $this->getStudiengang($method);
+ $count = count($params);
+ if (!$count)
+ return $this->getStudiengang($method);
+
+ if ($count == 1) {
+ if (is_numeric($params[0]))
+ return $this->getSemester($method, $params[0]);
+ else
+ return $this->getStudiengang($method, $params[0]);
+ }
+ if ($count == 2) {
+ if (is_numeric($params[0]))
+ return $this->getVerband($method, $params[0], $params[1]);
+ else
+ return $this->getSemester($method, $params[1], $params[0]);
+ }
+
+
+
show_404();
}
@@ -64,16 +82,27 @@ class StgTree extends FHCAPI_Controller
$this->terminateWithSuccess($list);
}
- protected function getStudiengang($studiengang_kz)
+ protected function getStudiengang($studiengang_kz, $org_form = null)
{
$link = $studiengang_kz . '/';
+ if ($org_form !== null)
+ $link .= $org_form . '/';
$this->StudiengangModel->addJoin('public.tbl_lehrverband v', 'studiengang_kz');
$this->StudiengangModel->addDistinct();
$this->StudiengangModel->addSelect("CONCAT(" . $this->StudiengangModel->escape($link) . ", semester) AS link", false);
- $this->StudiengangModel->addSelect("CONCAT(UPPER(CONCAT(typ, kurzbz)), '-', semester, (SELECT CASE WHEN bezeichnung IS NULL OR bezeichnung='' THEN ''::TEXT ELSE CONCAT(' (', bezeichnung, ')') END FROM public.tbl_lehrverband WHERE studiengang_kz=v.studiengang_kz AND semester=v.semester ORDER BY verband, gruppe LIMIT 1)) AS name", false);
- $this->StudiengangModel->addSelect("TRUE AS leaf", false);
+ $this->StudiengangModel->addSelect("CONCAT(
+ UPPER(CONCAT(typ, kurzbz)),
+ '-',
+ semester,
+ (
+ SELECT CASE WHEN bezeichnung IS NULL OR bezeichnung='' THEN ''::TEXT ELSE CONCAT(' (', bezeichnung, ')') END
+ FROM public.tbl_lehrverband
+ WHERE studiengang_kz=v.studiengang_kz AND semester=v.semester
+ ORDER BY verband, gruppe LIMIT 1
+ )
+ ) AS name", false);
$this->StudiengangModel->addSelect('semester');
$this->StudiengangModel->addSelect($this->StudiengangModel->escape($studiengang_kz) . '::integer AS stg_kz', false);
@@ -97,6 +126,8 @@ class StgTree extends FHCAPI_Controller
$this->StudienordnungModel->addDistinct();
$this->StudienordnungModel->addSelect("CONCAT(studiengang_kz, '/', p.orgform_kurzbz) AS link");
$this->StudienordnungModel->addSelect("p.orgform_kurzbz AS name");
+ $this->StudienordnungModel->addSelect("p.orgform_kurzbz AS orgform_kurzbz");
+ $this->StudienordnungModel->addSelect("studiengang_kz AS stg_kz");
$this->StudienordnungModel->addSelect("TRUE as leaf", false);
$this->StudienordnungModel->addJoin('lehre.tbl_studienplan p', 'studienordnung_id');
@@ -111,6 +142,115 @@ class StgTree extends FHCAPI_Controller
$list = array_merge($list, $result);
}
}
+ $this->terminateWithSuccess($list);
+ }
+
+ protected function getSemester($studiengang_kz, $semester, $org_form = null)
+ {
+ $link = $studiengang_kz . '/';
+ if ($org_form !== null)
+ $link .= $org_form . '/';
+ $link .= $semester . '/';
+
+
+ $this->load->model('organisation/Gruppe_model', 'GruppeModel');
+
+ $this->GruppeModel->addDistinct();
+ $this->GruppeModel->addSelect("CONCAT(" . $this->GruppeModel->escape($link . 'grp/') . ", gruppe_kurzbz) AS link", false);
+ $this->GruppeModel->addSelect("CONCAT(gruppe_kurzbz, ' (', bezeichnung, ')') AS name", false);
+ $this->GruppeModel->addSelect("TRUE AS leaf", false);
+
+ $this->GruppeModel->addSelect('sort');
+ $this->GruppeModel->addSelect('gruppe_kurzbz');
+ $this->GruppeModel->addSelect($this->GruppeModel->escape($studiengang_kz) . '::integer AS stg_kz', false);
+
+ $this->GruppeModel->addOrder('sort');
+ $this->GruppeModel->addOrder('gruppe_kurzbz');
+
+ $where = [
+ 'studiengang_kz' => $studiengang_kz,
+ 'semester' => $semester,
+ 'lehre' => true,
+ 'sichtbar' => true,
+ 'aktiv' => true,
+ 'direktinskription' => false
+ ];
+
+ if ($org_form !== null)
+ $where['orgform_kurzbz'] = $org_form;
+
+ $result = $this->GruppeModel->loadWhere($where);
+
+ $list = $this->getDataOrTerminateWithError($result);
+
+ $this->StudiengangModel->addJoin('public.tbl_lehrverband v', 'studiengang_kz');
+
+ $this->StudiengangModel->addSelect("CONCAT(" . $this->StudiengangModel->escape($link) . ", verband) AS link", false);
+ $this->StudiengangModel->addSelect("CONCAT(UPPER(CONCAT(typ, kurzbz)), '-', semester, verband, (SELECT CASE WHEN bezeichnung IS NULL OR bezeichnung='' THEN ''::TEXT ELSE CONCAT(' (', bezeichnung, ')') END FROM public.tbl_lehrverband WHERE studiengang_kz=v.studiengang_kz AND semester=v.semester AND verband=v.verband ORDER BY gruppe LIMIT 1)) AS name", false);
+ $this->StudiengangModel->addSelect("CASE WHEN MAX(gruppe)='' OR MAX(gruppe)=' ' THEN TRUE ELSE FALSE END AS leaf");
+
+ $this->StudiengangModel->addSelect($this->StudiengangModel->escape($semester) . ' AS semester');
+ $this->StudiengangModel->addSelect('verband');
+ $this->StudiengangModel->addSelect($this->StudiengangModel->escape($studiengang_kz) . '::integer AS stg_kz', false);
+
+ $this->StudiengangModel->addOrder('verband');
+
+ $this->StudiengangModel->addGroupBy('link, name, verband');
+
+ $where = [
+ 'v.studiengang_kz' => $studiengang_kz,
+ 'v.semester' => $semester,
+ 'v.verband !=' => '',
+ 'v.aktiv' => true
+ ];
+
+ if ($org_form !== null && $semester) // NOTE(chris): on semester 0 show all?
+ $where['v.orgform_kurzbz'] = $org_form;
+
+ $result = $this->StudiengangModel->loadWhere($where);
+ $result = $this->getDataOrTerminateWithError($result);
+
+ $list = array_merge($list, $result);
+
+ $this->terminateWithSuccess($list);
+ }
+
+ protected function getVerband($studiengang_kz, $semester, $verband, $org_form = null)
+ {
+ $link = $studiengang_kz . '/';
+ if ($org_form !== null)
+ $link .= $org_form . '/';
+ $link .= $semester . '/'. $verband . '/';
+
+
+ $this->StudiengangModel->addJoin('public.tbl_lehrverband v', 'studiengang_kz');
+
+ $this->StudiengangModel->addDistinct();
+ $this->StudiengangModel->addSelect("CONCAT(" . $this->StudiengangModel->escape($link) . ", gruppe) AS link", false);
+ $this->StudiengangModel->addSelect("CONCAT(UPPER(CONCAT(typ, kurzbz)), '-', semester, verband, gruppe, (SELECT CASE WHEN bezeichnung IS NULL OR bezeichnung='' THEN ''::TEXT ELSE CONCAT(' (', bezeichnung, ')') END FROM public.tbl_lehrverband WHERE studiengang_kz=v.studiengang_kz AND semester=v.semester AND verband=v.verband AND gruppe=v.gruppe ORDER BY gruppe LIMIT 1)) AS name", false);
+ $this->StudiengangModel->addSelect("TRUE AS leaf", false);
+
+ $this->StudiengangModel->addSelect('v.semester');
+ $this->StudiengangModel->addSelect('v.verband');
+ $this->StudiengangModel->addSelect('gruppe');
+ $this->StudiengangModel->addSelect($this->StudiengangModel->escape($studiengang_kz) . '::integer AS stg_kz', false);
+
+ $this->StudiengangModel->addOrder('gruppe');
+
+ $where = [
+ 'v.studiengang_kz' => $studiengang_kz,
+ 'v.semester' => $semester,
+ 'v.verband' => $verband,
+ 'v.gruppe !=' => '',
+ 'v.aktiv' => true
+ ];
+
+ if ($org_form !== null && $semester)
+ $where['v.orgform_kurzbz'] = $org_form;
+
+ $result = $this->StudiengangModel->loadWhere($where);
+
+ $list = $this->getDataOrTerminateWithError($result);
$this->terminateWithSuccess($list);
}
diff --git a/application/controllers/api/frontend/v1/tempus/Coursepicker.php b/application/controllers/api/frontend/v1/tempus/Coursepicker.php
index 18de39a4e..2d0eecd94 100644
--- a/application/controllers/api/frontend/v1/tempus/Coursepicker.php
+++ b/application/controllers/api/frontend/v1/tempus/Coursepicker.php
@@ -94,11 +94,15 @@ class Coursepicker extends FHCAPI_Controller
public function getByStg()
{
- //TODO check einbauen ob studiensemester und stg vorhanden ist
- $stg = $this->input->get('stg');
- $studiensemester_kurzbz = $this->input->get('studiensemester_kurzbz');
- if (is_null($stg) || is_null($studiensemester_kurzbz))
- $this->terminateWithError($this->p->t('ui', 'ungueltigeParameter'), self::ERROR_TYPE_GENERAL);
+ $this->_ci->form_validation->set_data($_POST);
+ $this->_ci->form_validation->set_rules('studiengaenge[]',"studiengaenge","required");
+ $this->_ci->form_validation->set_rules('studiensemester_kurzbz',"studiensemester_kurzbz","required");
+
+ if($this->_ci->form_validation->run() === FALSE)
+ $this->terminateWithValidationErrors($this->_ci->form_validation->error_array());
+
+ $studiengaenge = $this->input->post('studiengaenge');
+ $studiensemester_kurzbz = $this->input->post('studiensemester_kurzbz');
$this->_ci->LehreinheitModel->addSelect('
tbl_lehreinheit.lehreinheit_id,
@@ -131,15 +135,39 @@ class Coursepicker extends FHCAPI_Controller
$this->_ci->LehreinheitModel->addJoin('lehre.tbl_lehreinheitmitarbeiter lema', 'tbl_lehreinheit.lehreinheit_id = lema.lehreinheit_id');
$this->_ci->LehreinheitModel->addJoin('lehre.tbl_lehreinheitgruppe lvb', 'tbl_lehreinheit.lehreinheit_id = lvb.lehreinheit_id');
$this->_ci->LehreinheitModel->addJoin('public.tbl_studiengang', 'lvb.studiengang_kz = tbl_studiengang.studiengang_kz');
+ $this->_ci->LehreinheitModel->addJoin('lehre.tbl_lehrveranstaltung', 'tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id');
$this->_ci->LehreinheitModel->addJoin('lehre.tbl_lehrveranstaltung lehrfach', 'tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id');
$this->_ci->LehreinheitModel->addJoin('public.tbl_mitarbeiter ma', 'lema.mitarbeiter_uid = ma.mitarbeiter_uid');
$this->_ci->LehreinheitModel->addJoin('lehre.tbl_lehrform', 'tbl_lehrform.lehrform_kurzbz = tbl_lehreinheit.lehrform_kurzbz');
$this->_ci->LehreinheitModel->addJoin('public.tbl_benutzer', 'ma.mitarbeiter_uid = tbl_benutzer.uid');
$this->_ci->LehreinheitModel->addJoin('public.tbl_person', 'tbl_benutzer.person_id = tbl_person.person_id');
+ $this->_ci->LehreinheitModel->db->group_start();
+ $first = true;
+ foreach ($studiengaenge as $studiengang)
+ {
+ if ($first)
+ $this->_ci->LehreinheitModel->db->group_start();
+ else
+ {
+ $this->_ci->LehreinheitModel->db->or_group_start();
+ }
+ $first = false;
+
+ $this->_ci->LehreinheitModel->db->where('tbl_lehrveranstaltung.studiengang_kz', $studiengang['studiengang_kz']);
+
+ if (isset($studiengang['semester']))
+ $this->_ci->LehreinheitModel->db->where('tbl_lehrveranstaltung.semester', $studiengang['semester']);
+
+ if (isset($studiengang['orgform_kurzbz']))
+ $this->_ci->LehreinheitModel->db->where('tbl_lehrveranstaltung.orgform_kurzbz', $studiengang['orgform_kurzbz']);
+
+ $this->_ci->LehreinheitModel->db->group_end();
+ }
+ $this->_ci->LehreinheitModel->db->group_end();
+
$result = $this->_ci->LehreinheitModel->loadWhere(array(
'tbl_lehrform.verplanen' => true,
- 'tbl_studiengang.studiengang_kz' => $stg,
'tbl_lehreinheit.studiensemester_kurzbz' => $studiensemester_kurzbz
));
diff --git a/application/controllers/api/frontend/v1/tempus/Favorites.php b/application/controllers/api/frontend/v1/tempus/Favorites.php
new file mode 100644
index 000000000..94ee39707
--- /dev/null
+++ b/application/controllers/api/frontend/v1/tempus/Favorites.php
@@ -0,0 +1,47 @@
+ self::PERM_LOGGED,
+ 'set' => self::PERM_LOGGED
+ ]);
+
+ // Load models
+ $this->load->model('system/Variable_model', 'VariableModel');
+ }
+
+ public function index()
+ {
+ $result = $this->VariableModel->getVariables(getAuthUID(), ['tempus_favorites']);
+
+ $data = $this->getDataOrTerminateWithError($result);
+
+ if (!$data)
+ $this->terminateWithSuccess(null);
+ else
+ $this->terminateWithSuccess(isset($data['tempus_favorites']) ? $data['tempus_favorites'] : null);
+ }
+
+ public function set()
+ {
+ $this->load->library('form_validation');
+
+ $this->form_validation->set_rules('favorites', 'Favorites', 'required');
+
+ if (!$this->form_validation->run())
+ $this->terminateWithValidationErrors($this->form_validation->error_array());
+
+ $favorites = $this->input->post('favorites');
+
+ $result = $this->VariableModel->setVariable(getAuthUID(), 'tempus_favorites', $favorites);
+
+ $this->getDataOrTerminateWithError($result);
+
+ $this->terminateWithSuccess(true);
+ }
+}
diff --git a/application/controllers/api/frontend/v1/tempus/Info.php b/application/controllers/api/frontend/v1/tempus/Info.php
new file mode 100644
index 000000000..b8ab2b9b0
--- /dev/null
+++ b/application/controllers/api/frontend/v1/tempus/Info.php
@@ -0,0 +1,37 @@
+ self::PERM_LOGGED,
+ ]);
+
+ $this->_ci =& get_instance();
+
+ $this->load->model('organisation/Studiengang_model', 'StudiengangModel');
+
+ $this->loadPhrases([
+ 'ui'
+ ]);
+
+ }
+
+ public function getStudiengaenge()
+ {
+ $this->_ci->StudiengangModel->addDistinct();
+ $this->_ci->StudiengangModel->addSelect('studiengang_kz');
+ $this->_ci->StudiengangModel->addSelect("CONCAT(kurzbzlang, ' (', UPPER(CONCAT(typ, kurzbz)), ') - ', tbl_studiengang.bezeichnung) AS name");
+
+ $result = $this->getDataOrTerminateWithError($this->_ci->StudiengangModel->load());
+ $this->terminateWithSuccess($result);
+ }
+}
diff --git a/application/controllers/api/frontend/v1/tempus/Kalender.php b/application/controllers/api/frontend/v1/tempus/Kalender.php
index bdf4ecc70..75b8b02f7 100644
--- a/application/controllers/api/frontend/v1/tempus/Kalender.php
+++ b/application/controllers/api/frontend/v1/tempus/Kalender.php
@@ -33,7 +33,6 @@ class Kalender extends FHCAPI_Controller
'calculateMultiWeekPlan' => 'lehre/lvplan:rw',
'confirmMultiWeekPlan' => 'lehre/lvplan:rw',
'addToKalenderEvent' => 'lehre/lvplan:rw',
- 'addReservierung' => 'lehre/lvplan:rw',
'sync' => 'lehre/lvplan:rw',
]);
@@ -90,15 +89,15 @@ class Kalender extends FHCAPI_Controller
public function getPlan()
{
- $this->_ci->form_validation->set_data($_GET);
+ $this->_ci->form_validation->set_data($_POST);
$this->_ci->form_validation->set_rules('start_date',"start_date","required");
$this->_ci->form_validation->set_rules('end_date',"end_date","required");
if($this->_ci->form_validation->run() === FALSE)
$this->terminateWithValidationErrors($this->_ci->form_validation->error_array());
- $start_date = $this->_ci->input->get('start_date', TRUE);
- $end_date = $this->_ci->input->get('end_date', TRUE);
+ $start_date = $this->_ci->input->post('start_date', TRUE);
+ $end_date = $this->_ci->input->post('end_date', TRUE);
$filter = $this->_checkFilter(self::ALLOWED_PLAN_FILTER);
@@ -230,7 +229,7 @@ class Kalender extends FHCAPI_Controller
public function getRaumvorschlag()
{
- $this->_ci->form_validation->set_data($_GET);
+ $this->_ci->form_validation->set_data($_POST);
$filter = $this->_checkFilter(self::ALLOWED_ROOM_FILTER);
$this->terminateWithSuccess($this->_ci->raumvorschlaglib->getVorschlaege($filter->kalender_id));
@@ -396,32 +395,6 @@ class Kalender extends FHCAPI_Controller
$this->terminateWithSuccess(getData($result));
}
- public function addReservierung()
- {
- $this->_ci->form_validation->set_data($_POST);
- $this->_ci->form_validation->set_rules('titel',"titel","required");
- $this->_ci->form_validation->set_rules('beschreibung',"beschreibung","required");
- $this->_ci->form_validation->set_rules('ort_kurzbz',"ort_kurzbz","required");
- $this->_ci->form_validation->set_rules('start_date',"start_date","required");
- $this->_ci->form_validation->set_rules('end_date',"end_date","required");
-
- if($this->_ci->form_validation->run() === FALSE)
- $this->terminateWithValidationErrors($this->_ci->form_validation->error_array());
-
- $titel = $this->_ci->input->post('titel', TRUE);
- $beschreibung = $this->_ci->input->post('beschreibung', TRUE);
- $ort_kurzbz = $this->_ci->input->post('ort_kurzbz', TRUE);
- $start_date = $this->_ci->input->post('start_date', TRUE);
- $end_date = $this->_ci->input->post('end_date', TRUE);
-
-
- $result = $this->_ci->kalenderlib->addReservierung($titel, $beschreibung, $ort_kurzbz, $start_date, $end_date);
-
- if (isError($result))
- $this->terminateWithError(getError($result));
-
- $this->terminateWithSuccess(getData($result));
- }
private function _checkFilter($filters)
{
@@ -429,10 +402,10 @@ class Kalender extends FHCAPI_Controller
$filter_object = new stdClass();
foreach ($filters as $filter)
{
- if ($this->_ci->input->get($filter))
+ if ($this->_ci->input->post($filter))
{
$filter_valid = true;
- $filter_object->$filter = $this->_ci->input->get($filter);
+ $filter_object->$filter = $this->_ci->input->post($filter);
}
}
diff --git a/application/controllers/api/frontend/v1/tempus/Reservierung.php b/application/controllers/api/frontend/v1/tempus/Reservierung.php
index c1030d8ee..be22d96e9 100644
--- a/application/controllers/api/frontend/v1/tempus/Reservierung.php
+++ b/application/controllers/api/frontend/v1/tempus/Reservierung.php
@@ -158,7 +158,7 @@ class Reservierung extends FHCAPI_Controller
$this->_ci->form_validation->set_data($_POST);
$this->_ci->form_validation->set_rules('titel',"titel","required");
$this->_ci->form_validation->set_rules('beschreibung',"beschreibung","required");
- $this->_ci->form_validation->set_rules('ort_kurzbz',"ort_kurzbz","required");
+ $this->_ci->form_validation->set_rules('ort_kurzbz[]',"ort_kurzbz","required");
$this->_ci->form_validation->set_rules('start_date',"start_date","required");
$this->_ci->form_validation->set_rules('end_date',"end_date","required");
diff --git a/application/libraries/KalenderLib.php b/application/libraries/KalenderLib.php
index 37115b4c2..e3ce260ac 100644
--- a/application/libraries/KalenderLib.php
+++ b/application/libraries/KalenderLib.php
@@ -339,12 +339,12 @@ class KalenderLib
$data = $this->_ci->KalenderModel->load();
return $this->_mapEvents($data);
}
- public function getPlanForPlanner($start_date, $end_date, $ort = null, $uids = null, $stg = null)
+ public function getPlanForPlanner($start_date, $end_date, $ort = null, $uids = null, $studiengaenge = null)
{
$this->_getBasePlan($start_date, $end_date);
if (!is_null($ort))
- $this->_ci->KalenderModel->db->where('tbl_kalender_ort.ort_kurzbz', $ort);
+ $this->_ci->KalenderModel->db->where_in('tbl_kalender_ort.ort_kurzbz', $ort);
if (!is_null($uids))
{
@@ -355,8 +355,33 @@ class KalenderLib
$this->_ci->KalenderModel->db->group_end();
}
- if (!is_null($stg))
- $this->_ci->KalenderModel->db->where('tbl_lehrveranstaltung.studiengang_kz', $stg);
+ if (!is_null($studiengaenge))
+ {
+
+ $this->_ci->KalenderModel->db->group_start();
+ $first = true;
+ foreach ($studiengaenge as $studiengang)
+ {
+ if ($first)
+ $this->_ci->KalenderModel->db->group_start();
+ else
+ {
+ $this->_ci->KalenderModel->db->or_group_start();
+ }
+ $first = false;
+
+ $this->_ci->KalenderModel->db->where('tbl_lehrveranstaltung.studiengang_kz', $studiengang['studiengang_kz']);
+
+ if (isset($studiengang['semester']))
+ $this->_ci->KalenderModel->db->where('tbl_lehrveranstaltung.semester', $studiengang['semester']);
+
+ if (isset($studiengang['orgform_kurzbz']))
+ $this->_ci->KalenderModel->db->where('tbl_lehrveranstaltung.orgform_kurzbz', $studiengang['orgform_kurzbz']);
+
+ $this->_ci->KalenderModel->db->group_end();
+ }
+ $this->_ci->KalenderModel->db->group_end();
+ }
$this->_ci->KalenderModel->db->where('NOT EXISTS (
SELECT 1 FROM lehre.tbl_kalender nachfolger
@@ -812,10 +837,10 @@ class KalenderLib
{
$this->_ci->KalenderModel->addSelect('1');
$this->_ci->KalenderModel->addJoin('lehre.tbl_kalender_ort', 'kalender_id');
+ $this->_ci->KalenderModel->db->where_in('ort_kurzbz', $ort_kurzbz);
$reservierung_vorhanden = $this->_ci->KalenderModel->load(array (
'von <=' => $end_date,
'bis >=' => $start_date,
- 'ort_kurzbz' => $ort_kurzbz,
));
if (hasData($reservierung_vorhanden) && !$this->_ci->permissionlib->isBerechtigt('lehre/reservierungAdvanced'))
@@ -994,12 +1019,20 @@ class KalenderLib
}
private function _addKalenderOrt($kalender_id, $ort_kurzbz)
{
- return $this->_ci->KalenderOrtModel->insert(
- array (
- 'kalender_id' => $kalender_id,
- 'ort_kurzbz' => $ort_kurzbz
- )
- );
+ foreach ((array) $ort_kurzbz as $ort)
+ {
+ $ortresult = $this->_ci->KalenderOrtModel->insert(
+ array (
+ 'kalender_id' => $kalender_id,
+ 'ort_kurzbz' => $ort
+ )
+ );
+
+ if (!isSuccess($ortresult))
+ return $ortresult;
+ }
+
+ return success();
}
public function updateKalenderEvent($kalender_id, $ort_kurzbz = null, $start_time = null, $end_time = null)
diff --git a/public/js/api/factory/tempus/coursepicker.js b/public/js/api/factory/tempus/coursepicker.js
index 82e1a6965..92ff4fa6b 100644
--- a/public/js/api/factory/tempus/coursepicker.js
+++ b/public/js/api/factory/tempus/coursepicker.js
@@ -6,11 +6,11 @@ export default {
params: { query }
};
},
- getByStg(stg, studiensemester_kurzbz) {
+ getByStg(studiengaenge, studiensemester_kurzbz) {
return {
- method: 'get',
+ method: 'post',
url: 'api/frontend/v1/tempus/coursepicker/getByStg',
- params: { stg, studiensemester_kurzbz }
+ params: { studiengaenge, studiensemester_kurzbz }
};
},
diff --git a/public/js/api/factory/tempus/info.js b/public/js/api/factory/tempus/info.js
new file mode 100644
index 000000000..849b81545
--- /dev/null
+++ b/public/js/api/factory/tempus/info.js
@@ -0,0 +1,8 @@
+export default {
+ getStudiengaenge() {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/tempus/Info/getStudiengaenge',
+ };
+ },
+};
diff --git a/public/js/api/factory/tempus/kalender.js b/public/js/api/factory/tempus/kalender.js
index 5c0cda753..9d2746434 100644
--- a/public/js/api/factory/tempus/kalender.js
+++ b/public/js/api/factory/tempus/kalender.js
@@ -3,7 +3,7 @@ export default {
getPlan(filter, start_date, end_date)
{
return {
- method: 'get',
+ method: 'post',
url: '/api/frontend/v1/tempus/Kalender/getPlan',
params: { ...filter, start_date, end_date }
};
@@ -112,7 +112,7 @@ export default {
},
getRaumvorschlag(kalender_id) {
return {
- method: 'get',
+ method: 'post',
url: '/api/frontend/v1/tempus/Kalender/getRaumvorschlag',
params: { kalender_id }
};
diff --git a/public/js/api/factory/tempus/studiengangtree.js b/public/js/api/factory/tempus/studiengangtree.js
new file mode 100644
index 000000000..42412785d
--- /dev/null
+++ b/public/js/api/factory/tempus/studiengangtree.js
@@ -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