protected $_adminType = 'dropzone_media';
protected $_viewNamespace = CubistBackpackServiceProvider::NAMESPACE . '::fields';
protected $_databaseType = 'text';
- protected $_collection = 'default';
protected $_thumbCollection = 'backpack_thumb';
protected $_maxFiles = 1;
public function getDefaultAttributes()
{
+ $collection = hash('sha256', 'c_' . rand(1, 10000000000000));
return array_merge(parent::getDefaultAttributes(), [
'form' => 'update',
'mime_types' => $this->_mimeTypes,
- 'collection' => $this->_collection,
+ 'collection' => $collection,
'thumb_collection' => $this->_thumbCollection,
+ 'default' => $collection,
'options' => ['thumbnailHeight' => 368, 'thumbnailWidth' => 232, 'maxFilesize' => 1024, 'addRemoveLinks' => true, 'createImageThumbnails' => true, 'maxFiles' => $this->_maxFiles]]);
}
]);
}
- protected function _postSetAttributes()
- {
- parent::_postSetAttributes();
- $this->setAttributeIfNotSet('collection', $this->getAttribute('name'));
- }
}
+<?php
+$collection = old(square_brackets_to_dots($field['name'])) ?? $field['value'] ?? $field['default'] ?? [];
+?>
+
@section('previewTemplate')
<div class="dz-preview dz-file-preview">
<div class="dz-image">
<div class="form-group col-md-12">
<strong>{{ $field['label'] }}</strong> <br>
- <input type="hidden" value="{{$field['collection']}}" name="{{$field['name']}}"/>
+ <input type="hidden" value="{{$collection}}" name="{{$field['name']}}"/>
<div data-url="{{ url($crud->route . '/' . $entry->id . '/media') }}"
data-options='@json($field['options'])'
- data-collection="{{$field['collection']}}"
class="dropzone dz-clickable sortable">
<div class="dz-message">
Drop files here or click to upload.
$files = [];
$filesrand = 'files_' . rand(1, 10000);
- foreach ($entry->getMedia() as $media) {
- if (!isset($files[$field['collection']])) {
- $files[$field['collection']] = [];
+ foreach ($entry->getAllMedia() as $media) {
+ $collection = $media->collection_name;
+ if (!isset($files[$collection])) {
+ $files[$collection] = [];
}
- $files[$field['collection']][] = [
+ $files[$collection][] = [
'id' => $media->id,
'order_column' => $media->order_column,
'size' => $media->size,
var el = $(el);
var base_url = el.data('url');
var el_id = $(el).attr('id');
- var collection = $(el).data('collection');
+ var collection = $(el).prev().val();
var dOptions = {
url: base_url,
previewTemplate: '{!! str_replace(array("\r\n", "\r", "\n"), "", addslashes(View::getSection("previewTemplate"))); !!}',
init: function () {
var files = f_{{$filesrand}}[collection];
+ if (files === undefined) {
+ files = [];
+ }
+ console.log(collection, files);
for (var i = 0; i < files.length; i++) {
var file = files[i];