From 98ecaf9bd09dbf4679a56ef1ac510f1bf7917c90 Mon Sep 17 00:00:00 2001 From: Christopher Joe Date: Tue, 21 Feb 2017 14:38:57 +1300 Subject: [PATCH] Change UploadField to TreeDropdownField for modal fields Change UploadField to abstract placeholder FileHandleField for non-modal fields --- _config/asset.yml | 6 ++++++ admin/client/dist/js/bundle.js | 4 ++-- admin/client/src/bundles/bundle.js | 1 - src/Forms/FileField.php | 2 +- src/Forms/FileHandleField.php | 18 ++++++++++++++++++ .../HTMLEditor/HTMLEditorField_Toolbar.php | 9 +++++++-- src/ORM/FieldType/DBForeignKey.php | 5 +++-- 7 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 src/Forms/FileHandleField.php diff --git a/_config/asset.yml b/_config/asset.yml index cca4fadfb..93c04adbd 100644 --- a/_config/asset.yml +++ b/_config/asset.yml @@ -66,3 +66,9 @@ SilverStripe\Core\Injector\Injector: SilverStripe\Assets\Image_Backend: class: SilverStripe\Assets\GDBackend Image_Backend: '%$SilverStripe\Assets\Image_Backend' +--- +Name: coreassetfield +--- +SilverStripe\Core\Injector\Injector: + SilverStripe\Forms\FileHandleField: + class: SilverStripe\Forms\FileField diff --git a/admin/client/dist/js/bundle.js b/admin/client/dist/js/bundle.js index 1c8241981..1354a869f 100644 --- a/admin/client/dist/js/bundle.js +++ b/admin/client/dist/js/bundle.js @@ -1,7 +1,7 @@ webpackJsonp([4],[function(e,t,n){"use strict" n(2),n(3),n(6),n(16),n(18),n(24),n(26),n(28),n(29),n(31),n(34),n(104),n(112),n(116),n(126),n(127),n(128),n(129),n(130),n(131),n(133),n(136),n(138),n(140),n(143),n(146),n(148),n(150),n(152),n(154),n(156), -n(157),n(166),n(167),n(169),n(170),n(171),n(172),n(173),n(174),n(175),n(176),n(177),n(178),n(179),n(180),n(181),n(184),n(186),n(187),n(188),n(189),n(193),n(194),n(195),n(196),n(197),n(194),n(189),n(200), -n(202),n(204),n(205)},,function(e,t){"use strict" +n(157),n(166),n(167),n(169),n(170),n(171),n(172),n(173),n(174),n(175),n(176),n(177),n(178),n(179),n(180),n(181),n(184),n(186),n(187),n(188),n(189),n(193),n(194),n(195),n(196),n(197),n(194),n(200),n(202), +n(204),n(205)},,function(e,t){"use strict" function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0}) var i=function(){function e(e,t){for(var n=0;n */ -class FileField extends FormField +class FileField extends FormField implements FileHandleField { use UploadReceiver; diff --git a/src/Forms/FileHandleField.php b/src/Forms/FileHandleField.php new file mode 100644 index 000000000..9c98a2259 --- /dev/null +++ b/src/Forms/FileHandleField.php @@ -0,0 +1,18 @@ +Step %d.' . '%s'; + $form = new Form( $this->controller, "{$this->name}/LinkForm", @@ -159,7 +162,10 @@ class HTMLEditorField_Toolbar extends RequestHandler $siteTree, TextField::create('external', _t('HTMLEditorField.URL', 'URL'), 'http://'), EmailField::create('email', _t('HTMLEditorField.EMAIL', 'Email address')), - $fileField = UploadField::create('file', _t('HTMLEditorField.FILE', 'File')), + $fileField = TreeDropdownField::create( + 'file', + _t('HTMLEditorField.FILE', 'File'), + File::class), TextField::create('Anchor', _t('HTMLEditorField.ANCHORVALUE', 'Anchor')), TextField::create('Subject', _t('HTMLEditorField.SUBJECT', 'Email subject')), TextField::create('Description', _t('HTMLEditorField.LINKDESCR', 'Link description')), @@ -177,7 +183,6 @@ class HTMLEditorField_Toolbar extends RequestHandler $headerWrap->addExtraClass('CompositeField composite cms-content-header form-group--no-label '); $contentComposite->setName('ContentBody'); $contentComposite->addExtraClass('ss-insert-link content'); - $fileField->setAllowedMaxFileNumber(1); $form->unsetValidator(); $form->loadDataFrom($this); diff --git a/src/ORM/FieldType/DBForeignKey.php b/src/ORM/FieldType/DBForeignKey.php index 95da24bac..7c3d6beb5 100644 --- a/src/ORM/FieldType/DBForeignKey.php +++ b/src/ORM/FieldType/DBForeignKey.php @@ -4,8 +4,9 @@ namespace SilverStripe\ORM\FieldType; use SilverStripe\Assets\File; use SilverStripe\Assets\Image; -use SilverStripe\Forms\UploadField; +use SilverStripe\Core\Injector\Injector; use SilverStripe\Forms\DropdownField; +use SilverStripe\Forms\FileHandleField; use SilverStripe\Forms\NumericField; use SilverStripe\ORM\DataList; use SilverStripe\ORM\DataObject; @@ -48,7 +49,7 @@ class DBForeignKey extends DBInt } $hasOneSingleton = singleton($hasOneClass); if ($hasOneSingleton instanceof File) { - $field = new UploadField($relationName, $title); + $field = Injector::inst()->create(FileHandleField::class, $relationName, $title); if ($hasOneSingleton instanceof Image) { $field->setAllowedFileCategories('image/supported'); }