@extends('layouts.app') @push('style') @endpush @section('content')
{{-- Header --}}

Duplication multiple

{{ $landingWebsite->name }}
Téléchargez le modèle Excel personnalisé contenant les composants détectés sur cette LP source. Remplissez ensuite vos nouvelles déclinaisons hors-ligne.
{{-- Stepper --}}
1
Template
2
Upload
3
Générer
{{-- ══ LEFT — Wizard ══ --}}
{{-- STEP 1 : Download --}}
Étape 1 : Télécharger le template Excel

Ce modèle Excel est généré automatiquement avec la liste des composants modifiables de votre Landing Page source (Drive, Liens, Boutons, Formulaires). Ouvrez-le et complétez une ligne par nouvelle page à générer, puis passez à l'étape suivante pour l'uploader.

{{-- Metadata columns --}}
Métadonnées
Nom de la LP Titre de la page
@foreach($groupedComponents as $sheetName => $components) @php $badgeVariant = match($sheetName) { 'Drive to Store' => 'drive', 'Formulaires' => 'form', 'Liens & Boutons'=> 'link', default => 'meta', }; $badgeIcon = match($sheetName) { 'Drive to Store' => 'fa-map-marker-alt', 'Formulaires' => 'fa-clipboard-list', 'Liens & Boutons'=> 'fa-link', default => 'fa-tag', }; $chipClass = match($sheetName) { 'Drive to Store' => 'dup-chip-drive', 'Formulaires' => 'dup-chip-form', default => 'dup-chip-meta', }; $isLinks = ($sheetName === 'Liens & Boutons'); $isDrive = ($sheetName === 'Drive to Store'); // Group by instance for both Liens & Boutons and Drive to Store $cardGroups = []; if ($isLinks || $isDrive) { foreach ($components as $comp) { $clean = trim(preg_replace('/\s*\[.*?\]/', '', $comp['label'])); $instanceKey = preg_match('/^(.*?)\s+-\s+/', $clean, $m) ? trim($m[1]) : $clean; $propLabel = preg_match('/^.*?\s+-\s+(.+)$/', $clean, $m2) ? trim($m2[1]) : $clean; $cardGroups[$instanceKey][] = ['prop' => $propLabel, 'key' => $comp['column_key'], 'value' => $comp['current_value'] ?? '']; } } @endphp
{{ $sheetName }}
@if($isLinks || $isDrive) {{-- Cards: one card per instance --}} @php $cardHeaderIcon = $isDrive ? 'fa-map-marker-alt' : 'fa-link'; $cardBg = $isDrive ? '#FFFBEB' : '#FAF5FF'; $cardBorder = $isDrive ? '#FDE68A' : '#E9D5FF'; $cardHeadBg = $isDrive ? '#FEF3C7' : '#F3E8FF'; $cardHeadBorder = $isDrive ? '#FDE68A' : '#E9D5FF'; $cardHeadColor = $isDrive ? '#92400E' : '#6B21A8'; $cardValColor = $isDrive ? '#92400E' : '#6B21A8'; @endphp @else {{-- Other sections: flat chips --}}
@foreach($components as $comp) @php $shortLabel = trim(preg_replace('/\s*\[.*?\]/', '', $comp['label'])); @endphp {{ $shortLabel }} @endforeach
@endif
@endforeach
Les colonnes laissées vides héritent des valeurs de la LP source.
Télécharger le template
{{-- STEP 2 : Upload --}}
Étape 2 : Uploader le fichier rempli

Déposez votre fichier Excel complété (.xlsx). Le système va vérifier la présence des colonnes obligatoires, la validité des métadonnées et la correspondance avec la LP source avant de générer la prévisualisation.

{{-- STEP 3 : Preview + Generate + Results --}}
Étape 3 : Prévisualisation — 0 LP(s)

Vérifiez les données détectées dans chaque onglet ci-dessous. Chaque ligne correspond à une Landing Page qui sera créée avec ses URLs courtes et ses configurations spécifiques.

Métadonnée Composant GJS
Générer les Landing Pages
Utilisé uniquement si la colonne "nom" est vide.

Ces valeurs s'appliquent à toutes les LP générées.

Génération terminée
{{-- /step-3 --}}
{{-- /left --}} {{-- ══ RIGHT — LP Preview Sidebar ══ --}}
{{-- Browser frame --}}

Aperçu de la LP source

{{ $lpDisplayUrl ?? $lpPreviewUrl }}
@if($lpPreviewUrl) @else
Aperçu indisponible
@endif
@if($lpPreviewUrl) Ouvrir dans un onglet @endif
{{-- LP stats --}}

Informations LP source

{{ $landingWebsite->name }}

@if($landingWebsite->title)

{{ $landingWebsite->title }}

@endif
ID
#{{ $landingWebsite->id }}
Composants
{{ $componentCount }}
@if($driveCount > 0)
Drive
{{ $driveCount }}
@endif @if($storeLocatorCount > 0)
Store Locator
{{ $storeLocatorCount }}
@endif @if($formCount > 0)
Formulaire
{{ $formCount }}
@endif @if($buttonCount > 0)
Boutons/Liens
{{ $buttonCount }}
@endif @if($imageCount > 0)
Images
{{ $imageCount }}
@endif
Créée le
{{ $landingWebsite->created_at->format('d/m/Y') }}
{{-- /dup-layout --}}
@endsection @push('scripts') @vite(['resources/js/views/landing_website_duplicate.js']) @endpush