Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 339 | Rev 341 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 339 Rev 340
Línea 3... Línea 3...
3
import Spinner from "../../../shared/loading-spinner/Spinner";
3
import Spinner from "../../../shared/loading-spinner/Spinner";
Línea 4... Línea 4...
4
 
4
 
Línea 5... Línea 5...
5
const Test = (props) => {
5
const Test = (props) => {
6
 
6
 
Línea -... Línea 7...
-
 
7
    // get props
-
 
8
    const { backendVars, test, loading, setTest, action  } = props;
-
 
9
 
-
 
10
 
7
    // get props
11
    /**
-
 
12
     * Send form data
-
 
13
     */
-
 
14
    const handleSubmit = async () => {
-
 
15
        if (validateForm()) {
-
 
16
            axios.post(action, test).then((response) => {
-
 
17
                if (response.data.success) {
-
 
18
                    console.info('Formulario almacenado');
-
 
19
                    setTest(null);
-
 
20
                }
-
 
21
            });
-
 
22
        }
-
 
23
    }
-
 
24
    /**
-
 
25
     * Update question answer
-
 
26
     * @param {*} slug_section 
-
 
27
     * @param {*} slug_question 
-
 
28
     * @param {*} answer 
-
 
29
     */
-
 
30
    const handleAnswer = (slug_section, slug_question, answer) => {
-
 
31
        test.content.filter((section) => {
-
 
32
            if (section.slug_section == slug_section) {
-
 
33
                section.questions.map((question) => {
-
 
34
                    if (question.slug_question == slug_question) {
-
 
35
                        question.answer = answer;
-
 
36
                    }
-
 
37
                })
8
    const { backendVars, test, loading, setTest } = props;
38
            }
-
 
39
        })
-
 
40
        setTest(test);
-
 
41
    }
-
 
42
    /**
-
 
43
     * Check if there are questions to answer
-
 
44
     * @returns 
9
 
45
     */
10
    const formSubmit = () => {
46
    const validateForm = () => {
11
        
47
        let formValid = true;
12
        test.content.map((section)=>{
48
        test.content.map((section) => {
13
            section.questions.map((q)=>{
49
            section.questions.map((question) => {
14
                if(!q.response){
50
                if (!question.answer) {
15
                    console.error(`Debe ingresar una respuesta en la pregunta ${q.position+1} de la sección ${section.name}` );
51
                    console.error(`Debe ingresar una respuesta en la pregunta ${question.position + 1} de la sección ${section.name}`);
16
                    return false;
52
                    formValid = false;
-
 
53
                }
-
 
54
            })
17
                }
55
        })
Línea -... Línea 56...
-
 
56
 
18
            })
57
        return formValid;
19
        })
58
    }
20
    }
59
 
21
 
60
 
22
    return (
61
    return (
23
        <div>
62
        <div>
24
            {loading ? (
63
            {loading ? (
25
                <div className="row">
64
                <div className="row">
26
                    <Spinner />
65
                    <Spinner />
27
                </div>
66
                </div>
28
            ) : (
67
            ) : (
29
                <div className="row test-section">
68
                <div className="row test-section">
30
                        <div className="col-md-12 col-sm-12 col-xs-12">
-
 
31
                            <div className="company-title">
69
                    <div className="col-md-12 col-sm-12 col-xs-12">
32
                                <div className="section_admin_title_buttons">
-
 
33
                                    <h1 className="title">{test.name}</h1>
-
 
34
                                </div>
-
 
35
                            </div>
-
 
36
                            <div
70
                        <div className="company-title">
-
 
71
                            <div className="section_admin_title_buttons">
-
 
72
                                <h1 className="title">{test.name}</h1>
-
 
73
                            </div>
-
 
74
                        </div>
-
 
75
                        <div
37
                                dangerouslySetInnerHTML={{ __html: test.text }}
76
                            dangerouslySetInnerHTML={{ __html: test.text }}
38
                                className="description company-title"
77
                            className="description company-title"
39
                            ></div>
78
                        ></div>
40
                        </div>
79
                    </div>
41
                        <div className="col-md-12 col-sm-12 col-xs-12">
80
                    <div className="col-md-12 col-sm-12 col-xs-12">
42
                            <div className="company-title">
81
                        <div className="company-title">
43
                                {test.content.map((section, key) => {
82
                            {test.content.map((section, key) => {
-
 
83
                                return <Section
44
                                    return <Section
84
                                    section={section}
45
                                        section={section}
85
                                    key={key}
46
                                        key={key}
86
                                    backendVars={backendVars}
-
 
87
                                    handleAnswer={handleAnswer}
47
                                        backendVars={backendVars} />
88
                                />
48
                                })}
89
                            })}
49
                            </div>
90
                        </div>
50
                        </div>
91
                    </div>
51
                        <div className="col-md-12 col-sm-12 col-xs-12">
-
 
52
                            <div className="company-title">
92
                    <div className="col-md-12 col-sm-12 col-xs-12">
-
 
93
                        <div className="company-title">
53
                                <button type="button" className="btn btn-danger" onClick={() => setTest(null)}>{backendVars.LBL_CANCEL}</button>
94
                            <button type="button" className="btn btn-danger" onClick={() => setTest(null)}>{backendVars.LBL_CANCEL}</button>
54
                                <button type="buttton" className="btn btn-success" onClick={() => formSubmit()}>{backendVars.LBL_SAVE}</button>
95
                            <button type="buttton" className="btn btn-success" onClick={() => handleSubmit()}>{backendVars.LBL_SAVE}</button>
55
                            </div>
96
                        </div>
56
                        </div>
97
                    </div>
57
                </div>
98
                </div>