Mas retoques a busquedas, añadiendo mas buscquedas basicas, creando un boton de login y ajustando el h1 para que se ve mejor la pagina que se usa. Creando css para no repitir el mismo codigo en las listas y otros apartados. Incio de preparaciones de operaciones crud. Crando un nuevo controlador que dependiendo de que boton pulsas guarda texto y usa en el futuro para determinar con que modelo/tabla vas a trabajar

master
vicsash 5 months ago
parent d638d2321e
commit 626a595c23

@ -53,7 +53,6 @@ public class DatabaseTest {
skills, skills,
ciclo ciclo
); );
System.out.println(alumno);
alumnoRepository.save(alumno); alumnoRepository.save(alumno);
Sector sector = new Sector("Tecnologia" + i); Sector sector = new Sector("Tecnologia" + i);
@ -102,7 +101,11 @@ public class DatabaseTest {
jdbcTemplate.execute("CREATE FULLTEXT INDEX keywords_index ON alumnos(keywords,nombre,apellido,apellido2,dni,nia,correo,correo2,nacionalidad,genero)"); jdbcTemplate.execute("CREATE FULLTEXT INDEX keywords_index ON alumnos(keywords,nombre,apellido,apellido2,dni,nia,correo,correo2,nacionalidad,genero)");
jdbcTemplate.execute("CREATE FULLTEXT INDEX keywords_index ON ofertas(nombre,fecha)"); jdbcTemplate.execute("CREATE FULLTEXT INDEX keywords_index ON ofertas(nombre,fecha)");
jdbcTemplate.execute("CREATE FULLTEXT INDEX keywords_index ON sucursales(nombre,localidad,direccion)"); jdbcTemplate.execute("CREATE FULLTEXT INDEX keywords_index ON sucursales(nombre,localidad,direccion)");
jdbcTemplate.execute("CREATE FULLTEXT INDEX keywords_index ON sectores(nombre)");
jdbcTemplate.execute("CREATE FULLTEXT INDEX keywords_index ON ciclos(nombre)");
jdbcTemplate.execute("CREATE FULLTEXT INDEX keywords_index ON familias(nombre)");
jdbcTemplate.execute("CREATE FULLTEXT INDEX keywords_index ON skills(nombre)");
jdbcTemplate.execute("CREATE FULLTEXT INDEX keywords_index ON contactos(nombre,apellido,apellido2,correo,telefono)");
}; };
} }

