diff --git a/client/src/bundles/Recipient.js b/client/src/bundles/Recipient.js index 0e97c57..02eb8f4 100644 --- a/client/src/bundles/Recipient.js +++ b/client/src/bundles/Recipient.js @@ -2,35 +2,32 @@ * Email recipient behaviour. */ -(function ($) { - $(document).ready(function () { +(function($) { + $.entwine('ss', function($) { + var recipient = { + // Some fields are only visible when HTML email are being sent. + updateFormatSpecificFields: function () { + var sendPlainChecked = $('input[name="SendPlain"]').is(':checked'); - var sendPlain = $('input[name="SendPlain"]'); - var recipient = { - // Some fields are only visible when HTML email are being sent. - updateFormatSpecificFields: function () { - var sendPlainChecked = sendPlain.is(':checked'); + $('.field.toggle-html-only')[sendPlainChecked ? 'hide' : 'show'](); + $('.field.toggle-plain-only')[sendPlainChecked ? 'show' : 'hide'](); + } + }; - $(".field.toggle-html-only")[sendPlainChecked ? 'hide' : 'show'](); - $(".field.toggle-plain-only")[sendPlainChecked ? 'show' : 'hide'](); - } - }; + $('#Form_ItemEditForm .EmailRecipientForm').entwine({ + onmatch: function () { + recipient.updateFormatSpecificFields(); + }, - $.entwine('udf.recipient', function ($) { - $('#Form_ItemEditForm').entwine({ - onmatch: function () { - recipient.updateFormatSpecificFields(); - }, - onunmatch: function () { - this._super(); - } - }); + onunmatch: function () { + this._super(); + } + }); - sendPlain.entwine({ - onchange: function () { - recipient.updateFormatSpecificFields(); - } - }); - }); - }); + $('#Form_ItemEditForm .EmailRecipientForm input[name="SendPlain"]').entwine({ + onchange: function () { + recipient.updateFormatSpecificFields(); + } + }); + }); }(jQuery)); diff --git a/code/model/editableformfields/EditableTextField.php b/code/model/editableformfields/EditableTextField.php index b518446..2273d3f 100644 --- a/code/model/editableformfields/EditableTextField.php +++ b/code/model/editableformfields/EditableTextField.php @@ -61,7 +61,10 @@ class EditableTextField extends EditableFormField public function getCMSFields() { - $this->beforeUpdateCMSFields(function ($fields) { + // PHP 5.3 compat + $self = $this; + + $this->beforeUpdateCMSFields(function ($fields) use ($self) { $fields->addFieldToTab( 'Root.Main', NumericField::create( @@ -78,7 +81,7 @@ class EditableTextField extends EditableFormField DropdownField::create( 'Autocomplete', _t('EditableTextField.AUTOCOMPLETE', 'Autocomplete'), - $this->config()->get('autocomplete_options') + $self->config()->get('autocomplete_options') )->setDescription(_t( 'EditableTextField.AUTOCOMPLETE_DESCRIPTION', 'Supported browsers will attempt to populate this field automatically with the users information, use to set the value populated' diff --git a/tests/Model/EditableFormField/EditableTextFieldTest.php b/tests/Model/EditableFormField/EditableTextFieldTest.php new file mode 100644 index 0000000..19e0503 --- /dev/null +++ b/tests/Model/EditableFormField/EditableTextFieldTest.php @@ -0,0 +1,17 @@ +remove('EditableTextField', 'autocomplete_options'); + Config::inst()->update('EditableTextField', 'autocomplete_options', array('foo' => 'foo')); + + $field = new EditableTextField; + $result = $field->getCMSFields(); + + $autocompleteField = $result->fieldByName('Root.Main.Autocomplete'); + $this->assertInstanceOf('DropdownField', $autocompleteField); + $this->assertEquals(array('foo' => 'foo'), $autocompleteField->getSource()); + } +}