{{-- resources/views/itins/edit.blade.php --}} @extends('layouts.base') @section('title', __('Edit itinerary')) @section('content') @php /** @var \App\Models\Itinerary $itinerary */ $isPro = request()->routeIs('pro.*'); $saveUrl = $isPro ? route('pro.itins.update', ['locale'=>app()->getLocale(), 'itinerary'=>$itinerary->id]) : route('admin.itins.update', ['itinerary'=>$itinerary->id]); $indexUrl = $isPro ? route('pro.itins.index', ['locale'=>app()->getLocale()]) : route('admin.itins.index'); $urlAdmins = $isPro ? route('pro.itins.adminsForSociety', ['locale'=>app()->getLocale()]) : route('admin.itins.adminsForSociety'); $urlUsers = $isPro ? route('pro.itins.usersForSociety', ['locale'=>app()->getLocale()]) : route('admin.itins.usersForSociety'); $urlPoints = $isPro ? route('pro.itins.pointsForContext', ['locale'=>app()->getLocale()]) : route('admin.itins.pointsForContext'); // ==== Chargement sécurisé des sociétés ==== $authUser = auth()->user(); if ($isPro) { // Un admin pro ne voit que SES sociétés // (évite tout SELECT ambigu, et évite null si pas connecté) $societies = $societies ?? ($authUser ? $authUser->societies()->orderBy('name')->get() : collect()); } else { // L’admin voit toutes les sociétés $societies = $societies ?? \App\Models\Society::orderBy('name')->get(); } // ==== Utilisateurs déjà assignés ==== $assignedUserIds = $assignedUserIds ?? ($itinerary->assignedUsers?->pluck('id')->all() ?? []); // ==== Points déjà attachés (tri) ==== $selectedPoints = $selectedPoints ?? $itinerary->points() ->select('points.id', 'points.name') ->withPivot(['sort_order']) ->orderBy('itinerary_points.sort_order') ->get(); // ==== Contexte initial (seed) ==== $seedSocietyId = (int) old('society_id', $itinerary->society_id); // Si admin pro sans société sur l’itinéraire, on pré-sélectionne sa première société if ($isPro && !$seedSocietyId && $societies->count() > 0) { $seedSocietyId = (int) $societies->first()->id; } $seedAdminId = (int) old('assigned_user_id', $itinerary->assigned_user_id); @endphp
{{ __('Back') }}

{{ __('Edit itinerary') }} — #{{ $itinerary->id }}

@if(session('ok'))
{{ session('ok') }}
@endif @if($errors->any())
@endif
@csrf @method('PUT')
{{-- Nom --}}
{{ __('A unique itinerary name.') }}
{{-- Société --}}
{{ __('Pick the company this itinerary belongs to.') }}
{{-- Admin pro (responsable) --}}
{{ __('This user will be the itinerary manager.') }}
{{-- Utilisateurs assignés (multi) --}}
{{ __('Select a company to list its users.') }}
{{-- Waypoints --}}
{{ __('Pick a company, then a Pro admin to load waypoints of the company and those shared to that admin. Add and drag to reorder them.') }}
{{-- Disponibles --}}

{{ __('Available') }}

{{ $seedSocietyId && $seedAdminId ? __('Loading…') : __('Select a company and a Pro admin.') }}
{{-- Sélectionnés --}}

{{ __('Selected (drag to reorder)') }}

@if($selectedPoints->isEmpty())
{{ __('No waypoint selected yet.') }}
@else @foreach($selectedPoints as $p)
{{ $p->name ?? ('#'.$p->id) }}
@endforeach @endif
{{-- on soumet l’ordre via des inputs hidden --}}
@foreach($selectedPoints as $p) @endforeach
{{-- Contexte JS minimal et sûr (pas de Blade dans des backticks) --}} @endsection