FIX: Allow empty checkboxes through setValue(null) (#1392)

This commit is contained in:
Will Rossiter 2014-01-12 17:28:09 +13:00
parent 13bd4e96b1
commit e7266535c5
2 changed files with 20 additions and 2 deletions

View File

@ -90,8 +90,13 @@ class CheckboxSetField extends OptionsetField {
if($values instanceof SS_List || is_array($values)) { if($values instanceof SS_List || is_array($values)) {
$items = $values; $items = $values;
} else { } else {
$items = explode(',', $values); if($values === null) {
$items = str_replace('{comma}', ',', $items); $items = array();
}
else {
$items = explode(',', $values);
$items = str_replace('{comma}', ',', $items);
}
} }
} }

View File

@ -1,9 +1,11 @@
<?php <?php
/** /**
* @package framework * @package framework
* @subpackage tests * @subpackage tests
*/ */
class CheckboxSetFieldTest extends SapphireTest { class CheckboxSetFieldTest extends SapphireTest {
protected static $fixture_file = 'CheckboxSetFieldTest.yml'; protected static $fixture_file = 'CheckboxSetFieldTest.yml';
protected $extraDataObjects = array( protected $extraDataObjects = array(
@ -144,7 +146,13 @@ class CheckboxSetFieldTest extends SapphireTest {
} }
/**
* @package framework
* @subpackage tests
*/
class CheckboxSetFieldTest_Article extends DataObject implements TestOnly { class CheckboxSetFieldTest_Article extends DataObject implements TestOnly {
private static $db = array( private static $db = array(
"Content" => "Text", "Content" => "Text",
); );
@ -155,7 +163,12 @@ class CheckboxSetFieldTest_Article extends DataObject implements TestOnly {
} }
/**
* @package framework
* @subpackage tests
*/
class CheckboxSetFieldTest_Tag extends DataObject implements TestOnly { class CheckboxSetFieldTest_Tag extends DataObject implements TestOnly {
private static $belongs_many_many = array( private static $belongs_many_many = array(
'Articles' => 'CheckboxSetFieldTest_Article' 'Articles' => 'CheckboxSetFieldTest_Article'
); );