From e387671e09cf9899ca5092ceec77f7012ec810ed Mon Sep 17 00:00:00 2001 From: Johann Hoffmann Date: Thu, 24 Oct 2024 17:46:42 +0200 Subject: [PATCH] added set language feature; phrasen plugin with optional reload if non responsive phrasen are used; stundenplan header mode & buttons reworked --- application/config/navigation.php | 13 ++++--- application/controllers/Cis4.php | 3 +- application/controllers/CisVue/Dashboard.php | 13 +++++-- .../controllers/api/frontend/v1/Phrasen.php | 21 +++++++++-- application/libraries/PhrasesLib.php | 14 +++++++- application/views/templates/CISVUE-Header.php | 6 ++-- public/css/Cis4/Cis.css | 33 +++++++++++++++++- public/images/icons/at.png | Bin 0 -> 1948 bytes public/images/icons/uk.png | Bin 0 -> 8723 bytes public/js/api/phrasen.js | 6 +++- public/js/apps/Cis.js | 10 ++++-- public/js/apps/Cis/Cms.js | 4 +-- public/js/apps/Cis/Documents.js | 10 +++--- public/js/apps/Cis/MyLv/Student.js | 2 +- public/js/apps/Cis/Stundenplan.js | 2 +- public/js/apps/Dashboard.js | 9 +++-- public/js/apps/lehre/Antrag.js | 4 +-- public/js/components/Calendar/Header.js | 30 ++++++++++------ public/js/components/Cis/Menu.js | 10 ++++++ public/js/plugin/Phrasen.js | 18 ++++++++-- 20 files changed, 166 insertions(+), 42 deletions(-) create mode 100644 public/images/icons/at.png create mode 100644 public/images/icons/uk.png diff --git a/application/config/navigation.php b/application/config/navigation.php index d57cd697a..2327513ad 100644 --- a/application/config/navigation.php +++ b/application/config/navigation.php @@ -1,6 +1,12 @@ array( 'fhcomplete' => array( @@ -50,7 +56,7 @@ $config['navigation_header'] = array( 'requiredPermissions' => 'basis/vilesci:r', 'children' => array( 'cis' => array( - 'link' => CIS_ROOT, + 'link' => $root, 'icon' => '', 'description' => 'CIS', 'sort' => 10 @@ -223,7 +229,7 @@ $config['navigation_menu']['organisation/Reihungstest/index'] = array( 'target' => '_blank' ), 'auswertung' => array( - 'link' => CIS_ROOT.'/cis/testtool/admin/auswertung.php', + 'link' => $root.'/cis/testtool/admin/auswertung.php', 'description' => 'Auswertung', 'icon' => 'list-alt', 'sort' => 1, @@ -319,5 +325,4 @@ $config['navigation_menu']['system/issues/Issues/*'] = array( 'target' => '_blank', 'requiredPermissions' => array('admin:rw') ), -); - +); \ No newline at end of file diff --git a/application/controllers/Cis4.php b/application/controllers/Cis4.php index e2b49c388..5b3f67403 100644 --- a/application/controllers/Cis4.php +++ b/application/controllers/Cis4.php @@ -34,6 +34,7 @@ class Cis4 extends FHC_Controller show_error("name couldn't be loaded for username ".getAuthUID()); } $begruesung = getData($begruesung); + $this->load->view('CisVue/Dashboard.php',["name"=> $begruesung]); } -} +} \ No newline at end of file diff --git a/application/controllers/CisVue/Dashboard.php b/application/controllers/CisVue/Dashboard.php index ec58c6735..94af6531b 100644 --- a/application/controllers/CisVue/Dashboard.php +++ b/application/controllers/CisVue/Dashboard.php @@ -27,6 +27,15 @@ class Dashboard extends Auth_Controller */ public function index() { - $this->load->view('CisVue/Dashboard.php'); + + $this->load->model('person/Person_model','PersonModel'); + $begruesung = $this->PersonModel->getFirstName(getAuthUID()); + if(isError($begruesung)) + { + show_error("name couldn't be loaded for username ".getAuthUID()); + } + $begruesung = getData($begruesung); + $this->load->view('CisVue/Dashboard.php',["name"=> $begruesung]); + } -} +} \ No newline at end of file diff --git a/application/controllers/api/frontend/v1/Phrasen.php b/application/controllers/api/frontend/v1/Phrasen.php index 472308d2b..317f515e0 100644 --- a/application/controllers/api/frontend/v1/Phrasen.php +++ b/application/controllers/api/frontend/v1/Phrasen.php @@ -28,8 +28,11 @@ class Phrasen extends FHCAPI_Controller public function __construct() { parent::__construct([ - 'loadModule' => self::PERM_ANONYMOUS + 'loadModule' => self::PERM_ANONYMOUS, + 'setLanguage' => self::PERM_ANONYMOUS ]); + + $this->load->helper('hlp_language'); } //------------------------------------------------------------------------------------------------------------------ @@ -43,4 +46,18 @@ class Phrasen extends FHCAPI_Controller $this->load->library('PhrasesLib', [$module], 'pj'); $this->terminateWithSuccess(json_decode($this->pj->getJSON())); } -} + + public function setLanguage() + { + $postParams = $this->getPostJSON(); + $language = $postParams->language; + $categories = $postParams->categories; + + setUserLanguage($language); + + $this->load->library('PhrasesLib', array($categories, $language), 'p'); + + $phrases = $this->p->setPhrases($categories, $language); + $this->terminateWithSuccess($phrases); + } +} \ No newline at end of file diff --git a/application/libraries/PhrasesLib.php b/application/libraries/PhrasesLib.php index dec3d54c0..ecd8094d6 100644 --- a/application/libraries/PhrasesLib.php +++ b/application/libraries/PhrasesLib.php @@ -200,6 +200,17 @@ class PhrasesLib return '<< PHRASE '.$phrase.' >>'; } + /** + * Workaround to reload the phrases array on an already constructed library. + * @parameters -> look for _setPhrases docs + */ + public function setPhrases($categories, $language) + { + if (count($categories) > 0) $this->_setPhrases($categories, $language); + + return $this->_phrases; + } + // ----------------------------------------------------------------------------------------------------------------- // Private methods @@ -319,6 +330,7 @@ class PhrasesLib { $this->_phrases = $phrases->retval; } + } /** @@ -329,4 +341,4 @@ class PhrasesLib { return json_encode($this->_phrases); } -} +} \ No newline at end of file diff --git a/application/views/templates/CISVUE-Header.php b/application/views/templates/CISVUE-Header.php index 692d73b86..732800cea 100644 --- a/application/views/templates/CISVUE-Header.php +++ b/application/views/templates/CISVUE-Header.php @@ -36,11 +36,13 @@ if (!isset($menu)) { logo-url="" avatar-url="" logout-url="" - :selectedtypes="selectedtypes" + at-flag-url="" + uk-flag-url="" + :selectedtypes="selectedtypes" :searchbaroptions="searchbaroptions" :searchfunction="searchfunction" :menu="" > -
+
\ No newline at end of file diff --git a/public/css/Cis4/Cis.css b/public/css/Cis4/Cis.css index 60a3baccd..81e35e63e 100644 --- a/public/css/Cis4/Cis.css +++ b/public/css/Cis4/Cis.css @@ -218,12 +218,27 @@ html { max-height: calc(100vh - var(--fhc-cis-header-height)); } +#nav-user-menu img { + object-fit: cover; + height: calc( 3 * var(--fhc-cis-header-py)); +} + +#fhc-languages { + display: flex; + text-align: center; +} + +#fhc-languages .btn { + flex: 1; + display: flex; +} + /* desktop */ @media (min-width: 992px) { body { display: flex; padding-top: var(--fhc-cis-header-height); - width: 100vw; + width: 99vw; /* overflow: visible !important; */ } #cis-header { @@ -310,6 +325,22 @@ html { min-width: var(--fhc-cis-menu-width); background-color: var(--fhc-cis-menu-lvl-2-bg); } + + #nav-user-menu img { + object-fit: cover; + height: calc( 3 * var(--fhc-cis-header-py)); + } + + #fhc-languages { + display: flex; + text-align: center; + } + + #fhc-languages .btn { + flex: 1; + display: flex; + } + #nav-main-menu { height: 100%; background-color: var(--fhc-cis-menu-bg); diff --git a/public/images/icons/at.png b/public/images/icons/at.png new file mode 100644 index 0000000000000000000000000000000000000000..5fb12554a0a80ea82a926dc755ead777bcaf6a16 GIT binary patch literal 1948 zcmeAS@N?(olHy`uVBq!ia0y~yU;;9k7&zE~)R&4Yzkn2Hfk$L90|Vb-5N14{zaj-F zC|TkfQ4*Y=R#Ki=l*&+EUaps!mtCBkSdglhUz9%kosAR&1G}cDi(^Q|oVPbO`Z7B* zxLk}*x&CO*jotu@NwOA9>?$v`9(3G2koV#K>V!l3XSXo|jU5s||JdVSAGcPqFc@6l zkvl#4D+fcuy6sn)85(}FFfg!iGB9umF)#?IFfb^1FfcewU|?ua0Q$`l7_v>H3Wi8H zJpTTMx%Ei;UM|0*dDxsEt k{`$8XSSSw}5b;XhW{XHy=iW2Gl7@l7)78&qol`;+07L`VCIA2c literal 0 HcmV?d00001 diff --git a/public/images/icons/uk.png b/public/images/icons/uk.png new file mode 100644 index 0000000000000000000000000000000000000000..2357ad975e73ccab2c4770339ccafe5bf3fb8d29 GIT binary patch literal 8723 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 TgmUtMO+J16+_6t4j?w=IGt&Wn literal 0 HcmV?d00001 diff --git a/public/js/api/phrasen.js b/public/js/api/phrasen.js index 896641bcf..c5994ea9b 100644 --- a/public/js/api/phrasen.js +++ b/public/js/api/phrasen.js @@ -18,5 +18,9 @@ export default { loadCategory(category) { return this.$fhcApi.get('/api/frontend/v1/phrasen/loadModule/' + category); + }, + setLanguage(categories,language) { + const payload = {categories, language} + return this.$fhcApi.post('/api/frontend/v1/phrasen/setLanguage', payload); } -}; +}; \ No newline at end of file diff --git a/public/js/apps/Cis.js b/public/js/apps/Cis.js index b626df690..4e67a28cb 100644 --- a/public/js/apps/Cis.js +++ b/public/js/apps/Cis.js @@ -1,10 +1,11 @@ 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; -Vue.createApp({ +const app = Vue.createApp({ components: { FhcSearchbar, CisMenu @@ -90,4 +91,7 @@ Vue.createApp({ }, } -}).mount('#cis-header'); \ No newline at end of file +}); +app.use(FhcApi); +app.use(Phrasen); +app.mount('#cis-header'); \ No newline at end of file diff --git a/public/js/apps/Cis/Cms.js b/public/js/apps/Cis/Cms.js index a2f9691b3..e812c354f 100644 --- a/public/js/apps/Cis/Cms.js +++ b/public/js/apps/Cis/Cms.js @@ -35,6 +35,6 @@ const app = Vue.createApp({ }, }); app.use(primevue.config.default, { zIndex: { overlay: 9999 } }); -app.use(Phrasen); +app.use(Phrasen, {reload: true}); app.mount("#cms"); -//#cms [data-confirm], #cms [data-href] +//#cms [data-confirm], #cms [data-href] \ No newline at end of file diff --git a/public/js/apps/Cis/Documents.js b/public/js/apps/Cis/Documents.js index d484c06db..e5d1e8fad 100644 --- a/public/js/apps/Cis/Documents.js +++ b/public/js/apps/Cis/Documents.js @@ -1,12 +1,13 @@ -import Phrasen from '../../mixins/Phrasen.js'; +// import Phrasen from '../../mixins/Phrasen.js'; +import Phrasen from '../../plugin/Phrasen.js'; //import {TabulatorFull as Tabulator} from '../../../../vendor/olifolkerd/tabulator5/dist/js/tabulator_esm.min.js'; //import CssLib from '../../helpers/CssLib.js'; //CssLib.import('../../vendor/olifolkerd/tabulator5/dist/css/tabulator_bootstrap5.min.css'); const app = Vue.createApp({ - mixins: [ - Phrasen - ], + // mixins: [ + // Phrasen + // ], data() { return { inscriptiontable: null, @@ -90,4 +91,5 @@ const app = Vue.createApp({ }); } }); +app.use(Phrasen, {reload: true}); app.mount('#content'); \ No newline at end of file diff --git a/public/js/apps/Cis/MyLv/Student.js b/public/js/apps/Cis/MyLv/Student.js index ded0178fb..e0a13a728 100644 --- a/public/js/apps/Cis/MyLv/Student.js +++ b/public/js/apps/Cis/MyLv/Student.js @@ -5,4 +5,4 @@ Vue.createApp({ components: { MylvStudent } -}).use(Phrasen).mount('#content'); \ No newline at end of file +}).use(Phrasen, {reload: true}).mount('#content'); \ No newline at end of file diff --git a/public/js/apps/Cis/Stundenplan.js b/public/js/apps/Cis/Stundenplan.js index 807f192d7..9ab22affa 100644 --- a/public/js/apps/Cis/Stundenplan.js +++ b/public/js/apps/Cis/Stundenplan.js @@ -109,5 +109,5 @@ const app = Vue.createApp({ ` }); app.config.unwrapInjectedRef = true; -app.use(Phrasen); +app.use(Phrasen, {reload: true}); app.mount('#content'); \ No newline at end of file diff --git a/public/js/apps/Dashboard.js b/public/js/apps/Dashboard.js index e56425a6d..039e7b901 100644 --- a/public/js/apps/Dashboard.js +++ b/public/js/apps/Dashboard.js @@ -1,7 +1,9 @@ import {CoreNavigationCmpt} from '../components/navigation/Navigation.js'; import CoreDashboard from '../components/Dashboard/Dashboard.js'; +import FhcApi from '../../plugin/FhcApi.js'; +import Phrasen from '../../plugin/Phrasen.js'; -Vue.createApp({ +const app = Vue.createApp({ data: () => ({ appSideMenuEntries: {} }), @@ -9,4 +11,7 @@ Vue.createApp({ CoreNavigationCmpt, CoreDashboard } -}).mount('#main'); +}) +app.use(FhcApi); +app.use(Phrasen); +app.mount('#main'); \ No newline at end of file diff --git a/public/js/apps/lehre/Antrag.js b/public/js/apps/lehre/Antrag.js index d0c8ab89a..179e810cc 100644 --- a/public/js/apps/lehre/Antrag.js +++ b/public/js/apps/lehre/Antrag.js @@ -20,5 +20,5 @@ const app = Vue.createApp({ } }); app - .use(Phrasen) - .mount('#wrapper'); + .use(Phrasen, {reload: true}) + .mount('#wrapper'); \ No newline at end of file diff --git a/public/js/components/Calendar/Header.js b/public/js/components/Calendar/Header.js index 663833aef..60c724162 100644 --- a/public/js/components/Calendar/Header.js +++ b/public/js/components/Calendar/Header.js @@ -5,7 +5,6 @@ export default { modes:{ week:"Woche", month:"Monat", - years:"Jahre", }, } }, @@ -44,9 +43,23 @@ export default { }, template: `
+ +
+
+
+ +
+
+
+
- -
+
+ +
+
- -
-
-
-
- -
+
+
` -} +} \ No newline at end of file diff --git a/public/js/components/Cis/Menu.js b/public/js/components/Cis/Menu.js index c226eba6a..a5d68bfbe 100644 --- a/public/js/components/Cis/Menu.js +++ b/public/js/components/Cis/Menu.js @@ -12,6 +12,8 @@ export default { logoUrl: String, avatarUrl: String, logoutUrl: String, + atFlagUrl: String, + ukFlagUrl: String, selectedtypes: Array, searchbaroptions: Object, searchfunction: Function @@ -60,10 +62,14 @@ export default { setActiveEntry(content_id){ this.activeEntry = content_id; + }, + handleChangeLanguage(lang) { + this.$p.setLanguage(lang, this.$fhcApi) } }, mounted(){ this.entries = this.menu; + this.$p.loadCategory(['ui', 'global']) }, template: /*html*/`