Commit 364b178e by Joel Florentin

merge con validacion front

parents eb16b56a 109c920d
......@@ -78,7 +78,7 @@ public class Experiencia {
if(fechaDesde==null || fechaDesde.isEmpty()) return;
try {
this.fechaDesde = new SimpleDateFormat("yyyy-mm-dd").parse(fechaDesde);
this.fechaDesde = new SimpleDateFormat("yyyy-MM-dd").parse(fechaDesde);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
......@@ -94,7 +94,7 @@ public class Experiencia {
if(fechaHasta==null || fechaHasta.isEmpty()) return;
try {
this.fechaHasta = new SimpleDateFormat("yyyy-mm-dd").parse(fechaHasta);
this.fechaHasta = new SimpleDateFormat("yyyy-MM-dd").parse(fechaHasta);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
......
......@@ -153,7 +153,7 @@ public class Postulante {
if(fechaNacimiento==null || fechaNacimiento.isEmpty()) return;
try {
this.fechaNacimiento = new SimpleDateFormat("yyyy-mm-dd").parse(fechaNacimiento);
this.fechaNacimiento = new SimpleDateFormat("yyyy-MM-dd").parse(fechaNacimiento);
} catch (ParseException e) {
// TODO Auto-generated catch block
System.err.println("Error al parsear");
......
......@@ -37,30 +37,30 @@ public class PostulanteTecnologia {
@JoinColumn
@JsonBackReference
private Postulante postulante;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public Long getNivel() {
return nivel;
}
public void setNivel(Long nivel) {
this.nivel = nivel;
}
public Tecnologia getTecnologia() {
return tecnologia;
}
public void setTecnologia(Tecnologia tecnologia) {
this.tecnologia = tecnologia;
}
public Postulante getPostulante() {
return postulante;
}
public void setPostulante(Postulante postulante) {
this.postulante = postulante;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public Long getNivel() {
return nivel;
}
public void setNivel(Long nivel) {
this.nivel = nivel;
}
public Tecnologia getTecnologia() {
return tecnologia;
}
public void setTecnologia(Tecnologia tecnologia) {
this.tecnologia = tecnologia;
}
public Postulante getPostulante() {
return postulante;
}
public void setPostulante(Postulante postulante) {
this.postulante = postulante;
}
......
......@@ -4,13 +4,51 @@ let cont_tecnologia = 0;
const experiencias = [];
const estudios = [];
const tecnologias = [];
function agregarFieldExpierncia(){
const formValidator = function () {
'use strict'
// Fetch all the forms we want to apply custom Bootstrap validation styles to
var forms = document.querySelectorAll('.needs-validation')
var expForm = document.querySelector('#agregar-exp')
// Loop over them and prevent submission
Array.prototype.slice.call(forms)
.forEach(function (form) {
form.addEventListener('submit', function (event) {
if (!form.checkValidity()) {
event.preventDefault()
event.stopPropagation()
}
form.classList.add('was-validated')
}, false)
})
}
function agregarFieldExpierncia(event){
//recoger del form
const pairs = {};
const formexp = document.querySelector("[name=experiencia-form]");
const formData = new FormData(formexp);
const reconocimientos = [{},{},{}];
let pos_rec;
let returnFlag = false;
formData.forEach((value, key)=>{
if((key === "institucion" || key === "cargo" || key === "fechaDesde")
&& value==="" && returnFlag == false){
console.log(key, value)
returnFlag = true;
}
});
if(returnFlag===true){
alert("Rellene Institucion, Fechas y Cargo como minimo");
return;
}
for (const [name, value] of formData){
pos_rec = name.split("-");//rec-nombre-index
if (pos_rec.length > 1) {
......@@ -44,7 +82,6 @@ function agregarFieldExpierncia(){
div.innerHTML = '';
div.appendChild(div1);
cont_experiencia++;
}
/*--------------------------------------------------------------------*/
function agregarFieldTecnologia(){
......@@ -137,10 +174,14 @@ async function postData(url = '', data = {}) {
});
return response; // parses JSON response into native JavaScript objects
}
formValidator()
form = document.querySelector("form");
form.addEventListener("submit",(evt)=>{
// if (!form.checkValidity()) {
// evt.preventDefault()
// evt.stopPropagation()
// }
// form.classList.add('was-validated')
postData('postulante', serializeJSON(form))
.then(response => {
if(response.status==200 || response.status==302){
......
......@@ -16,47 +16,74 @@
<body class="container">
<h1>Curriculum</h1>
<form name="postulante" method="post">
<form name="postulante" method="post" class="row g-3 needs-validation" novalidate>
<div class="mb-3 col-5">
<label for="correo" class="form-label">Email address</label>
<input type="email" name="correo" class="form-control " id="correo" >
<input type="email" name="correo" class="form-control " id="correo" required>
<div id="emailHelp" class="form-text">We'll never share your email with anyone else.</div>
<div class="valid-feedback">
Luce Bien!
</div>
</div>
<div class="mb-3 col-5">
<label for="nombre" class="form-label">Nombre</label>
<input type="text" name="nombre" class="form-control " id="nombre" >
<input type="text" name="nombre" class="form-control" id="nombre" required>
<div class="valid-feedback">
Luce Bien!
</div>
</div>
<div class="mb-3 col-5">
<label for="apellido" class="form-label">Apellido</label>
<input type="text" name="apellido" class="form-control " id="apellido" >
<input type="text" name="apellido" class="form-control " id="apellido" required>
<div class="valid-feedback">
Luce Bien!
</div>
</div>
<div class="mb-3 col-3">
<label for="ci" class="form-label">Cedula de identidad</label>
<input type="number" name="ci" class="form-control " id="ci" >
<input type="number" name="ci" class="form-control " id="ci" required>
<div class="valid-feedback">
Luce Bien!
</div>
</div>
<div class="mb-3 col-5">
<label for="ciudad" class="form-label">Ciudad</label>
<input type="text" name="ciudad" class="form-control " id="ciudad" >
<input type="text" name="ciudad" class="form-control " id="ciudad" required>
<div class="valid-feedback">
Luce Bien!
</div>
</div>
<div class="mb-3 col-5">
<label for="telefono" class="form-label">Telefono</label>
<input type="number" name="telefono" class="form-control " id="telefono" >
<input type="number" name="telefono" class="form-control " id="telefono" required>
<div class="valid-feedback">
Luce Bien!
</div>
</div>
<div class="mb-3 col-5">
<label for="fechaNacimiento" class="form-label">Fecha de nacimiento</label>
<input type="date" name="fechaNacimiento" class="form-control " id="fechaNacimiento" >
<input type="date" min="1910-01-01" name="fechaNacimiento" class="form-control " id="fechaNacimiento" required>
<div class="valid-feedback">
Luce Bien!
</div>
</div>
<div class="mb-3 col-5">
<label for="resumen" class="form-label">Resumen</label>
<textarea class="form-control " name="resumen" id="resumen" > </textarea>
<textarea class="form-control " name="resumen" id="resumen" required> </textarea>
<div class="valid-feedback">
Luce Bien!
</div>
</div>
<div class="mb-3 col-5">
<label for="nivelIngles" class="form-label">Nivel de ingles</label>
<input type="number" class="form-control" name="nivelIngles" id="nivelIngles" >
<input type="number" class="form-control" name="nivelIngles" id="nivelIngles" required>
<div class="valid-feedback">
Luce Bien!
</div>
</div>
<div class="mb-3 col-5">
<label for="curriculum" class="form-label">Curriculum</label>
......@@ -64,13 +91,21 @@
</div>
<div class="mb-3 col-5">
<label for="disponibilidad" class="form-label">Disponibilidad</label>
<input type="text" class="form-control " name="disponibilidad" id="disponibilidad" >
<input type="text" class="form-control " name="disponibilidad" id="disponibilidad" required>
<div class="valid-feedback">
Luce Bien!
</div>
</div>
<div class="mb-3 col-5">
<label for="modalidad" class="form-label">Modalidad</label>
<input type="text" class="form-control " name="modalidad" id="modalidad" >
</div>
<input type="text" class="form-control " name="modalidad" id="modalidad" required>
<div class="valid-feedback">
Luce Bien!
</div>
</div>
<br>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#experienciaForm">
Agregar Experiencia
</button>
......@@ -105,13 +140,16 @@
<div class="modal-body">
<form name="experiencia-form">
<label for="institucion" class="form-label">Institucion</label>
<input type="text" class="form-control " name="institucion" id="institucion" >
<input type="text" class="form-control " name="institucion" id="institucion" required>
<label for="fechaDesde" class="form-label">FechaDesde</label>
<input type="date" class="form-control " name="fechaDesde" id="fechaDesde" >
<input type="date" min="1960-01-01" class="form-control " name="fechaDesde" id="fechaDesde" required>
<label for="fechaHasta" class="form-label">Fecha Hasta</label>
<input type="date" class="form-control " name="fechaHasta" id="fechaHasta" >
<label for="cargo" class="form-label">Cargo</label>
<input type="text" class="form-control " name="cargo" id="cargo" >
<input type="text" class="form-control " name="cargo" id="cargo" required>
<label for="descripcion" class="form-label">Descripcion</label>
<textarea class="form-control " name="descripcion" id="descripcion" > </textarea>
......@@ -149,7 +187,7 @@
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary" onclick="agregarFieldExpierncia()" data-dismiss="modal">Agregar</button>
<button id="agregar-exp" type="button" class="btn btn-primary" onclick="agregarFieldExpierncia()" data-dismiss="modal">Agregar</button>
</div>
</div>
</div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment