From ee360c187702064e7692184de6f0ca35f616c09d Mon Sep 17 00:00:00 2001 From: Mateusz Uzdowski Date: Tue, 1 May 2012 13:37:15 +1200 Subject: [PATCH] BUGFIX: include derived classes for attaching in the UploadField. --- forms/UploadField.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/forms/UploadField.php b/forms/UploadField.php index 72ad18b22..e23f89944 100644 --- a/forms/UploadField.php +++ b/forms/UploadField.php @@ -915,16 +915,18 @@ class UploadField_SelectHandler extends RequestHandler { $config->addComponent(new GridFieldDataColumns()); $config->addComponent(new GridFieldPaginator(10)); - // Create the data source for the list of files within the current directory. - $files = DataList::create('File')->filter('ParentID', $folderID); - - // If relation is to be autoset, make sure only objects from related class are listed. + // If relation is to be autoset, we need to make sure we only list compatible objects. + $baseClass = null; if ($this->parent->relationAutoSetting) { - if ($relationClass = $this->parent->getRelationAutosetClass()) { - $files->filter('ClassName', $relationClass); - } + $baseClass = $this->parent->getRelationAutosetClass(); } + // By default we can attach anything that is a file, or derives from file. + if (!$baseClass) $baseClass = 'File'; + + // Create the data source for the list of files within the current directory. + $files = DataList::create($baseClass)->filter('ParentID', $folderID); + $fileField = new GridField('Files', false, $files, $config); $fileField->setAttribute('data-selectable', true); if($this->parent->getConfig('allowedMaxFileNumber') > 1) $fileField->setAttribute('data-multiselect', true);