From 156e20c76333c3c5bf551f085b40fd9dc44a3239 Mon Sep 17 00:00:00 2001 From: yann64 Date: Fri, 5 Jun 2026 19:08:14 +0200 Subject: [PATCH] Fix modifier champ de type de source : formulaire inline Alpine.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le x-data était scopé au bouton seul, rien ne réagissait à open. - x-data remonté sur le
  • (scope partagé avec le formulaire) - Formulaire inline avec x-show="open" pour éditer nom/label/type/required/options - Bouton bascule Modifier ↔ Annuler - updateField() gère désormais options_raw comme storeField() Co-Authored-By: Claude Sonnet 4.6 --- .../Admin/SourceTypeController.php | 10 ++- .../views/admin/source-types/show.blade.php | 83 +++++++++++++++---- 2 files changed, 76 insertions(+), 17 deletions(-) diff --git a/app/Http/Controllers/Admin/SourceTypeController.php b/app/Http/Controllers/Admin/SourceTypeController.php index 2fc05fa..88b4d04 100644 --- a/app/Http/Controllers/Admin/SourceTypeController.php +++ b/app/Http/Controllers/Admin/SourceTypeController.php @@ -76,7 +76,15 @@ class SourceTypeController extends Controller public function updateField(StoreSourceTypeFieldRequest $request, SourceType $sourceType, SourceTypeField $field): RedirectResponse { abort_if($field->source_type_id !== $sourceType->id, 404); - $field->update($request->validated()); + $data = $request->validated(); + + if ($request->filled('options_raw')) { + $data['options'] = array_filter(array_map('trim', explode("\n", $request->input('options_raw')))); + } elseif ($request->input('type') !== 'select') { + $data['options'] = null; + } + + $field->update($data); return back()->with('success', 'Champ mis à jour.'); } diff --git a/resources/views/admin/source-types/show.blade.php b/resources/views/admin/source-types/show.blade.php index c214c02..bbc7f82 100644 --- a/resources/views/admin/source-types/show.blade.php +++ b/resources/views/admin/source-types/show.blade.php @@ -33,23 +33,74 @@
      @foreach($sourceType->fields as $field) -
    • - -
      - {{ $field->name }} - {{ $field->label }} - {{ $field->type->value }} - {{ $field->required ? 'Obligatoire' : 'Optionnel' }} +
    • +
      + +
      + {{ $field->name }} + {{ $field->label }} + {{ $field->type->value }} + {{ $field->required ? 'Obligatoire' : 'Optionnel' }} +
      +
      + +
      + @csrf @method('DELETE') + +
      +
      -
      - -
      - @csrf @method('DELETE') - + + {{-- Formulaire d'édition inline --}} +
      + + @csrf @method('PUT') +
      +
      + + +
      +
      + + +
      +
      + + +
      + + +
      +
      +
      + +
      +
      +
      + +