From 580825221fc0c6f31c17cda15d513cf237ccca7b Mon Sep 17 00:00:00 2001 From: Viktor Lindell Date: Mon, 27 Apr 2026 22:35:32 +0200 Subject: [PATCH 1/2] Fix edit ticket: form submit, s3key column mapping, and audit log constraint --- src/main/java/org/example/untitled/usercase/UploadedFile.java | 2 +- .../db/migration/V10__update_audit_log_action_constraint.sql | 4 ++++ src/main/resources/templates/edit_ticket.html | 4 +++- 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/db/migration/V10__update_audit_log_action_constraint.sql diff --git a/src/main/java/org/example/untitled/usercase/UploadedFile.java b/src/main/java/org/example/untitled/usercase/UploadedFile.java index 25dd26e..e4f14c3 100644 --- a/src/main/java/org/example/untitled/usercase/UploadedFile.java +++ b/src/main/java/org/example/untitled/usercase/UploadedFile.java @@ -15,7 +15,7 @@ public class UploadedFile { @Column(nullable = false) private String filename; - @Column(nullable = true) + @Column(nullable = true, name = "s3key") private String s3Key; @Column(nullable = false, updatable = false) diff --git a/src/main/resources/db/migration/V10__update_audit_log_action_constraint.sql b/src/main/resources/db/migration/V10__update_audit_log_action_constraint.sql new file mode 100644 index 0000000..36dfff2 --- /dev/null +++ b/src/main/resources/db/migration/V10__update_audit_log_action_constraint.sql @@ -0,0 +1,4 @@ +ALTER TABLE audit_log + DROP CONSTRAINT IF EXISTS audit_log_action_check, + ADD CONSTRAINT audit_log_action_check + CHECK (action IN ('CASE_CREATED', 'CASE_ASSIGNED', 'CASE_STATUS_CHANGED', 'COMMENT_ADDED', 'FILE_UPLOADED', 'USER_ROLE_CHANGED', 'CASE_UPDATED')); \ No newline at end of file diff --git a/src/main/resources/templates/edit_ticket.html b/src/main/resources/templates/edit_ticket.html index f02320b..b61aa7c 100644 --- a/src/main/resources/templates/edit_ticket.html +++ b/src/main/resources/templates/edit_ticket.html @@ -4,6 +4,8 @@ Edit Ticket + + @@ -28,7 +30,7 @@

Edit Ticket

From 54c263d3856ea82b3be0d3ed593a1378b5abb93c Mon Sep 17 00:00:00 2001 From: Viktor Lindell Date: Mon, 27 Apr 2026 22:48:30 +0200 Subject: [PATCH 2/2] Restore original button text after upload instead of hardcoding 'Create Ticket' --- src/main/resources/static/js/script.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/resources/static/js/script.js b/src/main/resources/static/js/script.js index 4dcbb85..d7eee8b 100644 --- a/src/main/resources/static/js/script.js +++ b/src/main/resources/static/js/script.js @@ -25,6 +25,7 @@ async function downloadFile(fileName) { async function uploadNewFile(){ const submitBtn = document.getElementById('submitBtn'); const form = submitBtn?.form ?? document.querySelector('form'); + const originalText = submitBtn?.innerText ?? null; if (submitBtn) submitBtn.disabled = true; const input = document.getElementById('fileInput'); const status = document.getElementById('status'); @@ -42,7 +43,7 @@ async function uploadNewFile(){ status.innerText = `Processing file ${i + 1} of ${filesToUpload.length}: ${file.name}`; const res = await apiReq(`/tickets/upload/api/files/upload-url?fileName=${encodeURIComponent(file.name)}&contentType=${encodeURIComponent(file.type)}`); if (!res) { - if (submitBtn) { submitBtn.disabled = false; submitBtn.innerText = "Create Ticket"; } + if (submitBtn) { submitBtn.disabled = false; submitBtn.innerText = originalText; } return; } const { url, fileName: uploadedFileName } = await res.json(); @@ -67,17 +68,17 @@ async function uploadNewFile(){ hiddenContainer.appendChild(input); } else { status.innerText = `Failed to upload ${file.name}. Status: ${putRes.status}`; - if (submitBtn) { submitBtn.disabled = false; submitBtn.innerText = "Create Ticket"; } + if (submitBtn) { submitBtn.disabled = false; submitBtn.innerText = originalText; } return; } } catch (error) { console.error(error); status.innerText = `Error uploading ${file.name}: ${error.message}`; - if (submitBtn) { submitBtn.disabled = false; submitBtn.innerText = "Create Ticket"; } + if (submitBtn) { submitBtn.disabled = false; submitBtn.innerText = originalText; } return; } } - if (submitBtn) { submitBtn.disabled = false; submitBtn.innerText = "Create Ticket"; } + if (submitBtn) { submitBtn.disabled = false; submitBtn.innerText = originalText; } status.innerText = "All uploads completed."; if (form) form.requestSubmit(); }