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') {