{{-- Action URL is set per-click by snipeit.js from the trigger button's data-request-url. Same shape as the adjust-quantity modal so the moving parts stay familiar. --}} {{-- Snapshot of the tab the user was on when they opened the modal. Snipeit.js reads the enclosing .tab-pane on click and writes its id here so the controller can restore the same tab on the post-submit redirect. --}} {{-- Qty row is hidden by JS when the trigger sets data-item-type="asset" or "license". Assets are 1:1 (you request THE asset, not N of it). Licenses are one-seat-per-request by convention. The input stays in the DOM with value=1 so the POST shape stays uniform across every requestable type. --}}
{{-- Start / end dates are optional. Requesters who just want "whenever this becomes available" leave both blank. Requesters reserving for a specific window (offsite event, project sprint) fill them in. end_date validates as after_or_equal:start_date in the controller. --}}
{{-- Optional free-text notes so the requester can attach context (why they need it, budget code, project, etc). Persisted on checkout_requests.notes and surfaced on the admin queue + in the "new request" notification. --}}