/** * @param array $data * @param Form $form * @return HTTPResponse */ public function doDelete($data, $form) { $title = $this->record->Title; try { if (!$this->record->canDelete()) { throw new ValidationException(_t('GridFieldDetailForm.DeletePermissionsFailure', "No delete permissions"), 0); } $this->record->delete(); } catch (ValidationException $e) { $form->sessionMessage($e->getResult()->message(), 'bad', false); return $this->getToplevelController()->redirectBack(); } $message = sprintf(_t('GridFieldDetailForm.Deleted', 'Deleted %s %s'), $this->record->i18n_singular_name(), htmlspecialchars($title, ENT_QUOTES)); $toplevelController = $this->getToplevelController(); if ($toplevelController && $toplevelController instanceof LeftAndMain) { $backForm = $toplevelController->getEditForm(); $backForm->sessionMessage($message, 'good', false); } else { $form->sessionMessage($message, 'good', false); } //when an item is deleted, redirect to the parent controller $controller = $this->getToplevelController(); $controller->getRequest()->addHeader('X-Pjax', 'Content'); // Force a content refresh return $controller->redirect($this->getBackLink(), 302); //redirect back to admin section }
/** * * @param GridField $gridField * @param DataObject $record * @param string $columnName * @return string the HTML for the column */ public function getColumnContent($gridField, $record, $columnName) { if ($this->removeRelation) { if (!$record->canEdit()) { return null; } $field = GridField_FormAction::create($gridField, 'UnlinkRelation' . $record->ID, false, "unlinkrelation", array('RecordID' => $record->ID))->addExtraClass('btn btn--no-text btn--icon-md font-icon-link-broken grid-field__icon-action gridfield-button-unlink')->setAttribute('title', _t('GridAction.UnlinkRelation', "Unlink")); } else { if (!$record->canDelete()) { return null; } $field = GridField_FormAction::create($gridField, 'DeleteRecord' . $record->ID, false, "deleterecord", array('RecordID' => $record->ID))->addExtraClass('gridfield-button-delete btn--icon-md font-icon-trash-bin btn--no-text grid-field__icon-action')->setAttribute('title', _t('GridAction.Delete', "Delete"))->setDescription(_t('GridAction.DELETE_DESCRIPTION', 'Delete')); } return $field->Field(); }
public function canDelete($member = null) { return parent::canDelete($member); }