diff --git a/ui/static/dashboard.js b/ui/static/dashboard.js
index 23033dc..fd6db34 100644
--- a/ui/static/dashboard.js
+++ b/ui/static/dashboard.js
@@ -1,4 +1,3 @@
-
window.showUpsell = function(featureName) {
const featureNameEl = document.getElementById('upsellFeatureName');
const modalEl = document.getElementById('upsellModal');
@@ -10,7 +9,6 @@ window.showUpsell = function(featureName) {
}
};
-
window.renderMarkdown = function(text) {
if (!text) return "No description provided.";
let html = text.replace(/!\[.*?\]\((.*?)\)/g, '
');
@@ -18,13 +16,11 @@ window.renderMarkdown = function(text) {
return html;
};
-
window.updateDrawerPreview = function() {
const rawDesc = document.getElementById('drawerDescEdit').value;
document.getElementById('drawerDescPreview').innerHTML = renderMarkdown(rawDesc);
};
-
window.openDrawer = function(id, title, asset, severity) {
document.getElementById('drawerTicketID').value = id;
document.getElementById('drawerTitle').innerText = title;
@@ -34,9 +30,7 @@ window.openDrawer = function(id, title, asset, severity) {
badge.innerText = severity;
badge.className = `badge ${severity.toLowerCase()}`;
- document.getElementById('drawerSeverity').value = severity;
- document.getElementById('drawerComment').value = "";
-
+ // Read hidden inputs from the table row
const rawDesc = document.getElementById('desc-' + id) ? document.getElementById('desc-' + id).value : "";
const rawRem = document.getElementById('rem-' + id) ? document.getElementById('rem-' + id).value : "";
const rawEv = document.getElementById('ev-' + id) ? document.getElementById('ev-' + id).value : "";
@@ -44,6 +38,10 @@ window.openDrawer = function(id, title, asset, severity) {
const rawComment = document.getElementById('comment-' + id) ? document.getElementById('comment-' + id).value : "";
const assignee = document.getElementById('assignee-' + id) ? document.getElementById('assignee-' + id).value : "";
+ // Set initial values in the drawer
+ document.getElementById('drawerSeverity').value = severity;
+ document.getElementById('drawerStatus').value = status; // Pre-select current status
+ document.getElementById('drawerComment').value = "";
document.getElementById('drawerDescEdit').value = rawDesc;
document.getElementById('drawerRemEdit').value = rawRem;
@@ -307,13 +305,14 @@ document.addEventListener("DOMContentLoaded", function() {
const assigneeInput = document.getElementById("drawerAssignee");
const newAssignee = assigneeInput ? assigneeInput.value.trim() : "";
- const currentStatus = document.getElementById("status-" + id).value;
- let newStatus = currentStatus;
- if (newAssignee !== "" && newAssignee !== "Unassigned") {
+ // Explicitly grab the selected status from the new dropdown
+ let explicitStatus = document.getElementById("drawerStatus").value;
+ let newStatus = explicitStatus;
+
+ // Helpful UX: If they typed an email but left the status as "Waiting", auto-assign it
+ if (newAssignee !== "" && newAssignee !== "Unassigned" && explicitStatus === "Waiting to be Triaged") {
newStatus = "Assigned Out";
- } else if (currentStatus === "Returned to Security") {
- newStatus = "Waiting to be Triaged";
}
if (!comment.trim()) return alert("An audit trail comment is strictly required when modifying a finding.");
diff --git a/ui/templates/components/dash_modals.gohtml b/ui/templates/components/dash_modals.gohtml
index a36f254..9b29f3b 100644
--- a/ui/templates/components/dash_modals.gohtml
+++ b/ui/templates/components/dash_modals.gohtml
@@ -90,7 +90,7 @@
-