From f332f97bcb4fb7e7b3adf7c8556bd1bd86a81b77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Antonio=20Ram=C3=ADrez=20Galv=C3=A1n?= Date: Wed, 5 Jun 2024 14:34:12 -0600 Subject: [PATCH] =?UTF-8?q?Se=20modidfico=20la=20pantalla=20para=20mostrar?= =?UTF-8?q?=20los=20tickets,=20se=20a=C3=B1adio=20la=20columna=20de=20esta?= =?UTF-8?q?do=20del=20ticket=20ademas=20se=20ajusto=20para=20que=20ocupara?= =?UTF-8?q?=20todo=20el=20espacio=20y=20tambien=20para=20que=20mostrara=20?= =?UTF-8?q?todos=20los=20tickets=20existentes=20no=20solo=2025=20como=20al?= =?UTF-8?q?=20principio,=20ademas=20se=20hizo=20un=20ajuste=20en=20la=20pa?= =?UTF-8?q?ntalla=20de=20LOGIN=20se=20cambio=20un=20texto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/api/RedmineClient.java | 45 ++++++++++++------- .../example/application/models/Ticket.java | 8 +++- .../application/views/login/LoginView.java | 2 +- .../views/tickets/MisTicketsView.java | 2 + 4 files changed, 39 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/example/application/api/RedmineClient.java b/src/main/java/com/example/application/api/RedmineClient.java index 72fd8e0..9e74062 100644 --- a/src/main/java/com/example/application/api/RedmineClient.java +++ b/src/main/java/com/example/application/api/RedmineClient.java @@ -20,26 +20,38 @@ public class RedmineClient { private static final String REDMINE_URL = "http://localhost:3000"; private static final String API_KEY = "cf3be6168e66c99892c6212ea0bc64e8ab1c6848"; + private static final int PAGE_SIZE = 25; public List getTickets() { List tickets = new ArrayList<>(); HttpClient client = HttpClient.newHttpClient(); - HttpRequest request = HttpRequest.newBuilder() - .uri(URI.create(REDMINE_URL + "/issues.json")) - .header("Content-Type", "application/json") - .header("X-Redmine-API-Key", API_KEY) - .build(); - - try { - HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); - if (response.statusCode() == 200) { - String responseBody = response.body(); - tickets = parseTickets(responseBody); - } else { - System.err.println("Error en la respuesta: " + response.statusCode()); + int offset = 0; + + while (true) { + HttpRequest request = HttpRequest.newBuilder() + .uri(URI.create(REDMINE_URL + "/issues.json?limit=" + PAGE_SIZE + "&offset=" + offset)) + .header("Content-Type", "application/json") + .header("X-Redmine-API-Key", API_KEY) + .build(); + + try { + HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); + if (response.statusCode() == 200) { + String responseBody = response.body(); + List pageTickets = parseTickets(responseBody); + tickets.addAll(pageTickets); + if (pageTickets.size() < PAGE_SIZE) { + break; + } + offset += PAGE_SIZE; + } else { + System.err.println("Error en la respuesta: " + response.statusCode()); + break; + } + } catch (Exception e) { + e.printStackTrace(); + break; } - } catch (Exception e) { - e.printStackTrace(); } return tickets; } @@ -53,7 +65,8 @@ public class RedmineClient { int id = issue.get("id").getAsInt(); String subject = issue.get("subject").getAsString(); String description = issue.has("description") ? issue.get("description").getAsString() : ""; - tickets.add(new Ticket(id, subject, description)); + String status = issue.getAsJsonObject("status").get("name").getAsString(); + tickets.add(new Ticket(id, subject, description, status)); } return tickets; } diff --git a/src/main/java/com/example/application/models/Ticket.java b/src/main/java/com/example/application/models/Ticket.java index f0a51fe..6b662a5 100644 --- a/src/main/java/com/example/application/models/Ticket.java +++ b/src/main/java/com/example/application/models/Ticket.java @@ -7,11 +7,13 @@ public class Ticket { private int id; private String subject; private String description; + private String status; - public Ticket(int id, String subject, String description) { + public Ticket(int id, String subject, String description, String status) { this.id = id; this.subject = subject; this.description = description; + this.status = status; } public int getId() { @@ -25,4 +27,8 @@ public class Ticket { public String getDescription() { return description; } + + public String getStatus() { + return status; + } } diff --git a/src/main/java/com/example/application/views/login/LoginView.java b/src/main/java/com/example/application/views/login/LoginView.java index 6df281c..464e217 100644 --- a/src/main/java/com/example/application/views/login/LoginView.java +++ b/src/main/java/com/example/application/views/login/LoginView.java @@ -28,7 +28,7 @@ public class LoginView extends VerticalLayout implements BeforeEnterObserver { LoginI18n i18n = LoginI18n.createDefault(); LoginI18n.Form i18nFormulario = i18n.getForm(); - i18nFormulario.setTitle("Bienvenidos"); + i18nFormulario.setTitle("Sistema de Soporte Técnico Gcia. de T.I"); i18nFormulario.setUsername("Usuario"); i18nFormulario.setPassword("Contraseña"); i18nFormulario.setSubmit("Iniciar sesion"); diff --git a/src/main/java/com/example/application/views/tickets/MisTicketsView.java b/src/main/java/com/example/application/views/tickets/MisTicketsView.java index 94250bd..804caa1 100644 --- a/src/main/java/com/example/application/views/tickets/MisTicketsView.java +++ b/src/main/java/com/example/application/views/tickets/MisTicketsView.java @@ -26,6 +26,8 @@ public class MisTicketsView extends VerticalLayout { .setWidth("4em").setFlexGrow(0).setTextAlign(ColumnTextAlign.CENTER); grid.addColumn(Ticket::getSubject).setHeader("Asunto") .setAutoWidth(true).setFlexGrow(0); + grid.addColumn(Ticket::getStatus).setHeader("Estdo") + .setWidth("7em").setFlexGrow(0); grid.addColumn(Ticket::getDescription).setHeader("Description") .setFlexGrow(1);