source: participacion_consulta/static/js/funciones.js @ 3625c13

Last change on this file since 3625c13 was 3625c13, checked in by rudmanmrrod <rudman22@…>, 7 años ago

Añadidas funciones para cargar los municipios y parroquias de acuerdo al seleccionado, todo por REST

  • Propiedad mode establecida a 100644
File size: 8.1 KB
Línea 
1/**
2 * Función para enviar los respuestas de la encuesta
3 * @param event Recibe el evento
4**/
5function send_poll() {
6    $('.submit').attr('disabled',true);
7    var form = $("#encuesta_form");
8    var routes = $(location).attr('pathname').split('/');
9    var pk = routes[routes.length-1];
10    var participacion;
11    $.get(URL_VALIDAR_PARTICIPACION+'?consulta='+pk)
12    .done(function(response){
13        if (response.mensaje) {
14            participacion = response.participacion
15            if (participacion) {
16                MaterialDialog.alert("Ya participó en esta consulta <br>Será direccionado en 4 segundos",{
17                    'title':"Error",
18                    'buttons':{'close':{'text':'cerrar'}}
19                });
20                setTimeout(function(){
21                    $(location).attr('href', URL_PARTICIPACION)   
22                },4000);
23            }
24            else
25            {
26                $.ajax({
27                    type: 'POST',
28                    data: $(form).serialize(),
29                    url: URL_REGISTRAR_PARTICIPACION+pk,
30                    success: function(response) {
31                        if (response.code == true) {
32                            MaterialDialog.alert("Se registró su participación con éxito <br>Será direccionado en 4 segundos",{
33                                'title':"Éxito",
34                                'buttons':{'close':{'text':'cerrar'}}
35                            });
36                            setTimeout(function(){
37                                $(location).attr('href', URL_PARTICIPACION)   
38                            },4000);
39                        }
40                        else{
41                            MaterialDialog.alert("Ocurrió un error inesperado",{
42                                'title':"Error",
43                                'buttons':{'close':{'text':'cerrar'}}
44                            });
45                            $('.btn').attr('disabled',false);
46                        }
47                    },
48                        error:function(error)
49                        {
50                            MaterialDialog.alert("Ocurrió un error inesperado",{
51                                'title':"Error",
52                                'buttons':{'close':{'text':'cerrar'}}
53                            });
54                            $('.btn').attr('disabled',false);
55                        }
56                });
57            }
58        }
59        else{
60            bootbox.alert(response.error);   
61        }
62        })
63    .fail(function(response){
64        MaterialDialog.alert("Ocurrió un error inesperado",{
65            'title':"Error",
66            'buttons':{'close':{'text':'cerrar'}}
67        });
68    });
69}
70
71
72/**
73 * Función para aumentar la barra de progreso si se responde la encuesta
74**/
75function control_progress() {
76    var content = $('.swiper-slide-active');
77    var not_empty = 0;
78    $.each(content.find('input'),function(index,value){
79        var name = $(value).attr('name');
80        if(name.search('radio')!=-1 || name.search('check')!=-1 || name.search('sino')!=-1){
81            not_empty = $(value).is(":checked") ? 1:not_empty;
82            if (name.search('sino')!=-1) {
83                if ($(value).is(":checked") && $(value).val()=="Si") {
84                    if ($(value).attr('class')) {
85                        if ($(value).attr('class').search('need_justification')!=-1) {
86                            var text_area = $(value).parent().parent().find('textarea');
87                            not_empty = $(text_area).val().trim() !== '' ? 1:0;
88                            not_empty = $(text_area).val().length >= 10 && $(text_area).val().length <= 50  ? 1:0;
89                            if ($(text_area).val().length < 10 || $(text_area).val().length >50) {
90                                MaterialDialog.alert("La longitud de la respuesta debe estar entre 10 y 50 cáracteres",{
91                                    'title':"Alerta",
92                                    'buttons':{'close':{'text':'cerrar'}}
93                                });
94                            }
95                        }
96                    } 
97                }               
98            }
99        }
100    });
101    $.each(content.find('textarea'),function(index,value){
102        var name = $(value).attr('name');
103        if (name.search('abierta')!==-1) {
104            not_empty = $(value).val().trim() !== '' ? 1:not_empty;
105            not_empty = $(value).val().trim().length >= 10 && $(value).val().trim().length <= 50  ? 1:0;
106            if ($(value).val().length < 10 || $(value).val().length >50) {
107                MaterialDialog.alert("La longitud de la respuesta debe estar entre 10 y 50 cáracteres",{
108                    'title':"Alerta",
109                    'buttons':{'close':{'text':'cerrar'}}
110                });
111            }
112        }
113    })
114    return not_empty;
115}
116
117
118
119/**
120 * @brief Función para recargar el captcha vía json
121 * @param element Recibe el botón
122 */
123function refresh_captcha(element) {
124    $form = $(element).parents('form');
125    var url = location.protocol + "//" + window.location.hostname + ":" + location.port + "/captcha/refresh/";
126
127    $.getJSON(url, {}, function(json) {
128        $form.find('input[name="captcha_0"]').val(json.key);
129        $form.find('img.captcha').attr('src', json.image_url);
130    });
131
132    return false;
133}
134
135/**
136 * @brief Función para mostrar un campo
137 * @param valor Recibe el valor
138 * @param condicion Recibe la condición a evaluar
139 * @param element Recibe el elemento a habilitar
140 */
141function mostrar(valor,condicion,element) {
142    if (valor==condicion) {
143        $('#'+element).show();
144    }
145    else{
146        $('#'+element).hide();
147    }
148}
149
150/**
151 * @brief Función para medir la cantidad de caracteres escritos
152 * en el input
153 * @param obj Recibe el input en la función oninput
154 */
155function medir_caracters(obj) {
156    var span = $(obj).parent().find('#longitud span');
157    span.text($(obj).val().trim().length);
158}
159
160/**
161 * @brief Función para quitar doble espacios en el input
162 * @param obj Recibe el input en la función oninput
163 */
164function quitar_espacios(obj) {
165    $(obj).val($(obj).val().replace("  ",""));
166}
167
168/**
169 * @brief Función buscar los datos del municipio
170 * @param valor Recibe el valor del select
171 */
172function get_municipio(valor) {
173    if (valor!='') {
174        var url = URL_BUSCAR_MUNICIPIO+'?entidad='+valor;
175    }
176    else{
177        var url = URL_BUSCAR_MUNICIPIO;
178        $('#id_municipio').attr('disabled',true);
179        $('#id_municipio').material_select();
180    }
181    $.get(url)
182        .done(function(response){
183            $('#id_municipio').removeAttr('disabled');
184            var html = json2html_select(response);
185            $('#id_municipio').html(html);
186            $('#id_municipio').material_select();
187        })
188        .fail(function(response){
189            MaterialDialog.alert("Ocurrió un error inesperado",{
190                'title':"Error",
191                'buttons':{'close':{'text':'cerrar'}}
192            });
193        });
194}
195
196/**
197 * @brief Función buscar los datos de la parroquia
198 * @param valor Recibe el valor del select
199 */
200function get_parroquia(valor) {
201    if (valor!='') {
202        var url = URL_BUSCAR_PARROQUIA+'?municipio='+valor;
203    }
204    else{
205        var url = URL_BUSCAR_PARROQUIA;
206        $('#id_parroquia').attr('disabled',true);
207        $('#id_parroquia').material_select();
208    }
209    $.get(url)
210        .done(function(response){
211            $('#id_parroquia').removeAttr('disabled');
212            var html = json2html_select(response);
213            $('#id_parroquia').html(html);
214            $('#id_parroquia').material_select();
215        })
216        .fail(function(response){
217            MaterialDialog.alert("Ocurrió un error inesperado",{
218                'title':"Error",
219                'buttons':{'close':{'text':'cerrar'}}
220            });
221        });
222}
223
224/**
225 * @brief Función para convertir el json del select en el html correspondiente
226 * @param data Recibe los valores en formato JSON
227 * @return html Retorna los datos transformados en HTML
228 */
229function json2html_select(data) {
230    var html = '';
231    $.each(data,function(key,value){
232        html += '<option value="'+value[0]+'">'+value[1]+'</option>';
233    });
234    return html;
235}
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.