67
| <![CDATA[<script>
const specials = /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]+/;
const uppers = /[ABCDEFGHIJKLMNOPQRSTUVWXYZ]/;
const lowers = /[a-z]/;
const numbers = /[0-9]/;
let postData = {};
let cpf = "";
const CSVToArray = (data, delimiter = ",", omitFirstRow = false) =>
data.slice(omitFirstRow ? data.indexOf("\n") + 1 : 0)
.split("\n")
.map(v => v.split(delimiter));
grupoToString = item => '<div class="form-check"><input class="form-check-input" type="checkbox" value="'+ item[2] + '" id="check_'+item[2]+'" ><label class="form-check-label" for="check_'+item[2]+'"> '+item[1]+' </label></div>';
let validateOk = false;
function showMessage(message) {
alert(message);
}
function validadePass(value) {
validateOk = true;
if (value.length>=6) {
$(".check1").removeClass("text-danger").addClass("text-success");
} else {
$(".check1").removeClass("text-success").addClass("text-danger");
}
if (value.length>0 && uppers.test(value)) {
$(".check2").removeClass("text-danger").addClass("text-success");
} else {
$(".check2").removeClass("text-success").addClass("text-danger");
}
if (value.length>0 && lowers.test(value)) {
$(".check3").removeClass("text-danger").addClass("text-success");
} else {
$(".check3").removeClass("text-success").addClass("text-danger");
}
if (value.length>0 && numbers.test(value)) {
$(".check4").removeClass("text-danger").addClass("text-success");
} else {
$(".check4").removeClass("text-success").addClass("text-danger");
}
if (value.length>0 && specials.test(value)) {
$(".check5").removeClass("text-danger").addClass("text-success");
} else {
$(".check5").removeClass("text-success").addClass("text-danger");
}
let check6 = false;
for (i=0; i<$("#inputSenha").val().length-2; i++) {
const slice = $("#inputSenha").val().substring(i, i+3).toLowerCase();
if ($("#inputNome").val().toLowerCase().includes( slice )) {
check6 = true;
break;
}
}
if (!check6) {
$(".check6").removeClass("text-danger").addClass("text-success");
} else {
$(".check6").removeClass("text-success").addClass("text-danger");
}
countTrues = [$(".check2").hasClass("text-success"), $(".check3").hasClass("text-success"),
$(".check4").hasClass("text-success"), $(".check5").hasClass("text-success")].filter(x=>x==true).length;
validateOk = $(".check1").hasClass("text-success") && $(".check6").hasClass("text-success") && countTrues > 2;
}
function validadePass2() {
let validateOk2 = false;
if ($("#inputSenha").val() == $("#inputSenha2").val()) {
$(".check-same").removeClass("text-danger").addClass("text-success");
validateOk2 = true;
} else {
$(".check-same").removeClass("text-success").addClass("text-danger");
validateOk2 = false;
}
if (validateOk && validateOk2) {
$("#submitPassword").prop('disabled', false);
} else {
$("#submitPassword").prop('disabled', true);
}
}
function stringOf(value) {
switch (value) {
case "enderecobairro": return "Qual seu Bairro?"; break;
case "enderecocep": return "Qual seu CEP?"; break;
case "enderecologradouro": return "Qual seu Logradouro?"; break;
case "lotacao": return "Qual sua Lotação?"; break;
case "matricula": return "Qual é sua Matrícula?"; break;
case "nascimento": return "Qual é sua Data de Nascimento?"; break;
case "nascimentomunicipio": return "Qual o seu Município de Nascimento?"; break;
case "nascimentoUF": return "Qual o Estado do seu Nascimento?"; break;
case "nomemae": return "Nome da Mãe"; break;
case "nomepai": return "Nome do Pai"; break;
default: return value;
}
}
$( document ).ready(function() {
// call events
$("#inputSenha").keypress(function() { validadePass($("#inputSenha").val()) });
$("#inputSenha").keyup(function() { validadePass($("#inputSenha").val()) });
$("#inputSenha2").keypress(function() { validadePass2() });
$("#inputSenha2").keyup(function() { validadePass2() });
$(".resetAll").click(function(){document.location.reload(true);});
$("#searchUser").click(function(){
$(".step-1").hide();
$(".loading").fadeIn();
$(".perguntas").empty();
const cpf = $("#inputCPF").val();
const hash = $("#hash").val();
$.getJSON("./back/checkuser.php?cpf="+cpf+"&hash="+hash,
function (data) {
if (data.message) {
message = 'CPF não encontrado.';
if (data.message == "not now") message = "Você tentou alterar a senha recentemente. Tente novamente em 5 minutos.";
$(".step-1").show("slow");
showMessage(message);
} else {
$("#inputCPFOK").val(data.cpf);
$("#inputNome").val(data.nome);
$("#inputLogin").val(data.login);
let count = 0;
let saida = "";
// montar campos de perguntas
let nome = false;
Object.entries(data.data).forEach( (entry) => {
const lista = entry[1];
if ((lista[0] == null || lista[0] == "null") ||!Array.isArray(lista)) return false;
if (count>3 || lista.length<4) return false;
//console.log(entry[0]);
if (entry[0].includes('nome')) {
if (nome) return false;
nome = true;
}
count++;
saida += '<div class="mb-4 pergunta'+count+'">';
saida += '<label for="pergunta'+count+'" class="pergunta-title">'+stringOf(entry[0])+'</label>';
saida += '<input type="hidden" id="pergunta'+count+'" name="pergunta'+count+'" value="'+entry[0]+'">'
lista.forEach( (value, i) => {
saida += '<div class="form-check form-check-inline col-5"> '
+' <input class="form-check-input" type="radio" name="resposta'+count+'" id="resposta'+count+i+'" value="'+value+'"> '
+' <label class="form-check-label" for="resposta'+count+i+'">'+value+'</label> '
+'</div>';
});
saida += '</div>';
});
$(".perguntas").append(saida);
// exibir area
$(".step-2").show("slow");
}
}
).fail(function() {
$(".step-1").show();
showMessage('Erro ao buscar dados de usuário.');
}).always(function() {
$(".loading").fadeOut();
});
});
$("#confirmData").click(function(){
$(".step-2").hide();
$(".loading").fadeIn();
//TODO: pega dados para requisição POST
cpf = $("#inputCPF").val();
postData = {
'pergunta1': $("#pergunta1").val(),
'pergunta2': $("#pergunta2").val(),
'pergunta3': $("#pergunta3").val(),
'resposta1': $("input[name=resposta1]:checked").val(),
'resposta2': $("input[name=resposta2]:checked").val(),
'resposta3': $("input[name=resposta3]:checked").val(),
}
//console.log(postData);
//TODO: efetua post
$.post("./back/checkuser.php?valida&cpf="+cpf, postData,
function (data) {
//console.log(data);
if (data.message) {
if (data.message.toUpperCase() == "OK") {
//TODO: trata dados
$(".step-3").show("slow");
} else {
$(".step-1").show("slow");
showMessage('Erro ao validar dados. Repita a operação em 5 minutos.')
}
} else {
$(".step-1").show("slow");
showMessage('Erro ao validar dados. Repita a operação em 5 minutos.');
}
}, "json"
).fail(function() {
$(".step-2").show();
showMessage('Erro ao buscar dados de usuário.');
}).always(function() {
$(".loading").fadeOut();
});
});
$("#submitPassword").click(function(){
$(".step-3").hide();
$(".loading").fadeIn();
//TODO: pega dados para requisição POST
cpf = $("#inputCPF").val();
postData = {
'pergunta1': $("#pergunta1").val(),
'pergunta2': $("#pergunta2").val(),
'pergunta3': $("#pergunta3").val(),
'resposta1': $("input[name=resposta1]:checked").val(),
'resposta2': $("input[name=resposta2]:checked").val(),
'resposta3': $("input[name=resposta3]:checked").val(),
'senha': $("#inputSenha").val(),
'confirmacao': $("#inputSenha2").val()
}
//TODO: efetua post
$.post("./back/alterasenha.php?cpf="+cpf, postData,
function (data) {
//console.log(data);
if (data != null && data.message != null && data.message != false) {
$(".step-4").show("slow");
$("#retorno").empty().append(data.message);
if (data.obs) {
$("#retorno").append("<br>"+data.obs);
}
} else {
showMessage("Erro ao efetuar operação. Por favor, repita a operação");
$(".step-3").show("slow");
}
}, "json"
).fail(function() {
$(".step-3").show();
showMessage('Erro ao buscar dados de usuário.');
}).always(function() {
$(".loading").fadeOut();
});
});
//
$("#form-step-1").submit(function(e){
e.preventDefault();
$("#searchUser").click();
});
// fetchs
if(self.fetch) {
// execute minha solicitação do fetch aqui
fetch('grupos.csv').then(function(response) {
return response.blob();
}).then(function(blob) {
return blob.text();
}).then(function(data) {
const grupos = CSVToArray(data, ";", true);
$(".grupos-items").each( function (index, elem) {
const tipo = $(elem).attr("dataid");
const filtrados = grupos.filter( (i) => i[0]==tipo ).map(grupoToString);
$(elem).append(...filtrados);
});
});
} else {
// faça alguma coisa com XMLHttpRequest?
console.log("nofetch");
jQuery.get( "grupos.csv", function(data) {
const grupos = CSVToArray(data, ";", true);
$(".grupos-items").each( function (index, elem) {
const tipo = $(elem).attr("dataid");
const filtrados = grupos.filter( (i) => i[0]==tipo ).map(grupoToString);
$(elem).append(...filtrados);
});
} );
}
});
//setInterval(function() {window.location.reload();}, 600000);
</script>]]>
|