Просмотр исходного кода

:bug: Fixed bug: form dropdowns didn't index correctly

tags/0.0.3^2
tomit4 3 лет назад
Родитель
Сommit
d6b0ff51bf
1 измененных файлов: 23 добавлений и 5 удалений
  1. 23
    5
      frontend/src/utils/survey.js

+ 23
- 5
frontend/src/utils/survey.js Просмотреть файл

6
     constructor() {
6
     constructor() {
7
         this.questionsFromDb = []
7
         this.questionsFromDb = []
8
     }
8
     }
9
-    _addResponses(responseKeys, possibleResponsesByCategory) {
9
+    async _addResponses(responseKeys, possibleResponsesByCategory) {
10
+        const validFormInputs = {}
10
         Object.keys(possibleResponsesByCategory).forEach(categoryKey => {
11
         Object.keys(possibleResponsesByCategory).forEach(categoryKey => {
12
+            if (possibleResponsesByCategory[categoryKey].length) {
13
+                validFormInputs[categoryKey] = possibleResponsesByCategory[categoryKey]
14
+            }
15
+        })
16
+        Object.keys(validFormInputs).forEach(inputKey => {
11
             responseKeys.forEach(responseKey => {
17
             responseKeys.forEach(responseKey => {
12
-                if (possibleResponsesByCategory[categoryKey].length) {
13
-                    responseKey.responses = possibleResponsesByCategory[categoryKey]
18
+                if (responseKey.survey_stage == inputKey) {
19
+                    responseKey.responses = validFormInputs[inputKey]
14
                 }
20
                 }
15
             })
21
             })
16
         })
22
         })
23
+        console.log('responseKeys >>', responseKeys)
17
         return responseKeys
24
         return responseKeys
18
     }
25
     }
19
     _addComponents(responseKeys) {
26
     _addComponents(responseKeys) {
32
         })
39
         })
33
         return responseKeys
40
         return responseKeys
34
     }
41
     }
42
+    _addSurveySteps(responseKeys, surveyStages) {
43
+        responseKeys.forEach(responseKey => {
44
+            Object.keys(surveyStages).forEach((stage, i) => {
45
+                if (responseKey.response_key_id == stage) {
46
+                    responseKey.survey_stage = surveyStages[i + 1]
47
+                }
48
+            })
49
+        })
50
+        return responseKeys
51
+    }
35
     // TODO: Don't nest the for loop...
52
     // TODO: Don't nest the for loop...
36
     _sortSurveySteps(mutatedResponseKeys, allSteps) {
53
     _sortSurveySteps(mutatedResponseKeys, allSteps) {
37
-        const reordered = [] 
54
+        const reordered = []
38
         Object.values(allSteps).forEach(step => {
55
         Object.values(allSteps).forEach(step => {
39
             Object.values(mutatedResponseKeys).forEach(val => {
56
             Object.values(mutatedResponseKeys).forEach(val => {
40
                 if (surveyStages[val.response_key_id] === step)  {
57
                 if (surveyStages[val.response_key_id] === step)  {
48
     _setSteps() {
65
     _setSteps() {
49
         const responseKeys = this.questionsFromDb
66
         const responseKeys = this.questionsFromDb
50
         const responsesByCategory = possible['usa']
67
         const responsesByCategory = possible['usa']
51
-        let mutatedResponseKeys = this._addResponses(responseKeys, responsesByCategory)
68
+        let mutatedResponseKeys = this._addSurveySteps(responseKeys, surveyStages)
69
+        mutatedResponseKeys = this._addResponses(mutatedResponseKeys, responsesByCategory)
52
         mutatedResponseKeys = this._addComponents(responseKeys)
70
         mutatedResponseKeys = this._addComponents(responseKeys)
53
         mutatedResponseKeys = this._sortSurveySteps(mutatedResponseKeys, allSteps['usa'])
71
         mutatedResponseKeys = this._sortSurveySteps(mutatedResponseKeys, allSteps['usa'])
54
         // Splash page is placed at beginning of survey
72
         // Splash page is placed at beginning of survey

Загрузка…
Отмена
Сохранить