public function doSave($data, $form) { $isNewRecord = $this->record->ID == 0; // Check permission if (!$this->record->canEdit()) { return $this->httpError(403); } // Save from form data try { $this->saveFormIntoRecord($data, $form); } catch (ValidationException $e) { return $this->generateValidationResponse($form, $e); } $link = '<a href="' . $this->Link('edit') . '">"' . htmlspecialchars($this->record->Title, ENT_QUOTES) . '"</a>'; $message = _t('GridFieldDetailForm.Saved', 'Saved {name} {link}', array('name' => $this->record->i18n_singular_name(), 'link' => $link)); $form->sessionMessage($message, 'good', false); // Redirect after save return $this->redirectAfterSave($isNewRecord); }
/** * * @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(); }