@ -32,6 +32,10 @@ public class BuscadorController {
@Autowired @Autowired
private ContactoRepository contactoRepository; private ContactoRepository contactoRepository;
@Autowired
private FamiliaRepository familiaRepository;
@Autowired
private CicloRepository cicloRepository;
@GetMapping @GetMapping
public String buscador(){ public String buscador(){
@ -47,62 +51,62 @@ public class BuscadorController {
if(word.length == 1 && word[0].equalsIgnoreCase("all") || word[0].equalsIgnoreCase("todas")){ if(word.length == 1 && word[0].equalsIgnoreCase("all") || word[0].equalsIgnoreCase("todas")){
Set<Empresa> empresas = new HashSet<>(empressaRepository.findAll()); Set<Empresa> empresas = new HashSet<>(empressaRepository.findAll());
model.addAttribute("empresas", empresas); model.addAttribute("empresas", empresas);
return "list_empresas"; return "/list/list_empresas";
} }
System.out.println("Buscando empresas"); System.out.println("Buscando empresas");
if(word.length == 1){ if(word.length == 1){
Set<Empresa> empresas = new HashSet<>(empressaRepository.getEmpressaByKeywordsOrName(word[0])); Set<Empresa> empresas = new HashSet<>(empressaRepository.getEmpressaByKeywordsOrName(word[0]));
model.addAttribute("empresas", empresas); model.addAttribute("empresas", empresas);
return "list_empresas"; return "/list/list_empresas";
}else if(word.length == 2){ }else if(word.length == 2){
Set<Empresa> empresas = new HashSet<>(empressaRepository.getEmpressaByKeywordsOrName(word[0])); Set<Empresa> empresas = new HashSet<>(empressaRepository.getEmpressaByKeywordsOrName(word[0]));
empresas.addAll(empressaRepository.getEmpressaByKeywordsOrName(word[1])); empresas.addAll(empressaRepository.getEmpressaByKeywordsOrName(word[1]));
model.addAttribute("empresas", empresas); model.addAttribute("empresas", empresas);
return "list_empresas"; return "/list/list_empresas";
} }
} else if (searchOption.equals("OptAlumno")) { } else if (searchOption.equals("OptAlumno")) {
if (word.length == 1 && word[0].equalsIgnoreCase("all") || word[0].equalsIgnoreCase("todos")) { if (word.length == 1 && word[0].equalsIgnoreCase("all") || word[0].equalsIgnoreCase("todos")) {
Set<Alumno> alumnos = new HashSet<>(alumnoRepository.findAll()); Set<Alumno> alumnos = new HashSet<>(alumnoRepository.findAll());
model.addAttribute("alumnos", alumnos); model.addAttribute("alumnos", alumnos);
return "list_alumnos"; return "/list/list_alumnos";
} }
if (word.length == 1) { if (word.length == 1) {
System.out.println("Buscando alumnos"); System.out.println("Buscando alumnos");
Set<Alumno> alumnos = new HashSet<>(alumnoRepository.getAlumnoByKeywordsOrName(word[0])); Set<Alumno> alumnos = new HashSet<>(alumnoRepository.getAlumnoByKeywordsOrName(word[0]));
model.addAttribute("alumnos", alumnos); model.addAttribute("alumnos", alumnos);
return "list_alumnos"; return "/list/list_alumnos";
} else if (word.length == 2) { } else if (word.length == 2) {
System.out.println("Buscando alumnos"); System.out.println("Buscando alumnos");
Set<Alumno> alumnos = new HashSet<>(alumnoRepository.getAlumnoByKeywordsOrName(word[0])); Set<Alumno> alumnos = new HashSet<>(alumnoRepository.getAlumnoByKeywordsOrName(word[0]));
alumnos.addAll(alumnoRepository.getAlumnoByKeywordsOrName(word[1])); alumnos.addAll(alumnoRepository.getAlumnoByKeywordsOrName(word[1]));
model.addAttribute("alumnos", alumnos); model.addAttribute("alumnos", alumnos);
return "list_alumnos"; return "/list/list_alumnos";
} }
}else if(searchOption.equals("OptOferta")) { }else if(searchOption.equals("OptOferta")) {
if (word.length == 1 && word[0].equalsIgnoreCase("all") || word[0].equalsIgnoreCase("todas")) { if (word.length == 1 && word[0].equalsIgnoreCase("all") || word[0].equalsIgnoreCase("todas")) {
Set<Oferta> ofertas = new HashSet<>(ofertaRepository.findAll()); Set<Oferta> ofertas = new HashSet<>(ofertaRepository.findAll());
model.addAttribute("ofertas", ofertas); model.addAttribute("ofertas", ofertas);
return "list_ofertas"; return "/list/list_ofertas";
} }
if (word.length == 1) { if (word.length == 1) {
Set<Oferta> ofertas = new HashSet<>(ofertaRepository.getOfertaByKeywordsOrName(word[0])); Set<Oferta> ofertas = new HashSet<>(ofertaRepository.getOfertaFullTextSeach(word[0]));
model.addAttribute("ofertas", ofertas); model.addAttribute("ofertas", ofertas);
return "list_ofertas"; return "/list/list_ofertas";
} else if (word.length == 2) { } else if (word.length == 2) {
Set<Oferta> ofertas = new HashSet<>(ofertaRepository.getOfertaByKeywordsOrName(word[0])); Set<Oferta> ofertas = new HashSet<>(ofertaRepository.getOfertaFullTextSeach(word[0]));
ofertas.addAll(ofertaRepository.getOfertaByKeywordsOrName(word[1])); ofertas.addAll(ofertaRepository.getOfertaFullTextSeach(word[1]));
model.addAttribute("ofertas", ofertas); model.addAttribute("ofertas", ofertas);
return "list_ofertas"; return "/list/list_ofertas";
} }
} else if (searchOption.equals("OptSector")) { } else if (searchOption.equals("OptSector")) {
if (word.length == 1 && word[0].equalsIgnoreCase("all") || word[0].equalsIgnoreCase("todas")) { if (word.length == 1 && word[0].equalsIgnoreCase("all") || word[0].equalsIgnoreCase("todas")) {
Set<Sector> sectores = new HashSet<>(sectorRepository.findAll()); Set<Sector> sectores = new HashSet<>(sectorRepository.findAll());
model.addAttribute("sectores", sectores); model.addAttribute("sectores", sectores);
return "list_sectores"; return "/list/list_sectores";
} else { } else {
Sector sector = sectorRepository.findByNombre(word[0]); Sector sector = sectorRepository.findByNombre(word[0]);
model.addAttribute("sectores", sector); model.addAttribute("sectores", sector);
return "list_sectores"; return "/list/list_sectores";
} }
}else if(searchOption.equals("OptSucursal")) { }else if(searchOption.equals("OptSucursal")) {
if (word.length == 1 && word[0].equalsIgnoreCase("all") || word[0].equalsIgnoreCase("todas")) { if (word.length == 1 && word[0].equalsIgnoreCase("all") || word[0].equalsIgnoreCase("todas")) {
@ -110,7 +114,7 @@ public class BuscadorController {
model.addAttribute("sucursales", sucursalSet); model.addAttribute("sucursales", sucursalSet);
return "/list/list_sucursales"; return "/list/list_sucursales";
} else { } else {
Set<Sucursal> sucursalSet = new HashSet<>(sucursalRepository.getSucursalByKeywordsOrName(word[0])); Set<Sucursal> sucursalSet = new HashSet<>(sucursalRepository.getSucursalFullTextSeach(word[0]));
model.addAttribute("sucursales", sucursalSet); model.addAttribute("sucursales", sucursalSet);
return "/list/list_sucursales"; return "/list/list_sucursales";
} }
@ -119,12 +123,32 @@ public class BuscadorController {
Set<Skill> skills = new HashSet<>(skillRepository.findAll()); Set<Skill> skills = new HashSet<>(skillRepository.findAll());
model.addAttribute("skills", skills); model.addAttribute("skills", skills);
return "/list/list_skills"; return "/list/list_skills";
}else{
Set<Skill> skills = new HashSet<>(skillRepository.getSkillFullTextSeach(word[0]));
model.addAttribute("skills", skills);
return "/list/list_skills";
} }
}else if(searchOption.equals("OptContactos")) { }else if(searchOption.equals("OptContactos")) {
if (word.length == 1 && word[0].equalsIgnoreCase("all") || word[0].equalsIgnoreCase("todas")) { if (word.length == 1 && word[0].equalsIgnoreCase("all") || word[0].equalsIgnoreCase("todas")) {
Set<Contacto> contactos = new HashSet<>(contactoRepository.findAll()); Set<Contacto> contactos = new HashSet<>(contactoRepository.findAll());
model.addAttribute("contactos", contactos); model.addAttribute("contactos", contactos);
return "/list/list_contactos"; return "/list/list_contactos";
} else {
Set<Contacto> contactos = new HashSet<>(contactoRepository.getContactoFullTextSeach(word[0]));
model.addAttribute("contactos", contactos);
return "/list/list_contactos";
}
}else if(searchOption.equals("OptFamilias")) {
if (word.length == 1 && word[0].equalsIgnoreCase("all") || word[0].equalsIgnoreCase("todas")) {
Set<Familia> familias = new HashSet<>(familiaRepository.findAll());
model.addAttribute("familias", familias);
return "/list/list_familias";
}
}else if(searchOption.equals("OptCiclos")){
if (word.length == 1 && word[0].equalsIgnoreCase("all") || word[0].equalsIgnoreCase("todas")) {
Set<Ciclo> ciclos = new HashSet<>(cicloRepository.findAll());
model.addAttribute("ciclos", ciclos);
return "/list/list_ciclos";
} }
}else{ }else{
System.out.println("ERROR EN BUSQUEDA DE UNA PALABRA"); System.out.println("ERROR EN BUSQUEDA DE UNA PALABRA");
@ -132,15 +156,4 @@ public class BuscadorController {
} }
return "error"; return "error";
} }
@GetMapping("/paginaEditar")
public String openNewPage() {
System.out.println("Abriendo pagina de edicion");
return "/admin/edit";
}
} }

