diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c5f3f6b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "interactive" +} \ No newline at end of file diff --git a/curriculumsearch/img/FondoRoshka.jpg b/curriculumsearch/img/FondoRoshka.jpg new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/curriculumsearch/img/FondoRoshka.jpg diff --git a/curriculumsearch/pom.xml b/curriculumsearch/pom.xml index b4e72c8..8578ca1 100644 --- a/curriculumsearch/pom.xml +++ b/curriculumsearch/pom.xml @@ -78,6 +78,13 @@ + + kr.pe.kwonnam.jsp + jsp-template-inheritance + 0.3.RELEASE + compile + + diff --git a/curriculumsearch/src/main/java/com/roshka/configuration/CustomUserDetails.java b/curriculumsearch/src/main/java/com/roshka/configuration/CustomUserDetails.java index d8ad7b4..4e92c55 100644 --- a/curriculumsearch/src/main/java/com/roshka/configuration/CustomUserDetails.java +++ b/curriculumsearch/src/main/java/com/roshka/configuration/CustomUserDetails.java @@ -53,4 +53,8 @@ public class CustomUserDetails implements UserDetails { return user.getFirstName() + " " + user.getLastName(); } + @Override + public String toString(){ + return user.getEmail(); + } } \ No newline at end of file diff --git a/curriculumsearch/src/main/java/com/roshka/configuration/WebSecurityConfig.java b/curriculumsearch/src/main/java/com/roshka/configuration/WebSecurityConfig.java index d1279b2..40d1a40 100644 --- a/curriculumsearch/src/main/java/com/roshka/configuration/WebSecurityConfig.java +++ b/curriculumsearch/src/main/java/com/roshka/configuration/WebSecurityConfig.java @@ -55,6 +55,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { .antMatchers("/convocatoria*").authenticated() .antMatchers("/tecnologia*").authenticated() .antMatchers("/postulantes").authenticated() + .antMatchers("/edit-user-data").authenticated() .anyRequest().permitAll() .and() .formLogin() diff --git a/curriculumsearch/src/main/java/com/roshka/controller/CargoController.java b/curriculumsearch/src/main/java/com/roshka/controller/CargoController.java index 342dfaf..d1f6a84 100644 --- a/curriculumsearch/src/main/java/com/roshka/controller/CargoController.java +++ b/curriculumsearch/src/main/java/com/roshka/controller/CargoController.java @@ -1,6 +1,8 @@ package com.roshka.controller; +import javax.validation.Valid; + import com.roshka.modelo.Cargo; import com.roshka.repositorio.CargoRepository; import org.springframework.beans.factory.annotation.Autowired; @@ -42,8 +44,11 @@ public class CargoController { } @PostMapping(path = {"/cargo","/cargo/{id}"}) - public String guardarCargo(@ModelAttribute Cargo cargo, BindingResult result, @PathVariable(required = false) Long id) { - if(result.hasErrors()); + public String guardarCargo(@Valid @ModelAttribute Cargo cargo, BindingResult result, @PathVariable(required = false) Long id, Model model) { + if(result.hasErrors() || (id==null && cargoRepo.existsByNombreIgnoreCase(cargo.getNombre()) )){ + model.addAttribute("mismoNombre", true); + return "cargo-form"; + }; if(id != null ) cargo.setId(id); cargoRepo.save(cargo); System.out.println(cargo.getNombre()); diff --git a/curriculumsearch/src/main/java/com/roshka/controller/HomeController.java b/curriculumsearch/src/main/java/com/roshka/controller/HomeController.java new file mode 100644 index 0000000..360d3af --- /dev/null +++ b/curriculumsearch/src/main/java/com/roshka/controller/HomeController.java @@ -0,0 +1,13 @@ +package com.roshka.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +@Controller +@RequestMapping("/home") +public class HomeController { + @RequestMapping() + public String home(Model model) { + return "index"; + } +} diff --git a/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java b/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java index 10e4833..fdc0123 100644 --- a/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java +++ b/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java @@ -81,13 +81,6 @@ public class PostulanteController { this.carRepo=carRepo; } - @RequestMapping("home") - public String index() { - - - return "index"; - } - @RequestMapping("/postulantes") public String postulantes(Model model, @RequestParam(required = false)Long tecId, @@ -190,8 +183,8 @@ public class PostulanteController { return "redirect:/postulacion-correcta"; } - @GetMapping("/postulacion-correcta") - public String successPostulation(Model model){ + @GetMapping("/postulacion-correcta") + public String successPostulation(Model model){ model.addAttribute("mensaje1", "Tu informacion se ha recibido correctamente!"); model.addAttribute("mensaje2", " espera por que nos pongamos en contacto!"); return "exitoRegistro"; @@ -203,35 +196,35 @@ public class PostulanteController { MethodArgumentNotValidException ex) { return ResponseEntity.status(HttpStatus.BAD_REQUEST) .body(ex.getMessage()); - } + } - @ResponseStatus(HttpStatus.BAD_REQUEST) - @ExceptionHandler({ConstraintViolationException.class}) - public ResponseEntity handleValidationExceptions2( - ConstraintViolationException ex) { - return ResponseEntity.status(HttpStatus.BAD_REQUEST) - .body(ex.getMessage()); - } - - - - @GetMapping({"/postulante/{postulanteId}"}) - public String getPostulanteDetalle(Model model, @PathVariable("postulanteId") Long postulanteId) { - Postulante p = post.findById(postulanteId).orElse(null); - model.addAttribute("postulante",p); - model.addAttribute("estadoP", EstadoPostulante.values()); - return "detallepostulante"; - - } - @PostMapping({"/postulante/{postulanteId}"}) - public String setPostulanteEstado(@ModelAttribute Postulante postulante, BindingResult result, @PathVariable("postulanteId") Long postulanteId) { - //post.setPostulanteEstadoAndComentario(postulante.getEstadoPostulante(),postulante.getComentarioRRHH(), postulante.getId()); - Postulante postulanteVd = post.getById(postulanteId); - postulanteVd.setEstadoPostulante(postulante.getEstadoPostulante()); - postulanteVd.setComentarioRRHH(postulante.getComentarioRRHH()); - post.setPostulanteEstadoAndComentario(postulante.getEstadoPostulante(), postulante.getComentarioRRHH(), postulanteId); - //post.save(postulanteVd); - return "redirect:/postulante/"+postulanteId; - } - } + @ResponseStatus(HttpStatus.BAD_REQUEST) + @ExceptionHandler({ConstraintViolationException.class}) + public ResponseEntity handleValidationExceptions2( + ConstraintViolationException ex) { + return ResponseEntity.status(HttpStatus.BAD_REQUEST) + .body(ex.getMessage()); + } + + + + @GetMapping({"/postulante/{postulanteId}"}) + public String getPostulanteDetalle(Model model, @PathVariable("postulanteId") Long postulanteId) { + Postulante p = post.findById(postulanteId).orElse(null); + model.addAttribute("postulante",p); + model.addAttribute("estadoP", EstadoPostulante.values()); + return "detallepostulante"; + + } + @PostMapping({"/postulante/{postulanteId}"}) + public String setPostulanteEstado(@ModelAttribute Postulante postulante, BindingResult result, @PathVariable("postulanteId") Long postulanteId) { + //post.setPostulanteEstadoAndComentario(postulante.getEstadoPostulante(),postulante.getComentarioRRHH(), postulante.getId()); + Postulante postulanteVd = post.getById(postulanteId); + postulanteVd.setEstadoPostulante(postulante.getEstadoPostulante()); + postulanteVd.setComentarioRRHH(postulante.getComentarioRRHH()); + post.setPostulanteEstadoAndComentario(postulante.getEstadoPostulante(), postulante.getComentarioRRHH(), postulanteId); + //post.save(postulanteVd); + return "redirect:/postulante/"+postulanteId; + } +} \ No newline at end of file diff --git a/curriculumsearch/src/main/java/com/roshka/controller/RRHHUserController.java b/curriculumsearch/src/main/java/com/roshka/controller/RRHHUserController.java index d340506..0ad17b3 100644 --- a/curriculumsearch/src/main/java/com/roshka/controller/RRHHUserController.java +++ b/curriculumsearch/src/main/java/com/roshka/controller/RRHHUserController.java @@ -11,6 +11,9 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; @@ -21,6 +24,7 @@ import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import org.springframework.web.servlet.view.RedirectView; @@ -76,6 +80,35 @@ public class RRHHUserController { return "register_success"; } + @GetMapping("/edit-user-data") + public String editUserData(HttpServletRequest request, Model model){ + Authentication auth = SecurityContextHolder.getContext().getAuthentication(); + System.out.println(auth.getPrincipal().toString()); + System.out.println(rrhhUserRepository.findByEmail(auth.getPrincipal().toString())); + model.addAttribute("user", rrhhUserRepository.findByEmail(auth.getPrincipal().toString())); + return "edit-user-data"; + } + + @PostMapping("/edit-user-data") + public RedirectView processEditUser(HttpServletRequest request, RRHHUser user, + RedirectAttributes redirectAttributes){ + RRHHUser editUser = rrhhUserRepository.findByEmail(SecurityContextHolder.getContext().getAuthentication() + .getPrincipal().toString()); + if(user.getEmail()!=null){ + editUser.setEmail(user.getEmail()); + } + if(user.getFirstName()!=null){ + editUser.setFirstName(user.getFirstName()); + } + if(user.getLastName()!=null){ + editUser.setLastName(user.getLastName()); + } + rrhhUserRepository.save(editUser); + RedirectView redirectView = new RedirectView("/home",true); + redirectAttributes.addFlashAttribute("success", "Datos actualizados"); + return redirectView; + } + @Autowired private RRHHUserService userService; @@ -155,15 +188,6 @@ public class RRHHUserController { return "redirect:/"; } - @ResponseStatus(HttpStatus.PERMANENT_REDIRECT) - @ExceptionHandler({UsernameNotFoundException.class}) - public RedirectView handleValidationExceptions( - RedirectAttributes redir, UsernameNotFoundException ex) { - RedirectView redirectView = new RedirectView("/forgot-password", true); - redir.addAttribute("error", "Error al enviar el mail. Checkee sus credenciales" + - " y intentelo de nuevo"); - return redirectView; - } } class Utility { diff --git a/curriculumsearch/src/main/java/com/roshka/controller/TecnologiaController.java b/curriculumsearch/src/main/java/com/roshka/controller/TecnologiaController.java index e7a5333..b8649b2 100644 --- a/curriculumsearch/src/main/java/com/roshka/controller/TecnologiaController.java +++ b/curriculumsearch/src/main/java/com/roshka/controller/TecnologiaController.java @@ -1,5 +1,7 @@ package com.roshka.controller; +import javax.validation.Valid; + import com.roshka.modelo.Tecnologia; import com.roshka.repositorio.TecnologiaRepository; @@ -45,8 +47,11 @@ public String addtecnologiaView(Model model,@PathVariable(required = false) Long } @PostMapping(path = {"/tecnologia","/tecnologia/{id}"}) - public String addtecnologia(@ModelAttribute Tecnologia tecnologia, BindingResult result, @PathVariable(required = false) Long id) { - if(result.hasErrors()); + public String addtecnologia(@Valid @ModelAttribute Tecnologia tecnologia, BindingResult result, @PathVariable(required = false) Long id, Model model) { + if(result.hasErrors() || (id==null && tecRepo.existsByNombreIgnoreCase(tecnologia.getNombre()))){ + model.addAttribute("mismoNombre", true); + return "tecnologia-form"; + } if(id != null ) tecnologia.setId(id); tecRepo.save(tecnologia); System.out.println(tecnologia.getNombre()); diff --git a/curriculumsearch/src/main/java/com/roshka/modelo/Tecnologia.java b/curriculumsearch/src/main/java/com/roshka/modelo/Tecnologia.java index 5b5ece5..e2181d6 100644 --- a/curriculumsearch/src/main/java/com/roshka/modelo/Tecnologia.java +++ b/curriculumsearch/src/main/java/com/roshka/modelo/Tecnologia.java @@ -15,17 +15,17 @@ public class Tecnologia { @GeneratedValue(strategy = GenerationType.IDENTITY) @Id @Column(name="id") - private long id; + private Long id; @Column(name="nombre") @NotBlank(message = "Este campo no puede estar vacio") private String nombre; - public long getId() { + public Long getId() { return id; } - public void setId(long id) { + public void setId(Long id) { this.id = id; } public String getNombre() { diff --git a/curriculumsearch/src/main/java/com/roshka/repositorio/CargoRepository.java b/curriculumsearch/src/main/java/com/roshka/repositorio/CargoRepository.java index 556bc1c..c78b922 100644 --- a/curriculumsearch/src/main/java/com/roshka/repositorio/CargoRepository.java +++ b/curriculumsearch/src/main/java/com/roshka/repositorio/CargoRepository.java @@ -8,4 +8,5 @@ import org.springframework.data.jpa.repository.JpaRepository; public interface CargoRepository extends JpaRepository{ public List findByNombreContainingIgnoreCase(String nombre); + public boolean existsByNombreIgnoreCase(String nombre); } diff --git a/curriculumsearch/src/main/java/com/roshka/repositorio/TecnologiaRepository.java b/curriculumsearch/src/main/java/com/roshka/repositorio/TecnologiaRepository.java index fed1587..b1cbba7 100644 --- a/curriculumsearch/src/main/java/com/roshka/repositorio/TecnologiaRepository.java +++ b/curriculumsearch/src/main/java/com/roshka/repositorio/TecnologiaRepository.java @@ -9,4 +9,6 @@ import com.roshka.modelo.Tecnologia; public interface TecnologiaRepository extends JpaRepository { public List findByNombreContainingIgnoreCase(String nombre); + + public boolean existsByNombreIgnoreCase(String nombre); } diff --git a/curriculumsearch/src/main/resources/application.properties b/curriculumsearch/src/main/resources/application.properties index 3ff32b8..e1e0dad 100644 --- a/curriculumsearch/src/main/resources/application.properties +++ b/curriculumsearch/src/main/resources/application.properties @@ -1,10 +1,10 @@ spring.jpa.hibernate.ddl-auto=create-drop spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect -#spring.jpa.show-sql=true +spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true -#logging.level.org.hibernate.SQL=DEBUG -#logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE +logging.level.org.hibernate.SQL=DEBUG +logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE spring.sql.init.mode=always spring.sql.init.platform=postgres @@ -24,3 +24,5 @@ spring.mail.port=587 spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true +jsp-inheritance-prefix=/jsp/layouts/ +jsp-inheritance-suffix=.jsp diff --git a/curriculumsearch/src/main/resources/static/main.js b/curriculumsearch/src/main/resources/static/main.js index 808eef0..81c57ef 100644 --- a/curriculumsearch/src/main/resources/static/main.js +++ b/curriculumsearch/src/main/resources/static/main.js @@ -158,8 +158,9 @@ function agregarFieldTecnologia(){ if(tecn==null) continue; content1 += `
  • - ${tecn.tecnologia.nombre} + ${tecn.tecnologia.nombre} +
  • ` @@ -528,4 +529,58 @@ function eliminarReferencia(event) { - +/*--------------------------------------------------------------------------------------------------------- */ +$(function(){ + $("#wizard").steps({ + headerTag: "h4", + bodyTag: "section", + transitionEffect: "fade", + enableAllSteps: true, + transitionEffectSpeed: 500, + onStepChanging: function (event, currentIndex, newIndex) { + if ( newIndex === 1 ) { + $('.steps ul').addClass('step-2'); + } else { + $('.steps ul').removeClass('step-2'); + } + if ( newIndex === 2 ) { + $('.steps ul').addClass('step-3'); + } else { + $('.steps ul').removeClass('step-3'); + } + + if ( newIndex === 3 ) { + $('.steps ul').addClass('step-4'); + $('.actions ul').addClass('step-last'); + } else { + $('.steps ul').removeClass('step-4'); + $('.actions ul').removeClass('step-last'); + } + return true; + }, + labels: { + finish: "Order again", + next: "Next", + previous: "Previous" + } + }); + // Custom Steps Jquery Steps + $('.wizard > .steps li a').click(function(){ + $(this).parent().addClass('checked'); + $(this).parent().prevAll().addClass('checked'); + $(this).parent().nextAll().removeClass('checked'); + }); + // Custom Button Jquery Steps + $('.forward').click(function(){ + $("#wizard").steps('next'); + }) + $('.backward').click(function(){ + $("#wizard").steps('previous'); + }) + // Checkbox + $('.checkbox-circle label').click(function(){ + $('.checkbox-circle label').removeClass('active'); + $(this).addClass('active'); + }) + }) +/*--------------------------------------------------------------------------------------------------------- */ \ No newline at end of file diff --git a/curriculumsearch/src/main/webapp/css/cargoStyle.css b/curriculumsearch/src/main/webapp/css/cargoStyle.css new file mode 100644 index 0000000..02aca46 --- /dev/null +++ b/curriculumsearch/src/main/webapp/css/cargoStyle.css @@ -0,0 +1,10 @@ +body{ + background-image:url(/img/fondoBlanco.jpg); + background-size:cover; + background-repeat:no-repeat; + height:100vh;width:100vw; +} +label { + display: inline-block; + width: 100px; +} \ No newline at end of file diff --git a/curriculumsearch/src/main/webapp/css/detallePostulantestyle.css b/curriculumsearch/src/main/webapp/css/detallePostulantestyle.css new file mode 100644 index 0000000..f124595 --- /dev/null +++ b/curriculumsearch/src/main/webapp/css/detallePostulantestyle.css @@ -0,0 +1,44 @@ +:root { + --nord0: #2e3440; + --nord1: #3b4252; + --nord2: #434c5e; + --nord3: #4c566a; + --nord4: #d8dee9; + --nord5: #e5e9f0; + --nord6: #eceff4; + --nord7: #8fbcbb; + --nord8: #88c0d0; + --nord9: #81a1c1; + --nord10: #5e81ac; + --nord11: #bf616a; + --nord12: #d08770; + --nord13: #ebcb8b; + --nord14: #a3be8c; + --nord15: #b48ead; +} +*{outline: 1px #bf616a;} +body{ + color: #3b4252; + margin: auto; +} +header,section{ + width: 960px; + margin: 0 auto; +} +ul{ + list-style-type: none; +} +header{ + background-image:url(/img/fondoHeader.png); + display: flex; + color: #2e3440; +} +section{ + background-image:url(/img/fondoBlanco.jpg); + + display: flex; + +} +article{ + width: 60%; +} \ No newline at end of file diff --git a/curriculumsearch/src/main/webapp/css/formPostulanteStyle.css b/curriculumsearch/src/main/webapp/css/formPostulanteStyle.css new file mode 100644 index 0000000..25dad7d --- /dev/null +++ b/curriculumsearch/src/main/webapp/css/formPostulanteStyle.css @@ -0,0 +1,199 @@ +body { + /* background-color: #506BEE; */ + background-image:url(/img/fondo.png); + /*background-size:cover;*/ + background-repeat:repeat; + height:100vh;width:100vw; + align-items:"middle"; + +} +#head{text-align:center} + form{/*max-width:300px; + width:90%;position:relative; + left:50%; + top:10%;padding:40px; + border-radius:4px; + transform:translate(-50%,10%);*/ + + box-shadow:3px 3px 4px rgba(175, 209, 20, 0.2)} +.card { + border: none +} +li { + padding: 0; + display: inline-block; + width: 80px; + text-align: center; + letter-spacing:normal; + vertical-align: middle; + line-height: 1.1; +} +button { + + border: none; + color: white; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 16px; +} + +.image { + position: relative +} + +.image span { + background-color: #506BEE; + color: #fff; + padding: 6px; + height: 30px; + width: 30px; + border-radius: 50%; + font-size: 13px; + position: absolute; + display: flex; + justify-content: center; + align-items: center; + top: -0px; + right: 0px +} + +.user-details h4 { + color: #506BEE +} + +.ratings { + font-size: 30px; + font-weight: 600; + display: flex; + justify-content: left; + align-items: center; + color: #f9b43a +} + +.user-details span { + text-align: left +} + +.inputs label { + display: flex; + margin-left: 3px; + font-weight: 500; + font-size: 13px; + margin-bottom: 4px +} + +.inputs input { + font-size: 14px; + height: 40px; + border: 2px solid #ced4da +} + +.inputs input:focus { + box-shadow: none; + border: 2px solid #506BEE +} + +.about-inputs label { + display: flex; + margin-left: 3px; + font-weight: 500; + font-size: 13px; + margin-bottom: 4px +} + +.about-inputs textarea { + font-size: 14px; + height: 100px; + border: 2px solid #ced4da; + resize: none +} + +.about-inputs textarea:focus { + box-shadow: none +} + +.btn { + font-weight: 600 +} + +.btn:focus { + box-shadow: none +} + +select { + display: block; + width: 100%; + border: 1px solid #ddd; + border-radius: 20px; + height: 40px; + padding: 5px 10px +} + +select:focus { + outline: none +} + +.add-experience:hover { + background: #506BEE; + color: #fff; + cursor: pointer; + border: solid 1px #506BEE +} + +.content-select select{ + appearance: none; + -webkit-appearance: none; + -moz-appearance: 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 diff --git a/curriculumsearch/src/main/webapp/css/indexStyle.css b/curriculumsearch/src/main/webapp/css/indexStyle.css new file mode 100644 index 0000000..6f1e132 --- /dev/null +++ b/curriculumsearch/src/main/webapp/css/indexStyle.css @@ -0,0 +1,8 @@ +body{ + background-image:url(/img/fondoIndex.jpg); + background-size:cover; + background-repeat:no-repeat; + height:100vh;width:100vw; + position: absolute; + -webkit-text-size-adjust: 100%; +} \ No newline at end of file diff --git a/curriculumsearch/src/main/webapp/css/style.css b/curriculumsearch/src/main/webapp/css/style.css new file mode 100644 index 0000000..990bcac --- /dev/null +++ b/curriculumsearch/src/main/webapp/css/style.css @@ -0,0 +1,40 @@ +*{ + margin: 0px; + padding: 0px; +} +body{ + background-image:url(/img/FondoRoshka.jpg); + background-size:cover; + background-repeat:no-repeat; + overflow: hidden; + height:100%;width:100%; + align-items:"middle"; + position: absolute; +} +#form{max-width:333px; + width:90%;position:relative; + left:50%; + top:10%;padding:40px; + border-radius:4px; + transform:translate(-50%,10%); + color:#fff; + box-shadow:3px 3px 4px rgba(0,0,0,.2)} +#head{text-align:center} +#image{margin:auto;width:50%; + padding:10px;max-height:175px; + max-width:175px} +/*#linkas{display:block; + text-align:center; + font-size:12px; + opacity:.9; + text-decoration:none} +#butonas{background:#70b2d0; + outline:0; + text-shadow:initial} +#formum,#formum2{background:0 0; + border:none; + border-bottom:1px solid #434a52; + border-radius:0; + box-shadow:none; + outline:0; + color:inherit} */ \ No newline at end of file diff --git a/curriculumsearch/src/main/webapp/img/FondoRoshka.jpg b/curriculumsearch/src/main/webapp/img/FondoRoshka.jpg new file mode 100644 index 0000000..503216a Binary files /dev/null and b/curriculumsearch/src/main/webapp/img/FondoRoshka.jpg differ diff --git a/curriculumsearch/src/main/webapp/img/LogoRoshka.jpg b/curriculumsearch/src/main/webapp/img/LogoRoshka.jpg new file mode 100644 index 0000000..ecd4d8c Binary files /dev/null and b/curriculumsearch/src/main/webapp/img/LogoRoshka.jpg differ diff --git a/curriculumsearch/src/main/webapp/img/fondo.png b/curriculumsearch/src/main/webapp/img/fondo.png new file mode 100644 index 0000000..85953d1 Binary files /dev/null and b/curriculumsearch/src/main/webapp/img/fondo.png differ diff --git a/curriculumsearch/src/main/webapp/img/fondoBlanco.jpg b/curriculumsearch/src/main/webapp/img/fondoBlanco.jpg new file mode 100644 index 0000000..b5f6863 Binary files /dev/null and b/curriculumsearch/src/main/webapp/img/fondoBlanco.jpg differ diff --git a/curriculumsearch/src/main/webapp/img/fondoHeader.png b/curriculumsearch/src/main/webapp/img/fondoHeader.png new file mode 100644 index 0000000..c5f0258 Binary files /dev/null and b/curriculumsearch/src/main/webapp/img/fondoHeader.png differ diff --git a/curriculumsearch/src/main/webapp/img/fondoIndex.jpg b/curriculumsearch/src/main/webapp/img/fondoIndex.jpg new file mode 100644 index 0000000..90327ac Binary files /dev/null and b/curriculumsearch/src/main/webapp/img/fondoIndex.jpg differ diff --git a/curriculumsearch/src/main/webapp/jsp/cargo-form.jsp b/curriculumsearch/src/main/webapp/jsp/cargo-form.jsp index ca2da8d..a6de80a 100644 --- a/curriculumsearch/src/main/webapp/jsp/cargo-form.jsp +++ b/curriculumsearch/src/main/webapp/jsp/cargo-form.jsp @@ -1,54 +1,40 @@ -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib -prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ page -contentType="text/html;charset=UTF-8" language="java" %> - - - - - - - Cargo - - - - - - -
    -

    Agregar Cargo

    -
    - -
    - Nombre del cargo - - -
    -
    - -
    -
    -
    -
    - - +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib uri="http://kwonnam.pe.kr/jsp/template-inheritance" prefix="layout"%> + + + +
    +
    ${cargo.id == null ? "Agregar" : "Modificar"} Cargo
    + +
    + Nombre del cargo + + +
    + Este nombre ya existe +
    +
    +
    + +
    +
    +
    +
    + + + +
    diff --git a/curriculumsearch/src/main/webapp/jsp/cargos.jsp b/curriculumsearch/src/main/webapp/jsp/cargos.jsp index acda338..a2f9b26 100644 --- a/curriculumsearch/src/main/webapp/jsp/cargos.jsp +++ b/curriculumsearch/src/main/webapp/jsp/cargos.jsp @@ -1,67 +1,52 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> - - - - - - - Cargo - - - - - - -
    -

    Lista de cargos

    -
    -
    - - - -
    - Agregar Nuevo Cargo -
    -
    - - - - - - - - - - - - - - - - - -
    #Cargo
    ${sta.index+1}${cargo.getNombre()} - Ver Convocatorias - Editar cargo
    -
    -
    - - +<%@ taglib uri="http://kwonnam.pe.kr/jsp/template-inheritance" prefix="layout"%> + + + +
    +

    Lista de cargos

    +
    +
    + + + +
    + Agregar Nuevo Cargo +
    +
    + + + + + + + + + + + + + + + + + +
    #Cargo
    ${sta.index+1}${cargo.getNombre()} + Ver Convocatorias + Editar cargo
    +
    +
    +
    + + + +
    diff --git a/curriculumsearch/src/main/webapp/jsp/convocatoria-form.jsp b/curriculumsearch/src/main/webapp/jsp/convocatoria-form.jsp index 6653ffd..ae3de78 100644 --- a/curriculumsearch/src/main/webapp/jsp/convocatoria-form.jsp +++ b/curriculumsearch/src/main/webapp/jsp/convocatoria-form.jsp @@ -1,47 +1,39 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> - - - - - - - Convocatoria - - - - - - -
    -

    Agregar Convocatoria

    -
    - -
    - Fecha inicial - - -
    -
    - Fecha Fin - -
    -
    - Cupos: - -
    -
    - Cargo - - - ${cargo.nombre} - - -
    - -
    -
    -
    - - \ No newline at end of file +<%@ taglib uri="http://kwonnam.pe.kr/jsp/template-inheritance" prefix="layout"%> + + + +

    ${convocatoria.id == null ? "Agregar" : "Modificar"} Convocatoria

    +
    + +
    + Fecha inicial + + +
    +
    + Fecha Fin + +
    +
    + Cupos: + +
    +
    + Cargo + + + ${cargo.nombre} + + +
    + +
    +
    +
    + + + +
    diff --git a/curriculumsearch/src/main/webapp/jsp/convocatorias.jsp b/curriculumsearch/src/main/webapp/jsp/convocatorias.jsp index cdec6d8..1dc3a0f 100644 --- a/curriculumsearch/src/main/webapp/jsp/convocatorias.jsp +++ b/curriculumsearch/src/main/webapp/jsp/convocatorias.jsp @@ -1,20 +1,10 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> - - - - - - - Cargo - - - - - - -
    +<%@ taglib uri="http://kwonnam.pe.kr/jsp/template-inheritance" prefix="layout"%> + + +

    Lista de convocatorias

    @@ -67,7 +57,8 @@
    -
    - - - \ No newline at end of file + + + + + diff --git a/curriculumsearch/src/main/webapp/jsp/detallepostulante.jsp b/curriculumsearch/src/main/webapp/jsp/detallepostulante.jsp index 3eeaffc..a5a625a 100644 --- a/curriculumsearch/src/main/webapp/jsp/detallepostulante.jsp +++ b/curriculumsearch/src/main/webapp/jsp/detallepostulante.jsp @@ -1,119 +1,368 @@ <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib uri="http://kwonnam.pe.kr/jsp/template-inheritance" prefix="layout"%> + + +

    + DETALLE POSTULANTE +

    +
    +
    +
    +
    +
    +
    +
    Nombre
    +
    +
    + ${postulante.nombre} ${postulante.apellido} +
    +
    +
    +
    +
    +
    Email
    +
    +
    + ${postulante.correo} +
    +
    +
    +
    +
    +
    Vive en
    +
    +
    + ${postulante.getCiudad().getNombre()}, ${postulante.getCiudad().getDepartamento().getNombre()} +
    +
    +
    +
    +
    +
    Nro de Documento
    +
    +
    + ${postulante.tipoDocumento}: ${postulante.nroDocument} +
    +
    +
    +
    +
    +
    Telefono
    +
    +
    + ${postulante.telefono} +
    +
    +
    +
    +
    +
    Fecha de nacimiento
    +
    +
    + ${postulante.fechaNacimiento} +
    +
    +
    +
    +
    +
    Resumen
    +
    +
    + ${postulante.resumen} +
    +
    +
    +
    +
    +
    Nivel de Ingles
    +
    +
    + ${postulante.nivelIngles} +
    +
    +
    +
    +
    +
    Estado Civil
    +
    +
    + ${postulante.estadoCivil.getDescripcion()} +
    +
    +
    +
    +
    +
    Nacionalidad
    +
    +
    + ${postulante.nacionalidad.getDescripcion()} +
    +
    +
    +
    +
    +
    Disponbilidad
    +
    +
    + ${postulante.disponibilidad.getDescripcion()} +
    +
    +
    +
    +
    +
    Estado
    +
    +
    + ${postulante.estadoPostulante.getEstado()} +
    +
    +
    +
    +
    +
    ComentarioRRHH
    +
    +
    + ${postulante.getComentarioRRHH()} +
    +
    +
    +
    +
    + +
    + +
    +
    +
    - - - - - - - Tecnologia - - - - - - -
    -

    DETALLE POSTULANTE

    -
    - -

    -
    -
    -
    -
    -
    -
    -
    -
    -
    +
    +
    +
    +
    +
    +
    Tecnologias
    + + ${detalle_tecnologia.getTecnologia().getNombre()} +
    +
    +
    +
    +
    +
    Cargos al que postula
    +
      + -

      +
    • +
      ${convocatoria.getCargo().getNombre()}
      + +
    • +
      + +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    Referencias Personales
    +
      + -
    -
    -

    Cambiar Estado del Postulante y Comentario de RRHH

    - - Estado -
    - - - - - - - ${estadoPostulante.getEstado()} - - - - +
  • +
    ${referencia.nombre}, ${referencia.relacion}, ${referencia.telefono}
    + +
  • + +
    +
    +
    -
    - ComentarioRRHH - -
    - - +
    + + + +
    + + + + + + + - -
    -
    - + + + + - \ No newline at end of file diff --git a/curriculumsearch/src/main/webapp/jsp/detallepostulante2.jsp b/curriculumsearch/src/main/webapp/jsp/detallepostulante2.jsp new file mode 100644 index 0000000..953a278 --- /dev/null +++ b/curriculumsearch/src/main/webapp/jsp/detallepostulante2.jsp @@ -0,0 +1,164 @@ + +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + + Curriculum vitae + + + + + +
    +
    +
    +

         ${postulante.nombre} ${postulante.apellido}

    +

         ${postulante.tipoDocumento}: ${postulante.nroDocument}

    +

         Correo: ${postulante.correo}

    +
    +
    +
    +
    +
    +
    +

      Informacion Personal

    +
      +
    • + Direccion: ${postulante.getCiudad().getDepartamento().getNombre()},${postulante.getCiudad().getNombre()} +
    • +
    • + Telefono: ${postulante.telefono} +
    • +
    • + Fecha de nacimiento: ${postulante.fechaNacimiento} +
    • +
    • + Nivel de ingles:   +
    • +
    • + Estado civil: ${postulante.estadoCivil} +
    • +
    • + Nacionalidad: ${postulante.nacionalidad} +
    • +
    • + Disponibilidad: ${postulante.disponibilidad} +
    • +
    • + Resumen: ${postulante.resumen} +
    • +
    +
    +

      TECNOLOGIAS

    +
      + +
      +
      +
    +
    +

      Cargo al que Postula

    +
      + +
    • Nombre: ${convocatoria.getCargo().getNombre()}

    • +
      +
    +
    +

      Estado RRHH

    +
      +
    • Estado del Postulante: ${postulante.estadoPostulante.getEstado()}
    • +
    • Comentario RRHH: ${postulante.getComentarioRRHH()}
    • + + +
    +
    + + +
    + + + + + + + + + + \ No newline at end of file diff --git a/curriculumsearch/src/main/webapp/jsp/edit-user-data.jsp b/curriculumsearch/src/main/webapp/jsp/edit-user-data.jsp new file mode 100644 index 0000000..abdb26d --- /dev/null +++ b/curriculumsearch/src/main/webapp/jsp/edit-user-data.jsp @@ -0,0 +1,65 @@ +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + Edit Profile + + + + + + + + + +
    +
    +
    +
    +
    + Sample photo +
    +

    Perfil

    + + +
    + Email + +
    +
    +
    +
    + Nombre + +
    +
    +
    +
    + Apellido + +
    +
    +
    +
    +
    + +
    +
    + + +
    + +
    +
    +
    +
    +
    +
    + + diff --git a/curriculumsearch/src/main/webapp/jsp/header.jsp b/curriculumsearch/src/main/webapp/jsp/header.jsp index 397a029..5a842fb 100644 --- a/curriculumsearch/src/main/webapp/jsp/header.jsp +++ b/curriculumsearch/src/main/webapp/jsp/header.jsp @@ -46,8 +46,12 @@ + +
    diff --git a/curriculumsearch/src/main/webapp/jsp/index.jsp b/curriculumsearch/src/main/webapp/jsp/index.jsp index 6112019..1ec98fe 100644 --- a/curriculumsearch/src/main/webapp/jsp/index.jsp +++ b/curriculumsearch/src/main/webapp/jsp/index.jsp @@ -8,7 +8,9 @@ - Document + RRHH + + diff --git a/curriculumsearch/src/main/webapp/jsp/layouts/base.jsp b/curriculumsearch/src/main/webapp/jsp/layouts/base.jsp new file mode 100644 index 0000000..deaba95 --- /dev/null +++ b/curriculumsearch/src/main/webapp/jsp/layouts/base.jsp @@ -0,0 +1,81 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib uri="http://kwonnam.pe.kr/jsp/template-inheritance" prefix="layout"%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + + + + + + + RRHH + + +
    + + + +
    + +
    + + + +
    + + + + + + + \ No newline at end of file diff --git a/curriculumsearch/src/main/webapp/jsp/login.jsp b/curriculumsearch/src/main/webapp/jsp/login.jsp index 2662a0b..0f3f1ca 100644 --- a/curriculumsearch/src/main/webapp/jsp/login.jsp +++ b/curriculumsearch/src/main/webapp/jsp/login.jsp @@ -8,21 +8,22 @@ Login - + -
    +
    -
    +
    - -

    Ingresar

    +
    + +
    @@ -41,6 +42,9 @@ +
    @@ -48,6 +52,7 @@
    + diff --git a/curriculumsearch/src/main/webapp/jsp/postulante-form.jsp b/curriculumsearch/src/main/webapp/jsp/postulante-form.jsp index 649ba5d..1bf5127 100644 --- a/curriculumsearch/src/main/webapp/jsp/postulante-form.jsp +++ b/curriculumsearch/src/main/webapp/jsp/postulante-form.jsp @@ -10,123 +10,8 @@ - Hello, world! - - - - - + Curriculum + @@ -232,8 +117,8 @@ -
    - @@ -242,41 +127,41 @@
    -
    +
    -
    -
    +
    -
    -
    -
     Cargo al que postulas

    +
    +
     Cargo al que postulas

    -
    -
     Agregar Experiencia

    +
    +
     Agregar Experiencia

    -
    -
     Agregar Estudio

    +
    +
     Agregar Estudio

    @@ -284,16 +169,16 @@ -
    -
     Agregar Tecnologia

    +
    +
     Agregar Tecnologia

    -
    -
     Referencias Personales

    +
    +
     Referencias Personales

    diff --git a/curriculumsearch/src/main/webapp/jsp/postulantes.jsp b/curriculumsearch/src/main/webapp/jsp/postulantes.jsp index bbbedb1..4806afa 100644 --- a/curriculumsearch/src/main/webapp/jsp/postulantes.jsp +++ b/curriculumsearch/src/main/webapp/jsp/postulantes.jsp @@ -1,154 +1,144 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> - - - - - - - - - Lista de postulantes - - - - -
    -

    Lista de Postulantes

    -
    - - - - -
    - - + +
    + + + + + + + + +
    +
    + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    #NombreDisponibilidadNivel de InglesExperienciaTecnologiasEstado
    ${staPost.index + 1}${postulante.nombre} ${postulante.apellido}${postulante.disponibilidad.getDescripcion()}${postulante.nivelIngles}${postulante.experienciaMeses} + + ${detalle_tecnologia.getTecnologia().getNombre()}${not staTec.last ? "," : ""} + + ${postulante.estado.getEstado()}Ver
    +
    + +
    + + + - - - \ No newline at end of file + } + function buscarPagina(nro){ + nro-- + const aBuscar = 'nroPagina='+nro + if(!location.search) location.search = "?"+aBuscar + const inicial = location.search.search(aBuscar); + if(inicial==-1){//si no se encuentra y hay otros queries + location.search = "&"+aBuscar + } + location.search.replace('nroPagina=',aBuscar) + } + const tecId = document.querySelector("#tecId"); + const lvlTec = document.querySelector("#lvlTec"); + tecId.addEventListener('change',habilitarLvlTec); + habilitarLvlTec() + + + diff --git a/curriculumsearch/src/main/webapp/jsp/tecnologia-form.jsp b/curriculumsearch/src/main/webapp/jsp/tecnologia-form.jsp index 0470123..ff5e44c 100644 --- a/curriculumsearch/src/main/webapp/jsp/tecnologia-form.jsp +++ b/curriculumsearch/src/main/webapp/jsp/tecnologia-form.jsp @@ -1,45 +1,26 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> - - - - - - - - - - - - Agregar Tecnologia - - - - - - -
    -

    Agregar Tecnologia

    +<%@ taglib uri="http://kwonnam.pe.kr/jsp/template-inheritance" prefix="layout"%> + + + + +

    ${tecnologia.id == null ? "Agregar" : "Modificar"} Tecnologia

    - Nombre: + Nombre: + +
    + Este nombre ya existe +
    -
    - - - - - - - - - - \ No newline at end of file + + \ No newline at end of file diff --git a/curriculumsearch/src/main/webapp/jsp/tecnologias.jsp b/curriculumsearch/src/main/webapp/jsp/tecnologias.jsp index b0f6899..c12e829 100644 --- a/curriculumsearch/src/main/webapp/jsp/tecnologias.jsp +++ b/curriculumsearch/src/main/webapp/jsp/tecnologias.jsp @@ -1,20 +1,10 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> - - - - - - - Tecnologia - - - - - - -
    +<%@ taglib uri="http://kwonnam.pe.kr/jsp/template-inheritance" prefix="layout"%> + + +

    Lista de Tecnologias

    @@ -49,7 +39,5 @@
    -
    - - - \ No newline at end of file + + diff --git a/curriculumsearch/webapp/css/styles.min.css b/curriculumsearch/webapp/css/styles.min.css new file mode 100644 index 0000000..8e40205 --- /dev/null +++ b/curriculumsearch/webapp/css/styles.min.css @@ -0,0 +1,32 @@ +body{ + background-image:url(/img/FondoRoshka.jpg?h=4dba38685316d6e65f6e24d740c4c6b5); + background-size:cover; + background-repeat:no-repeat; + height:auto;width:auto} +/* #form{max-width:333px; + width:90%;position:relative; + left:50%; + top:10%;padding:40px; + border-radius:4px; + transform:translate(-50%,10%); + color:#fff; + box-shadow:3px 3px 4px rgba(0,0,0,.2)} +#head{text-align:center} +#image{margin:auto;width:50%; + padding:10px;max-height:175px; + max-width:175px} +#linkas{display:block; + text-align:center; + font-size:12px; + opacity:.9; + text-decoration:none} +#butonas{background:#70b2d0; + outline:0; + text-shadow:initial} +#formum,#formum2{background:0 0; + border:none; + border-bottom:1px solid #434a52; + border-radius:0; + box-shadow:none; + outline:0; + color:inherit} */ \ No newline at end of file