Browse Source

Se modidfico la pantalla para mostrar los tickets, se añadio la columna de estado del ticket ademas se ajusto para que ocupara todo el espacio y tambien para que mostrara todos los tickets existentes no solo 25 como al principio, ademas se hizo un ajuste en la pantalla de LOGIN se cambio un texto

pull/1/head
parent
commit
f332f97bcb
4 changed files with 39 additions and 18 deletions
  1. +29
    -16
      src/main/java/com/example/application/api/RedmineClient.java
  2. +7
    -1
      src/main/java/com/example/application/models/Ticket.java
  3. +1
    -1
      src/main/java/com/example/application/views/login/LoginView.java
  4. +2
    -0
      src/main/java/com/example/application/views/tickets/MisTicketsView.java

+ 29
- 16
src/main/java/com/example/application/api/RedmineClient.java View File

@ -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<Ticket> getTickets() {
List<Ticket> 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<String> 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<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() == 200) {
String responseBody = response.body();
List<Ticket> 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;
}


+ 7
- 1
src/main/java/com/example/application/models/Ticket.java View File

@ -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;
}
}

+ 1
- 1
src/main/java/com/example/application/views/login/LoginView.java View File

@ -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");


+ 2
- 0
src/main/java/com/example/application/views/tickets/MisTicketsView.java View File

@ -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);


Loading…
Cancel
Save