@ -1,7 +0,0 @@
package com.example.proyectofinal.controllers;
import org.springframework.web.bind.annotation.RestController;
//@RestController
public class LogInController {
}

@ -0,0 +1,43 @@
package com.example.proyectofinal.controllers.editController;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("/editMain")
public class EditController {
@GetMapping
public String editMain(){
return "admin/editMain";
}
@GetMapping("/FamiliaEdit")
public String editFamilia(@RequestParam String text, Model model){
model.addAttribute("text", text);
return "admin/editMenu/edit_menu";
}
@GetMapping("/{action}/{text}")
public String editFamilia(@PathVariable String action, @PathVariable String text, Model model){
System.out.println(text);
model.addAttribute("text", text);
switch(action) {
case "crear":
System.out.println("crear "+text);
break;
case "editar":
System.out.println("editar "+text);
break;
case "borrar":
System.out.println("borrar "+ text);
break;
}
return "admin/editMenu/edit_menu";
}
}

@ -1,7 +1,6 @@
package com.example.proyectofinal.controllers; package com.example.proyectofinal.controllers.searchController;
import com.example.proyectofinal.models.empresas.Contacto; import com.example.proyectofinal.models.empresas.Contacto;
import com.example.proyectofinal.models.empresas.Empresa;
import com.example.proyectofinal.repositories.empresas.ContactoRepository; import com.example.proyectofinal.repositories.empresas.ContactoRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;

@ -0,0 +1,27 @@
package com.example.proyectofinal.controllers.searchController;
import com.example.proyectofinal.models.empresas.Ciclo;
import com.example.proyectofinal.repositories.empresas.CicloRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.HashSet;
import java.util.Set;
@Controller
@RequestMapping("/familia")
public class FamiliaController {
@Autowired
private CicloRepository cicloRepository;
@GetMapping("/{id}")
public String getFamiliaById(@PathVariable Long id, Model model) {
Set<Ciclo> cicloSet = new HashSet<>(cicloRepository.findCicloByFamiliaId(id));
model.addAttribute("ciclos", cicloSet);
return "/list/specific/list_familia_ciclo";
}
}

@ -0,0 +1,5 @@
package com.example.proyectofinal.controllers.searchController;
//@RestController
public class LogInController {
}

