diff --git a/src/main/java/mx/gob/jumapacelaya/api/RedmineClient.java b/src/main/java/mx/gob/jumapacelaya/api/RedmineClient.java index cffa78d..78108c0 100644 --- a/src/main/java/mx/gob/jumapacelaya/api/RedmineClient.java +++ b/src/main/java/mx/gob/jumapacelaya/api/RedmineClient.java @@ -292,7 +292,7 @@ public class RedmineClient { HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); // Procesar la respuesta - if (response.statusCode() == 201) { + if (response.statusCode() == 201) { JsonObject jsonResponse = JsonParser.parseString(response.body()).getAsJsonObject(); return jsonResponse.get("upload").getAsJsonObject().get("token").getAsString(); } else { diff --git a/src/main/java/mx/gob/jumapacelaya/views/crearnuevoticket/CrearnuevoTicketView.java b/src/main/java/mx/gob/jumapacelaya/views/crearnuevoticket/CrearnuevoTicketView.java index 56748e9..5e9eff7 100644 --- a/src/main/java/mx/gob/jumapacelaya/views/crearnuevoticket/CrearnuevoTicketView.java +++ b/src/main/java/mx/gob/jumapacelaya/views/crearnuevoticket/CrearnuevoTicketView.java @@ -71,6 +71,23 @@ public class CrearnuevoTicketView extends VerticalLayout { Button createButton = new Button("Enviar ticket", event -> handleCreateButton(user, tipoTickets, asunto, descripcion)); createButton.addThemeVariants(ButtonVariant.LUMO_PRIMARY, ButtonVariant.LUMO_LARGE); + uploadFile.addSucceededListener(event -> { + handleFileUpload(event.getFileName()); + createButton.setEnabled(true); + }); + + uploadFile.addFailedListener(event -> { + // Habilitar el botón en caso de fallo + /* createButton.setEnabled(true);*/ + }); + + uploadFile.addStartedListener(event -> { + createButton.setEnabled(false); + }); + + createButton.setEnabled(true); + + //Alineacion de los componentes ComboBox Tipos de tickets y Descripcion del tipo de ticket HorizontalLayout firstFields = new HorizontalLayout(tipoTickets, ticketTypeDesc); @@ -94,13 +111,14 @@ public class CrearnuevoTicketView extends VerticalLayout { ticketTypeDesc.getStyle().set("padding", "10px"); + add(new H2("Crear nuevo ticket"), firstFields, fieldsLayout, buttonLayout); } private Upload createUploadComponent() { - MultiFileMemoryBuffer buffer = new MultiFileMemoryBuffer(); + buffer = new MultiFileMemoryBuffer(); Upload uploadFile = new Upload(buffer); - uploadFile.setMaxFiles(5); + uploadFile.setMaxFiles(3); uploadFile.setDropAllowed(true); UploadI18N i18N = new UploadI18N(); @@ -207,7 +225,8 @@ public class CrearnuevoTicketView extends VerticalLayout { issueDetails.put("tracker_id", selectedTrackerId); JsonArray uploadsJsonArray = new JsonArray(); - buffer.getFiles().forEach(fileName -> { + if (!buffer.getFiles().isEmpty()) { + buffer.getFiles().forEach(fileName -> { try (InputStream inputStream = buffer.getInputStream(fileName)) { byte[] fileContent = inputStream.readAllBytes(); String fileToken = api.uploadFile(fileContent, fileName); @@ -219,8 +238,9 @@ public class CrearnuevoTicketView extends VerticalLayout { } catch (IOException e) { Notification.show("Error al cargar el archivo: " + e.getMessage(), 3000, Notification.Position.MIDDLE) .addThemeVariants(NotificationVariant.LUMO_ERROR); - } - }); + } + }); + } String response = api.createIssue(issueDetails, uploadsJsonArray, user.getKey()); handleResponse(response, asunto, descripcion, tipoTickets); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index ceba842..1b3a594 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -18,13 +18,13 @@ spring.ldap.password=Dr3na%134$4guA ########PRODUCTIVO################################# -redmine.url=https://proyman.jumapacelaya.gob.mx/ -redmine.api_key=ce4dc8b6b531c818017e6831a5732ccc15b8faf6 +#redmine.url=https://proyman.jumapacelaya.gob.mx/ +#redmine.api_key=65b37a803babb6ba27f0f4fa3e562575d5ae63b3 ########LOCAL###################################### -#redmine.url=http://localhost:10083 -#redmine.api_key=69b347fdfbf01bb60a10ea6daa92eb86acd10e3b +redmine.url=http://localhost:10083 +redmine.api_key=69b347fdfbf01bb60a10ea6daa92eb86acd10e3b ###CONFIGURACION DEL TAMANO MAXIMO PERMITIDO PARA ARCHIVOS###