diff --git a/Documentacion_de_proyecto/Planificacion.xls b/Documentacion_de_proyecto/Entrega_1_Planificacion_gr01.xls similarity index 100% rename from Documentacion_de_proyecto/Planificacion.xls rename to Documentacion_de_proyecto/Entrega_1_Planificacion_gr01.xls diff --git a/Documentacion_de_proyecto/Registro_de_horas_T1_gr01.xls b/Documentacion_de_proyecto/Entrega_1_Registro_de_horas_gr01.xls similarity index 100% rename from Documentacion_de_proyecto/Registro_de_horas_T1_gr01.xls rename to Documentacion_de_proyecto/Entrega_1_Registro_de_horas_gr01.xls diff --git a/Documentacion_de_proyecto/Entrega_2_Planificacion_gr01.xlsx b/Documentacion_de_proyecto/Entrega_2_Planificacion_gr01.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..2f0bd50c35ebbccc61e66683ed93e17377f7cc08 Binary files /dev/null and b/Documentacion_de_proyecto/Entrega_2_Planificacion_gr01.xlsx differ diff --git a/Documentacion_de_proyecto/Entrega_2_Registro_de_horas_gr01.xlsx b/Documentacion_de_proyecto/Entrega_2_Registro_de_horas_gr01.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..9ebc6fc1caecb139dc5433ffc79c5c69fa327477 Binary files /dev/null and b/Documentacion_de_proyecto/Entrega_2_Registro_de_horas_gr01.xlsx differ diff --git a/Documentacion_de_proyecto/Laboratorio_2.pdf b/Documentacion_de_proyecto/Laboratorio_2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7259d2ee217e0584174dc3ce6123fb9ee1218b40 Binary files /dev/null and b/Documentacion_de_proyecto/Laboratorio_2.pdf differ diff --git a/UyTube_estacion_de_trabajo/Imagenes/perfiles/JotaJota96.JPG b/UyTube_estacion_de_trabajo/Imagenes/perfiles/JotaJota96.JPG deleted file mode 100644 index 3efaaeaebf1d20cb7f712514b0cfc0096f6b0007..0000000000000000000000000000000000000000 Binary files a/UyTube_estacion_de_trabajo/Imagenes/perfiles/JotaJota96.JPG and /dev/null differ diff --git a/UyTube_estacion_de_trabajo/dist/lib/UyTube_logica.jar b/UyTube_estacion_de_trabajo/dist/lib/UyTube_logica.jar index 13f002b786dcb9e64b9cb2acd1a9c9afbd075b20..640d5acbcbd3ed267951ab3606fa6fef347aab99 100644 Binary files a/UyTube_estacion_de_trabajo/dist/lib/UyTube_logica.jar and b/UyTube_estacion_de_trabajo/dist/lib/UyTube_logica.jar differ diff --git a/UyTube_estacion_de_trabajo/librerias/Imagenes/about.png b/UyTube_estacion_de_trabajo/librerias/Imagenes/about.png new file mode 100644 index 0000000000000000000000000000000000000000..937e151247a0fb9b1e63ea91a4ea849744f012da Binary files /dev/null and b/UyTube_estacion_de_trabajo/librerias/Imagenes/about.png differ diff --git a/UyTube_estacion_de_trabajo/librerias/Imagenes/des.jpeg b/UyTube_estacion_de_trabajo/librerias/Imagenes/des.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..7a7eb2ebcdb13adad971a990838700e2ba23ab7d Binary files /dev/null and b/UyTube_estacion_de_trabajo/librerias/Imagenes/des.jpeg differ diff --git a/UyTube_estacion_de_trabajo/librerias/Imagenes/icono.jpg b/UyTube_estacion_de_trabajo/librerias/Imagenes/icono.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e1c6c0706f82d5f48c7f8719a85952965bb15b21 Binary files /dev/null and b/UyTube_estacion_de_trabajo/librerias/Imagenes/icono.jpg differ diff --git a/UyTube_estacion_de_trabajo/librerias/Imagenes/ukp.png b/UyTube_estacion_de_trabajo/librerias/Imagenes/ukp.png new file mode 100644 index 0000000000000000000000000000000000000000..5939b67d080df91af9d46511590d81eda44a17b9 Binary files /dev/null and b/UyTube_estacion_de_trabajo/librerias/Imagenes/ukp.png differ diff --git a/UyTube_estacion_de_trabajo/librerias/UyTube_logica.jar b/UyTube_estacion_de_trabajo/librerias/UyTube_logica.jar index 3d50499f09a11d47c7795f8690f58bb0189b6d18..cb2f4ed6ea79fef7158ecddef00f8c964845c9c3 100644 Binary files a/UyTube_estacion_de_trabajo/librerias/UyTube_logica.jar and b/UyTube_estacion_de_trabajo/librerias/UyTube_logica.jar differ diff --git a/UyTube_estacion_de_trabajo/src/Presentacion/FuncionesImagenes.java b/UyTube_estacion_de_trabajo/src/Presentacion/FuncionesImagenes.java new file mode 100644 index 0000000000000000000000000000000000000000..08a40cdcb1f517bd1baaa940c60f53313e3c2bc4 --- /dev/null +++ b/UyTube_estacion_de_trabajo/src/Presentacion/FuncionesImagenes.java @@ -0,0 +1,160 @@ +package Presentacion; + +import java.awt.Image; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import javax.swing.ImageIcon; +import javax.swing.JFileChooser; +import javax.swing.JOptionPane; +import javax.swing.filechooser.FileNameExtensionFilter; +import sun.awt.image.ByteArrayImageSource; +import sun.awt.image.ToolkitImage; + +public class FuncionesImagenes { + + public static byte[] pathToByteArray(String ruta) { + try { + File f = new File(ruta); //asociamos el archivo fisico + InputStream is = new FileInputStream(f); //lo abrimos. Lo importante es que sea un InputStream + byte[] buffer = new byte[(int) f.length()]; //creamos el buffer + int readers = is.read(buffer); //leemos el archivo al buffer + return buffer; + } catch (IOException e) { + throw new RuntimeException(e.getMessage()); + } + } + + public static Image byteArrayToImage(byte[] arrayDeBytes) { + try { + Image image = new ToolkitImage(new ByteArrayImageSource(arrayDeBytes)); //lo convertimos a Image + return image; + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); + } + } + + public static String seleccionarImagen() { + // Crea un JFileChooser + JFileChooser JFC = new JFileChooser(); + // crea un filtro para aceptar solo algunas extensiones + FileNameExtensionFilter filtroImagen = new FileNameExtensionFilter("JPG", "JPEG", "PNG", "jpg", "jpeg", "png"); + // Agrega el filtro al JFileChooser + JFC.setFileFilter(filtroImagen); + + // archivo seleccionado + File archivo; + // para saber si se selecciono algo o se cancelo + int resultado; + + while (true) { + // muestra el JFileChooser + resultado = JFC.showOpenDialog(null); + + // Si pasa algo que no sea el aceptar + if (resultado != JFileChooser.APPROVE_OPTION) { + return ""; + } + + // obtiene el archivo seleccionado + archivo = JFC.getSelectedFile(); + + // Si se selecciono algun archivo + if (archivo != null) { + // obtiene la ruta del archivo + String rutaArchivo = archivo.getAbsolutePath(); + // obtiene el archivo como imagen a partir de la ruta + Image img = new ImageIcon(rutaArchivo).getImage(); + + // verifica que tanto se deformará la imagen al mostrarla en un cuadrado + float deformacion; + if (img.getHeight(null) > img.getWidth(null)) { + deformacion = img.getHeight(null) / img.getWidth(null); + } else { + deformacion = img.getWidth(null) / img.getHeight(null); + } + + if (deformacion < 1.3 && deformacion >= 1) { + // si no se deforma demasiado + // devuelve la ruta absoluta + return rutaArchivo; + } else { + // si se deforma demasiado, lo avisa al usuario para que escoja otra + JOptionPane.showMessageDialog(null, + "La imagen es demasiado alta o demasiado ancha.\n" + img.getWidth(null) + "x" + img.getHeight(null), + "Problemas con la imagen", + JOptionPane.WARNING_MESSAGE + ); + } + } else { + // sino devuelve un string vacio + return ""; + } + } + } + + public static void cargarImagenPorDefectoEnJlabel(javax.swing.JLabel jLabelx) { + jLabelx.setText(null); + String Ruta = "Imagenes\\ukp.png"; + // Carga la imagen a la variable de tipo Image + Image img = new ImageIcon(Ruta).getImage(); + // Crea un ImageIcon a partir de la imagen (obtiene las dimenciones del jLbel y escala la imagen para que entre en el mismo) + ImageIcon icono = new ImageIcon( + img.getScaledInstance(jLabelx.getWidth(), jLabelx.getHeight(), Image.SCALE_SMOOTH) + ); + // establece la imagen en el label + jLabelx.setIcon(icono); + } + + + public static void cargarImagenEnJlabel(javax.swing.JLabel jLabelx, Image img) { + jLabelx.setText(null); + if (img == null){ + jLabelx.setIcon(null); + return; + } + // Carga la imagen a la variable de tipo Image + // Crea un ImageIcon a partir de la imagen (obtiene las dimenciones del jLbel y escala la imagen para que entre en el mismo) + ImageIcon icono = new ImageIcon( + img.getScaledInstance(jLabelx.getWidth(), jLabelx.getHeight(), Image.SCALE_SMOOTH) + ); + // establece la imagen en el label + jLabelx.setIcon(icono); + } + + public static String getExtensionArchivo(String nombreArchivo){ + String ret = ""; + // recorre desde el final hacia el principio hasta encontrar un '.' extrayendo la extension del archivo + for (int i = nombreArchivo.length() - 1; i >= 0; i--) { + if (nombreArchivo.charAt(i) == '.') { + break; + } + ret = nombreArchivo.charAt(i) + ret; + } + // si la extension obtenida es igual al nombre del archivo, entonces no se encontro ningun punto y el archivo no tienee extension + if (ret.equals(nombreArchivo)) { + return ""; + } + // sino devuelve la extension obtenida + return ret; + } + + + public static String getNombreArchivo(String nombreArchivo){ + String ret = ""; + // recorre desde el final hacia el principio hasta encontrar un '.' extrayendo la extension del archivo + for (int i = nombreArchivo.length() - 1; i >= 0; i--) { + if (nombreArchivo.charAt(i) == '/' || nombreArchivo.charAt(i) == '\\') { + break; + } + ret = nombreArchivo.charAt(i) + ret; + } + // si la extension obtenida es igual al nombre del archivo, entonces no se encontro ningun punto y el archivo no tienee extension + if (ret.equals(nombreArchivo)) { + return ""; + } + // sino devuelve la extension obtenida + return ret; + } +} diff --git a/UyTube_estacion_de_trabajo/src/Presentacion/Usuario/frmAltaUsuario.java b/UyTube_estacion_de_trabajo/src/Presentacion/Usuario/frmAltaUsuario.java index f10d56fc834f3a782dbea303dc89cfd06b0ac029..8a704a3201d421f672dcbfc28e0aaa02ae1fd9e2 100644 --- a/UyTube_estacion_de_trabajo/src/Presentacion/Usuario/frmAltaUsuario.java +++ b/UyTube_estacion_de_trabajo/src/Presentacion/Usuario/frmAltaUsuario.java @@ -1,10 +1,13 @@ package Presentacion.Usuario; import Logica.DataType.DtCanal; +import Logica.DataType.DtImagenUsuario; import Logica.DataType.DtUsuario; import Logica.Enumerados.Privacidad; import Logica.Fabrica; import Logica.Interfaces.IAdmin; +import Logica.Interfaces.IPersistenciaDeImagenes; +import Presentacion.FuncionesImagenes; import com.sun.glass.events.KeyEvent; import java.awt.Color; import java.awt.Image; @@ -54,7 +57,7 @@ public class frmAltaUsuario extends javax.swing.JDialog { this.setLocationRelativeTo(null); sys = Fabrica.getInstancia().getIAdmin(); bordeDefault = txtNombre.getBorder(); - cargarImagenEnJlabel(lbImg, ""); + FuncionesImagenes.cargarImagenPorDefectoEnJlabel(lbImg); } private boolean validarFormatoEmail(String _email){ @@ -163,7 +166,7 @@ public class frmAltaUsuario extends javax.swing.JDialog { jDateChooser1.setDate(null); lbImg.setIcon(null); ruta = ""; - cargarImagenEnJlabel(lbImg, ruta); + FuncionesImagenes.cargarImagenEnJlabel(lbImg, null); } @SuppressWarnings("unchecked") @@ -424,86 +427,17 @@ public class frmAltaUsuario extends javax.swing.JDialog { private void btSeleccionarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btSeleccionarActionPerformed //cargarImagen(lbImagen); String rutaAnterior = ruta; - ruta = seleccionarImagen(); + ruta = FuncionesImagenes.seleccionarImagen(); if (ruta.isEmpty()) { ruta = rutaAnterior; } - cargarImagenEnJlabel(lbImg, ruta); - }//GEN-LAST:event_btSeleccionarActionPerformed - - private void cargarImagenEnJlabel(javax.swing.JLabel jLabelx, String Ruta) { - jLabelx.setText(null); - if (Ruta == null || Ruta.isEmpty()){ - Ruta = "Imagenes\\ukp.png"; - } - // Carga la imagen a la variable de tipo Image - Image img = new ImageIcon(Ruta).getImage(); - // Crea un ImageIcon a partir de la imagen (obtiene las dimenciones del jLbel y escala la imagen para que entre en el mismo) - ImageIcon icono = new ImageIcon( - img.getScaledInstance(jLabelx.getWidth(), jLabelx.getHeight(), Image.SCALE_SMOOTH) + FuncionesImagenes.cargarImagenEnJlabel( + lbImg, + FuncionesImagenes.byteArrayToImage( + FuncionesImagenes.pathToByteArray(ruta) + ) ); - // establece la imagen en el label - jLabelx.setIcon(icono); - } - - private String seleccionarImagen() { - // Crea un JFileChooser - JFileChooser JFC = new JFileChooser(); - // crea un filtro para aceptar solo algunas extensiones - FileNameExtensionFilter filtroImagen = new FileNameExtensionFilter("JPG", "JPEG", "PNG", "jpg", "jpeg", "png"); - // Agrega el filtro al JFileChooser - JFC.setFileFilter(filtroImagen); - - // archivo seleccionado - File archivo; - // para saber si se selecciono algo o se cancelo - int resultado; - - while (true) { - // muestra el JFileChooser - resultado = JFC.showOpenDialog(this); - - // Si pasa algo que no sea el aceptar - if (resultado != JFileChooser.APPROVE_OPTION) { - return ""; - } - - // obtiene el archivo seleccionado - archivo = JFC.getSelectedFile(); - - // Si se selecciono algun archivo - if (archivo != null) { - // obtiene la ruta del archivo - String rutaArchivo = archivo.getAbsolutePath(); - // obtiene el archivo como imagen a partir de la ruta - Image img = new ImageIcon(rutaArchivo).getImage(); - - // verifica que tanto se deformará la imagen al mostrarla en un cuadrado - float deformacion; - if (img.getHeight(null) > img.getWidth(null)) { - deformacion = img.getHeight(null) / img.getWidth(null); - } else { - deformacion = img.getWidth(null) / img.getHeight(null); - } - - if (deformacion < 1.3 && deformacion >= 1) { - // si no se deforma demasiado - // devuelve la ruta absoluta - return rutaArchivo; - } else { - // si se deforma demasiado, lo avisa al usuario para que escoja otra - JOptionPane.showMessageDialog(null, - "La imagen es demasiado alta o demasiado ancha.\n" + img.getWidth(null) + "x" + img.getHeight(null), - "Problemas con la imagen", - JOptionPane.WARNING_MESSAGE - ); - } - } else { - // sino devuelve un string vacio - return ""; - } - } - } + }//GEN-LAST:event_btSeleccionarActionPerformed private void btnCargarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCargarActionPerformed jDateChooser1.setBorder(bordeDefault); @@ -566,6 +500,19 @@ public class frmAltaUsuario extends javax.swing.JDialog { DtUsuario dtUsuario = new DtUsuario(nickname, nickname, nombre, apellido, email, fecha, ruta, 0); DtCanal dtCanal = new DtCanal(0, nombreCanal, descripcion, privacidad); sys.altaUsuarioCanal(dtUsuario, dtCanal); + + IPersistenciaDeImagenes pi = Fabrica.getInstancia().getIPersistenciaDeImagenes(); + if (ruta == null || ruta.equals("")) { + // no se hace nada + } else { + DtImagenUsuario dtiu = new DtImagenUsuario( + dtUsuario.getNickname(), + FuncionesImagenes.pathToByteArray(ruta), + FuncionesImagenes.getNombreArchivo(ruta) + ); + pi.create(dtiu); + } + JOptionPane.showMessageDialog(null, "Se ha creado el usuario "+nickname, "Alta de usuario", JOptionPane.INFORMATION_MESSAGE); limpiarCampos(); } catch (Exception e) { @@ -676,7 +623,7 @@ public class frmAltaUsuario extends javax.swing.JDialog { private void btnQuitarImagenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnQuitarImagenActionPerformed // Quitar imagen ruta = ""; - cargarImagenEnJlabel(lbImg, ruta); + FuncionesImagenes.cargarImagenPorDefectoEnJlabel(lbImg); }//GEN-LAST:event_btnQuitarImagenActionPerformed diff --git a/UyTube_estacion_de_trabajo/src/Presentacion/Usuario/frmConsultaUsuario.java b/UyTube_estacion_de_trabajo/src/Presentacion/Usuario/frmConsultaUsuario.java index 022a893a1178d7fd88e200d8b642361b9843ea0c..1d440ef1a9c1e2c62d7938ee06ed7fe3abd58ad5 100644 --- a/UyTube_estacion_de_trabajo/src/Presentacion/Usuario/frmConsultaUsuario.java +++ b/UyTube_estacion_de_trabajo/src/Presentacion/Usuario/frmConsultaUsuario.java @@ -2,12 +2,15 @@ package Presentacion.Usuario; import Presentacion.ListaDeReproduccion.*; import Logica.DataType.DtCanal; +import Logica.DataType.DtImagenUsuario; import Logica.DataType.DtListaDeReproduccion; import Logica.DataType.DtUsuario; import Logica.DataType.DtVideo; import Logica.Enumerados.Privacidad; import Logica.Fabrica; import Logica.Interfaces.IAdmin; +import Logica.Interfaces.IPersistenciaDeImagenes; +import Presentacion.FuncionesImagenes; import Presentacion.Video.frmConsultaVideo; import java.awt.Image; import java.text.SimpleDateFormat; @@ -28,7 +31,7 @@ public class frmConsultaUsuario extends javax.swing.JDialog { this.setLocationRelativeTo(null); try { - cargarImagenEnJlabel(lbImagen, ""); + FuncionesImagenes.cargarImagenEnJlabel(lbImagen, null); lbImagen.setEnabled(false); // obtiene la instancia de sistema sys = Fabrica.getInstancia().getIAdmin(); @@ -327,7 +330,6 @@ public class frmConsultaUsuario extends javax.swing.JDialog { } lstListaReproduccion.setModel(modelo); } - private void listarUsuariosSeguidos(ArrayList<DtUsuario> ListaUsuarios){ lbCantSeguidos.setText(String.valueOf(ListaUsuarios.size())); DefaultListModel modelo = new DefaultListModel(); @@ -350,8 +352,23 @@ public class frmConsultaUsuario extends javax.swing.JDialog { lbEmail.setText(u.getCorreo()); lbFechaN.setText(new SimpleDateFormat("dd-MM-yyyy").format(u.getFechaNacimiento())); lbCantSeguidores.setText(String.valueOf(u.getCantSeguidores())); - cargarImagenEnJlabel(lbImagen, u.getImagen()); lbImagen.setEnabled(true); + + try { + IPersistenciaDeImagenes pi = Fabrica.getInstancia().getIPersistenciaDeImagenes(); + DtImagenUsuario dtiu = pi.find(u.getNickname()); + if (dtiu == null){ + FuncionesImagenes.cargarImagenPorDefectoEnJlabel(lbImagen); + }else{ + FuncionesImagenes.cargarImagenEnJlabel( + lbImagen, + FuncionesImagenes.byteArrayToImage(dtiu.getImagen()) + ); + } + } catch (Exception e) { + JOptionPane.showMessageDialog(null, "Ha ocurrido un error al cargar la imagen del usuario\n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); + } + } private void cargarLabelsConDatosDelCanal(DtCanal c){ lbNombreCanal.setText(c.getNombre()); @@ -362,20 +379,6 @@ public class frmConsultaUsuario extends javax.swing.JDialog { lbPrivacidad.setText("Privado"); } } - private void cargarImagenEnJlabel(javax.swing.JLabel jLabelx, String Ruta){ - jLabelx.setText(null); - if (Ruta == null || Ruta.isEmpty()){ - Ruta = "Imagenes\\ukp.png"; - } - // Carga la imagen a la variable de tipo Image - Image img = new ImageIcon(Ruta).getImage(); - // Crea un ImageIcon a partir de la imagen (obtiene las dimenciones del jLbel y escala la imagen para que entre en el mismo) - ImageIcon icono = new ImageIcon( - img.getScaledInstance(jLabelx.getWidth(), jLabelx.getHeight(), Image.SCALE_SMOOTH) - ); - // establece la imagen en el label - jLabelx.setIcon(icono); - } /////////////////////////////////////////////////////////////////////////////////////////// // Variables declaration - do not modify//GEN-BEGIN:variables diff --git a/UyTube_estacion_de_trabajo/src/Presentacion/Usuario/frmConsultaUsuarioEliminado.java b/UyTube_estacion_de_trabajo/src/Presentacion/Usuario/frmConsultaUsuarioEliminado.java index bfb489830e76fb20f4a35db4843c21063152e006..6ad28e97f0f86b1f0bb6c4ad4cf2f2d537688b41 100644 --- a/UyTube_estacion_de_trabajo/src/Presentacion/Usuario/frmConsultaUsuarioEliminado.java +++ b/UyTube_estacion_de_trabajo/src/Presentacion/Usuario/frmConsultaUsuarioEliminado.java @@ -1,12 +1,15 @@ package Presentacion.Usuario; import Logica.DataType.DtCanal; +import Logica.DataType.DtImagenUsuario; import Logica.DataType.DtListaDeReproduccion; import Logica.DataType.DtUsuario; import Logica.DataType.DtVideo; import Logica.Enumerados.Privacidad; import Logica.Fabrica; import Logica.Interfaces.IAdmin; +import Logica.Interfaces.IPersistenciaDeImagenes; +import Presentacion.FuncionesImagenes; import Presentacion.ListaDeReproduccion.frmConsultaListaDeReproduccion; import Presentacion.ListaDeReproduccion.frmConsultaListaDeReproduccionEliminada; import Presentacion.Video.frmConsultaVideo; @@ -30,7 +33,7 @@ public class frmConsultaUsuarioEliminado extends javax.swing.JDialog { this.setLocationRelativeTo(null); try { - cargarImagenEnJlabel(lbImagen, ""); + FuncionesImagenes.cargarImagenEnJlabel(lbImagen, null); lbImagen.setEnabled(false); // obtiene la instancia de sistema sys = Fabrica.getInstancia().getIAdmin(); @@ -304,8 +307,21 @@ public class frmConsultaUsuarioEliminado extends javax.swing.JDialog { lbEmail.setText(u.getCorreo()); lbFechaN.setText(new SimpleDateFormat("dd-MM-yyyy").format(u.getFechaNacimiento())); lbFechaElim.setText(new SimpleDateFormat("dd-MM-yyyy").format(u.getFechaEliminado())); - cargarImagenEnJlabel(lbImagen, u.getImagen()); lbImagen.setEnabled(true); + try { + IPersistenciaDeImagenes pi = Fabrica.getInstancia().getIPersistenciaDeImagenes(); + DtImagenUsuario dtiu = pi.find(u.getNickname()); + if (dtiu == null){ + FuncionesImagenes.cargarImagenPorDefectoEnJlabel(lbImagen); + }else{ + FuncionesImagenes.cargarImagenEnJlabel( + lbImagen, + FuncionesImagenes.byteArrayToImage(dtiu.getImagen()) + ); + } + } catch (Exception e) { + JOptionPane.showMessageDialog(null, "Ha ocurrido un error al cargar la imagen del usuario\n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); + } } private void cargarLabelsConDatosDelCanal(DtCanal c){ lbNombreCanal.setText(c.getNombre()); @@ -316,20 +332,6 @@ public class frmConsultaUsuarioEliminado extends javax.swing.JDialog { lbPrivacidad.setText("Privado"); } } - private void cargarImagenEnJlabel(javax.swing.JLabel jLabelx, String Ruta){ - jLabelx.setText(null); - if (Ruta == null || Ruta.isEmpty()){ - Ruta = "Imagenes\\ukp.png"; - } - // Carga la imagen a la variable de tipo Image - Image img = new ImageIcon(Ruta).getImage(); - // Crea un ImageIcon a partir de la imagen (obtiene las dimenciones del jLbel y escala la imagen para que entre en el mismo) - ImageIcon icono = new ImageIcon( - img.getScaledInstance(jLabelx.getWidth(), jLabelx.getHeight(), Image.SCALE_SMOOTH) - ); - // establece la imagen en el label - jLabelx.setIcon(icono); - } /////////////////////////////////////////////////////////////////////////////////////////// // Variables declaration - do not modify//GEN-BEGIN:variables diff --git a/UyTube_estacion_de_trabajo/src/Presentacion/Usuario/frmModificarUsuario.java b/UyTube_estacion_de_trabajo/src/Presentacion/Usuario/frmModificarUsuario.java index 59482c5f1d27ad44b4336f2b1ece309956384986..a3770e645dfa38e456427f807ef26082e2ff054c 100644 --- a/UyTube_estacion_de_trabajo/src/Presentacion/Usuario/frmModificarUsuario.java +++ b/UyTube_estacion_de_trabajo/src/Presentacion/Usuario/frmModificarUsuario.java @@ -1,10 +1,13 @@ package Presentacion.Usuario; import Logica.DataType.DtCanal; +import Logica.DataType.DtImagenUsuario; import Logica.DataType.DtUsuario; import Logica.Enumerados.Privacidad; import Logica.Fabrica; import Logica.Interfaces.IAdmin; +import Logica.Interfaces.IPersistenciaDeImagenes; +import Presentacion.FuncionesImagenes; import Presentacion.ListaDeReproduccion.frmModificarListaDeReproduccion; import Presentacion.Video.frmModificarVideo; import java.awt.Image; @@ -36,11 +39,11 @@ public class frmModificarUsuario extends javax.swing.JDialog { btnListaReprodiccion.setEnabled(false); desactivarCampos(); try { - cargarImagenEnJlabel(lbImg, ""); - // obtiene la instancia de sistema sys = Fabrica.getInstancia().getIAdmin(); + FuncionesImagenes.cargarImagenEnJlabel(lbImg, null); + // lista usuarios en el JList listarUsuarios(sys.listarUsuarios()); } catch (Exception e) { @@ -335,80 +338,6 @@ public class frmModificarUsuario extends javax.swing.JDialog { txtDescrpcion.setEnabled(true); } - private String seleccionarImagen() { - // Crea un JFileChooser - JFileChooser JFC = new JFileChooser(); - // crea un filtro para aceptar solo algunas extensiones - FileNameExtensionFilter filtroImagen = new FileNameExtensionFilter("JPG", "JPEG", "PNG", "jpg", "jpeg", "png"); - // Agrega el filtro al JFileChooser - JFC.setFileFilter(filtroImagen); - - // archivo seleccionado - File archivo; - // para saber si se selecciono algo o se cancelo - int resultado; - - while (true) { - // muestra el JFileChooser - resultado = JFC.showOpenDialog(this); - - // Si pasa algo que no sea el aceptar - if (resultado != JFileChooser.APPROVE_OPTION) { - return ""; - } - - // obtiene el archivo seleccionado - archivo = JFC.getSelectedFile(); - - // Si se selecciono algun archivo - if (archivo != null) { - // obtiene la ruta del archivo - String rutaArchivo = archivo.getAbsolutePath(); - // obtiene el archivo como imagen a partir de la ruta - Image img = new ImageIcon(rutaArchivo).getImage(); - - // verifica que tanto se deformará la imagen al mostrarla en un cuadrado - float deformacion; - if (img.getHeight(null) > img.getWidth(null)) { - deformacion = img.getHeight(null) / img.getWidth(null); - } else { - deformacion = img.getWidth(null) / img.getHeight(null); - } - - if (deformacion < 1.3 && deformacion >= 1) { - // si no se deforma demasiado - // devuelve la ruta absoluta - return rutaArchivo; - } else { - // si se deforma demasiado, lo avisa al usuario para que escoja otra - JOptionPane.showMessageDialog(null, - "La imagen es demasiado alta o demasiado ancha.\n" + img.getWidth(null) + "x" + img.getHeight(null), - "Problemas con la imagen", - JOptionPane.WARNING_MESSAGE - ); - } - } else { - // sino devuelve un string vacio - return ""; - } - } - } - - private void cargarImagenEnJlabel(javax.swing.JLabel jLabelx, String Ruta) { - jLabelx.setText(null); - if (Ruta == null || Ruta.isEmpty()){ - Ruta = "Imagenes\\ukp.png"; - } - // Carga la imagen a la variable de tipo Image - Image img = new ImageIcon(Ruta).getImage(); - // Crea un ImageIcon a partir de la imagen (obtiene las dimenciones del jLbel y escala la imagen para que entre en el mismo) - ImageIcon icono = new ImageIcon( - img.getScaledInstance(jLabelx.getWidth(), jLabelx.getHeight(), Image.SCALE_SMOOTH) - ); - // establece la imagen en el label - jLabelx.setIcon(icono); - } - private boolean validarNombres(String _nombre) { Pattern patronNombres = Pattern.compile("^([A-Za-zÑñÃáÉéÃÃÓóÚú]+)\\s*([A-Za-zÑñÃáÉéÃÃÓóÚú]+)\\s*([A-Za-zÑñÃáÉéÃÃÓóÚú]+)$"); Matcher mather = patronNombres.matcher(_nombre); @@ -480,10 +409,21 @@ public class frmModificarUsuario extends javax.swing.JDialog { } DtCanal c = new DtCanal(0, txtNombreCanal.getText(), txtDescrpcion.getText(), priv); sys.modificarUsuarioYCanal(u, c); - + + IPersistenciaDeImagenes pi = Fabrica.getInstancia().getIPersistenciaDeImagenes(); + if (ruta == null || ruta.equals("")){ + pi.remove(user.getNickname()); + }else{ + DtImagenUsuario dtiu = new DtImagenUsuario( + user.getNickname(), + FuncionesImagenes.pathToByteArray(ruta), + FuncionesImagenes.getNombreArchivo(ruta) + ); + pi.edit(dtiu); + } + JOptionPane.showMessageDialog(null, "Datos modificados correctamente", "OK", JOptionPane.INFORMATION_MESSAGE); dispose(); - } } } @@ -498,11 +438,16 @@ public class frmModificarUsuario extends javax.swing.JDialog { private void btnSeleccionarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSeleccionarActionPerformed //cargarImagen(lbImagen); String rutaAnterior = ruta; - ruta = seleccionarImagen(); + ruta = FuncionesImagenes.seleccionarImagen(); if (ruta.isEmpty()) { ruta = rutaAnterior; } - cargarImagenEnJlabel(lbImg, ruta); + FuncionesImagenes.cargarImagenEnJlabel( + lbImg, + FuncionesImagenes.byteArrayToImage( + FuncionesImagenes.pathToByteArray(ruta) + ) + ); }//GEN-LAST:event_btnSeleccionarActionPerformed private void btnListaReprodiccionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnListaReprodiccionActionPerformed @@ -522,8 +467,20 @@ public class frmModificarUsuario extends javax.swing.JDialog { txtApellido.setText(u.getApellido()); txtCorreo.setText(u.getCorreo()); dcFecha.setDate(u.getFechaNacimiento()); - cargarImagenEnJlabel(lbImg, u.getImagen()); - + try { + IPersistenciaDeImagenes pi = Fabrica.getInstancia().getIPersistenciaDeImagenes(); + DtImagenUsuario dtiu = pi.find(u.getNickname()); + if (dtiu == null){ + FuncionesImagenes.cargarImagenPorDefectoEnJlabel(lbImg); + }else{ + FuncionesImagenes.cargarImagenEnJlabel( + lbImg, + FuncionesImagenes.byteArrayToImage(dtiu.getImagen()) + ); + } + } catch (Exception e) { + JOptionPane.showMessageDialog(null, "Ha ocurrido un error al cargar la imagen del usuario\n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); + } } private void cargarDatosDelCanal(DtCanal c) { @@ -577,7 +534,7 @@ public class frmModificarUsuario extends javax.swing.JDialog { private void btnQuitarImagenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnQuitarImagenActionPerformed // Quitar imagen ruta = ""; - cargarImagenEnJlabel(lbImg, ruta); + FuncionesImagenes.cargarImagenPorDefectoEnJlabel(lbImg); }//GEN-LAST:event_btnQuitarImagenActionPerformed diff --git a/UyTube_estacion_de_trabajo/src/Presentacion/frmPrincipal.java b/UyTube_estacion_de_trabajo/src/Presentacion/frmPrincipal.java index 9227c567af181a7e10695e8aa67c2ef093f99a49..2591e3ea2f689fe85d55f9cbabb060ea4d3aa7c4 100644 --- a/UyTube_estacion_de_trabajo/src/Presentacion/frmPrincipal.java +++ b/UyTube_estacion_de_trabajo/src/Presentacion/frmPrincipal.java @@ -1,11 +1,19 @@ package Presentacion; +import Logica.DataType.DtImagenUsuario; +import Logica.Fabrica; import Presentacion.Categoria.*; import Presentacion.ListaDeReproduccion.*; import Presentacion.Usuario.*; import Presentacion.Video.*; import java.awt.Image; import java.awt.Toolkit; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.URISyntaxException; +import java.net.URL; import javax.swing.ImageIcon; import javax.swing.JOptionPane; @@ -23,7 +31,11 @@ public class frmPrincipal extends javax.swing.JFrame { // carga la imagen de fondo this.lbFondo.setText(null); - Image img3 = new ImageIcon("Imagenes/des.jpeg").getImage(); + // originalmente se usaba la siguiente linea: + //Image img3 = new ImageIcon("Imagenes/des.jpeg").getImage(); + // Pero para cargar la imagen que esta en el .jar se usa esta: + URL path = this.getClass().getClassLoader().getResource("Imagenes/des.jpeg"); + Image img3 = new ImageIcon(path).getImage(); ImageIcon img4 = new ImageIcon(img3.getScaledInstance(lbFondo.getWidth(), lbFondo.getHeight(), Image.SCALE_SMOOTH)); lbFondo.setIcon(img4); diff --git a/UyTube_logica/Imagenes/perfiles/JotaJota96.JPG b/UyTube_logica/Imagenes/perfiles/JotaJota96.JPG deleted file mode 100644 index 3efaaeaebf1d20cb7f712514b0cfc0096f6b0007..0000000000000000000000000000000000000000 Binary files a/UyTube_logica/Imagenes/perfiles/JotaJota96.JPG and /dev/null differ diff --git a/UyTube_logica/Imagenes/perfiles/LuC31G.jpg b/UyTube_logica/Imagenes/perfiles/LuC31G.jpg deleted file mode 100644 index f22efc5908db0af0594d76d75ae3f89ebdff93a6..0000000000000000000000000000000000000000 Binary files a/UyTube_logica/Imagenes/perfiles/LuC31G.jpg and /dev/null differ diff --git a/UyTube_logica/Imagenes/perfiles/MCBolso.jpg b/UyTube_logica/Imagenes/perfiles/MCBolso.jpg deleted file mode 100644 index 35469b84ed023de4e5a7581095434bcbf69719d1..0000000000000000000000000000000000000000 Binary files a/UyTube_logica/Imagenes/perfiles/MCBolso.jpg and /dev/null differ diff --git a/UyTube_logica/Imagenes/perfiles/camilillo15.jpg b/UyTube_logica/Imagenes/perfiles/camilillo15.jpg deleted file mode 100644 index dc36ba95eecc24c956cbaf03f53dccda2f9317bb..0000000000000000000000000000000000000000 Binary files a/UyTube_logica/Imagenes/perfiles/camilillo15.jpg and /dev/null differ diff --git a/UyTube_logica/Imagenes/perfiles/jarrieta31.jpg b/UyTube_logica/Imagenes/perfiles/jarrieta31.jpg deleted file mode 100644 index d54ec04f4eee56374821fcfb9c9928a761cbc10b..0000000000000000000000000000000000000000 Binary files a/UyTube_logica/Imagenes/perfiles/jarrieta31.jpg and /dev/null differ diff --git a/UyTube_logica/nbproject/project.properties b/UyTube_logica/nbproject/project.properties index 072bb3f216a1ee0d1875c57d3d13595dc50348a9..9665986543f9789b662f177c0338cf8f4c9111df 100644 --- a/UyTube_logica/nbproject/project.properties +++ b/UyTube_logica/nbproject/project.properties @@ -59,7 +59,7 @@ javadoc.splitindex=true javadoc.use=true javadoc.version=false javadoc.windowtitle= -main.class=Presentacion.frmPrincipal +main.class=Logica.DatosDePrueba manifest.file=manifest.mf meta.inf.dir=${src.dir}/META-INF mkdist.disabled=false diff --git a/UyTube_logica/src/JPAControllerClasses/ImagenUsuarioJpaController.java b/UyTube_logica/src/JPAControllerClasses/ImagenUsuarioJpaController.java new file mode 100644 index 0000000000000000000000000000000000000000..b2b07a95dfbb7ca3c066411f18820de47859ffa8 --- /dev/null +++ b/UyTube_logica/src/JPAControllerClasses/ImagenUsuarioJpaController.java @@ -0,0 +1,148 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package JPAControllerClasses; + +import JPAControllerClasses.exceptions.NonexistentEntityException; +import JPAControllerClasses.exceptions.PreexistingEntityException; +import Logica.Clases.ImagenUsuario; +import java.io.Serializable; +import java.util.List; +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Query; +import javax.persistence.EntityNotFoundException; +import javax.persistence.Persistence; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; + +/** + * + * @author Juan + */ +public class ImagenUsuarioJpaController implements Serializable { + + public ImagenUsuarioJpaController() { + this.emf = Persistence.createEntityManagerFactory(NombreManejador.getNombreManejador()); + } + public ImagenUsuarioJpaController(EntityManagerFactory emf) { + this.emf = emf; + } + private EntityManagerFactory emf = null; + + public EntityManager getEntityManager() { + return emf.createEntityManager(); + } + + public void create(ImagenUsuario imagenUsuario) throws PreexistingEntityException, Exception { + EntityManager em = null; + try { + em = getEntityManager(); + em.getTransaction().begin(); + em.persist(imagenUsuario); + em.getTransaction().commit(); + } catch (Exception ex) { + if (findImagenUsuario(imagenUsuario.getNickname()) != null) { + throw new PreexistingEntityException("ImagenUsuario " + imagenUsuario + " already exists.", ex); + } + throw ex; + } finally { + if (em != null) { + em.close(); + } + } + } + + public void edit(ImagenUsuario imagenUsuario) throws NonexistentEntityException, Exception { + EntityManager em = null; + try { + em = getEntityManager(); + em.getTransaction().begin(); + imagenUsuario = em.merge(imagenUsuario); + em.getTransaction().commit(); + } catch (Exception ex) { + String msg = ex.getLocalizedMessage(); + if (msg == null || msg.length() == 0) { + String id = imagenUsuario.getNickname(); + if (findImagenUsuario(id) == null) { + throw new NonexistentEntityException("The imagenUsuario with id " + id + " no longer exists."); + } + } + throw ex; + } finally { + if (em != null) { + em.close(); + } + } + } + + public void destroy(String id) throws NonexistentEntityException { + EntityManager em = null; + try { + em = getEntityManager(); + em.getTransaction().begin(); + ImagenUsuario imagenUsuario; + try { + imagenUsuario = em.getReference(ImagenUsuario.class, id); + imagenUsuario.getNickname(); + } catch (EntityNotFoundException enfe) { + throw new NonexistentEntityException("The imagenUsuario with id " + id + " no longer exists.", enfe); + } + em.remove(imagenUsuario); + em.getTransaction().commit(); + } finally { + if (em != null) { + em.close(); + } + } + } + + public List<ImagenUsuario> findImagenUsuarioEntities() { + return findImagenUsuarioEntities(true, -1, -1); + } + + public List<ImagenUsuario> findImagenUsuarioEntities(int maxResults, int firstResult) { + return findImagenUsuarioEntities(false, maxResults, firstResult); + } + + private List<ImagenUsuario> findImagenUsuarioEntities(boolean all, int maxResults, int firstResult) { + EntityManager em = getEntityManager(); + try { + CriteriaQuery cq = em.getCriteriaBuilder().createQuery(); + cq.select(cq.from(ImagenUsuario.class)); + Query q = em.createQuery(cq); + if (!all) { + q.setMaxResults(maxResults); + q.setFirstResult(firstResult); + } + return q.getResultList(); + } finally { + em.close(); + } + } + + public ImagenUsuario findImagenUsuario(String id) { + EntityManager em = getEntityManager(); + try { + return em.find(ImagenUsuario.class, id); + } finally { + em.close(); + } + } + + public int getImagenUsuarioCount() { + EntityManager em = getEntityManager(); + try { + CriteriaQuery cq = em.getCriteriaBuilder().createQuery(); + Root<ImagenUsuario> rt = cq.from(ImagenUsuario.class); + cq.select(em.getCriteriaBuilder().count(rt)); + Query q = em.createQuery(cq); + return ((Long) q.getSingleResult()).intValue(); + } finally { + em.close(); + } + } + +} diff --git a/UyTube_logica/src/Logica/Clases/ImagenUsuario.java b/UyTube_logica/src/Logica/Clases/ImagenUsuario.java new file mode 100644 index 0000000000000000000000000000000000000000..150875d982ecff937d578eb232aa87c403f69bdb --- /dev/null +++ b/UyTube_logica/src/Logica/Clases/ImagenUsuario.java @@ -0,0 +1,75 @@ +package Logica.Clases; + +import java.io.Serializable; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Lob; +import javax.persistence.Table; + +@Entity +@Table(name = "ImagenUsuario") +public class ImagenUsuario implements Serializable { + @Id + @Column(name = "id") + private String nickname; + + @Lob + @Column(name = "imagen") + private byte[] imagen; + + @Column(name = "nombreArchivo") + private String nombreArchivo; + + //******************** Constructores ******************** + public ImagenUsuario() { + } + + public ImagenUsuario(String nickname, byte[] imagen, String nombreArchivo) { + this.nickname = nickname; + this.imagen = imagen; + this.nombreArchivo = nombreArchivo; + } + + //***************** Getters y setters ***************** + public String getNickname() { + return nickname; + } + + public void setNickname(String nickname) { + this.nickname = nickname; + } + + public byte[] getImagen() { + return imagen; + } + + public void setImagen(byte[] imagen) { + this.imagen = imagen; + } + + public String getNombreArchivo() { + return nombreArchivo; + } + + public void setNombreArchivo(String nombreArchivo) { + this.nombreArchivo = nombreArchivo; + } + + public String getExtension(){ + String ret = ""; + // recorre desde el final hacia el principio hasta encontrar un '.' extrayendo la extension del archivo + for (int i = this.nombreArchivo.length() - 1; i >= 0; i--) { + if (this.nombreArchivo.charAt(i) == '.') { + break; + } + ret = this.nombreArchivo.charAt(i) + ret; + } + // si la extension obtenida es igual al nombre del archivo, entonces no se encontro ningun punto y el archivo no tienee extension + if (ret.equals(this.nombreArchivo)) { + return ""; + } + // sino devuelve la extension obtenida + return ret; + } +} diff --git a/UyTube_logica/src/Logica/Controladores/CPersistenciaDeImagenes.java b/UyTube_logica/src/Logica/Controladores/CPersistenciaDeImagenes.java new file mode 100644 index 0000000000000000000000000000000000000000..eefe9a0ceb71614d9bc3f8581bff615d6fabc0a7 --- /dev/null +++ b/UyTube_logica/src/Logica/Controladores/CPersistenciaDeImagenes.java @@ -0,0 +1,120 @@ +package Logica.Controladores; + +import JPAControllerClasses.ImagenUsuarioJpaController; +import JPAControllerClasses.exceptions.NonexistentEntityException; +import Logica.Clases.ImagenUsuario; +import Logica.DataType.DtImagenUsuario; +import Logica.Interfaces.IPersistenciaDeImagenes; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.JarURLConnection; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.logging.Level; +import java.util.logging.Logger; +import javafx.scene.effect.ImageInput; +import javax.swing.ImageIcon; + +public class CPersistenciaDeImagenes implements IPersistenciaDeImagenes { + + private static CPersistenciaDeImagenes instancia = null; + + // Constructor + private CPersistenciaDeImagenes() { + } + + // Singleton + public static CPersistenciaDeImagenes getInstancia() { + if (instancia == null) { + instancia = new CPersistenciaDeImagenes(); + } + return instancia; + } + + //**************************************************************************************** + @Override + public DtImagenUsuario find(String id) throws RuntimeException { + if ( ! exists(id)){ + return getDefaultImage(); + } + try { + ImagenUsuario iu = new ImagenUsuarioJpaController().findImagenUsuario(id); + return new DtImagenUsuario(iu.getNickname(), iu.getImagen(), iu.getNombreArchivo()); + } catch (Exception ex) { + Logger.getLogger(CPersistenciaDeImagenes.class.getName()).log(Level.SEVERE, null, ex); + throw new RuntimeException("Algo falló al intentar consultar la imagen\n" + ex.getMessage()); + } + } + + @Override + public void create(DtImagenUsuario iu) throws RuntimeException { + if (exists(iu.getNickname())) { + edit(iu); + return; + } + try { + new ImagenUsuarioJpaController().create( + new ImagenUsuario(iu.getNickname(), iu.getImagen(), iu.getNombreArchivo()) + ); + } catch (Exception ex) { + Logger.getLogger(CPersistenciaDeImagenes.class.getName()).log(Level.SEVERE, null, ex); + throw new RuntimeException("Algo falló al intentar guardar la imagen\n" + ex.getMessage()); + } + } + + //new ImagenUsuarioJpaController(). + @Override + public void edit(DtImagenUsuario iu) throws RuntimeException { + if (!exists(iu.getNickname())) { + create(iu); + return; + } + try { + new ImagenUsuarioJpaController().edit( + new ImagenUsuario(iu.getNickname(), iu.getImagen(), iu.getNombreArchivo()) + ); + } catch (Exception ex) { + Logger.getLogger(CPersistenciaDeImagenes.class.getName()).log(Level.SEVERE, null, ex); + throw new RuntimeException("Algo falló al intentar modificar la imagen\n" + ex.getMessage()); + } + } + + @Override + public void remove(String id) throws RuntimeException { + try { + new ImagenUsuarioJpaController().destroy(id); + } catch (NonexistentEntityException ex) { + Logger.getLogger(CPersistenciaDeImagenes.class.getName()).log(Level.SEVERE, null, ex); + throw new RuntimeException("Algo falló al intentar remover la imagen\n" + ex.getMessage()); + } + } + + @Override + public boolean exists(String id) throws RuntimeException { + return new ImagenUsuarioJpaController().findImagenUsuario(id) != null; + } + + @Override + public DtImagenUsuario getDefaultImage() { + try { + InputStream in = getClass().getResourceAsStream("/imagenes/ukp.png"); + //File f = new File(getClass().getResource("/imagenes/ukp.png").getFile()); + //File f = new File(connection.getJarFileURL().toURI()); //asociamos el archivo fisico + //InputStream is = new FileInputStream(f); //lo abrimos. Lo importante es que sea un InputStream + byte[] buffer = new byte[(int) in.available()]; //creamos el buffer + int readers = in.read(buffer); //leemos el archivo al buffer + + return new DtImagenUsuario("", buffer, "ukp.png"); + + } catch (IOException e) { + throw new RuntimeException(e.getMessage()); + } + + //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + + //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } +} diff --git a/UyTube_logica/src/Logica/Controladores/CUsuario.java b/UyTube_logica/src/Logica/Controladores/CUsuario.java index 4d6905db1c6ec8cf8dabccec5a4e645e4895237c..c88779de1ce208dfafc61d6b5c605e1a99d4f93f 100644 --- a/UyTube_logica/src/Logica/Controladores/CUsuario.java +++ b/UyTube_logica/src/Logica/Controladores/CUsuario.java @@ -114,7 +114,7 @@ public class CUsuario implements IUsuario { } usuarioActual.agregarVideoALista(idLista, idVideoSeleccionado, usuarioSeleccionado); } - + @Override public void altaComentario(DtComentario dtCom) { if (usuarioActual == null){ @@ -762,9 +762,12 @@ public class CUsuario implements IUsuario { usuarioSeleccionado = usuarioActual; }else{ usuarioSeleccionado = obtenerUsuarios().get(nickname); - } - if (usuarioSeleccionado == null){ - throw new RuntimeException("No se encontro ningun usuario con ese nickname"); + if (usuarioSeleccionado == null){ + throw new RuntimeException("No se encontro ningun usuario con ese nickname"); + } + if (usuarioSeleccionado.obtenerCanal().getPrivacidad() == Privacidad.PRIVADO){ + throw new RuntimeException("El canal seleccionado es privado"); + } } return usuarioSeleccionado.getDT(); } @@ -776,6 +779,11 @@ public class CUsuario implements IUsuario { this.seleccionarUsuario(nick); } DtListaDeReproduccion ret = usuarioSeleccionado.obtenerListaDeReproduccion(idLista); + if (ret.getPrivacidad() == Privacidad.PRIVADO){ + if ( ! elUsuarioSeleccionadoEsElUsuarioActual()){ + throw new RuntimeException("La lista de reproduccion seleccionada es privada"); + } + } idListaSeleccionada = idLista; return ret; } @@ -787,6 +795,11 @@ public class CUsuario implements IUsuario { this.seleccionarUsuario(nick); } DtVideo ret = usuarioSeleccionado.obtenerVideoDeCanal(idVideo); + if (ret.getPrivacidad() == Privacidad.PRIVADO){ + if ( ! elUsuarioSeleccionadoEsElUsuarioActual()){ + throw new RuntimeException("El video seleccionado es privado"); + } + } idVideoSeleccionado = idVideo; return ret; } diff --git a/UyTube_logica/src/Logica/DataType/DtImagenUsuario.java b/UyTube_logica/src/Logica/DataType/DtImagenUsuario.java new file mode 100644 index 0000000000000000000000000000000000000000..fbd5a390f5f2fda4c9a60c2d1acce73daf3781a6 --- /dev/null +++ b/UyTube_logica/src/Logica/DataType/DtImagenUsuario.java @@ -0,0 +1,49 @@ +package Logica.DataType; + +public class DtImagenUsuario { + + private String nickname; + private byte[] imagen; + private String nombreArchivo; + + public DtImagenUsuario(String nickname, byte[] imagen, String nombreArchivo) { + this.nickname = nickname; + this.imagen = imagen; + this.nombreArchivo = nombreArchivo; + } + + public String getNickname() { + return nickname; + } + + public byte[] getImagen() { + return imagen; + } + + public String getNombreArchivo() { + return nombreArchivo; + } + + public String getExtension(){ + String ret = ""; + // recorre desde el final hacia el principio hasta encontrar un '.' extrayendo la extension del archivo + for (int i = this.nombreArchivo.length() - 1; i >= 0; i--) { + if (this.nombreArchivo.charAt(i) == '.') { + break; + } + ret = this.nombreArchivo.charAt(i) + ret; + } + // si la extension obtenida es igual al nombre del archivo, entonces no se encontro ningun punto y el archivo no tienee extension + if (ret.equals(this.nombreArchivo)) { + return ""; + } + // sino devuelve la extension obtenida + return ret; + } + + @Override + public String toString() { + return "DtImagenUsuario{" + "nickname=" + nickname + ", imagen=" + imagen.length + ", nombreArchivo=" + nombreArchivo + '}'; + } + +} diff --git a/UyTube_logica/src/Logica/DatosDePrueba.java b/UyTube_logica/src/Logica/DatosDePrueba.java index 1ce8eec8764429f938b2108d86a3b158c6c27437..8dfe312c33b37007756994c3bccaa8e3e5af11bd 100644 --- a/UyTube_logica/src/Logica/DatosDePrueba.java +++ b/UyTube_logica/src/Logica/DatosDePrueba.java @@ -1,7 +1,5 @@ package Logica; -import Logica.DataType.DtValoracion; -import Logica.Enumerados.TipoValoracion; import Logica.Interfaces.IAdmin; import Logica.Interfaces.IUsuario; import java.util.ArrayList; @@ -11,10 +9,15 @@ public class DatosDePrueba { private static IUsuario usuSys = null; public static void main(String[] args) { - Fabrica f = Fabrica.getInstancia(); - usuSys = f.getIUsuario(); + String mensajeEasterEgg = "Hola! gracias por ejecutarme, pero solo soy una libreria"; + //Fabrica f = Fabrica.getInstancia(); try { - + /* + usuSys = f.getIUsuario(); + adminSys = f.getIAdmin(); + */ + javax.swing.JOptionPane.showMessageDialog(null, mensajeEasterEgg,"", javax.swing.JOptionPane.INFORMATION_MESSAGE); + System.out.println(mensajeEasterEgg); } catch (Exception e) { System.out.println("//////////////////////////"); System.out.println(e.getMessage()); diff --git a/UyTube_logica/src/Logica/Fabrica.java b/UyTube_logica/src/Logica/Fabrica.java index 2405684b805827ab1ced98afd8aaaaf5b30a44ce..96a14c94e5cd54450845b180a06a0f1d9a558b1b 100644 --- a/UyTube_logica/src/Logica/Fabrica.java +++ b/UyTube_logica/src/Logica/Fabrica.java @@ -1,8 +1,10 @@ package Logica; import Logica.Controladores.CAdmin; +import Logica.Controladores.CPersistenciaDeImagenes; import Logica.Controladores.CUsuario; import Logica.Interfaces.IAdmin; +import Logica.Interfaces.IPersistenciaDeImagenes; import Logica.Interfaces.IUsuario; @@ -30,4 +32,9 @@ public class Fabrica { public IUsuario getIUsuario(){ return CUsuario.getInstancia(); } + + /* Crea una unicia instancia del controlador CPersistenciaDeImagenes */ + public IPersistenciaDeImagenes getIPersistenciaDeImagenes(){ + return CPersistenciaDeImagenes.getInstancia(); + } } diff --git a/UyTube_logica/src/Logica/Interfaces/IPersistenciaDeImagenes.java b/UyTube_logica/src/Logica/Interfaces/IPersistenciaDeImagenes.java new file mode 100644 index 0000000000000000000000000000000000000000..ea6350dcc14d978590a719b86ff948cf91324c39 --- /dev/null +++ b/UyTube_logica/src/Logica/Interfaces/IPersistenciaDeImagenes.java @@ -0,0 +1,53 @@ +package Logica.Interfaces; + +import Logica.DataType.DtImagenUsuario; + +/** + * Esta interfaz permite realizar acciones CRUD de las imágenes de perfil de los + * usuarios + * + * @author Juan + */ +public interface IPersistenciaDeImagenes { + + /** + * Devuelve los datos de la imagen del usuario con ese ID + * + * @param id ID del usuario del cual se quiere obtener la imagen + * @return Datos del usuario si existe, o null si no se encontro + */ + public DtImagenUsuario find(String id) throws RuntimeException; + + /** + * Persiste una nueva imagen de usuario + * + * @param iu Datos de la imagen del usuario + */ + public void create(DtImagenUsuario iu) throws RuntimeException; + + /** + * Modifica los datos de la imagen de usuario + * + * @param iu Datos de la imagen del usuario + */ + public void edit(DtImagenUsuario iu) throws RuntimeException; + + /** + * Elimina la imagen del usuario + * + * @param id ID del usuario + */ + public void remove(String id) throws RuntimeException; + + /** + * Comprueba si el usuario con el ID indicado posee imagen de perfil + * persistida + * + * @param id ID del usuario + * @return true si el usuario tiene una imagen de perfil persistida + */ + public boolean exists(String id) throws RuntimeException; + + public DtImagenUsuario getDefaultImage(); + +} diff --git a/UyTube_logica/src/META-INF/persistence.xml b/UyTube_logica/src/META-INF/persistence.xml index aa020d7a75891bd8952307dfcedf3e57ed4a037b..062a3e0d5ecbfc8272ae8459f14997f9a9547ec7 100644 --- a/UyTube_logica/src/META-INF/persistence.xml +++ b/UyTube_logica/src/META-INF/persistence.xml @@ -12,6 +12,7 @@ <class>Logica.Clases.Usuario</class> <class>Logica.Clases.Valoracion</class> <class>Logica.Clases.Video</class> + <class>Logica.Clases.ImagenUsuario</class> <properties> <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/UyTube"/> <property name="javax.persistence.jdbc.user" value="postgres"/> diff --git a/UyTube_logica/src/imagenes/ukp.png b/UyTube_logica/src/imagenes/ukp.png new file mode 100644 index 0000000000000000000000000000000000000000..af5b18b0d40eb11485bc8789da61205eb0536253 Binary files /dev/null and b/UyTube_logica/src/imagenes/ukp.png differ diff --git a/UyTube_logica/ukp.png b/UyTube_logica/ukp.png new file mode 100644 index 0000000000000000000000000000000000000000..d95719e7867f00087bc4798aacd937eb5237f1bd Binary files /dev/null and b/UyTube_logica/ukp.png differ diff --git a/UyTube_web/libreria/UyTube_logica.jar b/UyTube_web/libreria/UyTube_logica.jar index c9c9e50bd4f8fe8e5751d49d04ace1b1d9dd1c02..cb2f4ed6ea79fef7158ecddef00f8c964845c9c3 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/Funciones/Funciones.java b/UyTube_web/src/java/Funciones/Funciones.java index d423f1b7e7d9e2f122768885e6f8f9fcc5a6b4a9..2e579e3da26ad60ff9dc6bde4d1dc73a7b923228 100644 --- a/UyTube_web/src/java/Funciones/Funciones.java +++ b/UyTube_web/src/java/Funciones/Funciones.java @@ -1,13 +1,16 @@ package Funciones; +import java.util.Map; + /** * * @author Juan */ public class Funciones { - + /** * Extrae el ID del video + * * @param URLYoutube URL del video de Youtube * @return ID del video */ @@ -16,28 +19,30 @@ public class Funciones { String idYoutube = ""; String urlDT = URLYoutube; int i = 0; - i = URLYoutube.indexOf("v=") +2; - + i = URLYoutube.indexOf("v=") + 2; + for (; i < urlDT.length(); i++) { - if (urlDT.charAt(i)=='&') { + if (urlDT.charAt(i) == '&') { break; } idYoutube += urlDT.charAt(i); } return idYoutube; } - + /** * Enlace para embeber video en una página + * * @param idYoutube ID del video de Youtube * @return En lace para embeber video */ public static String obtenerEnlaceEmbebido(String idYoutube) { return "https://www.youtube.com/embed/" + idYoutube; } - + /** * Obtiene la url de la miniatura del video original en YouTube + * * @param idYoutube ID del video de Youtube * @param tamanio Tamaño de la imagen [1 a 4] * @return URL de la miniatura del video @@ -50,7 +55,7 @@ public class Funciones { http://img.youtube.com/vi/VideoID/sddefault.jpg */ String strTamanio = "/default.jpg"; - switch (tamanio){ + switch (tamanio) { case 1: strTamanio = "/default.jpg"; break; @@ -72,4 +77,65 @@ public class Funciones { java.sql.Date ret = new java.sql.Date(today.getTime()); return ret; } + + public static void showLog(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) { + try { + String inicio = "-------- " + request.getMethod() + " " + request.getRequestURI() + " --------"; + System.out.println(inicio); + + if (request.getParameterMap().size() > 0) { + System.out.println("Atributos:"); + for (Map.Entry<String, String[]> it : request.getParameterMap().entrySet()) { + if (it.getValue().length > 0) { + for (int i = 0; i < it.getValue().length; i++) { + System.out.println(it.getKey() + ": '" + it.getValue()[i] + "'"); + } + } else { + System.out.println(it.getKey() + ": '''"); + } + } + } else { + System.out.println("No hay parametros"); + } + for (int i = 0; i < inicio.length(); i++) { + System.out.print("-"); + } + System.out.println(""); + } catch (Exception e) { + System.out.println("---- Error al intentar mostrar el log ----"); + System.out.println(e.getMessage()); + System.out.println("------------------------------------------"); + } + } + + public static void showLog(String titulo, String log) { + try { + if (titulo == null) { + titulo = "No hay titulo"; + } + if (log == null) { + log = "No hay mensaje"; + } + titulo = "---- " + titulo + " ----"; + + System.out.println(titulo); + System.out.println(log); + for (int i = 0; i < titulo.length(); i++) { + System.out.print("-"); + } + System.out.println(""); + } catch (Exception e) { + System.out.println(""); + System.out.println("///// No se pudo mostrar el log ////"); + System.out.println(""); + } + } + + public static void showLog(Exception e) { + System.out.println(); + System.out.println("//////////// Exception ////////////"); + System.out.println(e.getMessage()); + System.out.println("///////////////////////////////////"); + } + } diff --git a/UyTube_web/src/java/com/uytube/AgregarVideoAListaReproduccion.java b/UyTube_web/src/java/com/uytube/AgregarVideoAListaReproduccion.java index 98c8d82423ff642591dfab7a17f6e778f2930123..2bfea0bc19d1cb75d139fd5ab919486b7e78551f 100644 --- a/UyTube_web/src/java/com/uytube/AgregarVideoAListaReproduccion.java +++ b/UyTube_web/src/java/com/uytube/AgregarVideoAListaReproduccion.java @@ -9,7 +9,6 @@ import Logica.DataType.DtUsuario; import Logica.Fabrica; import Logica.Interfaces.IUsuario; import java.io.IOException; -import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; @@ -26,8 +25,20 @@ public class AgregarVideoAListaReproduccion extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); + + if (!sys.sesionIniciada()){ + String msj = "No puedes acceder a esta página"; + Funciones.Funciones.showLog("Acceso denegado", msj); + RequestDispatcher rd; //objeto para despachar + request.setAttribute("mensajeError", msj); + rd = request.getRequestDispatcher("/401.jsp"); + rd.forward(request, response); + return; + } + String pIDVideo = request.getParameter("idvideo"); String pIDLista = request.getParameter("idlista"); int IDVideo = Integer.valueOf(pIDVideo); @@ -40,9 +51,7 @@ public class AgregarVideoAListaReproduccion extends HttpServlet { response.sendRedirect("lista-consultar?id="+IDLista); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); diff --git a/UyTube_web/src/java/com/uytube/AltaListaReproduccion.java b/UyTube_web/src/java/com/uytube/AltaListaReproduccion.java index 3698c13332d793d37a4b77fc3d9325224fdab7d5..4b5aacf3c6bd6dc9ad215feef9f95877bf3ad277 100644 --- a/UyTube_web/src/java/com/uytube/AltaListaReproduccion.java +++ b/UyTube_web/src/java/com/uytube/AltaListaReproduccion.java @@ -12,7 +12,6 @@ import Logica.Enumerados.TipoListaDeReproduccion; import Logica.Fabrica; import Logica.Interfaces.IUsuario; import java.io.IOException; -import java.io.PrintWriter; import java.util.ArrayList; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; @@ -38,9 +37,20 @@ public class AltaListaReproduccion extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - + Funciones.Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); + + if (!sys.sesionIniciada()){ + String msj = "No puedes acceder a esta página"; + Funciones.Funciones.showLog("Acceso denegado", msj); + RequestDispatcher rd; //objeto para despachar + request.setAttribute("mensajeError", msj); + rd = request.getRequestDispatcher("/401.jsp"); + rd.forward(request, response); + return; + } + boolean sesionIniciada = sys.sesionIniciada(); ArrayList<String> cate = sys.listarCategorias(); @@ -51,9 +61,7 @@ public class AltaListaReproduccion extends HttpServlet { rd = request.getRequestDispatcher("/AltaListaReproduccion.jsp"); rd.forward(request, response); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); @@ -73,12 +81,23 @@ public class AltaListaReproduccion extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); try { + IUsuario sys = Fabrica.getInstancia().getIUsuario(); + + if (!sys.sesionIniciada()){ + String msj = "No puedes acceder a esta página"; + Funciones.Funciones.showLog("Acceso denegado", msj); + RequestDispatcher rd; //objeto para despachar + request.setAttribute("mensajeError", msj); + rd = request.getRequestDispatcher("/401.jsp"); + rd.forward(request, response); + return; + } + String pNombreLista = request.getParameter("nombreL"); String pPrivacidad = request.getParameter("privacidad_1"); String pCategoria = request.getParameter("categoria"); - - IUsuario sys = Fabrica.getInstancia().getIUsuario(); DtUsuario usu = sys.obtenerUsuarioActual(); @@ -103,9 +122,7 @@ public class AltaListaReproduccion extends HttpServlet { response.sendRedirect("lista-consultar?id=" + idNuevaLista); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); diff --git a/UyTube_web/src/java/com/uytube/AltaUsuario.java b/UyTube_web/src/java/com/uytube/AltaUsuario.java index 0331399b5666e064af922a9c8f9ee4a14391e55c..1526b110b1877a808043e70abb2a763f9aa74218 100644 --- a/UyTube_web/src/java/com/uytube/AltaUsuario.java +++ b/UyTube_web/src/java/com/uytube/AltaUsuario.java @@ -6,28 +6,27 @@ package com.uytube; import Logica.DataType.DtCanal; +import Logica.DataType.DtImagenUsuario; import Logica.DataType.DtUsuario; import Logica.Enumerados.Filtrado; import Logica.Enumerados.Privacidad; import Logica.Fabrica; import Logica.Interfaces.IUsuario; import java.io.IOException; -import java.io.PrintWriter; +import java.io.InputStream; +import java.nio.file.Paths; import java.text.SimpleDateFormat; import java.text.ParseException; import java.util.Date; -import java.util.Formatter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; +import javax.servlet.annotation.MultipartConfig; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.Part; -/** - * - * @author administrador - */ +@MultipartConfig public class AltaUsuario extends HttpServlet { // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> @@ -42,14 +41,20 @@ public class AltaUsuario extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); try { + IUsuario sys = Fabrica.getInstancia().getIUsuario(); + + if (sys.sesionIniciada()){ + response.sendRedirect(""); + return; + } + RequestDispatcher rd; //objeto para despachar rd = request.getRequestDispatcher("/AltaUsuario.jsp"); rd.forward(request, response); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); @@ -69,6 +74,7 @@ public class AltaUsuario extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); try { String pNickname = request.getParameter("nickname"); String pNombre = request.getParameter("nombre"); @@ -106,14 +112,22 @@ public class AltaUsuario extends HttpServlet { sys.altaUsuarioCanal(Usu, CanUsu); DtUsuario nuevoUsuario = sys.obtenerUsuarioActual(); + Part partImagen = request.getPart("imagen"); + String nombreArchivo = Paths.get(partImagen.getSubmittedFileName()).getFileName().toString(); + InputStream archivoContenido = partImagen.getInputStream(); + if (archivoContenido.available() > 0) { + byte[] byteArr = new byte[archivoContenido.available()]; + archivoContenido.read(byteArr); + DtImagenUsuario dtiu = new DtImagenUsuario(nuevoUsuario.getNickname(), byteArr, nombreArchivo); + Fabrica.getInstancia().getIPersistenciaDeImagenes().create(dtiu); + } + request.getSession().setMaxInactiveInterval(14400); request.getSession().setAttribute("usuario", nuevoUsuario); response.sendRedirect("/uytube/usuario-consultar?id=" + Usu.getNickname()); - + } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); diff --git a/UyTube_web/src/java/com/uytube/AltaVideo.java b/UyTube_web/src/java/com/uytube/AltaVideo.java index e612c1bc16338f3536893627a553256534a6d92f..e897bc898cfabc82e46e960dfc618c55fb118d3c 100644 --- a/UyTube_web/src/java/com/uytube/AltaVideo.java +++ b/UyTube_web/src/java/com/uytube/AltaVideo.java @@ -10,7 +10,6 @@ import Logica.Enumerados.Privacidad; import Logica.Fabrica; import Logica.Interfaces.IUsuario; import java.io.IOException; -import java.io.PrintWriter; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; @@ -39,8 +38,20 @@ public class AltaVideo extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); + + if (!sys.sesionIniciada()){ + String msj = "No puedes acceder a esta página"; + Funciones.Funciones.showLog("Acceso denegado", msj); + RequestDispatcher rd; //objeto para despachar + request.setAttribute("mensajeError", msj); + rd = request.getRequestDispatcher("/401.jsp"); + rd.forward(request, response); + return; + } + boolean sesionIniciada = sys.sesionIniciada(); ArrayList<String> cate = sys.listarCategorias(); @@ -51,9 +62,7 @@ public class AltaVideo extends HttpServlet { rd = request.getRequestDispatcher("/AltaVideo.jsp"); rd.forward(request, response); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); @@ -73,9 +82,20 @@ public class AltaVideo extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - + Funciones.Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); + + if (!sys.sesionIniciada()){ + String msj = "No puedes acceder a esta página"; + Funciones.Funciones.showLog("Acceso denegado", msj); + RequestDispatcher rd; //objeto para despachar + request.setAttribute("mensajeError", msj); + rd = request.getRequestDispatcher("/401.jsp"); + rd.forward(request, response); + return; + } + String pNombre = request.getParameter("nombre"); String pDuracion = request.getParameter("duracion"); String pUrl = request.getParameter("url"); @@ -116,9 +136,7 @@ public class AltaVideo extends HttpServlet { response.sendRedirect("/uytube/video-consultar?id=" + idNuevoVideo); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); diff --git a/UyTube_web/src/java/com/uytube/BorrarUsuario.java b/UyTube_web/src/java/com/uytube/BorrarUsuario.java index 4c1471468dc5596c3f59487a3a98a5882d10e908..9a3851eaa30a992ab3084e1d632e93e944be3197 100644 --- a/UyTube_web/src/java/com/uytube/BorrarUsuario.java +++ b/UyTube_web/src/java/com/uytube/BorrarUsuario.java @@ -5,11 +5,9 @@ */ package com.uytube; -import Logica.Clases.Usuario; import Logica.Fabrica; import Logica.Interfaces.IUsuario; import java.io.IOException; -import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; @@ -31,8 +29,20 @@ public class BorrarUsuario extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); + + if (!sys.sesionIniciada()){ + String msj = "No puedes realizar esta acción"; + Funciones.Funciones.showLog("Acceso denegado", msj); + RequestDispatcher rd; //objeto para despachar + request.setAttribute("mensajeError", msj); + rd = request.getRequestDispatcher("/401.jsp"); + rd.forward(request, response); + return; + } + sys.bajaUsuario(); request.getSession().invalidate(); @@ -40,9 +50,7 @@ public class BorrarUsuario extends HttpServlet { rd = request.getRequestDispatcher("/"); rd.forward(request, response); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); diff --git a/UyTube_web/src/java/com/uytube/Buscar.java b/UyTube_web/src/java/com/uytube/Buscar.java index e53e1ea69486855cd289a428a737c7a11676fbd0..aaa34a783966d513cd623be2c29c2f91cdeb014b 100644 --- a/UyTube_web/src/java/com/uytube/Buscar.java +++ b/UyTube_web/src/java/com/uytube/Buscar.java @@ -35,6 +35,7 @@ public class Buscar extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); //----------------------------------------------------- @@ -45,14 +46,6 @@ public class Buscar extends HttpServlet { //------------------------------------------------------ ArrayList<Object> Ret = null; - System.out.println("-------------------------"); - System.out.println("Busqueda a realizar con los siguientes parametros"); - System.out.println("categoria: '" + Categoria + "'"); - System.out.println("texto: '" + Texto + "'"); - System.out.println("filtro: '" + Filtro + "'"); - System.out.println("orden: '" + Orden + "'"); - System.out.println("-------------------------"); - if (Categoria == null || Categoria.equalsIgnoreCase("")) { Filtrado Fil = Filtrado.TODO; Ordenacion ord = Ordenacion.FECHA_DESCENDENTE; @@ -60,13 +53,13 @@ public class Buscar extends HttpServlet { if (Filtro != null && Filtro.equalsIgnoreCase("CANALES")) { Fil = Filtrado.CANALES; } - if (Filtro != null && (Filtro.equalsIgnoreCase("LISTAS DE REPRODUCCION") || Filtro.equalsIgnoreCase("LISTAS DE REPRODUCCION") || Filtro.equalsIgnoreCase("LISTAS DE REPRODUCCIóN") || Filtro.equalsIgnoreCase("LISTAS_DE_REPRODUCCIÓN"))) { + if (Filtro != null && (Filtro.equalsIgnoreCase("LISTAS DE REPRODUCCION") || Filtro.equalsIgnoreCase("LISTAS_DE_REPRODUCCION") || Filtro.equalsIgnoreCase("LISTAS DE REPRODUCCIóN") || Filtro.equalsIgnoreCase("LISTAS_DE_REPRODUCCIÓN"))) { Fil = Filtrado.LISTAS_DE_REPRODUCCION; } if (Filtro != null && Filtro.equalsIgnoreCase("VIDEOS")) { Fil = Filtrado.VIDEOS; } - if (Orden != null && Orden.equalsIgnoreCase("ALFABETICO")) { + if (Orden != null && (Orden.equalsIgnoreCase("ALFABÉTICO") || Orden.equalsIgnoreCase("ALFABETICO"))) { ord = Ordenacion.ALFABETICA_ASCENDENTE; } @@ -79,18 +72,13 @@ public class Buscar extends HttpServlet { Texto = Texto.replaceAll(comilla, vacio); } - System.out.println("texto a buscar: '" + Texto + "'"); - System.out.println("Filtro a utilizar: " + Fil); - System.out.println("Orden a utilizar: " + ord); - Ret = sys.buscar(Texto, Fil, ord); } else { - System.out.println("Categoria a buscar: " + Categoria); Categoria = Categoria.toUpperCase(); Ret = sys.buscar(Categoria); } - System.out.println("Cantidad de resultados a devolver: " + Ret.size()); - + Funciones.Funciones.showLog("Cantidad de resultados a devolver: ", String.valueOf(Ret.size())); + request.setAttribute("Lista", Ret); RequestDispatcher rd; //objeto para despachar @@ -98,9 +86,7 @@ public class Buscar extends HttpServlet { rd.forward(request, response); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); diff --git a/UyTube_web/src/java/com/uytube/CerrarSesion.java b/UyTube_web/src/java/com/uytube/CerrarSesion.java index 4f12528fffda75908a357f55068ebc888b7579a4..4fb1023c7462a0d6ba35d5d61fdebdea9acc21de 100644 --- a/UyTube_web/src/java/com/uytube/CerrarSesion.java +++ b/UyTube_web/src/java/com/uytube/CerrarSesion.java @@ -32,6 +32,7 @@ public class CerrarSesion extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); @@ -46,9 +47,7 @@ public class CerrarSesion extends HttpServlet { } response.sendRedirect("/uytube/"); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); diff --git a/UyTube_web/src/java/com/uytube/ConsultaListaReproducion.java b/UyTube_web/src/java/com/uytube/ConsultaListaReproducion.java index 50e2dbe68f28d6346bd7a8dc3175070fa95d0314..2f5e822474568e52e649e11bf26d3b6877683e9a 100644 --- a/UyTube_web/src/java/com/uytube/ConsultaListaReproducion.java +++ b/UyTube_web/src/java/com/uytube/ConsultaListaReproducion.java @@ -10,7 +10,6 @@ import Logica.DataType.DtVideo; import Logica.Fabrica; import Logica.Interfaces.IUsuario; import java.io.IOException; -import java.io.PrintWriter; import java.util.ArrayList; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; @@ -36,6 +35,7 @@ public class ConsultaListaReproducion extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); boolean sesionIniciada = sys.sesionIniciada(); @@ -64,9 +64,7 @@ public class ConsultaListaReproducion extends HttpServlet { rd.forward(request, response); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); diff --git a/UyTube_web/src/java/com/uytube/ConsultaUsuario.java b/UyTube_web/src/java/com/uytube/ConsultaUsuario.java index 79ff8c7cc62fd44e86a8137b74c199b584a5d504..1010dd1d071338f0db233eec746bb9f4ce48eae2 100644 --- a/UyTube_web/src/java/com/uytube/ConsultaUsuario.java +++ b/UyTube_web/src/java/com/uytube/ConsultaUsuario.java @@ -10,6 +10,7 @@ import Logica.DataType.DtListaDeReproduccion; import Logica.DataType.DtUsuario; import Logica.DataType.DtVideo; import Logica.Fabrica; +import Logica.Interfaces.IPersistenciaDeImagenes; import Logica.Interfaces.IUsuario; import java.io.IOException; import java.util.ArrayList; @@ -36,6 +37,7 @@ public class ConsultaUsuario extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); String nick = request.getParameter("id"); @@ -72,9 +74,7 @@ public class ConsultaUsuario extends HttpServlet { rd.forward(request, response); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); diff --git a/UyTube_web/src/java/com/uytube/ConsultaVideo.java b/UyTube_web/src/java/com/uytube/ConsultaVideo.java index f697e5fc9b5105bf096384ad52b3deb06905c32e..1dba3d2cbacf10ea27cb8de04fadf6d905d02b64 100644 --- a/UyTube_web/src/java/com/uytube/ConsultaVideo.java +++ b/UyTube_web/src/java/com/uytube/ConsultaVideo.java @@ -3,12 +3,12 @@ package com.uytube; import Funciones.Funciones; import Logica.DataType.DtCanal; import Logica.DataType.DtComentario; +import Logica.DataType.DtListaDeReproduccion; import Logica.DataType.DtUsuario; import Logica.DataType.DtValoracion; import Logica.DataType.DtVideo; import Logica.Enumerados.TipoValoracion; import Logica.Fabrica; -import Logica.Interfaces.IAdmin; import Logica.Interfaces.IUsuario; import java.io.IOException; import java.text.SimpleDateFormat; @@ -32,11 +32,12 @@ public class ConsultaVideo extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); String strIDVideo = request.getParameter("id"); int idVideo = Integer.valueOf(strIDVideo); - + DtUsuario usuario = sys.obtenerPropietarioDeVideo(idVideo); sys.seleccionarUsuario(usuario.getNickname()); DtCanal canal = sys.obtenerCanalDeUsuario(); @@ -46,15 +47,19 @@ public class ConsultaVideo extends HttpServlet { ArrayList<DtValoracion> valoraciones = null; boolean sesionIniciada = sys.sesionIniciada(); boolean propietarioDelVideo = false; + ArrayList<DtListaDeReproduccion> listas = null; if (sesionIniciada) { propietarioDelVideo = usuario.getNickname().equals(sys.obtenerUsuarioActual().getNickname()); valoracionDada = sys.obtenerValoracionDada(); if (propietarioDelVideo){ - valoraciones = sys.obtenerValoracionesDeVideo(); + valoraciones = sys.obtenerValoracionesDeVideo(); } + sys.seleccionarUsuario(sys.obtenerUsuarioActual().getNickname()); + listas = sys.listarListasDeReproduccionDeUsuario(true); + sys.seleccionarUsuario(sys.obtenerPropietarioDeVideo(idVideo).getNickname()); } - String htmlComentarios = htmlDeSeccionDeComentarios(comentarios, obtenerImagenesDeUsuarios(comentarios), sesionIniciada); + String htmlComentarios = htmlDeSeccionDeComentarios(comentarios, sesionIniciada); // no se si la siguiente linea es necesaria, pero por las dudas la pongo, para no dejar incoherencias en la logica sys.seleccionarUsuario(usuario.getNickname()); request.setAttribute("usuario", usuario); @@ -65,13 +70,12 @@ public class ConsultaVideo extends HttpServlet { request.setAttribute("propietarioDelVideo", propietarioDelVideo); request.setAttribute("valoracionDada", valoracionDada); request.setAttribute("valoraciones", valoraciones); + request.setAttribute("listas", listas); RequestDispatcher rd; //objeto para despachar rd = request.getRequestDispatcher("/ConsultaVideo.jsp"); rd.forward(request, response); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); @@ -90,6 +94,7 @@ public class ConsultaVideo extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); String accion = request.getParameter("accion"); @@ -202,7 +207,7 @@ public class ConsultaVideo extends HttpServlet { sys.altaComentario(dtc, idComentario); } // se obtienen los comentarios y se genera el HTML para actualizar la p'pagina ArrayList<DtComentario> comentarios = sys.listarComentariosDeVideo(); - String htmlComentarios = htmlDeSeccionDeComentarios(comentarios, obtenerImagenesDeUsuarios(comentarios), true); + String htmlComentarios = htmlDeSeccionDeComentarios(comentarios, true); // la funcion 'obtenerImagenesDeUsuarios' selecciona usuarios asi que por las dudas lo vuelvo a seleccionar para que la logica quede coherente sys.seleccionarUsuario(usuarioDuenioDelVideo.getNickname()); respuesta = htmlComentarios; @@ -210,18 +215,36 @@ public class ConsultaVideo extends HttpServlet { break; } // ---- Acciones relacionadas a AGREGAR VIDEO A LISTA DE REPRODUCCION---- - case "agregarALista": - /* + case "agregarALista":{ + int idVideo = Integer.valueOf(request.getParameter("idVideo")); int idLista = Integer.valueOf(request.getParameter("idLista")); sys.seleccionarUsuario(sys.obtenerPropietarioDeVideo(idVideo).getNickname()); + sys.seleccionarVideo(idVideo); sys.agregarVideoAListaDeReproduccion(idLista); - */ - respuesta = "Esta funcionalidad no ha sido implementada aun..."; + + + respuesta = "ok"; + response.getWriter().write(respuesta); + break; + } + case "quitarDeLista":{ + + int idVideo = Integer.valueOf(request.getParameter("idVideo")); + int idLista = Integer.valueOf(request.getParameter("idLista")); + + sys.seleccionarUsuario(sys.obtenerUsuarioActual().getNickname()); + sys.seleccionarListaDeReproduccion(idLista); + sys.quitarVideoDeListaDeReproduccion(idVideo); + sys.seleccionarUsuario(sys.obtenerPropietarioDeVideo(idVideo).getNickname()); + + respuesta = "ok"; response.getWriter().write(respuesta); break; - case "listarValoraciones": + } + + case "listarValoraciones":{ int idVideo = Integer.valueOf(request.getParameter("idVideo")); respuesta = ""; sys.seleccionarVideo(idVideo); @@ -231,13 +254,12 @@ public class ConsultaVideo extends HttpServlet { } response.getWriter().write(respuesta); break; + } default: break; } } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); @@ -256,29 +278,14 @@ public class ConsultaVideo extends HttpServlet { }// </editor-fold> - private ArrayList<String> obtenerImagenesDeUsuarios(ArrayList<DtComentario> comentarios){ - ArrayList<String> ret = new ArrayList(); - IUsuario sys = Fabrica.getInstancia().getIUsuario(); - String img; - for (DtComentario c : comentarios){ - img = sys.seleccionarUsuario(c.getNickname()).getImagen(); - if (img == null || img.equals("")){ - img = "imagenes/ukp.png"; - } - ret.add(img); - } - return ret; - } - - private String htmlDeSeccionDeComentarios(ArrayList<DtComentario> comentarios, ArrayList<String> imagenes, boolean mostrarBotonResponder){ + private String htmlDeSeccionDeComentarios(ArrayList<DtComentario> comentarios, boolean mostrarBotonResponder){ if (comentarios == null || comentarios.isEmpty()){ return ""; } String ret = ""; DtComentario c = comentarios.remove(0); - String imgPerfil = "imagenes/ukp.png"; - if ( ! imagenes.isEmpty()) imgPerfil = imagenes.remove(0); + String imgPerfil = "usuario-imagen?id=" + c.getNickname(); String strFecha = new SimpleDateFormat("dd/MM/yyyy").format(c.getFecha()); ret += " <div class=\"media\">"; @@ -297,14 +304,14 @@ public class ConsultaVideo extends HttpServlet { ret += " <br>"; if ( (!comentarios.isEmpty()) && (comentarios.get(0).getNivelSubComentario() > c.getNivelSubComentario())){ - ret += htmlDeSeccionDeComentarios(comentarios, imagenes, mostrarBotonResponder); + ret += htmlDeSeccionDeComentarios(comentarios, mostrarBotonResponder); } ret += " </div>"; ret += "</div>"; if ( (!comentarios.isEmpty()) && (comentarios.get(0).getNivelSubComentario() == c.getNivelSubComentario())){ - ret += htmlDeSeccionDeComentarios(comentarios, imagenes, mostrarBotonResponder); + ret += htmlDeSeccionDeComentarios(comentarios, mostrarBotonResponder); } return ret; } diff --git a/UyTube_web/src/java/com/uytube/ImagenUsuario.java b/UyTube_web/src/java/com/uytube/ImagenUsuario.java new file mode 100644 index 0000000000000000000000000000000000000000..d3cc8e940fb8425e8f4ec651cdcf9351c0a8db00 --- /dev/null +++ b/UyTube_web/src/java/com/uytube/ImagenUsuario.java @@ -0,0 +1,75 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.uytube; + +import Logica.DataType.DtImagenUsuario; +import Logica.Fabrica; +import Logica.Interfaces.IPersistenciaDeImagenes; +import java.io.IOException; +import java.io.OutputStream; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * + * @author Juan + */ +@WebServlet(name = "ImagenUsuario", urlPatterns = {"/usuario-imagen"}) +public class ImagenUsuario extends HttpServlet { + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); + try { + IPersistenciaDeImagenes pi = Fabrica.getInstancia().getIPersistenciaDeImagenes(); + String id = request.getParameter("id"); + if (id == null) id = ""; + + byte[] byteArr; + + DtImagenUsuario iu = pi.find(id); + byteArr = iu.getImagen(); + + + //byte[] byteArr = ImagePersistController.pathToByteArray("C:\\cnf.jpg"); + + response.setContentType("image/" + iu.getExtension()); + OutputStream sos = response.getOutputStream(); + sos.write(byteArr); + sos.flush(); + sos.close(); + + } catch (Exception e) { + Funciones.Funciones.showLog(e); + RequestDispatcher rd; //objeto para despachar + request.setAttribute("mensajeError", e.getMessage()); + rd = request.getRequestDispatcher("/404.jsp"); + rd.forward(request, response); + } + } + + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// </editor-fold> + +} diff --git a/UyTube_web/src/java/com/uytube/IniciarSesion.java b/UyTube_web/src/java/com/uytube/IniciarSesion.java index dd32f394437b58733701148d635c4ba6185af032..80285d53b6fd883015de63cac3d87876dcd2de54 100644 --- a/UyTube_web/src/java/com/uytube/IniciarSesion.java +++ b/UyTube_web/src/java/com/uytube/IniciarSesion.java @@ -9,7 +9,6 @@ import Logica.DataType.DtUsuario; import Logica.Fabrica; import Logica.Interfaces.IUsuario; import java.io.IOException; -import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; @@ -36,16 +35,24 @@ public class IniciarSesion extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); + + + if (sys.sesionIniciada()){ + response.sendRedirect(""); + return; + } DtUsuario usuario = (DtUsuario) request.getSession().getAttribute("usuario"); boolean sesReq = usuario != null; boolean sesSys = sys.sesionIniciada(); - System.out.println("Intento de carga de pagina /inicio-sesion"); - System.out.println("Sesion en req: " + sesReq); - System.out.println("Sesion en sys: " + sesSys); + String tit = "Intento de carga de pagina /inicio-sesion"; + String msj = "Sesion en req: " + sesReq; + msj += "\nSesion en sys: " + sesSys; + Funciones.Funciones.showLog(tit, msj); /** * Descripción del siguiente IF sesReq sesSys accion a realizar 0 0 @@ -71,9 +78,7 @@ public class IniciarSesion extends HttpServlet { rd = request.getRequestDispatcher("/IniciarSesion.jsp"); rd.forward(request, response); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); @@ -92,6 +97,7 @@ public class IniciarSesion extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); @@ -117,9 +123,7 @@ public class IniciarSesion extends HttpServlet { } rd.forward(request, response); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); diff --git a/UyTube_web/src/java/com/uytube/ModificarListaReproduccion.java b/UyTube_web/src/java/com/uytube/ModificarListaReproduccion.java index ee44fa1b9dd7989774026e9ef05225c05e1c2321..fc4442b30526919487f5d1a18bd5b2c60ae47053 100644 --- a/UyTube_web/src/java/com/uytube/ModificarListaReproduccion.java +++ b/UyTube_web/src/java/com/uytube/ModificarListaReproduccion.java @@ -12,7 +12,6 @@ import Logica.Enumerados.TipoListaDeReproduccion; import Logica.Fabrica; import Logica.Interfaces.IUsuario; import java.io.IOException; -import java.io.PrintWriter; import java.util.ArrayList; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; @@ -40,8 +39,20 @@ public class ModificarListaReproduccion extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); + + if (!sys.sesionIniciada()){ + String msj = "No puedes acceder a esta página"; + Funciones.Funciones.showLog("Acceso denegado", msj); + RequestDispatcher rd; //objeto para despachar + request.setAttribute("mensajeError", msj); + rd = request.getRequestDispatcher("/401.jsp"); + rd.forward(request, response); + return; + } + boolean sesionIniciada = sys.sesionIniciada(); ArrayList<String> cate = sys.listarCategorias(); String usuario = request.getParameter("idUsu"); @@ -61,9 +72,7 @@ public class ModificarListaReproduccion extends HttpServlet { rd.forward(request, response); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); @@ -82,15 +91,24 @@ public class ModificarListaReproduccion extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); try { + IUsuario sys = Fabrica.getInstancia().getIUsuario(); + + if (!sys.sesionIniciada()){ + String msj = "No puedes acceder a esta página"; + Funciones.Funciones.showLog("Acceso denegado", msj); + RequestDispatcher rd; //objeto para despachar + request.setAttribute("mensajeError", msj); + rd = request.getRequestDispatcher("/401.jsp"); + rd.forward(request, response); + return; + } String pPrivacidad = request.getParameter("privacidad"); String pCategoria = request.getParameter("categoria"); String pNombre = request.getParameter("nombre"); - - IUsuario sys = Fabrica.getInstancia().getIUsuario(); - DtUsuario usu = sys.obtenerUsuarioActual(); Privacidad priv = Privacidad.PRIVADO; @@ -113,9 +131,7 @@ public class ModificarListaReproduccion extends HttpServlet { response.sendRedirect("lista-consultar?id=" + idNuevaLista); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); diff --git a/UyTube_web/src/java/com/uytube/ModificarUsuario.java b/UyTube_web/src/java/com/uytube/ModificarUsuario.java index 6e489d062bfb07b9d9fbe65b3944bd26ac7650ed..be1f064b3c8cdc4a51676f59b5ef1d58a763e561 100644 --- a/UyTube_web/src/java/com/uytube/ModificarUsuario.java +++ b/UyTube_web/src/java/com/uytube/ModificarUsuario.java @@ -6,26 +6,30 @@ package com.uytube; import Logica.DataType.DtCanal; +import Logica.DataType.DtImagenUsuario; import Logica.DataType.DtUsuario; import Logica.Enumerados.Privacidad; import Logica.Fabrica; import Logica.Interfaces.IUsuario; import java.io.IOException; -import java.io.PrintWriter; +import java.io.InputStream; +import java.nio.file.Paths; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.ArrayList; import java.util.Date; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; +import javax.servlet.annotation.MultipartConfig; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.Part; /** * * @author administrador */ +@MultipartConfig public class ModificarUsuario extends HttpServlet { // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> @@ -40,10 +44,20 @@ public class ModificarUsuario extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - + Funciones.Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); - + + if (!sys.sesionIniciada()){ + String msj = "No puedes acceder a esta página"; + Funciones.Funciones.showLog("Acceso denegado", msj); + RequestDispatcher rd; //objeto para despachar + request.setAttribute("mensajeError", msj); + rd = request.getRequestDispatcher("/401.jsp"); + rd.forward(request, response); + return; + } + String nick = request.getParameter("id"); DtUsuario usuario = sys.seleccionarUsuario(nick); @@ -64,9 +78,7 @@ public class ModificarUsuario extends HttpServlet { rd.forward(request, response); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); @@ -86,7 +98,20 @@ public class ModificarUsuario extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); try { + IUsuario sys = Fabrica.getInstancia().getIUsuario(); + + if (!sys.sesionIniciada()){ + String msj = "No puedes acceder a esta página"; + Funciones.Funciones.showLog("Acceso denegado", msj); + RequestDispatcher rd; //objeto para despachar + request.setAttribute("mensajeError", msj); + rd = request.getRequestDispatcher("/401.jsp"); + rd.forward(request, response); + return; + } + String pNickname = request.getParameter("nickname"); String pNombre = request.getParameter("nombre"); String pApellido = request.getParameter("apellido"); @@ -98,8 +123,6 @@ public class ModificarUsuario extends HttpServlet { String pDescripcion = request.getParameter("descripcion"); String pImaguen = request.getParameter("imagen"); - IUsuario sys = Fabrica.getInstancia().getIUsuario(); - SimpleDateFormat formato = new SimpleDateFormat("yyyy-mm-dd"); Date fechaDate = null; try { @@ -115,20 +138,26 @@ public class ModificarUsuario extends HttpServlet { if (pPrivacidad != null && pPrivacidad.equals("PUBLICO")) { Priv = Privacidad.PUBLICO; } - - System.out.println(pNickname); - + DtCanal CanUsu = new DtCanal(0, pCanal, pDescripcion, Priv); DtUsuario Usu = new DtUsuario(pNickname, pPassword, pNombre, pApellido, pEmail, fecha_Nac, pImaguen, 0); sys.modificarUsuarioYCanal(Usu, CanUsu); + Part partImagen = request.getPart("imagen"); + String nombreArchivo = Paths.get(partImagen.getSubmittedFileName()).getFileName().toString(); + InputStream archivoContenido = partImagen.getInputStream(); + if (archivoContenido.available() > 0) { + byte[] byteArr = new byte[archivoContenido.available()]; + archivoContenido.read(byteArr); + DtImagenUsuario dtiu = new DtImagenUsuario(Usu.getNickname(), byteArr, nombreArchivo); + Fabrica.getInstancia().getIPersistenciaDeImagenes().edit(dtiu); + } + response.sendRedirect("/uytube/usuario-consultar?id=" + Usu.getNickname()); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); diff --git a/UyTube_web/src/java/com/uytube/ModificarVideo.java b/UyTube_web/src/java/com/uytube/ModificarVideo.java index 5f83450233a7d3a09cfd45e64df08b0dca261e30..0778221efda4f4e9c8309a10e4f871451b2bfc66 100644 --- a/UyTube_web/src/java/com/uytube/ModificarVideo.java +++ b/UyTube_web/src/java/com/uytube/ModificarVideo.java @@ -10,7 +10,6 @@ import Logica.Enumerados.Privacidad; import Logica.Fabrica; import Logica.Interfaces.IUsuario; import java.io.IOException; -import java.io.PrintWriter; import java.sql.Time; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -40,10 +39,22 @@ public class ModificarVideo extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); try { + IUsuario sys = Fabrica.getInstancia().getIUsuario(); + + if (!sys.sesionIniciada()){ + String msj = "No puedes acceder a esta página"; + Funciones.Funciones.showLog("Acceso denegado", msj); + RequestDispatcher rd; //objeto para despachar + request.setAttribute("mensajeError", msj); + rd = request.getRequestDispatcher("/401.jsp"); + rd.forward(request, response); + return; + } + int id = Integer.parseInt(request.getParameter("id")); - IUsuario sys = Fabrica.getInstancia().getIUsuario(); boolean sesionIniciada = sys.sesionIniciada(); ArrayList<String> cate = sys.listarCategorias(); DtVideo video = sys.seleccionarVideo(id); @@ -55,9 +66,7 @@ public class ModificarVideo extends HttpServlet { rd = request.getRequestDispatcher("/ModificarVideo.jsp"); rd.forward(request, response); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); @@ -76,9 +85,20 @@ public class ModificarVideo extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - + Funciones.Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); + + if (!sys.sesionIniciada()){ + String msj = "No puedes acceder a esta página"; + Funciones.Funciones.showLog("Acceso denegado", msj); + RequestDispatcher rd; //objeto para despachar + request.setAttribute("mensajeError", msj); + rd = request.getRequestDispatcher("/401.jsp"); + rd.forward(request, response); + return; + } + String pNombre = request.getParameter("nombre"); String pDuracion = request.getParameter("duracion"); String pUrl = request.getParameter("url"); @@ -123,9 +143,7 @@ public class ModificarVideo extends HttpServlet { response.sendRedirect("video-consultar?id=" + idNuevoVideo); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); diff --git a/UyTube_web/src/java/com/uytube/PeticionAjax.java b/UyTube_web/src/java/com/uytube/PeticionAjax.java index b28f9f367fd3b2eb0aa3fcc98cae79dca148fd0d..9c62dd80d1a85594392f1c5fb4e531d648f6d3d2 100644 --- a/UyTube_web/src/java/com/uytube/PeticionAjax.java +++ b/UyTube_web/src/java/com/uytube/PeticionAjax.java @@ -32,7 +32,6 @@ public class PeticionAjax extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - try { /* Aca debe recibir un parametor de nombre accion el cual define cual es la funcion @@ -44,10 +43,6 @@ public class PeticionAjax extends HttpServlet { String accion = request.getParameter("accion"); // obtiene lo enviado por AJAX String dato = request.getParameter("dato"); // obtiene lo enviado por AJAX - System.out.println("-- Peticion AJAX --"); - System.out.println("accion: " + accion); - System.out.println("dato: " + dato); - // prepara respuesta response.setContentType("text/plain"); //Set content type of the response so that jQuery knows what it can expect. response.setCharacterEncoding("UTF-8"); //You want world domination, huh? @@ -89,12 +84,11 @@ public class PeticionAjax extends HttpServlet { } break; } - System.out.println("Respuesta: " + respuesta); + Funciones.Funciones.showLog(request, response); + Funciones.Funciones.showLog("Respuesta", respuesta); response.getWriter().write(respuesta); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); diff --git a/UyTube_web/src/java/com/uytube/Presentacion.java b/UyTube_web/src/java/com/uytube/Presentacion.java index a677db691c7c4318d8f7236096a247e5b99b0d4f..998226658eeb291aab898b0cbc8b35e6e8ed169a 100644 --- a/UyTube_web/src/java/com/uytube/Presentacion.java +++ b/UyTube_web/src/java/com/uytube/Presentacion.java @@ -5,13 +5,11 @@ */ package com.uytube; -import Logica.DataType.DtVideo; import Logica.Enumerados.Filtrado; import Logica.Enumerados.Ordenacion; import Logica.Fabrica; import Logica.Interfaces.IUsuario; import java.io.IOException; -import java.io.PrintWriter; import java.util.ArrayList; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; @@ -39,7 +37,7 @@ public class Presentacion extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - + Funciones.Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); boolean sesionIniciada = sys.sesionIniciada(); @@ -52,9 +50,7 @@ public class Presentacion extends HttpServlet { rd = request.getRequestDispatcher("/Presentacion.jsp"); rd.forward(request, response); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); diff --git a/UyTube_web/src/java/com/uytube/QuitarVideoDeListaReproduccion.java b/UyTube_web/src/java/com/uytube/QuitarVideoDeListaReproduccion.java index a97d1a138312e889c5039df4b290fdceb0aece84..3b16f9e33322d45cb62a99a54d6421a655a09361 100644 --- a/UyTube_web/src/java/com/uytube/QuitarVideoDeListaReproduccion.java +++ b/UyTube_web/src/java/com/uytube/QuitarVideoDeListaReproduccion.java @@ -9,7 +9,6 @@ import Logica.DataType.DtUsuario; import Logica.Fabrica; import Logica.Interfaces.IUsuario; import java.io.IOException; -import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; @@ -34,8 +33,20 @@ public class QuitarVideoDeListaReproduccion extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); + + if (!sys.sesionIniciada()){ + String msj = "No puedes acceder a esta página"; + Funciones.Funciones.showLog("Acceso denegado", msj); + RequestDispatcher rd; //objeto para despachar + request.setAttribute("mensajeError", msj); + rd = request.getRequestDispatcher("/401.jsp"); + rd.forward(request, response); + return; + } + String pIDVideo = request.getParameter("idvideo"); String pIDLista = request.getParameter("idlista"); int IDVideo = Integer.valueOf(pIDVideo); @@ -48,9 +59,7 @@ public class QuitarVideoDeListaReproduccion extends HttpServlet { response.sendRedirect("lista-consultar?id="+IDLista); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); diff --git a/UyTube_web/src/java/com/uytube/SeguirUsuario.java b/UyTube_web/src/java/com/uytube/SeguirUsuario.java index ee77487db1fce60c5f0b8d14a626856f9622fd34..4597f96111fb387190178ef2e99490d8862738fe 100644 --- a/UyTube_web/src/java/com/uytube/SeguirUsuario.java +++ b/UyTube_web/src/java/com/uytube/SeguirUsuario.java @@ -8,7 +8,6 @@ package com.uytube; import Logica.Fabrica; import Logica.Interfaces.IUsuario; import java.io.IOException; -import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; @@ -38,6 +37,7 @@ public class SeguirUsuario extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + Funciones.Funciones.showLog(request, response); try { IUsuario sys = Fabrica.getInstancia().getIUsuario(); String nick = request.getParameter("id"); @@ -47,9 +47,7 @@ public class SeguirUsuario extends HttpServlet { response.sendRedirect("/uytube/usuario-consultar?id=" + nick); } catch (Exception e) { - System.out.println("---- Exception ----"); - System.out.println(e.getMessage()); - System.out.println("-------------------"); + Funciones.Funciones.showLog(e); RequestDispatcher rd; //objeto para despachar request.setAttribute("mensajeError", e.getMessage()); rd = request.getRequestDispatcher("/404.jsp"); diff --git a/UyTube_web/web/401.jsp b/UyTube_web/web/401.jsp new file mode 100644 index 0000000000000000000000000000000000000000..4e2324527cc4020402a70eb3b475a5df313285ff --- /dev/null +++ b/UyTube_web/web/401.jsp @@ -0,0 +1,286 @@ +<%-- + Document : 404_2 + Created on : 12/10/2019, 04:17:57 AM + Author : Carlos BM +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> +<html lang="es"> + <head> + <meta charset="UTF-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> + <link rel="stylesheet" type="text/css" href="css/bootstrap.css"> + <link rel="stylesheet" type="text/css" href="iconos/style.css"> + <link rel="icon" type="image/png" href="imagenes/icono.png" /> + <title>UyTube - 404</title> + + <style> + * + { + font-family: 'PT Sans Caption', sans-serif, 'arial', 'Times New Roman'; + } + + /* Error Page */ + .error .clip .shadow + { + height: 180px; /*Contrall*/ + } + .error .clip:nth-of-type(2) .shadow + { + width: 130px; /*Contrall play with javascript*/ + } + .error .clip:nth-of-type(1) .shadow, .error .clip:nth-of-type(3) .shadow + { + width: 250px; /*Contrall*/ + } + .error .digit + { + width: 150px; /*Contrall*/ + height: 150px; /*Contrall*/ + line-height: 150px; /*Contrall*/ + font-size: 120px; + font-weight: bold; + } + .error h2 /*Contrall*/ + { + font-size: 32px; + } + .error .msg /*Contrall*/ + { + top: -190px; + left: 30%; + width: 80px; + height: 80px; + line-height: 80px; + font-size: 32px; + } + .error span.triangle /*Contrall*/ + { + top: 70%; + right: 0%; + border-left: 20px solid #535353; /*triandulito del uy*/ + border-top: 15px solid transparent; + border-bottom: 15px solid transparent; + } + + + .error .container-error-404 + { + margin-top: 10%; + position: relative; + height: 250px; + padding-top: 40px; + } + .error .container-error-404 .clip + { + display: inline-block; + transform: skew(-45deg); + } + .error .clip .shadow + { + + overflow: hidden; + } + .error .clip:nth-of-type(2) .shadow + { + overflow: hidden; + position: relative; + box-shadow: inset 20px 0px 20px -15px rgba(150, 150, 150,0.8), 20px 0px 20px -15px rgba(150, 150, 150,0.8); + } + + .error .clip:nth-of-type(3) .shadow:after, .error .clip:nth-of-type(1) .shadow:after + { + content: ""; + position: absolute; + right: -8px; + bottom: 0px; + z-index: 9999; + height: 100%; + width: 10px; + background: linear-gradient(90deg, transparent, rgba(173,173,173, 0.8), transparent); + border-radius: 50%; + } + .error .clip:nth-of-type(3) .shadow:after + { + left: -8px; + } + .error .digit + { + position: relative; + top: 8%; + color: white; + background: #f5360d; /* fondo de los circulos*/ + border-radius: 50%; + display: inline-block; + transform: skew(45deg); + } + .error .clip:nth-of-type(2) .digit + { + left: -10%; + } + .error .clip:nth-of-type(1) .digit + { + right: -20%; + }.error .clip:nth-of-type(3) .digit + { + left: -20%; + } + .error h2 + { + color: #A2A2A2; /*uy tube se cayó*/ + font-weight: bold; + padding-bottom: 20px; + } + .error .msg + { + position: relative; + z-index: 9999; + display: block; + background: #535353; /*logo*/ + color: #A2A2A2; /*uy*/ + border-radius: 50%; + font-style: italic; + } + .error .triangle + { + position: absolute; + z-index: 999; + transform: rotate(45deg); + content: ""; + width: 0; + height: 0; + } + + /* Error Page */ + @media(max-width: 767px) + { + /* Error Page */ + .error .clip .shadow + { + height: 100px; /*Contrall*/ + } + .error .clip:nth-of-type(2) .shadow + { + width: 80px; /*Contrall play with javascript*/ + } + .error .clip:nth-of-type(1) .shadow, .error .clip:nth-of-type(3) .shadow + { + width: 100px; /*Contrall*/ + } + .error .digit + { + width: 80px; /*Contrall*/ + height: 80px; /*Contrall*/ + line-height: 80px; /*Contrall*/ + font-size: 52px; + } + .error h2 /*Contrall*/ + { + font-size: 24px; + } + .error .msg /*Contrall*/ + { + top: -110px; + left: 15%; + width: 40px; + height: 40px; + line-height: 40px; + font-size: 18px; + } + .error span.triangle /*Contrall*/ + { + top: 70%; + right: -3%; + border-left: 10px solid #535353; /*no se*/ + border-top: 8px solid transparent; + border-bottom: 8px solid transparent; + } + .error .container-error-404 + { + height: 150px; + } + /* Error Page */ + } + + /*--------------------------------------------Framework --------------------------------*/ + + .overlay { position: relative; z-index: 20; } /*done*/ + .ground-color { background: white; } /*done*/ + .item-bg-color { background: #EAEAEA } /*done*/ + + /* Padding Section*/ + .padding-top { padding-top: 10px; } /*done*/ + .padding-bottom { padding-bottom: 10px; } /*done*/ + .padding-vertical { padding-top: 10px; padding-bottom: 10px; } + .padding-horizontal { padding-left: 10px; padding-right: 10px; } + .padding-all { padding: 10px; } /*done*/ + + .no-padding-left { padding-left: 0px; } /*done*/ + .no-padding-right { padding-right: 0px; } /*done*/ + .no-vertical-padding { padding-top: 0px; padding-bottom: 0px; } + .no-horizontal-padding { padding-left: 0px; padding-right: 0px; } + .no-padding { padding: 0px; } /*done*/ + /* Padding Section*/ + + /* Margin section */ + .margin-top { margin-top: 10px; } /*done*/ + .margin-bottom { margin-bottom: 10px; } /*done*/ + .margin-right { margin-right: 10px; } /*done*/ + .margin-left { margin-left: 10px; } /*done*/ + .margin-horizontal { margin-left: 10px; margin-right: 10px; } /*done*/ + .margin-vertical { margin-top: 10px; margin-bottom: 10px; } /*done*/ + .margin-all { margin: 10px; } /*done*/ + .no-margin { margin: 0px; } /*done*/ + + .no-vertical-margin { margin-top: 0px; margin-bottom: 0px; } + .no-horizontal-margin { margin-left: 0px; margin-right: 0px; } + + .inside-col-shrink { margin: 0px 20px; } /*done - For the inside sections that has also Title section*/ + /* Margin section */ + + hr + { margin: 0px; padding: 0px; border-top: 1px dashed #999; } + /*--------------------------------------------FrameWork------------------------*/ + </style> +</head> + +<body> + + <!-- Error Page --> + <div class="error"> + <div class="container-floud"> + <div class="col-xs-12 ground-color text-center"> + <div class="container-error-404"> + <div class="clip"><div class="shadow"><span class="digit thirdDigit">4</span></div></div> + <div class="clip"><div class="shadow"><span class="digit secondDigit">0</span></div></div> + <div class="clip"><div class="shadow"><span class="digit firstDigit">1</span></div></div> + <div class="msg">Uy!<span class="triangle"></span></div> + </div> + <h2 class="h1">¡Uy!, parece que este mate no es tuyo</h2> + <% + String mensajeError = (String) request.getAttribute("mensajeError"); + if (mensajeError != null){ + String msj = ""; + for (int idx = 0; idx < mensajeError.length(); idx++) { + if (mensajeError.charAt(idx) == '\n'){ + break; + } + msj += mensajeError.charAt(idx); + } + %> + <h2 class="h1" style="font-size: 20px;"><%= msj %></h2> + <% + } + %> + + <h2 class="h1"> + <a href="/uytube/">Ir al inicio</a> + </h2> + </div> + </div> + </div> + <!-- Error Page --> +</body> +</html> \ No newline at end of file diff --git a/UyTube_web/web/AltaListaReproduccion.jsp b/UyTube_web/web/AltaListaReproduccion.jsp index 1f9b636c44ce79a672e329691039273c30169d7d..7a1081fad4833a8e29d0e82d81af36c6ee055f05 100644 --- a/UyTube_web/web/AltaListaReproduccion.jsp +++ b/UyTube_web/web/AltaListaReproduccion.jsp @@ -22,7 +22,7 @@ <link rel="stylesheet" type="text/css" href="css/menu.css"> <link rel="stylesheet" type="text/css" href="css/widget.css"> <link rel="stylesheet" type="text/css" href="css/footer.css"> - <link rel="stylesheet" type="text/css" href="css/contenido-consulta-usuario.css"> + <link rel="stylesheet" type="text/css" href="css/contenido-alta-lista.css"> <link rel="stylesheet" type="text/css" href="iconos/style.css"> <link rel="icon" type="image/png" href="imagenes/icono.png" /> <title>UyTube - Nueva Lista</title> @@ -73,40 +73,45 @@ <div class="container"> <!-- Agregar Listas--> - <div class="d-flex flex-row justify-content-center"> + <div class=""> <form class="form-signin" action="/uytube/lista-agregar" method="post"> <br> <br> <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 class="mb-8 row"> + <div class="col-md-12"> + <input type="text" class="form-control" name="nombreL" id="nombreLista" placeholder="Nombre de la lista" required> + <span class="small" id="msjNombre"></span> + </div> </div> <div class="row"> - <div class="col-md-5"> + <div class="col-4 col-md-3"> <label class="">Privacidad</label> </div> - <div class="custom-control custom-radio"> + <div class="custom-control custom-radio col-4 col-md-3"> <input id="publico" name="privacidad" value="PUBLICO" type="radio" class="custom-control-input" checked> <label class="custom-control-label" for="publico">Publico</label> </div> - <div class="custom-control custom-radio"> + <div class="custom-control custom-radio col-4 col-md-3"> <input id="privado" name="privacidad" value="PRIVADO" type="radio" class="custom-control-input"> <label class="custom-control-label" for="privado">Privado</label> </div> + <div class="col-0 col-md-3"></div> </div> - <div class=" bd-light"> - <select class="custom-select d-block w-100" name="categoria" id="categoria" required> - <% - for (String l : Categorias) { - %> - <option> <%= l%> </option> - <% - } - %> - </select> + <div class=" bd-light row"> + <div class="col-md-12"> + <select class="custom-select d-block w-100" name="categoria" id="categoria" required> + <% + for (String l : Categorias) { + %> + <option> <%= l%> </option> + <% + } + %> + </select> + </div> </div> <hr class="mb-4"> diff --git a/UyTube_web/web/AltaUsuario.jsp b/UyTube_web/web/AltaUsuario.jsp index 54cd0bb1a45b893b3cec8b3068b94a0229f0b178..7f2be071db8848fd31c424ef9e2c1f21385ba161 100644 --- a/UyTube_web/web/AltaUsuario.jsp +++ b/UyTube_web/web/AltaUsuario.jsp @@ -10,24 +10,6 @@ <% boolean sesionIniciada = (boolean) (request.getSession().getAttribute("usuario") != null); %> - <script> - var check = function () { - if (document.getElementById('input_Contrasenia').value ==document.getElementById('input_Repetir_contraseña').value) { - document.getElementById('message').style.color = 'green'; - document.getElementById('message').innerHTML = 'Correcto'; - document.getElementById("btn_Registrarme").disabled = false; - if (document.getElementById('input_Contrasenia').value == ""){ - document.getElementById('message').style.color = 'red'; - document.getElementById('message').innerHTML = 'Ingrese la contraseña'; - document.getElementById("btn_Registrarme").disabled = true; - } - } else { - document.getElementById('message').style.color = 'red'; - document.getElementById('message').innerHTML = 'No son iguales'; - document.getElementById("btn_Registrarme").disabled = true; - } - } - </script> <head> <meta charset="UTF-8"> @@ -49,11 +31,13 @@ <div class="container-fluid" style="padding-left: 0; padding-right: 0px;"> <div class="row"> <div class="col-12"> + <% if (sesionIniciada) { %> <%@ include file='include/header-usuario.jsp' %> - <% } else { + <% + } else { %> <%@ include file='include/header-visitante.jsp' %> <% @@ -77,7 +61,8 @@ if (sesionIniciada) { %> <%@ include file='include/menu-usuario.jsp' %> - <% } else { + <% + } else { %> <%@ include file='include/menu-visitante.jsp' %> <% @@ -86,13 +71,13 @@ <div class="contenido"> <section class="contenido-flexible"> <div class="principal d-flex flex-row justify-content-center"> - <section class="d-flex flex-lg-row flex-wrap justify-content-lg-between"> - <form class="form-signin" action="/uytube/usuario-agregar" method="post"> + <section class="d-flex flex-lg-row flex-wrap justify-content-lg-between"> + <form class="form-signin" action="/uytube/usuario-agregar" method="post" enctype="multipart/form-data"> <h1 class="h3 mb-3 font-weight-normal" id="Texto_ingrese">Ingrese sus datos</h1><br> <input class="form-control" type="text" name="nickname" placeholder="Nickname" id="input_Nickname" required> - <span id="msjNickname"></span> + <span class="small" id="msjNickname"></span> <br> - + <div class="row"> <div class="col-md-6 mb-3"> <input type="text" class="form-control" name="nombre" id="input_Nombre" placeholder="Nombre" required> @@ -103,13 +88,13 @@ </div> <input class="form-control" type="email" name="email" placeholder="Email" id="email" required> - <span id="msjEmail"></span> + <span class="small" id="msjEmail"></span> <br> <input class="form-control" name="fechaNa" type="date" id="input_fecha" name="trip-start"><br> <input class="form-control" type="password" name="password" placeholder="Contraseña" id="input_Contrasenia" onkeyup="check()" required><br> <input class="form-control" type="password" placeholder="Repita contraseña" id="input_Repetir_contraseña" onkeyup="check()" required> - <span id='message'></span> + <span class="small" id='message'></span> <div class="d-block my-3"> <label for="cc-name">Privacidad del canal</label> @@ -132,10 +117,9 @@ <label id="label_email">Imagen de perfil</label> - + <div class="form-group"> - <input disabled="true" accept=".PNG,.JPG,.jpg,.png" name="imagen" id="input_Imagen_Perfil" type="file" class="file" multiple=false data-preview-file-type="any"><br> - <span id='message'>(Funcionalidad no disponible)</span><br> + <input id="input_Imagen_Perfil" name="imagen" accept=".PNG,.JPG,.jpg,.png" type="file" class="file" multiple=false data-preview-file-type="any"><br> <small class="text-muted">Opcional*</small> </div> diff --git a/UyTube_web/web/AltaVideo.jsp b/UyTube_web/web/AltaVideo.jsp index 95d22f1bcf5ae20354f2e791e5fcba09cd7a48ba..4bd6e60d5e44e532487d661391c720d3b01a7b3b 100644 --- a/UyTube_web/web/AltaVideo.jsp +++ b/UyTube_web/web/AltaVideo.jsp @@ -100,7 +100,7 @@ <div class="form-group col-md-2"> </div> - <div class="form-group col-8 col-md-7"> + <div class="form-group col-8 col-md-6"> <label for="inputCategoria">CategorÃa</label> <select id="inputCategoria" name="categoria" class="form-control"> <% diff --git a/UyTube_web/web/Buscar.jsp b/UyTube_web/web/Buscar.jsp index 37bd38d9a9e97d59259d57b67d3180f21c82cd1c..1ef79e6a9b68a15953f72879f61ce83b05091c48 100644 --- a/UyTube_web/web/Buscar.jsp +++ b/UyTube_web/web/Buscar.jsp @@ -84,7 +84,7 @@ <!-- BOTONES DESPLEGABLES--> - <%@ include file='include/filtro-visible.html' %> + <%@ include file='include/filtro-visible.jsp' %> <!--FIN DE LOS BOTONES--> @@ -152,18 +152,12 @@ DtCanal e = (DtCanal) o; // buena suerte entendiendo esto... DtUsuario usu = Fabrica.getInstancia().getIUsuario().obtenerPropietarioDeCanal(e.getId()); - String imagenCanal; - if (usu.getImagen() == null || usu.getImagen().equals("")){ - imagenCanal = "imagenes/ukp.png"; - }else{ - imagenCanal = usu.getImagen(); - } %> <div class="canal bd-highlight"> <div class="bd-highlight caja-imagen"> <div class="bd-highlight"> <a href="usuario-consultar?id=<%= usu.getNickname() %>"> - <img src="<%= imagenCanal %>" class="align-self-center rounded-circle" alt="Cinque Terre" > + <img src="usuario-imagen?id=<%= usu.getNickname() %>" class="align-self-center rounded-circle" alt="Cinque Terre" > </a> </div> </div> diff --git a/UyTube_web/web/ConsultaUsuario.jsp b/UyTube_web/web/ConsultaUsuario.jsp index ba441e947b02cecea9389e1f9e015d8badb091a0..7747bc6cc8b25a6746dc00ae86c442396462cc96 100644 --- a/UyTube_web/web/ConsultaUsuario.jsp +++ b/UyTube_web/web/ConsultaUsuario.jsp @@ -91,20 +91,9 @@ <div class="p-4 flex-fill bd-highlight"> <div class="d-flex justify-content-center"> <% - String textoAlternativo; - String rutaDeImagenDePerfil; - if (usuario.getImagen() == null || usuario.getImagen().equals("")) { - rutaDeImagenDePerfil = "imagenes/ukp.png"; - textoAlternativo = "Imagen de perfil por defecto"; - } else { - rutaDeImagenDePerfil = usuario.getImagen(); - textoAlternativo = "Imagen de perfil de " + usuario.getNickname(); - //char contrabarra = 92; - //char barra = 47; - //rutaImagenPerfil = rutaImagenPerfil = rutaImagenPerfil.replace(contrabarra, barra); - } + // src="<% %> - <img src="<%=rutaDeImagenDePerfil%>" class="rounded-circle" alt="<%=textoAlternativo%>" width="180" height="180"> + <img src="usuario-imagen?id=<%= usuario.getNickname() %>" class="rounded-circle" alt="Imagen de perfil de <% usuario.getNickname(); %>" width="180" height="180"> </div> </div> @@ -112,12 +101,12 @@ <div class="p-1 flex-fill bd-highlight "> <div class="d-flex bd-highlight "> - <div class="p-1 d-flex flex-fill bd-highlight"> + <div class="p-1 d-flex flex-wrap flex-sm-nowrap bd-highlight"> <br><h3><%= usuario.getNombre() + " " + usuario.getApellido()%></h3> <% if (sesionIniciada && propietario) { %> - <button data-toggle="modal" data-target="#exampleModal" data-whatever="@mdo" class=" ml-5 btn btn-danger icon-remove-user" id="btnBaja"> + <button data-toggle="modal" data-target="#exampleModal" data-whatever="@mdo" class=" ml-sm-3 btn btn-danger icon-remove-user" id="btnBaja"> Darse de baja </button> <% @@ -139,7 +128,7 @@ </div> </div> <div class="p-1 bd-highlight "> - <div class="d-flex bd-highlight "> + <div class="d-flex flex-wrap flex-md-nowrap bd-highlight "> <div class="p-1 flex-fill bd-highlight "> <p>PRIVACIDAD: <%= canal.getPrivacidad()%></p> </div> diff --git a/UyTube_web/web/ConsultaVideo.jsp b/UyTube_web/web/ConsultaVideo.jsp index 87d36975abc9b3dffd9386af509ed21bf7b584c5..56ffba0f7b37979dbc9917367ec1793b81bc2297 100644 --- a/UyTube_web/web/ConsultaVideo.jsp +++ b/UyTube_web/web/ConsultaVideo.jsp @@ -4,6 +4,7 @@ Author : administrador --%> +<%@page import="Logica.Enumerados.Privacidad"%> <%@page import="java.text.SimpleDateFormat"%> <%@page import="Logica.Enumerados.TipoValoracion"%> <%@page import="Logica.DataType.DtValoracion"%> @@ -31,6 +32,7 @@ String htmlComentarios = (String) request.getAttribute("comentarios"); DtValoracion valoracionDada = (DtValoracion) request.getAttribute("valoracionDada"); ArrayList<DtValoracion> valoraciones = (ArrayList) request.getAttribute("valoraciones"); + ArrayList<DtListaDeReproduccion> listas = (ArrayList) request.getAttribute("listas"); %> <head> <meta charset="UTF-8"> @@ -56,8 +58,7 @@ if (sesionIniciada) { %> <%@ include file='include/header-usuario.jsp' %> - <% - } else { + <% } else { %> <%@ include file='include/header-visitante.jsp' %> <% @@ -82,12 +83,10 @@ if (sesionIniciada) { %> <%@ include file='include/menu-usuario.jsp' %> - <% - } else { + <% } else { %> <%@ include file='include/menu-visitante.jsp' %> - <% - } + <% } %> <div class="contenido"> @@ -154,8 +153,8 @@ </div> <!-- Boton agregar a lista de reproduccion --> - <div class="p-2 btn-group mr-3" role="group" aria-label="Third group"> - <button type="button" id="btnAgregarALista" class="btn btn-info icon-add-to-list"> + <div class="p-2 btn-group mr-3" role="group" aria-label="Third group"> + <button data-toggle="modal" type="button" id="btnAgregarALista" data-target="#ventanaModalAgregarALista" class="btn btn-info icon-add-to-list"> LISTA DE REPRODUCCIÓN </button> </div> @@ -170,7 +169,7 @@ MODIFICAR </button> </a> - <button href="#ventanaModalValoraciones" data-toggle="modal" type="button" id="btnListarValoraciones" class="btn btn-info icon-info-with-circle"> + <button href="#ventanaModalValoraciones" data-toggle="modal" type="button" id="btnListarValoraciones" class="btn btn-info icon-info-with-circle"> QUIÉN VALORÓ </button> </div> @@ -188,15 +187,8 @@ <!-- IMAGEN DEL USUARIO Y NOMBRE DEL CANAL --> <div class="row"> <% - String textoAlternativo; - String rutaDeImagenDePerfil; - if (usuario.getImagen() == null || usuario.getImagen().equals("")) { - rutaDeImagenDePerfil = "imagenes/ukp.png"; - textoAlternativo = "Imagen de perfil por defecto"; - } else { - rutaDeImagenDePerfil = usuario.getImagen(); - textoAlternativo = "Imagen de perfil de " + usuario.getNickname(); - } + String textoAlternativo = "Imagen de perfil de " + usuario.getNickname(); + String rutaDeImagenDePerfil = "usuario-imagen?id=" + usuario.getNickname(); %> <div class="bd-highlight"> <img class="align-self-center mr-3" src="<%= rutaDeImagenDePerfil%>" width="70" height="70" alt="<%= textoAlternativo%>"> @@ -345,7 +337,62 @@ } </style> - + <!-- Modal Agregar a lista de reproduccion --> + <% + if (sesionIniciada){ + %> + <div class="modal fade" id="ventanaModalAgregarALista" tabindex="-1" role="dialog" aria-labelledby="exampleModalScrollableTitle" aria-hidden="true"> + <div class="modal-dialog modal-dialog-scrollable" role="document"> + <div class="modal-content"> + <div class="modal-header"> + <h5 class="modal-title" id="exampleModalScrollableTitle">Guardar en ...</h5> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> + </div> + <div class="modal-body"> + <% + IUsuario sys = Fabrica.getInstancia().getIUsuario(); + String idLista, nombreList, icono, checked, idCheckbox; + sys.seleccionarUsuario(sys.obtenerUsuarioActual().getNickname()); + for (DtListaDeReproduccion dl : listas) { + idLista = String.valueOf(dl.getId()); + idCheckbox = "checkbox"+idLista; + nombreList = dl.getNombre(); + if( dl.getPrivacidad() == Privacidad.PRIVADO){ + icono = "icon-lock1"; + }else{ + icono = "icon-earth"; + } + sys.seleccionarListaDeReproduccion(dl.getId()); + checked = ""; + for (DtVideo dv : sys.listarVideosDeListaDeReproduccion()) { + if( video.getId() == dv.getId()){ + checked = "checked"; + break; + } + } + %> + <div class="form-check"> + <input class="form-check-input checkLista" type="checkbox" <%= checked %> value="<%= idLista %>" id="<%=idCheckbox%>"> + <label class="form-check-label" for="<%=idCheckbox%>"><%= nombreList %> <span class="<%= icono%>"></span></label> + </div> + <% + } + sys.seleccionarUsuario(sys.obtenerPropietarioDeVideo(video.getId()).getNickname()); + %> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-info" data-dismiss="modal">Cerrar</button> + + </div> + </div> + </div> + </div> + + <% + } + %> <%@ include file='include/widgets.html' %> <%@ include file='include/footer.html' %> diff --git a/UyTube_web/web/ModificarUsuario.jsp b/UyTube_web/web/ModificarUsuario.jsp index 65e1173d63d035705023306cd2e9f0d2bd118414..fd016fe718e944895bee156c9a1567d7e74946aa 100644 --- a/UyTube_web/web/ModificarUsuario.jsp +++ b/UyTube_web/web/ModificarUsuario.jsp @@ -99,7 +99,7 @@ <section class="contenido-flexible"> <div class="principal d-flex flex-row justify-content-center"> <section class="d-flex flex-lg-row flex-wrap justify-content-lg-between"> - <form class="form-signin" action="/uytube/usuario-modificar" method="post"> + <form class="form-signin" action="usuario-modificar" method="post" enctype="multipart/form-data"> <h1 class="h3 mb-3 font-weight-normal" id="Texto_ingrese">Ingrese sus datos</h1><br> <input value="<%= usuario.getNickname()%>" class="form-control" type="text" name="nickname" readonly="readonly" placeholder="Nickname" id="input_Nickname" required><br> <div class="row"> @@ -168,11 +168,9 @@ <br> <label id="label_email">Imagen de perfil</label> <div class="form-group"> - <input disabled="true" name="imagen" id="input_Imagen_Perfil" type="file" class="file" multiple=false data-preview-file-type="any"><br> - <span id='message'>(Funcionalidad no disponible)</span><br> + <input id="input_Imagen_Perfil" name="imagen" accept=".PNG,.JPG,.jpg,.png" type="file" class="file" multiple=false data-preview-file-type="any"><br> </div> - <hr class="mb-4"> <div class="btn-toolbar" role="toolbar" aria-label="Toolbar with button groups"> diff --git a/UyTube_web/web/css/.sass-cache/c5945467622b764634fe3b9fcf530060a0a026da/contenido-alta-lista.sassc b/UyTube_web/web/css/.sass-cache/c5945467622b764634fe3b9fcf530060a0a026da/contenido-alta-lista.sassc new file mode 100644 index 0000000000000000000000000000000000000000..97d4220d1b38231dd3657535f3aa18517156292c Binary files /dev/null and b/UyTube_web/web/css/.sass-cache/c5945467622b764634fe3b9fcf530060a0a026da/contenido-alta-lista.sassc differ diff --git a/UyTube_web/web/css/.sass-cache/c5945467622b764634fe3b9fcf530060a0a026da/contenido-consulta-usuario.sassc b/UyTube_web/web/css/.sass-cache/c5945467622b764634fe3b9fcf530060a0a026da/contenido-consulta-usuario.sassc new file mode 100644 index 0000000000000000000000000000000000000000..15d8ed923c763b3b522a18e4420914be2e693f23 Binary files /dev/null and b/UyTube_web/web/css/.sass-cache/c5945467622b764634fe3b9fcf530060a0a026da/contenido-consulta-usuario.sassc differ diff --git a/UyTube_web/web/css/contenido-alta-lista.css b/UyTube_web/web/css/contenido-alta-lista.css new file mode 100644 index 0000000000000000000000000000000000000000..0824b967585b7807b11a61a0f9d6dda1832cc265 --- /dev/null +++ b/UyTube_web/web/css/contenido-alta-lista.css @@ -0,0 +1,106 @@ +.principal { + background-color: #f6f6f6; + min-height: 800px; + border-bottom: 2px solid #5aa1e3; + border-top: 2px solid #5aa1e3; + width: 100%; } + +.contenido { + background-color: #f6f6f6; + padding: 16px; + margin-left: auto; + margin-right: auto; + width: 1070px; + height: 100%; } + .contenido .contenido-flexible { + background-color: #f6f6f6; + margin-bottom: 16px; + display: flex; + flex-direction: row; + justify-content: space-between; + flex-wrap: wrap; + flex-grow: 0; + flex-shrink: 0; } + .contenido .contenido-flexible h3 { + width: 100%; } + +@media (max-width: 340px) { + .container-fluid { + padding-left: 0px; + padding-right: 0px; } + + .contenido { + width: 100%; + padding-left: 2px; + padding-right: 2px; } + .contenido .contenido-flexible { + width: 100%; + justify-content: flex-start; } } +@media (min-width: 341px) and (max-width: 387px) { + .container-fluid { + padding-left: 0px; + padding-right: 0px; } + + .contenido { + width: 330px; + padding-left: 2px; + padding-right: 2px; } + .contenido .contenido-flexible { + width: 100%; + justify-content: flex-start; } } +@media (min-width: 388px) and (max-width: 500px) { + .container-fluid { + padding-left: 0px; + padding-right: 0px; } + + .contenido { + width: 388px; + padding-left: 2px; + padding-right: 2px; } + .contenido .contenido-flexible { + width: 100%; + justify-content: flex-start; } + .contenido .h3 { + width: 90%; } } +@media (min-width: 501px) and (max-width: 575.98px) { + .container-fluid { + padding-left: 0px; + padding-right: 0px; } + + .contenido { + width: 501px; } + .contenido .contenido-flexible { + width: 100%; + justify-content: flex-start; } } +@media (min-width: 576px) and (max-width: 767.98px) { + .container-fluid { + padding-left: 0px; + padding-right: 0px; } + + .contenido { + width: 576px; } + .contenido .contenido-flexible { + width: 100%; + justify-content: flex-start; } } +@media (min-width: 768px) and (max-width: 991.98px) { + .container-fluid { + padding-left: 0px; + padding-right: 0px; } + + .contenido { + width: 664px; } + .contenido .contenido-flexible { + width: 100%; + justify-content: flex-start; } } +@media (min-width: 992px) { + .container-fluid { + padding-left: 0px; + padding-right: 0px; } + + .contenido { + width: 35%; } + .contenido .contenido-flexible { + width: 100%; + justify-content: flex-start; } } + +/*# sourceMappingURL=contenido-alta-lista.css.map */ diff --git a/UyTube_web/web/css/contenido-alta-lista.css.map b/UyTube_web/web/css/contenido-alta-lista.css.map new file mode 100644 index 0000000000000000000000000000000000000000..c43e1c97dfaea00cf935e742fbc970b3cc26638f --- /dev/null +++ b/UyTube_web/web/css/contenido-alta-lista.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AAEA,UAAU;EACN,gBAAgB,ECUH,OAAO;EDTpB,UAAU,EAAE,KAAK;EACjB,aAAa,EAAE,iBAA4B;EAC3C,UAAU,EAAE,iBAA4B;EACxC,KAAK,EAAE,IAAI;;AAEf,UAAU;EACN,gBAAgB,ECGH,OAAO;EDFpB,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,IAAI;EAClB,KAAK,EAAE,MAAM;EACb,MAAM,EAAE,IAAI;EACZ,8BAAmB;IACf,gBAAgB,ECJP,OAAO;IDKhB,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,GAAG;IACnB,eAAe,EAAE,aAAa;IAC9B,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,CAAC;IACd,iCAAE;MACE,KAAK,EAAE,IAAI;;AAIvB,yBAAyB;EACrB,gBAAgB;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;;EAGtB,UAAU;IACN,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;IAClB,8BAAmB;MACf,KAAK,EAAE,IAAI;MACX,eAAe,EAAE,UAAU;AAIvC,gDAAgD;EAC5C,gBAAgB;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;;EAGtB,UAAU;IACN,KAAK,EAAE,KAAK;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;IAClB,8BAAmB;MACf,KAAK,EAAE,IAAI;MACX,eAAe,EAAE,UAAU;AAKvC,gDAAgD;EAC5C,gBAAgB;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;;EAGtB,UAAU;IACN,KAAK,EAAE,KAAK;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;IAClB,8BAAmB;MACf,KAAK,EAAE,IAAI;MACX,eAAe,EAAE,UAAU;IAE/B,cAAG;MACC,KAAK,EAAE,GAAG;AAItB,mDAAmD;EAC/C,gBAAgB;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;;EAGtB,UAAU;IACN,KAAK,EAAE,KAAK;IACZ,8BAAmB;MACf,KAAK,EAAE,IAAI;MACX,eAAe,EAAE,UAAU;AAIvC,mDAAmD;EAC/C,gBAAgB;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;;EAGtB,UAAU;IACN,KAAK,EAAE,KAAK;IACZ,8BAAmB;MACf,KAAK,EAAE,IAAI;MACX,eAAe,EAAE,UAAU;AAIvC,mDAAmD;EAC/C,gBAAgB;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;;EAGtB,UAAU;IACN,KAAK,EAAE,KAAK;IACZ,8BAAmB;MACf,KAAK,EAAE,IAAI;MACX,eAAe,EAAE,UAAU;AAIvC,yBAAyB;EACrB,gBAAgB;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;;EAEtB,UAAU;IACN,KAAK,EAAE,GAAG;IACV,8BAAmB;MACf,KAAK,EAAE,IAAI;MACX,eAAe,EAAE,UAAU", +"sources": ["contenido-alta-lista.sass","_colores.sass"], +"names": [], +"file": "contenido-alta-lista.css" +} \ No newline at end of file diff --git a/UyTube_web/web/css/contenido-alta-lista.sass b/UyTube_web/web/css/contenido-alta-lista.sass new file mode 100644 index 0000000000000000000000000000000000000000..f1ed6fab5afd0c17030e6087969af99b68eb3fda --- /dev/null +++ b/UyTube_web/web/css/contenido-alta-lista.sass @@ -0,0 +1,139 @@ +@import _colores + +.principal + background-color: $colorGrisClaro + min-height: 800px + border-bottom: 2px solid $colorCelesteClaro + border-top: 2px solid $colorCelesteClaro + width: 100% + +.contenido + background-color: $colorGrisClaro + padding: 16px + margin-left: auto + margin-right: auto + width: 1070px + height: 100% + .contenido-flexible + background-color: $colorGrisClaro + margin-bottom: 16px + display: flex + flex-direction: row + justify-content: space-between + flex-wrap: wrap + flex-grow: 0 + flex-shrink: 0 + h3 + width: 100% + + +// Para un maximo de 340px ================================================================================ +@media (max-width: 340px) + .container-fluid + padding-left: 0px + padding-right: 0px + + //estilos del contenido principal + .contenido + width: 100% + padding-left: 2px + padding-right: 2px + .contenido-flexible + width: 100% + justify-content: flex-start + + +// Para dispositivos mayores a 340 y menores a 388 ============================================================== +@media (min-width: 341px) and (max-width: 387px) + .container-fluid + padding-left: 0px + padding-right: 0px + + //estilos del contenido principal + .contenido + width: 330px + padding-left: 2px + padding-right: 2px + .contenido-flexible + width: 100% + justify-content: flex-start + + + +// Para dispositivos mayores a 387 y menores a 500 ================================================================ +@media (min-width: 388px) and (max-width: 500px) + .container-fluid + padding-left: 0px + padding-right: 0px + + //estilos del contenido principal + .contenido + width: 388px + padding-left: 2px + padding-right: 2px + .contenido-flexible + width: 100% + justify-content: flex-start + + .h3 + width: 90% + + +// Extra small devices (portrait phones, less than 576px) ======================================================= +@media (min-width: 501px) and (max-width: 575.98px) + .container-fluid + padding-left: 0px + padding-right: 0px + + //Estilos del contenido principal + .contenido + width: 501px + .contenido-flexible + width: 100% + justify-content: flex-start + + +// Small devices (landscape phones, 576px and up) ================================================================ +@media (min-width: 576px) and (max-width: 767.98px) + .container-fluid + padding-left: 0px + padding-right: 0px + + //Estilos del contenido principal + .contenido + width: 576px + .contenido-flexible + width: 100% + justify-content: flex-start + + +// Medium devices (tablets, 768px and up) +@media (min-width: 768px) and (max-width: 991.98px) + .container-fluid + padding-left: 0px + padding-right: 0px + + //Estilos del contenido principal + .contenido + width: 664px + .contenido-flexible + width: 100% + justify-content: flex-start + + +// Large devices (desktops, 992px and up) ======================================================================= +@media (min-width: 992px) + .container-fluid + padding-left: 0px + padding-right: 0px + //Estilos del contenido principal + .contenido + width: 35% + .contenido-flexible + width: 100% + justify-content: flex-start + + + + + \ No newline at end of file diff --git a/UyTube_web/web/css/contenido-consulta-usuario.css b/UyTube_web/web/css/contenido-consulta-usuario.css index b29d8f5272751b8c404015a5fd45b1a9ee6b9581..5467961c7a48389bc311824b673220168145543b 100644 --- a/UyTube_web/web/css/contenido-consulta-usuario.css +++ b/UyTube_web/web/css/contenido-consulta-usuario.css @@ -23,6 +23,9 @@ flex-shrink: 0; } .contenido .contenido-flexible h3 { width: 100%; } + .contenido .contenido-flexible #btnBaja, .contenido .contenido-flexible #btnBuscar { + height: 38px; + min-width: 198px; } @media (max-width: 340px) { .container-fluid { diff --git a/UyTube_web/web/css/contenido-consulta-usuario.css.map b/UyTube_web/web/css/contenido-consulta-usuario.css.map new file mode 100644 index 0000000000000000000000000000000000000000..eab302ba3d2e54859f0c43330169acd833fa40af --- /dev/null +++ b/UyTube_web/web/css/contenido-consulta-usuario.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AAEA,UAAU;EACN,gBAAgB,ECUH,OAAO;EDTpB,UAAU,EAAE,KAAK;EACjB,aAAa,EAAE,iBAA4B;EAC3C,UAAU,EAAE,iBAA4B;EACxC,KAAK,EAAE,IAAI;;AAEf,UAAU;EACN,gBAAgB,ECGH,OAAO;EDFpB,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,IAAI;EAClB,KAAK,EAAE,MAAM;EACb,MAAM,EAAE,IAAI;EACZ,8BAAmB;IACf,gBAAgB,ECJP,OAAO;IDKhB,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,GAAG;IACnB,eAAe,EAAE,aAAa;IAC9B,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,CAAC;IACd,iCAAE;MACE,KAAK,EAAE,IAAI;IACf,kFAAoB;MAChB,MAAM,EAAE,IAAI;MACZ,SAAS,EAAE,KAAK;;AAG5B,yBAAyB;EACrB,gBAAgB;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;;EAGtB,UAAU;IACN,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;IAClB,8BAAmB;MACf,KAAK,EAAE,IAAI;MACX,eAAe,EAAE,UAAU;AAIvC,gDAAgD;EAC5C,gBAAgB;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;;EAGtB,UAAU;IACN,KAAK,EAAE,KAAK;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;IAClB,8BAAmB;MACf,KAAK,EAAE,IAAI;MACX,eAAe,EAAE,UAAU;AAIvC,gDAAgD;EAC5C,gBAAgB;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;;EAGtB,UAAU;IACN,KAAK,EAAE,KAAK;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;IAClB,8BAAmB;MACf,KAAK,EAAE,IAAI;MACX,eAAe,EAAE,UAAU;IAE/B,cAAG;MACC,KAAK,EAAE,GAAG;AAItB,mDAAmD;EAC/C,gBAAgB;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;;EAGtB,UAAU;IACN,KAAK,EAAE,KAAK;IACZ,8BAAmB;MACf,KAAK,EAAE,IAAI;MACX,eAAe,EAAE,UAAU;AAIvC,mDAAmD;EAC/C,gBAAgB;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;;EAGtB,UAAU;IACN,KAAK,EAAE,KAAK;IACZ,8BAAmB;MACf,KAAK,EAAE,IAAI;MACX,eAAe,EAAE,UAAU;AAIvC,mDAAmD;EAC/C,gBAAgB;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;;EAGtB,UAAU;IACN,KAAK,EAAE,KAAK;IACZ,8BAAmB;MACf,KAAK,EAAE,IAAI;MACX,eAAe,EAAE,UAAU;AAIvC,yBAAyB;EACrB,gBAAgB;IACZ,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;;EAEtB,UAAU;IACN,KAAK,EAAE,KAAK;IACZ,8BAAmB;MACf,KAAK,EAAE,IAAI;MACX,eAAe,EAAE,UAAU", +"sources": ["contenido-consulta-usuario.sass","_colores.sass"], +"names": [], +"file": "contenido-consulta-usuario.css" +} \ No newline at end of file diff --git a/UyTube_web/web/css/contenido-consulta-usuario.sass b/UyTube_web/web/css/contenido-consulta-usuario.sass index d8cbcacf9a64ecba7245ed891383755c7b875361..e3f771ed38d27f3a947b52219d8edc36a11b79b9 100644 --- a/UyTube_web/web/css/contenido-consulta-usuario.sass +++ b/UyTube_web/web/css/contenido-consulta-usuario.sass @@ -25,7 +25,9 @@ flex-shrink: 0 h3 width: 100% - + #btnBaja, #btnBuscar + height: 38px + min-width: 198px // Para un maximo de 340px ================================================================================ @media (max-width: 340px) diff --git a/UyTube_web/web/imagenes/perfiles/JotaJota96.JPG b/UyTube_web/web/imagenes/perfiles/JotaJota96.JPG deleted file mode 100644 index ceb729c72251514cd8147595e3d3470c5fe008f2..0000000000000000000000000000000000000000 Binary files a/UyTube_web/web/imagenes/perfiles/JotaJota96.JPG and /dev/null differ diff --git a/UyTube_web/web/imagenes/perfiles/LuC31G.jpg b/UyTube_web/web/imagenes/perfiles/LuC31G.jpg deleted file mode 100644 index f22efc5908db0af0594d76d75ae3f89ebdff93a6..0000000000000000000000000000000000000000 Binary files a/UyTube_web/web/imagenes/perfiles/LuC31G.jpg and /dev/null differ diff --git a/UyTube_web/web/imagenes/perfiles/MCBolso.jpg b/UyTube_web/web/imagenes/perfiles/MCBolso.jpg deleted file mode 100644 index 35469b84ed023de4e5a7581095434bcbf69719d1..0000000000000000000000000000000000000000 Binary files a/UyTube_web/web/imagenes/perfiles/MCBolso.jpg and /dev/null differ diff --git a/UyTube_web/web/imagenes/perfiles/camilillo15.jpg b/UyTube_web/web/imagenes/perfiles/camilillo15.jpg deleted file mode 100644 index dc36ba95eecc24c956cbaf03f53dccda2f9317bb..0000000000000000000000000000000000000000 Binary files a/UyTube_web/web/imagenes/perfiles/camilillo15.jpg and /dev/null differ diff --git a/UyTube_web/web/imagenes/perfiles/jarrieta31.jpg b/UyTube_web/web/imagenes/perfiles/jarrieta31.jpg deleted file mode 100644 index 421215cb9a5a007be104366f69efa5ea7277d5ea..0000000000000000000000000000000000000000 Binary files a/UyTube_web/web/imagenes/perfiles/jarrieta31.jpg and /dev/null differ diff --git a/UyTube_web/web/include/filtro-visible.html b/UyTube_web/web/include/filtro-visible.html deleted file mode 100644 index d9beac175028ea277a6733025224b37f7c69e788..0000000000000000000000000000000000000000 --- a/UyTube_web/web/include/filtro-visible.html +++ /dev/null @@ -1,29 +0,0 @@ -<%@page contentType="text/html" pageEncoding="UTF-8"%> -<!DOCTYPE html> - -<!-- - Filtros ocultos ---> -<div> - <div class="form-row"> - <div class="form-group col-md-3"> - <label for="inputState">Filtrar por</label> - <select id="inputState" class="form-control" name="filtro" form="formBuscar"> - <option selected>Todo</option> - <option>Canales</option> - <option>Videos</option> - <option>Listas de reproducción</option> - </select> - </div> - <div class="form-group col-md-3"> - <label for="inputState">Ordenar por</label> - <select id="inputState" class="form-control" name="orden" form="formBuscar" > - <option selected>Alfabético</option> - <option>Fecha</option> - </select> - </div> - <div class="form-group col-md-6"> - - </div> - </div> -</div> diff --git a/UyTube_web/web/include/filtro-visible.jsp b/UyTube_web/web/include/filtro-visible.jsp new file mode 100644 index 0000000000000000000000000000000000000000..594d9e5ef3fc357bab34150d2f9bfdcccb8a0241 --- /dev/null +++ b/UyTube_web/web/include/filtro-visible.jsp @@ -0,0 +1,67 @@ +<%-- + Document : filtro-visible + Created on : 21/10/2019, 02:00:09 AM + Author : Juan +--%> +<%@page import="java.util.ArrayList"%> +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> + +<!-- + Filtros ocultos +--> +<% + ArrayList<String> opcionesFiltro = new ArrayList(); + opcionesFiltro.add("Todo"); + opcionesFiltro.add("Canales"); + opcionesFiltro.add("Videos"); + opcionesFiltro.add("Listas"); + + ArrayList<String> opcionesOrden = new ArrayList(); + opcionesOrden.add("Alfabético"); + opcionesOrden.add("Fecha"); + + String opcionFiltroSeleccionado = (String) request.getParameter("filtro"); + if (opcionFiltroSeleccionado == null){ + opcionFiltroSeleccionado = "Todo"; + } + String opcionOrdenSeleccionado = (String) request.getParameter("orden"); + if (opcionOrdenSeleccionado == null){ + opcionOrdenSeleccionado = "Fecha"; + } +%> +<div> + <div class="form-row"> + <div class="form-group col-md-3"> + <label for="inputState">Filtrar por</label> + <select id="inputState" class="form-control" name="filtro" form="formBuscar"> + <% + for (String s : opcionesFiltro){ + String selected = ""; + if (opcionFiltroSeleccionado.equals(s)){ + selected = "selected"; + } + %> + <option <%= selected %>><%= s %></option> + <%}%> + </select> + </div> + <div class="form-group col-md-3"> + <label for="inputState">Ordenar por</label> + <select id="inputState" class="form-control" name="orden" form="formBuscar" > + <% + for (String s : opcionesOrden){ + String selected = ""; + if (opcionOrdenSeleccionado.equals(s)){ + selected = "selected"; + } + %> + <option <%= selected %>><%= s %></option> + <%}%> + </select> + </div> + <div class="form-group col-md-6"> + </div> + </div> +</div> + diff --git a/UyTube_web/web/include/header-usuario.jsp b/UyTube_web/web/include/header-usuario.jsp index 5e7be6315c0fb363c4d64fb028c14f37d4327c95..ada77587e67d588f361d5e52cba0c2fd233e48de 100644 --- a/UyTube_web/web/include/header-usuario.jsp +++ b/UyTube_web/web/include/header-usuario.jsp @@ -25,7 +25,7 @@ and open the template in the editor. <div class="navbar-dark item-header item-header2"> <div id="navbarSupportedContent"> <form class="form-inline my-2 my-lg-0 formBuscar" action="/uytube/buscar" id="formBuscar" method="get"> - <input class=" mr-sm-2" name="texto" type="search" placeholder="Search" aria-label="Search"> + <input class=" mr-sm-2" name="texto" type="search" placeholder="Buscar" aria-label="Search"> <button class="btn btn-primary" id="btnBuscar" type="submit">Buscar</button> </form> </div> @@ -38,21 +38,9 @@ and open the template in the editor. </div> <div class="fotoPerfil"> <a href="/uytube/usuario-consultar?id=<%= usu.getNickname()%>"> - <% - if (usu.getImagen() == null || usu.getImagen().equals("")) { - %> - <img id="fotoPerfil" src="imagenes/ukp.png" alt="Perfil"> - <% - } else { - %> - <img id="fotoPerfil" src=<%= usu.getImagen()%> alt="Perfil"> - <% - } - %> + <img id="fotoPerfil" src="usuario-imagen?id=<%= usu.getNickname() %>" alt="Perfil"> </a> </div> - - </div> </nav> </header> diff --git a/UyTube_web/web/include/header-visitante.jsp b/UyTube_web/web/include/header-visitante.jsp index 349551e2da42fb4e7e1de84bb63b1c83d91c996e..4d3b6217036847dcdf0ed3282de284a416098e26 100644 --- a/UyTube_web/web/include/header-visitante.jsp +++ b/UyTube_web/web/include/header-visitante.jsp @@ -15,7 +15,7 @@ Header para el visitante <div class="navbar-dark item-header item-header2"> <div id="navbarSupportedContent"> <form class="form-inline my-2 my-lg-0 formBuscar" action="/uytube/buscar" id="formBuscar" method="get"> - <input class=" mr-sm-2" name="texto" type="search" placeholder="Search" aria-label="Search"> + <input class=" mr-sm-2" name="texto" type="search" placeholder="Buscar" aria-label="Search"> <button class="btn btn-primary" id="btnBuscar" type="submit">Buscar</button> </form> </div> diff --git a/UyTube_web/web/index.jsp b/UyTube_web/web/index.jsp index 46850dfad7c3fd40f98d5f3a7193a0ca457abce0..38d89b90ac32dbf5d20684f1792a4199961bf4c0 100644 --- a/UyTube_web/web/index.jsp +++ b/UyTube_web/web/index.jsp @@ -4,6 +4,9 @@ Author : administrador --%> +<%@page import="com.uytube.AltaUsuario"%> +<%@page import="java.io.File"%> +<%@page import="Logica.Fabrica"%> <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html lang="es"> @@ -35,10 +38,10 @@ </div> </div> </div> - + <% response.sendRedirect("presentacion"); %> - - <%@ include file='include/widgets.html' %> + + <%@ include file='include/widgets.html' %> <%@ include file='include/footer.html' %> <script src="js/jquery-3.4.1.min_1.js"></script> diff --git a/UyTube_web/web/js/alta-usuario.js b/UyTube_web/web/js/alta-usuario.js index 2da3d7565009c6676d5e0c7a2d6255d5bb175b16..0ffcf565e605c8cb99859f50b699e5ec00bd0862 100644 --- a/UyTube_web/web/js/alta-usuario.js +++ b/UyTube_web/web/js/alta-usuario.js @@ -13,6 +13,9 @@ $("#input_Nickname").keyup(function(){ }, function(respuesta, status){ //alert("Data: " + respuesta + "\nStatus: " + status); $("#msjNickname").text(respuesta); + if(respuesta == "Este nickname no está disponible"){ + $("#msjNickname").css("color","red"); + } }); }); @@ -33,3 +36,20 @@ $("#email").keyup(function(){ }); }); +var check = function () { + if (document.getElementById('input_Contrasenia').value ==document.getElementById('input_Repetir_contraseña').value) { + document.getElementById('message').style.color = 'green'; + document.getElementById('message').innerHTML = 'Correcto'; + document.getElementById("btn_Registrarme").disabled = false; + if (document.getElementById('input_Contrasenia').value == ""){ + document.getElementById('message').style.color = 'red'; + document.getElementById('message').innerHTML = 'Ingrese la contraseña'; + document.getElementById("btn_Registrarme").disabled = true; + } + } else { + document.getElementById('message').style.color = 'red'; + document.getElementById('message').innerHTML = 'No son iguales'; + document.getElementById("btn_Registrarme").disabled = true; + } +} + diff --git a/UyTube_web/web/js/consultar-video.js b/UyTube_web/web/js/consultar-video.js index 6987dfed7d47d5571b681b2fe8b24d37058e100e..3de6d056f909d4ee9afe57d4615a4416ba48974a 100644 --- a/UyTube_web/web/js/consultar-video.js +++ b/UyTube_web/web/js/consultar-video.js @@ -74,14 +74,47 @@ $("#btnCancelar").on('click',function(){ $("#input_descripcion").val(""); }); -//boton agregar lista de reproduccion -$("#btnAgregarALista").on('click',function(){ - $.post("/uytube/video-consultar", +//boton agregar a lista de reproduccion +var agregarALista = function(){ + //$("#agregarALista .close").click(); //Cierra el modal + //alert($("#defaultCheck1").value()); + alert("Diste click"); + // $.post("/uytube/video-consultar", + // { + // accion: "agregarALista" + // }, function(respuesta, status){ + + // }); +}; + +// Checkbox para agregar o quitar de la Lista de Reproduccion +$(".checkLista").on('change', function(){ + var id_video = $("#video").attr("value"); + var id_lista = $(this).val(); + if($(this).prop('checked') == true){ + $.post("/uytube/video-consultar", { - accion: "agregarALista" + accion: "agregarALista", + idVideo: id_video, + idLista: id_lista }, function(respuesta, status){ - alert(respuesta); - }); + if(respuesta != "ok"){ + alert("No se ha podido agregar el video a la lista.") + } + }); + + }else{ + $.post("/uytube/video-consultar", + { + accion: "quitarDeLista", + idVideo: id_video, + idLista: id_lista + }, function(respuesta, status){ + if(respuesta != "ok"){ + alert("No se ha podido quitar el video de la lista.") + } + }); + } }); //boton agregar lista de reproduccion diff --git a/datos_de_prueba.sql b/datos_de_prueba/datos_de_prueba.sql similarity index 99% rename from datos_de_prueba.sql rename to datos_de_prueba/datos_de_prueba.sql index ae831187fdb7c1f159b7dfcc6f830c5c54a33633..0c234ac47a821df9f2a30ff356ee2b3158f00a57 100644 --- a/datos_de_prueba.sql +++ b/datos_de_prueba/datos_de_prueba.sql @@ -9,6 +9,7 @@ INSERT INTO public.categoria (nombre) VALUES ('MUSICA') ,('DEPORTE') ,('GAMING') +-- Si te dio error con el undefined, comenta la siguiente linea ,('UNDEFINED') ; diff --git a/datos_de_prueba/imagenes_de_perfil/JotaJota96.jpg b/datos_de_prueba/imagenes_de_perfil/JotaJota96.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a899b91dc36e7d8ffbd475090bd6a1d1bec7b556 Binary files /dev/null and b/datos_de_prueba/imagenes_de_perfil/JotaJota96.jpg differ diff --git a/UyTube_estacion_de_trabajo/Imagenes/perfiles/LuC31G.jpg b/datos_de_prueba/imagenes_de_perfil/LuC31G.jpg similarity index 100% rename from UyTube_estacion_de_trabajo/Imagenes/perfiles/LuC31G.jpg rename to datos_de_prueba/imagenes_de_perfil/LuC31G.jpg diff --git a/UyTube_estacion_de_trabajo/Imagenes/perfiles/MCBolso.jpg b/datos_de_prueba/imagenes_de_perfil/MCBolso.jpg similarity index 100% rename from UyTube_estacion_de_trabajo/Imagenes/perfiles/MCBolso.jpg rename to datos_de_prueba/imagenes_de_perfil/MCBolso.jpg diff --git a/UyTube_estacion_de_trabajo/Imagenes/perfiles/camilillo15.jpg b/datos_de_prueba/imagenes_de_perfil/camilillo15.jpg similarity index 100% rename from UyTube_estacion_de_trabajo/Imagenes/perfiles/camilillo15.jpg rename to datos_de_prueba/imagenes_de_perfil/camilillo15.jpg diff --git a/UyTube_estacion_de_trabajo/Imagenes/perfiles/jarrieta31.jpg b/datos_de_prueba/imagenes_de_perfil/jarrieta31.jpg similarity index 100% rename from UyTube_estacion_de_trabajo/Imagenes/perfiles/jarrieta31.jpg rename to datos_de_prueba/imagenes_de_perfil/jarrieta31.jpg