Commit f35018b6 by Joel Florentin

secciones estilizadas en el form postulantes

parent ccc1a8a4
...@@ -95,13 +95,6 @@ public class PostulanteController { ...@@ -95,13 +95,6 @@ public class PostulanteController {
return "postulante-form"; return "postulante-form";
} }
/* @PostMapping("/uploadCVPostulante")
public String uploadFile(@RequestParam("file") MultipartFile file) {
dbFileRepository.save(storeFile(file));
DBFile dbFile = dbFileRepository.save(storeFile(file));
return "{\"id\": "+dbFile.getId()+"}";
} */
private DBFile createFile(MultipartFile file) { private DBFile createFile(MultipartFile file) {
// Normalize file name // Normalize file name
String fileName = StringUtils.cleanPath(file.getOriginalFilename()); String fileName = StringUtils.cleanPath(file.getOriginalFilename());
......
...@@ -3,7 +3,7 @@ package com.roshka.modelo; ...@@ -3,7 +3,7 @@ package com.roshka.modelo;
import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.annotation.JsonValue;
public enum Nacionalidad { public enum Nacionalidad {
PY("Paraguayo"),EX("Extranjero"); PY("Paraguaya"),EX("Extranjera");
private String descripcion; private String descripcion;
......
[ [
{ {
"resumen": "In irure aliquip qui cillum veniam sint amet amet sint ex proident anim mollit.", "resumen": "In irure aliquip qui cillum veniam sint amet amet sint ex proident anim mollit.",
"nacionalidad": "Paraguayo", "nacionalidad": "Paraguaya",
"postulaciones": [{ "id": 1 }], "postulaciones": [{ "id": 1 }],
"estadoCivil": "Soltero", "estadoCivil": "Soltero",
"tipoDocumento": "CI", "tipoDocumento": "CI",
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
}, },
{ {
"resumen": "Do nostrud aliqua adipisicing in sunt aute id do elit ut dolor ad aliquip.", "resumen": "Do nostrud aliqua adipisicing in sunt aute id do elit ut dolor ad aliquip.",
"nacionalidad": "Paraguayo", "nacionalidad": "Paraguaya",
"postulaciones": [{ "id": 1 }], "postulaciones": [{ "id": 1 }],
"estadoCivil": "Soltero", "estadoCivil": "Soltero",
"tipoDocumento": "CI", "tipoDocumento": "CI",
...@@ -107,7 +107,7 @@ ...@@ -107,7 +107,7 @@
}, },
{ {
"resumen": "Occaecat non cupidatat amet reprehenderit consectetur ullamco et.", "resumen": "Occaecat non cupidatat amet reprehenderit consectetur ullamco et.",
"nacionalidad": "Paraguayo", "nacionalidad": "Paraguaya",
"postulaciones": [{ "id": 1 }], "postulaciones": [{ "id": 1 }],
"estadoCivil": "Soltero", "estadoCivil": "Soltero",
"tipoDocumento": "CI", "tipoDocumento": "CI",
...@@ -154,7 +154,7 @@ ...@@ -154,7 +154,7 @@
}, },
{ {
"resumen": "Qui ullamco excepteur velit ad ullamco id id nisi irure dolore cupidatat mollit ullamco veniam.", "resumen": "Qui ullamco excepteur velit ad ullamco id id nisi irure dolore cupidatat mollit ullamco veniam.",
"nacionalidad": "Paraguayo", "nacionalidad": "Paraguaya",
"postulaciones": [{ "id": 1 }], "postulaciones": [{ "id": 1 }],
"estadoCivil": "Soltero", "estadoCivil": "Soltero",
"tipoDocumento": "CI", "tipoDocumento": "CI",
...@@ -201,7 +201,7 @@ ...@@ -201,7 +201,7 @@
}, },
{ {
"resumen": "Deserunt tempor ut et eiusmod et labore Lorem.", "resumen": "Deserunt tempor ut et eiusmod et labore Lorem.",
"nacionalidad": "Paraguayo", "nacionalidad": "Paraguaya",
"postulaciones": [{ "id": 1 }], "postulaciones": [{ "id": 1 }],
"estadoCivil": "Soltero", "estadoCivil": "Soltero",
"tipoDocumento": "CI", "tipoDocumento": "CI",
...@@ -248,7 +248,7 @@ ...@@ -248,7 +248,7 @@
}, },
{ {
"resumen": "Aliqua est adipisicing do exercitation sit laborum aliquip aliqua adipisicing enim aute.", "resumen": "Aliqua est adipisicing do exercitation sit laborum aliquip aliqua adipisicing enim aute.",
"nacionalidad": "Paraguayo", "nacionalidad": "Paraguaya",
"postulaciones": [{ "id": 1 }], "postulaciones": [{ "id": 1 }],
"estadoCivil": "Soltero", "estadoCivil": "Soltero",
"tipoDocumento": "CI", "tipoDocumento": "CI",
...@@ -295,7 +295,7 @@ ...@@ -295,7 +295,7 @@
}, },
{ {
"resumen": "Officia eiusmod ut reprehenderit tempor consequat elit amet ex voluptate aute anim do.", "resumen": "Officia eiusmod ut reprehenderit tempor consequat elit amet ex voluptate aute anim do.",
"nacionalidad": "Paraguayo", "nacionalidad": "Paraguaya",
"postulaciones": [{ "id": 1 }], "postulaciones": [{ "id": 1 }],
"estadoCivil": "Soltero", "estadoCivil": "Soltero",
"tipoDocumento": "CI", "tipoDocumento": "CI",
......
...@@ -164,11 +164,11 @@ function agregarFieldTecnologia(){ ...@@ -164,11 +164,11 @@ function agregarFieldTecnologia(){
const tecn = tecnologias[index]; const tecn = tecnologias[index];
if(tecn==null) continue; if(tecn==null) continue;
content1 += ` content1 += `
<div class="col border border-3" id="tecn-${index}"> <div class="col-auto" id="tecn-${index}">
<label>${tecn.tecnologia.nombre}</label><br> ${tecn.tecnologia.nombre} ( ${tecn.nivel} <i class="bi bi-star-fill"></i> ) &nbsp; <i class="bi bi-trash-fill" onclick="eliminarTecnologia(event)"></i>
<label><progress value="${tecn.nivel}" max="5"></progress></label> <br>
<button type="button" class="btn btn-primary" onclick="eliminarTecnologia(event)">Eliminar</button>
<br>
</div> </div>
` `
...@@ -179,6 +179,7 @@ function agregarFieldTecnologia(){ ...@@ -179,6 +179,7 @@ function agregarFieldTecnologia(){
//div.appendChild(div1); //div.appendChild(div1);
cont_tecnologia++; cont_tecnologia++;
document.querySelector("#no-valid-tecno").style.display = "none"; document.querySelector("#no-valid-tecno").style.display = "none";
modalTecnologia.hide()
} }
function eliminarTecnologia(event) { function eliminarTecnologia(event) {
//eliminar del array //eliminar del array
...@@ -259,7 +260,7 @@ function agregarFieldExpierncia(event){ ...@@ -259,7 +260,7 @@ function agregarFieldExpierncia(event){
if(exp==null) continue; if(exp==null) continue;
content += ` content += `
<div class="col border border-3" id="exp-${index}"> <div class="col border border-3" id="exp-${index}">
<h4><center>Experiencia</center></h4> <center><h4>Experiencia <i class="bi bi-trash-fill" onclick="eliminarExperiencia(${index})"></i></h4></center>
<label><b>Institucion:</b> ${exp.institucion}</label><br> <label><b>Institucion:</b> ${exp.institucion}</label><br>
<label><b>Fecha Inicio:</b> ${exp.fechaDesde}</label><br> <label><b>Fecha Inicio:</b> ${exp.fechaDesde}</label><br>
<label><b>Fecha Fin:</b> ${exp.fechaHasta}</label><br> <label><b>Fecha Fin:</b> ${exp.fechaHasta}</label><br>
...@@ -268,7 +269,7 @@ function agregarFieldExpierncia(event){ ...@@ -268,7 +269,7 @@ function agregarFieldExpierncia(event){
<label><b>Cargo:</b> ${exp.cargo}</label><br> <label><b>Cargo:</b> ${exp.cargo}</label><br>
<label><b>Motivo de salida:</b> ${exp.motivoSalida}</label><br> <label><b>Motivo de salida:</b> ${exp.motivoSalida}</label><br>
<button type="button" class="btn btn-primary" onclick="eliminarExperiencia(event)"> <span class="glyphicon glyphicon-trash"></span>Eliminar</button>
</div> </div>
` `
...@@ -280,11 +281,12 @@ function agregarFieldExpierncia(event){ ...@@ -280,11 +281,12 @@ function agregarFieldExpierncia(event){
cont_experiencia++; cont_experiencia++;
modalExperiencia.hide() modalExperiencia.hide()
} }
function eliminarExperiencia(event) { function eliminarExperiencia(index) {
//eliminar del array //eliminar del array
experiencias[event.target.parentElement.id.split("-")[1]]=null experiencias[index]=null
//eliminar en html //eliminar en html
event.target.parentElement.remove() document.getElementById("exp-"+index).remove()
//event.target.parentElement.remove()
} }
/*---------------Estudios---------------------------*/ /*---------------Estudios---------------------------*/
...@@ -365,14 +367,14 @@ function agregarFieldEstudio(){ ...@@ -365,14 +367,14 @@ function agregarFieldEstudio(){
if(est==null) continue; if(est==null) continue;
content += ` content += `
<div class="col border border-3" id="est-${index}"> <div class="col border border-3" id="est-${index}">
<h4><center>Estudio</center></h4> <center><h4>Estudio <i class="bi bi-trash-fill" onclick="eliminarEstudio(${index})"></i></h4></center>
<label><b>Institucion:</b> ${est.institucion.nombre}</label><br> <label><b>Institucion:</b> ${est.institucion.nombre}</label><br>
<label><b>Tipo de estudio:</b> ${est.tipoDeEstudio}</label><br> <label><b>Tipo de estudio:</b> ${est.tipoDeEstudio}</label><br>
<label><b>Carrera:</b> ${est.temaDeEstudio}</label><br> <label><b>Carrera:</b> ${est.temaDeEstudio}</label><br>
<label><b>Fecha Inicio:</b> ${est.fechaDesde}</label><br> <label><b>Fecha Inicio:</b> ${est.fechaDesde}</label><br>
<label><b>Fecha Fin:</b> ${est.fechaHasta}</label><br> <label><b>Fecha Fin:</b> ${est.fechaHasta}</label><br>
<label><b>Estado:</b> ${est.estado}</label><br> <label><b>Estado:</b> ${est.estado}</label><br>
<button type="button" class="btn btn-primary" onclick="eliminarEstudio(event)">Eliminar</button>
</div> </div>
` `
...@@ -386,11 +388,11 @@ function agregarFieldEstudio(){ ...@@ -386,11 +388,11 @@ function agregarFieldEstudio(){
modalEstudio.hide() modalEstudio.hide()
} }
function eliminarEstudio(event) { function eliminarEstudio(index) {
//eliminar del array //eliminar del array
estudios[event.target.parentElement.id.split("-")[1]]=null estudios[index]=null
//eliminar en html //eliminar en html
event.target.parentElement.remove() document.getElementById("est-"+index).remove()
} }
/*------------Cargos----------------------------------------*/ /*------------Cargos----------------------------------------*/
function agregarFieldCargo(){ function agregarFieldCargo(){
...@@ -449,9 +451,9 @@ function agregarFieldCargo(){ ...@@ -449,9 +451,9 @@ function agregarFieldCargo(){
const car = postulaciones[index]; const car = postulaciones[index];
if(car==null) continue; if(car==null) continue;
content1 += ` content1 += `
<div class="col border border-3" id="car-${index}" style="text-transform: uppercase;"> <div class="col-auto" id="car-${index}" style="text-transform: uppercase;">
<label>${document.querySelector('[name=cargo-id] > option[value="'+car.id+'"]').innerHTML}</label><br> ${document.querySelector('[name=cargo-id] > option[value="'+car.id+'"]').innerHTML}<i class="bi bi-trash-fill" onclick="eliminarCargoPostulante(event)"></i>
<button type="button" class="btn btn-primary" onclick="eliminarCargoPostulante(event)">Eliminar</button><br>
</div> </div>
` `
...@@ -523,12 +525,13 @@ function agregarFieldReferencia(event){ ...@@ -523,12 +525,13 @@ function agregarFieldReferencia(event){
const exp = referencias[index]; const exp = referencias[index];
if(exp==null) continue; if(exp==null) continue;
content += ` content += `
<div class="col border border-3" id="exp-${index}"> <div class="col border border-3" id="ref-${index}">
<h4><center>Referencia Personal</center></h4> <center><h4>Referencia Personal <i class="bi bi-trash-fill" onclick="eliminarReferencia(${index})"></i></h4></center>
<label><b>Nombre:</b> ${exp.nombre}</label><br> <label><b>Nombre:</b> ${exp.nombre}</label><br>
<label><b>Telefono:</b> ${exp.telefono}</label><br> <label><b>Telefono:</b> ${exp.telefono}</label><br>
<label><b>Relacion:</b> ${exp.relacion}</label><br> <label><b>Relacion:</b> ${exp.relacion}</label><br>
<button type="button" class="btn btn-primary" onclick="eliminarReferencia(event)"> <span class="glyphicon glyphicon-trash"></span>Eliminar</button>
</div> </div>
` `
...@@ -539,13 +542,13 @@ function agregarFieldReferencia(event){ ...@@ -539,13 +542,13 @@ function agregarFieldReferencia(event){
//div.appendChild(div1); //div.appendChild(div1);
cont_referencias++; cont_referencias++;
formexp.classList.remove('was-validated') formexp.classList.remove('was-validated')
modalExperiencia.hide() modalReferencia.hide()
} }
function eliminarReferencia(event) { function eliminarReferencia(index) {
//eliminar del array //eliminar del array
referencias[event.target.parentElement.id.split("-")[1]]=null referencias[index]=null
//eliminar en html //eliminar en html
event.target.parentElement.remove() document.getElementById("ref-"+index).remove()
} }
/*--------------Form submit----------------------------- */ /*--------------Form submit----------------------------- */
function serializeJSON (form) { function serializeJSON (form) {
......
body { body {
background-color: #baebd8; background-color: #5078DA;
/* background-image:url(/img/fondo2.png); */ /* background-image:url(/img/fondo2.png); */
/*background-size:cover;*/ /*background-size:cover;*/
background-repeat:repeat; background-repeat:repeat;
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<title>Curriculum</title> <title>Curriculum</title>
<link href="../css/formPostulanteStyle.css" rel="stylesheet" type="text/css"/> <link href="../css/formPostulanteStyle.css" rel="stylesheet" type="text/css"/>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.7.1/font/bootstrap-icons.css">
</head> </head>
<body class="container"> <body class="container">
...@@ -26,7 +27,7 @@ ...@@ -26,7 +27,7 @@
<div class="d-flex flex-row justify-content-center mb-3"> <div class="d-flex flex-row justify-content-center mb-3">
</div> </div>
<h4>Curriculum</h4> <h4>Datos Personales</h4>
<div class="row"> <div class="row">
...@@ -44,7 +45,7 @@ ...@@ -44,7 +45,7 @@
<div class="inputs mb-3 col-md-6"> <div class="inputs mb-3 col-md-6">
<label for="correo" class="form-label">Email address</label> <label for="correo" class="form-label">Email</label>
<input type="email" name="correo" class="form-control " id="correo" required> <input type="email" name="correo" class="form-control " id="correo" required>
</div> </div>
...@@ -142,33 +143,109 @@ ...@@ -142,33 +143,109 @@
<input class="form-control" type="file" id="cvFile"> <input class="form-control" type="file" id="cvFile">
</div> </div>
<!-- Button Agregar Cargo al que postulas --> <!-- Button Agregar Cargo al que postulas -->
<button type="button" class="btn btn-primary"><span class="add-experience" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#cargoForm"><i class="fa fa-plus"></i>&nbsp;Agregar Cargo al que postulas</span></button><br> <div class="inputs mb-3 col-md-12">
<div class="row w-100 p-3 gy-2 border mx-auto">
<div class="col-12">
<h3>Cargos <i class="bi bi-plus-circle-fill" data-bs-toggle="modal" data-bs-target="#cargoForm"></i></h3>
</div>
<div class="col-12">
<div class="mt-3 gap-2 row row-cols-4" style="display: flex;" id="cargos">
</div>
</div>
<div class="col-12">
<p id="no-valid-cargo" style="display: none; color: darkred; border: solid 1px darkred; border-radius: 25px; width: 75%" class="m-3"> <p id="no-valid-cargo" style="display: none; color: darkred; border: solid 1px darkred; border-radius: 25px; width: 75%" class="m-3">
*Agrega por lo menos un cargo *Agrega por lo menos un cargo
</p> </p>
<div class="mt-3 gap-2 row row-cols-4" style="display: flex;" id="cargos"></div> </div>
</div>
</div>
<!-- Button Agregar Experiencia --> <!-- Button Agregar Experiencia -->
<button type="button" class="btn btn-primary mt-2"><span class="add-experience" data-bs-toggle="modal" data-bs-target="#experienciaForm"><i class="fa fa-plus"></i>&nbsp;Agregar Experiencia</span></button><br> <div class="inputs mb-3 col-md-12">
<div class="mt-3 gap-2 row row-cols-4" id="experiencias"></div>
<div class="row w-100 p-3 gy-2 border mx-auto">
<div class="col-12">
<h3>Experiencias <i class="bi bi-plus-circle-fill" data-bs-toggle="modal" data-bs-target="#experienciaForm"></i></h3>
</div>
<div class="col-12">
<div class="mt-3 gap-2 row row-cols-4" id="experiencias">
</div>
</div>
</div>
</div>
<!-- Button Agregar Estudio --> <!-- Button Agregar Estudio -->
<button type="button" class="btn btn-primary mt-2"><span class="add-experience" data-bs-toggle="modal" data-bs-target="#estudioForm"><i class="fa fa-plus"></i>&nbsp;Agregar Estudio</span></button><br> <div class="inputs mb-3 col-md-12">
<div class="mt-3 gap-2 row row-cols-4" id="estudios"></div>
<div class="row w-100 p-3 gy-2 border mx-auto">
<div class="col-12">
<h3>Estudios <i class="bi bi-plus-circle-fill" data-bs-toggle="modal" data-bs-target="#estudioForm"></i></h3>
</div>
<div class="col-12">
<div class="mt-3 gap-2 row row-cols-4" id="estudios">
</div>
</div>
</div>
</div>
<!-- Button Agregar Tecnologia --> <!-- Button Agregar Tecnologia -->
<button type="button" class="btn btn-primary mt-2"><span class="add-experience" data-bs-toggle="modal" data-bs-target="#tecnologiaForm"><i class="fa fa-plus"></i>&nbsp;Agregar Tecnologia</span></button><br> <div class="inputs mb-3 col-md-12">
<div class="row w-100 p-3 gy-2 border mx-auto">
<div class="col-12">
<h3>Tecnologias <i class="bi bi-plus-circle-fill" data-bs-toggle="modal" data-bs-target="#tecnologiaForm"></i></h3>
</div>
<div class="col-12">
<div class="mt-3 gap-2 row row-cols-5" style="display: flex;" id="tecnologias">
</div>
</div>
<div class="col-12">
<p id="no-valid-tecno" style="display: none; color: darkred; border: solid 1px darkred; border-radius: 25px; width: 75%" class="m-3"> <p id="no-valid-tecno" style="display: none; color: darkred; border: solid 1px darkred; border-radius: 25px; width: 75%" class="m-3">
*Agrega por lo menos una tecnologia *Agrega por lo menos una tecnologia
</p> </p>
<div class="mt-3 gap-2 row row-cols-5" style="display: flex;" id="tecnologias">
</div> </div>
</div>
</div>
<!-- Button Agregar Refencia personal --> <!-- Button Agregar Refencia personal -->
<button type="button" class="btn btn-primary mt-2"><span class="add-experience" data-bs-toggle="modal" data-bs-target="#referenciaForm"><i class="fa fa-plus"></i>&nbsp;Agregar Referencia Personal</span></button><br> <div class="inputs mb-3 col-md-12">
<div class="mt-3 gap-2 row row-cols-4" id="referencia"></div>
<div class="row w-100 p-3 gy-2 border mx-auto">
<div class="col-12">
<h3>Referencia Personal <i class="bi bi-plus-circle-fill" data-bs-toggle="modal" data-bs-target="#referenciaForm"></i></h3>
</div>
<div class="col-12">
<div class="mt-3 gap-2 row row-cols-4" id="referencia">
</div>
</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