Ticket number
- - -Ticket number
+ + +diff --git a/app/Http/Controllers/Qms/DisplayPublicController.php b/app/Http/Controllers/Qms/DisplayPublicController.php index 0382bee..f07f268 100644 --- a/app/Http/Controllers/Qms/DisplayPublicController.php +++ b/app/Http/Controllers/Qms/DisplayPublicController.php @@ -38,6 +38,7 @@ class DisplayPublicController extends Controller 'logoAlt' => $organization ? OrganizationBranding::logoAlt($organization) : 'Ladill Queue', + 'poweredByLogoUrl' => OrganizationBranding::assetUrl(OrganizationBranding::POWERED_BY_LOGO), ]); } diff --git a/app/Support/OrganizationBranding.php b/app/Support/OrganizationBranding.php index fe30877..f6d3d8c 100644 --- a/app/Support/OrganizationBranding.php +++ b/app/Support/OrganizationBranding.php @@ -10,6 +10,15 @@ class OrganizationBranding { public const DEFAULT_LOGO = 'images/logo/ladillqueue-logo.svg'; + public const POWERED_BY_LOGO = 'images/logo/ladillqueue-logo.svg'; + + public static function assetUrl(string $path = self::DEFAULT_LOGO): string + { + $file = public_path($path); + + return asset($path).'?v='.(@filemtime($file) ?: '1'); + } + public static function logoUrl(Organization $organization): string { if ($organization->logo_path && Storage::disk('public')->exists($organization->logo_path)) { @@ -18,9 +27,7 @@ class OrganizationBranding return Storage::disk('public')->url($organization->logo_path).'?v='.$version; } - $path = public_path(self::DEFAULT_LOGO); - - return asset(self::DEFAULT_LOGO).'?v='.(@filemtime($path) ?: '1'); + return self::assetUrl(self::DEFAULT_LOGO); } public static function logoAlt(Organization $organization): string diff --git a/resources/css/app.css b/resources/css/app.css index 52e0eec..f2f0954 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -269,14 +269,55 @@ html.qr-mobile-page body { } /* Public queue display — waiting-area TV screens (light theme) */ +html:has(.qms-display), +html:has(.qms-display) body { + height: 100%; + overflow: hidden; +} + .qms-display { - min-height: 100vh; + display: flex; + flex-direction: column; + height: 100dvh; + max-height: 100dvh; + overflow: hidden; background: radial-gradient(ellipse 90% 60% at 50% -20%, rgb(238 242 255 / 0.9), transparent), linear-gradient(180deg, rgb(248 250 252) 0%, rgb(255 255 255) 100%); color: rgb(15 23 42); } +.qms-display__shell { + display: flex; + min-height: 0; + flex: 1; + flex-direction: column; +} + +.qms-display__header { + flex-shrink: 0; +} + +.qms-display__main { + display: flex; + min-height: 0; + flex: 1; + flex-direction: column; +} + +.qms-display__footer { + flex-shrink: 0; +} + +.qms-display__tickets { + display: flex; + min-height: 0; + flex: 1; + flex-direction: column; + gap: 0.75rem; + overflow: hidden; +} + .qms-display__grid-bg { background-image: linear-gradient(rgb(148 163 184 / 0.08) 1px, transparent 1px), @@ -285,6 +326,12 @@ html.qr-mobile-page body { } .qms-display__ticket { + display: flex; + min-height: 0; + flex: 1; + flex-direction: column; + justify-content: center; + overflow: hidden; background: linear-gradient(180deg, #fff 0%, rgb(248 250 252) 100%); border: 1px solid rgb(226 232 240); box-shadow: @@ -293,8 +340,10 @@ html.qr-mobile-page body { } .qms-display__ticket-number { + font-size: clamp(2.75rem, 11vh, 6rem); font-variant-numeric: tabular-nums; letter-spacing: -0.04em; + line-height: 1; color: rgb(67 56 202); } diff --git a/resources/views/qms/display/public.blade.php b/resources/views/qms/display/public.blade.php index 2c0f434..b74e6ef 100644 --- a/resources/views/qms/display/public.blade.php +++ b/resources/views/qms/display/public.blade.php @@ -1,5 +1,5 @@ - +
@@ -9,7 +9,7 @@ @vite(['resources/css/app.css', 'resources/js/app.js']) ---:--
- +--:--
+ +Now serving
-Please proceed to your counter when your number appears
+Please proceed to your counter when your number appears
Ticket number
- - -Ticket number
+ + +