diff --git a/public/js/components/Cis/Mylv/LvMenu.js b/public/js/components/Cis/Mylv/LvMenu.js
index f0ce41aca..7f30de4eb 100644
--- a/public/js/components/Cis/Mylv/LvMenu.js
+++ b/public/js/components/Cis/Mylv/LvMenu.js
@@ -9,6 +9,10 @@ export default {
type:Array,
default:null,
},
+ preselectedMenu: {
+ type: Object,
+ default: null,
+ },
},
data(){
return{
@@ -44,11 +48,26 @@ export default {
},
+ back: function(){
+ if(this.preselectedMenu){
+ this.$emit('hideModal');
+ }else{
+ this.$emit('update:isMenuSelected', false);
+ }
+ },
+ },
+ watch:{
+ 'preselectedMenu': function (newValue) {
+ if (newValue) {
+ this.selectedMenu = newValue;
+ this.$emit("update:isMenuSelected", true);
+ }
+ }
},
template:/*html*/`
-
+
{{selectedMenu.name}}
diff --git a/public/js/components/Cis/Mylv/LvUebersicht.js b/public/js/components/Cis/Mylv/LvUebersicht.js
index 51a9076ba..6670a0c76 100644
--- a/public/js/components/Cis/Mylv/LvUebersicht.js
+++ b/public/js/components/Cis/Mylv/LvUebersicht.js
@@ -7,7 +7,13 @@ export default {
type:Object,
required:true,
default:null,
- }
+ },
+ // prop used to preselect a menu item and skip the grid overview
+ preselectedMenu: {
+ type: Object,
+ required: false,
+ default: null,
+ }
},
data(){
return {
@@ -28,12 +34,15 @@ export default {
this.isMenuSelected = false;
},
showModal: function(){
-
- this.$fhcApi.factory.addons.getLvMenu(this.event.lehrveranstaltung_id, this.event.studiensemester_kurzbz).then(res =>{
- if(res.data){
- this.menu = res.data;
- }
- });
+ if(!this.preselectedMenu){
+ this.$fhcApi.factory.addons.getLvMenu(this.event.lehrveranstaltung_id, this.event.studiensemester_kurzbz).then(res =>{
+ if(res.data){
+ this.menu = res.data;
+ }
+ });
+ }else{
+ this.isMenuSelected = true;
+ }
},
},
mounted(){
@@ -47,7 +56,7 @@ export default {
-
+
diff --git a/public/js/components/Cis/Mylv/Semester/Studiengang/Lv.js b/public/js/components/Cis/Mylv/Semester/Studiengang/Lv.js
index dd6c57b30..5acf29221 100755
--- a/public/js/components/Cis/Mylv/Semester/Studiengang/Lv.js
+++ b/public/js/components/Cis/Mylv/Semester/Studiengang/Lv.js
@@ -1,10 +1,14 @@
import LvPruefungen from "./Lv/Pruefungen.js";
import LvInfo from "./Lv/Info.js";
import Phrasen from "../../../../../mixins/Phrasen.js";
+import LvUebersicht from "../../LvUebersicht.js";
// TODO(chris): L10n
export default {
+ components:{
+ LvUebersicht,
+ },
mixins: [
Phrasen
],
@@ -29,7 +33,9 @@ export default {
data: () => {
return {
pruefungen: null,
- info: null
+ info: null,
+ menu: null,
+ preselectedMenuItem: null,
}
},
computed: {
@@ -44,6 +50,28 @@ export default {
}
},
methods: {
+ openLvOption(menuItem){
+ if (menuItem.id == "core_menu_mailanstudierende"){
+ window.location.href = menuItem.c4_link;
+ }else{
+ this.preselectedMenuItem = menuItem;
+ Vue.nextTick(() => {
+ this.$refs.lvUebersicht.show();
+ });
+ }
+ },
+ onShowDropdown(){
+ //load menu
+ this.$fhcApi.factory.addons.getLvMenu(this.lehrveranstaltung_id, this.studien_semester)
+ .then(res => {
+ this.menu = res.data;
+ })
+ .catch((error) => this.$fhcAlert.handleSystemError);
+ },
+ onHideDropdown(){
+ //reset menu
+ this.menu = null;
+ },
openPruefungen() {
if (!this.pruefungen) {
this.pruefungen = true;
@@ -71,7 +99,15 @@ export default {
}
}
},
- template: `
+ template: /*html*/`
+
+
+
@@ -80,11 +116,26 @@ export default {