@ -1,8 +1,7 @@
package com.example.proyectofinal.controllers; package com.example.proyectofinal.controllers.searchController;
import com.example.proyectofinal.models.empresas.Empresa; import com.example.proyectofinal.models.empresas.Empresa;
import com.example.proyectofinal.repositories.empresas.EmpressaRepository; import com.example.proyectofinal.repositories.empresas.EmpressaRepository;
import com.example.proyectofinal.repositories.empresas.SectorRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
@ -16,8 +15,6 @@ import java.util.Set;
@Controller @Controller
@RequestMapping("/sector") @RequestMapping("/sector")
public class SectorController { public class SectorController {
@Autowired
private SectorRepository sectorRepository;
@Autowired @Autowired
private EmpressaRepository empressaRepository; private EmpressaRepository empressaRepository;

@ -12,7 +12,7 @@ import java.util.Set;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@Data @Data
@Table(name = "Skill") @Table(name = "skills")
public class Skill { public class Skill {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)

@ -2,6 +2,16 @@ package com.example.proyectofinal.repositories.empresas;
import com.example.proyectofinal.models.empresas.Ciclo; import com.example.proyectofinal.models.empresas.Ciclo;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.lang.reflect.Array;
import java.util.ArrayList;
public interface CicloRepository extends JpaRepository<Ciclo, Long> { public interface CicloRepository extends JpaRepository<Ciclo, Long> {
@Query(value = "SELECT * FROM ciclos u WHERE MATCH(u.nombre, u.familias) AGAINST(?1 IN BOOLEAN MODE)", nativeQuery = true)
public Ciclo getCicloByKeywordsOrName(String keyword1);
@Query(value = "Select * from ciclos c where c.familia_id = ?1", nativeQuery = true)
public ArrayList<Ciclo> findCicloByFamiliaId(Long id);
} }

@ -9,4 +9,7 @@ import java.util.ArrayList;
public interface ContactoRepository extends JpaRepository<Contacto, Long> { public interface ContactoRepository extends JpaRepository<Contacto, Long> {
@Query("SELECT c FROM Contacto c WHERE c.empresa.sector.id = ?1") @Query("SELECT c FROM Contacto c WHERE c.empresa.sector.id = ?1")
ArrayList<Contacto> findBySector(Long id); ArrayList<Contacto> findBySector(Long id);
@Query(value = "SELECT * FROM contactos u WHERE MATCH(u.nombre, u.apellido,u.apellido2, u.correo, u.telefono) AGAINST(?1 IN BOOLEAN MODE)", nativeQuery = true)
public ArrayList<Contacto> getContactoFullTextSeach(String keyword1);
} }

@ -2,6 +2,9 @@ package com.example.proyectofinal.repositories.empresas;
import com.example.proyectofinal.models.empresas.Familia; import com.example.proyectofinal.models.empresas.Familia;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
public interface FamiliaRepository extends JpaRepository<Familia, Long> { public interface FamiliaRepository extends JpaRepository<Familia, Long> {
@Query(value = "SELECT * FROM familias u WHERE MATCH(u.nombre) AGAINST(?1 IN BOOLEAN MODE)", nativeQuery = true)
public Familia getFamiliaFullTextSeach(String keyword1);
} }

@ -1,6 +1,5 @@
package com.example.proyectofinal.repositories.empresas; package com.example.proyectofinal.repositories.empresas;
import com.example.proyectofinal.models.empresas.Empresa;
import com.example.proyectofinal.models.empresas.Oferta; import com.example.proyectofinal.models.empresas.Oferta;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
@ -10,5 +9,5 @@ import java.util.ArrayList;
public interface OfertaRepository extends JpaRepository<Oferta, Long> { public interface OfertaRepository extends JpaRepository<Oferta, Long> {
@Query(value = "SELECT * FROM ofertas u WHERE MATCH(u.nombre, u.fecha) AGAINST(?1 IN BOOLEAN MODE)", nativeQuery = true) @Query(value = "SELECT * FROM ofertas u WHERE MATCH(u.nombre, u.fecha) AGAINST(?1 IN BOOLEAN MODE)", nativeQuery = true)
public ArrayList<Oferta> getOfertaByKeywordsOrName(String word); public ArrayList<Oferta> getOfertaFullTextSeach(String word);
} }

@ -8,4 +8,7 @@ public interface SectorRepository extends JpaRepository<Sector, Long> {
@Query("SELECT s FROM Sector s WHERE s.nombre = ?1") @Query("SELECT s FROM Sector s WHERE s.nombre = ?1")
Sector findByNombre(String nombre); Sector findByNombre(String nombre);
@Query(value = "SELECT * FROM sectores u WHERE MATCH(u.nombre) AGAINST(?1 IN BOOLEAN MODE)", nativeQuery = true)
public Sector getSectorFullTextSeach(String word);
} }

@ -2,6 +2,13 @@ package com.example.proyectofinal.repositories.empresas;
import com.example.proyectofinal.models.empresas.Skill; import com.example.proyectofinal.models.empresas.Skill;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.ArrayList;
public interface SkillRepository extends JpaRepository<Skill, Long> { public interface SkillRepository extends JpaRepository<Skill, Long> {
@Query(value = "SELECT * FROM skills u WHERE MATCH(u.nombre) AGAINST(?1 IN BOOLEAN MODE)", nativeQuery = true)
public ArrayList<Skill> getSkillFullTextSeach(String word);
} }

@ -1,6 +1,5 @@
package com.example.proyectofinal.repositories.empresas; package com.example.proyectofinal.repositories.empresas;
import com.example.proyectofinal.models.empresas.Empresa;
import com.example.proyectofinal.models.empresas.Sucursal; import com.example.proyectofinal.models.empresas.Sucursal;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
@ -11,5 +10,5 @@ public interface SucursalRepository extends JpaRepository<Sucursal, Long> {
//there is value = and nativeQuery = true so the query is written in SQL refering to the table in the database //there is value = and nativeQuery = true so the query is written in SQL refering to the table in the database
@Query(value = "SELECT * FROM sucursales u WHERE MATCH(u.nombre, u.localidad,u.direccion) AGAINST(?1 IN BOOLEAN MODE)", nativeQuery = true) @Query(value = "SELECT * FROM sucursales u WHERE MATCH(u.nombre, u.localidad,u.direccion) AGAINST(?1 IN BOOLEAN MODE)", nativeQuery = true)
public ArrayList<Sucursal> getSucursalByKeywordsOrName(String word); public ArrayList<Sucursal> getSucursalFullTextSeach(String word);
} }

@ -0,0 +1,59 @@
.logout-button {
position: fixed;
top: 0px;
right: 0px;
background-color: red;
color: white;
border: none;
text-decoration: none;
font-size: 20px;
padding: 0px;
margin: 0px;
border-radius: 0;
display: flex;
justify-content: center;
align-items: center;
width: 40px;
height: 40px;
}
.back-button {
width: 200px !important;
height: 50px !important;
font-size: 25px !important;
margin-top: 100px;
background-color: #007BFF;
color: white;
font-weight: bolder;
border-radius: 5px;
justify-content: center;
align-items: center;
font-family: Verdana, Geneva, Tahoma, sans-serif;
}
h1 {
text-align: center;
text-decoration: underline;
background-color: #007BFF;
font-family: Verdana, Geneva, Tahoma, sans-serif;
font-size: 50px;
color: white;
margin-top: 0;
margin-left: 0;
margin-right: 0;
padding-top: 0;
padding-left: 0;
padding-right: 0;
width: 100%;
position: fixed;
top: 0;
}
.cell{
height: 10px;
}
.table {
border: 1px solid black;
height: 75vh;
max-height: 100vh;
overflow-y: auto;
}

@ -0,0 +1,64 @@
.logout-button {
position: fixed;
top: 0px;
right: 0px;
background-color: red;
color: white;
border: none;
text-decoration: none;
font-size: 20px;
padding: 0px;
margin: 0px;
border-radius: 0;
display: flex;
justify-content: center;
align-items: center;
width: 40px;
height: 40px;
}
h1 {
text-align: center;
text-decoration: underline;
background-color: #007BFF;
font-family: Verdana, Geneva, Tahoma, sans-serif;
font-size: 50px;
color: white;
margin-top: 0;
margin-left: 0;
margin-right: 0;
padding-top: 0;
padding-left: 0;
padding-right: 0;
width: 100%;
position: fixed;
top: 0;
}
.back-button {
position: fixed;
bottom: 0;
left: 0;
width: 200px !important;
height: 50px !important;
font-size: 25px !important;
margin-top: 100px;
background-color: #007BFF;
color: white;
font-weight: bolder;
border-radius: 5px;
justify-content: center;
align-items: center;
font-family: Verdana, Geneva, Tahoma, sans-serif;
}
body {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 100vh;
}
.opt_butn {
display: flex;
justify-content: center;
align-items: center;
}

@ -1,24 +1,16 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
<link rel="stylesheet" type="text/css" th:href="@{/style.css}">
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>EDITOR DE INFORMACIÓN</title> <title>EDITOR DE INFORMACIÓN</title>
<style> <style>
.back-button {
width: 200px; /* Adjust as needed */
height: 50px; /* Adjust as needed */
font-size: 20px; /* Adjust as needed */
background-color: blue;
color: white;
text-decoration: none;
border-radius: 5px;
justify-content: center; /* Add this line */
align-items: center; /* Add this line */
}
.grid-container { .grid-container {
margin-top: 125px;
display: grid; display: grid;
grid-template-columns: repeat(3,100px); grid-template-columns: repeat(3,1fr);
grid-gap: 2px; /* Reduced from 5px to 2px */ grid-gap: 2px;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
height: 50vh; height: 50vh;
@ -27,14 +19,22 @@
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
font-size: 20px; font-size: 40px;
background-color: #f0f0f0; background-color: #f0f0f0;
border: 1px solid black;
text-decoration: none; text-decoration: none;
width: 80%;
height: 80%;
margin: auto;
}
body, h1 {
margin-left: 0;
padding-left: 0;
} }
</style> </style>
</head> </head>
<body> <body>
<h1>ZONA ADMINISTRADOR <a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
<div class="grid-container"> <div class="grid-container">
<a>Empresa</a> <a>Empresa</a>
<a>Alumno</a> <a>Alumno</a>
@ -44,7 +44,7 @@
<a>Skill</a> <a>Skill</a>
<a>Contactos</a> <a>Contactos</a>
<a>Ciclo</a> <a>Ciclo</a>
<a>Familia</a> <a href="/editMain/FamiliaEdit?text=Familia">Familia</a>
</div> </div>
<a href="/buscador" class="back-button">Atras</a> <a href="/buscador" class="back-button">Atras</a>

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" th:href="@{/top_and_back.css}">
</head>
<body>
<h1 th:text="${text}"><a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
<div>
<a th:href="@{'/editMain/crear/' + ${text}}" class="opt_butn">Crear</a>
<a th:href="@{'/editMain/editar/' + ${text}}" class="opt_butn">Editar</a>
<a th:href="@{'/editMain/borrar/' + ${text}}" class="opt_butn">Borrar</a>
</div>
<a href="/buscador" class="back-button">Atras</a>
</body>
</html>

@ -0,0 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
</html>

@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>CREAR FAMILIA</h1>
<form action="/yourActionURL" method="post">
<label for="name">Name:</label><br>
<input type="text" id="name" name="name"><br>
<input type="submit" value="Submit">
</form>
<a href="/edit/editMain" class="back-button">Atras a Menu Administrador</a>
</body>
</html>

@ -0,0 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
</html>

@ -1,6 +1,8 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="http://www.thymeleaf.org">
<head> <head>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
<link rel="stylesheet" type="text/css" th:href="@{/style.css}">
<title>Buscador</title> <title>Buscador</title>
<style> <style>
body { body {
@ -48,24 +50,28 @@
align-items: center; /* Add this line */ align-items: center; /* Add this line */
margin-top: 40px; /* Increase the distance between the button and the select element */ margin-top: 40px; /* Increase the distance between the button and the select element */
} }
</style> </style>
</head> </head>
<body> <body>
<h1>PAGINA PRINCIPAL<a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
<form action="/buscador/search" method="get" id="searchForm"> <form action="/buscador/search" method="get" id="searchForm">
<div class="search-container" id="searchContainer"> <div class="search-container" id="searchContainer">
<input type="text" name="query" placeholder="Buscar..."> <input type="text" name="query" placeholder="Buscar...">
<input type="submit" value="Buscar"> <input type="submit" value="Buscar">
</div> </div>
<select name="searchOption"> <select name="searchOption">
<option value="OptEmpresa">Empresa por nombre y/o keywords</option> <option value="OptEmpresa">Empresa</option>
<option value="OptSector">Sector</option> <option value="OptSector">Sector</option>
<option value="OptAlumno">Alumno</option> <option value="OptAlumno">Alumno</option>
<option value="OptOferta">Oferta</option> <option value="OptOferta">Oferta</option>
<option value="OptSucursal">Sucursal</option> <option value="OptSucursal">Sucursal</option>
<option value="OptSkill">Skill</option> <option value="OptSkill">Skill</option>
<option value="OptContactos">Contactos</option> <option value="OptContactos">Contactos</option>
<option value="OptFamilias">Familias</option>
<option value="OptCiclos">Ciclos</option>
</select> </select>
<a th:href="@{/buscador/paginaEditar}" class="edit-button"> <a th:href="@{/editMain}" class="edit-button">
EDITAR EDITAR
</a> </a>
</form> </form>

@ -1,42 +1,19 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
<link rel="stylesheet" type="text/css" th:href="@{/style.css}">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Title</title> <title>Title</title>
<style> <style>
.empresa-cell {
max-height: 10px;
overflow-y: auto;
}
.cell{
height: 10px;
}
h1 {
text-align: center;
}
.back-button {
position: fixed;
bottom: 10px;
left: 10px;
padding: 10px 20px;
background-color: #007BFF;
color: white;
text-decoration: none;
border-radius: 5px;
}
.table {
border: 1px solid black;
height: 75vh; /* Default height */
max-height: 100vh; /* Maximum height */
overflow-y: auto; /* Enable vertical scrolling */
}
</style> </style>
</head> </head>
<body> <body>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
<h1>Listado de Alumnos</h1> <h1>Listado de Alumnos<a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
<div class="table"> <div class="table">
<table class ="table table-hover table-responsive-xl"> <table class ="table table-hover table-responsive-xl">
<thead class="thread-light"> <thead class="thread-light">
@ -75,7 +52,7 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<a href="/buscador" class="back-button">Back to Buscador</a> <a href="/buscador" class="back-button">Atras</a>
</body> </body>
</html> </html>

@ -0,0 +1,38 @@
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
<link rel="stylesheet" type="text/css" th:href="@{/style.css}">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<meta charset="UTF-8">
<title>Title</title>
<style>
</style>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
<h1>Listado de Ciclos<a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
<div class="table">
<table class ="table table-hover table-responsive-xl">
<thead class="thread-light">
<tr>
<th>Id</th>
<th>Nombre</th>
<th>Familia</th>
</tr>
</thead>
<tbody>
<tr class="cell" th:each="ciclo :${ciclos}">
<td>[[${ciclo.id}]]</td>
<td>[[${ciclo.nombre}]]</td>
<td>[[${ciclo.familia.nombre}]]</td>
</tr>
</tbody>
</table>
</div>
<a href="/buscador" class="back-button"}} class="back-button">Atras</a>
</body>
</html>

