@extends('admin.layout') @section('title', 'Gestion des modeles') @section('content')

@yield('title')

{{-- Ajout et modification dans une fenetre (js/modale-saisie.js) : on reste sur la liste, a la meme page et la meme recherche. --}} @can('modeles.create') @endcan

{{-- Les zones (data-zone) : ce que js/sur-place.js remplace apres une suppression ou une restauration, sans recharger la page — messages, lignes, pagination. L'ajout et la modification restent des pages : trop de champs, et une image. --}}
@if (session('success'))
{{ session('success') }}
@endif @if (session('error'))
{{ session('error') }}
@endif
{{-- Recherche et filtres : le texte cherche partout, les listes resserrent (ModeleController::filtresDeLaListe). --}} @include('admin.produits._filtres', [ 'route' => 'modeles.index', 'q' => $q, 'total' => $modeles->total(), 'selects' => [ ['type', 'Type', $filtresOptions['types'], $filtres['type'], false], ['categorie', 'Catégorie', $filtresOptions['categories'], $filtres['categorie'], true], ['sous_categorie', 'Sous-catégorie', $filtresOptions['sous_categories'], $filtres['sous_categorie'], true], ['logiciel', 'Logiciel', ['1' => 'Oui', '0' => 'Non'], $filtres['logiciel'], false], ['vitrine', 'Vitrine', ['1' => 'Oui', '0' => 'Non'], $filtres['vitrine'], false], ['etat', 'État', ['actifs' => 'Actifs', 'supprimes' => 'Supprimés'], $filtres['etat'], false], ], ])
@php $peutBasculer = auth()->user()->can('modeles.edit'); @endphp @foreach ($modeles as $modele) @php $trashed = $modele->trashed(); @endphp {{-- Le portail en grand sans quitter la liste (js/visionneuse.js) ; les fleches passent aux modeles de la page. --}} {{-- Logiciel et Vitrine se reglent ici, d'un clic (admin/_interrupteur). Vitrine agit sur le site public : la retirer demande confirmation. --}} @endforeach
# Nom Type Catégorie Sous-catégorie Prix Marge Logiciel Vitrine Actions
{{ $modele->id }} {{ $modele->nom }}{{ $modele->ancien_nom ? ' / ' . $modele->ancien_nom : '' }} @if ($trashed) Supprimé @endif @if ($modele->image){{ $modele->nom }}@else — @endif {{ $modele->type?->nom ?? '—' }} {{ $modele->categorie?->nom ?? '—' }} {{ $modele->sousCategorie?->nom ?? '—' }} {{ $modele->prix }} {{ $modele->marge }} @include('admin._interrupteur', [ 'action' => route('modeles.bascule', $modele->id), 'champ' => 'logiciel', 'actif' => (bool) $modele->logiciel, 'peut' => $peutBasculer && !$trashed, 'libelle' => 'Proposer ' . $modele->nom . ' dans ACPORTAIL', ]) @include('admin._interrupteur', [ 'action' => route('modeles.bascule', $modele->id), 'champ' => 'vitrine', 'actif' => (bool) $modele->vitrine, 'peut' => $peutBasculer && !$trashed, 'libelle' => 'Afficher ' . $modele->nom . ' sur le site public', 'confirmerRetrait' => "Retirer ce modèle du site public ?\n\n" . mb_strtoupper((string) $modele->nom), ]) @if ($trashed) @can('modeles.restore')
type?->nom, $modele->categorie?->nom]))));"> @csrf @method('PUT')
@endcan @else @can('modeles.view') @endcan @can('modeles.edit') @endcan @can('modeles.delete')
type?->nom, $modele->categorie?->nom]))));"> @csrf @method('DELETE')
@endcan @endif
@if ($modeles instanceof \Illuminate\Contracts\Pagination\Paginator) {{ $modeles->links() }} @endif
{{-- La fenetre d'ajout et de modification (_modale), la meme que sur la fiche. --}} @include('admin.produits.modeles._modale') @endsection