Просмотр исходного кода

修复文件上传功能bug

update
jqh 5 лет назад
Родитель
Сommit
b643b752c2

+ 1 - 1
resources/assets/dcat/plugins/webuploader/webuploader.css

@@ -368,7 +368,7 @@
 	bottom: 0;
 	left: 0;
 	overflow: hidden;
-	z-index: 300
+	z-index: 10
 }
 
 .web-uploader .filelist div.file-panel span {

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
resources/assets/dcat/plugins/webuploader/webuploader.min.css


+ 1 - 1
resources/dist/dcat/plugins/webuploader/webuploader.css

@@ -368,7 +368,7 @@
 	bottom: 0;
 	left: 0;
 	overflow: hidden;
-	z-index: 300
+	z-index: 10
 }
 
 .web-uploader .filelist div.file-panel span {

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
resources/dist/dcat/plugins/webuploader/webuploader.min.css


+ 10 - 3
src/Form.php

@@ -529,6 +529,8 @@ class Form implements Renderable
 
             $this->model(new Fluent($data));
 
+            $this->setFieldOriginalValue();
+
             $this->build();
 
             if (($response = $this->callDeleting()) instanceof Response) {
@@ -761,10 +763,11 @@ class Form implements Renderable
         $this->builder->mode(Builder::MODE_EDIT);
 
         $this->model(new Fluent($this->repository->getDataWhenUpdating($this)));
-        $this->setFieldOriginalValue();
 
         $this->build();
 
+        $this->setFieldOriginalValue();
+
         if ($response = $this->callSubmitted()) {
             return $response;
         }
@@ -1091,7 +1094,11 @@ class Form implements Renderable
      */
     protected function setFieldOriginalValue()
     {
-        $this->fillFields($this->model->toArray());
+        $data = $this->model()->toArray();
+
+        $this->builder->fields()->each(function (Field $field) use ($data) {
+            $field->setOriginal($data);
+        });
     }
 
     /**
@@ -1136,8 +1143,8 @@ class Form implements Renderable
             return;
         }
 
+        $this->fillFields($this->model()->toArray());
         $this->callEditing();
-        $this->setFieldOriginalValue();
     }
 
     /**

+ 5 - 7
src/Form/Field.php

@@ -205,7 +205,7 @@ class Field implements Renderable
     /**
      * @var \Closure
      */
-    protected $prepareCallback;
+    protected $savingCallback;
 
     /**
      * Field constructor.
@@ -762,13 +762,11 @@ class Field implements Renderable
     }
 
     /**
-     * Prepare for a field value before update or insert.
-     *
      * @param mixed $value
      *
      * @return mixed
      */
-    protected function prepareToSave($value)
+    protected function prepareInputValue($value)
     {
         return $value;
     }
@@ -780,7 +778,7 @@ class Field implements Renderable
      */
     public function saving(\Closure $closure)
     {
-        $this->prepareCallback = $closure;
+        $this->savingCallback = $closure;
 
         return $this;
     }
@@ -794,9 +792,9 @@ class Field implements Renderable
      */
     final public function prepare($value)
     {
-        $value = $this->prepareToSave($value);
+        $value = $this->prepareInputValue($value);
 
-        if ($handler = $this->prepareCallback) {
+        if ($handler = $this->savingCallback) {
             $handler->bindTo($this->data());
 
             return $handler($value);

+ 1 - 1
src/Form/Field/BootstrapFile.php

@@ -100,7 +100,7 @@ class BootstrapFile extends Field
      *
      * @return mixed|string
      */
-    protected function prepareToSave($file)
+    protected function prepareInputValue($file)
     {
         if (request()->has(static::FILE_DELETE_FLAG)) {
             return $this->destroy();

+ 1 - 1
src/Form/Field/BootstrapImage.php

@@ -67,7 +67,7 @@ class BootstrapImage extends BootstrapFile
      *
      * @return string
      */
-    protected function prepareToSave($image)
+    protected function prepareInputValue($image)
     {
         if (request()->has(static::FILE_DELETE_FLAG)) {
             return $this->destroy();

+ 1 - 1
src/Form/Field/BootstrapMultipleFile.php

@@ -109,7 +109,7 @@ class BootstrapMultipleFile extends Field
      *
      * @return mixed|string
      */
-    protected function prepareToSave($files)
+    protected function prepareInputValue($files)
     {
         if (request()->has(static::FILE_DELETE_FLAG)) {
             return $this->destroy(request(static::FILE_DELETE_FLAG));

+ 1 - 1
src/Form/Field/Currency.php

@@ -53,7 +53,7 @@ class Currency extends Text
     /**
      * {@inheritdoc}
      */
-    protected function prepareToSave($value)
+    protected function prepareInputValue($value)
     {
         return (float) $value;
     }

+ 1 - 1
src/Form/Field/Date.php

@@ -16,7 +16,7 @@ class Date extends Text
         return $this;
     }
 
-    protected function prepareToSave($value)
+    protected function prepareInputValue($value)
     {
         if ($value === '') {
             $value = null;

+ 1 - 1
src/Form/Field/DateRange.php

@@ -31,7 +31,7 @@ class DateRange extends Field
         $this->options(['format' => $this->format]);
     }
 
-    protected function prepareToSave($value)
+    protected function prepareInputValue($value)
     {
         if ($value === '') {
             $value = null;

+ 1 - 1
src/Form/Field/Embeds.php

@@ -42,7 +42,7 @@ class Embeds extends Field
      *
      * @return array
      */
-    protected function prepareToSave($input)
+    protected function prepareInputValue($input)
     {
         $form = $this->buildEmbeddedForm();
 

+ 1 - 1
src/Form/Field/File.php

@@ -99,7 +99,7 @@ class File extends Field implements UploadFieldInterface
      *
      * @return mixed|string
      */
-    protected function prepareToSave($file)
+    protected function prepareInputValue($file)
     {
         if (request()->has(static::FILE_DELETE_FLAG)) {
             return $this->destroy();

+ 1 - 1
src/Form/Field/HasMany.php

@@ -304,7 +304,7 @@ class HasMany extends Field
      *
      * @return array
      */
-    protected function prepareToSave($input)
+    protected function prepareInputValue($input)
     {
         $form = $this->buildNestedForm($this->column, $this->builder);
 

+ 1 - 1
src/Form/Field/KeyValue.php

@@ -93,7 +93,7 @@ class KeyValue extends Field
 JS;
     }
 
-    protected function prepareToSave($value)
+    protected function prepareInputValue($value)
     {
         unset($value[static::DEFAULT_FLAG_NAME]);
 

+ 1 - 1
src/Form/Field/ListField.php

@@ -147,7 +147,7 @@ JS;
     /**
      * {@inheritdoc}
      */
-    protected function prepareToSave($value)
+    protected function prepareInputValue($value)
     {
         unset($value['values'][static::DEFAULT_FLAG_NAME]);
 

+ 1 - 1
src/Form/Field/MultipleFile.php

@@ -32,7 +32,7 @@ class MultipleFile extends File
      *
      * @return array
      */
-    protected function prepareToSave($file)
+    protected function prepareInputValue($file)
     {
         if ($path = request(static::FILE_DELETE_FLAG)) {
             $this->deleteFile($path);

+ 1 - 1
src/Form/Field/MultipleImage.php

@@ -33,7 +33,7 @@ class MultipleImage extends Image
      *
      * @return array
      */
-    protected function prepareToSave($file)
+    protected function prepareInputValue($file)
     {
         if ($path = request(static::FILE_DELETE_FLAG)) {
             $this->deleteFile($path);

+ 1 - 1
src/Form/Field/MultipleSelect.php

@@ -12,7 +12,7 @@ class MultipleSelect extends Select
         return Helper::array(Arr::get($data, $this->column));
     }
 
-    protected function prepareToSave($value)
+    protected function prepareInputValue($value)
     {
         return Helper::array($value, true);
     }

+ 1 - 1
src/Form/Field/Number.php

@@ -28,7 +28,7 @@ JS;
         return parent::render();
     }
 
-    protected function prepareToSave($value)
+    protected function prepareInputValue($value)
     {
         return (int) $value;
     }

+ 1 - 1
src/Form/Field/SelectResource.php

@@ -149,7 +149,7 @@ class SelectResource extends Field
         }
     }
 
-    protected function prepareToSave($value)
+    protected function prepareInputValue($value)
     {
         if ($this->maxItem == 1) {
             if ($value === null || $value === '') {

+ 1 - 1
src/Form/Field/SwitchField.php

@@ -88,7 +88,7 @@ class SwitchField extends Field
      *
      * @return int
      */
-    protected function prepareToSave($value)
+    protected function prepareInputValue($value)
     {
         return $value ? 1 : 0;
     }

+ 1 - 1
src/Form/Field/Table.php

@@ -62,7 +62,7 @@ class Table extends HasMany
         return $forms;
     }
 
-    protected function prepareToSave($input)
+    protected function prepareInputValue($input)
     {
         $form = $this->buildNestedForm($this->column, $this->builder);
         $prepare = $form->prepare($input);

+ 1 - 1
src/Form/Field/Tags.php

@@ -124,7 +124,7 @@ class Tags extends Field
     /**
      * {@inheritdoc}
      */
-    protected function prepareToSave($value)
+    protected function prepareInputValue($value)
     {
         if (! is_array($value)) {
             return $value;

+ 1 - 1
src/Form/Field/Tree.php

@@ -242,7 +242,7 @@ class Tree extends Field
      *
      * @return array
      */
-    protected function prepareToSave($value)
+    protected function prepareInputValue($value)
     {
         return Helper::array($value, true);
     }

+ 10 - 16
src/Form/Field/UploadField.php

@@ -526,30 +526,24 @@ trait UploadField
      *
      * @param string|array $path
      */
-    public function deleteFile($path)
+    public function deleteFile($paths)
     {
-        if (! $path) {
-            return;
-        }
-
-        if (is_array($path)) {
-            foreach ($path as $v) {
-                $this->deleteFile($v);
-            }
-
+        if (! $paths) {
             return;
         }
 
         $storage = $this->getStorage();
 
-        if ($storage->exists($path)) {
-            $storage->delete($path);
-        } else {
-            $prefix = $storage->url('');
-            $path = str_replace($prefix, '', $path);
-
+        foreach ((array) $paths as $path) {
             if ($storage->exists($path)) {
                 $storage->delete($path);
+            } else {
+                $prefix = $storage->url('');
+                $path = str_replace($prefix, '', $path);
+
+                if ($storage->exists($path)) {
+                    $storage->delete($path);
+                }
             }
         }
     }

Некоторые файлы не были показаны из-за большого количества измененных файлов