PVR
GitHub
Utility pages

Utility & Misc Pages

The supporting pages that round out Taxi CRM 2026 — app utilities, cookie-consent banners, error pages, standalone email templates and icon-set references.

5 min read
Updated June 20, 2026

Beyond the core business screens, Taxi CRM 2026 ships a set of supporting pages — small utilities, legal/consent banners, error screens, ready-made email templates and icon cheat-sheets. They are grouped below by kind.

Live demo: browse every page at pvrtechstudio.com/taxi-crm/html.

App utilities

General-purpose tools that sit alongside the main feature set.

  • faqPage — a searchable help page. A left category rail (All Questions, General, Booking & Payment, Account, Drivers, Support) filters a Bootstrap accordion of questions. Each accordion item carries data-category and data-tags, so the search box (#faqSearchInput) and category tabs can filter live. Questions are numbered and tagged with pale-palette pill badges (badge-pill badge-teal, badge-blue, etc.). Behaviour is wired in assets/js/pages/ui/faqPage.js.
  • calendar — a full scheduling view built on FullCalendar. A left sidebar holds draggable events (New Booking, Airport Transfer, Corporate Pickup, VIP Service, City Tour, Package Delivery) that can be dropped onto the month grid, plus a Quick Add Event form. Each draggable carries a data-event JSON payload with a title and a pale-palette colour. Logic lives in the calendar page script under assets/js/pages/.
  • scrumBoard — a Kanban / scrum board for fleet operations. Five columns (Backlog, To Do, In Progress, For Review, Completed) hold HTML5-draggable task cards (.scrum-card[draggable="true"]). Each card shows a title, description, a priority flag (priority-high / priority-medium / priority-low), due date, attachment and comment counts, and assignee avatars (single or stacked). A per-card dropdown offers Edit, Duplicate, Assign, Move to (any column) and Delete. Column counts use pale-light badges.
  • invoice — a printable taxi-service invoice with a create-invoice form. Covered in detail under Payments & Billing; it is listed here only for completeness.

one Kanban column with two task cards (priority flag, avatars, footer meta)

Three interchangeable cookie-consent banner styles, all built from the same pvr-cookie component and sharing the Manage Cookies preferences dialog. All three are driven by one script, assets/js/pages/ui/cookiesV3.js. Pick the variant that fits the layout; they differ only in placement and weight:

VariantLayoutKey markupWhen to use
cookiesV1Full-width bar pinned to the bottom (pvr-cookie-bottom)Title, notice text, policy links, three actions: Manage Cookies, Decline, Accept AllMaximum-visibility, GDPR-style consent with an explicit decline
cookiesV2Compact boxed card, bottom-right corner (pvr-cookie-boxed pvr-cookie-bottom-right)Close button, title, short notice, Manage Cookies + Accept CookiesLightweight, less intrusive nudge
cookiesV3Preferences-first — opens the Manage Cookies modal directly (no inline banner)Just the shared cookieModal (granular category toggles)Detailed, opt-in-by-category consent flows

All variants use the dark notice skin (pvr-cookie-dark) and Bootstrap buttons. To change copy or links, edit the relevant cookiesV*.html; to change the category options, edit the shared Manage Cookies modal markup (it is reused across the variants).

Error pages

Three HTTP-error screens sharing one layout (error-page-card / error-page-info): a large status code, a title and message, three quick-help tips with Material Symbols icons, two action buttons, and a support mailto link. All text is data-i18n-driven. Each page references an array of background illustrations via data-images on the img.error-page-image (the script picks/cycles one).

PageCodeMessage themePrimary actions
page404404Page not found / removed or mistyped URLBack to Home, Go Back (history.back())
page500500Internal server error, team notifiedBack to Home, Try Again (location.reload())
page503503Service unavailable / scheduled maintenanceBack to Home, Try Again (location.reload())

Note page404 is a full-screen standalone layout (bodyClass: 'error-page-fullscreen', no header/sidebar, with a decorative g-snows overlay), while page500 and page503 render inside the normal app shell (header, sidebar, page header) as a panel-card. Scripts live under assets/js/pages/errors/.

404 card — large code, title, quick-help tips and action buttons

Email templates

Eight standalone HTML email templates. Unlike every other page in the kit, these are not part of the app shell: each is a complete <html> document with an XHTML transitional doctype, table-based layout, and inline / embedded styles in the <head> (.ReadMsgBody, .ExternalClass, fixed table layout, etc.) — the markup pattern required for reliable rendering across email clients (Outlook, Gmail, Apple Mail). They do not load style.css, the sidebar, or the app JS. Use them as transactional-email starting points: copy the file, swap the copy and brand assets, and send through your mail provider. Titles are data-i18n-keyed so the set can be translated like the rest of the kit.

Template filePurpose
smEmailTemplateWelcomeWelcome email for a newly registered user
smEmailTemplateActivateAccount-activation / verify-email message
smEmailTemplateForgotPasswordPassword-reset link email
smEmailTemplatePaymentPayment receipt / transaction confirmation
smEmailTemplateOrderConfirmBooking confirmation for a ride
smEmailTemplateBirthdayBirthday greeting / promo to a customer
smEmailTemplateSmallTableBooking summary using a compact data table
smEmailTemplateLargeTableTask / activity report using a wide multi-row table

The two *Table variants demonstrate laying out tabular data (booking summaries, reports) inside an email-safe table; the rest are single-message transactional layouts.

Icon references

Three searchable icon cheat-sheets. Each shares the same layout (icon-header-section with a title, subtitle and a live search box #iconSearch) and a click-to-copy interaction — clicking any icon copies its HTML snippet. Use them to look up the exact class or glyph name to paste into your markup.

PageIcon setUsage snippet
materialIconsMaterial Symbols Sharp (~4,852 icons) — the kit's primary icon set<span class="material-symbols-sharp">search</span>
fontAwesomeFont Awesome (solid) — commonly used subset<span class="fa-solid fa-icons"></span>
simpleLineIconsSimple Line Icons — thin outline set (loads its own simple-line-icons.min.css plugin stylesheet)<span class="icon-grid"></span>

Across the rest of Taxi CRM 2026, Material Symbols Sharp is the default — most components reference material-symbols-sharp. Reach for the other two sets only when you need a glyph the primary set lacks.

icon grid with the search box at the top

For the visual building blocks these pages reuse (cards, badges, the pale colour palette), see Widgets and CSS System.

Was this page helpful?