@ -1,7 +1,6 @@
package com.example.application.views.tickets ;
import com.example.application.api.RedmineClient ;
import com.example.application.api.SecurityService ;
import com.example.application.api.ServerPrpperties ;
import com.example.application.models.Ticket ;
import com.example.application.views.MainLayout ;
@ -23,15 +22,12 @@ public class MisTicketsView extends VerticalLayout {
private final RedmineClient redmineClient ;
private final Grid < Ticket > grid ;
private final SecurityService securityService ;
@Autowired
public MisTicketsView ( ServerPrpperties prpperties , SecurityService securityService ) {
public MisTicketsView ( ServerPrpperties prpperties ) {
this . redmineClient = new RedmineClient ( prpperties . REDMINE_URL , prpperties . API_KEY ) ;
this . grid = new Grid < > ( Ticket . class , false ) ;
this . securityService = securityService ;
/ / Definir columnas en el orden deseado
grid . addColumn ( Ticket : : getId ) . setHeader ( "No." )
. setWidth ( "4em" ) . setFlexGrow ( 0 ) ;
grid . addColumn ( Ticket : : getSubject ) . setHeader ( "Asunto" )
@ -41,6 +37,7 @@ public class MisTicketsView extends VerticalLayout {
grid . addColumn ( Ticket : : getDescription ) . setHeader ( "Descripción" )
. setAutoWidth ( true ) . setFlexGrow ( 1 ) ;
/ / Ajustar tamaño del Grid y Layout
grid . setSizeFull ( ) ;
setSizeFull ( ) ;
@ -51,39 +48,29 @@ public class MisTicketsView extends VerticalLayout {
add ( grid ) ;
expand ( grid ) ;
loadTickets ( getAuthenticatedUsername ( ) ) ;
loadTickets ( ) ;
}
private void loadTickets ( String authenticatedUsername ) {
private void loadTickets ( ) {
List < Ticket > tickets = redmineClient . getTickets ( ) ;
tickets . removeIf ( ticket - > ! ticket . getAuthor ( ) . getUsername ( ) . equals ( authenticatedUsername ) ) ;
System . out . println ( "Tickets para mostrar: " + tickets . size ( ) ) ;
grid . setItems ( tickets ) ;
}
private String getAuthenticatedUsername ( ) {
String username = securityService . getAuthenticatedUser ( ) . getUsername ( ) ;
System . out . println ( "Usuario autenticado: " + username ) ;
return username ;
}
private ComponentRenderer < Span , Ticket > createStatusRender ( ) {
return new ComponentRenderer < > ( ticket - > {
Span span = new Span ( ticket . getStatus ( ) ) ;
switch ( ticket . getStatus ( ) . toLowerCase ( ) ) {
case "op en" :
span . getElement ( ) . getStyle ( ) . set ( "color" , "whit e" ) ;
case "en curso" :
span . getElement ( ) . getStyle ( ) . set ( "color" , "purple" ) ;
break ;
case "closed " :
span . getElement ( ) . getStyle ( ) . set ( "color" , "whit e" ) ;
case "comentarios " :
span . getElement ( ) . getStyle ( ) . set ( "color" , "orang e") ;
break ;
case "in progress" :
span . getElement ( ) . getStyle ( ) . set ( "background-color" , "orange" ) ;
span . getElement ( ) . getStyle ( ) . set ( "color" , "black" ) ;
case "resuelta" :
span . getElement ( ) . getStyle ( ) . set ( "color" , "green" ) ;
break ;
default :
span . getElement ( ) . getStyle ( ) . set ( "background-color" , "blue" ) ;
span . getElement ( ) . getStyle ( ) . set ( "color" , "white" ) ;
span . getElement ( ) . getStyle ( ) . set ( "color" , "blue" ) ;
break ;
}
return span ;