1function getSemAcentuacao(texto) { 2 texto = texto.replace(new RegExp('[ÃÃÃÃ]','gi'), 'a'); 3 texto = texto.replace(new RegExp('[ÃÃÃ]','gi'), 'e'); 4 texto = texto.replace(new RegExp('[ÃÃÃ]','gi'), 'i'); 5 texto = texto.replace(new RegExp('[ÃÃÃÃ]','gi'), 'o'); 6 texto = texto.replace(new RegExp('[ÃÃÃ]','gi'), 'u'); 7 texto = texto.replace(new RegExp('[Ã]','gi'), 'c'); 8 return texto; 9} 10 11function getNomeUf(siglaUf) { 12 var nomeUf; 13 switch (siglaUf) { 14 case 'AC': nomeUf = 'Acre'; break; 15 case 'AL': nomeUf = 'Alagoas'; break; 16 case 'AM': nomeUf = 'Amazonas'; break; 17 case 'AP': nomeUf = 'Amapá'; break; 18 case 'BA': nomeUf = 'Bahia'; break; 19 case 'CE': nomeUf = 'Ceará'; break; 20 case 'DF': nomeUf = 'Distrito Federal'; break; 21 case 'ES': nomeUf = 'EspÃrito Santo'; break; 22 case 'GO': nomeUf = 'Goiás'; break; 23 case 'MA': nomeUf = 'Maranhão'; break; 24 case 'MT': nomeUf = 'Mato Grosso'; break; 25 case 'MS': nomeUf = 'Mato Grosso do Sul'; break; 26 case 'MG': nomeUf = 'Minas Gerais'; break; 27 case 'PA': nomeUf = 'Pará'; break; 28 case 'PB': nomeUf = 'ParaÃba'; break; 29 case 'PR': nomeUf = 'Paraná'; break; 30 case 'PE': nomeUf = 'Pernambuco'; break; 31 case 'PI': nomeUf = 'PiauÃ'; break; 32 case 'RJ': nomeUf = 'Rio de Janeiro'; break; 33 case 'RN': nomeUf = 'Rio Grande do Norte'; break; 34 case 'RS': nomeUf = 'Rio Grande do Sul'; break; 35 case 'RO': nomeUf = 'Rondônia'; break; 36 case 'RR': nomeUf = 'Roraima'; break; 37 case 'SC': nomeUf = 'Santa Catarina'; break; 38 case 'SP': nomeUf = 'São Paulo'; break; 39 case 'SE': nomeUf = 'Sergipe'; break; 40 case 'TO': nomeUf = 'Tocantins'; break; 41 default: nomeUf = ''; 42 } 43 return nomeUf; 44} 45 46function initAutoComplete(autoCompleteHandler, $municipio) { 47 var inputListSelector = "#" + $municipio.attr("id") + "AutoComplete"; 48 var $inputListSelector = $(inputListSelector); 49 var inputValueSelector = "#" + $municipio.attr("id"); 50 var $inputValueSelector = $(inputValueSelector); 51 52 if (autoCompleteHandler) { 53 autoCompleteHandler.destroy(); 54 } else { 55 $inputListSelector.on("blur", function () { 56 var list = form.demandaLai.municipios; 57 var item = getSelectedItem(list, $inputListSelector); 58 if (item) { 59 $inputValueSelector.val(item.id_municipio); 60 $inputListSelector.val(item.nome_municipio); 61 } else { 62 $inputValueSelector.val(""); 63 } 64 }); 65 } 66 autoCompleteHandler = new autoComplete({ 67 "selector": inputListSelector, 68 "minChars": 1, 69 "source": function (term, suggest) { 70 var list = form.demandaLai.municipios; 71 var matches = list.reduce(function (result, item) { 72 if (item.nome_municipio.toLowerCase().indexOf(term.toLowerCase()) > -1) { 73 result.push(item); 74 } 75 return result; 76 }, []); 77 suggest(matches); 78 }, 79 "renderItem": function (item, search) { 80 return '<div class="autocomplete-suggestion" data-id="' + item.id_municipio + '" data-val="' + item.nome_municipio + '">' + item.nome_municipio + '</div>'; 81 }, 82 "onSelect": function (event, term, item) { 83 $inputListSelector.val($(item).attr("data-val")); 84 } 85 }); 86 /** 87 * Chrome passou a ignorar autocomplete=off, ver maiores informações 88 * em https://stackoverflow.com/questions/12374442/chrome-ignores-autocomplete-off 89 * Adicionado autocomplete=none como forma de contorno 90 */ 91 $inputListSelector.attr("autocomplete", "none"); 92} 93 94function getSelectedItem(list, $element) { 95 for (var len = list.length, i = 0; i < len; i++) { 96 if ($element.val().toLowerCase() === list[i].nome_municipio.toLowerCase()) { 97 $element.val(list[i].id_municipio); 98 $element.val(list[i].nome_municipio); 99 return list[i]; 100 } 101 } 102 return null; 103} 104 105jQuery(function ($) 106{ 107 var formulario = {}; 108 var autoCompleteHandler = null; 109 var currentUploadSize = 0; 110 111 function initCustomRules() { 112 $.validator.addMethod('isCountyValid', function (value, element) { 113 if($(element).is(':required')) { 114 return getSelectedItem(form.demandaLai.municipios, $(element)); 115 } else { 116 if(!$(element).val()) { 117 return true; 118 } else { 119 return getSelectedItem(form.demandaLai.municipios, $(element)); 120 } 121 } 122 }, matriz.utils.internationalization.translate("MunicÃpio não faz parte do estado selecionado", "demanda_lai")); 123 124 $.validator.addMethod('requerirAnexos', function (value, element) { 125 if (element.getAttribute("data-id")) { 126 if (formulario.campos[element.getAttribute("data-id")] !== undefined) { 127 return formulario.campos[element.getAttribute("data-id")].files.length > 0;
128 } else { 129 return false; 130 } 131 } else { 132 return formulario.files.length > 0; 133 } 134 }, matriz.utils.internationalization.translate("à obrigatório o envio de anexo(s).", "demanda_lai")); 135 136 if($('.money')) { 137 $('.money').mask('#.##0,00', {reverse: true, maxlength: false}); 138 } 139 } 140 141 function initCountryField($pais, $uf, $municipio) { 142 //var $pais = $("#sIdPais"); 143 let $idPais = typeof $pais.val() !== 'undefined' ? $pais.val() : ""; 144 var idFormulario = $("[name='idformulario']").val(); 145 var reqLai = idFormulario ? "&idformulario=" + idFormulario : ""; 146 return matriz.utils.ajax({ 147 "modal": false, 148 "url": "/_service/demandalai/estados?id_pais=" + $idPais + reqLai 149 }).done(function (data) { 150 $municipio[0].value = ""; 151 $("#" + $municipio.attr("id") + "AutoComplete")[0].value = ""; 152 formulario.reset(); 153 //var $uf = $("#sIdUf"); 154 $uf.find('option').remove(); 155 $uf.append('<option value="">Selecione...</option>'); 156 var $data = $(data); 157 $data.each(function(index, item) { 158 $uf.append('<option value="'+item.id_uf+'">'+item.nome_uf+'</option>'); 159 }); 160 }); 161 } 162 163 function initStateField($uf, $municipio) { 164 //var $uf = $("#sIdUf"); 165 let $idUf = typeof $uf.val() !== 'undefined' ? $uf.val() : ""; 166 var idFormulario = $("[name='idformulario']").val(); 167 var reqLai = idFormulario ? "&idformulario=" + idFormulario : ""; 168 return matriz.utils.ajax({ 169 "modal": false, 170 "url": "/_service/demandalai/municipios?id_uf=" + $idUf + reqLai 171 }).done(function (data) { 172 $municipio[0].value = ""; 173 $("#" + $municipio.attr("id") + "AutoComplete")[0].value = ""; 174 form.demandaLai.municipios = data; 175 formulario.reset(); 176 initAutoComplete(autoCompleteHandler, $municipio); 177 }); 178 } 179 180 function initCepField($cep, $pais, $uf, $municipio, $bairro, $logradouro) { 181 //var $cep = $("#sCep"); 182 if ($cep.valid()) { 183 matriz.ui.loading.modal.show(); 184 $.ajax({
185 url: "/_service/dne/busca/endereco/" + $cep.val().toString().replace('-', '') 186 }).then(function (dataEndereco) { 187 188 if(dataEndereco.erros){ 189 for (let i = 0; i < dataEndereco.erros.length; i++) { 190 matriz.ui.loading.modal.hide(); 191 matriz.box.notify.default(dataEndereco.erros[i].erro, 'warning'); 192 } 193 return; 194 } 195 196 $bairro.val(dataEndereco.bairro); 197 $logradouro.val(dataEndereco.logradouroExtenso); 198 $("#" + $pais.attr("id") + " option:contains('BRASIL')").prop("selected", true); 199 initCountryField($pais, $uf, $municipio).then(function () { 200 $("#" + $uf.attr("id") + " option:contains('" + getNomeUf(dataEndereco.uf) + "')").prop("selected", true); 201 initStateField($uf, $municipio).then(function (dataMunicipios) { 202 $.each(dataMunicipios, function(i, item) { 203 if (getSemAcentuacao(item.nome_municipio.toLowerCase()) === dataEndereco.municipio.toLowerCase()) { 204 $("#" + $municipio.attr("id") + "AutoComplete").val(item.nome_municipio).blur(); 205 } 206 }); 207 matriz.ui.loading.modal.hide(); 208 }); 209 }); 210 }).fail(function () { 211 matriz.ui.loading.modal.hide(); 212 matriz.box.notify.default("Não foi possÃvel identificar o CEP informado.", 'warning'); 213 }); 214 } 215 } 216 217 function initGeorreferenciamentoField () { 218 $("button[data-matriz-action=find-in-map], button[data-matriz-action=draw-marker]").on("click", function () { 219 $("#sTxtGeorreferenciamento-error").remove(); 220 $("#sTxtGeorreferenciamentoDemanda-error").remove(); 221 }); 222 $("#sIdUf, #sIdPais, #sIdMunicipioAutoComplete, #sCep, #sLogradouro, #sNumEndereco, input[name^=sBairro]").change(function () { 223 if($(".modal-body #geoID").length) { 224 $(".modal-body #geoID").val("sTxtGeorreferenciamento"); 225 } 226 $("button[data-matriz-action=clear-map]").trigger("click"); 227 }); 228 $("#sIdUfDemanda, #sIdPaisDemanda, #sIdMunicipioAutoCompleteDemanda, #sCepDemanda, #sLogradouroDemanda, #sNumEnderecoDemanda, input[name^=sBairroDemanda]").change(function () { 229 if($(".modal-body #geoID").length) { 230 $(".modal-body #geoID").val("sTxtGeorreferenciamentoDemanda"); 231 } 232 $("button[data-matriz-action=clear-map]").trigger("click"); 233 }); 234 } 235 236 formulario.containers = {}; 237 formulario.containers.formulario = $("#formDemandaLai"); 238 formulario.containers.captcha = $("#fCaptchaMatrizContainer"); 239 formulario.maxArquivos = parseInt(formulario.containers.formulario.attr("data-maxarquivos")); 240 formulario.tamanhomaximo = parseInt(formulario.containers.formulario.attr("data-tamanhomaximo")); 241 formulario.files = []; 242 formulario.filessequence = 0; 243 formulario.campos = []; 244 245 formulario.valid = function () { 246 return formulario.containers.formulario.valid(); 247 }; 248 249 var validateOptions = { 250 ignore: ":hidden:not('.requerirAnexos')", 251 errorClass: "matriz__has-warning", 252 validClass: "matriz__has-success", 253 errorElement: "div", 254 errorPlacement: function (error, element) { 255 if(element[0].classList[1] == "input-data" || $(element).is(':checkbox') || $(element).is(':radio')) { 256 element.parent().parent().append(error); 257 } else{ 258 element.parent().append(error); 259 } 260 }, 261 highlight: function (element, errorClass, validClass) { 262 $(element).addClass(errorClass).removeClass(validClass); 263 264 if ($(element).next().hasClass("matriz-ui-combobox")) { 265 $(element).selectpicker("refresh"); 266 } 267 }, 268 unhighlight: function (element, errorClass, validClass) { 269 $(element).removeClass(errorClass).addClass(validClass); 270 if ($(element).next().hasClass("matriz-ui-combobox")) { 271 $(element).selectpicker("refresh"); 272 } 273 } 274 }; 275 276 formulario.reset = function() { 277 return formulario.containers.formulario.validate(validateOptions).resetForm(); 278 } 279 280 formulario.init = function () { 281 $("#modalLoading").removeClass("hidden"); 282 initCustomRules();
283 initAutoComplete(autoCompleteHandler, $("#sIdMunicipio")); 284 $("#sIdUf").on("change", function(){ 285 initStateField($(this), $("#sIdMunicipio")); 286 }); 287 $("#sIdPais").on("change", function(){ 288 initCountryField($(this), $("#sIdUf"), $("#sIdMunicipio")); 289 }); 290 $("#sCep").on("change", function(){ 291 initCepField($(this), $("#sIdPais"), $("#sIdUf"), $("#sIdMunicipio"), $("input[id^=sBairro_]"), $("#sLogradouro")); 292 }); 293 initAutoComplete(autoCompleteHandler, $("#sIdMunicipioDemanda")); 294 $("#sIdUfDemanda").on("change", function(){ 295 initStateField($(this), $("#sIdMunicipioDemanda")); 296 }); 297 $("#sIdPaisDemanda").on("change", function(){ 298 initCountryField($(this), $("#sIdUfDemanda"), $("#sIdMunicipioDemanda")); 299 }); 300 $("#sCepDemanda").on("change", function(){ 301 initCepField($(this), $("#sIdPaisDemanda"), $("#sIdUfDemanda"), $("#sIdMunicipioDemanda"), $("input[id^=sBairroDemanda_]"), $("#sLogradouroDemanda")); 302 }); 303 initCarregarArquivo(); 304 $(".campo-arquivo").each(function() { 305 initCarregarCampoArquivo($(this)); 306 }); 307 initGeorreferenciamentoField(); 308 formulario.containers.formulario.validate(validateOptions); 309 if (formulario.containers.formulario.attr("data-submit") === "default") { 310 formulario.containers.formulario.submit(formulario.default); 311 } else { 312 formulario.containers.formulario.submit(formulario.submit); 313 } 314 $("#fCaptchaMatrizRecarregar").click(formulario.generateCaptcha); 315 }; 316 317 function populateSelectedOption(fromSelector, inSelector) { 318 $(inSelector).val($("option[value='" + $(fromSelector).val() + "']").text()); 319 } 320 321 function initBotaoCarregarArquivo() { 322 if (formulario.maxArquivos > 0) { 323 $("#uploadArquivo").removeClass("hidden"); 324 } 325 } 326 327 function initBotaoCarregarCampoArquivo(campo) { 328 if (campo.maxArquivos > 0) { 329 $(".uploadArquivo").removeClass("hidden"); 330 } 331 } 332 333 function bytesParaMega(bytes) { 334 return Math.round((bytes / Math.pow(1024, 2)) * 100) / 100 + "MB"; 335 } 336 337 initCarregarArquivo = function () { 338 initBotaoCarregarArquivo(); 339 if ($("#buttonCarregarArquivo").length > 0) { 340 var fileInput = new mOxie.FileInput({ 341 browse_button: "buttonCarregarArquivo", 342 multiple: true, 343 accept: [{ 344 title: "Selecione o arquivo para envio ...", 345 extensions: $("buttonCarregarArquivo").attr("data-matriz-tipos-permitidos") 346 }] 347 }); 348 fileInput.onchange = function (e) { 349 if (formulario.files.length < formulario.maxArquivos) { 350 var filesInvalidLength = []; 351 for (var key in this.files) { 352 let file = this.files[key]; 353 if (file.size <= formulario.tamanhomaximo) { 354 file.filesequence = ++formulario.filessequence; 355 formulario.files.push(file); 356 var div = "<div class='removerArquivo' data-filename='" + file.name + "' data-filesequence='" + file.filesequence + "'> Arquivo: " + file.name + " (" + bytesParaMega(file.size) + " ) \n\ 357 <button name='buttonClose' type='button' class='close' \n\ 358 data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>\n\ 359 ×</span></button></div>"; 360 $("#upload-queue").append($(div)); 361 currentUploadSize += file.size; 362 $("#upload-size").text("Total: " + bytesParaMega(currentUploadSize)); 363 if ($('.requerirAnexos').length > 0) { 364 $(".requerirAnexos").valid(); 365 } 366 } else {
367 filesInvalidLength.push(file.name); 368 } 369 } 370 if (filesInvalidLength.length > 0) { 371 let mensagem = ""; 372 if (filesInvalidLength.length === 1) { 373 mensagem = "O arquivo %FILE_NAME% possui tamanho inválido e não foi adicionado.<br>"; 374 } else { 375 mensagem = "Os arquivos %FILE_NAME% possuem tamanho inválido e não foram adicionados.<br>"; 376 } 377 matriz.box.uniquemodal.create({ 378 titulo: "Tamanho do arquivo inválido!", 379 mensagem: mensagem.replace("%FILE_NAME%", filesInvalidLength.join(", ")) + 380 "<p>O tamanho do arquivo não pode ser superior a " + bytesParaMega(formulario.tamanhomaximo) + ". </p>", 381 corContextual: "warning" 382 }); 383 } 384 } else { 385 matriz.box.uniquemodal.create({ 386 titulo: "Máximo de arquivos alcançado!", 387 mensagem: "<p>à permitido o envio de até " + formulario.maxArquivos + ". </p>", 388 corContextual: "warning" 389 }); 390 } 391 }; 392 fileInput.init(); 393 formulario.containers.formulario.on("click", ".removerArquivo", function () { 394 var divRemoverArquivo = $(this); 395 var fileSequence = parseInt(divRemoverArquivo.attr('data-fileSequence')); 396 var encontrado = false; 397 var index = formulario.files.findIndex(function(file){ 398 if (fileSequence === file.filesequence && !encontrado) { 399 encontrado = true; 400 return true; 401 } 402 return false; 403 }); 404 formulario.files.splice(index, 1); 405 currentUploadSize = formulario.files.reduce(function(anterior, atual) { 406 return anterior + atual.size; 407 }, 0); 408 409 $("#upload-size").text("Total: " + bytesParaMega(currentUploadSize)); 410 }); 411 } 412 } 413 414 initCarregarCampoArquivo = function ($campo) { 415 var campo = {}; 416 campo.maxArquivos = parseInt($campo.attr("data-maxarquivos")); 417 campo.tamanhomaximo = parseInt($campo.attr("data-tamanhomaximo")); 418 campo.files = []; 419 campo.filessequence = 0; 420 initBotaoCarregarCampoArquivo(campo); 421 if ($campo.length > 0) { 422 var fileInput = new mOxie.FileInput({ 423 browse_button: $campo.attr("id"), 424 multiple: true, 425 accept: [{ 426 title: "Selecione o arquivo para envio ...", 427 extensions: $campo.attr("data-matriz-tipos-permitidos") 428 }] 429 }); 430 fileInput.onchange = function (e) { 431 if (campo.files.length < campo.maxArquivos) { 432 var filesInvalidLength = []; 433 for (var key in this.files) { 434 let file = this.files[key]; 435 if (file.size <= campo.tamanhomaximo) { 436 file.filesequence = ++campo.filessequence; 437 campo.files.push(file); 438 formulario.campos[$campo.attr("id")] = campo; 439 var div = "<div class='remover" + $campo.attr("id") + "' data-filename='" + file.name + "' data-filesequence='" + file.filesequence + "'> Arquivo: " + file.name + " (" + bytesParaMega(file.size) + " ) \n\ 440 <button name='buttonClose' type='button' class='close' \n\ 441 data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>\n\ 442 ×</span></button></div>"; 443 $campo.parent().find(".upload-queue").append($(div)); 444 currentUploadSize += file.size; 445 $campo.parent().find(".upload-size").text("Total: " + bytesParaMega(currentUploadSize)); 446 if ($campo.attr('data-required') === "true") { 447 $(".requerirAnexos").valid(); 448 } 449 } else {
450 filesInvalidLength.push(file.name); 451 } 452 } 453 if (filesInvalidLength.length > 0) { 454 let mensagem = ""; 455 if (filesInvalidLength.length === 1) { 456 mensagem = "O arquivo %FILE_NAME% possui tamanho inválido e não foi adicionado."; 457 } else { 458 mensagem = "Os arquivos %FILE_NAME% possuem tamanho inválido e não foram adicionados."; 459 } 460 matriz.box.uniquemodal.create({ 461 titulo: "Tamanho do arquivo inválido!", 462 mensagem: mensagem.replace("%FILE_NAME%", filesInvalidLength.join(", ")) + 463 "<p>O tamanho do arquivo não pode ser superior a " + bytesParaMega(campo.tamanhomaximo) + ". </p>", 464 corContextual: "warning" 465 }); 466 } 467 } else { 468 matriz.box.uniquemodal.create({ 469 titulo: "Máximo de arquivos alcançado!", 470 mensagem: "<p>à permitido o envio de até " + campo.maxArquivos + ". </p>", 471 corContextual: "warning" 472 }); 473 } 474 }; 475 fileInput.init(); 476 formulario.containers.formulario.on("click", ".remover" + $campo.attr("id"), function () { 477 var divRemoverArquivo = $(this); 478 var fileSequence = parseInt(divRemoverArquivo.attr('data-fileSequence')); 479 var encontrado = false; 480 var index = formulario.campos[$campo.attr("id")].files.findIndex(function(file){ 481 if (fileSequence === file.filesequence && !encontrado) { 482 encontrado = true; 483 return true; 484 } 485 return false; 486 }); 487 formulario.campos[$campo.attr("id")].files.splice(index, 1); 488 currentUploadSize = formulario.campos[$campo.attr("id")].files.reduce(function(anterior, atual) { 489 return anterior + atual.size; 490 }, 0); 491 492 $campo.parent().find(".upload-size").text("Total: " + bytesParaMega(currentUploadSize)); 493 }); 494 } 495 } 496 497 formulario.default = function (event) { 498 event.preventDefault(); 499 if (formulario.valid()) { 500 formulario.generateFormKey(); 501 var formData = new FormData(); 502 formData.append("g-recaptcha-response", $("#g-recaptcha-response").val()); 503 formulario.default.captcha = function (formData) { 504 if ($("div[data-matriz-component='Turnstile']").length > 0) { 505 $("#formDemandaLai").off("submit"); 506 $("#formDemandaLai").submit(); 507 turnstile.reset(); 508 } else { 509 $.ajax({
510 "type": "POST", 511 "url": "/_service/demandalai/check-captcha", 512 cache: false, 513 enctype: "multipart/form-data", 514 contentType: false, 515 processData: false, 516 "data": formData 517 }).done(function () { 518 $("#formDemandaLai").off("submit"); 519 $("#formDemandaLai").submit(); 520 //formulario.containers.formulario.submit(); 521 }).fail(function (jqXHR) { 522 matriz.ajax.uniquemodalmessage.fail.warn(jqXHR); 523 }); 524 } 525 } 526 formulario.default.captcha(formData); 527 } 528 return false; 529 }; 530 531 formulario.submit = function (event) { 532 event.preventDefault(); 533 if (formulario.valid()) { 534 formulario.generateFormKey(); 535 matriz.box.uniquemodal.create({ 536 titulo: "Enviando formulário", 537 mensagem: "<p>Enviando mensagem, por favor aguarde. <img src='/matriz_common/images/loadings/clock.gif' /></p>", 538 corContextual: "info", 539 buttons: [], 540 keyboard: false, 541 customClass: "modal-loading" 542 }); 543 544 populateSelectedOption("#sIdUf", "#sIdUfNome"); 545 populateSelectedOption("#fTipo", "#fTipoNome"); 546 populateSelectedOption("#fAssunto", "#fAssuntoNome"); 547 548 if ($("#sTxtGeorreferenciamento").length) { 549 $("#sTxtGeorreferenciamento").val($("#sTxtGeorreferenciamento").val().replace("(","").replace(")","")); 550 } 551 552 if ($("#sTxtGeorreferenciamentoDemanda").length) { 553 $("#sTxtGeorreferenciamentoDemanda").val($("#sTxtGeorreferenciamentoDemanda").val().replace("(","").replace(")","")); 554 } 555 556 var formData = new FormData(); 557 558 for (var indice = 0, len = formulario.files.length; indice < len; indice++) { 559 formData.append("arquivo[" + indice + "]", formulario.files[indice].getSource()); 560 } 561 562 $(".campo-arquivo").each(function() { 563 if (formulario.campos[$(this).attr("id")] !== undefined) { 564 for (var indice = 0, len = formulario.campos[$(this).attr("id")].files.length; indice < len; indice++) { 565 formData.append($(this).attr("id") + "[" + indice + "]", formulario.campos[$(this).attr("id")].files[indice].getSource()); 566 } 567 } 568 }); 569 570 $('#formDemandaLai input, select, textarea').each(function(){ 571 var type = $(this).prop("type"); 572 if (type != "radio" && type != "checkbox") { 573 if ($(this).attr('name')) { 574 formData.append($(this).attr('name'), $(this).val()); 575 } 576 } 577 }); 578 579 var radio = $("#formDemandaLai").find("input[type=radio]"); 580 $.each(radio, function (key, val) { 581 if ($(this).is(":checked")) { 582 formData.append($(val).attr('name'), $(val).attr('value')); 583 } 584 }); 585 586 var checkbox = $("#formDemandaLai").find("input[type=checkbox]"); 587 $.each(checkbox, function (key, val) { 588 if ($(this).is(":checked")) { 589 formData.append($(val).attr('name'), $(val).attr('value')); 590 } 591 }); 592 593 formData.append("g-recaptcha-response", $("#g-recaptcha-response").val()); 594 595 formulario.submit.form = function (formData) { 596 $.ajax({
597 "type": "POST", 598 "url": formulario.containers.formulario.attr("action"), 599 cache: false, 600 enctype: "multipart/form-data", 601 contentType: false, 602 processData: false, 603 "data": formData /*formulario.containers.formulario.serialize()*/ 604 }).done(function (data) { 605 if ($("input[name=modelodemanda]").val() === "DEMANDA_LAI_ANONIMO") { 606 window.location.href = data; 607 } else { 608 formulario.containers.formulario[0].reset(); 609 formulario.containers.captcha.hide(); 610 $("#upload-queue").empty(); 611 $("#upload-size").empty(); 612 $(".upload-queue").empty(); 613 $(".upload-size").empty(); 614 formulario.files = []; 615 616 $(".campo-arquivo").each(function() { 617 if (formulario.campos[$(this).attr("id")] !== undefined) { 618 formulario.campos[$(this).attr("id")].files = []; 619 } 620 }); 621 622 if($(".modal-body #geoID").length) { 623 $(".modal-body #geoID").val(''); 624 } 625 $("button[data-matriz-action=clear-map]").trigger("click"); 626 matriz.box.uniquemodal.create({ 627 titulo: matriz.utils.internationalization.translate("Formulário enviado com sucesso", "faleconosco"), 628 mensagem: "<p>" + data + ".</p>", 629 corContextual: "success" 630 }); 631 } 632 }).fail(function (jqXHR) { 633 if (jqXHR.status === 412) { 634 formulario.generateCaptcha(); 635 } 636 if (window.grecaptcha !== undefined) { 637 window.grecaptcha.reset(); 638 } 639 matriz.ajax.uniquemodalmessage.fail.warn(jqXHR); 640 641 var responseText = jqXHR.responseText; 642 if (responseText.substr(0, 40) === "Autenticação no Login Cidadão requerida.") { 643 $("#uniqueModal").bind("destroyed", function() { 644 window.location.reload(true); 645 }); 646 } 647 }); 648 if ($("div[data-matriz-component='Turnstile']").length > 0) { 649 turnstile.reset(); 650 } 651 } 652 653 formulario.submit.captcha = function (formData) { 654 if ($("div[data-matriz-component='Turnstile']").length > 0) { 655 formulario.submit.form(formData); 656 } else { 657 $.ajax({
658 "type": "POST", 659 "url": "/_service/demandalai/check-captcha", 660 cache: false, 661 enctype: "multipart/form-data", 662 contentType: false, 663 processData: false, 664 "data": formData 665 }).done(function () { 666 formulario.submit.form(formData); 667 }).fail(function (jqXHR) { 668 matriz.ajax.uniquemodalmessage.fail.warn(jqXHR); 669 }); 670 } 671 } 672 673 formulario.submit.captcha(formData); 674 675 } 676 return false; 677 }; 678 679 formulario.generateFormKey = function () { 680 matriz.ui.loading.modal.show(); 681 $.ajax({ 682 url: "/_service/demandalai/generate", 683 async: false 684 }).done(function (data) { 685 $("input[name=chaveFormulario]").val(data.chave); 686 }).always(function () { 687 matriz.ui.loading.modal.hide(); 688 }); 689 }; 690 691 formulario.generateCaptcha = function () { 692 matriz.ui.loading.modal.show(); 693 $.ajax({
694 url: "/_service/demandalai/captcha" 695 }).done(function (data) { 696 $("#fCaptchaMatrizID").val(data.id); 697 $("#fCaptchaMatrizPergunta").html(data.enunciado); 698 $("#fCaptchaMatrizContainer").show(); 699 $("#fCaptchaMatriz").focus(); 700 }).always(function () { 701 matriz.ui.loading.modal.hide(); 702 }); 703 return false; 704 }; 705 706 formulario.init(); 707});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.