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
219aaa23
You need to sign in or sign up before continuing.
Commit
219aaa23
authored
Nov 19, 2021
by
willgonzz
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'joel-001' of
https://phoebe.roshka.com/gitlab/hshah/TalentoHumano
into William_001
parents
9c341edb
9eeb704f
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
190 additions
and
143 deletions
+190
-143
curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java
+3
-26
curriculumsearch/src/main/java/com/roshka/utils/Helper.java
+31
-0
curriculumsearch/src/main/resources/static/main.js
+56
-32
curriculumsearch/src/main/webapp/css/formPostulanteStyle.css
+9
-1
curriculumsearch/src/main/webapp/css/indexStyle.css
+2
-2
curriculumsearch/src/main/webapp/img/LogoRoshka.ico
+0
-0
curriculumsearch/src/main/webapp/jsp/convocatoria-form.jsp
+1
-1
curriculumsearch/src/main/webapp/jsp/detallepostulante.jsp
+40
-29
curriculumsearch/src/main/webapp/jsp/exitoRegistro.jsp
+1
-0
curriculumsearch/src/main/webapp/jsp/forgot_password_form.jsp
+1
-0
curriculumsearch/src/main/webapp/jsp/index.jsp
+2
-0
curriculumsearch/src/main/webapp/jsp/layouts/base.jsp
+2
-0
curriculumsearch/src/main/webapp/jsp/login.jsp
+1
-0
curriculumsearch/src/main/webapp/jsp/postulante-form.jsp
+40
-51
curriculumsearch/src/main/webapp/jsp/postulantes.jsp
+1
-1
No files found.
curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java
View file @
219aaa23
...
@@ -23,7 +23,7 @@ import com.roshka.repositorio.ExperienciaRepository;
...
@@ -23,7 +23,7 @@ import com.roshka.repositorio.ExperienciaRepository;
import
com.roshka.repositorio.InstitucionRepository
;
import
com.roshka.repositorio.InstitucionRepository
;
import
com.roshka.repositorio.PostulanteRepository
;
import
com.roshka.repositorio.PostulanteRepository
;
import
com.roshka.repositorio.TecnologiaRepository
;
import
com.roshka.repositorio.TecnologiaRepository
;
import
com.roshka.utils.Helper
;
import
org.hibernate.jpa.TypedParameterValue
;
import
org.hibernate.jpa.TypedParameterValue
;
import
org.hibernate.type.IntegerType
;
import
org.hibernate.type.IntegerType
;
...
@@ -95,30 +95,7 @@ public class PostulanteController {
...
@@ -95,30 +95,7 @@ public class PostulanteController {
return
"postulante-form"
;
return
"postulante-form"
;
}
}
private
DBFile
createFile
(
MultipartFile
file
)
{
// Normalize file name
String
fileName
=
StringUtils
.
cleanPath
(
file
.
getOriginalFilename
());
try
{
// Check if the file's name contains invalid characters
if
(
fileName
.
contains
(
".."
))
{
throw
new
Exception
(
"Sorry! Filename contains invalid path sequence "
+
fileName
);
}
if
(
file
.
getSize
()==
0
)
throw
new
Exception
(
"Sorry! File cant be void"
);;
DBFile
dbFile
=
new
DBFile
(
fileName
,
file
.
getContentType
(),
file
.
getBytes
());
return
dbFile
;
}
catch
(
IOException
ex
)
{
ex
.
printStackTrace
();
return
null
;
}
catch
(
Exception
ex
){
ex
.
printStackTrace
();
return
null
;
}
}
@PostMapping
(
value
=
"/work-with-us"
,
consumes
=
"multipart/form-data"
)
@PostMapping
(
value
=
"/work-with-us"
,
consumes
=
"multipart/form-data"
)
public
RedirectView
guardarPostulante
(
@RequestPart
(
name
=
"file"
,
required
=
false
)
MultipartFile
file
,
@RequestPart
(
"postulante"
)
Postulante
postulante
,
RedirectAttributes
redirectAttributes
){
public
RedirectView
guardarPostulante
(
@RequestPart
(
name
=
"file"
,
required
=
false
)
MultipartFile
file
,
@RequestPart
(
"postulante"
)
Postulante
postulante
,
RedirectAttributes
redirectAttributes
){
//Codigo encargado de modificar postulacion si se envia mismo CI
//Codigo encargado de modificar postulacion si se envia mismo CI
...
@@ -138,7 +115,7 @@ public class PostulanteController {
...
@@ -138,7 +115,7 @@ public class PostulanteController {
}
}
if
(
file
!=
null
){
if
(
file
!=
null
){
DBFile
cv
=
createFile
(
file
);
DBFile
cv
=
Helper
.
createFile
(
file
);
if
(
cv
!=
null
)
cv
.
setPostulante
(
postulante
);
if
(
cv
!=
null
)
cv
.
setPostulante
(
postulante
);
postulante
.
setCvFile
(
cv
);
postulante
.
setCvFile
(
cv
);
}
}
...
...
curriculumsearch/src/main/java/com/roshka/utils/Helper.java
View file @
219aaa23
package
com
.
roshka
.
utils
;
package
com
.
roshka
.
utils
;
import
java.io.IOException
;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.time.YearMonth
;
import
java.time.YearMonth
;
...
@@ -7,6 +8,11 @@ import java.time.ZoneOffset;
...
@@ -7,6 +8,11 @@ import java.time.ZoneOffset;
import
java.time.temporal.ChronoUnit
;
import
java.time.temporal.ChronoUnit
;
import
java.util.Date
;
import
java.util.Date
;
import
com.roshka.modelo.DBFile
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.multipart.MultipartFile
;
public
class
Helper
{
public
class
Helper
{
/**
/**
* Se espera fecha en el formato yyyy-MM-dd
* Se espera fecha en el formato yyyy-MM-dd
...
@@ -31,4 +37,29 @@ public class Helper {
...
@@ -31,4 +37,29 @@ public class Helper {
return
m1
.
until
(
m2
,
ChronoUnit
.
MONTHS
)
+
1
;
return
m1
.
until
(
m2
,
ChronoUnit
.
MONTHS
)
+
1
;
}
}
public
static
DBFile
createFile
(
MultipartFile
file
)
{
// Normalize file name
String
fileName
=
StringUtils
.
cleanPath
(
file
.
getOriginalFilename
());
try
{
// Check if the file's name contains invalid characters
if
(
fileName
.
contains
(
".."
))
{
throw
new
Exception
(
"Sorry! Filename contains invalid path sequence "
+
fileName
);
}
if
(
file
.
getSize
()==
0
)
throw
new
Exception
(
"Sorry! File cant be void"
);;
DBFile
dbFile
=
new
DBFile
(
fileName
,
file
.
getContentType
(),
file
.
getBytes
());
return
dbFile
;
}
catch
(
IOException
ex
)
{
ex
.
printStackTrace
();
return
null
;
}
catch
(
Exception
ex
){
ex
.
printStackTrace
();
return
null
;
}
}
}
}
curriculumsearch/src/main/resources/static/main.js
View file @
219aaa23
...
@@ -145,6 +145,16 @@ function agregarFieldTecnologia(){
...
@@ -145,6 +145,16 @@ function agregarFieldTecnologia(){
return
;
return
;
}
}
for
(
let
i
=
0
;
i
<
cont_tecnologia
;
i
++
){
if
(
tecnologias
[
i
]
!==
null
){
if
(
tecnologias
[
i
][
"tecnologia"
][
"id"
]
==
formData
.
get
(
"tecnologia-id"
)){
alert
(
"Ya has agregado esa tecnologia!"
)
//cont_cargo--;
return
;
}
}
}
for
(
const
[
name
,
value
]
of
formData
){
for
(
const
[
name
,
value
]
of
formData
){
pairs
[
name
]
=
value
pairs
[
name
]
=
value
}
}
...
@@ -165,10 +175,7 @@ function agregarFieldTecnologia(){
...
@@ -165,10 +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> ) <i class="bi bi-trash-fill" onclick="eliminarTecnologia(event)"></i>
${
tecn
.
tecnologia
.
nombre
}
(
${
tecn
.
nivel
}
<i class="bi bi-star-fill"></i> ) <i class="bi bi-trash-fill" onclick="eliminarTecnologia(event)"></i>
</div>
</div>
`
`
...
@@ -259,19 +266,25 @@ function agregarFieldExpierncia(event){
...
@@ -259,19 +266,25 @@ function agregarFieldExpierncia(event){
const
exp
=
experiencias
[
index
];
const
exp
=
experiencias
[
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 rounded" id="exp-
${
index
}
">
<center><h4>Experiencia <i class="bi bi-trash-fill" onclick="eliminarExperiencia(
${
index
}
)"></i></h4></center>
<center><h5>Experiencia <i class="bi bi-trash-fill" onclick="eliminarExperiencia(
${
index
}
)"></i></h5></center>
<label><b>Institucion:</b>
${
exp
.
institucion
}
</label><br>
<dl class="row row-cols-md-2 gx-0 gy-2">
<label><b>Fecha Inicio:</b>
${
exp
.
fechaDesde
}
</label><br>
<dt class="col-sm-auto text-start">Institucion</dt>
<label><b>Fecha Fin:</b>
${
exp
.
fechaHasta
}
</label><br>
<dd class="col-sm-6 text-start">
${
exp
.
institucion
}
</dd>
<label><b>Referencia:</b>
${
exp
.
nombreReferencia
}
</label><br>
<dt class="col-sm-auto text-start">Cargo</dt>
<label><b>Telefono de la referencia:</b>
${
exp
.
telefonoReferencia
}
</label><br>
<dd class="col-sm-6 text-start">
${
exp
.
cargo
}
</dd>
<label><b>Cargo:</b>
${
exp
.
cargo
}
</label><br>
<dt class="col-sm-auto text-start">Referencia</dt>
<label><b>Motivo de salida:</b>
${
exp
.
motivoSalida
}
</label><br>
<dd class="col-sm-6 text-start">
${
exp
.
nombreReferencia
}
</dd>
<dt class="col-sm-auto text-start">Telf. Referencia</dt>
<dd class="col-sm-6 text-start">
${
exp
.
telefonoReferencia
}
</dd>
<dt class="col-sm-auto text-start">Fecha Inicio</dt>
<dd class="col-sm-6 text-start">
${
exp
.
fechaDesde
}
</dd>
<dt class="col-sm-auto text-start">Fecha Fin</dt>
<dd class="col-sm-6 text-start">
${
exp
.
fechaHasta
}
</dd>
<dt class="col-sm-auto text-start">Motivo de salida</dt>
<dd class="col-sm-6 text-start">
${
exp
.
motivoSalida
}
</dd>
</dl>
</div>
</div>
`
`
}
}
//content += "</ul>"
//content += "</ul>"
...
@@ -366,14 +379,22 @@ function agregarFieldEstudio(){
...
@@ -366,14 +379,22 @@ function agregarFieldEstudio(){
const
est
=
estudios
[
index
];
const
est
=
estudios
[
index
];
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 rounded" id="est-
${
index
}
">
<center><h4>Estudio <i class="bi bi-trash-fill" onclick="eliminarEstudio(
${
index
}
)"></i></h4></center>
<center><h5>Estudio <i class="bi bi-trash-fill" onclick="eliminarEstudio(
${
index
}
)"></i></h5></center>
<label><b>Institucion:</b>
${
est
.
institucion
.
nombre
}
</label><br>
<dl class="row row-cols-md-2 gx-0 gy-2">
<label><b>Tipo de estudio:</b>
${
est
.
tipoDeEstudio
}
</label><br>
<dt class="col-sm-auto text-start">Institucion</dt>
<label><b>Carrera:</b>
${
est
.
temaDeEstudio
}
</label><br>
<dd class="col-sm-6 text-start">
${
est
.
institucion
.
nombre
}
</dd>
<label><b>Fecha Inicio:</b>
${
est
.
fechaDesde
}
</label><br>
<dt class="col-sm-auto text-start">Tipo de estudio</dt>
<label><b>Fecha Fin:</b>
${
est
.
fechaHasta
}
</label><br>
<dd class="col-sm-6 text-start">
${
est
.
tipoDeEstudio
}
</dd>
<label><b>Estado:</b>
${
est
.
estado
}
</label><br>
<dt class="col-sm-auto text-start">Carrera</dt>
<dd class="col-sm-6 text-start">
${
est
.
temaDeEstudio
}
</dd>
<dt class="col-sm-auto text-start">Fecha Inicio</dt>
<dd class="col-sm-6 text-start">
${
est
.
fechaDesde
}
</dd>
<dt class="col-sm-auto text-start">Fecha Fin</dt>
<dd class="col-sm-6 text-start">
${
est
.
fechaHasta
}
</dd>
<dt class="col-sm-auto text-start">Estado</dt>
<dd class="col-sm-6 text-start">
${
est
.
estado
}
</dd>
</dl>
</div>
</div>
...
@@ -452,7 +473,7 @@ function agregarFieldCargo(){
...
@@ -452,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
}
<i class="bi bi-trash-fill" onclick="eliminarCargoPostulante(event)"></i>
${
document
.
querySelector
(
'[name=cargo-id] >
option[value="'
+
car
.
id
+
'"]'
).
innerHTML
}
<i class="bi bi-trash-fill" onclick="eliminarCargoPostulante(event)"></i>
</div>
</div>
...
@@ -525,13 +546,16 @@ function agregarFieldReferencia(event){
...
@@ -525,13 +546,16 @@ 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="ref-
${
index
}
">
<div class="col border border-3 rounded" id="ref-
${
index
}
">
<center><h4>Referencia Personal <i class="bi bi-trash-fill" onclick="eliminarReferencia(
${
index
}
)"></i></h4></center>
<center><h5>Referencia Personal <i class="bi bi-trash-fill" onclick="eliminarReferencia(
${
index
}
)"></i></h5></center>
<dl class="row row-cols-sm-2">
<label><b>Nombre:</b>
${
exp
.
nombre
}
</label><br>
<dt class="col-sm-auto text-start">Nombre</dt>
<label><b>Telefono:</b>
${
exp
.
telefono
}
</label><br>
<dd class="col-sm text-start">
${
exp
.
nombre
}
</dd>
<label><b>Relacion:</b>
${
exp
.
relacion
}
</label><br>
<dt class="col-sm-auto text-start">Telefono</dt>
<dd class="col-sm text-start">
${
exp
.
telefono
}
</dd>
<dt class="col-sm-auto text-start">Relacion</dt>
<dd class="col-sm text-start">
${
exp
.
relacion
}
</dd>
</dl>
</div>
</div>
`
`
...
...
curriculumsearch/src/main/webapp/css/formPostulanteStyle.css
View file @
219aaa23
...
@@ -16,7 +16,7 @@ body {
...
@@ -16,7 +16,7 @@ body {
border-radius:4px;
border-radius:4px;
transform:translate(-50%,10%);*/
transform:translate(-50%,10%);*/
box-shadow
:
3px
3px
4px
rgba
(
175
,
209
,
20
,
0.2
)
}
}
.card
{
.card
{
border
:
none
border
:
none
}
}
...
@@ -197,4 +197,11 @@ dos bordes con color y que giramos con transform: rotate(-45deg);
...
@@ -197,4 +197,11 @@ dos bordes con color y que giramos con transform: rotate(-45deg);
.content-select
:hover
i
{
.content-select
:hover
i
{
margin-top
:
3px
;
margin-top
:
3px
;
}
h4
{
color
:
#5e5b5b
;
text-transform
:
capitalize
;
font-size
:
large
;
}
}
\ No newline at end of file
curriculumsearch/src/main/webapp/css/indexStyle.css
View file @
219aaa23
body
{
body
{
background-image
:
url(/img/fondoIndex.jpg)
;
background-image
:
url(/img/fondoIndex.jpg)
;
background-
size
:
cover
;
background-
repeat
:
no-repeat
;
background-
repeat
:
no-repeat
;
background-
size
:
cover
;
height
:
100vh
;
width
:
100vw
;
height
:
100vh
;
width
:
100vw
;
background-attachment
:
fixed
;
background-attachment
:
fixed
;
-webkit-text-size-adjust
:
100%
;
-webkit-text-size-adjust
:
100%
;
...
...
curriculumsearch/src/main/webapp/img/LogoRoshka.
jpg
→
curriculumsearch/src/main/webapp/img/LogoRoshka.
ico
View file @
219aaa23
File moved
curriculumsearch/src/main/webapp/jsp/convocatoria-form.jsp
View file @
219aaa23
...
@@ -40,6 +40,6 @@
...
@@ -40,6 +40,6 @@
</div>
</div>
</layout:put>
</layout:put>
<layout:put block="scripts" type="APPEND">
<layout:put block="scripts" type="APPEND">
</layout:put>
</layout:put>
</layout:extends>
</layout:extends>
curriculumsearch/src/main/webapp/jsp/detallepostulante.jsp
View file @
219aaa23
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
<%@ taglib uri="http://kwonnam.pe.kr/jsp/template-inheritance" prefix="layout"%>
<%@ taglib uri="http://kwonnam.pe.kr/jsp/template-inheritance" prefix="layout"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<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;">
<h2 style="text-align: center;">
...
@@ -131,7 +132,7 @@
...
@@ -131,7 +132,7 @@
<hr>
<hr>
<div class="row">
<div class="row">
<div class="col">
<div class="col">
<button type="button" class="btn btn-primary" data-
toggle="modal" data
-target="#estadoModalLong">Actualizar</button>
<button type="button" class="btn btn-primary" data-
bs-toggle="modal" data-bs
-target="#estadoModalLong">Actualizar</button>
</div>
</div>
<c:choose>
<c:choose>
...
@@ -153,7 +154,7 @@
...
@@ -153,7 +154,7 @@
<div class="col-md-6">
<div class="col-md-6">
<div class="card h-100">
<div class="card h-100">
<div class="card-body">
<div class="card-body">
<h6 class="
d-flex align-items-center mb-3"><i class="material-icons text-info mr-2">Tecnologias</i>
</h6>
<h6 class="
text-start fw-bold">Tecnologias
</h6>
<c:forEach items="${postulante.tecnologias}" var="detalle_tecnologia">
<c:forEach items="${postulante.tecnologias}" var="detalle_tecnologia">
<small>${detalle_tecnologia.getTecnologia().getNombre()}</small>
<small>${detalle_tecnologia.getTecnologia().getNombre()}</small>
<div class="progress mb-3" style="height: 5px">
<div class="progress mb-3" style="height: 5px">
...
@@ -161,7 +162,7 @@
...
@@ -161,7 +162,7 @@
</div>
</div>
</c:forEach>
</c:forEach>
<hr>
<hr>
<h6 class="
d-flex align-items-center mb-3"><i class="material-icons text-info mr-2">Cargos al que postula</i>
</h6>
<h6 class="
text-start fw-bold">Cargos al que postula
</h6>
<ul class="list-group list-group-flush">
<ul class="list-group list-group-flush">
<c:forEach items="${postulante.postulaciones}" var="convocatoria">
<c:forEach items="${postulante.postulaciones}" var="convocatoria">
...
@@ -184,7 +185,21 @@
...
@@ -184,7 +185,21 @@
<div class="carousel-inner">
<div class="carousel-inner">
<h6 class="d-flex align-items-center mb-3"><i class="material-icons text-info mr-2">Experiencias</i></h6>
<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">
<c:forEach items="${postulante.experiencias}" var="detalle_experiencia" varStatus="status">
<div class="carousel-item ${status.first ? 'active' : ''}" data-bs-interval="false">
<div class="carousel-item ${status.first ? 'active' : ''}" data-bs-interval="false">
...
@@ -231,14 +246,8 @@
...
@@ -231,14 +246,8 @@
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -250,8 +259,20 @@
...
@@ -250,8 +259,20 @@
<div class="carousel-inner">
<div class="carousel-inner">
<h6 class="d-flex justify-content-between fw-bold px-1">
<h6 class="d-flex align-items-center mb-3"><i class="material-icons text-info mr-2">Estudios</i></h6>
<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">
<c:forEach items="${postulante.estudios}" var="detalle_estudios" varStatus="status">
<div class="carousel-item ${status.first ? 'active' : ''}" data-bs-interval="false">
<div class="carousel-item ${status.first ? 'active' : ''}" data-bs-interval="false">
...
@@ -298,14 +319,7 @@
...
@@ -298,14 +319,7 @@
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleIndicators1" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleIndicators1" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -313,7 +327,7 @@
...
@@ -313,7 +327,7 @@
<div class="col-md-6">
<div class="col-md-6">
<div class="card">
<div class="card">
<div class="card-body">
<div class="card-body">
<h6 class="d-flex align-items-center mb-3"><i class="material-icons text-info mr-2">Referencias Personales</i>
</h6>
<h6 class="text-start fw-bold">Referencias Personales
</h6>
<ul class="list-group list-group-flush">
<ul class="list-group list-group-flush">
<c:forEach items="${postulante.referencias}" var="referencia">
<c:forEach items="${postulante.referencias}" var="referencia">
...
@@ -337,7 +351,7 @@
...
@@ -337,7 +351,7 @@
<div class="modal-content">
<div class="modal-content">
<div class="modal-header">
<div class="modal-header">
<h5 class="modal-title" id="estadorrhhModal">Estado</h5>
<h5 class="modal-title" id="estadorrhhModal">Estado</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<button type="button" class="close" data-
bs-
dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
<span aria-hidden="true">×</span>
</button>
</button>
</div>
</div>
...
@@ -365,18 +379,15 @@
...
@@ -365,18 +379,15 @@
</form:form>
</form:form>
</div>
</div>
<div class="modal-footer">
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
<button type="button" class="btn btn-secondary" data-
bs-
dismiss="modal">Cancelar</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<layout:put block="scripts" type="APPEND">
<layout:put block="scripts" type="APPEND">
<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/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="../valEdad.js"></script>
<script src="../valEdad.js"></script>
</layout:put>
</layout:put>
...
...
curriculumsearch/src/main/webapp/jsp/exitoRegistro.jsp
View file @
219aaa23
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
<html>
<html>
<head>
<head>
<link
href=
"https://fonts.googleapis.com/css?family=Nunito+Sans:400,400i,700,900&display=swap"
rel=
"stylesheet"
>
<link
href=
"https://fonts.googleapis.com/css?family=Nunito+Sans:400,400i,700,900&display=swap"
rel=
"stylesheet"
>
<link
rel=
"icon"
href=
"../img/LogoRoshka.ico"
>
</head>
</head>
<style>
<style>
body
{
body
{
...
...
curriculumsearch/src/main/webapp/jsp/forgot_password_form.jsp
View file @
219aaa23
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
<title>
Forgot Password
</title>
<title>
Forgot Password
</title>
<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"
>
<link
href=
"https://getbootstrap.com/docs/4.0/examples/signin/signin.css"
rel=
"stylesheet"
crossorigin=
"anonymous"
>
<link
href=
"https://getbootstrap.com/docs/4.0/examples/signin/signin.css"
rel=
"stylesheet"
crossorigin=
"anonymous"
>
<link
rel=
"icon"
href=
"../img/LogoRoshka.ico"
>
</head>
</head>
<body>
<body>
...
...
curriculumsearch/src/main/webapp/jsp/index.jsp
View file @
219aaa23
...
@@ -5,6 +5,7 @@
...
@@ -5,6 +5,7 @@
<layout:extends name="layouts/base.jsp">
<layout:extends name="layouts/base.jsp">
<layout:put block="cssDeclaracion" type="REPLACE">
<layout:put block="cssDeclaracion" type="REPLACE">
<link href="../css/indexStyle.css" rel="stylesheet" type="text/css"/>
<link href="../css/indexStyle.css" rel="stylesheet" type="text/css"/>
<link rel="icon" href="../img/LogoRoshka.ico">
</layout:put>
</layout:put>
</layout:extends>
</layout:extends>
\ No newline at end of file
curriculumsearch/src/main/webapp/jsp/layouts/base.jsp
View file @
219aaa23
...
@@ -9,6 +9,8 @@
...
@@ -9,6 +9,8 @@
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge"
>
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1.0"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1.0"
>
<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"
>
<link
rel=
"icon"
href=
"../img/LogoRoshka.ico"
>
<link
rel=
"stylesheet"
href=
"https://cdn.jsdelivr.net/npm/bootstrap-icons@1.7.1/font/bootstrap-icons.css"
>
<layout:block
name=
"cssDeclaracion"
>
<layout:block
name=
"cssDeclaracion"
>
<link
href=
"../css/cargoStyle.css"
rel=
"stylesheet"
type=
"text/css"
/>
<link
href=
"../css/cargoStyle.css"
rel=
"stylesheet"
type=
"text/css"
/>
</layout:block>
</layout:block>
...
...
curriculumsearch/src/main/webapp/jsp/login.jsp
View file @
219aaa23
...
@@ -9,6 +9,7 @@
...
@@ -9,6 +9,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"
>
<link
href=
"https://getbootstrap.com/docs/4.0/examples/signin/signin.css"
rel=
"stylesheet"
crossorigin=
"anonymous"
>
<link
href=
"https://getbootstrap.com/docs/4.0/examples/signin/signin.css"
rel=
"stylesheet"
crossorigin=
"anonymous"
>
<link
href=
"../css/style.css"
rel=
"stylesheet"
type=
"text/css"
/>
<link
href=
"../css/style.css"
rel=
"stylesheet"
type=
"text/css"
/>
<link
rel=
"icon"
href=
"../img/LogoRoshka.ico"
>
</head>
</head>
<body>
<body>
<jsp:include
page=
"alerts.jsp"
/>
<jsp:include
page=
"alerts.jsp"
/>
...
...
curriculumsearch/src/main/webapp/jsp/postulante-form.jsp
View file @
219aaa23
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
<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"
>
<link
rel=
"stylesheet"
href=
"https://cdn.jsdelivr.net/npm/bootstrap-icons@1.7.1/font/bootstrap-icons.css"
>
<link
rel=
"icon"
href=
"../img/LogoRoshka.ico"
>
</head>
</head>
<body
class=
"container"
>
<body
class=
"container"
>
...
@@ -27,7 +28,7 @@
...
@@ -27,7 +28,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>
Datos Personales
</h4>
<h4
class=
"text-start"
>
Datos Personales
</h4>
<div
class=
"row"
>
<div
class=
"row"
>
...
@@ -143,55 +144,32 @@
...
@@ -143,55 +144,32 @@
<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 -->
<hr>
<div
class=
"inputs mb-3 col-md-12"
>
<div
class=
"inputs mb-3 col-md-12"
>
<div
class=
"row w-100 p-3 gy-2 border mx-auto"
>
<div
class=
"row w-100 gy-2 mx-auto"
>
<div
class=
"col-12"
>
<div
class=
"col-12 px-0"
>
<h4
class=
"text-start"
>
Cargos
<i
class=
"bi bi-plus-circle-fill"
data-bs-toggle=
"modal"
data-bs-target=
"#cargoForm"
></i></h4>
<h3>
Cargos
<i
class=
"bi bi-plus-circle-fill"
data-bs-toggle=
"modal"
data-bs-target=
"#cargoForm"
></i></h3>
</div>
</div>
<div
class=
"col-12"
>
<div
class=
"col-12"
>
<div
class=
"mt-3 gap-2 row row-cols-4"
style=
"display: flex;"
id=
"cargos"
>
<div
class=
"mt-3 gap-2 row row-cols-4"
style=
"display: flex;"
id=
"cargos"
>
</div>
</div>
</div>
</div>
<div
class=
"col-12"
>
<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:
red;"
class=
"text-center
"
>
*Agrega por lo menos un cargo
*Agrega por lo menos un cargo
</p>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Button Agregar Experiencia -->
<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>
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 -->
<hr>
<div
class=
"inputs mb-3 col-md-12"
>
<div
class=
"inputs mb-3 col-md-12"
>
<div
class=
"row w-100
p-3 gy-2 border
mx-auto"
>
<div
class=
"row w-100
gy-2
mx-auto"
>
<div
class=
"col-12"
>
<div
class=
"col-12
px-0
"
>
<h
3>
Estudios
<i
class=
"bi bi-plus-circle-fill"
data-bs-toggle=
"modal"
data-bs-target=
"#estudioForm"
></i></h3
>
<h
4
class=
"text-start"
>
Estudios
<i
class=
"bi bi-plus-circle-fill"
data-bs-toggle=
"modal"
data-bs-target=
"#estudioForm"
></i></h4
>
</div>
</div>
<div
class=
"col-12"
>
<div
class=
"col-12"
>
<div
class=
"mt-3 gap-2 row row-cols-4"
id=
"estudios"
>
<div
class=
"mt-3 gap-2 row row-cols-4"
id=
"estudios"
>
...
@@ -201,15 +179,15 @@
...
@@ -201,15 +179,15 @@
</div>
</div>
</div>
</div>
<!-- Button Agregar Tecnologia -->
<!-- Button Agregar Tecnologia -->
<hr>
<div
class=
"inputs mb-3 col-md-12"
>
<div
class=
"inputs mb-3 col-md-12"
>
<div
class=
"row w-100
p-3 gy-2 border
mx-auto"
>
<div
class=
"row w-100
gy-2
mx-auto"
>
<div
class=
"col-12"
>
<div
class=
"col-12
px-0
"
>
<h
3>
Tecnologias
<i
class=
"bi bi-plus-circle-fill"
data-bs-toggle=
"modal"
data-bs-target=
"#tecnologiaForm"
></i></h3
>
<h
4
class=
"text-start"
>
Tecnologias
<i
class=
"bi bi-plus-circle-fill"
data-bs-toggle=
"modal"
data-bs-target=
"#tecnologiaForm"
></i></h4
>
</div>
</div>
<div
class=
"col-12"
>
<div
class=
"col-12"
>
...
@@ -218,7 +196,7 @@
...
@@ -218,7 +196,7 @@
</div>
</div>
<div
class=
"col-12"
>
<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:
red;"
class=
"text-center
"
>
*Agrega por lo menos una tecnologia
*Agrega por lo menos una tecnologia
</p>
</p>
</div>
</div>
...
@@ -226,17 +204,28 @@
...
@@ -226,17 +204,28 @@
</div>
</div>
</div>
</div>
<!-- Button Agregar Refencia personal -->
<!-- Button Agregar Experiencia -->
<hr>
<div
class=
"inputs mb-3 col-md-12"
>
<div
class=
"inputs mb-3 col-md-12"
>
<div
class=
"row w-100 p-3 gy-2 border mx-auto"
>
<div
class=
"row w-100 gy-2 mx-auto"
>
<div
class=
"col-12 px-0"
>
<h4
class=
"text-start"
>
Experiencias
<i
class=
"bi bi-plus-circle-fill"
data-bs-toggle=
"modal"
data-bs-target=
"#experienciaForm"
></i></h4>
</div>
<div
class=
"col-12"
>
<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
class=
"mt-3 gap-2 row row-cols-4"
id=
"experiencias"
>
</div>
</div>
</div>
</div>
<!-- Button Agregar Refencia personal -->
<hr>
<div
class=
"inputs mb-3 col-md-12"
>
<div
class=
"row w-100 gy-2 mx-auto"
>
<div
class=
"col-12 px-0"
>
<h4
class=
"text-start"
>
Referencia Personal
<i
class=
"bi bi-plus-circle-fill"
data-bs-toggle=
"modal"
data-bs-target=
"#referenciaForm"
></i></h4>
</div>
</div>
<div
class=
"col-12"
>
<div
class=
"col-12"
>
<div
class=
"mt-3 gap-2 row row-cols-4"
id=
"referencia"
>
<div
class=
"mt-3 gap-2 row row-cols-4"
id=
"referencia"
>
...
@@ -263,7 +252,7 @@
...
@@ -263,7 +252,7 @@
<div
class=
"modal-content"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<div
class=
"modal-header"
>
<h5
class=
"modal-title"
id=
"exampleModalLabel"
>
CargosDisponibles
</h5>
<h5
class=
"modal-title"
id=
"exampleModalLabel"
>
CargosDisponibles
</h5>
<button
type=
"button"
class=
"close"
data-bs-dismiss=
"modal"
aria-label=
"Close"
>
<button
type=
"button"
class=
"close"
data-bs-dismiss=
"modal"
aria-label=
"Close"
style=
"color:#21130d;"
>
<span
aria-hidden=
"true"
>
×
</span>
<span
aria-hidden=
"true"
>
×
</span>
</button>
</button>
</div>
</div>
...
@@ -295,7 +284,7 @@
...
@@ -295,7 +284,7 @@
<div
class=
"modal-content"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<div
class=
"modal-header"
>
<h5
class=
"modal-title"
id=
"exampleModalLabel"
>
Experiencia
</h5>
<h5
class=
"modal-title"
id=
"exampleModalLabel"
>
Experiencia
</h5>
<button
type=
"button"
class=
"close"
data-bs-dismiss=
"modal"
aria-label=
"Close"
>
<button
type=
"button"
class=
"close"
data-bs-dismiss=
"modal"
aria-label=
"Close"
style=
"color:#21130d;"
>
<span
aria-hidden=
"true"
>
×
</span>
<span
aria-hidden=
"true"
>
×
</span>
</button>
</button>
</div>
</div>
...
@@ -370,7 +359,7 @@
...
@@ -370,7 +359,7 @@
<div
class=
"modal-content"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<div
class=
"modal-header"
>
<h5
class=
"modal-title"
id=
"exampleModalLabel"
>
tecnologia
</h5>
<h5
class=
"modal-title"
id=
"exampleModalLabel"
>
tecnologia
</h5>
<button
type=
"button"
class=
"close"
data-bs-dismiss=
"modal"
aria-label=
"Close"
>
<button
type=
"button"
class=
"close"
data-bs-dismiss=
"modal"
aria-label=
"Close"
style=
"color:#21130d;"
>
<span
aria-hidden=
"true"
>
×
</span>
<span
aria-hidden=
"true"
>
×
</span>
</button>
</button>
</div>
</div>
...
@@ -408,7 +397,7 @@
...
@@ -408,7 +397,7 @@
<div
class=
"modal-content"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<div
class=
"modal-header"
>
<h5
class=
"modal-title"
id=
"exampleModalLabel"
>
Estudios
</h5>
<h5
class=
"modal-title"
id=
"exampleModalLabel"
>
Estudios
</h5>
<button
type=
"button"
class=
"close"
data-bs-dismiss=
"modal"
aria-label=
"Close"
>
<button
type=
"button"
class=
"close"
data-bs-dismiss=
"modal"
aria-label=
"Close"
style=
"color:#21130d;"
>
<span
aria-hidden=
"true"
>
×
</span>
<span
aria-hidden=
"true"
>
×
</span>
</button>
</button>
</div>
</div>
...
@@ -477,7 +466,7 @@
...
@@ -477,7 +466,7 @@
<div
class=
"modal-content"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<div
class=
"modal-header"
>
<h5
class=
"modal-title"
id=
"exampleModalLabel"
>
Referencias Personales
</h5>
<h5
class=
"modal-title"
id=
"exampleModalLabel"
>
Referencias Personales
</h5>
<button
type=
"button"
class=
"close"
data-bs-dismiss=
"modal"
aria-label=
"Close"
>
<button
type=
"button"
class=
"close"
data-bs-dismiss=
"modal"
aria-label=
"Close"
style=
"color:#21130d;"
>
<span
aria-hidden=
"true"
>
×
</span>
<span
aria-hidden=
"true"
>
×
</span>
</button>
</button>
</div>
</div>
...
...
curriculumsearch/src/main/webapp/jsp/postulantes.jsp
View file @
219aaa23
...
@@ -197,7 +197,7 @@
...
@@ -197,7 +197,7 @@
</c:forEach>
</c:forEach>
</td>
</td>
<td>${postulante.estado.getEstado()}</td>
<td>${postulante.estado.getEstado()}</td>
<td><a href="/postulantes/${postulante.id}">
Ver
</a></td>
<td><a href="/postulantes/${postulante.id}">
<i class="bi bi-eye-fill"></i>
</a></td>
</tr>
</tr>
</c:forEach>
</c:forEach>
</tbody>
</tbody>
...
...
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