Demo Mode: you're exploring a live BackupMGR panel with sample data. Everything is read-only. Get BackupMGR →

License Key Required

No license key entered. Enter or update your key with php artisan health:license <key>, or purchase one at scriptgain.com.

Records

settings.records

Status Shipped Default Shipped File resources/views/settings/records.blade.php
settings.records 171 lines
Not Checked Yet

Optional. Shown in the version history so the next person knows why.

Saving runs the same check. An invalid template is refused, not stored.

Compiled PHP

What Blade turns your template into. This is what the syntax check parses.

Loading…

Available Variables And Components

A guide to what this template can use, derived from the shipped source. Click any item to insert it at your cursor. It is a helpful reference, not a runtime guarantee.

Always Available

Shared with the admin panel by the staff layout.
Validation error bag. Always present. Pairs with @error('field').
The admin sidebar navigation structure.
Sub-items of the currently open nav group.
Breadcrumb trail for the current page.
Signed-in staffer's initials, for the avatar.
Signed-in staffer's name.
Signed-in staffer's email address.
The staffer's role, e.g. "Administrator".
True when the signed-in staffer is an administrator.
Number of open service requests, for the badge.
Number of unread form submissions, for the badge.
The configured admin-shell width class.
URL of the uploaded site logo, or null.
URL of the uploaded favicon, or null.

In This Template

Default Disclaimer.
Enabled.
Minimum Age.
Published Count.
Settings.

Drop any of these in. Click to insert the opening tag at your cursor.

General

type, info, title
initials, src, name, size, md
color, neutral, dot
action, label, Record, modal
variant, primary, size, md, href, …
title, subtitle, padding, flush
name, action, method, POST, title, …
action, name, title, message, confirm, …
href, icon, danger
align, right, width
icon, folder, title, description
label, for, hint, error, required
href, icon, title, variant, secondary, …
name
type, text
name, title, subtitle, icon, tone, …
href, icon, active
title, subtitle, icon, back
title, subtitle, href, linkLabel
ids
id, label, Row
items
label, value, icon, trend, trendColor, …
color, neutral, pulse, label
name
flush
tabs, default
name, checked, label, description

Admin Panel

title, message, icon, folder, href, …
tree, active, rootLabel, rootHref
title, subtitle, icon, edit, action, …
title, icon, folder, subtitle, records, …
search, placeholder, createHref, createLabel
edit, delete, preview, name, title, …
record, kind, Page

Layouts

title, shellMaxWidth
title, portalName, Portal, nav, heading, …
title, docTitle, Document, back
title, description, heroless, maxWidth

Records

name, action, reference, trigger, icon

Site (Public)

href, title, description, icon, meta, …
title, message, icon, folder
title, subtitle, eyebrow, icon, crumbs, …
supportEmail, supportPhone
disclaimer, takedownContact, retentionDays, compact
title, subtitle, href, linkLabel, tone, …
maxWidth

Common Blade

Print a value, safely escaped. The default choice.
Print raw HTML. Only for content you trust.
Show something conditionally.
Loop over a collection.
Loop, with a fallback when the collection is empty.
Show a validation message for a field.
A small block of PHP. Never on line 1. Keep logic out of templates.
A comment that never reaches the browser.

Civic Helpers

Build a URL to a named route, e.g. a department page.
Link to a single news post.
Turn a stored upload path into a public URL.
A cache-busted URL for a bundled asset.
Read a config value, e.g. the site width class.
Build an absolute URL to a path.

No History Yet

Every save, revert, and reset of this template is recorded here, with a one-click way back to any of them.

The Template That Shipped With The Product

Read only. This is what Reset To Default puts back.

