From 5d37d55f3558424a9b284ead05acae6f73c3c03f Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Mon, 21 Jan 2013 11:08:28 +0100 Subject: [PATCH 1/2] BUG Form session message clearing regression Regression originally from 729bcc95, but made visible by 014f541a8 --- forms/Form.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/forms/Form.php b/forms/Form.php index 631814c60..2417f3b84 100644 --- a/forms/Form.php +++ b/forms/Form.php @@ -1319,15 +1319,15 @@ class Form extends RequestHandler { * than <% control FormObject %> */ public function forTemplate() { - // Now that we're rendered, clear message - Session::clear("FormInfo.{$this->FormName()}.errors"); - Session::clear("FormInfo.{$this->FormName()}.formError"); - Session::clear("FormInfo.{$this->FormName()}.data"); - - return $this->renderWith(array_merge( + $return = $this->renderWith(array_merge( (array)$this->getTemplate(), array('Form') )); + + // Now that we're rendered, clear message + $this->clearMessage(); + + return $return; } /** From 8717deca82778c56b2bb0f492784d921e7f2e8fc Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Mon, 21 Jan 2013 11:10:15 +0100 Subject: [PATCH 2/2] HTMLEditorField undefined $dimensionsField (fixes #7494) Also use fluent API for form field definition to keep field invocations in one place and thereby reduce these kind of bugs. --- forms/HtmlEditorField.php | 125 +++++++++++++++++++------------------- 1 file changed, 63 insertions(+), 62 deletions(-) diff --git a/forms/HtmlEditorField.php b/forms/HtmlEditorField.php index 1d906697b..b5ffd7844 100644 --- a/forms/HtmlEditorField.php +++ b/forms/HtmlEditorField.php @@ -596,35 +596,26 @@ class HtmlEditorField_Toolbar extends RequestHandler { $thumbnailURL = FRAMEWORK_DIR . '/images/default_media.png'; } - $previewField = new LiteralField("ImageFull", - "{$file->Name}\n" - ); - - if($file->Width != null){ - $dimensionsField = new FieldGroup(_t('HtmlEditorField.IMAGEDIMENSIONS', 'Dimensions'), - $widthField = new TextField('Width', _t('HtmlEditorField.IMAGEWIDTHPX', 'Width'), $file->Width), - $heightField = new TextField('Height', _t('HtmlEditorField.IMAGEHEIGHTPX', 'Height'), $file->Height) - ); - } - - $fields = new FieldList( $filePreview = CompositeField::create( CompositeField::create( - $previewField + new LiteralField( + "ImageFull", + "{$file->Name}\n" + ) )->setName("FilePreviewImage")->addExtraClass('cms-file-info-preview'), CompositeField::create( CompositeField::create( new ReadonlyField("FileType", _t('AssetTableField.TYPE','File type') . ':', $file->Type), - $urlField = new ReadonlyField('ClickableURL', _t('AssetTableField.URL','URL'), + $urlField = ReadonlyField::create('ClickableURL', _t('AssetTableField.URL','URL'), sprintf('%s', $url, $url) - ) + )->addExtraClass('text-wrap') ) )->setName("FilePreviewData")->addExtraClass('cms-file-info-data') )->setName("FilePreview")->addExtraClass('cms-file-info'), new TextField('CaptionText', _t('HtmlEditorField.CAPTIONTEXT', 'Caption text')), - $alignment = new DropdownField( + DropdownField::create( 'CSSClass', _t('HtmlEditorField.CSSCLASS', 'Alignment / style'), array( @@ -633,19 +624,26 @@ class HtmlEditorField_Toolbar extends RequestHandler { 'right' => _t('HtmlEditorField.CSSCLASSRIGHT', 'On the right, with text wrapping around.'), 'center' => _t('HtmlEditorField.CSSCLASSCENTER', 'Centered, on its own.'), ) - ), - $dimensionsField + )->addExtraClass('last') ); - $urlField->addExtraClass('text-wrap'); - $urlField->dontEscape = true; - if($dimensionsField){ - $dimensionsField->addExtraClass('dimensions last'); - $widthField->setMaxLength(5); - $heightField->setMaxLength(5); - }else{ - $alignment->addExtraClass('last'); + if($file->Width != null){ + $fields->push( + FieldGroup::create( + _t('HtmlEditorField.IMAGEDIMENSIONS', 'Dimensions'), + TextField::create( + 'Width', + _t('HtmlEditorField.IMAGEWIDTHPX', 'Width'), + $file->Width + )->setMaxLength(5), + TextField::create( + 'Height', + _t('HtmlEditorField.IMAGEHEIGHTPX', 'Height'), + $file->Height + )->setMaxLength(5) + )->addExtraClass('dimensions last') + ); } - + $urlField->dontEscape = true; if($file->Type == 'photo') { $filePreview->FieldList()->insertBefore(new TextField( @@ -670,15 +668,20 @@ class HtmlEditorField_Toolbar extends RequestHandler { */ protected function getFieldsForFlash($url, $file) { $fields = new FieldList( - $dimensionsField = new FieldGroup(_t('HtmlEditorField.IMAGEDIMENSIONS', 'Dimensions'), - $widthField = new TextField('Width', _t('HtmlEditorField.IMAGEWIDTHPX', 'Width'), $file->Width), - $heightField = new TextField('Height', " x " . _t('HtmlEditorField.IMAGEHEIGHTPX', 'Height'), - $file->Height) - ) + FieldGroup::create( + _t('HtmlEditorField.IMAGEDIMENSIONS', 'Dimensions'), + TextField::create( + 'Width', + _t('HtmlEditorField.IMAGEWIDTHPX', 'Width'), + $file->Width + )->setMaxLength(5), + TextField::create( + 'Height', + " x " . _t('HtmlEditorField.IMAGEHEIGHTPX', 'Height'), + $file->Height + )->setMaxLength(5) + )->addExtraClass('dimensions') ); - $dimensionsField->addExtraClass('dimensions'); - $widthField->setMaxLength(5); - $heightField->setMaxLength(5); $this->extend('updateFieldsForFlash', $fields, $url, $file); @@ -696,23 +699,14 @@ class HtmlEditorField_Toolbar extends RequestHandler { $thumbnailURL = $url; } - $previewField = new LiteralField("ImageFull", - "{$file->Name}\n" - ); - - if($file->Width != null){ - $dimensionsField = new FieldGroup(_t('HtmlEditorField.IMAGEDIMENSIONS', 'Dimensions'), - $widthField = new TextField('Width', _t('HtmlEditorField.IMAGEWIDTHPX', 'Width'), $file->Width), - $heightField = new TextField('Height', " x " . _t('HtmlEditorField.IMAGEHEIGHTPX', 'Height'), - $file->Height) - ); - } - $fields = new FieldList( - $filePreview = CompositeField::create( + CompositeField::create( CompositeField::create( - $previewField + LiteralField::create( + "ImageFull", + "{$file->Name}\n" + ) )->setName("FilePreviewImage")->addExtraClass('cms-file-info-preview'), CompositeField::create( CompositeField::create( @@ -745,7 +739,7 @@ class HtmlEditorField_Toolbar extends RequestHandler { _t('HtmlEditorField.IMAGETITLETEXTDESC', 'For additional information about the image')), new TextField('CaptionText', _t('HtmlEditorField.CAPTIONTEXT', 'Caption text')), - $alignment = new DropdownField( + DropdownField::create( 'CSSClass', _t('HtmlEditorField.CSSCLASS', 'Alignment / style'), array( @@ -754,18 +748,25 @@ class HtmlEditorField_Toolbar extends RequestHandler { 'right' => _t('HtmlEditorField.CSSCLASSRIGHT', 'On the right, with text wrapping around.'), 'center' => _t('HtmlEditorField.CSSCLASSCENTER', 'Centered, on its own.'), ) - ), - $dimensionsField + )->addExtraClass('last') ); - $urlField->dontEscape = true; - if($dimensionsField){ - $dimensionsField->addExtraClass('dimensions last'); - $widthField->setMaxLength(5); - $heightField->setMaxLength(5); - }else{ - $alignment->addExtraClass('last'); + if($file->Width != null){ + $fields->push( + FieldGroup::create(_t('HtmlEditorField.IMAGEDIMENSIONS', 'Dimensions'), + TextField::create( + 'Width', + _t('HtmlEditorField.IMAGEWIDTHPX', 'Width'), + $file->Width + )->setMaxLength(5), + TextField::create( + 'Height', + " x " . _t('HtmlEditorField.IMAGEHEIGHTPX', 'Height'), + $file->Height + )->setMaxLength(5) + )->addExtraClass('dimensions last') + ); } - + $urlField->dontEscape = true; $this->extend('updateFieldsForImage', $fields, $url, $file);