Skip to content

Instantly share code, notes, and snippets.

@kinglozzer
Created April 11, 2014 15:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kinglozzer/10475897 to your computer and use it in GitHub Desktop.
Save kinglozzer/10475897 to your computer and use it in GitHub Desktop.
GridFieldDetailForm_ItemRequest:
extensions:
- GridFieldDetailFormExtension
<?php
class GridFieldDetailFormExtension extends Extension {
/**
* @var array
*/
private static $allowed_actions = array(
'doLock'
);
public function updateItemEditForm(&$form) {
if ($this->owner->getGridField()->getModelClass() == "Something") {
$record = $form->getRecord();
if ($record->status == 'AVAILABLE') {
$action = new FormAction('doLock', 'Lock vehicle');
$action->setUseButtonTag(true)->setAttribute('data-icon', 'chain--pencil');
}
$form->Actions()->push($action);
}
}
/**
* Mark a used car as 'AVAILABLE_NON_UPDATABLE'
* @see UsedCar->lockVehicle()
* @param Array $data
* @param Form $form
* @return mixed
*/
public function doLock($data, $form) {
$this->owner->record = $this->owner->record->lockVehicle();
$form->sessionMessage('Vehicle locked successfully', 'good');
return $this->owner->edit(Controller::curr()->getRequest());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment