Hide "Alles"-RadioButton when user is student

This commit is contained in:
Daniel Egger 2018-10-05 14:23:53 +02:00
parent bd4a9fded3
commit 67f303f46f
4 changed files with 23 additions and 12 deletions

View File

@ -29,7 +29,7 @@
: []; : [];
}, },
currentFilter() { currentFilter() {
return this.$store.state.filterForGroup; return this.$store.state.filterForSchoolClass;
}, },
}, },

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="filter-bar"> <div class="filter-bar">
<radiobutton label="Alles" :checked="!currentFilter" v-on:input="updateFilter(false)"></radiobutton> <radiobutton v-if="showEverythingRadioButton" label="Alles" :checked="!currentFilter" v-on:input="updateFilter(false)"></radiobutton>
<radiobutton <radiobutton
v-for="schoolClass in schoolClasses" v-for="schoolClass in schoolClasses"
:key="schoolClass.id" :key="schoolClass.id"
@ -23,6 +23,12 @@
Radiobutton Radiobutton
}, },
beforeUpdate() {
if (!this.showEverythingRadioButton && !this.currentFilter) {
this.updateFilter(this.schoolClasses && this.schoolClasses.length > 0 ? this.schoolClasses[0].id : null);
}
},
apollo: { apollo: {
me: { me: {
query: ME_QUERY query: ME_QUERY
@ -31,22 +37,27 @@
data() { data() {
return { return {
me: {} me: {
permissions: []
}
} }
}, },
computed: { computed: {
currentFilter() { currentFilter() {
return this.$store.state.filterForGroup; return this.$store.state.filterForSchoolClass;
}, },
schoolClasses() { schoolClasses() {
return this.$getRidOfEdges(this.me.schoolclassSet); return this.$getRidOfEdges(this.me.schoolclassSet);
} },
showEverythingRadioButton() {
return this.me.permissions.includes('user.can_edit_modules');
},
}, },
methods: { methods: {
...mapActions({ ...mapActions({
updateFilter: 'setFilterForGroup' updateFilter: 'setfilterForSchoolClass'
}) })
} }
} }

View File

@ -22,7 +22,7 @@
return this.rooms.filter(room => this.visibleFor(room, this.currentFilter)); return this.rooms.filter(room => this.visibleFor(room, this.currentFilter));
}, },
currentFilter() { currentFilter() {
return this.$store.state.filterForGroup; return this.$store.state.filterForSchoolClass;
} }
}, },

View File

@ -12,7 +12,7 @@ export default new Vuex.Store({
contentBlockPosition: {}, contentBlockPosition: {},
scrollPosition: 0, scrollPosition: 0,
moduleSlug: 'geld', moduleSlug: 'geld',
filterForGroup: false, filterForSchoolClass: false,
currentContentBlock: '', currentContentBlock: '',
parentRoom: null parentRoom: null
}, },
@ -49,8 +49,8 @@ export default new Vuex.Store({
document.body.classList.add('no-scroll'); // won't get at the body any other way document.body.classList.add('no-scroll'); // won't get at the body any other way
commit('setModal', payload); commit('setModal', payload);
}, },
setFilterForGroup({commit}, payload) { setfilterForSchoolClass({commit}, payload) {
commit('setFilterForGroup', payload); commit('setfilterForSchoolClass', payload);
} }
}, },
@ -73,8 +73,8 @@ export default new Vuex.Store({
setCurrentContentBlock(state, payload) { setCurrentContentBlock(state, payload) {
state.currentContentBlock = payload; state.currentContentBlock = payload;
}, },
setFilterForGroup(state, payload) { setfilterForSchoolClass(state, payload) {
state.filterForGroup = payload; state.filterForSchoolClass = payload;
}, },
setParentRoom(state, payload) { setParentRoom(state, payload) {
state.parentRoom = payload; state.parentRoom = payload;