From 24a37daa50129de1ac2ec01817ee92fa9be37791 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Mon, 9 Jan 2012 11:37:13 +0100 Subject: [PATCH] MINOR Added GridFieldAction_Delete --- forms/gridfield/GridFieldAction.php | 94 +++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 forms/gridfield/GridFieldAction.php diff --git a/forms/gridfield/GridFieldAction.php b/forms/gridfield/GridFieldAction.php new file mode 100644 index 000000000..d0eb3d8cc --- /dev/null +++ b/forms/gridfield/GridFieldAction.php @@ -0,0 +1,94 @@ + 'Delete'); + } + } + + /** + * Which columns are handled by this component + * + * @param type $gridField + * @return type + */ + public function getColumnsHandled($gridField) { + return array('DeleteAction'); + } + + /** + * Which GridField actions are this component handling + * + * @param GridField $gridField + * @return array + */ + public function getActions($gridField) { + return array('deleterecord'); + } + + /** + * + * @param GridField $gridField + * @param DataObject $record + * @param string $columnName + * @return string - the HTML for the column + */ + public function getColumnContent($gridField, $record, $columnName) { + $field = new GridField_Action($gridField, 'DeleteRecord'.$record->ID, "x", "deleterecord", array('RecordID' => $record->ID)); + $output = $field->Field(); + return $output; + } + + /** + * Handle the actions and apply any changes to the GridField + * + * @param GridField $gridField + * @param string $actionName + * @param mixed $arguments + * @param array $data - form data + * @return void + */ + public function handleAction(GridField $gridField, $actionName, $arguments, $data) { + $id = $arguments['RecordID']; + $item = $gridField->getList()->byID($id); + if(!$item) return; + + if($actionName == 'deleterecord') { + $item->delete(); + } + } +} \ No newline at end of file