diff --git a/application/core/Tag_Controller.php b/application/core/Tag_Controller.php index 6f6cef31b..10e54780e 100644 --- a/application/core/Tag_Controller.php +++ b/application/core/Tag_Controller.php @@ -33,22 +33,30 @@ class Tag_Controller extends FHCAPI_Controller public function getTag() { + $language = $this->_getLanguageIndex(); $id = $this->input->get('id'); $this->NotizModel->addSelect( - 'tbl_notiz.titel, + "tbl_notiz.titel, tbl_notiz.text, - array_to_json(bezeichnung_mehrsprachig::varchar[])->>0 as bezeichnung, + array_to_json(bezeichnung_mehrsprachig::varchar[])->>". $language. " as bezeichnung, tbl_notiz.notiz_id, tbl_notiz_typ.style, tbl_notiz.erledigt as done, tbl_notiz.insertamum, tbl_notiz.updateamum, - tbl_notiz.insertvon, - tbl_notiz.updatevon - ' + (verfasserperson.vorname || ' ' || verfasserperson.nachname || ' ' || '(' || verfasserbenutzer.uid || ')') as verfasser, + (bearbeiterperson.vorname || ' ' || bearbeiterperson.nachname || ' ' || '(' || bearbeiterbenutzer.uid || ')') as bearbeiter + " ); $this->NotizModel->addJoin('public.tbl_notiz_typ', 'public.tbl_notiz.typ = public.tbl_notiz_typ.typ_kurzbz'); + + $this->NotizModel->addJoin('public.tbl_benutzer verfasserbenutzer', 'tbl_notiz.verfasser_uid = verfasserbenutzer.uid', 'LEFT'); + $this->NotizModel->addJoin('public.tbl_person verfasserperson', 'verfasserbenutzer.person_id = verfasserperson.person_id', 'LEFT'); + + $this->NotizModel->addJoin('public.tbl_benutzer bearbeiterbenutzer', 'tbl_notiz.verfasser_uid = bearbeiterbenutzer.uid', 'LEFT'); + $this->NotizModel->addJoin('public.tbl_person bearbeiterperson', 'bearbeiterbenutzer.person_id = bearbeiterperson.person_id', 'LEFT'); + $notiz = $this->NotizModel->loadWhere(array('notiz_id' => $id)); $this->terminateWithSuccess(hasData($notiz) ? getData($notiz)[0] : array()); @@ -134,7 +142,11 @@ class Tag_Controller extends FHCAPI_Controller { $postData = $this->getPostJson(); $updateData = $this->NotizModel->update(array('notiz_id' => $postData->id), - array('text' => $postData->notiz) + array('text' => $postData->notiz, + 'updateamum' => date('Y-m-d H:i:s'), + 'updatevon' => $this->_uid, + 'bearbeiter_uid' => $this->_uid, + ) ); $this->terminateWithSuccess($updateData); } @@ -142,7 +154,11 @@ class Tag_Controller extends FHCAPI_Controller { $postData = $this->getPostJson(); $updateData = $this->NotizModel->update(array('notiz_id' => $postData->id), - array('erledigt' => !$postData->done) + array('erledigt' => !$postData->done, + 'updateamum' => date('Y-m-d H:i:s'), + 'updatevon' => $this->_uid, + 'bearbeiter_uid' => $this->_uid, + ) ); $this->terminateWithSuccess($updateData); @@ -183,5 +199,14 @@ class Tag_Controller extends FHCAPI_Controller show_error('User authentification failed'); } + private function _getLanguageIndex() + { + $this->load->model('system/Sprache_model', 'SpracheModel'); + $this->SpracheModel->addSelect('index'); + $result = $this->SpracheModel->loadWhere(array('sprache' => getUserLanguage())); + + return hasData($result) ? getData($result)[0]->index : 1; + } + } \ No newline at end of file diff --git a/application/views/Cis/InfoTerminal.php b/application/views/Cis/InfoTerminal.php index ed05d1857..7e89b9f0c 100644 --- a/application/views/Cis/InfoTerminal.php +++ b/application/views/Cis/InfoTerminal.php @@ -10,7 +10,7 @@ $this->load->view( ); ?> - load->view('templates/CISVUE-Footer', $includesArray); ?> diff --git a/include/lehrveranstaltung_faktor.class.php b/include/lehrveranstaltung_faktor.class.php index 49459321b..b61ce907d 100644 --- a/include/lehrveranstaltung_faktor.class.php +++ b/include/lehrveranstaltung_faktor.class.php @@ -8,6 +8,7 @@ class lehrveranstaltung_faktor extends basis_db public $lehrveranstaltung_faktor_id; // serial public $lehrveranstaltung_id; // integer public $faktor; // numeric + public $lehrform_kurzbz; // varchar(8) public $studiensemester_kurzbz_von; // varchar(16) public $studiensemester_kurzbz_bis; // varchar(16) public $insertamum; // timestamp @@ -58,7 +59,44 @@ class lehrveranstaltung_faktor extends basis_db return true; } - public function loadByLV($lv_id, $von = null, $bis = null, $id = null) + public function loadByLV($lv_id) + { + + if (!is_numeric($lv_id)) + { + $this->errormsg = 'Lehrveranstaltung_faktor_id muss eine gueltige Zahl sein'; + return false; + } + $qry = "SELECT * + FROM lehre.tbl_lehrveranstaltung_faktor + LEFT JOIN public.tbl_studiensemester vonstsem + ON tbl_lehrveranstaltung_faktor.studiensemester_kurzbz_von = vonstsem.studiensemester_kurzbz + LEFT JOIN public.tbl_studiensemester bisstem + ON tbl_lehrveranstaltung_faktor.studiensemester_kurzbz_bis = bisstem.studiensemester_kurzbz + WHERE lehrveranstaltung_id = ".$this->db_add_param($lv_id, FHC_INTEGER); + + + if (!$result = $this->db_query($qry)) { + $this->errormsg = 'Datensatz konnte nicht geladen werden'; + return false; + } + + while ($row = $this->db_fetch_object($result)) + { + $lv_faktor_objekt = new lehrveranstaltung_faktor(); + + $lv_faktor_objekt->lehrveranstaltung_faktor_id = $row->lehrveranstaltung_faktor_id; + $lv_faktor_objekt->lehrveranstaltung_id = $row->lehrveranstaltung_id; + $lv_faktor_objekt->faktor = $row->faktor; + $lv_faktor_objekt->lehrform_kurzbz = $row->lehrform_kurzbz; + $lv_faktor_objekt->studiensemester_kurzbz_von = $row->studiensemester_kurzbz_von; + $lv_faktor_objekt->studiensemester_kurzbz_bis = $row->studiensemester_kurzbz_bis; + $this->lv_faktoren[] = $lv_faktor_objekt; + } + + return true; + } + public function checkIfExists($lv_id, $von = null, $bis = null, $id = null, $lehrform_kurzbz = null) { if (!is_numeric($lv_id)) @@ -105,50 +143,80 @@ class lehrveranstaltung_faktor extends basis_db lehrveranstaltung_faktor_id != ". $this->db_add_param($id, FHC_INTEGER); } - if (!$result = $this->db_query($qry)) { - $this->errormsg = 'Datensatz konnte nicht geladen werden'; - return false; - } - - while ($row = $this->db_fetch_object($result)) + if (!empty($lehrform_kurzbz) && $lehrform_kurzbz !== "") { - $lv_faktor_objekt = new lehrveranstaltung_faktor(); - - $lv_faktor_objekt->lehrveranstaltung_faktor_id = $row->lehrveranstaltung_faktor_id; - $lv_faktor_objekt->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $lv_faktor_objekt->faktor = $row->faktor; - $lv_faktor_objekt->studiensemester_kurzbz_von = $row->studiensemester_kurzbz_von; - $lv_faktor_objekt->studiensemester_kurzbz_bis = $row->studiensemester_kurzbz_bis; - - $this->lv_faktoren[] = $lv_faktor_objekt; + $qry .= " + AND + lehrform_kurzbz = ". $this->db_add_param($lehrform_kurzbz); + } + else + { + $qry .= " + AND lehrform_kurzbz IS NULL + "; } - return true; + if ($result = $this->db_query($qry)) + { + if ($this->db_num_rows($result) > 0) + return true; + else + return false; + } } - public function addFaktor($lv_id, $faktor, $von, $bis = NULL) + public function save($new = false) { - $qry = 'INSERT INTO lehre.tbl_lehrveranstaltung_faktor (lehrveranstaltung_id, faktor, studiensemester_kurzbz_von, studiensemester_kurzbz_bis) - VALUES ('. $this->db_add_param($lv_id, FHC_INTEGER) . ', '. - $this->db_add_param($faktor, FHC_INTEGER) . ', '. - $this->db_add_param($von, FHC_STRING) . ', '. - $this->db_add_param($bis, FHC_STRING) . ');'; + if ($new) + { + $qry = 'INSERT INTO lehre.tbl_lehrveranstaltung_faktor (lehrveranstaltung_id, faktor, studiensemester_kurzbz_von, studiensemester_kurzbz_bis, lehrform_kurzbz, insertvon) + VALUES ('. $this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER) . ', '. + $this->db_add_param($this->faktor, FHC_INTEGER) . ', '. + $this->db_add_param($this->studiensemester_kurzbz_von) . ', '. + $this->db_add_param($this->studiensemester_kurzbz_bis) . ', '. + $this->db_add_param($this->lehrform_kurzbz) . ', '. + $this->db_add_param($this->insertvon) . ');'; + } + else + { + $qry = "UPDATE lehre.tbl_lehrveranstaltung_faktor + SET faktor = ". $this->db_add_param($this->faktor) ." , + studiensemester_kurzbz_von = ". $this->db_add_param($this->studiensemester_kurzbz_von) .", + studiensemester_kurzbz_bis = ". $this->db_add_param($this->studiensemester_kurzbz_bis) .", + lehrform_kurzbz = ". $this->db_add_param($this->lehrform_kurzbz) .", + updatevon = ". $this->db_add_param($this->updatevon) .", + updateamum = ". $this->db_add_param($this->updateamum) ." + WHERE lehrveranstaltung_faktor_id = ". $this->db_add_param($this->lehrveranstaltung_faktor_id, FHC_INTEGER); + } + if ($this->db_query($qry)) { - $qry_id = "SELECT currval('lehre.lehrveranstaltung_faktor_id_seq') as id;"; - if($this->db_query($qry_id)) + if ($new) { - if($row = $this->db_fetch_object()) + $qry_id = "SELECT currval('lehre.lehrveranstaltung_faktor_id_seq') as id;"; + if($this->db_query($qry_id)) { - $this->db_query('COMMIT'); - return [ - 'id' => $row->id, - 'lv_id' => $lv_id, - 'faktor' => $faktor, - 'von' => $von, - 'bis' => $bis - ]; + if($row = $this->db_fetch_object()) + { + $this->db_query('COMMIT'); + return [ + 'id' => $row->id, + 'lv_id' => $this->lehrveranstaltung_id, + 'faktor' => $this->faktor, + 'lehrform_kurzbz' => $this->lehrform_kurzbz, + 'von' => $this->studiensemester_kurzbz_von, + 'bis' => $this->studiensemester_kurzbz_bis + ]; + } + else + { + $this->db_query('ROLLBACK'); + return [ + 'status' => 'error', + 'message' => 'Fehler beim Einfügen in die Datenbank:' + ]; + } } else { @@ -160,34 +228,7 @@ class lehrveranstaltung_faktor extends basis_db } } else - { - $this->db_query('ROLLBACK'); - return [ - 'status' => 'error', - 'message' => 'Fehler beim Einfügen in die Datenbank:' - ]; - } - } - else - { - return [ - 'status' => 'error', - 'message' => 'Fehler beim Einfügen in die Datenbank:' - ]; - } - } - - public function updateFaktor($id, $faktor, $von, $bis) - { - $qry = "UPDATE lehre.tbl_lehrveranstaltung_faktor - SET faktor = ". $this->db_add_param($faktor) ." , - studiensemester_kurzbz_von = ". $this->db_add_param($von) .", - studiensemester_kurzbz_bis = ". $this->db_add_param($bis) ." - WHERE lehrveranstaltung_faktor_id = ". $this->db_add_param($id, FHC_INTEGER); - - if ($this->db_query($qry)) - { - return true; + return true; } else { @@ -215,6 +256,7 @@ class lehrveranstaltung_faktor extends basis_db WHERE lehrveranstaltung_id = ".$this->db_add_param($lv_id, FHC_INTEGER) . " AND (vonstsem.start <= now() OR vonstsem.start IS NULL) AND (bisstem.ende >= now() OR bisstem.ende IS NULL) + AND lehrform_kurzbz IS NULL ORDER BY vonstsem.start DESC LIMIT 1 "; diff --git a/locale/de-AT/lvaliste.php b/locale/de-AT/lvaliste.php index e51ddcbf5..5f57dd27c 100644 --- a/locale/de-AT/lvaliste.php +++ b/locale/de-AT/lvaliste.php @@ -7,6 +7,7 @@ $this->phrasen['lvaliste/hilfeAnzeigen']='Hilfe anzeigen'; $this->phrasen['lvaliste/lehrfach']='Lehrfach'; $this->phrasen['lvaliste/lehrform']='Lehrform'; +$this->phrasen['lvaliste/faktor']='Faktor'; $this->phrasen['lvaliste/lvBezeichnung']='LV Bezeichnung'; $this->phrasen['lvaliste/lehrfachBezeichnung']='Lehrfach Bezeichnung'; $this->phrasen['lvaliste/lektor']='LektorIn'; diff --git a/locale/en-US/lvaliste.php b/locale/en-US/lvaliste.php index 4560a4182..d94f41c81 100644 --- a/locale/en-US/lvaliste.php +++ b/locale/en-US/lvaliste.php @@ -7,6 +7,7 @@ $this->phrasen['lvaliste/hilfeAnzeigen']='Show Legend'; $this->phrasen['lvaliste/lehrfach']='Subject'; $this->phrasen['lvaliste/lehrform']='Course Type'; +$this->phrasen['lvaliste/faktor']='Factor'; $this->phrasen['lvaliste/lvBezeichnung']='Course Title'; $this->phrasen['lvaliste/lehrfachBezeichnung']='Subject Title'; $this->phrasen['lvaliste/lektor']='Lector'; diff --git a/public/css/Cis4/Cis.css b/public/css/Cis4/Cis.css index 2fbfb0cd7..ee90f491e 100644 --- a/public/css/Cis4/Cis.css +++ b/public/css/Cis4/Cis.css @@ -524,29 +524,29 @@ html { } @media screen and ( max-width: 576px ) { - .searchbar_icon img { + #nav-search .searchbar_results .searchbar_icon img { max-width: 65px !important; } - .searchbar_icon i { + #nav-search .searchbar_results .searchbar_icon i { font-size: 3em !important; } - .searchbar_grid { + #nav-search .searchbar_results .searchbar_grid { grid-template-columns: [icon] 75px [data] auto; } - .searchbar_table, - .searchbar_tablerow, - .searchbar_tablecell { + #nav-search .searchbar_results .searchbar_table, + #nav-search .searchbar_results .searchbar_tablerow, + #nav-search .searchbar_results .searchbar_tablecell { display: block; } - .searchbar_tablecell.searchbar_label { + #nav-search .searchbar_results .searchbar_tablecell.searchbar_label { font-weight: bold; } - .searchbar_tablecell.searchbar_value { + #nav-search .searchbar_results .searchbar_tablecell.searchbar_value { padding-left: 2.5rem; overflow-wrap: anywhere; } @@ -571,4 +571,12 @@ html { .height-enter-from, .height-leave-to { height: 0px; +} + +.zusatzinfo h2 { + font-size: 1.5em; +} + +.dashboard-item { + overscroll-behavior: none; } \ No newline at end of file diff --git a/public/js/TableWidget.js b/public/js/TableWidget.js index ec93422fc..4fa89aa0b 100644 --- a/public/js/TableWidget.js +++ b/public/js/TableWidget.js @@ -582,7 +582,16 @@ var FHC_TableWidget = { options.columns = arrayTabulatorColumns; options.data = data.dataset; - options.persistence = (typeof options.persistence == 'undefined') ? true : options.persistence; // enables persistence (default store in localStorage if available, else in cookie) + + let defaultPersistence = { + sort: true, + columns: true, + filter: false, + headerFilter: false, + group: false, + page: false, + } + options.persistence = (typeof options.persistence == 'undefined') ? defaultPersistence : options.persistence; // enables persistence (default store in localStorage if available, else in cookie) options.persistenceID = (typeof options.persistenceID == 'undefined') ? data.tableUniqueId : options.persistenceID; // persistenceID to store persistence data seperately for multiple tables options.movableColumns = (typeof options.movableColumns == 'undefined') ? true : options.movableColumns; // allows changing column order options.tooltipsHeader = (typeof options.tooltipsHeader == 'undefined') ? true : options.tooltipsHeader; // set header tooltip with column title diff --git a/public/js/components/Cis/Cms/StudiengangInformation/StudiengangInformation.js b/public/js/components/Cis/Cms/StudiengangInformation/StudiengangInformation.js index 30e6ecb6a..f12c58e2e 100644 --- a/public/js/components/Cis/Cms/StudiengangInformation/StudiengangInformation.js +++ b/public/js/components/Cis/Cms/StudiengangInformation/StudiengangInformation.js @@ -30,23 +30,23 @@ template:/*html*/`