Merge branch '2.10' into 2.11

This commit is contained in:
Guy Sartorelli 2023-04-26 13:48:56 +12:00
commit 635d13c6bb
No known key found for this signature in database
GPG Key ID: F313E3B9504D496A
2 changed files with 25 additions and 14 deletions

View File

@ -416,4 +416,11 @@ class StringTagField extends DropdownField
return $this; return $this;
} }
public function performReadonlyTransformation()
{
$field = parent::performReadonlyTransformation();
$field->setValue(implode(', ', $this->Value()));
return $field;
}
} }

View File

@ -178,22 +178,26 @@ class StringTagFieldTest extends SapphireTest
$this->assertNotEmpty($attributes['data-schema']); $this->assertNotEmpty($attributes['data-schema']);
} }
/** public function testPerformReadonlyTransformation()
* Ensure a source of tags matches the given string tag names
*
* @param array $expected
* @param DataList $actualSource
*/
protected function compareTagLists(array $expected, DataList $actualSource)
{ {
$actual = array_keys($actualSource->map('ID', 'Title')->toArray()); $field = new StringTagField('Tags');
sort($expected); $field->setSource(['Test1', 'Test2', 'Test3']);
sort($actual);
$this->assertEquals( // Ensure a single value can be rendered
$expected, $field->setValue(['Test2']);
$actual $field_readonly = $field->performReadonlyTransformation();
); $this->assertEquals('Test2', $field_readonly->Value());
// Ensure multiple valid values are rendered
$field->setValue(['Test1', 'Test2']);
$field_readonly = $field->performReadonlyTransformation();
$this->assertEquals('Test1, Test2', $field_readonly->Value());
// Ensure an value not in the source array is still rendered
// (because e.g. in history view it must have been a valid value when it was set)
$field->setValue(['Test', 'Test1']);
$field_readonly = $field->performReadonlyTransformation();
$this->assertEquals('Test, Test1', $field_readonly->Value());
} }
/** /**