From cc5a14ea0273351bb9f3197ffa913fd4c9ce05f4 Mon Sep 17 00:00:00 2001 From: SimonGschnell Date: Tue, 4 Feb 2025 14:32:40 +0100 Subject: [PATCH 1/9] update(Sprachen.js): switches colors for the currently active sprache --- public/css/components/Sprachen.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/css/components/Sprachen.css b/public/css/components/Sprachen.css index 99c47f315..73dfa563f 100644 --- a/public/css/components/Sprachen.css +++ b/public/css/components/Sprachen.css @@ -1,9 +1,9 @@ .sprachen-entry{ - background-color: var(--fhc-cis-primary); + background-color: var(--fhc-cis-primary-hover); } [selected="true"].sprachen-entry { - background-color: var(--fhc-cis-primary-hover); + background-color: var(--fhc-cis-primary); } .sprachen-entry.btn { From 9082c3cb8cbb50a54fd67bc9e823292149033486 Mon Sep 17 00:00:00 2001 From: SimonGschnell Date: Tue, 4 Feb 2025 14:37:20 +0100 Subject: [PATCH 2/9] feature(Calendar Exports): uses the old enpoints to export excel,csv,ical1,ical2 documents --- application/controllers/Cis/Stundenplan.php | 4 +- .../api/frontend/v1/Stundenplan.php | 12 ++++- .../organisation/Studiensemester_model.php | 20 +++++++- public/js/api/stundenplan.js | 6 +++ public/js/components/Calendar/Calendar.js | 3 ++ public/js/components/Calendar/Day.js | 6 ++- public/js/components/Calendar/Header.js | 8 ++-- public/js/components/Calendar/Month.js | 6 ++- public/js/components/Calendar/Week.js | 6 ++- .../components/Cis/Stundenplan/Stundenplan.js | 46 ++++++++++++++++--- 10 files changed, 100 insertions(+), 17 deletions(-) diff --git a/application/controllers/Cis/Stundenplan.php b/application/controllers/Cis/Stundenplan.php index a9f89f172..f6fb0bd67 100644 --- a/application/controllers/Cis/Stundenplan.php +++ b/application/controllers/Cis/Stundenplan.php @@ -25,9 +25,9 @@ class Stundenplan extends Auth_Controller */ public function index($lv_id = null) { - $viewData = array( - 'lv_id' => $lv_id + 'lv_id' => $lv_id, + 'uid'=>getAuthUID(), ); $this->load->view('CisRouterView/CisRouterView.php', ['viewData' => $viewData, 'route' => 'Stundenplan']); diff --git a/application/controllers/api/frontend/v1/Stundenplan.php b/application/controllers/api/frontend/v1/Stundenplan.php index a087f32a0..6cbdf17c1 100644 --- a/application/controllers/api/frontend/v1/Stundenplan.php +++ b/application/controllers/api/frontend/v1/Stundenplan.php @@ -33,6 +33,7 @@ class Stundenplan extends FHCAPI_Controller 'Reservierungen' => self::PERM_LOGGED, 'getStundenplan' => self::PERM_LOGGED, 'getLehreinheitStudiensemester' => self::PERM_LOGGED, + 'studiensemesterDateInterval' => self::PERM_LOGGED, ]); $this->load->library('LogLib'); @@ -56,6 +57,15 @@ class Stundenplan extends FHCAPI_Controller //------------------------------------------------------------------------------------------------------------------ // Public methods + //TODO: delete this function if we don't use the old calendar export endpoints anymore + public function studiensemesterDateInterval($date){ + $this->load->model('organisation/Studiensemester_model','StudiensemesterModel'); + $studiensemester =$this->StudiensemesterModel->getByDate(date_format(date_create($date),'Y-m-d')); + $studiensemester =current($this->getDataOrTerminateWithError($studiensemester)); + $this->terminateWithSuccess($studiensemester); + } + + /** * fetches Stunden layout from database * @access public @@ -545,7 +555,7 @@ class Stundenplan extends FHCAPI_Controller private function studienSemesterErmitteln($start_date,$end_date){ // gets all studiensemester from the student from start_date to end_date - $semester_range = $this->StudiensemesterModel->getByDate($start_date,$end_date); + $semester_range = $this->StudiensemesterModel->getByDateRange($start_date,$end_date); $semester_range = array_map( function($sem) { diff --git a/application/models/organisation/Studiensemester_model.php b/application/models/organisation/Studiensemester_model.php index 291a010f9..22a7ca604 100644 --- a/application/models/organisation/Studiensemester_model.php +++ b/application/models/organisation/Studiensemester_model.php @@ -170,13 +170,31 @@ class Studiensemester_model extends DB_Model return $this->execQuery($query, array($studiensemester_kurzbz, $studiengang_kz)); } + /** + * Gets a Studiensemester for a date + * @param $date + * @return string + */ + public function getByDate($date) + { + // gets the studiensemster of a date or the next closest previous studiensemester if a date is not within a studiensemester + $query = " + SELECT studiensemester_kurzbz, start, ende + FROM public.tbl_studiensemester + WHERE ( ende >= ?::date AND start <= ?::date ) OR ( ende >= ?::date + '45 days'::interval AND start <= ?::date + '45 days'::interval ) + ORDER BY start DESC + LIMIT 1"; + + return $this->execQuery($query, array($date,$date,$date,$date)); + } + /** * Gets all Studiensemester between two dates * @param $from * @param $to * @return array|null */ - public function getByDate($from, $to) + public function getByDateRange($from, $to) { if (date_format(date_create($from), 'Y-m-d') > (date_format(date_create($to), 'Y-m-d'))) return success(array()); diff --git a/public/js/api/stundenplan.js b/public/js/api/stundenplan.js index 0b756253c..9ddbeff54 100644 --- a/public/js/api/stundenplan.js +++ b/public/js/api/stundenplan.js @@ -36,4 +36,10 @@ export default { {} ); }, + studiensemesterDateInterval(date) { + return this.$fhcApi.get( + `/api/frontend/v1/Stundenplan/studiensemesterDateInterval/${date}`, + {} + ); + }, }; \ No newline at end of file diff --git a/public/js/components/Calendar/Calendar.js b/public/js/components/Calendar/Calendar.js index 5d58f24d5..6c0aecdf8 100644 --- a/public/js/components/Calendar/Calendar.js +++ b/public/js/components/Calendar/Calendar.js @@ -227,6 +227,9 @@ export default { template: /*html*/`
+ diff --git a/public/js/components/Calendar/Day.js b/public/js/components/Calendar/Day.js index afee386a6..2f07efef3 100644 --- a/public/js/components/Calendar/Day.js +++ b/public/js/components/Calendar/Day.js @@ -40,7 +40,11 @@ export default { }, template: /*html*/`
- + + +