From 5b06d809251988ab9210dc2e2f7b902b7cb6b47d Mon Sep 17 00:00:00 2001 From: David Craig Date: Tue, 21 Jul 2015 17:44:22 +1200 Subject: [PATCH] Display form fields correctly in email preview --- code/model/UserDefinedForm.php | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/code/model/UserDefinedForm.php b/code/model/UserDefinedForm.php index ec6a6c7..4a74c98 100755 --- a/code/model/UserDefinedForm.php +++ b/code/model/UserDefinedForm.php @@ -1377,9 +1377,35 @@ class UserDefinedForm_EmailRecipient_ItemRequest extends GridFieldDetailForm_Ite */ public function preview() { return $this->customise(new ArrayData(array( - 'Body' => $this->record->getEmailBodyContent() + 'Body' => $this->record->getEmailBodyContent(), + 'HideFormData' => $this->record->HideFormData, + 'Fields' => $this->getPreviewFieldData() )))->renderWith($this->record->EmailTemplate); } + + /** + * Get some placeholder field values to display in the preview + * @return ArrayList + */ + private function getPreviewFieldData() { + $data = new ArrayList(); + + $fields = $this->record->Form()->Fields()->filter(array( + 'ClassName:not' => 'EditableLiteralField', + 'ClassName:not' => 'EditableFormHeading' + )); + + foreach ($fields as $field) { + $data->push(new ArrayData(array( + 'Name' => $field->Name, + 'Title' => $field->Title, + 'Value' => '$' . $field->Name, + 'FormattedValue' => '$' . $field->Name + ))); + } + + return $data; + } } /**