{{-- v4.2.0 §C2 — L'espace du client : les modules de son marché, un par écran. Les partiels `espace-client/**` sont les MÊMES que ceux de la page publique : seule change la présence des boutons de décision. --}} @php $dashboard = $this->dashboard(); $acces = $this->acces(); $module = $this->moduleCourant(); $donnees = $this->donnees(); $espaces = $this->mesEspaces(); $champ = 'mt-1 block w-full'; $etiquette = 'block text-xs font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400'; // v4.11.0 §A/§D — LE MÊME LANGAGE QUE LA PAGE DE LECTURE. L'accent vient de l'espace courant, // et les modules actifs alimentent la barre du bas — la même liste, le même ordre, le même // composant que la page publique. $accent = $dashboard?->couleur_primaire ?: \App\Support\Identite::couleurPrimaire(); $modulesActifs = $dashboard?->modulesActifs() ?? []; $lienDuModule = fn (string $cle): string => \App\Filament\Client\Pages\Espace::getUrl([ 'module' => $cle, 'espace' => $dashboard?->id, ]); @endphp @if ($dashboard === null) {{-- Plusieurs marchés, aucun choisi : on demande lequel. Un client rattaché à deux marchés du même acheteur ne doit pas avoir à deviner sur lequel il est. --}} Vos espaces @forelse ($espaces as $entree) {{ $entree->dashboard?->nom }} {{ $entree->dashboard?->client_nom }} · {{ $entree->titreAffiche() }} Ouvrir → @empty

Aucun espace ne vous est ouvert pour le moment.

@endforelse
@else {{-- v4.11.0 §D — L'accent de l'espace, sur un conteneur : le panneau Filament n'a pas de `:root` propre à cette page, et la charte de l'INSTALLATION n'est pas celle du client. --}}
{{-- En-tête : la marque qui exécute, l'espace, son client, sa référence, le logo du client (v4.7.0 §E2). --}} @include('espace-client.en-tete', ['dashboard' => $dashboard, 'sousTitre' => $acces?->titreAffiche()]) {{-- v4.11.0 §B — CE QUI ATTEND LE CLIENT EN TÊTE, avant tout le reste : c'est ce qu'il vient faire. Le rappel de la trace et l'activation des notifications passent après. --}} @include('espace-client.attendus', [ 'attendus' => $this->attendus(), 'publique' => false, 'lienDuModule' => $lienDuModule, ])
Chaque action sur cette page envoie un e-mail automatique horodaté aux deux parties : c'est la trace.
{{-- v4.10.0 §B1 — Et, si vous le voulez, la même chose sur cet appareil. --}} @include('espace-client.notifications') @if ($module !== null) @include('espace-client.module', [ 'dashboard' => $dashboard, 'module' => $module, 'donnees' => $donnees, 'publique' => false, 'lienLivrable' => fn ($livrable): string => \App\Filament\Client\Pages\FicheLivrable::getUrl(['livrable' => $livrable->id]), ]) @else

Aucun module n'est encore activé sur cet espace.

@endif {{-- ═══ Les panneaux de saisie, en ligne ══════════════════════════════════════════ --}} @if ($panneau === 'decision' || $panneau === 'cr' || $panneau === 'creneau') @php $titres = [ 'decision' => 'Votre décision sur ce livrable', 'cr' => 'Votre décision sur ce compte rendu', 'creneau' => 'Votre réponse sur le créneau', ]; $methodes = [ 'decision' => 'enregistrerLaDecision', 'cr' => 'enregistrerLaDecisionDuCompteRendu', 'creneau' => 'enregistrerLaReponseAuCreneau', ]; $exige = in_array($saisie['decision'] ?? '', ['corrections', 'refus', 'autre_creneau'], true); @endphp {{ $titres[$panneau] }} {{ \App\Enums\EspaceClient\TypeDecision::from($saisie['decision'])->label() }} — un e-mail horodaté part aux deux parties dès l'enregistrement.
Envoyer ma décision Annuler
@endif {{-- ═══ v4.3.0 §C2 — Le panneau de publication : « Voir et modifier » ══════════════ --}} @if ($panneau === 'publication') @php $publication = \App\Models\EspaceClient\PublicationClient::find($saisie['publication']); @endphp Publication sur vos réseaux {{ $publication?->titre }} — modifiez le texte, la date ou les canaux si vous le souhaitez : ce que vous validez est ce qui sera publié, et rien d'autre. @if ($publication?->visuel_lien)

Voir le visuel ↗

@endif
@foreach ($dashboard->reseauxConfigures() as $reseau) @endforeach
Demander des modifications Valider avec mes modifications Valider telle quelle Fermer
@endif {{-- L'e-mail QUI VA PARTIR, montré avant d'envoyer : il n'y a pas de meilleure façon de dire ce qu'on est en train de signer. --}} @if ($panneau === 'publication-apercu') @php $apercu = $this->apercuDeLaPublication(); @endphp L'e-mail qui va partir Il part aux deux parties et vaut trace écrite. Relisez-le avant de l'envoyer.
Destinataires
{{ implode(', ', $apercu['destinataires']) ?: 'aucun destinataire enregistré' }}
Objet
{{ $apercu['sujet'] }}
Message
{{ $apercu['corps'] }}
Envoyer ma décision Revenir
@endif {{-- ═══ Proposer une publication ══════════════════════════════════════════════════ --}} @if ($panneau === 'proposer-publication') Proposer une publication Écrivez votre texte : nous complétons le visuel et vous la renvoyons pour validation.
@foreach ($dashboard->reseauxConfigures() as $reseau) @endforeach
Proposer Annuler
@endif {{-- ═══ Signaler un événement ═════════════════════════════════════════════════════ --}} @if ($panneau === 'signaler-evenement') Signaler un événement à couvrir Nous ouvrons en même temps la demande de commande : une couverture annoncée sans commande est celle qu'on découvre non commandée la veille.
@if ($dashboard->zonesConfigurees())
@foreach ($dashboard->zonesConfigurees() as $zone) @endforeach
@endif
Signaler Annuler
@endif @if ($panneau === 'demande') Commander une prestation Décrivez votre besoin en quelques mots. Une demande n'engage rien tant que la lettre de commande n'est pas signée.
@foreach (\App\Enums\EspaceClient\ModeLettre::cases() as $mode) @endforeach
Envoyer la demande Annuler
@endif {{-- v4.7.0 §B2 — « Nous écrire » : sujet, message ; la réponse arrive à l'adresse du compte. --}} @if ($panneau === 'ecrire') Nous écrire Votre message part à vos interlocuteurs de l'espace. Nous vous répondons à {{ auth()->user()?->email }}.
Envoyer Annuler
@endif @if ($panneau === 'piece') Joindre une pièce Déposez le lien du document signé, ou sa référence. La pièce est archivée avec le dossier de la commande, et un e-mail part aux deux parties.
Enregistrer Annuler
@endif {{-- Le pied : commander, le groupe, et le choix de l'espace quand il y en a plusieurs. --}}
Commander une prestation @if ($dashboard->whatsapp_groupe_url) Groupe de discussion @endif @if ($espaces->count() > 1) Changer d'espace @endif
{{-- v4.11.0 §A — LA BARRE DU BAS, la même que sur la page de lecture et dans l'application installée. Sur bureau, c'est la barre latérale DU PANNEAU qui porte déjà les modules, avec leurs icônes et leur état actif : en ajouter une seconde dans la page ferait deux navigations concurrentes pour la même chose. Ce composant ne se rend que sous 1024 px, là où la barre du panneau est repliée derrière un bouton. --}} @if ($modulesActifs !== []) @endif
@endif