Seitenleiste

Das Offcanvas-Panel ist Teil der App-Shell von nfgarching/core. Die Demo zeigt hier das aktuelle Konto.

Demo-Konto

ENV: production · Package-Version 1.0.0


Livewire

Das Package registriert vier Livewire-Komponenten: counter sowie die Modals modal.raw, modal.field und modal.multi. Die drei Modals bindet das Layout auf jeder Seite ein (layout::parts.modals); geöffnet werden sie per Event – von Buttons des Packages oder per dispatch() aus eigenem Code.
In der öffentlichen Demo sind modal.raw und modal.field durch Unterklassen ersetzt, die nur das Model App\Models\Contact (und bei modal.field nur einzelne Felder) zulassen; Löschen ist deaktiviert. Alle Daten werden täglich zurückgesetzt.

counter

Nfgarching\Core\Livewire\Counter – einfacher Zähler, der zusätzlich mit #[On('testing')] auf ein Event hört.

1


15:16:17
resources/views/demo/core/examples/livewire/counter.blade.php
<div class="row g-3 align-items-center">
    <div class="col-md-6 text-center border rounded py-2">
        <livewire:counter />
    </div>
    <div class="col-md-6">
        {{-- Counter::increment() hört zusätzlich auf das Event „testing“ --}}
        <x-button.dispatch modalName="testing" type="outline-primary" :href="route('demo.core.livewire')">
            <i class="bi bi-broadcast"></i> Event „testing“ an alle Counter
        </x-button.dispatch>
    </div>
</div>

modal.raw (Raw)

Generischer Datensatz-Editor: listet alle Spalten der Tabelle und speichert direkt ins Model.
Erika Mustermann (contacts #1)
resources/views/demo/core/examples/livewire/raw.blade.php
{{-- button.raw: Klick öffnet modal.raw mit allen Spalten des Datensatzes,
     Shift öffnet /raw als Popup, Strg in neuem Tab (beides nur angemeldet) --}}
<div class="d-flex flex-wrap gap-2 align-items-center">
    <x-button.raw :item="$contact" label="RAW-Ansicht öffnen" />
    <span class="small text-body-secondary">{{ $contact->name }} (contacts #{{ $contact->id }})</span>
</div>

modal.field (Modals\Field)

Bearbeitet ein einzelnes Feld in einem großen Textfeld; Event openModalField mit modelClass, keyid und field.
memo: „Erfundener Demo-Kontakt.“
resources/views/demo/core/examples/livewire/field.blade.php
{{-- button.openModalField: öffnet modal.field und bearbeitet genau ein Feld --}}
<div class="d-flex flex-wrap gap-2 align-items-center">
    <x-button.openModalField :item="$contact" field="memo" label="Notiz bearbeiten" />
    <span class="small text-body-secondary">memo: „{{ $contact->memo }}“</span>
</div>

modal.multi (Modals\Multi)

Nur-Lese-Ansicht für mehrzeilige Werte; ruft get_multi() am Model auf (hier App\Models\Contact::get_multi()).
resources/views/demo/core/examples/livewire/multi.blade.php
{{-- modal.multi lauscht auf openModalMulti und zeigt get_multi() des Models an --}}
<button type="button" class="btn btn-outline-dark" x-data
    @click="$dispatch('openModalMulti', { modelName: @js($contact::class), NR: {{ $contact->id }} })">
    <i class="bi bi-card-text"></i> Multi anzeigen
</button>

Dokumentation auf GitHub (README.md#livewire-komponenten)

Demo – alle Daten werden täglich zurückgesetzt.