@ -1,42 +1,19 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
<link rel="stylesheet" type="text/css" th:href="@{/style.css}">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Title</title> <title>Title</title>
<style> <style>
.empresa-cell {
max-height: 10px;
overflow-y: auto;
}
.cell{
height: 10px;
}
h1 {
text-align: center;
}
.back-button {
position: fixed;
bottom: 10px;
left: 10px;
padding: 10px 20px;
background-color: #007BFF;
color: white;
text-decoration: none;
border-radius: 5px;
}
.table {
border: 1px solid black;
height: 75vh; /* Default height */
max-height: 100vh; /* Maximum height */
overflow-y: auto; /* Enable vertical scrolling */
}
</style> </style>
</head> </head>
<body> <body>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
<h1>Listado de Alumnos</h1> <h1>Listado de Alumnos<a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
<div class="table"> <div class="table">
<table class ="table table-hover table-responsive-xl"> <table class ="table table-hover table-responsive-xl">
<thead class="thread-light"> <thead class="thread-light">
@ -65,7 +42,7 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<a href="/buscador" class="back-button">Back to Buscador</a> <a href="/buscador" class="back-button">Atras</a>
</body> </body>
</html> </html>

@ -1,42 +1,19 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
<link rel="stylesheet" type="text/css" th:href="@{/style.css}">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Title</title> <title>Title</title>
<style> <style>
.empresa-cell {
max-height: 10px;
overflow-y: auto;
}
.cell{
height: 10px;
}
h1 {
text-align: center;
}
.back-button {
position: fixed;
bottom: 10px;
left: 10px;
padding: 10px 20px;
background-color: #007BFF;
color: white;
text-decoration: none;
border-radius: 5px;
}
.table {
border: 1px solid black;
height: 75vh; /* Default height */
max-height: 100vh; /* Maximum height */
overflow-y: auto; /* Enable vertical scrolling */
}
</style> </style>
</head> </head>
<body> <body>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
<h1>Listado de Empresas</h1> <h1>Listado de Empresas<a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
<div class="table"> <div class="table">
<table class ="table table-hover table-responsive-xl"> <table class ="table table-hover table-responsive-xl">
<thead class="thread-light"> <thead class="thread-light">
@ -65,7 +42,7 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<a href="/buscador" class="back-button">Back to Buscador</a> <a href="/buscador" class="back-button">Atras</a>
</body> </body>
</html> </html>

