Teste
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

112 lines
3.1 KiB

// (() => {
// const array = [{titulo: 'Prática na empresa', data: '2023-06-20', capacidade: 20, preco: 0.00, categoria: 'Visita técnica'},
// {titulo: 'Aula de ReactJs', data: '2023-07-08', capacidade: 100, preco: 30.00, categoria: 'Aula'},
// {titulo: 'Aula de lógica de programação', data: '2023-06-15', capacidade: 50, preco: 15.00, categoria: 'Aula'},
// {titulo: 'Jogo de Flamengo X Corinthians', data: '2023-08-23', capacidade: 100000, preco: 180.00, categoria: 'Jogo'},
// {titulo: 'Visita técnica na empresa Sitana', data: '2023-10-10', capacidade: 25, preco: 0.00, categoria: 'Visita técnica'}]
// array.map((obj,i) => {
// const tr = document.getElementsByTagName('tr')[i+1]
// Object.keys(obj).map((key,j) => {
// const td = tr.getElementsByTagName('td')[j]
// td.innerText = obj[key]
// })
// })
// })()
const sendData = (form) => {
const formData = new FormData(form);
if(!validator(formData)) {
return false
}
openClose('form', 'head-form', 'none');
document.getElementsByClassName('send-message')[0].style.display = 'block'
const request = new XMLHttpRequest();
request.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
finish(this.responseText)
}
else if(this.readyState >= 4) {
finish('ERRO: ' + this.responseText)
}
}
const precoFormatado = parseFloat(formData.get("preco").replace('.','').replace(',','.'))
const objeto = {
titulo: formData.get("titulo"),
data: formData.get("data"),
capacidade: parseInt(formData.get("capacidade")),
preco: precoFormatado,
categoria: parseInt(formData.get("categoria"))
}
request.open('POST', 'http://hcbarros.bootcamp.dev.netuno.org:20190/services/evento-salvar')
request.setRequestHeader('Content-Type', 'application/json')
request.send(JSON.stringify(objeto));
return false
}
const validator = (formData) => {
if(formData.get("titulo").length < 5) {
alert('O título deve possuir ao menos 5 caracteres!')
return false
}
const date = new Date(formData.get("data"))
if(isNaN(date.getTime())) {
alert('Data inválida!')
return false
}
return true
}
const finish = (text) => {
openClose('modal-content', 'form-container', 'none')
setTimeout(() => {
alert(text)
window.location.reload()
}, 100)
}
const openClose = (classe1, classe2, acao) => {
document.getElementsByClassName(classe1)[0].style.display = acao
document.getElementsByClassName(classe2)[0].style.display = acao
}
const numberMask = (e) => {
let v = e.value.replace(/\D/g,'')
v = v.length === 0 ? '0' : v
e.value = v.length > 1 && v.charAt(0) == '0' ? v.substring(1) : v
}
const currencyMask = (e) => {
let v = e.value.replace(/\D/g,'')
v = (v/100).toFixed(2) + ''
v = v.replace(".", ",").replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1.')
e.value = v
}