Merge branch '4.5' into 4

This commit is contained in:
Robbie Averill 2017-08-22 10:42:56 +12:00
commit 77538fac0b
3 changed files with 46 additions and 29 deletions

View File

@ -61,7 +61,10 @@ class EditableTextField extends EditableFormField
public function getCMSFields() public function getCMSFields()
{ {
$this->beforeUpdateCMSFields(function ($fields) { // PHP 5.3 compat
$self = $this;
$this->beforeUpdateCMSFields(function ($fields) use ($self) {
$fields->addFieldToTab( $fields->addFieldToTab(
'Root.Main', 'Root.Main',
NumericField::create( NumericField::create(
@ -78,7 +81,7 @@ class EditableTextField extends EditableFormField
DropdownField::create( DropdownField::create(
'Autocomplete', 'Autocomplete',
_t('EditableTextField.AUTOCOMPLETE', 'Autocomplete'), _t('EditableTextField.AUTOCOMPLETE', 'Autocomplete'),
$this->config()->get('autocomplete_options') $self->config()->get('autocomplete_options')
)->setDescription(_t( )->setDescription(_t(
'EditableTextField.AUTOCOMPLETE_DESCRIPTION', 'EditableTextField.AUTOCOMPLETE_DESCRIPTION',
'Supported browsers will attempt to populate this field automatically with the users information, use to set the value populated' 'Supported browsers will attempt to populate this field automatically with the users information, use to set the value populated'

View File

@ -2,35 +2,32 @@
* Email recipient behaviour. * Email recipient behaviour.
*/ */
(function ($) { (function($) {
$(document).ready(function () { $.entwine('ss', function($) {
var sendPlain = $('input[name="SendPlain"]');
var recipient = { var recipient = {
// Some fields are only visible when HTML email are being sent. // Some fields are only visible when HTML email are being sent.
updateFormatSpecificFields: function () { updateFormatSpecificFields: function () {
var sendPlainChecked = sendPlain.is(':checked'); var sendPlainChecked = $('input[name="SendPlain"]').is(':checked');
$(".field.toggle-html-only")[sendPlainChecked ? 'hide' : 'show'](); $('.field.toggle-html-only')[sendPlainChecked ? 'hide' : 'show']();
$(".field.toggle-plain-only")[sendPlainChecked ? 'show' : 'hide'](); $('.field.toggle-plain-only')[sendPlainChecked ? 'show' : 'hide']();
} }
}; };
$.entwine('udf.recipient', function ($) { $('#Form_ItemEditForm .EmailRecipientForm').entwine({
$('#Form_ItemEditForm').entwine({
onmatch: function () { onmatch: function () {
recipient.updateFormatSpecificFields(); recipient.updateFormatSpecificFields();
}, },
onunmatch: function () { onunmatch: function () {
this._super(); this._super();
} }
}); });
sendPlain.entwine({ $('#Form_ItemEditForm .EmailRecipientForm input[name="SendPlain"]').entwine({
onchange: function () { onchange: function () {
recipient.updateFormatSpecificFields(); recipient.updateFormatSpecificFields();
} }
}); });
}); });
});
}(jQuery)); }(jQuery));

View File

@ -0,0 +1,17 @@
<?php
class EditableTextFieldTest extends SapphireTest
{
public function testGetCmsFields()
{
Config::inst()->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());
}
}