Acabando ocultadno iconos para que el usuario normal, no administrador solo puede editar sus skills, una cosa adicional que queda hacer es para asegurar es editar los metdos de cotroladores para que no era posible acceder otras funcciones de ninguna manera.
parent
c1ab8f5a41
commit
624094c58a
@ -1,5 +0,0 @@
|
|||||||
package com.example.proyectofinal.controllers.modelControllers;
|
|
||||||
|
|
||||||
//@RestController
|
|
||||||
public class LogInController {
|
|
||||||
}
|
|
@ -1,7 +1,6 @@
|
|||||||
package com.example.proyectofinal.servicios;
|
package com.example.proyectofinal.servicios.empresa;
|
||||||
|
|
||||||
import com.example.proyectofinal.models.empresas.Alumno;
|
import com.example.proyectofinal.models.empresas.Alumno;
|
||||||
import com.example.proyectofinal.models.empresas.Ciclo;
|
|
||||||
import com.example.proyectofinal.repositories.empresas.AlumnoRepository;
|
import com.example.proyectofinal.repositories.empresas.AlumnoRepository;
|
||||||
import com.example.proyectofinal.servicios.implemetations.IAlumno;
|
import com.example.proyectofinal.servicios.implemetations.IAlumno;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
@ -1,4 +1,4 @@
|
|||||||
package com.example.proyectofinal.servicios;
|
package com.example.proyectofinal.servicios.empresa;
|
||||||
|
|
||||||
import com.example.proyectofinal.models.empresas.Ciclo;
|
import com.example.proyectofinal.models.empresas.Ciclo;
|
||||||
import com.example.proyectofinal.models.empresas.Familia;
|
import com.example.proyectofinal.models.empresas.Familia;
|
@ -1,8 +1,7 @@
|
|||||||
package com.example.proyectofinal.servicios;
|
package com.example.proyectofinal.servicios.empresa;
|
||||||
|
|
||||||
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.models.empresas.Empresa;
|
||||||
import com.example.proyectofinal.repositories.empresas.EmpressaRepository;
|
|
||||||
import com.example.proyectofinal.servicios.implemetations.IContactos;
|
import com.example.proyectofinal.servicios.implemetations.IContactos;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.domain.*;
|
import org.springframework.data.domain.*;
|
@ -1,4 +1,4 @@
|
|||||||
package com.example.proyectofinal.servicios;
|
package com.example.proyectofinal.servicios.empresa;
|
||||||
import com.example.proyectofinal.models.empresas.Empresa;
|
import com.example.proyectofinal.models.empresas.Empresa;
|
||||||
import com.example.proyectofinal.models.empresas.Oferta;
|
import com.example.proyectofinal.models.empresas.Oferta;
|
||||||
import com.example.proyectofinal.models.empresas.Sucursal;
|
import com.example.proyectofinal.models.empresas.Sucursal;
|
@ -1,6 +1,5 @@
|
|||||||
package com.example.proyectofinal.servicios;
|
package com.example.proyectofinal.servicios.empresa;
|
||||||
|
|
||||||
import com.example.proyectofinal.models.empresas.Ciclo;
|
|
||||||
import com.example.proyectofinal.models.empresas.Oferta;
|
import com.example.proyectofinal.models.empresas.Oferta;
|
||||||
import com.example.proyectofinal.models.empresas.Skill;
|
import com.example.proyectofinal.models.empresas.Skill;
|
||||||
import com.example.proyectofinal.models.empresas.Sucursal;
|
import com.example.proyectofinal.models.empresas.Sucursal;
|
@ -1,9 +1,7 @@
|
|||||||
package com.example.proyectofinal.servicios;
|
package com.example.proyectofinal.servicios.empresa;
|
||||||
|
|
||||||
import com.example.proyectofinal.models.empresas.Empresa;
|
import com.example.proyectofinal.models.empresas.Empresa;
|
||||||
import com.example.proyectofinal.models.empresas.Oferta;
|
|
||||||
import com.example.proyectofinal.models.empresas.Sector;
|
import com.example.proyectofinal.models.empresas.Sector;
|
||||||
import com.example.proyectofinal.models.empresas.Sucursal;
|
|
||||||
import com.example.proyectofinal.repositories.empresas.OfertaRepository;
|
import com.example.proyectofinal.repositories.empresas.OfertaRepository;
|
||||||
import com.example.proyectofinal.repositories.empresas.SectorRepository;
|
import com.example.proyectofinal.repositories.empresas.SectorRepository;
|
||||||
import com.example.proyectofinal.servicios.implemetations.ISector;
|
import com.example.proyectofinal.servicios.implemetations.ISector;
|
@ -1,4 +1,4 @@
|
|||||||
package com.example.proyectofinal.servicios;
|
package com.example.proyectofinal.servicios.empresa;
|
||||||
|
|
||||||
import com.example.proyectofinal.models.empresas.Skill;
|
import com.example.proyectofinal.models.empresas.Skill;
|
||||||
import com.example.proyectofinal.repositories.empresas.SkillRepository;
|
import com.example.proyectofinal.repositories.empresas.SkillRepository;
|
@ -1,4 +1,4 @@
|
|||||||
package com.example.proyectofinal.servicios;
|
package com.example.proyectofinal.servicios.empresa;
|
||||||
|
|
||||||
import com.example.proyectofinal.models.empresas.Empresa;
|
import com.example.proyectofinal.models.empresas.Empresa;
|
||||||
import com.example.proyectofinal.models.empresas.Oferta;
|
import com.example.proyectofinal.models.empresas.Oferta;
|
@ -0,0 +1,147 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Creacion: Empresa</title>
|
||||||
|
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css">
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
|
||||||
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
|
||||||
|
<link rel="stylesheet" type="text/css" th:href="@{/top.css}">
|
||||||
|
<style>
|
||||||
|
form {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-around;
|
||||||
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
|
max-width: none;
|
||||||
|
margin: auto;
|
||||||
|
padding: 25px;
|
||||||
|
margin-top: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
margin-top: 25px;
|
||||||
|
margin-right: 5px;
|
||||||
|
width: 120px;
|
||||||
|
height: 40px;
|
||||||
|
font-family: Verdana;
|
||||||
|
}
|
||||||
|
form input[type="submit"], form input[type="button"] {
|
||||||
|
width: 100px;
|
||||||
|
}
|
||||||
|
form input[type="text"]{
|
||||||
|
width: 75%;
|
||||||
|
}
|
||||||
|
form label{
|
||||||
|
font-size: 20px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
font-family: Verdana, Geneva, Tahoma, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
body, h1 {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Añadir Empresa<a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
|
||||||
|
|
||||||
|
<form th:action="@{/empresa/save}" method="post" enctype="multipart/form-data" th:object="${empresa}">
|
||||||
|
<!--<input type="hidden" th:field="*{id}"/>-->
|
||||||
|
<div class="p-3">
|
||||||
|
<div class ="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="nombre">Nombre</label>
|
||||||
|
<div class = "col-sm-9">
|
||||||
|
<input type="text" th:field="*{nombre}" required minlength="2" maxlength="128" class="form-control" id="nombre">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class ="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="cif">Cif</label>
|
||||||
|
<div class = "col-sm-9">
|
||||||
|
<input type="text" th:field="*{cif}" required pattern="^[A-HJ-NP-SUVW]{1}[0-9]{7}[0-9A-J]{1}$" title="Entra un cif valido eje W12345678" class="form-control" id="cif">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class ="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="correo">Correo</label>
|
||||||
|
<div class = "col-sm-9">
|
||||||
|
<input type="text" th:field="*{correo}" required pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$" title="Entra en correo valido." class="form-control" id="correo">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class ="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="telefono">Telefono</label>
|
||||||
|
<div class = "col-sm-9">
|
||||||
|
<input type="text" th:field="*{telefono}" required pattern="^\d{10}$" title="Entra un numero de telefono valido de 10 digitos" class="form-control" id="telefono">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class ="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="keywords">Keywords</label>
|
||||||
|
<div class = "col-sm-9">
|
||||||
|
<input type="text" th:field="*{keywords}" required pattern="([a-zA-Z0-9]+,)*[a-zA-Z0-9]+" title="Los keywords tiene que ser separados por una ," class="form-control" id="keywords">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class ="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="sector">Sector</label>
|
||||||
|
<div class = "col-sm-9">
|
||||||
|
<select th:field="*{sector.id}" class="form-control" id="sector">
|
||||||
|
<option th:each="sector : ${sectores}" th:value="${sector.id}" th:text="${sector.nombre}"></option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="text-center">
|
||||||
|
<input type="submit" value="Guardar" class="btn"/>
|
||||||
|
<input type="button" value="Cancelar" id="btnCancelar" class="btn" onclick="goBack()"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function goBack() {
|
||||||
|
console.log("goBack function called");
|
||||||
|
window.history.back();
|
||||||
|
}
|
||||||
|
$(document).ready(function () {
|
||||||
|
$("form").on("submit", function (event) {
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
var formData = $(this).serialize();
|
||||||
|
var sectorId = $('#sector').val();
|
||||||
|
formData += '&empresa=' + encodeURIComponent(sectorId);
|
||||||
|
$.ajax({
|
||||||
|
url: '/empresa/save',
|
||||||
|
type: 'post',
|
||||||
|
data: formData,
|
||||||
|
success: function (message) {
|
||||||
|
if(message === "La empresa fue guardado con exito") {
|
||||||
|
alert("La empresa fue guardado con exito")
|
||||||
|
window.history.go(-1); // Go back two pages
|
||||||
|
} else if(message === "Este empresa ya existe en la base de datos"){
|
||||||
|
alert("Este empresa ya existe en la base de datos");
|
||||||
|
window.history.go(-1);
|
||||||
|
}else{
|
||||||
|
alert("Error, consulata a los informaticos")
|
||||||
|
window.history.go(-1)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (jqXHR) {
|
||||||
|
alert(jqXHR.responseText);
|
||||||
|
window.history.back();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,145 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Update: Empresa</title>
|
||||||
|
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css">
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
|
||||||
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
|
||||||
|
<link rel="stylesheet" type="text/css" th:href="@{/top.css}">
|
||||||
|
<style>
|
||||||
|
form {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-around;
|
||||||
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
|
max-width: none;
|
||||||
|
margin: auto;
|
||||||
|
padding: 25px;
|
||||||
|
margin-top: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
margin-top: 25px;
|
||||||
|
margin-right: 5px;
|
||||||
|
width: 120px;
|
||||||
|
height: 40px;
|
||||||
|
font-family: Verdana;
|
||||||
|
}
|
||||||
|
form input[type="submit"], form input[type="button"] {
|
||||||
|
width: 100px;
|
||||||
|
}
|
||||||
|
form input[type="text"]{
|
||||||
|
width: 75%;
|
||||||
|
}
|
||||||
|
form label{
|
||||||
|
font-size: 20px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
font-family: Verdana, Geneva, Tahoma, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
body, h1 {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Editar datos de Empresa<a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
|
||||||
|
|
||||||
|
<form th:action="@{/empresa/update}" method="post" enctype="multipart/form-data" th:object="${empresa}">
|
||||||
|
<input type="hidden" th:field="*{id}"/>
|
||||||
|
<div class="p-3">
|
||||||
|
|
||||||
|
<div class ="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="nombre">Nombre</label>
|
||||||
|
<div class = "col-sm-9">
|
||||||
|
<input type="text" th:field="*{nombre}" th:value="*{nombre}" required minlength="2" maxlength="128" class="form-control" id="nombre">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class ="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="cif">Cif</label>
|
||||||
|
<div class = "col-sm-9">
|
||||||
|
<input type="text" th:field="*{cif}" th:value="*{cif}" required pattern="^[A-HJ-NP-SUVW]{1}[0-9]{7}[0-9A-J]{1}$" title="Entra un cif valido eje. W12345678" class="form-control" id="cif">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class ="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="correo">Correo</label>
|
||||||
|
<div class = "col-sm-9">
|
||||||
|
<input type="text" th:field="*{correo}" th:value="*{correo}" required pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$" title="Entra en correo valido." class="form-control" id="correo">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class ="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="telefono">Telefono</label>
|
||||||
|
<div class = "col-sm-9">
|
||||||
|
<input type="text" th:field="*{telefono}" th:value="*{telefono}" required pattern="^\d{10}$" title="Entra un numero de telefono valido de 10 digitos" class="form-control" id="telefono">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class ="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="keywords">Keywords</label>
|
||||||
|
<div class = "col-sm-9">
|
||||||
|
<input type="text" th:field="*{keywords}" th:value="*{keywords}" required pattern="([a-zA-Z0-9]+,)*[a-zA-Z0-9]+" title="Los keywords tiene que ser separados por una ," class="form-control" id="keywords">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class ="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="sector">Sector</label>
|
||||||
|
<div class = "col-sm-9">
|
||||||
|
<select th:field="*{sector.id}" class="form-control" id="sector">
|
||||||
|
<option th:each="sector : ${sectores}" th:value="${sector.id}" th:text="${sector.nombre}" th:selected="${sector.id == empresa.sector.id}"></option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="text-center">
|
||||||
|
<input type="submit" value="Guardar" class="btn"/>
|
||||||
|
<input type="button" value="Cancelar" id="btnCancelar" class="btn" onclick="goBack()"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function goBack() {
|
||||||
|
console.log("goBack function called");
|
||||||
|
window.history.back();
|
||||||
|
}
|
||||||
|
$(document).ready(function () {
|
||||||
|
$("form").on("submit", function (event) {
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
var formData = $(this).serialize();
|
||||||
|
var sectorId = $('#sector').val();
|
||||||
|
formData += '§or=' + encodeURIComponent(sectorId);
|
||||||
|
$.ajax({
|
||||||
|
url: '/empresa/update',
|
||||||
|
type: 'post',
|
||||||
|
data: formData,
|
||||||
|
success: function (message) {
|
||||||
|
if(message === "Los datos de la empresa fue renovados con exito") {
|
||||||
|
alert("Los datos de la empresa fue renovada con exito")
|
||||||
|
window.history.go(-1); // Go back two pages
|
||||||
|
}else{
|
||||||
|
alert("Error, consulata a los informaticos")
|
||||||
|
window.history.go(-1)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (jqXHR) {
|
||||||
|
alert(jqXHR.responseText);
|
||||||
|
window.history.back();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -1,10 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>Primer Usuario</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -0,0 +1,203 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Update: Alumno</title>
|
||||||
|
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css">
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
|
||||||
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
|
||||||
|
<link rel="stylesheet" type="text/css" th:href="@{/top.css}">
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/css/select2.min.css" rel="stylesheet" />
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/select2.min.js"></script>
|
||||||
|
<style>
|
||||||
|
form {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-around;
|
||||||
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
|
max-width: none;
|
||||||
|
margin: auto;
|
||||||
|
padding: 25px;
|
||||||
|
margin-top: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
margin-top: 25px;
|
||||||
|
margin-right: 5px;
|
||||||
|
width: 120px;
|
||||||
|
height: 40px;
|
||||||
|
font-family: Verdana;
|
||||||
|
}
|
||||||
|
form input[type="submit"], form input[type="button"] {
|
||||||
|
width: 100px;
|
||||||
|
}
|
||||||
|
form input[type="text"]{
|
||||||
|
width: 75%;
|
||||||
|
}
|
||||||
|
form label{
|
||||||
|
font-size: 20px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
font-family: Verdana, Geneva, Tahoma, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
body, h1 {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Editar datos de Alumno<a href="/logout" class="logout-button"><i class="fas fa-door-open"></i></a></h1>
|
||||||
|
|
||||||
|
<form th:action="@{/alumno/update}" method="post" enctype="multipart/form-data" th:object="${alumno}">
|
||||||
|
<input type="hidden" th:field="*{id}"/>
|
||||||
|
<div class="p-3">
|
||||||
|
<div class ="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="nombre">Nombre</label>
|
||||||
|
<div class = "col-sm-9">
|
||||||
|
<input type="text" th:field="*{nombre}" required minlength="2" maxlength="75" class="form-control" id="nombre">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class ="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="cif">Apellido</label>
|
||||||
|
<div class = "col-sm-9">
|
||||||
|
<input type="text" th:field="*{apellido}" required minlength="2" maxlength="75" title="Entra un nombre" class="form-control" id="cif">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class ="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="apellido2">Apellido2</label>
|
||||||
|
<div class = "col-sm-9">
|
||||||
|
<input type="text" th:field="*{apellido2}" minlength="2" maxlength="75" class="form-control" id="apellido2">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class ="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="fechaNacimiento">Fecha de Nacimiento</label>
|
||||||
|
<div class = "col-sm-9">
|
||||||
|
<input type="date" th:field="*{fechaNacimiento}" required class="form-control" id="fechaNacimiento" title="Introduce fecha">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="genero">Genero</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<select th:field="*{genero}" class="form-control" id="genero" required>
|
||||||
|
<option value="">Selecciona un genero</option>
|
||||||
|
<option value="Mujer">Mujer</option>
|
||||||
|
<option value="Varon">Varon</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class ="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="nia">Nia</label>
|
||||||
|
<div class = "col-sm-9">
|
||||||
|
<!--TODO: Añadir validacion de nia-->
|
||||||
|
<input type="text" th:field="*{nia}" title="Entra un nia correcto" class="form-control" id="nia">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="dni">DNI/NIE</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<input type="text" th:field="*{dni}" required class="form-control" id="dni" title="Introduce DNI/NIE">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="correo">Correo</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<input type="email" th:field="*{correo}" required class="form-control" id="correo" title="Introduce correo">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="correo2">Correo2</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<input type="email" th:field="*{correo2}" class="form-control" id="correo2" title="Introduce correo alternativo">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="nacionalidad">Nacionalidad</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<input type="text" th:field="*{nacionalidad}" class="form-control" id="nacionalidad" title="Introduce nacionalidad">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="keywords">Keywords</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<input type="text" th:field="*{keywords}" class="form-control" id="keywords" title="Introduce keywords">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Ciclos -->
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label" for="ciclo">Ciclo</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<select th:field="*{ciclo.id}" class="form-control" id="ciclo">
|
||||||
|
<option th:each="ciclo : ${ciclos}" th:value="${ciclo.id}" th:text="${ciclo.nombre}"></option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="skills-container">
|
||||||
|
<h2>Select Skills</h2>
|
||||||
|
<select id="skills" multiple>
|
||||||
|
<option th:each="skill : ${skills}" th:value="${skill.id}" th:text="${skill.nombre}" th:selected="${alumno.skills.contains(skill)}"></option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="text-center">
|
||||||
|
<input type="submit" value="Guardar" class="btn"/>
|
||||||
|
<input type="button" value="Cancelar" id="btnCancelar" class="btn" onclick="goBack()"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#skills').select2();
|
||||||
|
});
|
||||||
|
|
||||||
|
function goBack() {
|
||||||
|
window.history.back();
|
||||||
|
}
|
||||||
|
$(document).ready(function () {
|
||||||
|
$("form").on("submit", function (event) {
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
var formDataArray = $(this).serializeArray();
|
||||||
|
formDataArray.push({name: 'ciclo', value: $('#ciclo').val()});
|
||||||
|
formDataArray.push({name: 'skills', value: $('#skills').val()});
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: '/alumno/update',
|
||||||
|
type: 'post',
|
||||||
|
data: $.param(formDataArray),
|
||||||
|
success: function (message) {
|
||||||
|
if(message === "El alumno fue actualizado con exito") {
|
||||||
|
alert("El alumno fue actualizado con exito")
|
||||||
|
window.history.go(-1);
|
||||||
|
} else {
|
||||||
|
alert("Error, consulte a los informaticos")
|
||||||
|
window.history.go(-1)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (jqXHR) {
|
||||||
|
alert(jqXHR.responseText);
|
||||||
|
window.history.back();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in new issue