diff --git a/tech/tabs/02-backlog/05_content.html.php b/tech/tabs/02-backlog/05_content.html.php index ca65f96..bb0c2df 100644 --- a/tech/tabs/02-backlog/05_content.html.php +++ b/tech/tabs/02-backlog/05_content.html.php @@ -91,29 +91,24 @@ - - -
- - -
-      + + +
+ + +
+      + + diff --git a/tech/tabs/02-backlog/07_javascript.js b/tech/tabs/02-backlog/07_javascript.js index 6a9edb0..a7165c3 100644 --- a/tech/tabs/02-backlog/07_javascript.js +++ b/tech/tabs/02-backlog/07_javascript.js @@ -1,15 +1,3 @@ -function editBacklog(id, title, desc, status, type) { - document.getElementById('editBacklogId').value = id; - document.getElementById('editBacklogTitle').value = title; - document.getElementById('editBacklogDesc').value = desc; - document.getElementById('editBacklogStatus').value = status; - document.getElementById('editBacklogType').value = type; - - const modalEl = document.getElementById('editBacklogModal'); - const modal = new bootstrap.Modal(modalEl); - modal.show(); - -} /** * Escape HTML special characters in a string. @@ -23,34 +11,40 @@ function escapeHtml(unsafe) { .replace(/'/g, '''); } -/** - * Show modal with backlog item details. - */ -function viewBacklog(id, title, desc, status, type, created) { - document.getElementById('viewBacklogTitle').textContent = title; - const descEl = document.getElementById('viewBacklogDesc'); - const escapedDesc = escapeHtml(desc); - descEl.innerHTML = escapedDesc.replace(/\n/g, '
'); - const statusBadge = document.getElementById('viewBacklogStatusBadge'); +function editBacklog(id) { + const item = backlogTickets[id]; + if (!item) return; + + document.getElementById('editBacklogId').value = item.id; + document.getElementById('editBacklogTitle').value = item.title; + document.getElementById('editBacklogDesc').value = item.desc; + document.getElementById('editBacklogStatus').value = item.status; + document.getElementById('editBacklogType').value = item.type; + + new bootstrap.Modal(document.getElementById('editBacklogModal')).show(); +} + +function viewBacklog(id) { + const item = backlogTickets[id]; + if (!item) return; + + document.getElementById('viewBacklogTitle').textContent = item.title; + document.getElementById('viewBacklogDesc').innerHTML = escapeHtml(item.desc).replace(/\n/g, '
'); + document.getElementById('viewBacklogCreated').textContent = item.created; + const statusMap = { 'in progress': 'warning', 'done': 'success', 'cancelled': 'secondary' }; - statusBadge.textContent = status.charAt(0).toUpperCase() + status.slice(1); - statusBadge.className = 'badge bg-' + (statusMap[status] || 'light'); - document.getElementById('viewBacklogCreated').textContent = created; + const badge = document.getElementById('viewBacklogStatusBadge'); + badge.className = 'badge bg-' + (statusMap[item.status] || 'light'); + badge.textContent = item.status.charAt(0).toUpperCase() + item.status.slice(1); const typeMap = { 'bug': 'bi-bug-fill text-danger', 'improvement': 'bi-tools text-success', 'nice-to-have': 'bi-star text-secondary' }; - const typeIcon = typeMap[type] || ''; + const icon = typeMap[item.type] || ''; const typeEl = document.getElementById('viewBacklogType'); - if (typeIcon) { - typeEl.innerHTML = ` ${type.charAt(0).toUpperCase() + type.slice(1)}`; - } else { - typeEl.textContent = ''; - } + typeEl.innerHTML = icon ? ` ${item.type}` : ''; - const modalEl = document.getElementById('viewBacklogModal'); - const modal = new bootstrap.Modal(modalEl); - modal.show(); + new bootstrap.Modal(document.getElementById('viewBacklogModal')).show(); }