{{--
Cancellation listing — docs/wireframes-v12/cancellation.html, content region
for content region.
v12's order, top to bottom: an action row, then ONE card carrying the
`.filter-bar` and the `.data-table` — the filters are the card's own header
strip (border-bottom), not a card of their own. That is the shape every v12
management page uses, and the shape bookings/index.blade.php already draws.
## Authorised deviations (CR-9 §6.1, §9)
* **The four stat cards are dropped** (user decision). The wireframe's
strip counts Pending Approval, Approved and Refund Pending, and this
application has no approval workflow (decision D3) and no money
(decision D8) — three of the four tiles could only be mocked.
* **The All Status select is dropped** (client: "Remove All Status drop
down"). Every row on this screen is cancelled, so the control would
offer seven statuses that filter nothing.
* **Six columns, not the wireframe's ten** — the client's own list. See
CancellationsDataTable's docblock for which four went and why.
* **The search placeholder is adapted**: the wireframe says "Search by
Cancel ID, Customer, Booking ID..." and there is no Cancel ID (decision
D10 — a cancellation wears its booking's code), so it reads "Search by
Booking ID, Customer...", which is exactly what the box reaches.
## No lang file (CR-9 §0.1)
Every string on this screen is written here, on the client's instruction.
Do not extract them.
DataTables drives the table. Its own search box stays out of the dom string
because the wireframe's search input in the filter bar is the one the user
sees; the wiring below feeds the plugin from it, with the same 300ms debounce
and the same preXhr filter parameters the other three listings use.
The table markup and its configuration both come from the html builder, so
the column list exists in exactly one place:
CancellationsDataTable::getColumns().
--}}
@extends('layouts.app')
@section('title', 'Cancellation Management')
@section('breadcrumbs')