Parcourir la source

Added experiment validated screen

rigwild il y a 4 ans
Parent
commit
f38091d0c8

+ 1 - 1
src/mixins/ExperimentBase.vue

@@ -86,7 +86,7 @@ export default {
       obj.loadingErrorMessage = undefined
       this.sendMessage({ msgId: experimentMsgId.VALIDATED, msg: obj })
       this.setExperimentDone({ experimentName: this.experimentName, sceneName: this.sceneName, done: true })
-      this.$router.push(`/experiments/${this.experimentName}`)
+      this.$router.push(`/experiments/${this.experimentName}/${this.sceneName}/validated`)
     },
 
 

+ 1 - 1
src/mixins/ExperimentBaseAreSameImages.vue

@@ -108,7 +108,7 @@ export default {
       }
       this.sendMessage({ msgId: experimentMsgId.VALIDATED, msg: obj })
       this.setExperimentDone({ experimentName: this.experimentName, sceneName: this.sceneName, done: true })
-      this.$router.push(`/experiments/${this.experimentName}`)
+      this.$router.push(`/experiments/${this.experimentName}/${this.sceneName}/validated`)
     }
   }
 }

+ 1 - 1
src/mixins/ExperimentBaseExtracts.vue

@@ -204,7 +204,7 @@ export default {
       }
       this.sendMessage({ msgId: experimentMsgId.VALIDATED, msg: obj })
       this.setExperimentDone({ experimentName: this.experimentName, sceneName: this.sceneName, done: true })
-      this.$router.push(`/experiments/${this.experimentName}`)
+      this.$router.push(`/experiments/${this.experimentName}/${this.sceneName}/validated`)
     }
   }
 }

+ 10 - 4
src/router/index.js

@@ -1,7 +1,7 @@
 import Vue from 'vue'
 import Router from 'vue-router'
-import GdprNotice from '@/views/GdprNotice.vue'
-import HostConfig from '@/views/HostConfig.vue'
+import GdprNotice from '@/views/GdprNotice'
+import HostConfig from '@/views/HostConfig'
 import Experiments from './experiments'
 
 Vue.use(Router)
@@ -25,12 +25,18 @@ export default new Router({
     {
       path: '/experiments',
       name: 'ExperimentsList',
-      component: () => import('@/views/ExperimentsList.vue')
+      component: () => import('@/views/ExperimentsList')
     },
     {
       path: '/experiments/:experimentName',
       name: 'SelectExperimentScene',
-      component: () => import('@/views/SelectExperimentScene.vue'),
+      component: () => import('@/views/SelectExperimentScene'),
+      props: true
+    },
+    {
+      path: '/experiments/:experimentName/:sceneName/validated',
+      name: 'ExperimentValidated',
+      component: () => import('@/views/ExperimentValidated'),
       props: true
     },
     ...Experiments

+ 80 - 0
src/views/ExperimentValidated.vue

@@ -0,0 +1,80 @@
+<template>
+  <div>
+    <h2>Experiment "{{ experimentFullName }}"</h2>
+
+    <v-card>
+      <v-card-title primary-title>
+        <v-spacer />
+        <div class="headline">Experiment validated for the scene "{{ sceneName }}"</div>
+        <v-spacer />
+      </v-card-title>
+      <v-card-actions>
+        <v-spacer />
+        <v-btn flat exact to="/experiments/">
+          <v-icon left>home</v-icon>
+          Select another experiment
+        </v-btn>
+
+        <v-btn flat exact :to="`/experiments/${experimentName}`">
+          <v-icon left>arrow_back</v-icon>
+          Go back to scene selection
+        </v-btn>
+
+        <v-btn flat exact :to="`/experiments/${experimentName}/${getRandomScene()}`">
+          <v-icon left>shuffle</v-icon>
+          Continue with a random scene
+        </v-btn>
+        <v-spacer />
+      </v-card-actions>
+    </v-card>
+  </div>
+</template>
+
+<script>
+import { mapState } from 'vuex'
+import Experiments from '@/router/experiments'
+import { getExperimentSceneList } from '@/config.utils'
+import { rand } from '@/functions'
+
+export default {
+  name: 'ExperimentValidated',
+  props: {
+    experimentName: {
+      type: String,
+      required: true
+    },
+    sceneName: {
+      type: String,
+      required: true
+    }
+  },
+  data() {
+    return {
+      experimentFullName: null,
+      availableScenes: []
+    }
+  },
+  computed: {
+    ...mapState(['progression'])
+  },
+  mounted() {
+    const scenesList = getExperimentSceneList(this.experimentName)
+
+    // Find the selected experiment full name
+    this.experimentFullName = Experiments.find(x => x.name === this.experimentName).meta.fullName
+
+    // Get a list of available and not already validated scenes for this experiment
+    this.availableScenes = Object.keys(this.progression[this.experimentName])
+      .filter(aScene =>
+        scenesList.includes(aScene) &&
+        this.progression[this.experimentName] &&
+        !this.progression[this.experimentName][aScene].done)
+  },
+
+  methods: {
+    getRandomScene() {
+      return this.availableScenes[rand(0, this.availableScenes.length - 1)]
+    }
+  }
+}
+</script>

+ 1 - 1
src/views/HostConfig.vue

@@ -123,7 +123,7 @@ export default {
   },
 
   mounted() {
-    if (process.env.NODE_ENV === 'rigwild')
+    if (process.env.NODE_ENV === 'development')
       this.config = {
         ssl: false,
         host: 'localhost',