section_form.blade.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. {{--
  2. Вьюха: Форма создания и редактирования раздела справочника (единая для sectionCreate/sectionEdit)
  3. Создана: 2026-05-06
  4. Контроллер: Admin\ManualController::sectionCreate() / sectionEdit() / sectionStore() / sectionUpdate()
  5. Переменные: $section (DictSection|undefined — отсутствует при создании)
  6. Поля: code (уникальный идентификатор), label (название), sort_order, is_hierarchical
  7. Примечание: code недоступен для редактирования у системных разделов (is_system=true → readonly)
  8. --}}
  9. @extends('admin.layout')
  10. @section('title', isset($section) ? 'Редактировать раздел' : 'Добавить раздел')
  11. @section('content_header')
  12. <div class="d-flex justify-content-between align-items-center">
  13. <h1 class="m-0">{{ isset($section) ? 'Редактировать раздел' : 'Добавить раздел справочника' }}</h1>
  14. <a href="{{ route('admin.manuals.index') }}" class="btn btn-default btn-sm">
  15. <i class="fas fa-arrow-left"></i> Назад
  16. </a>
  17. </div>
  18. @stop
  19. @section('breadcrumb')
  20. <li class="breadcrumb-item"><a href="{{ route('admin.dashboard') }}">Главная</a></li>
  21. <li class="breadcrumb-item"><a href="{{ route('admin.manuals.index') }}">Справочники</a></li>
  22. <li class="breadcrumb-item active">{{ isset($section) ? 'Редактировать раздел' : 'Добавить раздел' }}</li>
  23. @stop
  24. @section('content')
  25. <div class="row justify-content-center">
  26. <div class="col-md-7">
  27. <div class="card card-primary card-outline">
  28. <div class="card-body">
  29. @if($errors->any())
  30. <div class="alert alert-danger">
  31. <ul class="mb-0">
  32. @foreach($errors->all() as $e) <li>{{ $e }}</li> @endforeach
  33. </ul>
  34. </div>
  35. @endif
  36. <form action="{{ isset($section) ? route('admin.manuals.section.update', $section) : route('admin.manuals.section.store') }}"
  37. method="POST">
  38. @csrf
  39. @if(isset($section)) @method('PUT') @endif
  40. <div class="form-group">
  41. <label>Код <span class="text-danger">*</span></label>
  42. <input type="text" name="code"
  43. class="form-control @error('code') is-invalid @enderror"
  44. value="{{ old('code', $section->code ?? '') }}"
  45. placeholder="например: body_types"
  46. {{ isset($section) && $section->is_system ? 'readonly' : '' }}>
  47. <small class="text-muted">Латинские буквы, цифры, нижнее подчёркивание. Уникальный идентификатор.</small>
  48. @error('code')<div class="invalid-feedback">{{ $message }}</div>@enderror
  49. </div>
  50. <div class="form-group">
  51. <label>Название <span class="text-danger">*</span></label>
  52. <input type="text" name="label"
  53. class="form-control @error('label') is-invalid @enderror"
  54. value="{{ old('label', $section->label ?? '') }}"
  55. placeholder="например: Типы кузова">
  56. @error('label')<div class="invalid-feedback">{{ $message }}</div>@enderror
  57. </div>
  58. <div class="form-group">
  59. <label>Порядок сортировки</label>
  60. <input type="number" name="sort_order"
  61. class="form-control @error('sort_order') is-invalid @enderror"
  62. value="{{ old('sort_order', $section->sort_order ?? 0) }}">
  63. @error('sort_order')<div class="invalid-feedback">{{ $message }}</div>@enderror
  64. </div>
  65. <div class="form-group">
  66. <div class="custom-control custom-checkbox">
  67. <input type="checkbox" class="custom-control-input" id="is_hierarchical"
  68. name="is_hierarchical" value="1"
  69. @checked(old('is_hierarchical', $section->is_hierarchical ?? false))>
  70. <label class="custom-control-label" for="is_hierarchical">
  71. Иерархический (двухуровневый, например: Марки → Модели)
  72. </label>
  73. </div>
  74. </div>
  75. <div class="d-flex">
  76. <button type="submit" class="btn btn-primary">
  77. <i class="fas fa-save"></i> {{ isset($section) ? 'Сохранить' : 'Создать раздел' }}
  78. </button>
  79. <a href="{{ route('admin.manuals.index') }}" class="btn btn-default ml-2">Отмена</a>
  80. </div>
  81. </form>
  82. </div>
  83. </div>
  84. </div>
  85. </div>
  86. @stop