{{--
    Вьюха: Создание / редактирование веб-формы с конструктором полей
    Создана: 2026-05-07
    Контроллер: Admin\WebFormController::create() / edit()
    Переменные: $form (WebForm — пустая при создании, заполненная при редактировании)
    JS-конструктор вынесен в: admin/forms/partials/_form_editor_js.blade.php
    Типы полей: text, tel, email, select, textarea, checkbox
    Ширина поля: full (100%) / half (50%)
--}}
@extends('admin.layout')

@section('title', $form->exists ? 'Редактировать форму' : 'Новая форма')

@section('content_header')
    <div class="d-flex justify-content-between align-items-center">
        <h1 class="m-0">{{ $form->exists ? 'Редактировать форму: ' . $form->title : 'Новая форма' }}</h1>
        <a href="{{ route('admin.forms.index') }}" class="btn btn-default btn-sm">
            <i class="fas fa-arrow-left"></i> Назад
        </a>
    </div>
@stop

@section('breadcrumb')
    <li class="breadcrumb-item"><a href="{{ route('admin.dashboard') }}">Главная</a></li>
    <li class="breadcrumb-item"><a href="{{ route('admin.forms.index') }}">Веб-формы</a></li>
    <li class="breadcrumb-item active">{{ $form->exists ? 'Редактировать' : 'Создать' }}</li>
@stop

@section('content')
@if($errors->any())
    <div class="alert alert-danger">
        <ul class="mb-0">
            @foreach($errors->all() as $e) <li>{{ $e }}</li> @endforeach
        </ul>
    </div>
@endif

@if($form->exists)
    <form id="formEditor" action="{{ route('admin.forms.update', $form) }}" method="POST">
    @method('PUT')
@else
    <form id="formEditor" action="{{ route('admin.forms.store') }}" method="POST">
@endif
    @csrf

    <div class="row">
        {{-- Основные настройки --}}
        <div class="col-md-8">
            <div class="card card-primary card-outline">
                <div class="card-header"><h3 class="card-title">Настройки формы</h3></div>
                <div class="card-body">
                    <div class="row">
                        <div class="col-md-6">
                            <div class="form-group">
                                <label>Название <span class="text-danger">*</span></label>
                                <input type="text" name="title" id="formTitle"
                                       class="form-control @error('title') is-invalid @enderror"
                                       value="{{ old('title', $form->title) }}"
                                       placeholder="Контактная форма" required>
                                @error('title')<div class="invalid-feedback">{{ $message }}</div>@enderror
                            </div>
                        </div>
                        <div class="col-md-6">
                            <div class="form-group">
                                <label>Слаг (уникальный идентификатор) <span class="text-danger">*</span></label>
                                <input type="text" name="slug" id="formSlug"
                                       class="form-control @error('slug') is-invalid @enderror"
                                       value="{{ old('slug', $form->slug) }}"
                                       placeholder="contact" pattern="[a-z0-9\-_]+" required>
                                <small class="text-muted">Только строчные буквы, цифры, дефис</small>
                                @error('slug')<div class="invalid-feedback">{{ $message }}</div>@enderror
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-8">
                            <div class="form-group mb-0">
                                <label>Email для уведомлений о заявках</label>
                                <input type="email" name="notify_email"
                                       class="form-control @error('notify_email') is-invalid @enderror"
                                       value="{{ old('notify_email', $form->notify_email) }}"
                                       placeholder="manager@example.ru">
                                @error('notify_email')<div class="invalid-feedback">{{ $message }}</div>@enderror
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group mb-0">
                                <label>Статус</label>
                                <div class="mt-2">
                                    <div class="custom-control custom-switch">
                                        <input type="checkbox" class="custom-control-input" id="isActive"
                                               name="is_active" value="1"
                                               {{ old('is_active', $form->is_active ?? true) ? 'checked' : '' }}>
                                        <label class="custom-control-label" for="isActive">Форма активна</label>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            {{-- Конструктор полей --}}
            <div class="card card-secondary card-outline">
                <div class="card-header d-flex justify-content-between align-items-center">
                    <h3 class="card-title">Поля формы</h3>
                    <button type="button" class="btn btn-primary btn-sm" id="addFieldBtn">
                        <i class="fas fa-plus"></i> Добавить поле
                    </button>
                </div>
                <div class="card-body p-0">
                    <div id="fieldsContainer"></div>
                    <div id="fieldsEmpty" class="text-center text-muted py-4" style="display:none">
                        <i class="fas fa-list fa-2x mb-2"></i><br>
                        Нет полей. Нажмите «Добавить поле».
                    </div>
                </div>
                <div class="card-footer">
                    <small class="text-muted">
                        <strong>Типы:</strong> text — текст, tel — телефон, email — почта, select — список, textarea — многострочный, checkbox — согласие<br>
                        <strong>Ширина:</strong> full — полная, half — половина
                    </small>
                </div>
            </div>
        </div>

        {{-- Правая колонка --}}
        <div class="col-md-4">
            <div class="card card-secondary card-outline">
                <div class="card-header"><h3 class="card-title">Использование</h3></div>
                <div class="card-body text-muted" style="font-size:13px;line-height:1.9">
                    <p>Вставьте компонент в Blade-шаблон:</p>
                    <code id="shortcodeHint">&lt;x-web-form slug="{{ $form->slug ?: 'слаг' }}" /&gt;</code>
                    <hr>
                    <p><strong>Checkbox</strong> — одиночный чекбокс-согласие (данные не сохраняются в заявку)</p>
                    <p><strong>Select</strong> — укажите варианты через Enter</p>
                    <p class="mb-0"><strong>name</strong> — авто-заполняется из label, можно изменить</p>
                </div>
            </div>

            <div class="card card-secondary card-outline">
                <div class="card-body">
                    <button type="submit" class="btn btn-primary btn-block">
                        <i class="fas fa-save"></i> Сохранить форму
                    </button>
                </div>
            </div>
        </div>
    </div>

    {{-- Скрытое поле — JSON полей, заполняется перед отправкой --}}
    <input type="hidden" name="fields_json" id="fieldsJson">
</form>
@stop

@push('js')
    @include('admin.forms.partials._form_editor_js')
@endpush