@ -0,0 +1,37 @@
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
<link rel="stylesheet" type="text/css" th:href="@{/style.css}">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<meta charset="UTF-8">
<title>Title</title>
<style>
</style>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
<h1>Familias<a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
<div class="table">
<table class ="table table-hover table-responsive-xl">
<thead class="thread-light">
<tr>
<th>Id</th>
<th>Nombre</th>
</tr>
</thead>
<tbody>
<tr class="cell" th:each="familia :${familias}">
<td>[[${familia.id}]]</td>
<td><a th:href="@{/familia/{id}(id=${familia.id})}">[[${familia.nombre}]]</a></td>
</tr>
</tbody>
</table>
</div>
<a href="/buscador" class="back-button">Atras</a>
</body>
</html>

@ -1,42 +1,19 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
<link rel="stylesheet" type="text/css" th:href="@{/style.css}">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Title</title> <title>Title</title>
<style> <style>
.empresa-cell {
max-height: 10px;
overflow-y: auto;
}
.cell{
height: 10px;
}
h1 {
text-align: center;
}
.back-button {
position: fixed;
bottom: 10px;
left: 10px;
padding: 10px 20px;
background-color: #007BFF;
color: white;
text-decoration: none;
border-radius: 5px;
}
.table {
border: 1px solid black;
height: 75vh; /* Default height */
max-height: 100vh; /* Maximum height */
overflow-y: auto; /* Enable vertical scrolling */
}
</style> </style>
</head> </head>
<body> <body>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
<h1>Listado de Ofertas</h1> <h1>Listado de Ofertas<a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
<div class="table"> <div class="table">
<table class ="table table-hover table-responsive-xl"> <table class ="table table-hover table-responsive-xl">
<thead class="thread-light"> <thead class="thread-light">
@ -57,7 +34,7 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<a href="/buscador" class="back-button">Back to Buscador</a> <a href="/buscador" class="back-button">Atras</a>
</body> </body>
</html> </html>

