diff --git a/client/src/components/Chapter.vue b/client/src/components/Chapter.vue
index 02bc76a2..ebb91eb6 100644
--- a/client/src/components/Chapter.vue
+++ b/client/src/components/Chapter.vue
@@ -19,12 +19,13 @@
@@ -79,8 +80,6 @@
import CHAPTER_QUERY from '@/graphql/gql/queries/chapterQuery.gql';
import DELETE_CONTENT_BLOCK_MUTATION from '@/graphql/gql/mutations/deleteContentBlock.gql';
- import {mapState} from 'vuex';
-
import me from '@/mixins/me';
import {hidden} from '@/helpers/visibility';
import {CONTENT_TYPE} from '@/consts/types';
@@ -96,7 +95,20 @@
export default {
name: 'ContentBlock',
- props: ['contentBlock', 'parent'],
+ props: {
+ contentBlock: {
+ type: Object,
+ default: () => ({})
+ },
+ parent: {
+ type: String,
+ default: ''
+ },
+ editMode: {
+ type: Boolean,
+ default: true
+ }
+ },
mixins: [me],
@@ -110,9 +122,8 @@
},
computed: {
- ...mapState(['editModule']),
canEditModule() {
- return !this.contentBlock.indent && this.editModule;
+ return !this.contentBlock.indent && this.editMode;
},
specialClass() {
return `content-block--${this.contentBlock.type.toLowerCase()}`;
diff --git a/client/src/components/content-blocks/ContentComponent.vue b/client/src/components/content-blocks/ContentComponent.vue
index 48d1e4b8..544e78e7 100644
--- a/client/src/components/content-blocks/ContentComponent.vue
+++ b/client/src/components/content-blocks/ContentComponent.vue
@@ -7,6 +7,7 @@
diff --git a/client/src/components/objective-groups/Objective.vue b/client/src/components/objective-groups/Objective.vue
index 1cfb8e14..ffdebde0 100644
--- a/client/src/components/objective-groups/Objective.vue
+++ b/client/src/components/objective-groups/Objective.vue
@@ -2,16 +2,16 @@
{{ group.displayTitle }}
@@ -16,13 +16,14 @@
@@ -33,7 +34,6 @@
import AddContentButton from '@/components/AddContentButton';
import me from '@/mixins/me';
- import editModule from '@/mixins/edit-module';
import {OBJECTIVE_GROUP_TYPE} from '@/consts/types';
import {hidden} from '@/helpers/visibility';
@@ -46,7 +46,7 @@
}
},
- mixins: [me, editModule],
+ mixins: [me],
components: {
AddContentButton,
@@ -61,6 +61,9 @@
},
computed: {
+ editMode() {
+ return this.group.module.inEditMode;
+ },
hidden() {
return hidden({
block: this.group,
diff --git a/client/src/components/toggle-menu/ToggleEditing.vue b/client/src/components/toggle-menu/ToggleEditing.vue
index dc655dca..9f3e0945 100644
--- a/client/src/components/toggle-menu/ToggleEditing.vue
+++ b/client/src/components/toggle-menu/ToggleEditing.vue
@@ -1,6 +1,6 @@
diff --git a/client/src/graphql/cache.js b/client/src/graphql/cache.js
index 787e7f22..42f52bd8 100644
--- a/client/src/graphql/cache.js
+++ b/client/src/graphql/cache.js
@@ -23,6 +23,13 @@ const typePolicies = {
keyFields: ['slug']
},
ModuleNode: {
+ fields: {
+ inEditMode: {
+ read(previous) {
+ return previous !== undefined ? previous : false;
+ }
+ }
+ },
keyFields: ['slug']
},
RoomEntryNode: {
diff --git a/client/src/graphql/gql/fragments/moduleParts.gql b/client/src/graphql/gql/fragments/moduleParts.gql
index 868214b1..7137d7b2 100644
--- a/client/src/graphql/gql/fragments/moduleParts.gql
+++ b/client/src/graphql/gql/fragments/moduleParts.gql
@@ -7,6 +7,7 @@ fragment ModuleParts on ModuleNode {
slug
heroImage
solutionsEnabled
+ inEditMode @client
topic {
slug
title
diff --git a/client/src/graphql/gql/fragments/objectiveGroupParts.gql b/client/src/graphql/gql/fragments/objectiveGroupParts.gql
index f8bbd1b5..3694f422 100644
--- a/client/src/graphql/gql/fragments/objectiveGroupParts.gql
+++ b/client/src/graphql/gql/fragments/objectiveGroupParts.gql
@@ -2,6 +2,10 @@ fragment ObjectiveGroupParts on ObjectiveGroupNode {
id
title
displayTitle
+ module {
+ slug
+ inEditMode @client
+ }
hiddenFor {
id
name