diff --git a/src/main/java/com/example/demo/controllers/MainController.java b/src/main/java/com/example/demo/controllers/MainController.java new file mode 100644 index 0000000..7d06b11 --- /dev/null +++ b/src/main/java/com/example/demo/controllers/MainController.java @@ -0,0 +1,184 @@ +package com.example.demo.controllers; + +import com.example.demo.Dominio; +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.RequestParam; + +import java.net.MalformedURLException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Optional; + +/** Para esto caso con UN SOLO CONTROLADOR es suficiente */ +@Controller +public class MainController { + + Dominio dom; + + public void buscaURL() throws MalformedURLException { + this.dom = new Dominio(); + } + + /** TRANSMITIMOS A LOS HTMLS - getMapping DICE A CUALES*/ + + @GetMapping({"","/","/home","/inicio","/index"}) + public String welcome(Model model) throws MalformedURLException { + this.buscaURL(); + model.addAttribute("content_1p", + """ + ¿Cuantas veces tienes ese tipo de días que quieres ver una película pero no sabes cual ver? + """); + model.addAttribute("content_2p", + """ + ¿Cuantas veces te has perdido en inmensos catalogos? + """); + model.addAttribute("content_3p", + """ + Este es tu sitio ideal. + """); + model.addAttribute("title", "La Filmoteca - Inicio"); + model.addAttribute("url", dom.getUrl()); + return "index"; + } + + @GetMapping({"/sobre_nosotros"}) + public String sobre(Model model) throws MalformedURLException { + this.buscaURL(); + model.addAttribute("content_1p", """ + En La Filmoteca acercamos de una manera intuitiva las mejores películas de la historia según nuestros expertos y + las más prestigiosas publicaciones de este arte. + Prometemos acercarnos al visitante de una manera intuitiva y educadora. + """); + model.addAttribute("content_2p", """ + Nos comprometemos a que nuestros visitantes puedan escoger cualquier apartado del forma más simple, + sin colmar su paciencia haciendo que estos mismo recomienden dicha página a sus amigos. + Con una estética simple y minimalista, haremos que cada visitante confíe en nosotros. + """); + model.addAttribute("content_3p", """ + Alejandro Javier Albus -- cc 2022 + + Aviso legal: + Todas las imágenes de las películas son propiedad de sus respectivas productoras y/o autores. + Las descripciones y atributos de las películas han sido extraídas de la web de FilmAffinity + """); + model.addAttribute("title", "La Filmoteca - Sobre"); + model.addAttribute("url", dom.getUrl()); + return "sections/sobre_nosotros"; + } + + @GetMapping({"/nuestra_seleccion"}) + public String nuestraSeleccion(Model model) throws MalformedURLException { + this.buscaURL(); + model.addAttribute("content","Presentamos la selección completa..."); + model.addAttribute("title", "La Filmoteca - Nuestra Seleccion"); + model.addAttribute("url", dom.getUrl()); + return "sections/nuestra_seleccion"; + } + + @GetMapping({"/escribir_resenya"}) + public String escribeResenya(Model model) throws MalformedURLException { + this.buscaURL(); + model.addAttribute("content","Presentamos la selección completa..."); + model.addAttribute("title", "La Filmoteca - Escribir reseña"); + model.addAttribute("url", dom.getUrl()); + return "sections/escribir_resenya"; + } + + @GetMapping({"/pelicula_elegida"}) + public String peliculaElegida(Model model) throws MalformedURLException { + this.buscaURL(); + model.addAttribute("titulo", "1917"); + return "sections/pelicula_elegida"; + } + + /** No es necesario hacer una pagina para cada genero */ + @GetMapping({"/generos"}) + public String generos(Model model) throws MalformedURLException { + this.buscaURL(); + model.addAttribute("content","Presentamos los géneros disponibles..."); + model.addAttribute("title", "La Filmoteca - Géneros"); + model.addAttribute("url", dom.getUrl()); + return "sections/generos"; + } + + @GetMapping("/hora") + public String hora(Model model) { + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss"); + model.addAttribute("fechahora",dtf.format(LocalDateTime.now())); + DateTimeFormatter hora = DateTimeFormatter.ofPattern("HH"); + int ihora = Integer.parseInt(hora.format(LocalDateTime.now())); + String background="claro"; + if (ihora >= 20 || ihora <= 7 ) { + background="oscuro"; + } + model.addAttribute("background",background); + return "hora"; + } + + @GetMapping("/parametros") + public String parametros (Model model) throws MalformedURLException { + this.buscaURL(); + model.addAttribute("titulo", "Propiedades del servidor y URL"); + model.addAttribute("addr",dom.getAddr()); + model.addAttribute("hostnameCanonical",dom.getCanonnical()); + model.addAttribute("hostname",dom.getHostname()); + model.addAttribute("address",dom.getAddr()); + /* importante */ + model.addAttribute("url",dom.getUrl()); + model.addAttribute("port",dom.getPuerto()); + model.addAttribute("host",dom.getHostname()); + model.addAttribute("protocol",dom.getProtocolo()); + model.addAttribute("path",dom.getPath()); + model.addAttribute("query",dom.getQuery()); + model.addAttribute("dominio",dom.getDominio()); + model.addAttribute("tld",dom.getTld()); + return("pruebas/parametros"); + } + + /** + * 127.0.0.1 dominio1.es.tipo1 + * 127.0.0.1 dominio2.es.tipo1 + * 127.0.0.1 dominio1.es.tipo2 + * 127.0.0.1 dominio2.es.tipo2 + */ + + /* backend */ + @GetMapping({"/springsecurity/{usuario}","/springsecurity"}) + public String springsecurity(@PathVariable(name="usuario", required = false) String usuario, Model model) throws MalformedURLException { + this.buscaURL(); + model.addAttribute("titulo","Panel de control security"); + model.addAttribute("usuario",usuario); + return "springsecurity/login"; + } + + /*@GetMapping({"/logout","/salir"}) + public String logout( Model model) throws MalformedURLException { + this.buscaURL(); + model.addAttribute("titulo","Panel de control security"); + return "springsecurity/logout"; + }*/ + + /* url amigable */ + @GetMapping({"/entrar/{usuario}","/entrar","/usuario/{usuario}","/usuario"}) + public String login(@PathVariable(name="usuario", required = false) String usuario, + Model model) throws MalformedURLException { + this.buscaURL(); + model.addAttribute("titulo","Panel de control"); + model.addAttribute("usuario",usuario); + return "backend/login"; + } + + /* admin */ + @GetMapping({"/admin","/intranet","/login"}) + public String admin(@RequestParam("usuario") Optional usuario, + Model model) throws MalformedURLException { + this.buscaURL(); + model.addAttribute("titulo","Intranet"); + model.addAttribute("usuario",usuario.orElse("")); + return "admin/login"; + } + +} diff --git a/src/main/resources/resources/js/login.js b/src/main/resources/resources/js/login.js new file mode 100644 index 0000000..df74e4e --- /dev/null +++ b/src/main/resources/resources/js/login.js @@ -0,0 +1,19 @@ +function toggleResetPswd(e){ + e.preventDefault(); + $('#logreg-forms .form-signin').toggle() // display:block or none + $('#logreg-forms .form-reset').toggle() // display:block or none +} + +function toggleSignUp(e){ + e.preventDefault(); + $('#logreg-forms .form-signin').toggle(); // display:block or none + $('#logreg-forms .form-signup').toggle(); // display:block or none +} + +$(()=>{ + // Login Register Form + $('#logreg-forms #forgot_pswd').click(toggleResetPswd); + $('#logreg-forms #cancel_reset').click(toggleResetPswd); + $('#logreg-forms #btn-signup').click(toggleSignUp); + $('#logreg-forms #cancel_signup').click(toggleSignUp); +}) \ No newline at end of file diff --git a/src/main/resources/static/css/login.css b/src/main/resources/static/css/login.css new file mode 100644 index 0000000..3887419 --- /dev/null +++ b/src/main/resources/static/css/login.css @@ -0,0 +1,24 @@ +@charset "UTF-8"; +.login-block{ + background: #DE6262; /* fallback for old browsers */ +background: -webkit-linear-gradient(to bottom, #FFB88C, #DE6262); /* Chrome 10-25, Safari 5.1-6 */ +background: linear-gradient(to bottom, #FFB88C, #DE6262); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ +float:left; +width:100%; +padding : 50px 0; +} +.banner-sec{background:url(https://static.pexels.com/photos/33972/pexels-photo.jpg) no-repeat left bottom; background-size:cover; min-height:500px; border-radius: 0 10px 10px 0; padding:0;} +.container{background:#fff; border-radius: 10px; box-shadow:15px 20px 0px rgba(0,0,0,0.1);} +.carousel-inner{border-radius:0 10px 10px 0;} +.carousel-caption{text-align:left; left:5%;} +.login-sec{padding: 50px 30px; position:relative;} +.login-sec .copy-text{position:absolute; width:80%; bottom:20px; font-size:13px; text-align:center;} +.login-sec .copy-text i{color:#FEB58A;} +.login-sec .copy-text a{color:#E36262;} +.login-sec h2{margin-bottom:30px; font-weight:800; font-size:30px; color: #DE6262;} +.login-sec h2:after{content:" "; width:100px; height:5px; background:#FEB58A; display:block; margin-top:20px; border-radius:3px; margin-left:auto;margin-right:auto} +.btn-login{background: #DE6262; color:#fff; font-weight:600;} +.banner-text{width:70%; position:absolute; bottom:40px; padding-left:20px;} +.banner-text h2{color:#fff; font-weight:600;} +.banner-text h2:after{content:" "; width:100px; height:5px; background:#FFF; display:block; margin-top:20px; border-radius:3px;} +.banner-text p{color:#fff;} \ No newline at end of file diff --git a/src/main/resources/static/img/manchesterbythesea.png b/src/main/resources/static/img/manchesterbythesea.png new file mode 100644 index 0000000..1b2e6f3 Binary files /dev/null and b/src/main/resources/static/img/manchesterbythesea.png differ diff --git a/src/main/resources/templates/admin/login.html b/src/main/resources/templates/admin/login.html new file mode 100644 index 0000000..628bddf --- /dev/null +++ b/src/main/resources/templates/admin/login.html @@ -0,0 +1,37 @@ + + + + + + + Título de la página + + + + + + + + +
+
+
+
+
+
+

+

+ +
+
+
+
+
+
+ + + + \ No newline at end of file diff --git a/src/main/resources/templates/backend/login.html b/src/main/resources/templates/backend/login.html new file mode 100644 index 0000000..93ea11b --- /dev/null +++ b/src/main/resources/templates/backend/login.html @@ -0,0 +1,73 @@ + + + + + + + Título de la página + + + + + + + + +
+
+
+
+
+ Phone image +
+
+
+ +
+ + +
+ + +
+ + +
+ +
+ +
+ + +
+ Forgot password? +
+ + + + +
+

OR

+
+ + + Continue with Facebook + + + Continue with Twitter + +
+
+
+
+
+
+ + + + \ No newline at end of file diff --git a/src/main/resources/templates/empleado/list.html b/src/main/resources/templates/empleado/list.html new file mode 100644 index 0000000..4f09b25 --- /dev/null +++ b/src/main/resources/templates/empleado/list.html @@ -0,0 +1,20 @@ +
+

Listado de películas disponibles

+ + + + + + + + + + + + + + + + +
IDNombreEmailTeléfono
IDPepe Pérezpepe.perez@openwebinars.net954000000
+
\ No newline at end of file diff --git a/src/main/resources/templates/main/main_content.html b/src/main/resources/templates/main/main_content.html new file mode 100644 index 0000000..4f62081 --- /dev/null +++ b/src/main/resources/templates/main/main_content.html @@ -0,0 +1,138 @@ +
+
+

¡Bienvenidos a La Filmoteca!

+

+
+
+
+
+ +
+
+
+
+ Sobre nosotros +
+
+
+

+

+
+
+
+
+ +
+
+

Yo opino que...

+
+ +
Título de la reseña
+
+
+ + +
+ +
+
+ +
+
+
+ ... +
+
Drama
+

Películas en que prevalecen acciones y situaciones tensas y pasiones conflictivas.

+
+
+
+ ... +
+
Thriller
+

Películas con una trama emocionante que mantiene al espectador en constante suspenso.

+
+
+
+ ... +
+
Épica
+

Películas que resultan impresionantes y/o majestuosas.

+
+
+
+ ... +
+
Miscelánea
+

Películas que no encajan en las categorías anteriormente mencionadas.

+
+
+
+
+ +
+
+

Nuestra selección

+
+
    +
  1. +
    +
    1917
    + Sam Mendes +
    + Manda un email + Escribe una reseña +
  2. +
  3. +
    +
    Interstellar
    + Cristopher Nolan +
    + Manda un email + Escribe una reseña +
  4. +
  5. +
    +
    Goodfellas
    + Martin Scorsese +
    + Manda un email + Escribe una reseña +
  6. +
  7. +
    +
    Goodfellas
    + Martin Scorsese +
    + Manda un email + Escribe una reseña +
  8. +
  9. +
    +
    Goodfellas
    + Martin Scorsese +
    + Manda un email + Escribe una reseña +
  10. +
+
+ +
+
\ No newline at end of file diff --git a/src/main/resources/templates/springsecurity/login.html b/src/main/resources/templates/springsecurity/login.html new file mode 100644 index 0000000..f3fe542 --- /dev/null +++ b/src/main/resources/templates/springsecurity/login.html @@ -0,0 +1,92 @@ + + + + + + + Título de la página + + + + + + + + +
+
+
+ + +
+
+
+ + + + \ No newline at end of file diff --git a/src/main/resources/templates/springsecurity/logout.html b/src/main/resources/templates/springsecurity/logout.html new file mode 100644 index 0000000..3fae39a --- /dev/null +++ b/src/main/resources/templates/springsecurity/logout.html @@ -0,0 +1,10 @@ + + + + + Title + + +salir + + \ No newline at end of file