@ -1,42 +1,19 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
<link rel="stylesheet" type="text/css" th:href="@{/style.css}">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Title</title> <title>Title</title>
<style> <style>
.empresa-cell {
max-height: 10px;
overflow-y: auto;
}
.cell{
height: 10px;
}
h1 {
text-align: center;
}
.back-button {
position: fixed;
bottom: 10px;
left: 10px;
padding: 10px 20px;
background-color: #007BFF;
color: white;
text-decoration: none;
border-radius: 5px;
}
.table {
border: 1px solid black;
height: 75vh; /* Default height */
max-height: 100vh; /* Maximum height */
overflow-y: auto; /* Enable vertical scrolling */
}
</style> </style>
</head> </head>
<body> <body>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
<h1>Listado de Ofertas</h1> <h1>Listado de Ofertas<a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
<div class="table"> <div class="table">
<table class ="table table-hover table-responsive-xl"> <table class ="table table-hover table-responsive-xl">
<thead class="thread-light"> <thead class="thread-light">
@ -53,7 +30,7 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<a href="/buscador" class="back-button">Back to Buscador</a> <a href="/buscador" class="back-button">Atras</a>
</body> </body>
</html> </html>

@ -1,42 +1,18 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
<link rel="stylesheet" type="text/css" th:href="@{/style.css}">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Title</title> <title>Title</title>
<style> <style>
.empresa-cell {
max-height: 10px;
overflow-y: auto;
}
.cell{
height: 10px;
}
h1 {
text-align: center;
}
.back-button {
position: fixed;
bottom: 10px;
left: 10px;
padding: 10px 20px;
background-color: #007BFF;
color: white;
text-decoration: none;
border-radius: 5px;
}
.table {
border: 1px solid black;
height: 75vh; /* Default height */
max-height: 100vh; /* Maximum height */
overflow-y: auto; /* Enable vertical scrolling */
}
</style> </style>
</head> </head>
<body> <body>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
<h1>Listado de Skills</h1> <h1>Listado de Skills<a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
<div class="table"> <div class="table">
<table class ="table table-hover table-responsive-xl"> <table class ="table table-hover table-responsive-xl">
<thead class="thread-light"> <thead class="thread-light">

