From f453a95f28afc24de49ba33cfe27104b24cc3e8c Mon Sep 17 00:00:00 2001 From: Scott Pouliot Date: Tue, 2 Jun 2026 18:53:52 -0400 Subject: [PATCH] Add hover tooltips on job list rows showing description and PO number MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds CustomerPO to JobListDto (maps by convention), then builds a Bootstrap tooltip per row with description · PO: xxx, skipping blank fields. Rows with neither get no tooltip. Helps identify jobs at a glance without opening the details page. Co-Authored-By: Claude Sonnet 4.6 --- src/PowderCoating.Application/DTOs/Job/JobDtos.cs | 1 + src/PowderCoating.Web/Views/Jobs/Index.cshtml | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/PowderCoating.Application/DTOs/Job/JobDtos.cs b/src/PowderCoating.Application/DTOs/Job/JobDtos.cs index 1eef12c..d4201b0 100644 --- a/src/PowderCoating.Application/DTOs/Job/JobDtos.cs +++ b/src/PowderCoating.Application/DTOs/Job/JobDtos.cs @@ -113,6 +113,7 @@ public class JobListDto public string? CustomerEmail { get; set; } public bool CustomerNotifyByEmail { get; set; } = true; + public string? CustomerPO { get; set; } public DateTime? ScheduledDate { get; set; } public DateTime? DueDate { get; set; } public decimal FinalPrice { get; set; } diff --git a/src/PowderCoating.Web/Views/Jobs/Index.cshtml b/src/PowderCoating.Web/Views/Jobs/Index.cshtml index 5553f09..4955d33 100644 --- a/src/PowderCoating.Web/Views/Jobs/Index.cshtml +++ b/src/PowderCoating.Web/Views/Jobs/Index.cshtml @@ -191,7 +191,14 @@ var isHot = job.DueDate.HasValue && job.DueDate.Value < DateTime.Now && job.StatusCode != "COMPLETED" && job.StatusCode != "READYFORPICKUP" && job.StatusCode != "DELIVERED" && job.StatusCode != "CANCELLED"; - + var tipParts = new List(); + if (!string.IsNullOrWhiteSpace(job.Description)) tipParts.Add(job.Description); + if (!string.IsNullOrWhiteSpace(job.CustomerPO)) tipParts.Add("PO: " + job.CustomerPO); + var tipText = string.Join(" · ", tipParts); + data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="@Html.Encode(tipText)" + }>
@@ -629,6 +636,10 @@ loadJobStatuses(); loadJobPriorities(); + // Row tooltips (description + PO) + document.querySelectorAll('[data-bs-toggle="tooltip"]').forEach(el => + new bootstrap.Tooltip(el, { trigger: 'hover' })); + // / key focuses search input document.addEventListener('keydown', function(e) { if (e.key === '/' && document.activeElement.tagName !== 'INPUT' && document.activeElement.tagName !== 'TEXTAREA') {