diff --git a/UyTube_logica/src/Logica/Controladores/CUsuario.java b/UyTube_logica/src/Logica/Controladores/CUsuario.java index a467352a3d3259d4a362f4f495fa36d3e00482d7..4d6905db1c6ec8cf8dabccec5a4e645e4895237c 100644 --- a/UyTube_logica/src/Logica/Controladores/CUsuario.java +++ b/UyTube_logica/src/Logica/Controladores/CUsuario.java @@ -797,32 +797,36 @@ public class CUsuario implements IUsuario { } @Override - public boolean validarNuevaListaParticular(String nombre) { + public boolean validarNuevaListaParticular(String nombre, int idExcepcion) { if (this.usuarioActual == null){ throw new RuntimeException("No se ha iniciado sesión"); } if (obtenerListasPorDefecto().containsKey(nombre)) { return false; } - if (idListaSeleccionada != 0){ - if (usuarioActual.obtenerListaDeReproduccion(idListaSeleccionada).getNombre().equals(nombre)){ - return true; + for (DtListaDeReproduccion it : usuarioActual.listarListasDeReproduccionDeCanal(true)){ + if (it.getId() != idExcepcion){ + if (it.getNombre().equals(nombre)){ + return false; + } } } - return usuarioActual.validarListaParticular(nombre); + return true; } @Override - public boolean validarNuevoVideo(String nombre) { + public boolean validarNuevoVideo(String nombre, int idExcepcion) { if (this.usuarioActual == null){ throw new RuntimeException("No se ha iniciado sesión"); } - if (idVideoSeleccionado != 0){ - if (usuarioActual.obtenerVideo(idVideoSeleccionado).getNombre().equals(nombre)){ - return true; + for (DtVideo it : usuarioActual.listarVideosDeCanal()){ + if (it.getId() != idExcepcion){ + if (it.getNombre().equals(nombre)){ + return false; + } } } - return usuarioActual.validarListaParticular(nombre); + return true; } @Override diff --git a/UyTube_logica/src/Logica/Interfaces/IUsuario.java b/UyTube_logica/src/Logica/Interfaces/IUsuario.java index 0d0ba5d286edaaa6108ed944a52a4e7e4bb33647..3ec6e6755ec92c387a2b7b92c9469fc30ad04763 100644 --- a/UyTube_logica/src/Logica/Interfaces/IUsuario.java +++ b/UyTube_logica/src/Logica/Interfaces/IUsuario.java @@ -343,24 +343,27 @@ public interface IUsuario { /** * Verifica si el usuarioActual puede agregar una lista de reproduccion con - * el nombre indicado (Si hay una idListaSeleccionada y su nombre coincide - * con el nombre a verificar, retorna true) + * el nombre indicado. Si se está modificando una lista, se puede + * especificar el ID de la lista que se está modificando para una validacion + * correcta * * @param nombre Nombre de la lista de reproduccion + * @param idExcepcion ID de la lista a ignorar (0 si no se decea ignorar ninguna) * @return true si el usuarioActual puede agregar una lista de reproduccion * con ese nombre */ - public boolean validarNuevaListaParticular(String nombre); + public boolean validarNuevaListaParticular(String nombre, int idExcepcion); /** * Verifica si el usuarioActual puede agregar un video con el nombre - * indicado (Si hay un idVideoSeleccionado y su nombre coincide con el - * nombre a verificar, retorna true) - * + * indicado. Si se está modificando un video, se puede especificar el ID del + * video que se está modificando para una validacion correcta + * * @param nombre Nombre del video + * @param idExcepcion ID del video a ignorar (0 si no se decea ignorar ninguno) * @return true si el usuarioActual puede agregar un video con ese nombre */ - public boolean validarNuevoVideo(String nombre); + public boolean validarNuevoVideo(String nombre, int idExcepcion); /** * Se ingresa la nueva valoracion dada por usuarioActual al video diff --git a/UyTube_web/libreria/UyTube_logica.jar b/UyTube_web/libreria/UyTube_logica.jar index 533234ca8e508f89691f1c9cc608e1c06d271032..c9c9e50bd4f8fe8e5751d49d04ace1b1d9dd1c02 100644 Binary files a/UyTube_web/libreria/UyTube_logica.jar and b/UyTube_web/libreria/UyTube_logica.jar differ diff --git a/UyTube_web/src/java/com/uytube/PeticionAjax.java b/UyTube_web/src/java/com/uytube/PeticionAjax.java index 11c8f37aa49a2ab7efd87c249b2f1fdf1909df56..b28f9f367fd3b2eb0aa3fcc98cae79dca148fd0d 100644 --- a/UyTube_web/src/java/com/uytube/PeticionAjax.java +++ b/UyTube_web/src/java/com/uytube/PeticionAjax.java @@ -8,8 +8,6 @@ package com.uytube; import Logica.Fabrica; import Logica.Interfaces.IUsuario; import java.io.IOException; -import java.io.PrintWriter; -import java.util.Arrays; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; @@ -67,6 +65,29 @@ public class PeticionAjax extends HttpServlet { respuesta = "Este email no está disponible"; } break; + case "validarNombreVideo": + int idVideo = 0; + if (request.getParameter("idVideo") != null){ + idVideo = Integer.valueOf(request.getParameter("idVideo")); + } + + if (dato == null || dato.equals("")){ + break; + } + if ( ! sys.validarNuevoVideo(dato, idVideo)){ + respuesta = "El canal ya posee un video con ese nombre"; + } + break; + case "validarNombreLista": + int idLista = 0; + if (request.getParameter("idLista") != null){ + idLista = Integer.valueOf(request.getParameter("idLista")); + } + + if ( ! sys.validarNuevaListaParticular(dato, idLista)){ + respuesta = "El canal ya posee una lista con ese nombre"; + } + break; } System.out.println("Respuesta: " + respuesta); response.getWriter().write(respuesta); diff --git a/UyTube_web/web/AltaListaReproduccion.jsp b/UyTube_web/web/AltaListaReproduccion.jsp index 8cc7c9e3aa65a33afbf4fe3c4554fda800ed8f1a..1f9b636c44ce79a672e329691039273c30169d7d 100644 --- a/UyTube_web/web/AltaListaReproduccion.jsp +++ b/UyTube_web/web/AltaListaReproduccion.jsp @@ -80,9 +80,10 @@ <h1 class="h3 mb-4 font-weight-normal" id="Texto_ingrese">Ingrese sus datos</h1> <div class="mb-5"> <input type="text" class="form-control" name="nombreL" id="nombreLista" placeholder="Nombre de la lista" required> + <span id="msjNombre"></span> </div> - - + + <div class="row"> <div class="col-md-5"> <label class="">Privacidad</label> @@ -139,5 +140,6 @@ <script src="js/bootstrap.bundle.min.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/funciones.js"></script> + <script src="js/alta-modificar-lista.js"></script> </body> </html> diff --git a/UyTube_web/web/AltaVideo.jsp b/UyTube_web/web/AltaVideo.jsp index 6853ca270b2dd129303adc6cf64957ebc873c54a..95d22f1bcf5ae20354f2e791e5fcba09cd7a48ba 100644 --- a/UyTube_web/web/AltaVideo.jsp +++ b/UyTube_web/web/AltaVideo.jsp @@ -73,6 +73,7 @@ <div class="form-group col-12 col-md-9"> <label for="inputNombre">Nombre</label> <input type="text" class="form-control" name="nombre" id="inputNombre" placeholder="Nombre del video"> + <span id="msjNombre"></span> </div> <div class="form-group col-4 col-md-3"> <label for="inputDuracion">Duración</label> @@ -131,5 +132,6 @@ <script src="js/bootstrap.bundle.min.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/funciones.js"></script> + <script src="js/alta-modificar-video.js"></script> </body> </html> \ No newline at end of file diff --git a/UyTube_web/web/ModificarVideo.jsp b/UyTube_web/web/ModificarVideo.jsp index 9a305dec809176e07617ff51cfce6cb333343d41..2e6e46bb984650d6f472e1596ab85e5d818de82e 100644 --- a/UyTube_web/web/ModificarVideo.jsp +++ b/UyTube_web/web/ModificarVideo.jsp @@ -77,7 +77,8 @@ <div class="form-group row"> <div class="form-group col-md-9"> <label for="inputNombre">Nombre</label> - <input value="<%= video.getNombre()%>" type="text" class="form-control" name="nombre" id="inputNombre" placeholder="Nombre del video"> + <input idVideo="<%= video.getId() %>" value="<%= video.getNombre()%>" type="text" class="form-control" name="nombre" id="inputNombre" placeholder="Nombre del video"> + <span id="msjNombre"></span> </div> <div class="form-group col-md-3"> <label for="inputDuracion">Duración</label> @@ -176,5 +177,6 @@ <script src="js/bootstrap.bundle.min.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/funciones.js"></script> + <script src="js/alta-modificar-video.js"></script> </body> </html> diff --git a/UyTube_web/web/js/alta-modificar-lista.js b/UyTube_web/web/js/alta-modificar-lista.js new file mode 100644 index 0000000000000000000000000000000000000000..0bb85f269e5edeb48ee57323b584214987948ecb --- /dev/null +++ b/UyTube_web/web/js/alta-modificar-lista.js @@ -0,0 +1,11 @@ +$("#nombreLista").keyup(function(){ + var valorIngresado = $("#nombreLista").val(); + + $.get("/uytube/consultar", + { + accion: "validarNombreLista", + dato: valorIngresado + }, function(respuesta, status){ + $("#msjNombre").text(respuesta); + }); +}); diff --git a/UyTube_web/web/js/alta-modificar-video.js b/UyTube_web/web/js/alta-modificar-video.js new file mode 100644 index 0000000000000000000000000000000000000000..dca6aa9d08836fa49b3cf73d5c48b38a4b12b993 --- /dev/null +++ b/UyTube_web/web/js/alta-modificar-video.js @@ -0,0 +1,17 @@ +$("#inputNombre").keyup(function(){ + var idVideo = $("#inputNombre").attr("idVideo"); + var valorIngresado = $("#inputNombre").val(); + + if (idVideo === undefined){ + idVideo = 0; + } + + $.get("/uytube/consultar", + { + idVideo: idVideo, + accion: "validarNombreVideo", + dato: valorIngresado + }, function(respuesta, status){ + $("#msjNombre").text(respuesta); + }); +});