@php $field['configuration'] ??= []; $defaultConfig = [ 'url' => $field['configuration']['url'] ?? url($crud->route . '/dropzone/upload'), 'headers' => array_merge($field['configuration']['headers'] ?? [], ['X-CSRF-TOKEN' => csrf_token()]), 'parallelUploads' => $field['configuration']['parallelUploads'] ?? 4, 'uploadMultiple' => true, 'maxThumbnailFilesize' => $field['configuration']['maxThumbnailFilesize'] ?? 100 ]; $field['configuration'] = array_merge($field['configuration'], $defaultConfig); $field['value'] = old_empty_or_null($field['name'], '') ?? $field['value'] ?? $field['default'] ?? ''; if(is_string($field['value']) && !empty($field['value'])) { $field['value'] = json_decode($field['value'], true) ?? ''; } $temporaryDisk = CRUD::get('dropzone.temporary_disk'); $temporaryDirectory = CRUD::get('dropzone.temporary_folder'); if (is_array($field['value'])) { $serverFiles = []; foreach ($field['value'] as $key => $path) { $disk = strpos($path, $temporaryDirectory) !== false ? $temporaryDisk : $field['disk']; try { $serverFiles[] = [ 'name' => basename($path), 'size' => \Storage::disk($disk)->size('/uploads/'.$path), 'mime' => \Storage::disk($disk)->mimeType('/uploads/'.$path), 'path' => '/uploads/'.$path, 'url' => Storage::disk($disk)->url('/uploads/'.$path), ]; } catch (\Exception) { $serverFiles[] = [ 'name' => basename($path), 'size' => -1, 'mime' => '', 'path' => $path, 'url' => Storage::disk($disk)->url($path), ]; } } $field['server_files'] = json_encode($serverFiles, true); $field['value'] = json_encode($field['value'], true); } $readonly = $field['attributes']['readonly'] ?? false; $disabled = $field['attributes']['disabled'] ?? false; @endphp @include('crud::fields.inc.wrapper_start') @include('crud::fields.inc.translatable_icon')
{!! $field['hint'] !!}
@endif @include('crud::fields.inc.wrapper_end') {{-- ########################################## --}} {{-- Extra CSS and JS for this particular field --}} {{-- If a field type is shown multiple times on a form, the CSS and JS will only be loaded once --}} {{-- FIELD CSS - will be loaded in the after_styles section --}} @push('crud_fields_styles') {{-- include dropzone css --}} @basset('https://www.unpkg.com/dropzone@6.0.0-beta.2/dist/dropzone.css') @bassetBlock('backpack/pro/fields/dropzone-field.css') @endBassetBlock @endpush {{-- FIELD JS - will be loaded in the after_scripts section --}} @push('crud_fields_scripts') {{-- include dropzone js --}} @basset('https://www.unpkg.com/dropzone@6.0.0-beta.2/dist/dropzone-min.js') @basset('https://www.unpkg.com/sortablejs@1.15.0/Sortable.min.js') @bassetBlock('backpack/pro/fields/dropzone-field.js') @endBassetBlock @endpush {{-- End of Extra CSS and JS --}} {{-- ########################################## --}}