Skip to content
Snippets Groups Projects
Commit 91c5a6d9 authored by JotaJota96's avatar JotaJota96
Browse files

Implementado listado de valoraciones por AJAX

Solucionado: aparecia boton para modificar listas por defecto

Mejora en CUsuario.seleccionarUsuario(...)
parent 2bffc978
No related branches found
No related tags found
No related merge requests found
......@@ -7,7 +7,6 @@ import JPAControllerClasses.UsuarioJpaController;
import Logica.Clases.Categoria;
import Logica.Clases.ListaPorDefecto;
import Logica.Clases.Usuario;
import Logica.Clases.Video;
import Logica.DataType.DtCanal;
import Logica.DataType.DtComentario;
import Logica.DataType.DtListaDeReproduccion;
......@@ -759,7 +758,11 @@ public class CUsuario implements IUsuario {
@Override
public DtUsuario seleccionarUsuario(String nickname) {
usuarioSeleccionado = obtenerUsuarios().get(nickname);
if (usuarioActual != null && usuarioActual.getNickname().equals(nickname)){
usuarioSeleccionado = usuarioActual;
}else{
usuarioSeleccionado = obtenerUsuarios().get(nickname);
}
if (usuarioSeleccionado == null){
throw new RuntimeException("No se encontro ningun usuario con ese nickname");
}
......
package Logica;
import Logica.DataType.DtValoracion;
import Logica.Enumerados.TipoValoracion;
import Logica.Interfaces.IAdmin;
import Logica.Interfaces.IUsuario;
import java.util.ArrayList;
......
No preview for this file type
......@@ -20,7 +20,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ConsultaVideo extends HttpServlet {
/**
* Handles the HTTP <code>GET</code> method.
*
......@@ -118,7 +118,18 @@ public class ConsultaVideo extends HttpServlet {
* solucionar de manera correcta, por favor comuniquese
* conmigo
*/
/*
/**
* En respuesta al comentario anterior:
* Parece ser que el
* error estaba en la logica, JPA hacia cosas raras.
* Modifiqué la funcion seleccionarUsuario(nickname) en la
* Logica para que si se intenta seleccionar al usuario que
* tiene la sesion iniciada, se apunte a usuarioActual y no
* a una copia de la entidad (generada por JPA)
* Descomento
* el codigo que parecia no funcionar y comento el otro
* (aunque sospecho que tampoco funcionaba)
*/
int idVideo = Integer.valueOf(request.getParameter("idVideo"));
DtValoracion dtVal = null;
switch (accion) {
......@@ -141,8 +152,8 @@ public class ConsultaVideo extends HttpServlet {
respuesta = strCantLikes + ":" + strCantDisLikes;
response.getWriter().write(respuesta);
break;
*/
/*
IAdmin parche = Fabrica.getInstancia().getIAdmin();
int idVideo = Integer.valueOf(request.getParameter("idVideo"));
......@@ -168,6 +179,7 @@ public class ConsultaVideo extends HttpServlet {
respuesta = strCantLikes + ":" + strCantDisLikes;
response.getWriter().write(respuesta);
break;
*/
}
// ---- Acciones relacionadas a COMENTAR VIDEO ----
case "comentarVideo":
......@@ -210,15 +222,13 @@ public class ConsultaVideo extends HttpServlet {
response.getWriter().write(respuesta);
break;
case "listarValoraciones":
int idVideo = Integer.valueOf(request.getParameter("idVideo"));
respuesta = "";
sys.seleccionarVideo(idVideo);
ArrayList<DtValoracion> valoraciones = sys.obtenerValoracionesDeVideo();
for (DtValoracion val : valoraciones){
respuesta += val.getNickname() + " le ha dado " + val.getVal() + "\n";
}
if (valoraciones.isEmpty()){
respuesta = "Este video no tiene valoraciones";
respuesta += val.getNickname() + ":" + val.getVal() + ";";
}
response.getWriter().write(respuesta);
break;
default:
......
......@@ -170,7 +170,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>
......@@ -311,24 +311,15 @@
<h3 class="modal-title">Valoraciones</h3>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<table class="table table-striped table-fixed" id="tblGrid">
<table class="table table-striped table-fixed" id="tblValoraciones">
<thead id="tblHead">
<tr>
<th>Usuario</th>
<th>Valoración</th>
</tr>
</thead>
<tbody>
<%
for (DtValoracion dtv : valoraciones){
%>
<tr>
<td><%= dtv.getNickname() %></td>
<td><%= dtv.getVal()%></td>
</tr>
<%
}
%>
<tbody id="tblValoraciones-bodyRows">
<!-- El contenido es obtenido por jQuery -->
</tbody>
</table>
<div class="modal-footer">
......@@ -345,7 +336,7 @@
<style>
.table-fixed tbody {
display:block;
height:350px; /* Altura a la cual aparece el scroll */
height:250px; /* Altura a la cual aparece el scroll */
overflow:auto;
}
.table-fixed thead, .table-fixed tbody tr {
......@@ -354,11 +345,7 @@
}
</style>
<%@ include file='include/widgets.html' %>
<%@ include file='include/footer.html' %>
......
......@@ -4,6 +4,7 @@
Author : administrador
--%>
<%@page import="Logica.Enumerados.TipoListaDeReproduccion"%>
<%@page import="Logica.DataType.DtVideo"%>
<%@page import="java.util.ArrayList"%>
<%@page import="Logica.DataType.DtListaDeReproduccion"%>
......@@ -96,34 +97,27 @@
<h5><%= listasRep.getPrivacidad()%></h5>
<h5><%= listasRep.getCategoria()%></h5>
</div>
<%
if (sesionIniciada && propietario) {
%>
<a href="lista-modificar?idUsu=<%= usuario %>&idList=<%= listasRep.getId()%>">
<div class="p-2 d-flex align-items-end">
<button type="button" class="btn btn-primary">Modificar</button>
</div>
</a>
<%
}
%>
<%
if (sesionIniciada && propietario && listasRep.getTipo() != TipoListaDeReproduccion.POR_DEFECTO) {
%>
<div class="p-2 d-flex align-items-end">
<a href="lista-modificar?idUsu=<%= usuario%>&idList=<%= listasRep.getId()%>">
<button type="button" class="btn btn-primary">MODIFICAR</button>
</a>
</div>
<%
}
%>
</div>
<!--FIN INFORMACION LISTA.REP-->
<hr>
<h3>VIDEOS:</h3>
<!--LISTA DE CONTENIDO-->
<h3>VIDEOS:</h3>
<div class="tab-pane fade show active" id="videos" role="tabpanel" aria-labelledby="nav-VIDEO-tab">
<!--PRIMER VIDEO-->
<%
for (DtVideo elem : videos) {
String id = Funciones.Funciones.extraerIDYoutube(elem.getUrlVideoOriginal());
%>
......@@ -147,8 +141,6 @@
<%
}
%>
</div>
</section>
</div>
......
......@@ -84,6 +84,40 @@ $("#btnAgregarALista").on('click',function(){
});
});
//boton agregar lista de reproduccion
$("#btnListarValoraciones").on('click',function(){
// obtengo el id del video
var idVideo = $("#video").attr("value");
// mando una peticion post a esa ruta con los parametros entre {},
// y defino una funcion callback (ejecuta al recibir respuesta
$.post("/uytube/video-consultar",
{
accion: "listarValoraciones" ,
idVideo: idVideo
}, function(respuesta, status){
// esta variable contrendra el htm de las nuevas filas
var nuevasFilas = '';
// esta variable es un array con los pares (usuario:valoracion)
// cada par viene en la respuesta separado por punto y coma
var filasObtenidas = respuesta.split(";");
// itero sobre los elementos del array (el ultimo es vacio, por eso el -1)
for (var i = 0; i < filasObtenidas.length -1; i++){
// esta variable es un array en cuyo indice 0 esta el nickname de un usuario y en el 1 su valoracion
var fila = (filasObtenidas[i]).split(":");
// esta variable sera la fila procesada en esta iteracion, y contendra las dos celdas
var tr = '';
tr += '<tr>\n';
tr += '<td>' + fila[0] + '</td>\n';
tr += '<td>' + fila[1] + '</td>\n';
tr += '</tr>\n';
// concatena la nueva fila con las filas ya procesadas
nuevasFilas += tr;
}
// reemplaza el contenido de la etiqueta <body> con los nuevos datos
$("#tblValoraciones-bodyRows").html(nuevasFilas);
});
});
//Responeder comentarios, se dispara luego de la ventana modal
var responderComentario = function(){
$("#exampleModal .close").click(); //Cierra el modal
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment