Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

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.
  • Loading branch information...
commit 118b28dea13b128e0f1ae785d78ed7ec11a36098 1 parent 4af60df
@halkyon halkyon authored
View
8 code/controllers/AssetAdmin.php
@@ -478,10 +478,12 @@ public function doAdd($data, $form) {
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) {
View
14 code/controllers/CMSFileAddController.php
@@ -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 @@ public function getEditForm($id = null, $fields = null) {
$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();
Please sign in to comment.
Something went wrong with that request. Please try again.