diff --git a/src/main/java/mx/gob/jumapacelaya/api/RedmineClient.java b/src/main/java/mx/gob/jumapacelaya/api/RedmineClient.java index 4f57d39..a0748a4 100644 --- a/src/main/java/mx/gob/jumapacelaya/api/RedmineClient.java +++ b/src/main/java/mx/gob/jumapacelaya/api/RedmineClient.java @@ -152,9 +152,18 @@ public class RedmineClient { } } + //Verifica y obtiene el ID del tipo de ticket + Integer trackerId = null; + if (issue.has("tracker") && !issue.get("tracker").isJsonNull()) { + JsonObject trackerObject = issue.getAsJsonObject("tracker"); + if (trackerObject.has("id") && !trackerObject.get("id").isJsonNull()) { + trackerId = trackerObject.get("id").getAsInt(); + } + } + // Agrega el ticket a la lista - tickets.add(new Ticket(id, subject, description, status, date != null ? date.toString() : "")); + tickets.add(new Ticket(id, subject, description, status, date != null ? date.toString() : "", trackerId)); } } else { System.out.println("La respuesta JSON no contiene la clave 'issues'"); diff --git a/src/main/java/mx/gob/jumapacelaya/models/Ticket.java b/src/main/java/mx/gob/jumapacelaya/models/Ticket.java index dc364dc..3ddece2 100644 --- a/src/main/java/mx/gob/jumapacelaya/models/Ticket.java +++ b/src/main/java/mx/gob/jumapacelaya/models/Ticket.java @@ -14,15 +14,17 @@ public class Ticket { private String status; private LocalDate dateCreate; private User author; + private Integer trackerId; - public Ticket(int id, String subject, String description, String status, String dateCreate) { + public Ticket(int id, String subject, String description, String status, String dateCreate, Integer trackerId) { this.id = id; this.subject = subject; this.description = description; this.status = status; this.dateCreate = LocalDate.parse(dateCreate); this.author = author; + this.trackerId = trackerId; } public int getId() { @@ -53,6 +55,13 @@ public class Ticket { return java.sql.Date.valueOf(this.dateCreate); } + public Integer getTrackerId() { + return trackerId; + } + + public void setTrackerId(Integer tipoId) { + this.trackerId = trackerId; + } public static class User { private String username; @@ -69,4 +78,34 @@ public class Ticket { this.username = username; } } + + + public String tiempoEst(Integer trackerId) { + if (trackerId == null) { + return "Desconocido"; + } + + switch (trackerId) { + case 1, 3, 9: + return "1 Dia"; + + case 2: + return "1-2 Dias"; + + case 4, 8: + return "1-3 Dias"; + + case 5: + return "1-3 Meses"; + + case 6: + return "1-5 Dias"; + + case 7: + return "2 Dias"; + + default: + return "N/A"; + } + } } diff --git a/src/main/java/mx/gob/jumapacelaya/views/MainLayout.java b/src/main/java/mx/gob/jumapacelaya/views/MainLayout.java index d8bfa3e..99dbf98 100644 --- a/src/main/java/mx/gob/jumapacelaya/views/MainLayout.java +++ b/src/main/java/mx/gob/jumapacelaya/views/MainLayout.java @@ -32,6 +32,7 @@ public class MainLayout extends AppLayout { public MainLayout(SecurityService securityService) { this.securityService = securityService; + this.getStyle().set("background-image", "red"); setPrimarySection(Section.DRAWER); addDrawerContent(); addHeaderContent(); diff --git a/src/main/java/mx/gob/jumapacelaya/views/tickets/AllTicketsView.java b/src/main/java/mx/gob/jumapacelaya/views/tickets/AllTicketsView.java index 04e0730..f16e631 100644 --- a/src/main/java/mx/gob/jumapacelaya/views/tickets/AllTicketsView.java +++ b/src/main/java/mx/gob/jumapacelaya/views/tickets/AllTicketsView.java @@ -54,6 +54,8 @@ public class AllTicketsView extends VerticalLayout { } }).setHeader("Fecha creacion"); + grid.addColumn(ticket -> ticket.tiempoEst(ticket.getTrackerId())).setHeader("Tiempo estimado de atencion").setAutoWidth(false); + grid.addColumn(Ticket::getDescription).setHeader("Descripcion").setWidth("25em"); grid.addThemeVariants(GridVariant.LUMO_WRAP_CELL_CONTENT); diff --git a/src/main/java/mx/gob/jumapacelaya/views/tickets/MisTicketsView.java b/src/main/java/mx/gob/jumapacelaya/views/tickets/MisTicketsView.java index ff107c1..9fb6210 100644 --- a/src/main/java/mx/gob/jumapacelaya/views/tickets/MisTicketsView.java +++ b/src/main/java/mx/gob/jumapacelaya/views/tickets/MisTicketsView.java @@ -22,8 +22,11 @@ import java.util.List; @Route(value="mytickets", layout = MainLayout.class) @AnonymousAllowed @PageTitle("Mis tickets") + + public class MisTicketsView extends VerticalLayout { + private final RedmineClient redmineClient; private final UserService userService; private final Grid grid; @@ -43,7 +46,17 @@ public class MisTicketsView extends VerticalLayout { grid.addColumn(createStatusRender()).setHeader("Estado"); - grid.addColumn(ticket -> formatDate(ticket.getDateCreate())).setHeader("Fecha creación"); + grid.addColumn(ticket -> { + Date date = ticket.getDateCreate(); + if (date != null) { + SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); + return formatter.format(date); + } else { + return ""; + } + }).setHeader("Fecha creacion"); + + grid.addColumn(ticket -> ticket.tiempoEst(ticket.getTrackerId())).setHeader("Tiempo estimado de atencion").setAutoWidth(false); grid.addColumn(Ticket::getDescription).setHeader("Descripción").setWidth("25em"); diff --git a/src/main/resources/META-INF/resources/images/bckgnd.png b/src/main/resources/META-INF/resources/images/bckgnd.png new file mode 100644 index 0000000..8b523af Binary files /dev/null and b/src/main/resources/META-INF/resources/images/bckgnd.png differ diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 99ce6ca..4aaa5ed 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -24,7 +24,7 @@ spring.ldap.password=Dr3na%134$4guA ########LOCAL###################################### redmine.url=http://localhost:10083 -redmine.api_key=ad3cb25c75b3b7a31b814da51626221d7a025d85 +redmine.api_key=69b347fdfbf01bb60a10ea6daa92eb86acd10e3b ###CONFIGURACION DEL TAMANO MAXIMO PERMITIDO PARA ARCHIVOS###