diff --git a/app/src/Extensions/ElementRows.php b/app/src/Extensions/ElementRows.php index ceeb5e3..55f1657 100644 --- a/app/src/Extensions/ElementRows.php +++ b/app/src/Extensions/ElementRows.php @@ -102,22 +102,27 @@ class ElementRows extends DataExtension } // move parent elements - if($this->isList()){ - $tab->push(DropdownField::create( - 'MoveElementIDToParent', - 'Move an element from the list to parent', - $this->owner->getField('Elements')->Elements()->map('ID', 'Title') - )->setEmptyString('(select an element to move)')); + if ($this->isList()) { + $currEls = $this->owner->getField('Elements')->Elements(); + if ($currEls->count()) { + $tab->push(DropdownField::create( + 'MoveElementIDToParent', + 'Move an element from the current list to parent', + $currEls->map('ID', 'Title') + )->setEmptyString('(select an element to move)')); + } - $tab->push(DropdownField::create( - 'MoveElementIDFromParent', - 'Move an element from parent to the list', - $this->owner->Parent()->Elements() - ->exclude('ID', $this->owner->ID) - ->map('ID', 'Title') - )->setEmptyString('(select an element to move)')); + $parentEls = $this->owner->Parent()->Elements()->exclude('ID', $this->owner->ID); + if ($parentEls->count()) { + $tab->push(DropdownField::create( + 'MoveElementIDFromParent', + 'Move an element from the parent to the current list', + $parentEls->map('ID', 'Title') + )->setEmptyString('(select an element to move)')); + } } + $fields->findOrMakeTab('Root.Settings') ->push(LiteralField::create( 'ClassName', @@ -269,9 +274,10 @@ class ElementRows extends DataExtension return $type; } - public static function MoveElement($moveID, $targetID) { + public static function MoveElement($moveID, $targetID) + { $el = BaseElement::get_by_id($moveID); - if(!$el) { + if (!$el) { return false; } @@ -288,14 +294,14 @@ class ElementRows extends DataExtension $moveID = $this->owner->getField('MoveElementIDFromParent'); $targetID = $moveID ? $this->owner->Elements()->ID : null; - if($moveID && $targetID) { + if ($moveID && $targetID) { self::MoveElement($moveID, $targetID); } $moveID = $this->owner->getField('MoveElementIDToParent'); $targetID = $moveID ? $this->owner->Parent()->ID : null; - if($moveID && $targetID) { + if ($moveID && $targetID) { self::MoveElement($moveID, $targetID); } } diff --git a/app/src/Tests/TestServer.php b/app/src/Tests/TestServer.php index 3c13577..db1bb7b 100644 --- a/app/src/Tests/TestServer.php +++ b/app/src/Tests/TestServer.php @@ -13,6 +13,7 @@ use SilverStripe\Core\Cache\FilesystemCacheFactory; use SilverStripe\Core\Config\Config; use SilverStripe\Core\Convert; use SilverStripe\Dev\BuildTask; +use SilverStripe\Dev\Deprecation; use SilverStripe\Assets\File; class TestServer extends BuildTask @@ -24,6 +25,28 @@ class TestServer extends BuildTask { echo ''; + echo '

Testing Server

'; + echo self::success('BASE_PATH: '.BASE_PATH.''); + echo self::success('PHP: '.phpversion().''); + + $v = Deprecation::dump_settings()['version']; + if ($v) { + echo self::success('SilverStipe version: '.$v.''); + } else { + echo self::success('SilverStipe version unknown: ' + .(file_exists(BASE_PATH.'/framework') ? '3.x.x' : '4.x.x') + .''); + } + + echo self::success('Memory limit: '.ini_get('memory_limit').''); + + + if (is_writable(TEMP_FOLDER)) { + echo self::success('TMP (cache) dir '.TEMP_FOLDER.' dir is writable.'); + } else { + echo self::error('TMP (cache) dir '.TEMP_FOLDER.' dir is no writable!'); + } + echo '

Testing Uploads

'; $maxUpload = ini_get('upload_max_filesize'); $maxPost = ini_get('post_max_size'); @@ -31,18 +54,18 @@ class TestServer extends BuildTask echo self::success('PHP max upload size: '.$maxUpload); echo self::success('PHP max post size: '.$maxPost); echo self::success('So calculated max upload size: '.self::formatBytes(min( - Convert::memstring2bytes($maxUpload), - Convert::memstring2bytes($maxPost) + self::memstring2bytes($maxUpload), + self::memstring2bytes($maxPost) ))); $defaultSizes = Config::inst()->get(Upload_Validator::class, 'default_max_file_size'); - if($defaultSizes) { - if(!is_array($defaultSizes)){ + if ($defaultSizes) { + if (!is_array($defaultSizes)) { echo self::error('default_max_file_size miss-configuration, plz fix'); var_dump($defaultSizes); die(); } - + echo '

Configured limits:

' .''; foreach ($defaultSizes as $k => $size) { @@ -50,6 +73,13 @@ class TestServer extends BuildTask } echo '
FileSize limit
'; } + + if (is_writable(ASSETS_DIR)) { + echo self::success('Assets dir '.ASSETS_DIR.' dir is writable.'); + } else { + echo self::error('Assets dir '.ASSETS_DIR.' dir is no writable!'); + } + die(); } @@ -86,4 +116,20 @@ class TestServer extends BuildTask } echo '

'; } + + public static function memstring2bytes($memString) + { + // Remove non-unit characters from the size + $unit = preg_replace('/[^bkmgtpezy]/i', '', $memString); + // Remove non-numeric characters from the size + $size = preg_replace('/[^0-9\.]/', '', $memString); + + if ($unit) { + // Find the position of the unit in the ordered string which is the power + // of magnitude to multiply a kilobyte by + return round($size * pow(1024, stripos('bkmgtpezy', $unit[0]))); + } + + return round($size); + } } diff --git a/app/templates/DNADesign/ElementalUserForms/Model/ElementForm.ss b/app/templates/DNADesign/ElementalUserForms/Model/ElementForm.ss index c2bf4a9..794f59f 100644 --- a/app/templates/DNADesign/ElementalUserForms/Model/ElementForm.ss +++ b/app/templates/DNADesign/ElementalUserForms/Model/ElementForm.ss @@ -1,4 +1,4 @@ -
+
<% if $Title && $ShowTitle %>

$Title

<% end_if %> diff --git a/app/templates/Includes/MetaHead.ss b/app/templates/Includes/MetaHead.ss index 4b9405b..73d15ee 100644 --- a/app/templates/Includes/MetaHead.ss +++ b/app/templates/Includes/MetaHead.ss @@ -44,10 +44,12 @@ $MetaTags + +