Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
th-app-java
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Amparo Oliver
th-app-java
Commits
4af333a4
Commit
4af333a4
authored
Nov 22, 2021
by
Cesar Giulano Gonzalez Maqueda
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Generacion de PDF por JS-html2pdf(no se puede seleccionar texto)
parent
f24f57f8
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
807 additions
and
535 deletions
+807
-535
curriculumsearch/src/main/java/com/roshka/controller/PostulanteRRHHController.java
+16
-1
curriculumsearch/src/main/webapp/jsp/detallepostulante.jsp
+399
-375
curriculumsearch/src/main/webapp/jsp/detallepostulante2.jsp
+389
-157
curriculumsearch/src/main/webapp/jsp/postulantes.jsp
+3
-2
No files found.
curriculumsearch/src/main/java/com/roshka/controller/PostulanteRRHHController.java
View file @
4af333a4
...
@@ -98,7 +98,11 @@ public class PostulanteRRHHController {
...
@@ -98,7 +98,11 @@ public class PostulanteRRHHController {
model
.
addAttribute
(
"institucionesEducativas"
,
institucionRepository
.
findAll
());
model
.
addAttribute
(
"institucionesEducativas"
,
institucionRepository
.
findAll
());
model
.
addAttribute
(
"estadoP"
,
EstadoPostulante
.
values
());
model
.
addAttribute
(
"estadoP"
,
EstadoPostulante
.
values
());
model
.
addAttribute
(
"convocatoriaC"
,
cargoRepo
.
findAll
());
model
.
addAttribute
(
"convocatoriaC"
,
cargoRepo
.
findAll
());
Page
<
Postulante
>
postulantesPag
=
post
.
postulantesMultiFiltro
(
nombre
==
null
||
nombre
.
trim
().
isEmpty
()
?
new
TypedParameterValue
(
StringType
.
INSTANCE
,
null
)
:
new
TypedParameterValue
(
StringType
.
INSTANCE
,
"%"
+
nombre
+
"%"
),
dispo
,
lvlEng
,
lvlTec
,
tecId
,
instId
,
cargoId
,
page
,
estado
,
convId
);
Page
<
Postulante
>
postulantesPag
=
post
.
postulantesMultiFiltro
(
nombre
==
null
||
nombre
.
trim
().
isEmpty
()
?
new
TypedParameterValue
(
StringType
.
INSTANCE
,
null
)
:
new
TypedParameterValue
(
StringType
.
INSTANCE
,
"%"
+
nombre
+
"%"
),
dispo
,
lvlEng
,
lvlTec
,
tecId
,
instId
,
cargoId
,
page
,
estado
,
convId
);
List
<
Postulante
>
postulantes
=
postulantesPag
.
getContent
();
List
<
Postulante
>
postulantes
=
postulantesPag
.
getContent
();
List
<
PostulanteListaDTO
>
postulantesDTO
=
new
ArrayList
<>();
List
<
PostulanteListaDTO
>
postulantesDTO
=
new
ArrayList
<>();
...
@@ -129,6 +133,17 @@ public class PostulanteRRHHController {
...
@@ -129,6 +133,17 @@ public class PostulanteRRHHController {
return
"detallepostulante"
;
return
"detallepostulante"
;
}
}
// @GetMapping({"/pdfPostulante/{postulanteId}"})
// public String getPostulantePdf(Model model, @PathVariable("postulanteId") Long postulanteId) {
// Postulante p = post.findById(postulanteId).orElse(null);
// model.addAttribute("postulante",p);
// model.addAttribute("cvId", fileRepo.getIdByPostulante(p));
// model.addAttribute("estadoP", EstadoPostulante.values());
// return "detallepostulante2";
//
// }
@PostMapping
({
"/postulantes/{postulanteId}"
})
@PostMapping
({
"/postulantes/{postulanteId}"
})
public
String
setPostulanteEstado
(
@ModelAttribute
Postulante
postulante
,
BindingResult
result
,
@PathVariable
(
"postulanteId"
)
Long
postulanteId
)
{
public
String
setPostulanteEstado
(
@ModelAttribute
Postulante
postulante
,
BindingResult
result
,
@PathVariable
(
"postulanteId"
)
Long
postulanteId
)
{
//post.setPostulanteEstadoAndComentario(postulante.getEstadoPostulante(),postulante.getComentarioRRHH(), postulante.getId());
//post.setPostulanteEstadoAndComentario(postulante.getEstadoPostulante(),postulante.getComentarioRRHH(), postulante.getId());
...
...
curriculumsearch/src/main/webapp/jsp/detallepostulante.jsp
View file @
4af333a4
...
@@ -7,385 +7,409 @@
...
@@ -7,385 +7,409 @@
<layout:extends name="layouts/base.jsp">
<layout:extends name="layouts/base.jsp">
<layout:put block="contents" type="REPLACE">
<layout:put block="contents" type="REPLACE">
<h2 style="text-align: center;">
<div id="element-to-print">
DETALLE POSTULANTE
<h2 style="text-align: center;">
</h2>
DETALLE POSTULANTE
<div class="row gy-3">
</h2>
<div class="col-md-6">
<div class="row gy-3">
<div class="card mb-3">
<div class="col-md-6">
<div class="card-body">
<div class="card mb-3">
<div class="row">
<div class="card-body">
<div class="col-sm-3">
<div class="row">
<h6 class="mb-0">Nombre</h6>
<div class="col-sm-3">
</div>
<h6 class="mb-0">Nombre</h6>
<div class="col-sm-9 text-secondary">
</div>
${postulante.nombre} ${postulante.apellido}
<div class="col-sm-9 text-secondary">
</div>
${postulante.nombre} ${postulante.apellido}
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-3">
<h6 class="mb-0">Email</h6>
</div>
<div class="col-sm-9 text-secondary">
${postulante.correo}
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-3">
<h6 class="mb-0">Vive en</h6>
</div>
<div class="col-sm-9 text-secondary">
${postulante.getCiudad().getNombre()}, ${postulante.getCiudad().getDepartamento().getNombre()}
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-3">
<h6 class="mb-0">Nro de Documento</h6>
</div>
<div class="col-sm-9 text-secondary">
${postulante.tipoDocumento}: ${postulante.nroDocument}
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-3">
<h6 class="mb-0">Telefono</h6>
</div>
<div class="col-sm-9 text-secondary">
${postulante.telefono}
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-3">
<h6 class="mb-0">Edad</h6>
</div>
<div id="edad" class="col-sm-9 text-secondary"></div>
<input style="display: none;" id="dob" value="${postulante.fechaNacimiento}">
</div>
<hr>
<div class="row">
<div class="col-sm-3">
<h6 class="mb-0">Direccion</h6>
</div>
<div class="col-sm-9 text-secondary">
${postulante.direccion}
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-3">
<h6 class="mb-0">Nivel de Ingles</h6>
</div>
<div class="col-sm-9 text-secondary">
${postulante.nivelIngles}
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-3">
<h6 class="mb-0">Estado Civil</h6>
</div>
<div class="col-sm-9 text-secondary">
${postulante.estadoCivil.getDescripcion()}
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-3">
<h6 class="mb-0">Nacionalidad</h6>
</div>
<div class="col-sm-9 text-secondary">
${postulante.nacionalidad.getDescripcion()}
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-3">
<h6 class="mb-0">Disponbilidad</h6>
</div>
<div class="col-sm-9 text-secondary">
${postulante.disponibilidad.getDescripcion()}
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-3">
<h6 class="mb-0">Estado</h6>
</div>
<div class="col-sm-9 text-secondary">
${postulante.estadoPostulante.getEstado()}
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-3">
<h6 class="mb-0">ComentarioRRHH</h6>
</div>
<div class="col-sm-9 text-secondary">
${postulante.getComentarioRRHH()}
</div>
</div>
<hr>
<div class="row">
<div class="col">
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#estadoModalLong">Agregar observacion</button>
</div>
<c:choose>
<c:when test = "${cvId != null}">
<div class="col">
<a class="btn btn-link" target="__blank" href="/postulantes/cvFile/${cvId}">Descargar CV</a>
</div>
</c:when>
</c:choose>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="row gy-3">
<div class="col-md-6">
<div class="card h-100">
<div class="card-body">
<h6 class="text-start fw-bold">Tecnologias</h6>
<c:forEach items="${postulante.tecnologias}" var="detalle_tecnologia">
<small>${detalle_tecnologia.getTecnologia().getNombre()}</small>
<div class="progress mb-3" style="height: 5px">
<div class="progress-bar bg-primary" role="progressbar" style="width: ${(detalle_tecnologia.getNivel() / 5) * 100}%" aria-valuenow="${detalle_tecnologia.getNivel()}" aria-valuemin="1" aria-valuemax="5"></div>
</div>
</c:forEach>
<hr>
<h6 class="text-start fw-bold">Cargos al que postula</h6>
<ul class="list-group list-group-flush">
<c:forEach items="${postulante.postulaciones}" var="convocatoria">
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">${convocatoria.getCargo().getNombre()}</h6>
<span class="text-secondary"></span>
</li>
</c:forEach>
</ul>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-body">
<div id="carouselExampleIndicators" class="carousel carousel-dark slide" data-bs-ride="carousel">
<div class="carousel-inner">
<h6 class="d-flex justify-content-between fw-bold px-1">
<c:choose>
<c:when test="${postulante.experiencias.size() > 1}">
<i class="bi bi-arrow-left-circle-fill" data-bs-target="#carouselExampleIndicators" data-bs-slide="prev"></i>
Experiencias
<i class="bi bi-arrow-right-circle-fill" data-bs-target="#carouselExampleIndicators" data-bs-slide="next"></i>
</c:when>
<c:otherwise>
Experiencias
</c:otherwise>
</c:choose>
</h6>
<c:forEach items="${postulante.experiencias}" var="detalle_experiencia" varStatus="status">
<div class="carousel-item ${status.first ? 'active' : ''}" data-bs-interval="false">
<ul class="list-group list-group-flush ">
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Institucion</h6>
<span class="text-secondary">${detalle_experiencia.getInstitucion()}</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Fecha Inicio</h6>
<span class="text-secondary"><fmt:formatDate value="${detalle_experiencia.getFechaDesde()}" pattern="dd-MM-yyyy" /></span>
<!-- <input style="display:none;" id="fechaInicioExp" value="${detalle_experiencia.getFechaDesde()}">
<span style="display: none;" class="text-secondary" id="fechaInicioExp2">${detalle_experiencia.getFechaDesde()}</span>-->
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Fecha Fin</h6>
<span class="text-secondary"><fmt:formatDate value="${detalle_experiencia.getFechaHasta()}" pattern="dd-MM-yyyy" /></span>
<!-- <input style="display:none;" id="fechaFinExp" value="${detalle_experiencia.getFechaHasta()}">
<span style="display: none;" class="text-secondary" id="fechaFinExp2">${detalle_experiencia.getFechaHasta()}</span>-->
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Referencia</h6>
<span class="text-secondary">${detalle_experiencia.getNombreReferencia()}</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Telefono de la referencia</h6>
<span class="text-secondary">${detalle_experiencia.getTelefonoReferencia()}</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Cargo</h6>
<span class="text-secondary">${detalle_experiencia.getCargo()}</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Motivo de salida</h6>
<span class="text-secondary">${detalle_experiencia.getMotivoSalida()}</span>
</li>
</ul>
</div>
</c:forEach>
</div>
</div>
</div>
</div>
</div>
<hr>
</div>
<div class="row">
<div class="col-md-6">
<div class="col-sm-3">
<div class="card">
<h6 class="mb-0">Email</h6>
<div class="card-body">
</div>
<div id="carouselExampleIndicators1" class="carousel carousel-dark slide" data-bs-ride="carousel">
<div class="col-sm-9 text-secondary">
${postulante.correo}
<div class="carousel-inner">
</div>
</div>
<h6 class="d-flex justify-content-between fw-bold px-1">
<hr>
<div class="row">
<c:choose>
<div class="col-sm-3">
<c:when test="${postulante.experiencias.size() > 1}">
<h6 class="mb-0">Vive en</h6>
<i class="bi bi-arrow-left-circle-fill" data-bs-target="#carouselExampleIndicators1" data-bs-slide="prev"></i>
</div>
Estudios
<div class="col-sm-9 text-secondary">
<i class="bi bi-arrow-right-circle-fill" data-bs-target="#carouselExampleIndicators1" data-bs-slide="next"></i>
${postulante.getCiudad().getNombre()}, ${postulante.getCiudad().getDepartamento().getNombre()}
</c:when>
</div>
<c:otherwise>
</div>
Estudios
<hr>
</c:otherwise>
<div class="row">
<div class="col-sm-3">
</c:choose>
<h6 class="mb-0">Nro de Documento</h6>
</h6>
</div>
<c:forEach items="${postulante.estudios}" var="detalle_estudios" varStatus="status">
<div class="col-sm-9 text-secondary">
<div class="carousel-item ${status.first ? 'active' : ''}" data-bs-interval="false">
${postulante.tipoDocumento}: ${postulante.nroDocument}
</div>
<ul class="list-group list-group-flush ">
</div>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<hr>
<h6 class="mb-0">Institucion</h6>
<div class="row">
<span class="text-secondary">${detalle_estudios.getInstitucion().getNombre()}</span>
<div class="col-sm-3">
</li>
<h6 class="mb-0">Telefono</h6>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
</div>
<h6 class="mb-0">Fecha Inicio</h6>
<div class="col-sm-9 text-secondary">
<span class="text-secondary"><fmt:formatDate value="${detalle_estudios.getFechaDesde()}" pattern="dd-MM-yyyy" /></span>
${postulante.telefono}
</div>
<!-- <input style="display:none;" id="fechaInicioEst" value="${detalle_estudios.getFechaDesde()}">-->
</div>
<hr>
</li>
<div class="row">
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<div class="col-sm-3">
<h6 class="mb-0">Fecha Fin</h6>
<h6 class="mb-0">Edad</h6>
<span class="text-secondary"><fmt:formatDate value="${detalle_estudios.getFechaHasta()}" pattern="dd-MM-yyyy" /></span>
</div>
<div id="edad" class="col-sm-9 text-secondary"></div>
<!-- <input style="display:none;" id="fechaFinEst" value="${detalle_estudios.getFechaHasta()}">-->
<input style="display: none;" id="dob" value="${postulante.fechaNacimiento}">
</li>
</div>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<hr>
<h6 class="mb-0">Tipo de Estudio</h6>
<div class="row">
<span class="text-secondary">${detalle_estudios.getTipoDeEstudio()}</span>
<div class="col-sm-3">
</li>
<h6 class="mb-0">Direccion</h6>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
</div>
<h6 class="mb-0">Tema de estudio</h6>
<div class="col-sm-9 text-secondary">
<span class="text-secondary">${detalle_estudios.getTemaDeEstudio()}</span>
${postulante.direccion}
</li>
</div>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
</div>
<h6 class="mb-0">Estado</h6>
<hr>
<span class="text-secondary">${detalle_estudios.getEstado()}</span>
<div class="row">
</li>
<div class="col-sm-3">
<h6 class="mb-0">Nivel de Ingles</h6>
</div>
<div class="col-sm-9 text-secondary">
</ul>
${postulante.nivelIngles}
</div>
</div>
</c:forEach>
</div>
<hr>
<div class="row">
<div class="col-sm-3">
</div>
<h6 class="mb-0">Estado Civil</h6>
</div>
</div>
<div class="col-sm-9 text-secondary">
</div>
${postulante.estadoCivil.getDescripcion()}
</div>
</div>
</div>
</div>
<div class="col-md-6">
<hr>
<div class="card">
<div class="row">
<div class="card-body">
<div class="col-sm-3">
<h6 class="text-start fw-bold">Referencias Personales</h6>
<h6 class="mb-0">Nacionalidad</h6>
<ul class="list-group list-group-flush">
</div>
<c:forEach items="${postulante.referencias}" var="referencia">
<div class="col-sm-9 text-secondary">
${postulante.nacionalidad.getDescripcion()}
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
</div>
<h6 class="mb-0">${referencia.nombre}, ${referencia.relacion}, ${referencia.telefono}</h6>
</div>
<span class="text-secondary"></span>
<hr>
</li>
<div class="row">
</c:forEach>
<div class="col-sm-3">
</div>
<h6 class="mb-0">Disponbilidad</h6>
</div>
</div>
</div>
<div class="col-sm-9 text-secondary">
</div>
${postulante.disponibilidad.getDescripcion()}
</div>
</div>
</div>
<hr>
<div class="row">
</div>
<div class="col-sm-3">
<!-- Modal -->
<h6 class="mb-0">Estado</h6>
<div class="modal fade" id="estadoModalLong" tabindex="-1" role="dialog" aria-labelledby="estadorrhhModal" aria-hidden="true">
</div>
<div class="modal-dialog" role="document">
<div class="col-sm-9 text-secondary">
<div class="modal-content">
${postulante.estadoPostulante.getEstado()}
<form:form class="needs-validation" method="post" modelAttribute="postulante">
</div>
<div class="modal-header">
</div>
<h5 class="modal-title" id="estadorrhhModal">Estado</h5>
<hr>
<button type="button" class="close" data-bs-dismiss="modal" aria-label="Close">
<div class="row">
<span aria-hidden="true">×</span>
<div class="col-sm-3">
</button>
<h6 class="mb-0">ComentarioRRHH</h6>
</div>
</div>
<div class="modal-body">
<div class="col-sm-9 text-secondary">
<form:label path="estadoPostulante" class="form-label">Estado</form:label>
${postulante.getComentarioRRHH()}
<div class="inputs">
</div>
<form:select class="form-select" path="estadoPostulante" aria-label="Default select example">
</div>
<c:forEach items="${estadoP}" var="estadoPostulante">
<hr>
<c:choose>
<div class="row" id="buttonRow" style="display: block">
<c:when test="${estadoPostulante.getEstado()=='Nuevo' }">
<div class="col">
</c:when>
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#estadoModalLong">Agregar observacion</button>
<c:otherwise>
<button id="pdf" type="button" class="btn btn-primary">PDF</button>
<form:option value="${estadoPostulante}">${estadoPostulante.getEstado()}</form:option>
</div>
</c:otherwise>
<c:choose>
</c:choose>
</c:forEach>
<c:when test = "${cvId != null}">
</form:select>
<div class="col">
</div>
<a class="btn btn-link" target="__blank" href="/postulantes/cvFile/${cvId}">Descargar CV</a>
<div class="inputs">
</div>
<form:label path="comentarioRRHH" class="form-label">ComentarioRRHH</form:label>
</c:when>
<form:textarea class="form-control" path="comentarioRRHH" id="comentarioRRHH"></form:textarea>
</div><br>
</c:choose>
</div>
</div>
<div class="modal-footer">
</div>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
</div>
<button type="submit" class="btn btn-primary" data-bs-dismiss="modal">Agregar</button>
</div>
</div>
</form:form>
<div class="col-md-6">
</div>
<div class="row gy-3">
</div>
<div class="col-md-6">
</div>
<div class="card h-100">
<div class="card-body">
<h6 class="text-start fw-bold">Tecnologias</h6>
<c:forEach items="${postulante.tecnologias}" var="detalle_tecnologia">
<small>${detalle_tecnologia.getTecnologia().getNombre()}</small>
<div class="progress mb-3" style="height: 5px">
<div class="progress-bar bg-primary" role="progressbar" style="width: ${(detalle_tecnologia.getNivel() / 5) * 100}%" aria-valuenow="${detalle_tecnologia.getNivel()}" aria-valuemin="1" aria-valuemax="5"></div>
</div>
</c:forEach>
<hr>
<h6 class="text-start fw-bold">Cargos al que postula</h6>
<ul class="list-group list-group-flush">
<c:forEach items="${postulante.postulaciones}" var="convocatoria">
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">${convocatoria.getCargo().getNombre()}</h6>
<span class="text-secondary"></span>
</li>
</c:forEach>
</ul>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-body">
<div id="carouselExampleIndicators" class="carousel carousel-dark slide" data-bs-ride="carousel">
<div class="carousel-inner">
<h6 class="d-flex justify-content-between fw-bold px-1">
<c:choose>
<c:when test="${postulante.experiencias.size() > 1}">
<i class="bi bi-arrow-left-circle-fill" data-bs-target="#carouselExampleIndicators" data-bs-slide="prev"></i>
Experiencias
<i class="bi bi-arrow-right-circle-fill" data-bs-target="#carouselExampleIndicators" data-bs-slide="next"></i>
</c:when>
<c:otherwise>
Experiencias
</c:otherwise>
</c:choose>
</h6>
<c:forEach items="${postulante.experiencias}" var="detalle_experiencia" varStatus="status">
<div class="carousel-item ${status.first ? 'active' : ''}" data-bs-interval="false">
<ul class="list-group list-group-flush ">
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Institucion</h6>
<span class="text-secondary">${detalle_experiencia.getInstitucion()}</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Fecha Inicio</h6>
<span class="text-secondary"><fmt:formatDate value="${detalle_experiencia.getFechaDesde()}" pattern="dd-MM-yyyy" /></span>
<!-- <input style="display:none;" id="fechaInicioExp" value="${detalle_experiencia.getFechaDesde()}">
<span style="display: none;" class="text-secondary" id="fechaInicioExp2">${detalle_experiencia.getFechaDesde()}</span>-->
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Fecha Fin</h6>
<span class="text-secondary"><fmt:formatDate value="${detalle_experiencia.getFechaHasta()}" pattern="dd-MM-yyyy" /></span>
<!-- <input style="display:none;" id="fechaFinExp" value="${detalle_experiencia.getFechaHasta()}">
<span style="display: none;" class="text-secondary" id="fechaFinExp2">${detalle_experiencia.getFechaHasta()}</span>-->
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Referencia</h6>
<span class="text-secondary">${detalle_experiencia.getNombreReferencia()}</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Telefono de la referencia</h6>
<span class="text-secondary">${detalle_experiencia.getTelefonoReferencia()}</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Cargo</h6>
<span class="text-secondary">${detalle_experiencia.getCargo()}</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Motivo de salida</h6>
<span class="text-secondary">${detalle_experiencia.getMotivoSalida()}</span>
</li>
</ul>
</div>
</c:forEach>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-body">
<div id="carouselExampleIndicators1" class="carousel carousel-dark slide" data-bs-ride="carousel">
<div class="carousel-inner">
<h6 class="d-flex justify-content-between fw-bold px-1">
<c:choose>
<c:when test="${postulante.experiencias.size() > 1}">
<i class="bi bi-arrow-left-circle-fill" data-bs-target="#carouselExampleIndicators1" data-bs-slide="prev"></i>
Estudios
<i class="bi bi-arrow-right-circle-fill" data-bs-target="#carouselExampleIndicators1" data-bs-slide="next"></i>
</c:when>
<c:otherwise>
Estudios
</c:otherwise>
</c:choose>
</h6>
<c:forEach items="${postulante.estudios}" var="detalle_estudios" varStatus="status">
<div class="carousel-item ${status.first ? 'active' : ''}" data-bs-interval="false">
<ul class="list-group list-group-flush ">
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Institucion</h6>
<span class="text-secondary">${detalle_estudios.getInstitucion().getNombre()}</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Fecha Inicio</h6>
<span class="text-secondary"><fmt:formatDate value="${detalle_estudios.getFechaDesde()}" pattern="dd-MM-yyyy" /></span>
<!-- <input style="display:none;" id="fechaInicioEst" value="${detalle_estudios.getFechaDesde()}">-->
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Fecha Fin</h6>
<span class="text-secondary"><fmt:formatDate value="${detalle_estudios.getFechaHasta()}" pattern="dd-MM-yyyy" /></span>
<!-- <input style="display:none;" id="fechaFinEst" value="${detalle_estudios.getFechaHasta()}">-->
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Tipo de Estudio</h6>
<span class="text-secondary">${detalle_estudios.getTipoDeEstudio()}</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Tema de estudio</h6>
<span class="text-secondary">${detalle_estudios.getTemaDeEstudio()}</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Estado</h6>
<span class="text-secondary">${detalle_estudios.getEstado()}</span>
</li>
</ul>
</div>
</c:forEach>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-body">
<h6 class="text-start fw-bold">Referencias Personales</h6>
<ul class="list-group list-group-flush">
<c:forEach items="${postulante.referencias}" var="referencia">
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">${referencia.nombre}, ${referencia.relacion}, ${referencia.telefono}</h6>
<span class="text-secondary"></span>
</li>
</c:forEach>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="estadoModalLong" tabindex="-1" role="dialog" aria-labelledby="estadorrhhModal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<form:form class="needs-validation" method="post" modelAttribute="postulante">
<div class="modal-header">
<h5 class="modal-title" id="estadorrhhModal">Estado</h5>
<button type="button" class="close" data-bs-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form:label path="estadoPostulante" class="form-label">Estado</form:label>
<div class="inputs">
<form:select class="form-select" path="estadoPostulante" aria-label="Default select example">
<c:forEach items="${estadoP}" var="estadoPostulante">
<c:choose>
<c:when test="${estadoPostulante.getEstado()=='Nuevo' }">
</c:when>
<c:otherwise>
<form:option value="${estadoPostulante}">${estadoPostulante.getEstado()}</form:option>
</c:otherwise>
</c:choose>
</c:forEach>
</form:select>
</div>
<div class="inputs">
<form:label path="comentarioRRHH" class="form-label">ComentarioRRHH</form:label>
<form:textarea class="form-control" path="comentarioRRHH" id="comentarioRRHH"></form:textarea>
</div><br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
<button type="submit" class="btn btn-primary" data-bs-dismiss="modal">Agregar</button>
</div>
</form:form>
</div>
</div>
</div>
</div>
<layout:put block="scripts" type="APPEND">
<layout:put block="scripts" type="APPEND">
<script src="../valEdad.js"></script>
<script src="../valEdad.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js" integrity="sha512-GsLlZN/3F2ErC5ifS5QtgpiJtWd43JWSuIgh7mbzZ8zBps+dvLusV+eNQATqgA/HdeKFVgA5v3S/cIrLF7QnIg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script>
document.querySelector('#pdf').addEventListener("click", async ()=>{
var buttonsRow = document.querySelector('#buttonRow');
var element = document.getElementById('element-to-print');
var opt = {
margin: 1,
filename: 'myfile.pdf',
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 2 },
jsPDF: { unit: 'in', format: 'a1', orientation: 'portrait' }
};
buttonsRow.style.display = "none";
await html2pdf().set(opt).from(element).toPdf().save();
console.log('xd');
buttonsRow.style.display = "block";
})
<%--location.replace("/postulantes/${postulante.id}/")--%>
</script>
</layout:put>
</layout:put>
...
...
curriculumsearch/src/main/webapp/jsp/detallepostulante2.jsp
View file @
4af333a4
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<!DOCTYPE html>
<%@ taglib uri="http://kwonnam.pe.kr/jsp/template-inheritance" prefix="layout"%>
<html
lang=
"en"
>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<head>
<meta
charset=
"UTF-8"
>
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge"
>
<layout:extends name="layouts/base.jsp">
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1.0"
>
<layout:put block="contents" type="REPLACE">
<title>
Curriculum vitae
</title>
<div id="element-to-print">
<link
href=
"../css/detallePostulantestyle.css"
rel=
"stylesheet"
type=
"text/css"
/>
<h2 style="text-align: center;">
<link
href=
"https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css"
rel=
"stylesheet"
integrity=
"sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3"
crossorigin=
"anonymous"
>
DETALLE POSTULANTE
<script
src=
"https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
integrity=
"sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
crossorigin=
"anonymous"
></script>
</h2>
</head>
<div class="row gy-3">
<body
class=
"container"
>
<div class="col-md-6">
<header>
<div class="card mb-3">
<div>
<div class="card-body">
<br>
<div class="row">
<h2>
${postulante.nombre} ${postulante.apellido}
</h2>
<div class="col-sm-3">
<h3>
${postulante.tipoDocumento}: ${postulante.nroDocument}
</h3>
<h6 class="mb-0">Nombre</h6>
<h3>
Correo: ${postulante.correo}
</h3>
</div>
<br>
<div class="col-sm-9 text-secondary">
</div>
${postulante.nombre} ${postulante.apellido}
</header>
</div>
<section>
</div>
<article>
<hr>
<br>
<div class="row">
<h2>
Informacion Personal
</h2>
<div class="col-sm-3">
<ul>
<h6 class="mb-0">Email</h6>
<li>
</div>
Direccion: ${postulante.getCiudad().getDepartamento().getNombre()},${postulante.getCiudad().getNombre()}
<div class="col-sm-9 text-secondary">
</li>
${postulante.correo}
<li>
</div>
Telefono: ${postulante.telefono}
</div>
</li>
<hr>
<li>
<div class="row">
Fecha de nacimiento: ${postulante.fechaNacimiento}
<div class="col-sm-3">
</li>
<h6 class="mb-0">Vive en</h6>
<li>
</div>
Nivel de ingles:
<progress
value=
"${postulante.nivelIngles}"
max=
"5"
>
<div class="col-sm-9 text-secondary">
</li>
${postulante.getCiudad().getNombre()}, ${postulante.getCiudad().getDepartamento().getNombre()}
<li>
</div>
Estado civil: ${postulante.estadoCivil}
</div>
</li>
<hr>
<li>
<div class="row">
Nacionalidad: ${postulante.nacionalidad}
<div class="col-sm-3">
</li>
<h6 class="mb-0">Nro de Documento</h6>
<li>
</div>
Disponibilidad: ${postulante.disponibilidad}
<div class="col-sm-9 text-secondary">
</li>
${postulante.tipoDocumento}: ${postulante.nroDocument}
<li>
</div>
Direccion: ${postulante.direccion}
</div>
</li>
<hr>
</ul>
<div class="row">
<br>
<div class="col-sm-3">
<h2>
TECNOLOGIAS
</h2>
<h6 class="mb-0">Telefono</h6>
<ul>
</div>
<c:forEach
items=
"${postulante.tecnologias}"
var=
"detalle_tecnologia"
>
<div class="col-sm-9 text-secondary">
<label>
Tecnologias: ${detalle_tecnologia.getTecnologia().getNombre()}
<progress
value=
"${detalle_tecnologia.getNivel()}"
max=
"5"
></progress></label><br>
${postulante.telefono}
</c:forEach>
</div>
</ul>
</div>
<br>
<hr>
<h2>
Cargo al que Postula
</h2>
<div class="row">
<ul>
<div class="col-sm-3">
<c:forEach
items=
"${postulante.postulaciones}"
var=
"convocatoria"
>
<h6 class="mb-0">Edad</h6>
<li>
Nombre: ${convocatoria.getCargo().getNombre()}
</li><br>
</div>
</c:forEach>
<div id="edad" class="col-sm-9 text-secondary"></div>
</ul>
<input style="display: none;" id="dob" value="${postulante.fechaNacimiento}">
<br>
</div>
<h2>
Estado RRHH
</h2>
<hr>
<ul>
<div class="row">
<li>
Estado del Postulante: ${postulante.estadoPostulante.getEstado()}
</li>
<div class="col-sm-3">
<li>
Comentario RRHH: ${postulante.getComentarioRRHH()}
</li>
<h6 class="mb-0">Direccion</h6>
<button
type=
"button"
class=
"btn btn-primary"
data-toggle=
"modal"
data-target=
"#exampleModalLong"
>
Cambiar
</button>
</div>
<div class="col-sm-9 text-secondary">
</ul>
${postulante.direccion}
</article>
</div>
<aside>
</div>
<br>
<hr>
<h2>
Informacion Academica
</h2>
<div class="row">
<ul>
<div class="col-sm-3">
<c:forEach
items=
"${postulante.estudios}"
var=
"detalle_estudios"
>
<h6 class="mb-0">Nivel de Ingles</h6>
<label>
Institucion: ${detalle_estudios.getInstitucion().getNombre()}
</label><br>
</div>
<label>
Tipo de estudio: ${detalle_estudios.getTipoDeEstudio()}
</label><br>
<div class="col-sm-9 text-secondary">
<label>
Tema de estudio: ${detalle_estudios.getTemaDeEstudio()}
</label><br>
${postulante.nivelIngles}
<label>
Fecha Inicio: ${detalle_estudios.getFechaDesde()}
</label><br>
</div>
<label>
Fecha Fin: ${detalle_estudios.getFechaHasta()}
</label><br>
</div>
<label>
Estado: ${detalle_estudios.getEstado()}
</label><br>
<hr>
<br><br>
<div class="row">
</c:forEach>
<div class="col-sm-3">
</ul>
<h6 class="mb-0">Estado Civil</h6>
<br>
</div>
<h2>
EXPERIENCIAS
</h2>
<div class="col-sm-9 text-secondary">
<ul>
${postulante.estadoCivil.getDescripcion()}
<c:forEach
items=
"${postulante.experiencias}"
var=
"detalle_experiencia"
>
</div>
<label>
Institucion: ${detalle_experiencia.getInstitucion()}
</label><br>
</div>
<label>
Fecha Inicio: ${detalle_experiencia.getFechaDesde()}
</label><br>
<hr>
<label>
Fecha Fin: ${detalle_experiencia.getFechaHasta()}
</label><br>
<div class="row">
<label>
Referencia: ${detalle_experiencia.getNombreReferencia()}
</label><br>
<div class="col-sm-3">
<label>
Telefono de la referencia: ${detalle_experiencia.getTelefonoReferencia()}
</label><br>
<h6 class="mb-0">Nacionalidad</h6>
<label>
Cargo: ${detalle_experiencia.getCargo()}
</label><br>
</div>
<label>
Motivo de salida: ${detalle_experiencia.getMotivoSalida()}
</label><br>
<div class="col-sm-9 text-secondary">
</c:forEach>
${postulante.nacionalidad.getDescripcion()}
</ul>
</div>
<br>
</div>
<h2>
Referencias
</h2>
<hr>
<ul>
<div class="row">
<c:forEach
items=
"${postulante.referencias}"
var=
"detalle_referencias"
>
<div class="col-sm-3">
<label>
Nombre: ${detalle_referencias.getNombre()}
</label><br>
<h6 class="mb-0">Disponbilidad</h6>
<label>
Relacion: ${detalle_referencias.getRelacion()}
</label><br>
</div>
<label>
Telefono: ${detalle_referencias.getTelefono()}
</label><br>
<div class="col-sm-9 text-secondary">
</c:forEach>
${postulante.disponibilidad.getDescripcion()}
</ul>
</div>
</aside>
</div>
<hr>
</section>
<div class="row">
<!-- Modal -->
<div class="col-sm-3">
<div
class=
"modal fade"
id=
"exampleModalLong"
tabindex=
"-1"
role=
"dialog"
aria-labelledby=
"exampleModalLongTitle"
aria-hidden=
"true"
>
<h6 class="mb-0">Estado</h6>
<div
class=
"modal-dialog"
role=
"document"
>
</div>
<div
class=
"modal-content"
>
<div class="col-sm-9 text-secondary">
<div
class=
"modal-header"
>
${postulante.estadoPostulante.getEstado()}
<h5
class=
"modal-title"
id=
"exampleModalLongTitle"
>
Modal title
</h5>
</div>
<button
type=
"button"
class=
"close"
data-dismiss=
"modal"
aria-label=
"Close"
>
</div>
<span
aria-hidden=
"true"
>
×
</span>
<hr>
</button>
<div class="row">
</div>
<div class="col-sm-3">
<div
class=
"modal-body"
>
<h6 class="mb-0">ComentarioRRHH</h6>
<form:form
class=
"needs-validation"
method=
"post"
modelAttribute=
"postulante"
>
</div>
<form:label
path=
"estadoPostulante"
class=
"form-label"
>
Estado
</form:label>
<div class="col-sm-9 text-secondary">
<div
class=
"inputs"
>
${postulante.getComentarioRRHH()}
<form:select
class=
"form-select"
path=
"estadoPostulante"
aria-label=
"Default select example"
>
</div>
<c:forEach
items=
"${estadoP}"
var=
"estadoPostulante"
>
</div>
<c:choose>
<hr>
<c:when
test=
"${estadoPostulante.getEstado()=='Nuevo' }"
>
</div>
</c:when>
<c:otherwise>
<form:option
value=
"${estadoPostulante}"
>
${estadoPostulante.getEstado()}
</form:option>
</c:otherwise>
</c:choose>
</c:forEach>
</form:select>
</div>
</div>
<div
class=
"inputs"
>
<form:label
path=
"comentarioRRHH"
class=
"form-label"
>
ComentarioRRHH
</form:label>
</div>
<form:textarea
class=
"form-control"
path=
"comentarioRRHH"
id=
"comentarioRRHH"
></form:textarea>
<div class="col-md-6">
<div class="row gy-3">
<div class="col-md-6">
<div class="card h-100">
<div class="card-body">
<h6 class="text-start fw-bold">Tecnologias</h6>
<c:forEach items="${postulante.tecnologias}" var="detalle_tecnologia">
<small>${detalle_tecnologia.getTecnologia().getNombre()}</small>
<div class="progress mb-3" style="height: 5px">
<div class="progress-bar bg-primary" role="progressbar" style="width: ${(detalle_tecnologia.getNivel() / 5) * 100}%" aria-valuenow="${detalle_tecnologia.getNivel()}" aria-valuemin="1" aria-valuemax="5"></div>
</div>
</c:forEach>
<hr>
<h6 class="text-start fw-bold">Cargos al que postula</h6>
<ul class="list-group list-group-flush">
<c:forEach items="${postulante.postulaciones}" var="convocatoria">
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">${convocatoria.getCargo().getNombre()}</h6>
<span class="text-secondary"></span>
</li>
</c:forEach>
</ul>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-body">
<div id="carouselExampleIndicators" class="carousel carousel-dark slide" data-bs-ride="carousel">
<div class="carousel-inner">
<h6 class="d-flex justify-content-between fw-bold px-1">
<c:choose>
<c:when test="${postulante.experiencias.size() > 1}">
<i class="bi bi-arrow-left-circle-fill" data-bs-target="#carouselExampleIndicators" data-bs-slide="prev"></i>
Experiencias
<i class="bi bi-arrow-right-circle-fill" data-bs-target="#carouselExampleIndicators" data-bs-slide="next"></i>
</c:when>
<c:otherwise>
Experiencias
</c:otherwise>
</c:choose>
</h6>
<c:forEach items="${postulante.experiencias}" var="detalle_experiencia" varStatus="status">
<div class="carousel-item ${status.first ? 'active' : ''}" data-bs-interval="false">
<ul class="list-group list-group-flush ">
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Institucion</h6>
<span class="text-secondary">${detalle_experiencia.getInstitucion()}</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Fecha Inicio</h6>
<span class="text-secondary"><fmt:formatDate value="${detalle_experiencia.getFechaDesde()}" pattern="dd-MM-yyyy" /></span>
<!-- <input style="display:none;" id="fechaInicioExp" value="${detalle_experiencia.getFechaDesde()}">
<span style="display: none;" class="text-secondary" id="fechaInicioExp2">${detalle_experiencia.getFechaDesde()}</span>-->
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Fecha Fin</h6>
<span class="text-secondary"><fmt:formatDate value="${detalle_experiencia.getFechaHasta()}" pattern="dd-MM-yyyy" /></span>
<!-- <input style="display:none;" id="fechaFinExp" value="${detalle_experiencia.getFechaHasta()}">
<span style="display: none;" class="text-secondary" id="fechaFinExp2">${detalle_experiencia.getFechaHasta()}</span>-->
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Referencia</h6>
<span class="text-secondary">${detalle_experiencia.getNombreReferencia()}</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Telefono de la referencia</h6>
<span class="text-secondary">${detalle_experiencia.getTelefonoReferencia()}</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Cargo</h6>
<span class="text-secondary">${detalle_experiencia.getCargo()}</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Motivo de salida</h6>
<span class="text-secondary">${detalle_experiencia.getMotivoSalida()}</span>
</li>
</ul>
</div>
</c:forEach>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-body">
<div id="carouselExampleIndicators1" class="carousel carousel-dark slide" data-bs-ride="carousel">
<div class="carousel-inner">
<h6 class="d-flex justify-content-between fw-bold px-1">
<c:choose>
<c:when test="${postulante.experiencias.size() > 1}">
<i class="bi bi-arrow-left-circle-fill" data-bs-target="#carouselExampleIndicators1" data-bs-slide="prev"></i>
Estudios
<i class="bi bi-arrow-right-circle-fill" data-bs-target="#carouselExampleIndicators1" data-bs-slide="next"></i>
</c:when>
<c:otherwise>
Estudios
</c:otherwise>
</c:choose>
</h6>
<c:forEach items="${postulante.estudios}" var="detalle_estudios" varStatus="status">
<div class="carousel-item ${status.first ? 'active' : ''}" data-bs-interval="false">
<ul class="list-group list-group-flush ">
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Institucion</h6>
<span class="text-secondary">${detalle_estudios.getInstitucion().getNombre()}</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Fecha Inicio</h6>
<span class="text-secondary"><fmt:formatDate value="${detalle_estudios.getFechaDesde()}" pattern="dd-MM-yyyy" /></span>
<!-- <input style="display:none;" id="fechaInicioEst" value="${detalle_estudios.getFechaDesde()}">-->
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Fecha Fin</h6>
<span class="text-secondary"><fmt:formatDate value="${detalle_estudios.getFechaHasta()}" pattern="dd-MM-yyyy" /></span>
<!-- <input style="display:none;" id="fechaFinEst" value="${detalle_estudios.getFechaHasta()}">-->
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Tipo de Estudio</h6>
<span class="text-secondary">${detalle_estudios.getTipoDeEstudio()}</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Tema de estudio</h6>
<span class="text-secondary">${detalle_estudios.getTemaDeEstudio()}</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">Estado</h6>
<span class="text-secondary">${detalle_estudios.getEstado()}</span>
</li>
</ul>
</div>
</c:forEach>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-body">
<h6 class="text-start fw-bold">Referencias Personales</h6>
<ul class="list-group list-group-flush">
<c:forEach items="${postulante.referencias}" var="referencia">
<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap">
<h6 class="mb-0">${referencia.nombre}, ${referencia.relacion}, ${referencia.telefono}</h6>
<span class="text-secondary"></span>
</li>
</c:forEach>
</div>
</div>
</div>
</div>
</div>
<input
type=
"submit"
value=
"Guardar"
/>
</div>
</form:form>
</div>
</div>
<div
class=
"modal-footer"
>
<!-- Modal -->
<button
type=
"button"
class=
"btn btn-secondary"
data-dismiss=
"modal"
>
Close
</button>
<div class="modal fade" id="estadoModalLong" tabindex="-1" role="dialog" aria-labelledby="estadorrhhModal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<form:form class="needs-validation" method="post" modelAttribute="postulante">
<div class="modal-header">
<h5 class="modal-title" id="estadorrhhModal">Estado</h5>
<button type="button" class="close" data-bs-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form:label path="estadoPostulante" class="form-label">Estado</form:label>
<div class="inputs">
<form:select class="form-select" path="estadoPostulante" aria-label="Default select example">
<c:forEach items="${estadoP}" var="estadoPostulante">
<c:choose>
<c:when test="${estadoPostulante.getEstado()=='Nuevo' }">
</c:when>
<c:otherwise>
<form:option value="${estadoPostulante}">${estadoPostulante.getEstado()}</form:option>
</c:otherwise>
</c:choose>
</c:forEach>
</form:select>
</div>
<div class="inputs">
<form:label path="comentarioRRHH" class="form-label">ComentarioRRHH</form:label>
<form:textarea class="form-control" path="comentarioRRHH" id="comentarioRRHH"></form:textarea>
</div><br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
<button type="submit" class="btn btn-primary" data-bs-dismiss="modal">Agregar</button>
</div>
</form:form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<layout:put block="scripts" type="APPEND">
</div>
<script src="../valEdad.js"></script>
<script
src=
"https://code.jquery.com/jquery-3.3.1.slim.min.js"
integrity=
"sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
crossorigin=
"anonymous"
></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js" integrity="sha512-GsLlZN/3F2ErC5ifS5QtgpiJtWd43JWSuIgh7mbzZ8zBps+dvLusV+eNQATqgA/HdeKFVgA5v3S/cIrLF7QnIg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script
src=
"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"
integrity=
"sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49"
crossorigin=
"anonymous"
></script>
<script>
<script
src=
"https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"
integrity=
"sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy"
crossorigin=
"anonymous"
></script>
var element = document.getElementById('element-to-print');
var opt = {
</body>
margin: 1,
filename: 'myfile.pdf',
</html>
image: { type: 'jpeg', quality: 0.98 },
\ No newline at end of file
html2canvas: { scale: 2 },
jsPDF: { unit: 'in', format: 'a1', orientation: 'portrait' }
};
html2pdf().set(opt).from(element).toPdf().save();
<%--location.replace("/postulantes/${postulante.id}/")--%>
</script>
</layout:put>
</layout:put>
</layout:extends>
curriculumsearch/src/main/webapp/jsp/postulantes.jsp
View file @
4af333a4
...
@@ -234,12 +234,13 @@
...
@@ -234,12 +234,13 @@
function buscarPagina(nro){
function buscarPagina(nro){
nro--
nro--
const aBuscar = 'nroPagina='+nro
const aBuscar = 'nroPagina='+nro
if(!location.search) location.search =
"?"+
aBuscar
if(!location.search) location.search = aBuscar
const inicial = location.search.search(aBuscar);
const inicial = location.search.search(aBuscar);
if(inicial==-1){//si no se encuentra y hay otros queries
if(inicial==-1){//si no se encuentra y hay otros queries
location.search
= "&"+aBuscar
location.search
+= "&"+aBuscar;
}
}
location.search.replace('nroPagina=',aBuscar)
location.search.replace('nroPagina=',aBuscar)
console.log(location.search)
}
}
const tecId = document.querySelector("#tecId");
const tecId = document.querySelector("#tecId");
const lvlTec = document.querySelector("#lvlTec");
const lvlTec = document.querySelector("#lvlTec");
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment