diff --git a/application/controllers/api/frontend/v1/lv/Betreuungen.php b/application/controllers/api/frontend/v1/lv/Betreuungen.php new file mode 100644 index 000000000..8267a5b56 --- /dev/null +++ b/application/controllers/api/frontend/v1/lv/Betreuungen.php @@ -0,0 +1,43 @@ +. + */ + +if (! defined('BASEPATH')) exit('No direct script access allowed'); + +class Betreuungen extends FHCAPI_Controller +{ + + /** + * Object initialization + */ + public function __construct() + { + parent::__construct([ + 'getBetreuungen' => self::PERM_LOGGED, + ]); + + } + + //------------------------------------------------------------------------------------------------------------------ + // Public methods + + public function getBetreuungen() + { + + } + +} diff --git a/public/js/components/Cis/Mylv/Lehrenheiten.js b/public/js/components/Cis/Mylv/Lehrenheiten.js new file mode 100644 index 000000000..97aa926a3 --- /dev/null +++ b/public/js/components/Cis/Mylv/Lehrenheiten.js @@ -0,0 +1,12 @@ +export default { + name: "Lehrenheiten", + props: ["current"], + data() { + return {}; + }, + template: /*html*/ ` +
+ LEHRENHEITEN PLACEHOLDER +
+ `, +} \ No newline at end of file diff --git a/public/js/components/Cis/Mylv/Lvs.js b/public/js/components/Cis/Mylv/Lvs.js new file mode 100644 index 000000000..536a03384 --- /dev/null +++ b/public/js/components/Cis/Mylv/Lvs.js @@ -0,0 +1,46 @@ +import MylvSemesterCards from "./Semester.js"; +import MylvTable from "./Table.js"; + +export default { + name: "Lvs", + components: { + MylvSemesterCards, + MylvTable + }, + props: ["current"], + data() { + return { + mode: localStorage.getItem('myLvaDefaultMode') ?? 'cards' + }; + }, + methods: { + selectMode(mode) { + localStorage.setItem('myLvaDefaultMode', mode) + this.mode = mode + }, + }, + template: /*html*/ ` +
+
+ + +
+ + +
+ `, +} \ No newline at end of file diff --git a/public/js/components/Cis/Mylv/MyLv.js b/public/js/components/Cis/Mylv/MyLv.js index bb130f2db..ecb30b5f3 100644 --- a/public/js/components/Cis/Mylv/MyLv.js +++ b/public/js/components/Cis/Mylv/MyLv.js @@ -1,15 +1,15 @@ -import MylvSemesterCards from "./Semester.js"; -import MylvTable from "./Table.js"; -import ApiAddons from "../../../api/factory/addons.js" +import Lvs from "./Lvs.js"; +import Lehrenheiten from "./Lehrenheiten.js"; +import Supervisor from "./Supervisor.js"; -// TODO(chris): phrase: global/studiensemester_auswaehlen -// TODO(chris): phrase: next & prev +aria-label +import ApiAddons from "../../../api/factory/addons.js" export default { name: 'MyLv', components: { - MylvSemesterCards, - MylvTable + Lvs, + Lehrenheiten, + Supervisor, }, data: () => { return { @@ -17,7 +17,8 @@ export default { studiensemester: null, lvs: {}, currentSemester: null, - mode: localStorage.getItem('myLvaDefaultMode') ?? 'cards' + modes: ["lvs", "lehrenheiten", "supervision"], + selectedMode: "lvs" }; }, provide() { @@ -91,13 +92,9 @@ export default { }, currentIsLast() { return this.studiensemester[this.studiensemester.length-1].studiensemester_kurzbz == this.currentSemester; - } + }, }, methods: { - clickMode(evt, mode) { - localStorage.setItem('myLvaDefaultMode', mode) - this.mode = mode - }, prevSem() { this.$refs.studiensemester.selectedIndex--; this.$refs.studiensemester.dispatchEvent(new Event('change', { bubbles: true })); @@ -126,7 +123,7 @@ export default { next(); }, - template: ` + template: /*html*/ `

{{$p.t('lehre/myLV')}}


@@ -135,48 +132,39 @@ export default {
-
-
- - + + + +
+
+
+ -
-
-
- - -
+
+ + +
-
- ` -}; + + `, +} \ No newline at end of file diff --git a/public/js/components/Cis/Mylv/Supervisor.js b/public/js/components/Cis/Mylv/Supervisor.js new file mode 100644 index 000000000..32af05e63 --- /dev/null +++ b/public/js/components/Cis/Mylv/Supervisor.js @@ -0,0 +1,12 @@ +export default { + name: "Supervisor", + props: ["current"], + data() { + return {}; + }, + template: /*html*/ ` +
+ SUPERVISOR PLACEHOLDER +
+ `, +} \ No newline at end of file diff --git a/public/js/components/Cis/Mylv/Table.js b/public/js/components/Cis/Mylv/Table.js index 18f169e8f..ed4057753 100644 --- a/public/js/components/Cis/Mylv/Table.js +++ b/public/js/components/Cis/Mylv/Table.js @@ -22,21 +22,22 @@ export default { layout: 'fitDataStretch', placeholder: this.$p.t('global/noDataAvailable'), columns: [ - {title: Vue.computed(() => this.$capitalize(this.$p.t('lehre/studiengang'))), field: 'sg_bezeichnung', widthGrow: 1}, - {title: Vue.computed(() => this.$capitalize(this.$p.t('global/bezeichnung'))), field: 'bezeichnung', widthGrow: 2}, - {title: Vue.computed(() => this.$capitalize(this.$p.t('lehre/orgform'))), field: 'orgform_kurzbz', widthGrow: 1}, - {title: Vue.computed(() => this.$capitalize(this.$p.t('lehre/kurzbz'))), field: 'studiengang_kuerzel', widthGrow: 1}, - {title: Vue.computed(() => this.$capitalize(this.$p.t('lehre/semesterstunden'))), field: 'semesterstunden', + {titlePhrase: 'lehre/studiengang', title: 'placeholder', field: 'sg_bezeichnung', widthGrow: 1}, + {titlePhrase: 'global/bezeichnung', title: 'placeholder', field: 'bezeichnung', widthGrow: 2}, + {titlePhrase: 'lehre/orgform', title: 'placeholder', field: 'orgform_kurzbz', widthGrow: 1}, + {titlePhrase: 'lehre/kurzbz', title: 'placeholder', field: 'studiengang_kuerzel', widthGrow: 1}, + {titlePhrase: 'lehre/semesterstunden', title: 'placeholder', field: 'semesterstunden', bottomCalc: this.semesterstundenCalc, widthGrow: 1, visible: false}, {title: Vue.computed(() => this.$capitalize(this.$p.t('global/actions'))), headerSort: false, field: 'menu', formatter: this.actionFormatter, widthGrow: 1, tooltip: this.spoofingFunc} ], persistence: false, - persistenceID: "mylv_2026_04_17" + persistenceID: "mylv_2026_04_17", + locale: true, }, mylvTableEventHandlers: [ - ] + ], } }, computed: {