diff --git a/client/src/components/Chapter.vue b/client/src/components/Chapter.vue
index ab037d82..ee65f38f 100644
--- a/client/src/components/Chapter.vue
+++ b/client/src/components/Chapter.vue
@@ -4,7 +4,8 @@
-
+
@@ -21,6 +22,17 @@
AddContentBlockButton
},
+ computed: {
+ filteredContentBlocks() {
+ return this.chapter && this.chapter.contentBlocks
+ ? this.chapter.contentBlocks.filter(contentBlock => this.visibleFor(contentBlock, this.currentFilter))
+ : [];
+ },
+ currentFilter() {
+ return this.$store.state.filterForGroup;
+ }
+ },
+
methods: {
visibleFor(contentBlock, userGroup) {
return !contentBlock.hiddenFor.map(entry => entry.id).includes(userGroup);
diff --git a/client/src/components/FilterBar.vue b/client/src/components/FilterBar.vue
index 83648ed2..f5e887cb 100644
--- a/client/src/components/FilterBar.vue
+++ b/client/src/components/FilterBar.vue
@@ -1,19 +1,26 @@
-
-
+
+
diff --git a/client/src/store/index.js b/client/src/store/index.js
index ab39ade7..49740265 100644
--- a/client/src/store/index.js
+++ b/client/src/store/index.js
@@ -13,7 +13,8 @@ export default new Vuex.Store({
contentBlockPosition: {},
scrollPosition: 0,
moduleSlug: 'mein-neues-umfeld',
- updateContentBlocks: false
+ updateContentBlocks: false,
+ filterForGroup: false
},
getters: {},
@@ -48,6 +49,9 @@ export default new Vuex.Store({
},
resetUpdateContentBlocksFlag({commit}) {
commit('updateContentBlocks', false);
+ },
+ setFilterForGroup({commit}, payload) {
+ commit('setFilterForGroup', payload);
}
},
@@ -72,6 +76,9 @@ export default new Vuex.Store({
},
setContentBlockPosition(state, payload) {
state.contentBlockPosition = payload;
+ },
+ setFilterForGroup(state, payload) {
+ state.filterForGroup = payload;
}
}
})