1 | /** |
---|
2 | * Función para enviar los respuestas de la encuesta |
---|
3 | * @param event Recibe el evento |
---|
4 | **/ |
---|
5 | function 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 | **/ |
---|
75 | function 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 | */ |
---|
123 | function 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 | */ |
---|
141 | function 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 | */ |
---|
155 | function 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 | */ |
---|
164 | function 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 | */ |
---|
172 | function 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 | */ |
---|
200 | function 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 | */ |
---|
229 | function 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 | } |
---|