@ -1,42 +1,19 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
<link rel="stylesheet" type="text/css" th:href="@{/style.css}">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Title</title> <title>Title</title>
<style> <style>
.empresa-cell {
max-height: 10px;
overflow-y: auto;
}
.cell{
height: 10px;
}
h1 {
text-align: center;
}
.back-button {
position: fixed;
bottom: 10px;
left: 10px;
padding: 10px 20px;
background-color: #007BFF;
color: white;
text-decoration: none;
border-radius: 5px;
}
.table {
border: 1px solid black;
height: 75vh; /* Default height */
max-height: 100vh; /* Maximum height */
overflow-y: auto; /* Enable vertical scrolling */
}
</style> </style>
</head> </head>
<body> <body>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
<h1>Listado de Sucursales</h1> <h1>Listado de Sucursales<a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
<div class="table"> <div class="table">
<table class ="table table-hover table-responsive-xl"> <table class ="table table-hover table-responsive-xl">
<thead class="thread-light"> <thead class="thread-light">

@ -1,42 +1,19 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
<link rel="stylesheet" type="text/css" th:href="@{/style.css}">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Title</title> <title>Title</title>
<style> <style>
.empresa-cell {
max-height: 10px;
overflow-y: auto;
}
.cell{
height: 10px;
}
h1 {
text-align: center;
}
.back-button {
position: fixed;
bottom: 10px;
left: 10px;
padding: 10px 20px;
background-color: #007BFF;
color: white;
text-decoration: none;
border-radius: 5px;
}
.table {
border: 1px solid black;
height: 75vh; /* Default height */
max-height: 100vh; /* Maximum height */
overflow-y: auto; /* Enable vertical scrolling */
}
</style> </style>
</head> </head>
<body> <body>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
<h1>Listado de Contactos</h1> <h1>Listado de Contactos<a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
<div class="table"> <div class="table">
<table class ="table table-hover table-responsive-xl"> <table class ="table table-hover table-responsive-xl">
<thead class="thread-light"> <thead class="thread-light">
@ -65,7 +42,7 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<a th:href="@{/buscador/search(query=${session.query}, searchOption=${session.searchOption})}" class="back-button">Atras a empressas</a> <a th:href="@{/buscador/search(query=${session.query}, searchOption=${session.searchOption})}" class="back-button">Atras</a>
</body> </body>
</html> </html>

@ -0,0 +1,38 @@
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
<link rel="stylesheet" type="text/css" th:href="@{/style.css}">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<meta charset="UTF-8">
<title>Title</title>
<style>
</style>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
<h1>Listado de Ciclos<a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
<div class="table">
<table class ="table table-hover table-responsive-xl">
<thead class="thread-light">
<tr>
<th>Id</th>
<th>Nombre</th>
<th>Familia</th>
</tr>
</thead>
<tbody>
<tr class="cell" th:each="ciclo :${ciclos}">
<td>[[${ciclo.id}]]</td>
<td>[[${ciclo.nombre}]]</td>
<td>[[${ciclo.familia.nombre}]]</td>
</tr>
</tbody>
</table>
</div>
<a th:href="@{/buscador/search(query=${session.query}, searchOption=${session.searchOption})}" class="back-button">Atras</a>
</body>
</html>

@ -1,42 +1,19 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
<link rel="stylesheet" type="text/css" th:href="@{/style.css}">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Title</title> <title>Title</title>
<style> <style>
.empresa-cell {
max-height: 10px;
overflow-y: auto;
}
.cell{
height: 10px;
}
h1 {
text-align: center;
}
.back-button {
position: fixed;
bottom: 10px;
left: 10px;
padding: 10px 20px;
background-color: #007BFF;
color: white;
text-decoration: none;
border-radius: 5px;
}
.table {
border: 1px solid black;
height: 75vh; /* Default height */
max-height: 100vh; /* Maximum height */
overflow-y: auto; /* Enable vertical scrolling */
}
</style> </style>
</head> </head>
<body> <body>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
<h1>Listado de Empresas</h1> <h1>Listado de Empresas<a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
<div class="table"> <div class="table">
<table class ="table table-hover table-responsive-xl"> <table class ="table table-hover table-responsive-xl">
<thead class="thread-light"> <thead class="thread-light">
@ -65,7 +42,7 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<a th:href="@{/buscador/search(query=${session.query}, searchOption=${session.searchOption})}" class="back-button">Atras a sectores</a> <a th:href="@{/buscador/search(query=${session.query}, searchOption=${session.searchOption})}" class="back-button">Atras</a>
</body> </body>
</html> </html>
Loading…
Cancel
Save

Powered by INFORMATICA.FP.EDU.ES.