From 8551aa14173a979f21a3a7ae75799c878c510df4 Mon Sep 17 00:00:00 2001 From: Mike Johnston Date: Thu, 19 Mar 2026 23:58:28 -0400 Subject: [PATCH] feat: enhance mobile stats display in manage hunt view --- public/css/style.css | 20 +++++++++ src/views/admin/manage-hunt.ejs | 72 +++++++++++++++++---------------- 2 files changed, 57 insertions(+), 35 deletions(-) diff --git a/public/css/style.css b/public/css/style.css index 73ca51b..9ec8968 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -722,6 +722,26 @@ tr:hover { font-size: 0.7rem; } + /* Manage hunt: on mobile, show Total Scans, Discovery Rate, Starts, Expires */ + .manage-stats { + display: flex; + flex-direction: column; + } + .manage-stats-row-1 { + order: 2; + } + .manage-stats-row-2 { + order: 1; + } + .manage-stats-row-1 .stat-box:nth-child(1), + .manage-stats-row-1 .stat-box:nth-child(2) { + display: none; + } + + .hide-mobile { + display: none !important; + } + /* Package grid */ .package-grid { grid-template-columns: 1fr; diff --git a/src/views/admin/manage-hunt.ejs b/src/views/admin/manage-hunt.ejs index b9bf54b..9fae487 100644 --- a/src/views/admin/manage-hunt.ejs +++ b/src/views/admin/manage-hunt.ejs @@ -20,37 +20,39 @@ <% } %> -
-
-
<%= hunt.package_count %>
-
Packages
+
+
+
+
<%= hunt.package_count %>
+
Packages
+
+
+
<%= packages.filter(p => p.scan_count > 0).length %>
+
Found
+
+
+
<% if (hunt.start_date) { %><% } else { %>—<% } %>
+
Starts
+
+
+
<% if (hunt.expiry_date) { %><% } else { %>Never<% } %>
+
Expires
+
-
-
<%= packages.filter(p => p.scan_count > 0).length %>
-
Found
+
+
+
<%= packages.reduce((sum, p) => sum + p.scan_count, 0) %>
+
Total Scans
+
+
+
<%= typeof stats !== 'undefined' ? stats.uniquePlayers : 0 %>
+
Players
+
+
+
<%= typeof stats !== 'undefined' ? stats.discoveryRate + '%' : '0%' %>
+
Discovery Rate
+
-
-
<%= packages.reduce((sum, p) => sum + p.scan_count, 0) %>
-
Total Scans
-
-
-
<%= typeof stats !== 'undefined' ? stats.uniquePlayers : 0 %>
-
Players
-
-
-
<%= typeof stats !== 'undefined' ? stats.discoveryRate + '%' : '0%' %>
-
Discovery Rate
-
-
-
<% if (hunt.expiry_date) { %><% } else { %>Never<% } %>
-
Expires
-
- <% if (hunt.start_date) { %> -
-
-
Starts
-
- <% } %>
<% if (typeof stats !== 'undefined' && stats.topFinders.length > 0) { %> @@ -101,10 +103,10 @@ - + - - + + @@ -112,10 +114,10 @@ <% packages.forEach(pkg => { %> - + - - + +
## CodeScansFirst ScannerScansFirst Scanner Last Scanner Actions
<%= pkg.card_number %><%= pkg.card_number %> <%= pkg.unique_code %><%= pkg.scan_count %><% if (pkg.first_scanner_name) { %><%= pkg.first_scanner_name %><% } else { %>---<% } %><%= pkg.scan_count %><% if (pkg.first_scanner_name) { %><%= pkg.first_scanner_name %><% } else { %>---<% } %> <% if (pkg.last_scanner_name) { %><%= pkg.last_scanner_name %><% } else { %>---<% } %>