Source of file UnpinGridFieldActionProvider.php
Size: 3,119 Bytes - Last Modified: 2021-12-23T10:35:21+00:00
/var/www/docs.ssmods.com/process/src/src/UnpinGridFieldActionProvider.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 | <?php namespace SilverStripe\SuperGlue; use SilverStripe\Control\Controller; use SilverStripe\ORM\DataObject; use SilverStripe\Forms\GridField\GridField; use SilverStripe\Forms\GridField\GridField_ActionProvider; use SilverStripe\Forms\GridField\GridField_ColumnProvider; use SilverStripe\Forms\GridField\GridField_FormAction; use SilverStripe\CMS\Model\SiteTree; use SilverStripe\Control\HTTPResponse; class UnpinGridFieldActionProvider implements GridField_ColumnProvider, GridField_ActionProvider { /** * @inheritdoc * * @param GridField $gridField * @param array $columns */ public function augmentColumns($gridField, &$columns) { if (!in_array("Actions", $columns)) { $columns[] = "Actions"; } } /** * @inheritdoc * * @param GridField $gridField * @param DataObject $record * @param string $columnName * * @return array */ public function getColumnAttributes($gridField, $record, $columnName) { return ["class" => "col-buttons"]; } /** * @inheritdoc * * @param GridField $gridField * @param string $columnName * * @return array */ public function getColumnMetadata($gridField, $columnName) { if ($columnName == "Actions") { return ["title" => ""]; } } /** * @inheritdoc * * @param GridField $gridField * * @return array */ public function getColumnsHandled($gridField) { return ["Actions"]; } /** * @inheritdoc * * @param GridField $gridField * @param DataObject $record * @param string $columnName * * @return mixed */ public function getColumnContent($gridField, $record, $columnName) { $field = GridField_FormAction::create( $gridField, "CustomAction" . $record->ID, "unpin", "unpin", ["ID" => $record->ID] ); $field->addExtraClass('btn btn-warning'); return $field->Field(); } /** * @inheritdoc * * @param GridField $gridField * * @return array */ public function getActions($gridField) { return ["unpin"]; } /** * @inheritdoc * * @param GridField $gridField * @param string $actionName * @param array $arguments * @param array $data * * @return HTTPResponse */ public function handleAction(GridField $gridField, $actionName, $arguments, $data) { if ($actionName == "unpin") { $pageId = $data["ID"]; $subPageId = $arguments["ID"]; if ($pageId && $subPageId) { $page = SiteTree::get()->byID($pageId); $subPage = SiteTree::get()->byID($subPageId); if ($page && $subPage) { $components = $page->getManyManyComponents("SuperGlueSubPages"); $components->add($subPage, ["SuperGluePinned" => 0]); } } } } } |