Commit e1c5f4b7 by Joel Florentin

Merge branch 'giuli_001' of https://phoebe.roshka.com/gitlab/hshah/TalentoHumano into joel-001

parents ba75ef2e 0dc0e788
...@@ -56,6 +56,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { ...@@ -56,6 +56,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
.mvcMatchers("/tecnologia*").authenticated() .mvcMatchers("/tecnologia*").authenticated()
.mvcMatchers("/postulantes","/postulantes/**").authenticated() .mvcMatchers("/postulantes","/postulantes/**").authenticated()
.mvcMatchers("/edit-user-data").authenticated() .mvcMatchers("/edit-user-data").authenticated()
.mvcMatchers("/postulantesExcel*").authenticated()
.anyRequest().permitAll() .anyRequest().permitAll()
.and() .and()
.formLogin() .formLogin()
......
...@@ -189,7 +189,7 @@ public class PostulanteRRHHController { ...@@ -189,7 +189,7 @@ public class PostulanteRRHHController {
response.setHeader(headerKey, headerValue); response.setHeader(headerKey, headerValue);
HashMap<String, String> filtros = new HashMap<String, String>(); HashMap<String, String> filtros = new HashMap<String, String>();
filtros.put("nombre", nombre.equals("") ? "-":nombre); filtros.put("nombre", nombre == null ? "-":nombre);
filtros.put("nivelIngles", lvlEng == null ? "-" : lvlEng.toString()); filtros.put("nivelIngles", lvlEng == null ? "-" : lvlEng.toString());
filtros.put("tecnologia", tecId == null ? "-" : tecRepo.findById(tecId).get().getNombre()); filtros.put("tecnologia", tecId == null ? "-" : tecRepo.findById(tecId).get().getNombre());
filtros.put("nivelTecnologia", lvlTec == null ? "-" : lvlTec.toString()); filtros.put("nivelTecnologia", lvlTec == null ? "-" : lvlTec.toString());
...@@ -197,6 +197,7 @@ public class PostulanteRRHHController { ...@@ -197,6 +197,7 @@ public class PostulanteRRHHController {
filtros.put("estado", estado == null ? "-" : estado.getEstado()); filtros.put("estado", estado == null ? "-" : estado.getEstado());
filtros.put("experienciaEnMeses", expInMonths == null ? "-" : expInMonths.toString()); filtros.put("experienciaEnMeses", expInMonths == null ? "-" : expInMonths.toString());
filtros.put("convocatoria", convId == null ? "-" : cargoRepo.findById(convId).get().getCargo().getNombre()); filtros.put("convocatoria", convId == null ? "-" : cargoRepo.findById(convId).get().getCargo().getNombre());
filtros.put("convocatoriaFecha", convId == null ? "-" : cargoRepo.findById(convId).get().getFechaInicio().toString());
PostulantesExcelExporter excelExporter = new PostulantesExcelExporter(postulantesDTO, filtros); PostulantesExcelExporter excelExporter = new PostulantesExcelExporter(postulantesDTO, filtros);
......
...@@ -59,34 +59,16 @@ public class PostulantesExcelExporter { ...@@ -59,34 +59,16 @@ public class PostulantesExcelExporter {
createCell(row, 5, "Institucion", style); createCell(row, 5, "Institucion", style);
createCell(row, 6, "Estado", style); createCell(row, 6, "Estado", style);
createCell(row, 7, "Convocatoria", style); createCell(row, 7, "Convocatoria", style);
createCell(row, 8, "Fecha Inicio Convocatoria", style);
row = sheet.createRow(6); row = sheet.createRow(6);
style = workbook.createCellStyle();
font = workbook.createFont();
font.setBold(true);
font.setFontHeight(14);
style.setFont(font);
createCell(row, 0, "Nombre", style); createCell(row, 0, "Nombre", style);
createCell(row, 1, "Nivel de Ingles", style); createCell(row, 1, "Nivel de Ingles", style);
createCell(row, 2, "Experiencia", style); createCell(row, 2, "Experiencia", style);
createCell(row, 3, "Tecnologias", style); createCell(row, 3, "Tecnologias", style);
createCell(row, 4, "Estado", style); createCell(row, 4, "Estado", style);
row = sheet.createRow(4);
font.setBold(false);
font.setFontHeight(12);
style.setFont(font);
createCell(row, 0, filtros.get("nombre"), style);
createCell(row, 1, filtros.get("nivelIngles"), style);
createCell(row, 2, filtros.get("experienciaEnMeses"), style);
createCell(row, 3, filtros.get("tecnologia"), style);
createCell(row, 4, filtros.get("nivelTecnologia"), style);
createCell(row, 5, filtros.get("institucion"), style);
createCell(row, 6, filtros.get("estado"), style);
createCell(row, 7, filtros.get("convocatoria"), style);
} }
private void createCell(Row row, int columnCount, Object value, CellStyle style) { private void createCell(Row row, int columnCount, Object value, CellStyle style) {
...@@ -126,6 +108,17 @@ public class PostulantesExcelExporter { ...@@ -126,6 +108,17 @@ public class PostulantesExcelExporter {
createCell(row, columnCount++, user.getEstado().getEstado(), style); createCell(row, columnCount++, user.getEstado().getEstado(), style);
tecno.delete(0, tecno.length()-1); tecno.delete(0, tecno.length()-1);
} }
Row row = sheet.createRow(4);
createCell(row, 0, filtros.get("nombre"), style);
createCell(row, 1, filtros.get("nivelIngles"), style);
createCell(row, 2, filtros.get("experienciaEnMeses"), style);
createCell(row, 3, filtros.get("tecnologia"), style);
createCell(row, 4, filtros.get("nivelTecnologia"), style);
createCell(row, 5, filtros.get("institucion"), style);
createCell(row, 6, filtros.get("estado"), style);
createCell(row, 7, filtros.get("convocatoria"), style);
createCell(row, 8, filtros.get("convocatoriaFecha"), style);
} }
public void export(HttpServletResponse response) throws IOException { public void export(HttpServletResponse response) throws IOException {
......
...@@ -6,7 +6,7 @@ function listarConvocatorias(id){ ...@@ -6,7 +6,7 @@ function listarConvocatorias(id){
const frag = document.createDocumentFragment(); const frag = document.createDocumentFragment();
let optionDefault = document.createElement("option"); let optionDefault = document.createElement("option");
optionDefault.value = ""; optionDefault.value = "";
optionDefault.innerHTML = "Seleccione una opcion"; optionDefault.innerHTML = "Seleccione";
frag.appendChild(optionDefault); frag.appendChild(optionDefault);
for (const conv of ConvocatoriaAmostrar) { for (const conv of ConvocatoriaAmostrar) {
const opt = document.createElement("option"); const opt = document.createElement("option");
......
...@@ -175,7 +175,7 @@ function agregarFieldTecnologia(){ ...@@ -175,7 +175,7 @@ function agregarFieldTecnologia(){
if(tecn==null) continue; if(tecn==null) continue;
content1 += ` content1 += `
<div class="col-auto" id="tecn-${index}"> <div class="col-auto" id="tecn-${index}">
${tecn.tecnologia.nombre} ( ${tecn.nivel} <i class="bi bi-star-fill"></i> ) &nbsp; <i class="bi bi-trash-fill" onclick="eliminarTecnologia(event)"></i> ${tecn.tecnologia.nombre} ( ${tecn.nivel} <i class="bi bi-star-fill"></i> ) &nbsp; <i class="bi bi-trash-fill pointer" onclick="eliminarTecnologia(event)"></i>
</div> </div>
` `
...@@ -267,7 +267,7 @@ function agregarFieldExpierncia(event){ ...@@ -267,7 +267,7 @@ function agregarFieldExpierncia(event){
if(exp==null) continue; if(exp==null) continue;
content += ` content += `
<div class="col border border-3 rounded" id="exp-${index}"> <div class="col border border-3 rounded" id="exp-${index}">
<center><h5>Experiencia <i class="bi bi-trash-fill" onclick="eliminarExperiencia(${index})"></i></h5></center> <center><h5>Experiencia <i class="bi bi-trash-fill pointer" onclick="eliminarExperiencia(${index})"></i></h5></center>
<dl class="row row-cols-md-2 gx-0 gy-2"> <dl class="row row-cols-md-2 gx-0 gy-2">
<dt class="col-sm-auto text-start">Institucion</dt> <dt class="col-sm-auto text-start">Institucion</dt>
<dd class="col-sm-6 text-start">${exp.institucion}</dd> <dd class="col-sm-6 text-start">${exp.institucion}</dd>
...@@ -380,7 +380,7 @@ function agregarFieldEstudio(){ ...@@ -380,7 +380,7 @@ function agregarFieldEstudio(){
if(est==null) continue; if(est==null) continue;
content += ` content += `
<div class="col border border-3 rounded" id="est-${index}"> <div class="col border border-3 rounded" id="est-${index}">
<center><h5>Estudio <i class="bi bi-trash-fill" onclick="eliminarEstudio(${index})"></i></h5></center> <center><h5>Estudio <i class="bi bi-trash-fill pointer" onclick="eliminarEstudio(${index})"></i></h5></center>
<dl class="row row-cols-md-2 gx-0 gy-2"> <dl class="row row-cols-md-2 gx-0 gy-2">
<dt class="col-sm-auto text-start">Institucion</dt> <dt class="col-sm-auto text-start">Institucion</dt>
<dd class="col-sm-6 text-start">${est.institucion.nombre}</dd> <dd class="col-sm-6 text-start">${est.institucion.nombre}</dd>
...@@ -473,7 +473,7 @@ function agregarFieldCargo(){ ...@@ -473,7 +473,7 @@ function agregarFieldCargo(){
if(car==null) continue; if(car==null) continue;
content1 += ` content1 += `
<div class="col-auto" id="car-${index}" style="text-transform: uppercase;"> <div class="col-auto" id="car-${index}" style="text-transform: uppercase;">
${document.querySelector('[name=cargo-id] > option[value="'+car.id+'"]').innerHTML} &nbsp;<i class="bi bi-trash-fill" onclick="eliminarCargoPostulante(event)"></i> ${document.querySelector('[name=cargo-id] > option[value="'+car.id+'"]').innerHTML} &nbsp;<i class="bi bi-trash-fill pointer" onclick="eliminarCargoPostulante(event)"></i>
</div> </div>
...@@ -547,7 +547,7 @@ function agregarFieldReferencia(event){ ...@@ -547,7 +547,7 @@ function agregarFieldReferencia(event){
if(exp==null) continue; if(exp==null) continue;
content += ` content += `
<div class="col border border-3 rounded" id="ref-${index}"> <div class="col border border-3 rounded" id="ref-${index}">
<center><h5>Referencia Personal <i class="bi bi-trash-fill" onclick="eliminarReferencia(${index})"></i></h5></center> <center><h5>Referencia Personal <i class="bi bi-trash-fill pointer" onclick="eliminarReferencia(${index})"></i></h5></center>
<dl class="row row-cols-sm-2"> <dl class="row row-cols-sm-2">
<dt class="col-sm-auto text-start">Nombre</dt> <dt class="col-sm-auto text-start">Nombre</dt>
<dd class="col-sm text-start">${exp.nombre}</dd> <dd class="col-sm text-start">${exp.nombre}</dd>
......
.content-select select{
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
}
.content-select select::-ms-expand {
display: none;
}
.content-select{
max-width: 250px;
position: relative;
}
.content-select select{
display: inline-block;
width: 100%;
cursor: pointer;
padding: 7px 10px;
height: 42px;
outline: 0;
border: 0;
border-radius: 0;
background: #f0f0f0;
color: #7b7b7b;
font-size: 1em;
color: #999;
font-family:
'Quicksand', sans-serif;
border:2px solid rgba(0,0,0,0.2);
border-radius: 12px;
position: relative;
transition: all 0.25s ease;
}
.content-select select:hover{
background: #B1E8CD;
}
/*
Creamos la fecha que aparece a la izquierda del select.
Realmente este elemento es un cuadrado que sólo tienen
dos bordes con color y que giramos con transform: rotate(-45deg);
*/
.content-select i{
position: absolute;
right: 20px;
top: calc(50% - 13px);
width: 16px;
height: 16px;
display: block;
border-left:4px solid #2AC176;
border-bottom:4px solid #2AC176;
transform: rotate(-45deg); /* Giramos el cuadrado */
transition: all 0.25s ease;
}
.content-select:hover i{
margin-top: 3px;
}
\ No newline at end of file
...@@ -219,3 +219,115 @@ form[name="postulante"]{ ...@@ -219,3 +219,115 @@ form[name="postulante"]{
background-color: #198754; background-color: #198754;
border-color: #0d6efd; border-color: #0d6efd;
} }
label:hover {
color: #bfbfbf;
}
/*ICONOS Y PLACEHOLDER*/
.FA{
font-family: 'Shippori Antique B1',FontAwesome;
}
#nroDocument::-webkit-outer-spin-button,
#nroDocument::-webkit-inner-spin-button
{
-webkit-appearance: none;
margin: 0;
}
#nroDocument[type=number] {
-moz-appearance: textfield;
}
#telefono::-webkit-outer-spin-button,
#telefono::-webkit-inner-spin-button
{
-webkit-appearance: none;
margin: 0;
}
#telefono[type=number] {
-moz-appearance: textfield;
}
#refTel::-webkit-outer-spin-button,
#refTel::-webkit-inner-spin-button
{
-webkit-appearance: none;
margin: 0;
}
#refTel[type=number] {
-moz-appearance: textfield;
}
.pointer {cursor: pointer;}
/*
.size-placeholder::placeholder{
background-size: 18px 18px;
background-repeat: no-repeat;
background-position: right center;
}
/*Nombre
.nombre-ph::placeholder{
background-image: url(../img/placeholder/name_ph.png);
}
Apellido
#apellido::placeholder{
background-image: url(../img/placeholder/lastname_ph.png);
}
Email
#correo::placeholder{
background-image: url(../img/placeholder/email_ph.png);
}
Numero de documento*/
/*
.nroDocument-ph::placeholder{
background-image: url(../img/placeholder/nroDocumento_ph.png);
margin-left: 5px;
}
Direccion
#direccion::placeholder{
background-image: url(../img/placeholder/adress_ph.png);
background-size: 14px 14px;
}*/
/*Telefono*/
/*
.telefono-ph::placeholder{
background-image: url(../img/placeholder/telephone_ph.png);
}
/*Modal Estudio
#institucionEstudio::placeholder{
background-image: url(../img/placeholder/studios_ph.png);
}
#temaDeEstudio::placeholder{
background-image: url(../img/placeholder/studios_ph.png);
}
#institucionExperiencia::placeholder{
background-image: url(../img/placeholder/studios_ph.png);
}
#cargo::placeholder{
background-image: url(../img/placeholder/cargo_ph.png);
}
#descripcion::placeholder{
background-image: url(../img/placeholder/description_ph.png);
}
#refNombre::placeholder{
background-image: url(../img/placeholder/name_ph.png);
}*/
/*
.telefono-ph::placeholder{
background-image: url(../img/placeholder/telephone_ph.png);
}
#motivoSalida::placeholder{
background-image: url(../img/placeholder/motivoSalida_ph.png);
}
#relacion::placeholder{
background-image: url(../img/placeholder/relacion_ph.png);
}
*/
/*Prueba Font Awesome*/
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
</div> </div>
<c:if test="${SUCCESS_MESSAGE != null}"> <c:if test="${SUCCESS_MESSAGE != null}">
<div id="status_message">${SUCCESS_MESSAGE}</div> <div id="status_message" style="color: brown;" >${SUCCESS_MESSAGE}</div>
</c:if> </c:if>
<div class="card text-dark bg-light mt-3"> <div class="card text-dark bg-light mt-3">
......
...@@ -4,7 +4,11 @@ ...@@ -4,7 +4,11 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://kwonnam.pe.kr/jsp/template-inheritance" prefix="layout"%> <%@ taglib uri="http://kwonnam.pe.kr/jsp/template-inheritance" prefix="layout"%>
<layout:extends name="layouts/base.jsp"> <layout:extends name="layouts/base.jsp">
<layout:put block="cssDeclaracion" type="APPEND"></layout:put> <layout:put block="cssDeclaracion" type="APPEND">
<link href="../css/PostulanteStyle.css" rel="stylesheet" type="text/css"/>
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
</layout:put>
<layout:put block="contents" type="REPLACE"> <layout:put block="contents" type="REPLACE">
<h2>Lista de Postulantes</h2> <h2>Lista de Postulantes</h2>
<div id="buscador"> <div id="buscador">
...@@ -18,8 +22,92 @@ ...@@ -18,8 +22,92 @@
<button class="btn btn-primary">Buscar</button> <button class="btn btn-primary">Buscar</button>
</div> </div>
</div> </div>
<table class="w3-table ">
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-4 gy-1 mt-2"> <thead>
<tr class="">
<th scope="col">Estado</th>
<th scope="col">Disponbilidad</th>
<th scope="col">Nivel de ingles</th>
<th scope="col">Institucion Educativa</th>
<th scope="col">Tecnologias</th>
<th scope="col">Nivel de Tecnologia</th>
<th scope="col">Experiencia general</th>
<th scope="col">Cargo</th>
<th scope="col">Convocatoria</th>
</tr>
</thead>
<tbody>
<td>
<select class="form-select form-select-sm" name="estado" id="estado">
<option value="">Seleccione</option>
<c:forEach items="${estadoP}" var="estados">
<option value="${estados}" ${param.estado == estados ? "selected" : ""}>${estados.getEstado()}</option>
</c:forEach>
</td>
<td>
<select class="form-select form-select-sm " name="dispo" id="dispo">
<option value="">Seleccione</option>
<c:forEach items="${disponibilidades}" var="disponibilidad">
<option value="${disponibilidad}" ${param.dispo == disponibilidad ? "selected" : ""}>${disponibilidad.getDescripcion()}</option>
</c:forEach>
</select>
</td>
<td>
<select class="form-select form-select-sm " name="lvlEng" id="lvlEng">
<option value="">Seleccione</option>
<c:forEach var = "lvl" begin = "1" end = "5">
<option value="${lvl}" ${param.lvlEng == lvl ? "selected" : ""}>${lvl}</option>
</c:forEach>
</td>
<td>
<select class="form-select form-select-sm " name="instId" id="instId">
<option value="">Seleccione</option>
<c:forEach items="${institucionesEducativas}" var="inst">
<option value="${inst.id}" ${param.instId == inst.id ? "selected" : ""}>${inst.nombre}</option>
</c:forEach>
</select>
</td>
<td>
<select class="form-select form-select-sm " name="tecId" id="tecId">
<option value="">Seleccione</option>
<c:forEach items="${tecnologias}" var="tecnologia">
<option value="${tecnologia.id}" ${param.tecId == tecnologia.id ? "selected" : ""}>${tecnologia.nombre}</option>
</c:forEach>
</select>
</td>
<td>
<select class="form-select form-select-sm" name="lvlTec" id="lvlTec">
<option value="">Seleccione</option>
<c:forEach var = "lvl" begin = "1" end = "5">
<option value="${lvl}" ${param.lvlTec == lvl ? "selected" : ""}>${lvl}</option>
</c:forEach>
</select>
</td>
<td>
<select class="form-select form-select-sm " name="expInMonths" id="expInMonths">
<option value="">Seleccione</option>
<option value="6">Mayor a 6 meses</option>
<option value="12">Mayor a 1 año</option>
<option value="36">Mayor a 3 años</option>
<option value="60">Mayor a 5 años</option>
</select>
</td>
<td>
<select class="form-select form-select-sm " name="cargoId" id="cargoId">
<option value="">Seleccione</option>
<c:forEach items="${cargos}" var="cargo">
<option value="${cargo.id}" ${param.cargoId == cargo.id ? "selected" : ""}>${cargo.getNombre()}</option>
</c:forEach>
</select>
</td>
<td>
<select class="form-select form-select-sm " name="convId" id="convId">
<option value="">Seleccione</option>
</select>
</td>
</tbody>
</table>
<!-- <div class="row row-cols-1 row-cols-md-2 row-cols-lg-4 gy-1 mt-2">
<div class="col"> <div class="col">
...@@ -176,7 +264,7 @@ ...@@ -176,7 +264,7 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div> -->
</form> </form>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
......
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