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