Commit 77746912 by Nelson Ruiz

Se hizo estilos en el form

parents 971a2f4f c253c4b5
......@@ -5,6 +5,7 @@ import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import com.roshka.modelo.Experiencia;
import com.roshka.modelo.Postulante;
import com.roshka.repositorio.PostulanteRepository;
......
......@@ -12,6 +12,9 @@ import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
@Entity
@Table(name="estudio")
public class Estudio {
......@@ -34,8 +37,10 @@ public class Estudio {
@ManyToOne
@JoinColumn
@JsonBackReference
private Postulante postulante;
@JsonManagedReference
@OneToMany(mappedBy = "estudio")
private List<EstudioReconocimiento> estudioReconocimiento;
......
......@@ -10,6 +10,8 @@ import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonBackReference;
@Entity
@Table(name="estudio_reconocimiento")
public class EstudioReconocimiento {
......@@ -21,6 +23,7 @@ public class EstudioReconocimiento {
private String nombre;
@Column(name="certificado")
private String certificado;
@JsonBackReference
@ManyToOne
@JoinColumn
private Estudio estudio;
......
......@@ -3,11 +3,16 @@ package com.roshka.modelo;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import javax.persistence.*;
@Entity
......@@ -26,10 +31,17 @@ public class Experiencia {
private String referencias;
@Column(name = "cargo")
private String cargo;
@ManyToOne
@Column(name = "descripcion")
private String descripcion;
@JsonBackReference
@ManyToOne(optional = false)
@JoinColumn
private Postulante postulante;
@JsonManagedReference
@OneToMany(mappedBy = "experiencia",cascade = CascadeType.ALL)
private List<ExperienciaReconocimiento> reconocimientos;
public long getId() {
return id;
}
......@@ -86,4 +98,16 @@ public class Experiencia {
public Postulante getPostulante() {
return postulante;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public void setReconocimientos(List<ExperienciaReconocimiento> reconocimientos) {
this.reconocimientos = reconocimientos;
}
public List<ExperienciaReconocimiento> getReconocimientos() {
return reconocimientos;
}
}
......@@ -2,6 +2,8 @@ package com.roshka.modelo;
import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonBackReference;
@Entity
@Table(name = "experiencia_reconocimiento")
public class ExperienciaReconocimiento {
......@@ -10,12 +12,16 @@ public class ExperienciaReconocimiento {
@Column(name="id")
private long id;
@ManyToOne
@ManyToOne(optional = false)
@JoinColumn
@JsonBackReference
private Experiencia experiencia;
@Column(name = "nivel")
private long nivel;
@Column(name="nombre")
private String nombre;
@Column(name="certificado")
private String certificado;
public long getId() {
return id;
......@@ -29,10 +35,16 @@ public class ExperienciaReconocimiento {
public void setExperiencia(Experiencia experiencia) {
this.experiencia = experiencia;
}
public long getNivel() {
return nivel;
public String getCertificado() {
return certificado;
}
public String getNombre() {
return nombre;
}
public void setCertificado(String certificado) {
this.certificado = certificado;
}
public void setNivel(long nivel) {
this.nivel = nivel;
public void setNombre(String nombre) {
this.nombre = nombre;
}
}
package com.roshka.modelo;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name = "experiencia_tecnologia")
public class ExperienciaTecnologia {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="id")
private Long id;
@ManyToOne
@JoinColumn
private Experiencia experencia;
@ManyToOne
@JoinColumn
private Tecnologia tecnologia;
@Column(name="nivel")
private Long nivel;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Experiencia getExperencia() {
return experencia;
}
public void setExperencia(Experiencia experencia) {
this.experencia = experencia;
}
public Tecnologia getTecnologia() {
return tecnologia;
}
public void setTecnologia(Tecnologia tecnologia) {
this.tecnologia = tecnologia;
}
public Long getNivel() {
return nivel;
}
public void setNivel(Long nivel) {
this.nivel = nivel;
}
}
......@@ -2,8 +2,11 @@ package com.roshka.modelo;
import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
......@@ -52,12 +55,15 @@ public class Postulante {
@Column(name = "disponibilidad")
private String disponibilidad;
@JsonManagedReference
@OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL)
private List<PostulanteTecnologia> tecnologias;
@JsonManagedReference
@OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL)
private List<Experiencia> experiencias;
private List<Experiencia> experiencias = new ArrayList<>();
@JsonManagedReference
@OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL)
private List<Estudio> estudios;
......
......@@ -8,6 +8,8 @@ import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonBackReference;
@Entity
@Table(name="postulante_tecnologia")
......@@ -23,6 +25,7 @@ public class PostulanteTecnologia {
private Tecnologia tecnologia;
@ManyToOne()
@JoinColumn
@JsonBackReference
private Postulante postulante;
public long getId() {
return id;
......
package com.roshka.repositorio;
import org.springframework.data.jpa.repository.JpaRepository;
import com.roshka.modelo.ExperienciaTecnologia;
public interface ExperienciaTecnologiaRepository extends JpaRepository<ExperienciaTecnologia,Long> {
}
......@@ -9,9 +9,19 @@ function agregarFieldExpierncia(){
const pairs = {};
const formexp = document.querySelector("[name=experiencia-form]");
const formData = new FormData(formexp);
const reconocimientos = [{},{},{}];
let pos_rec;
for (const [name, value] of formData){
pairs[name] = value
pos_rec = name.split("-");//rec-nombre-index
if (pos_rec.length > 1) {
reconocimientos[pos_rec[2]][pos_rec[1]] = value
}
else{
pairs[name] = value
}
}
pairs["reconocimientos"] = reconocimientos.filter(rec => rec.nombre);
experiencias[cont_experiencia] = pairs;
formexp.reset();
//imprimir lista actualizada
......@@ -25,7 +35,7 @@ function agregarFieldExpierncia(){
content += `
<li id="exp-${index}">
${exp.institucion}
<button type="button" onclick="eliminarExperiencia(event)">Eliminar</button>
<button type="button" onclick="eliminarExperiencia(event)"> <span class="glyphicon glyphicon-trash"></span> Tras</button>
</li>
`
......@@ -40,7 +50,6 @@ function agregarFieldExpierncia(){
function eliminarExperiencia(event) {
//eliminar del array
console.log(event.target.parentElement.id.split("-")[1])
experiencias[event.target.parentElement.id.split("-")[1]]=null
//eliminar en html
event.target.parentElement.remove()
......@@ -87,7 +96,6 @@ form.addEventListener("submit",(evt)=>{
postData('postulante', serializeJSON(form))
.then(response => {
console.log(response); // JSON data parsed by `data.json()` call
location.replace(response.url);
});
evt.preventDefault();
......
......@@ -7,216 +7,220 @@
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<title>Hello, world!</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
<style type="text/css" media="screen">
body {
background-color: blue
}
.card {
border: none
}
.image {
position: relative
}
.image span {
background-color: blue;
color: #fff;
padding: 6px;
height: 30px;
width: 30px;
border-radius: 50%;
font-size: 13px;
position: absolute;
display: flex;
justify-content: center;
align-items: center;
top: -0px;
right: 0px
}
.user-details h4 {
color: blue
}
.ratings {
font-size: 30px;
font-weight: 600;
display: flex;
justify-content: left;
align-items: center;
color: #f9b43a
}
.user-details span {
text-align: left
}
.inputs label {
display: flex;
margin-left: 3px;
font-weight: 500;
font-size: 13px;
margin-bottom: 4px
}
.inputs input {
font-size: 14px;
height: 40px;
border: 2px solid #ced4da
}
.inputs input:focus {
box-shadow: none;
border: 2px solid blue
}
.about-inputs label {
display: flex;
margin-left: 3px;
font-weight: 500;
font-size: 13px;
margin-bottom: 4px
}
.about-inputs textarea {
font-size: 14px;
height: 100px;
border: 2px solid #ced4da;
resize: none
}
.about-inputs textarea:focus {
box-shadow: none
}
.btn {
font-weight: 600
}
.btn:focus {
box-shadow: none
}
select {
display: block;
width: 100%;
border: 1px solid #ddd;
border-radius: 10px;
height: 40px;
padding: 5px 10px
}
select:focus {
outline: none
}
background-color: blue
}
.card {
border: none
}
.image {
position: relative
}
.image span {
background-color: blue;
color: #fff;
padding: 6px;
height: 30px;
width: 30px;
border-radius: 50%;
font-size: 13px;
position: absolute;
display: flex;
justify-content: center;
align-items: center;
top: -0px;
right: 0px
}
.user-details h4 {
color: blue
}
.ratings {
font-size: 30px;
font-weight: 600;
display: flex;
justify-content: left;
align-items: center;
color: #f9b43a
}
.user-details span {
text-align: left
}
.inputs label {
display: flex;
margin-left: 3px;
font-weight: 500;
font-size: 13px;
margin-bottom: 4px
}
.inputs input {
font-size: 14px;
height: 40px;
border: 2px solid #ced4da
}
.inputs input:focus {
box-shadow: none;
border: 2px solid blue
}
.about-inputs label {
display: flex;
margin-left: 3px;
font-weight: 500;
font-size: 13px;
margin-bottom: 4px
}
.about-inputs textarea {
font-size: 14px;
height: 100px;
border: 2px solid #ced4da;
resize: none
}
.about-inputs textarea:focus {
box-shadow: none
}
.btn {
font-weight: 600
}
.btn:focus {
box-shadow: none
}
select {
display: block;
width: 100%;
border: 1px solid #ddd;
border-radius: 10px;
height: 40px;
padding: 5px 10px
}
select:focus {
outline: none
}
.add-experience:hover {
background: blue;
color: #fff;
cursor: pointer;
border: solid 1px blue
}
</style>
</head>
<body class="container">
<body class="container">
<form name="postulante" method="post">
<div class="container mt-3">
<div class="card p-3 text-center">
<div class="d-flex flex-row justify-content-center mb-3">
<div class="image"> <img src="https://i.imgur.com/hczKIze.jpg" class="rounded-circle"> <span><i class='bx bxs-camera-plus'></i></span> </div>
<div class="d-flex flex-column ms-3 user-details">
<h4 class="mb-0">Zenda Grace</h4>
<div class="ratings"> <span>4.0</span> <i class='bx bx-star ms-1'></i> </div> <span>Pro Member</span>
</div>
</div>
<h4>Edit Profile</h4>
<h4>Curriculum</h4>
<div class="row">
<div class="mb-3 col-md-6">
<div class="about-inputs mb-3 col-md-12 center">
<label for="resumen" class="form-label">Resumen</label>
<textarea class="form-control center " name="resumen" id="resumen" > </textarea>
</div>
<div class="inputs mb-3 col-md-6">
<label for="nombre" class="form-label">Nombre</label>
<input type="text" name="nombre" class="form-control " id="nombre" >
</div>
<div class="mb-3 col-md-6">
<div class="inputs mb-3 col-md-6">
<label for="apellido" class="form-label">Apellido</label>
<input type="text" name="apellido" class="form-control " id="apellido" >
</div>
<div class="mb-3 col-md-6">
<div class="inputs mb-3 col-md-6">
<label for="correo" class="form-label">Email address</label>
<input type="email" name="correo" class="form-control " id="correo" >
</div>
<div class="col-md-6">
<div class="inputs mb-3 col-md-6">
<label for="ci" class="form-label">Cedula de identidad</label>
<input type="number" name="ci" class="form-control " id="ci" >
</div>
<div class="col-md-6">
<div class="inputs mb-3 col-md-6">
<label form="ciudad" class="form-label">Ciudad</label>
<input type="text" name="ciudad" class="form-control " id="ciudad" >
</div>
<div class="mb-3 col-md-6">
<div class="inputs mb-3 col-md-6">
<label for="telefono" class="form-label">Telefono</label>
<input type="number" name="telefono" class="form-control " id="telefono" >
</div>
<div class="mb-3 col-md-6">
<div class="inputs mb-3 col-md-6">
<label for="fechaNacimiento" class="form-label">Fecha de nacimiento</label>
<input type="date" name="fechaNacimiento" class="form-control " id="fechaNacimiento" >
</div>
<div class="col-md-6"> <label for="nivelIngles"> Nivel de ingles</label> <select name="nivelIngles" id="nivelIngles" class="bg-light">
<div class="inputs col-md-6"> <label for="nivelIngles" class="form-label"> Nivel de ingles</label>
<select name="nivelIngles" id="nivelIngles" class="bg-light">
<option value="1" selected>1</option>
<option value="2" >2</option>
<option value="3" >3</option>
<option value="4" >4</option>
<option value="5" >5</option>
</select> </div>
<div class="col-md-6"> <label for="disponibilidad"> Disponibilidad</label> <select name="disponibilidad" id="disponibilidad" class="bg-light">
</select>
</div>
<div class="inputs mb-3 col-md-6">
<label for="disponibilidad" class="form-label"> Disponibilidad</label>
<select name="disponibilidad" id="disponibilidad" class="bg-light">
<option value="Tiempo completo" selected>Tiempo completo</option>
<option value="Medio tiempo">Medio tiempo</option>
</select> </div>
<div class="col-md-6"> <label for="modalidad"> Modalidad</label> <select name="modalidad" id="modalidad" class="bg-light">
<div class="inputs mb-3 col-md-6">
<label for="modalidad" class="form-label"> Modalidad</label>
<select name="modalidad" id="modalidad" class="bg-light">
<option value="Pesencial" selected>Presencial</option>
<option value="Semi presencial">Semi presencial</option>
<option value="Remoto">Remoto</option>
</select> </div>
<div class="mb-3 col-md-6">
<label for="curriculum" class="form-label">Curriculum</label>
<input type="text" name="curriculum" class="form-control " id="curriculum" >
</div>
<div class="inputs p-3 py-5">
<div class=" inputs d-flex justify-content-between align-items-center experience"><span class="border px-3 p-1 add-experience" data-toggle="modal" data-target="#experienciaForm"><i class="fa fa-plus"></i>&nbsp;Experiencia</span></div><br>
</div>
</div>
<div class="row">
<div class="class about-inputs">
<label for="resumen" class="form-label">Resumen</label>
<textarea class="form-control " name="resumen" id="resumen" > </textarea>
<div class="mt-3 gap-2 d-flex justify-content-between" id="experiencias">
</div>
</div>
<div class="p-3 py-5">
<div class="d-flex justify-content-between align-items-center experience"><span>Edit Experience</span><span class="border px-3 p-1 add-experience" data-toggle="modal" data-target="#experienciaForm"><i class="fa fa-plus"></i>&nbsp;Experience</span></div><br>
<div class="mt-3 gap-2 d-flex justify-content-end">
<button class="px-3 btn btn-sm btn-outline-primary">Cancelar</button>
<button class="px-3 btn btn-sm btn-primary" type="submit">Guardar</button>
</div>
<div class="mt-3 gap-2 d-flex justify-content-end"> <button class="px-3 btn btn-sm btn-outline-primary">Cancel</button> <button class="px-3 btn btn-sm btn-primary" type="submit">Save</button> </div>
</div>
</div>
</div>
</form>
<div class="modal fade" id="experienciaForm" tabindex="-1" role="dialog" aria-labelledby="experienciaForm" aria-hidden="true">
......@@ -230,16 +234,58 @@ select:focus {
</div>
<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" >
<label for="fechaDesde" class="form-label">FechaDesde</label>
<input type="date" class="form-control " name="fechaDesde" id="fechaDesde" >
<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="cargo" class="form-control " name="cargo" id="cargo" >
<label for="refNombre" class="form-label">Referencia Nombre</label>
<input type="text" class="form-control " name="referencias" id="refNombre" >
<div class="inputs">
<label for="institucion" class="inputs form-label">Institucion</label>
<input type="text" class="inputs form-control " name="institucion" id="institucion" >
</div>
<div class="inputs">
<label for="fechaDesde" class="form-label">Fecha Desde</label>
<input type="date" class="form-control " name="fechaDesde" id="fechaDesde" >
</div>
<div class="inputs">
<label for="fechaHasta" class="form-label">Fecha Hasta</label>
<input type="date" class="form-control " name="fechaHasta" id="fechaHasta" >
</div>
<div class="inputs">
<label for="cargo" class="form-label">Cargo</label>
<input type="text" class="form-control " name="cargo" id="cargo" >
</div>
<div class="inputs">
<label for="refNombre" class="form-label">Referencia Nombre</label>
<input type="text" class="form-control " name="referencias" id="refNombre" >
</div>
<div class="inputs">
<label class="form-label">Reconocimientos</label>
</div>
<div class="row mb-3">
<div class="inputs col">
<input type="text" class="form-control" name="rec-nombre-0" placeholder="Titulo del reconocimiento" aria-label="First name">
</div>
<div class=" inputs col">
<input type="text" class="form-control" name="rec-certificado-0" placeholder="Adjuntar archivo" aria-label="Last name">
</div>
</div>
<div class="row mb-3">
<div class="inputs col">
<input type="text" class="form-control" name="rec-nombre-1" placeholder="Titulo del reconocimiento" aria-label="First name">
</div>
<div class="inputs col">
<input type="text" class="form-control" name="rec-certificado-1" placeholder="Adjuntar archivo" aria-label="Last name">
</div>
</div>
<div class="row mb-3">
<div class="inputs col">
<input type="text" class="form-control" name="rec-nombre-2" placeholder="Titulo del reconocimiento" aria-label="First name">
</div>
<div class="inputs col">
<input type="text" class="form-control" name="rec-certificado-2" placeholder="Adjuntar archivo" aria-label="Last name">
</div>
</div>
</form>
</div>
<div class="modal-footer">
......
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