@extends('admin.layout') @section('title', __('Produits à rattacher')) {{-- Les produits de digiKam restés en libellé (« store coffre 136 », « 660cl »), rattachés au catalogue une fois par libellé et par type : toutes leurs photos suivent (App\Services\Photos\RattachementsModeles). Gestes sur place (js/sur-place.js) : la zone `produits` est remplacée après chaque envoi, le champ de choix travaille par délégation (js/phototheque-produits.js). --}} @section('content')

@yield('title')

@if (session('success'))
{{ session('success') }}
@endif @if (session('error'))
{{ session('error') }}
@endif @if ($errors->any())
{{ $errors->first() }}
@endif

{{ trans_choice(':n libellé de digiKam ne se retrouve pas au catalogue.|:n libellés de digiKam ne se retrouvent pas au catalogue.', $total, ['n' => $total]) }} {{ __('Choisissez son modèle, sa variation ou sa catégorie : toutes ses photos le suivent, et il apparaît dans les filtres de la photothèque. Ce qui n\'est rien de cela devient une étiquette, ou s\'efface quand le type suffit.') }}

{{-- Le nombre est celui des libellés : ce qu'il reste à traiter. --}} @if ($total > 0) @endif @if ($lignes->isEmpty())

{{ $total > 0 ? __('Plus rien à rattacher sous ce type.') : __('Tout est rattaché.') }}

@else {{-- Pas de .table-responsive : son débordement couperait le menu du champ et celui de « Pas un modèle ». Sur un téléphone, chaque ligne se replie en carte (phototheque.css). --}} @foreach ($lignes as $ligne) @php $type = $ligne['type'] ? \Illuminate\Support\Str::ucfirst(mb_strtolower($ligne['type']->nom)) : null; $nommer = trim(($type ? $type . ' ' : '') . '« ' . $ligne['libelle'] . ' »'); $etiquette = \App\Services\Photos\RattachementsModeles::etiquetteDe($ligne['libelle']); @endphp {{-- L'ancre du lien « Rattacher » du panneau d'une photo. --}} @endforeach
{{ __('Photo') }} {{ __('Libellé de digiKam') }} {{ __('Photos') }} {{ __('Modèle du catalogue') }}
@if ($vignette = $ligne['photo']?->vignetteUrl()) {{-- En grand, à la suite des autres lignes (js/visionneuse.js) ; le nombre de photos mène à la photothèque. --}} video) data-video @endif data-legende="{{ $nommer }}" title="{{ __('Voir en grand') }}"> @endif {{ $ligne['libelle'] }} {{ $type ?? __('sans type') }} {{ number_format($ligne['n'], 0, ',', ' ') }}
@csrf
@if ($ligne['propositions'])
{{ __('Au catalogue :') }} @foreach ($ligne['propositions'] as $proposition) @endforeach
@endif
@endif
@if ($faits)

{{ __('Déjà rattachés') }}

{{ __('Retenus hors de la base : ils sont refaits à chaque reconstruction de la photothèque. « Défaire » remet le libellé sur ses photos.') }}

    @foreach ($faits as $fait) @php $quoi = trim(($fait['type'] !== '' ? \Illuminate\Support\Str::ucfirst($fait['type']) . ' ' : '') . '« ' . $fait['libelle'] . ' »'); @endphp
  • {{ $quoi }} {{ $fait['nom'] }}
    @csrf
  • @endforeach
@endif
{{-- Le catalogue entier, que le champ de chaque ligne propose (js/phototheque-produits.js) : une fois pour la page, hors de la zone. --}} @endsection @push('head') {{-- Le menu du champ est celui des étiquettes et des découpes. --}} @endpush @push('scripts') @endpush