From 4b41f7c0ecbf9e89e7db9292bc32c37d60c20a9d Mon Sep 17 00:00:00 2001 From: Rafael Costa Date: Thu, 7 Dec 2023 15:25:53 -0300 Subject: [PATCH 1/3] feat: get phone and cellphone --- .../PerguntaSugeridaController.php | 10 ++-- sistema/perguntas/index.php | 4 +- sugestoes/index.php | 4 +- sugestoes/script.js | 52 +++++++++---------- 4 files changed, 35 insertions(+), 35 deletions(-) diff --git a/api/src/Controllers/PerguntaSugeridaController.php b/api/src/Controllers/PerguntaSugeridaController.php index a900272..eedc5d3 100644 --- a/api/src/Controllers/PerguntaSugeridaController.php +++ b/api/src/Controllers/PerguntaSugeridaController.php @@ -137,10 +137,12 @@ private function createValidationErrors(array $data): array $errors[] = "e-mail inválido"; } - if (empty($data["telefone"])) { - $errors[] = "celular é obrigatório"; - } else if (!preg_match("/^\d{11,}$/", $data["telefone"])) { - $errors[] = "celular deve ter 11 dígitos"; + $numeroLimpo = preg_replace("/[^0-9]/", "", $data["telefone"]); + + if (empty($numeroLimpo)) { + $errors[] = "telefone é obrigatório"; + } else if (strlen($numeroLimpo) < 10 || strlen($numeroLimpo) > 11) { + $errors[] = "telefone deve ter 10 ou 11 dígitos"; } if (empty($data["pergunta"])) { diff --git a/sistema/perguntas/index.php b/sistema/perguntas/index.php index 6675ccb..47583cf 100644 --- a/sistema/perguntas/index.php +++ b/sistema/perguntas/index.php @@ -72,7 +72,7 @@ Email - Celular + Telefone Sugestão @@ -172,4 +172,4 @@ - \ No newline at end of file + diff --git a/sugestoes/index.php b/sugestoes/index.php index 54311e3..624bd02 100644 --- a/sugestoes/index.php +++ b/sugestoes/index.php @@ -44,8 +44,8 @@
- - + +
diff --git a/sugestoes/script.js b/sugestoes/script.js index b97498e..b55cfb0 100644 --- a/sugestoes/script.js +++ b/sugestoes/script.js @@ -6,78 +6,77 @@ const botao = document.querySelector('.botao'); const nome = form.querySelector('#nome'); const email = form.querySelector('#email'); -const celular = form.querySelector('#phone'); +const telefone = form.querySelector('#phone'); const pergunta = form.querySelector('#mensagem'); -VMasker(celular).maskPattern('(99) 9-9999-9999'); +telefone.addEventListener('input', function (e) { + if (e.target.value.replace(/\D/g, '').length < 11) { + VMasker(telefone).maskPattern('(99) 9999-9999'); + } else { + VMasker(telefone).maskPattern('(99) 9-9999-9999'); + } +}); form.addEventListener('submit', async (e) => { e.preventDefault(); - VMasker(celular).unMask(); - spinner.classList.toggle('mostrar'); botao.classList.toggle('mostrar'); if (nome.value.length < 3) { toast('Nome precisa de no mínimo 3 caracteres', true); - spinner.classList.toggle('mostrar'); botao.classList.toggle('mostrar'); - VMasker(celular).maskPattern('(99) 9-9999-9999'); + return; } else if (nome.value.length > 100) { toast('Nome máximo permitido 100 caracteres', true); - spinner.classList.toggle('mostrar'); botao.classList.toggle('mostrar'); - VMasker(celular).maskPattern('(99) 9-9999-9999'); + return; } if (!validator.isEmail(email.value.trim())) { toast('Digite um e-mail válido', true); - spinner.classList.toggle('mostrar'); botao.classList.toggle('mostrar'); - VMasker(celular).maskPattern('(99) 9-9999-9999'); + return; } - if (!celular.value.trim()) { - toast('Celular obrigatório', true); - + if (!telefone.value.trim()) { + toast('telefone obrigatório', true); spinner.classList.toggle('mostrar'); botao.classList.toggle('mostrar'); - VMasker(celular).maskPattern('(99) 9-9999-9999'); - return; - } else if (celular.value.length !== 11) { - toast('Celular deve ter 11 dígitos', true); + return; + } else if ( + telefone.value.replace(/\D/g, '').length < 10 || + telefone.value.replace(/\D/g, '').length > 11 + ) { + toast('telefone deve ter 10 ou 11 dígitos', true); spinner.classList.toggle('mostrar'); botao.classList.toggle('mostrar'); - VMasker(celular).maskPattern('(99) 9-9999-9999'); return; } if (pergunta.value.length < 10) { toast('Dúvida precisa de no mínimo 10 caracteres', true); - spinner.classList.toggle('mostrar'); botao.classList.toggle('mostrar'); - VMasker(celular).maskPattern('(99) 9-9999-9999'); + return; } else if (pergunta.value.length > 2000) { toast('Dúvida máximo permitido 2000 caracteres', true); - spinner.classList.toggle('mostrar'); botao.classList.toggle('mostrar'); - VMasker(celular).maskPattern('(99) 9-9999-9999'); + return; } nome.disabled = true; email.disabled = true; - celular.disabled = true; + telefone.disabled = true; pergunta.disabled = true; setTimeout(async () => { @@ -85,7 +84,7 @@ form.addEventListener('submit', async (e) => { const sugestaoCriada = await criarSugestao({ nome: nome.value, email: email.value, - telefone: celular.value, + telefone: telefone.value, pergunta: pergunta.value, }); @@ -93,7 +92,7 @@ form.addEventListener('submit', async (e) => { toast('Sugestão enviada com sucesso'); nome.value = ''; email.value = ''; - celular.value = ''; + telefone.value = ''; pergunta.value = ''; } else { toast('Houve um erro ao criar a sugestão', true); @@ -103,12 +102,11 @@ form.addEventListener('submit', async (e) => { toast(erro, true); }); } finally { - VMasker(celular).maskPattern('(99) 9-9999-9999'); spinner.classList.toggle('mostrar'); botao.classList.toggle('mostrar'); nome.disabled = false; email.disabled = false; - celular.disabled = false; + telefone.disabled = false; pergunta.disabled = false; } }, 1000); From bdc99dd19e3329f49d1c55ac28893b86e1048051 Mon Sep 17 00:00:00 2001 From: Rafael Costa Date: Thu, 7 Dec 2023 15:29:22 -0300 Subject: [PATCH 2/3] chore: lower timeout --- sistema/colaboradores/script.js | 4 ++-- sistema/perguntas/script.js | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sistema/colaboradores/script.js b/sistema/colaboradores/script.js index 8bc3b18..d9940ce 100644 --- a/sistema/colaboradores/script.js +++ b/sistema/colaboradores/script.js @@ -92,7 +92,7 @@ formCriarConta.addEventListener('submit', async function (event) { setTimeout(() => { window.location.reload(); - }, 1000); + }, 500); } catch (error) { toast(error.message, true); console.error(error); @@ -327,7 +327,7 @@ const execute = async () => { setTimeout(() => { window.location.reload(); - }, 1000); + }, 500); } catch (error) { toast(error.message, true); } diff --git a/sistema/perguntas/script.js b/sistema/perguntas/script.js index 97c7e43..696eb45 100644 --- a/sistema/perguntas/script.js +++ b/sistema/perguntas/script.js @@ -132,7 +132,7 @@ const execute = async () => { setTimeout(() => { window.location = `${serverUrl}/sistema/perguntas`; - }, 1000); + }, 500); }; form.addEventListener('submit', async function (event) { @@ -158,7 +158,7 @@ const execute = async () => { setTimeout(() => { window.location.reload(); - }, 1000); + }, 500); } catch (error) { toast('Houve um problema ao atualizar a sugestão', true); console.log(error); @@ -194,7 +194,7 @@ const execute = async () => { setTimeout(() => { window.location.reload(); - }, 1000); + }, 500); } else { botaoEnviar.disabled = false; botaoEnviar.textContent = 'Adicionar'; From f4ec86b938657e511177e4bcbebb4d9c8985e406 Mon Sep 17 00:00:00 2001 From: Rafael Costa Date: Thu, 7 Dec 2023 15:36:33 -0300 Subject: [PATCH 3/3] fix: trazer por data de atualizacao a pergunta --- api/src/Gateways/PerguntaGateway.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/api/src/Gateways/PerguntaGateway.php b/api/src/Gateways/PerguntaGateway.php index fd62d57..4aedcf5 100644 --- a/api/src/Gateways/PerguntaGateway.php +++ b/api/src/Gateways/PerguntaGateway.php @@ -64,7 +64,8 @@ public function getAll(array $ordenacao, $pagina = 1, $qtdPorPg = 10, $order = " CASE WHEN prioridade = 'Alta' THEN 1 WHEN prioridade = 'Normal' THEN 2 - END + END, + p.atualizado_em DESC LIMIT :limit OFFSET :offset"; }