<x-layouts.app title="Arrest Records">
    <x-page-header title="Jail And Arrest Records" icon="shield"
                   subtitle="An optional module. It is switched off until someone here decides otherwise." />

    @if ($enabled)
        <x-alert type="success" title="The Module Is Enabled" class="mb-6">
            The public blotter is live at <span class="font-semibold">{{ route('site.records.blotter') }}</span> and
            {{ $publishedCount }} record(s) are currently visible to the public.
        </x-alert>
    @else
        <x-alert type="warn" title="The Module Is Disabled" class="mb-6">
            The public blotter and inmate roster return a not-found page, nothing appears in the site navigation, and no
            arrest data is reachable by anyone outside this panel. Nothing on this page takes effect until you enable it.
        </x-alert>
    @endif

    <form method="POST" action="{{ route('settings.records.update') }}" class="space-y-6">
        @csrf @method('PUT')

        <x-tabs :tabs="[
            'module' => ['label' => 'Enable The Module', 'icon' => 'shield'],
            'guardrails' => ['label' => 'Guardrails', 'icon' => 'scale'],
            'disclaimer' => ['label' => 'Disclaimer And Contact', 'icon' => 'info'],
        ]">

            {{-- --------------------------------------------- Enable --}}
            <x-tab-panel name="module">
                <x-card title="Before You Turn This On"
                        subtitle="Publishing arrest records is a decision with consequences for people who have not been convicted of anything.">
                    <div class="space-y-5">
                        <div class="rounded-xl bg-amber-50 p-5 ring-1 ring-inset ring-amber-200">
                            <h3 class="flex items-center gap-2 font-semibold text-amber-950">
                                <x-icon name="scale" class="w-5 h-5 text-amber-600" aria-hidden="true" />
                                What You Are Taking On
                            </h3>
                            <ul class="mt-3 space-y-2 text-sm leading-relaxed text-amber-900">
                                <li>Everyone listed on a blotter is presumed innocent. Most will never be convicted of what they were booked for.</li>
                                <li>A booking entry published without its outcome follows a person through search results for years, long after a case is dropped.</li>
                                <li>Publishing booking photographs is restricted or prohibited in several states. Confirm your own law before enabling it.</li>
                                <li>Courts issue sealing and expungement orders, and you have a legal duty to comply promptly when one arrives.</li>
                                <li>Juvenile records are never publishable on this platform. That is not adjustable here or anywhere else.</li>
                            </ul>
                        </div>

                        <div class="section-divider pt-5">
                            <x-toggle name="records_module_enabled" :checked="$enabled"
                                      label="Enable Jail And Arrest Records"
                                      description="Turns on the public blotter, the inmate roster, and the staff screens, and adds a menu item under an existing navigation dropdown." />
                        </div>

                        <x-field label="Publishing Agency" for="records_agency_name"
                                 hint="Shown above the public listings. For example: Cottonwood Springs Police Department."
                                 :error="$errors->first('records_agency_name')">
                            <x-input id="records_agency_name" name="records_agency_name"
                                     :value="old('records_agency_name', $settings['records_agency_name'])" />
                        </x-field>
                    </div>
                </x-card>
            </x-tab-panel>

            {{-- ----------------------------------------- Guardrails --}}
            <x-tab-panel name="guardrails">
                <div class="space-y-6">
                    <x-card title="Booking Photographs"
                            subtitle="Off by default. Several states restrict or ban publication of mugshots.">
                        <div class="space-y-4">
                            <x-toggle name="records_mugshots_enabled" :checked="$settings['records_mugshots_enabled'] === '1'"
                                      label="Show Booking Photographs On The Public Site"
                                      description="Photographs can always be stored and viewed by staff. This controls only whether the public sees them." />
                            <p class="text-sm text-slate-500">
                                Individual records can also be flagged for takedown, which hides that photograph whatever this setting says.
                            </p>
                        </div>
                    </x-card>

                    <x-card title="Retention"
                            subtitle="How long a published record stays on the public blotter, counted from the booking date.">
                        <div class="grid gap-5 sm:grid-cols-2">
                            <x-field label="Retention Window In Days" for="records_retention_days" required
                                     hint="60 days is the conservative default. Records are kept for staff after they leave the public site."
                                     :error="$errors->first('records_retention_days')">
                                <x-input id="records_retention_days" name="records_retention_days" type="number" min="1" max="3650"
                                         :value="old('records_retention_days', $settings['records_retention_days'])" required />
                            </x-field>
                            <div class="rounded-xl bg-slate-50 p-4 ring-1 ring-inset ring-slate-200">
                                <p class="text-sm leading-relaxed text-slate-600">
                                    Expiry is enforced on every public read and again nightly, when records past their window
                                    are unpublished and the change is written to the audit log.
                                </p>
                            </div>
                        </div>
                    </x-card>

                    <x-card title="What The Public Sees"
                            subtitle="Fields that are reasonable to withhold without making the blotter useless.">
                        <div class="space-y-4">
                            <x-toggle name="records_roster_enabled" :checked="$settings['records_roster_enabled'] === '1'"
                                      label="Publish The Inmate Roster"
                                      description="A current custody list, derived from records still marked In Custody." />
                            <x-toggle name="records_show_bond" :checked="$settings['records_show_bond'] === '1'"
                                      label="Show Bond Amounts" />
                            <x-toggle name="records_show_case_number" :checked="$settings['records_show_case_number'] === '1'"
                                      label="Show Case Numbers" />
                            <x-toggle name="records_public_search_enabled" :checked="$settings['records_public_search_enabled'] === '1'"
                                      label="Allow The Public To Search By Name"
                                      description="Turning this off leaves date browsing in place but stops the blotter working as a name lookup service." />
                        </div>
                    </x-card>

                    <x-card title="Juvenile Records">
                        <div class="flex items-start gap-3">
                            <span class="inline-flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-slate-100 text-slate-500 ring-1 ring-slate-200">
                                <x-icon name="lock" class="w-5 h-5" aria-hidden="true" />
                            </span>
                            <p class="text-sm leading-relaxed text-slate-600">
                                A subject under {{ $minimumAge }} can never be published, and there is deliberately no switch here to change that.
                                Such records can still be created and kept for staff use; publication is refused at save time, on the
                                publish action, and again on every public read.
                            </p>
                        </div>
                    </x-card>
                </div>
            </x-tab-panel>

            {{-- ----------------------------------------- Disclaimer --}}
            <x-tab-panel name="disclaimer">
                <div class="space-y-6">
                    <x-card title="Standing Disclaimer"
                            subtitle="Shown at the top of every public arrest-records page. It cannot be removed, only reworded.">
                        <div class="space-y-4">
                            <x-field label="Disclaimer Text" for="records_disclaimer" required
                                     :error="$errors->first('records_disclaimer')">
                                <textarea id="records_disclaimer" name="records_disclaimer" rows="5" required
                                          class="block w-full rounded-lg border-0 py-2 px-3 text-sm text-slate-900 ring-1 ring-inset ring-slate-300 focus:ring-2 focus:ring-brand-600">{{ old('records_disclaimer', $settings['records_disclaimer']) }}</textarea>
                            </x-field>

                            <div class="rounded-xl bg-slate-50 p-4 ring-1 ring-inset ring-slate-200">
                                <p class="text-xs font-semibold uppercase tracking-wide text-slate-500">Suggested Wording</p>
                                <p class="mt-2 text-sm leading-relaxed text-slate-600">{{ $defaultDisclaimer }}</p>
                            </div>
                        </div>
                    </x-card>

                    <x-card title="Introduction And Contact">
                        <div class="space-y-5">
                            <x-field label="Blotter Introduction" for="records_blotter_intro"
                                     hint="Optional. Appears beneath the disclaimer on the blotter, for local context such as which agencies report here."
                                     :error="$errors->first('records_blotter_intro')">
                                <textarea id="records_blotter_intro" name="records_blotter_intro" rows="4"
                                          class="block w-full rounded-lg border-0 py-2 px-3 text-sm text-slate-900 ring-1 ring-inset ring-slate-300 focus:ring-2 focus:ring-brand-600">{{ old('records_blotter_intro', $settings['records_blotter_intro']) }}</textarea>
                            </x-field>

                            <x-field label="Corrections And Removal Contact" for="records_takedown_contact"
                                     hint="How someone reaches you to correct a record, request a photograph takedown, or serve a court order. Publish a real route."
                                     :error="$errors->first('records_takedown_contact')">
                                <x-input id="records_takedown_contact" name="records_takedown_contact"
                                         :value="old('records_takedown_contact', $settings['records_takedown_contact'])"
                                         placeholder="Records Division, (928) 555-0140, records@example.gov" />
                            </x-field>
                        </div>
                    </x-card>
                </div>
            </x-tab-panel>
        </x-tabs>

        <div class="section-divider pt-5 flex items-center justify-end gap-2">
            <x-button type="submit" icon="check">Save Settings</x-button>
        </div>
    </form>
</x-layouts.app>

Blade In One Screen

The directives you will use most.

{{ $variable }}
Print a value, escaped. Safe by default.
{!! $html !!}
Print raw HTML. Only for content you trust.
@if / @else / @endif
Show something conditionally.
@foreach / @endforeach
Loop over a collection.
<x-card>
Use a shared component. Every component in Shared Components is available.
{{-- comment --}}
A comment that never reaches the browser.

House Rules

Follow these and your edits will survive updates.

  • Never start line 1 with @php. Blade mis-parses it and the page fails. The editor refuses to save it.
  • Keep logic out of templates. If you need a calculation, it belongs in a composer or component class, not here.
  • The shipped file is never modified. Reset To Default always gets you back.
  • Every save is versioned. You can revert to any earlier version in one click.
  • Press Tab inside the editor to indent rather than jump to the next field.