public function indexAction(Request $request)
{
$router = $this->get('router');
$source = new Entity('OjsJournalBundle:Journal');
$source->manipulateRow(function (Row $row) use($request, $router) {
/* @var Journal $entity */
$entity = $row->getEntity();
if (!is_null($entity)) {
$journalLinkTemplate = $entity->getTitleTranslations();
if ($entity->isIndexable() && $entity->getPublisher() !== null) {
$generateJournalLink = $router->generate('ojs_journal_index', ['slug' => $entity->getSlug()]);
$journalLinkTemplate = '<a target="_blank" href="' . $generateJournalLink . '">' . $entity->getTitleTranslations() . '</a>';
}
$row->setField('translations.title:translation_agg', $journalLinkTemplate);
}
return $row;
});
$grid = $this->get('grid')->setSource($source);
$gridAction = $this->get('grid_action');
$actionColumn = new ActionsColumn("actions", 'actions');
$rowAction[] = $gridAction->showAction('ojs_admin_journal_show', 'id');
$rowAction[] = $gridAction->editAction('ojs_admin_journal_edit', 'id');
$rowAction[] = $gridAction->contactsAction('ojs_journal_journal_contact_index');
$rowAction[] = (new RowAction('Manage', 'ojs_journal_dashboard_index'))->setRouteParameters('id')->setRouteParametersMapping(array('id' => 'journalId'))->setAttributes(array('class' => 'btn btn-success btn-xs', 'data-toggle' => 'tooltip', 'title' => "Manage"));
$actionColumn->setRowActions($rowAction);
$grid->addColumn($actionColumn);
$data = [];
$data['grid'] = $grid;
return $grid->getGridResponse('OjsAdminBundle:AdminJournal:index.html.twig', $data);
}