mirror of
https://github.com/silverstripe/silverstripe-reports
synced 2024-10-22 11:05:53 +02:00
BUG setFolderName in CMSFileAddController should default to the root
setFolderName expects a folder name relative to the root. Specifying ASSETS_DIR will create a duplicate folder called "assets", so the file gets uploaded into "assets/assets". Specifying "/" means the file will get uploaded into the root instead, which is correct.
This commit is contained in:
parent
4af60dfee6
commit
118b28dea1
@ -478,10 +478,12 @@ JS
|
||||
public function currentPage() {
|
||||
$id = $this->currentPageID();
|
||||
if($id && is_numeric($id) && $id > 0) {
|
||||
return DataObject::get_by_id('Folder', $id);
|
||||
} else {
|
||||
return new Folder();
|
||||
$folder = DataObject::get_by_id('Folder', $id);
|
||||
if($folder && $folder->exists()) {
|
||||
return $folder;
|
||||
}
|
||||
}
|
||||
return new Folder();
|
||||
}
|
||||
|
||||
function getSiteTreeFor($className, $rootID = null, $childrenMethod = null, $numChildrenMethod = null, $filterFunction = null, $minNodeCount = 30) {
|
||||
|
@ -23,13 +23,13 @@ class CMSFileAddController extends LeftAndMain {
|
||||
*/
|
||||
public function currentPage() {
|
||||
$id = $this->currentPageID();
|
||||
|
||||
if($id && is_numeric($id) && $id > 0) {
|
||||
return DataObject::get_by_id('Folder', $id);
|
||||
} else {
|
||||
// ID is either '0' or 'root'
|
||||
return singleton('Folder');
|
||||
$folder = DataObject::get_by_id('Folder', $id);
|
||||
if($folder && $folder->exists()) {
|
||||
return $folder;
|
||||
}
|
||||
}
|
||||
return new Folder();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -64,12 +64,12 @@ class CMSFileAddController extends LeftAndMain {
|
||||
$uploadField->removeExtraClass('ss-uploadfield');
|
||||
$uploadField->setTemplate('AssetUploadField');
|
||||
|
||||
if ($folder->exists() && $folder->getFilename()) {
|
||||
if($folder->exists() && $folder->getFilename()) {
|
||||
// The Upload class expects a folder relative *within* assets/
|
||||
$path = preg_replace('/^' . ASSETS_DIR . '\//', '', $folder->getFilename());
|
||||
$uploadField->setFolderName($path);
|
||||
} else {
|
||||
$uploadField->setFolderName(ASSETS_DIR);
|
||||
$uploadField->setFolderName('/'); // root of the assets
|
||||
}
|
||||
|
||||
$exts = $uploadField->getValidator()->getAllowedExtensions();
|
||||
|
Loading…
Reference in New Issue
Block a user