|
@@ -2,24 +2,35 @@ import defaultState from '@/store/state'
|
|
|
import Experiments from '@/router/experiments'
|
|
|
|
|
|
const checkProgression = (state, experimentName, sceneName) => {
|
|
|
- if (!state.progression[experimentName])
|
|
|
- state.progression[experimentName] = {}
|
|
|
- if (!state.progression[experimentName][sceneName])
|
|
|
- state.progression[experimentName][sceneName] = { done: false, data: {} }
|
|
|
+ if (!state.progression[state.experimentId])
|
|
|
+ state.progression[state.experimentId] = {}
|
|
|
+
|
|
|
+ if (!state.progression[state.experimentId][state.userId])
|
|
|
+ state.progression[state.experimentId][state.userId] = {}
|
|
|
+
|
|
|
+ if (!state.progression[state.experimentId][state.userId][experimentName])
|
|
|
+ state.progression[state.experimentId][state.userId][experimentName] = {}
|
|
|
+
|
|
|
+ if (!state.progression[state.experimentId][state.userId][experimentName][sceneName])
|
|
|
+ state.progression[state.experimentId][state.userId][experimentName][sceneName] = { done: false, data: {} }
|
|
|
}
|
|
|
const createProgressionObj = (state, scenes) => {
|
|
|
const progressionObj = Experiments.reduce((accExpe, expe) => {
|
|
|
const scenesProgressObj = scenes.reduce((accScene, scene) => {
|
|
|
+
|
|
|
+ // check progression
|
|
|
+ checkProgression(state, expe, scene)
|
|
|
+
|
|
|
// Do not overwrite current progression
|
|
|
- if (state.progression[expe.name] && state.progression[expe.name][scene])
|
|
|
- accScene[scene] = state.progression[expe.name][scene]
|
|
|
+ if (state.progression[state.experimentId][state.userId][expe.name] && state.progression[state.experimentId][state.userId][expe.name][scene])
|
|
|
+ accScene[scene] = state.progression[state.experimentId][state.userId][expe.name][scene]
|
|
|
else accScene[scene] = { done: false, data: {} }
|
|
|
return accScene
|
|
|
}, {})
|
|
|
accExpe[expe.name] = scenesProgressObj
|
|
|
return accExpe
|
|
|
}, {})
|
|
|
- state.progression = progressionObj
|
|
|
+ state.progression[state.experimentId][state.userId] = progressionObj
|
|
|
}
|
|
|
|
|
|
export default {
|
|
@@ -72,12 +83,18 @@ export default {
|
|
|
createProgressionObj(state, scenes)
|
|
|
},
|
|
|
|
|
|
+ updateExperimentProgress(state) {
|
|
|
+ if (!state.scenesList)
|
|
|
+ return
|
|
|
+ createProgressionObj(state, state.scenesList)
|
|
|
+ },
|
|
|
+
|
|
|
setExperimentProgress(state, { experimentName, sceneName, data }) {
|
|
|
checkProgression(state, experimentName, sceneName)
|
|
|
- state.progression[experimentName][sceneName].data = data
|
|
|
+ state.progression[state.experimentId][state.userId][experimentName][sceneName].data = data
|
|
|
},
|
|
|
setExperimentDone(state, { experimentName, sceneName, done }) {
|
|
|
checkProgression(state, experimentName, sceneName)
|
|
|
- state.progression[experimentName][sceneName].done = done
|
|
|
+ state.progression[state.experimentId][state.userId][experimentName][sceneName].done = done
|
|
|
}
|
|
|
}
|