From 7ad7d840168259e55ed16977cd16b21852708e9b Mon Sep 17 00:00:00 2001 From: Scott Pouliot Date: Thu, 14 May 2026 22:51:22 -0400 Subject: [PATCH] Add mobile card views to Invoices and Intakes list pages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both pages were blank on phones because mobile-cards.css hides .table-responsive below 992px but neither page had a .mobile-card-view section. Added card-per-row mobile layout to match the Customers page pattern — tappable cards with status badges, key fields, and action buttons sized for touch. Co-Authored-By: Claude Sonnet 4.6 --- .../Views/Invoices/Index.cshtml | 73 +++++++++++++- .../Views/Kiosk/Intakes.cshtml | 99 +++++++++++++++++++ 2 files changed, 171 insertions(+), 1 deletion(-) diff --git a/src/PowderCoating.Web/Views/Invoices/Index.cshtml b/src/PowderCoating.Web/Views/Invoices/Index.cshtml index 2b1dc61..11945b9 100644 --- a/src/PowderCoating.Web/Views/Invoices/Index.cshtml +++ b/src/PowderCoating.Web/Views/Invoices/Index.cshtml @@ -144,7 +144,7 @@ @inv.InvoiceDate.ToString("MM/dd/yyyy") - @(inv.DueDate.HasValue ? inv.DueDate.Value.ToString("MM/dd/yyyy") : "—") + @(inv.DueDate.HasValue ? inv.DueDate.Value.ToString("MM/dd/yyyy") : "—") @inv.Total.ToString("C") @@ -167,6 +167,77 @@ +
+
+ @foreach (var inv in Model.Items) + { +
+
+
+ +
+
+
@inv.InvoiceNumber
+ @inv.CustomerName +
+
+
+
+ Status + + @await Html.PartialAsync("_StatusChip", (Kind: StatusChipHelper.InvoiceStatus(inv.Status), Text: InvoicesController.GetStatusDisplay(inv.Status))) + +
+ @if (inv.JobId.HasValue) + { +
+ Job + + + @inv.JobNumber + + +
+ } +
+ Date + @inv.InvoiceDate.ToString("MM/dd/yy") +
+ @if (inv.DueDate.HasValue) + { +
+ Due + + @inv.DueDate.Value.ToString("MM/dd/yy") + +
+ } +
+ Total + @inv.Total.ToString("C") +
+
+ Balance Due + + @inv.BalanceDue.ToString("C") + +
+
+ +
+ } +
+
@await Html.PartialAsync("_Pagination", Model)
diff --git a/src/PowderCoating.Web/Views/Kiosk/Intakes.cshtml b/src/PowderCoating.Web/Views/Kiosk/Intakes.cshtml index ab84791..13f8222 100644 --- a/src/PowderCoating.Web/Views/Kiosk/Intakes.cshtml +++ b/src/PowderCoating.Web/Views/Kiosk/Intakes.cshtml @@ -53,6 +53,105 @@ else {
+
+
+ @foreach (var s in Model) + { +
+
+
+ +
+
+
@s.CustomerFullName
+ @(s.SubmittedAt?.ToLocalTime().ToString("MM/dd/yy h:mm tt") ?? s.ExpiresAt.AddHours(-2).ToLocalTime().ToString("MM/dd/yy h:mm tt")) +
+
+
+
+ Status + + @if (s.Status == KioskSessionStatus.Submitted && s.IsConverted) + { + Converted + } + else if (s.Status == KioskSessionStatus.Submitted) + { + Submitted + } + else if (s.Status == KioskSessionStatus.Active && !s.IsExpired) + { + In Progress + } + else + { + Expired + } + +
+
+ Type + + @if (s.SessionType == KioskSessionType.InPerson) + { + In-Person + } + else + { + Remote + } + +
+ @if (!string.IsNullOrEmpty(s.CustomerPhone)) + { +
+ Phone + @s.CustomerPhone +
+ } + @if (!string.IsNullOrEmpty(s.CustomerEmail)) + { +
+ Email + @s.CustomerEmail +
+ } + @if (s.LinkedCustomerId.HasValue) + { +
+ Matched + + + Customer record + + +
+ } +
+ +
+ } +
+