| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- {{--
- Partial: поле типа image — загрузка/замена изображения
- Переменные из родителя: $field, $prefix, $values, $imageUrl
- --}}
- @php
- $curVal = $values[$field['name']] ?? '';
- $curUrl = $imageUrl($curVal);
- $hasImg = $curVal !== '';
- $sizeHint = isset($field['width'], $field['height'])
- ? $field['width'] . '×' . $field['height'] . ' px, cover-кроп'
- : (isset($field['width']) ? 'макс. ' . $field['width'] . 'px по ширине' : 'макс. 1200px по ширине');
- @endphp
- <div class="form-group">
- <label>{{ $field['label'] }}</label>
- {{-- Скрытое поле: путь текущего файла (передаётся если нового файла нет) --}}
- <input type="hidden"
- name="{{ $prefix }}[{{ $field['name'] }}]"
- value="{{ $curVal }}"
- class="js-img-current">
- {{-- Превью текущего изображения --}}
- @if($hasImg)
- <div class="mb-2 js-img-preview-current">
- <img src="{{ $curUrl }}"
- class="img-thumbnail d-block"
- style="max-height:140px;max-width:220px;object-fit:cover">
- <small class="text-muted">{{ basename($curVal) }}</small>
- </div>
- @endif
- {{-- Кнопка выбора файла --}}
- <div class="custom-file">
- <input type="file"
- name="uploads[{{ $field['name'] }}]"
- class="custom-file-input js-img-upload"
- accept="image/*"
- id="upload-flat-{{ $field['name'] }}">
- <label class="custom-file-label" for="upload-flat-{{ $field['name'] }}">
- {{ $hasImg ? 'Заменить изображение' : 'Выбрать изображение' }}
- </label>
- </div>
- {{-- Превью нового файла --}}
- <div class="js-img-preview-new mt-2" style="display:none">
- <img src="" class="img-thumbnail d-block" style="max-height:140px;max-width:220px;object-fit:cover">
- <small class="js-img-new-name text-muted"></small>
- </div>
- <small class="text-muted d-block mt-1">
- <i class="fas fa-crop-alt fa-xs"></i> {{ $sizeHint }}, WebP
- </small>
- </div>
|