ENHANCEMENT Allow overriding TableListField_Item on TableListField by setting the property itemClass

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/2.4@98428 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Sean Harvey 2010-02-08 11:13:31 +00:00 committed by Sam Minnee
parent f1ee9d45d5
commit 8b1367794e
1 changed files with 8 additions and 4 deletions

View File

@ -76,6 +76,11 @@ class TableListField extends FormField {
*/
protected $template = "TableListField";
/**
* @var $itemClass string Class name for each item/row
*/
public $itemClass = 'TableListField_Item';
/**
* @var bool Do we use checkboxes to mark records, or delete them one by one?
*/
@ -467,8 +472,7 @@ JS
function Items() {
$fieldItems = new DataObjectSet();
if($items = $this->sourceItems()) foreach($items as $item) {
$fieldItem = new TableListField_Item($item, $this);
if($item) $fieldItems->push(new TableListField_Item($item, $this));
if($item) $fieldItems->push(new $this->itemClass($item, $this));
}
return $fieldItems;
}
@ -670,7 +674,7 @@ JS
foreach($groupedItems as $key => $group) {
$fieldItems = new DataObjectSet();
foreach($group as $item) {
if($item) $fieldItems->push(new TableListField_Item($item, $this));
if($item) $fieldItems->push(new $this->itemClass($item, $this));
}
$groupedArrItems->push(new ArrayData(array(
'Items' => $fieldItems,
@ -953,7 +957,7 @@ JS
$className = isset($item['RecordClassName']) ? $item['RecordClassName'] : $item['ClassName'];
$item = new $className($item);
}
$fieldItem = new TableListField_Item($item, $this);
$fieldItem = new $this->itemClass($item, $this);
$fields = $fieldItem->Fields(false);
$columnData = array();