addColumn('no', 'no'); $this->addColumn('date', 'startDate', ['title' => 'Date', 'orderBy' => 'startDate']); $this->addColumn('image', 'image'); $this->addColumn('name', 'title', ['title' => 'Event Name', 'orderBy' => 'title']); $this->addColumn('link_enum', 'enabled', ['title' => 'Show', 'orderBy' => 'enabled']); $this->addColumn('options', 'options', [ 'initCallback' => function (&$options) { $column = &$options['column']; $row = &$options['row']; if (EventEntity::TYPE_COMMITTEE == $row['type']) { unset($column['actions']['attendee'], $column['actions']['addAttendee']); } }, 'actions' => [ 'edit' => [], 'copy' => ['formattedLink' => View::getPage('url') . '?action=new&sourceId=%d',], 'delete' => ['confirmMessage' => $this->getConfigArray('messages')['deleteConfirmation'], 'separator' => '
'], 'addAttendee' => ['formattedLink' => $this->getAttendeeBaseUrl() . '/%d?action=new', 'separator' => '
', 'linkTitle' => 'Add New Event Attendee'], 'attendee' => ['formattedLink' => $this->getAttendeeBaseUrl() . '/%d', 'title' => 'Attendees & Reports', 'linkTitle' => 'Show Event Attendees & Reports'], ], ]); return $this; } protected function getAttendeeBaseUrl() { static $url; if (null === $url) { $url = AttendeeAdminView::getPage('url'); } return $url; } public function toArray() { $item = parent::toArray(); $item['attendeeBaseUrl'] = $this->getAttendeeBaseUrl(); return $item; } }