From e8771d56f24ae947db4915bbe235e7da2c67bd64 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Thu, 27 Jun 2019 19:03:04 +0200 Subject: [PATCH] #2843 --- src/app/Magic/Fields/Files.php | 10 +++------ .../Magic/Models/CubistMagicAbstractModel.php | 5 +++++ .../views/fields/dropzone_media.blade.php | 22 +++++++++++++------ 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/app/Magic/Fields/Files.php b/src/app/Magic/Fields/Files.php index ca2deea..002e584 100644 --- a/src/app/Magic/Fields/Files.php +++ b/src/app/Magic/Fields/Files.php @@ -12,17 +12,18 @@ class Files extends Field 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]]); } @@ -37,9 +38,4 @@ class Files extends Field ]); } - protected function _postSetAttributes() - { - parent::_postSetAttributes(); - $this->setAttributeIfNotSet('collection', $this->getAttribute('name')); - } } diff --git a/src/app/Magic/Models/CubistMagicAbstractModel.php b/src/app/Magic/Models/CubistMagicAbstractModel.php index bfaec3c..4252fe7 100644 --- a/src/app/Magic/Models/CubistMagicAbstractModel.php +++ b/src/app/Magic/Models/CubistMagicAbstractModel.php @@ -469,6 +469,11 @@ class CubistMagicAbstractModel extends Model implements HasMedia } + public function getAllMedia() + { + return Media::where('model_id', $this->getKey())->where('model_type', get_class($this))->get(); + } + /** * @param $controller CubistMagicController */ diff --git a/src/resources/views/fields/dropzone_media.blade.php b/src/resources/views/fields/dropzone_media.blade.php index 1443a2c..2d5e9c8 100644 --- a/src/resources/views/fields/dropzone_media.blade.php +++ b/src/resources/views/fields/dropzone_media.blade.php @@ -1,3 +1,7 @@ + + @section('previewTemplate')
@@ -52,10 +56,9 @@
{{ $field['label'] }}
- +
Drop files here or click to upload. @@ -80,11 +83,12 @@ $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, @@ -122,12 +126,16 @@ 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]; -- 2.39.5