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

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

tabs-content
tomit4 3 лет назад
Родитель
Сommit
facb9279ce
1 измененных файлов: 23 добавлений и 5 удалений
  1. 23
    5
      frontend/src/utils/survey.js

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

@@ -6,14 +6,21 @@ class SurveyFactory {
6 6
     constructor() {
7 7
         this.questionsFromDb = []
8 8
     }
9
-    _addResponses(responseKeys, possibleResponsesByCategory) {
9
+    async _addResponses(responseKeys, possibleResponsesByCategory) {
10
+        const validFormInputs = {}
10 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 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 24
         return responseKeys
18 25
     }
19 26
     _addComponents(responseKeys) {
@@ -32,9 +39,19 @@ class SurveyFactory {
32 39
         })
33 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 52
     // TODO: Don't nest the for loop...
36 53
     _sortSurveySteps(mutatedResponseKeys, allSteps) {
37
-        const reordered = [] 
54
+        const reordered = []
38 55
         Object.values(allSteps).forEach(step => {
39 56
             Object.values(mutatedResponseKeys).forEach(val => {
40 57
                 if (surveyStages[val.response_key_id] === step)  {
@@ -48,7 +65,8 @@ class SurveyFactory {
48 65
     _setSteps() {
49 66
         const responseKeys = this.questionsFromDb
50 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 70
         mutatedResponseKeys = this._addComponents(responseKeys)
53 71
         mutatedResponseKeys = this._sortSurveySteps(mutatedResponseKeys, allSteps['usa'])
54 72
         // Splash page is placed at beginning of survey

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