/** * Lists all Issue entities. * * @param Request $request * @return Response */ public function indexAction(Request $request) { $journal = $this->get('ojs.journal_service')->getSelectedJournal(); $eventDispatcher = $this->get('event_dispatcher'); if (!$this->isGranted('VIEW', $journal, 'issues')) { throw new AccessDeniedException("You not authorized for this page!"); } $source = new Entity('OjsJournalBundle:Issue'); $grid = $this->get('grid')->setSource($source); $gridAction = $this->get('grid_action'); $actionColumn = new ActionsColumn("actions", 'actions'); $rowAction[] = $gridAction->showAction('ojs_journal_issue_show', ['id', 'journalId' => $journal->getId()]); $articleAction = new RowAction('<i class="fa fa-file-text"></i>', 'ojs_journal_issue_view'); $articleAction->setRouteParameters(['journalId' => $journal->getId(), 'id']); $articleAction->setAttributes(['class' => 'btn btn-success btn-xs ', 'data-toggle' => 'tooltip', 'title' => $this->get('translator')->trans("Articles")]); $rowAction[] = $articleAction; $lastIssueAction = new RowAction('<i class="fa fa-cog"></i>', 'ojs_journal_issue_make_last'); $lastIssueAction->setRouteParameters(['journalId' => $journal->getId(), 'id']); $lastIssueAction->setAttributes(['class' => 'btn btn-success btn-xs ', 'data-toggle' => 'tooltip', 'title' => $this->get('translator')->trans("make.last.issue")]); $rowAction[] = $lastIssueAction; if ($this->isGranted('EDIT', $journal, 'issues')) { $rowAction[] = $gridAction->editAction('ojs_journal_issue_edit', ['id', 'journalId' => $journal->getId()]); } if ($this->isGranted('DELETE', $journal, 'issues')) { $rowAction[] = $gridAction->deleteAction('ojs_journal_issue_delete', ['id', 'journalId' => $journal->getId()]); } $rowAction[] = $gridAction->filesAction('ojs_journal_issue_file_index', ['journalId' => $journal->getId(), 'id']); $actionColumn->setRowActions($rowAction); $grid->addColumn($actionColumn); $listEvent = new ListEvent(); $listEvent->setGrid($grid); $eventDispatcher->dispatch(IssueEvents::LISTED, $listEvent); $grid = $listEvent->getGrid(); return $grid->getGridResponse('OjsJournalBundle:Issue:index.html.twig'); }
public function indexAction() { $data = array(); $source = new Entity('OjsJournalBundle:Publisher', 'application'); $tableAlias = $source->getTableAlias(); $source->manipulateQuery(function (QueryBuilder $query) use($tableAlias) { $query->andWhere($tableAlias . ".status = :status")->setParameter('status', 0); return $query; }); $grid = $this->get('grid')->setSource($source); $gridAction = $this->get('grid_action'); $grid->getColumn('status')->manipulateRenderCell(function ($value) { return $this->get('translator')->trans(Publisher::$statuses[$value]); }); $rowAction = array(); $saveAction = new RowAction('<i class="fa fa-save"></i>', 'ojs_admin_application_publisher_save'); $saveAction->setRouteParameters(['id']); $saveAction->setAttributes(['class' => 'btn btn-primary btn-xs', 'title' => $this->get('translator')->trans('institute.merge_as_new_institute')]); $rowAction[] = $saveAction; $rowAction[] = $gridAction->showAction('ojs_admin_application_publisher_show', 'id'); $rowAction[] = $gridAction->editAction('ojs_admin_application_publisher_edit', 'id'); $rowAction[] = $gridAction->deleteAction('ojs_admin_application_publisher_delete', 'id'); $actionColumn = new ActionsColumn("actions", 'actions'); $actionColumn->setRowActions($rowAction); $grid->addColumn($actionColumn); $data['grid'] = $grid; return $grid->getGridResponse('OjsAdminBundle:AdminApplication:publisher.html.twig', $data); }
public function indexAction(Request $request) { $data = array(); $source = new Entity('OjsJournalBundle:Journal'); $source->manipulateRow(function (Row $row) use($request) { /* @var Journal $entity */ $entity = $row->getEntity(); $entity->setDefaultLocale($request->getDefaultLocale()); if (!is_null($entity)) { $row->setField('title', $entity->getTitle()); } return $row; }); $alias = $source->getTableAlias(); $source->manipulateQuery(function (QueryBuilder $query) use($alias) { $query->andWhere($alias . '.status = :status')->setParameter('status', JournalStatuses::STATUS_PREPARING); return $query; }); $grid = $this->get('grid')->setSource($source); $gridAction = $this->get('grid_action'); $saveAction = new RowAction('<i class="fa fa-save"></i>', 'ojs_admin_application_journal_save'); $saveAction->setRouteParameters(['id']); $saveAction->setAttributes(['class' => 'btn btn-primary btn-xs', 'title' => $this->get('translator')->trans('journal.merge_as_new_journal')]); $rowAction = array(); $rowAction[] = $saveAction; $rowAction[] = $gridAction->editAction('ojs_admin_application_journal_edit', 'id'); $rowAction[] = $gridAction->showAction('ojs_admin_application_journal_show', 'id'); $rowAction[] = $gridAction->deleteAction('ojs_admin_application_journal_delete', 'id'); $actionColumn = new ActionsColumn("actions", 'actions'); $actionColumn->setRowActions($rowAction); $grid->addColumn($actionColumn); $data['grid'] = $grid; return $grid->getGridResponse('OjsAdminBundle:AdminApplication:journal.html.twig', $data); }
/** * Lists all Issue entities. * * @param Request $request * @return Response */ public function indexAction(Request $request) { $journal = $this->get('ojs.journal_service')->getSelectedJournal(); if (!$this->isGranted('VIEW', $journal, 'issues')) { throw new AccessDeniedException("You are not authorized for view this journal's issues!"); } $source = new Entity('OjsJournalBundle:Issue'); $source->addHint(Query::HINT_CUSTOM_OUTPUT_WALKER, 'Gedmo\\Translatable\\Query\\TreeWalker\\TranslationWalker'); $ta = $source->getTableAlias(); $source->manipulateQuery(function (QueryBuilder $query) use($ta, $journal) { $query->andWhere($ta . '.journalId = :journal_id')->setParameter('journal_id', $journal->getId()); }); $grid = $this->get('grid')->setSource($source); $gridAction = $this->get('grid_action'); $actionColumn = new ActionsColumn("actions", 'actions'); $rowAction[] = $gridAction->showAction('ojs_journal_issue_show', ['id', 'journalId' => $journal->getId()]); $articleAction = new RowAction('<i class="fa fa-file-text"></i>', 'ojs_journal_issue_view'); $articleAction->setRouteParameters(['journalId' => $journal->getId(), 'id']); $articleAction->setAttributes(['class' => 'btn btn-success btn-xs ', 'data-toggle' => 'tooltip', 'title' => $this->get('translator')->trans("Articles")]); $rowAction[] = $articleAction; if ($this->isGranted('EDIT', $journal, 'issues')) { $rowAction[] = $gridAction->editAction('ojs_journal_issue_edit', ['id', 'journalId' => $journal->getId()]); } if ($this->isGranted('DELETE', $journal, 'issues')) { $rowAction[] = $gridAction->deleteAction('ojs_journal_issue_delete', ['id', 'journalId' => $journal->getId()]); } $actionColumn->setRowActions($rowAction); $grid->addColumn($actionColumn); $data = []; $data['grid'] = $grid; return $grid->getGridResponse('OjsJournalBundle:Issue:index.html.twig', $data); }
/** * Lists all User entities. * @return Response */ public function indexAction() { if (!$this->isGranted('VIEW', new User())) { throw new AccessDeniedException("You are not authorized for this page!"); } $source = new Entity("OjsUserBundle:User"); $grid = $this->get('grid'); $gridAction = $this->get('grid_action'); $grid->setSource($source); $passwordAction = new RowAction('<i class="fa fa-key"></i>', 'ojs_admin_user_password'); $passwordAction->setRouteParameters('id'); $passwordAction->setAttributes(['class' => 'btn btn-info btn-xs', 'data-toggle' => 'tooltip', 'title' => $this->get('translator')->trans('title.password_change')]); $actionColumn = new ActionsColumn("actions", 'actions'); $rowAction[] = $gridAction->showAction('ojs_admin_user_show', 'id'); $rowAction[] = $gridAction->editAction('ojs_admin_user_edit', 'id'); $rowAction[] = $passwordAction; $rowAction[] = $gridAction->userBanAction(); $rowAction[] = $gridAction->deleteAction('ojs_admin_user_delete', 'id'); $actionColumn->setRowActions($rowAction); $grid->addColumn($actionColumn); return $grid->getGridResponse('OjsAdminBundle:AdminUser:index.html.twig', ['grid' => $grid]); }
/** * Lists all Issue entities. * * @param Request $request * @return Response */ public function indexAction(Request $request) { $journal = $this->get('ojs.journal_service')->getSelectedJournal(); if (!$this->isGranted('VIEW', $journal, 'issues')) { throw new AccessDeniedException("You not authorized for this page!"); } $source = new Entity('OjsJournalBundle:Issue'); $source->manipulateRow(function (Row $row) use($request) { /** @var Issue $entity */ $entity = $row->getEntity(); $entity->setDefaultLocale($request->getDefaultLocale()); if (!is_null($entity)) { $row->setField('title', $entity->getTitle()); $row->setField('description', $entity->getDescription()); } return $row; }); $grid = $this->get('grid')->setSource($source); $gridAction = $this->get('grid_action'); $actionColumn = new ActionsColumn("actions", 'actions'); $rowAction[] = $gridAction->showAction('ojs_journal_issue_show', ['id', 'journalId' => $journal->getId()]); $articleAction = new RowAction('<i class="fa fa-file-text"></i>', 'ojs_journal_issue_view'); $articleAction->setRouteParameters(['journalId' => $journal->getId(), 'id']); $articleAction->setAttributes(['class' => 'btn btn-success btn-xs ', 'data-toggle' => 'tooltip', 'title' => $this->get('translator')->trans("Articles")]); $rowAction[] = $articleAction; if ($this->isGranted('EDIT', $journal, 'issues')) { $rowAction[] = $gridAction->editAction('ojs_journal_issue_edit', ['id', 'journalId' => $journal->getId()]); } if ($this->isGranted('DELETE', $journal, 'issues')) { $rowAction[] = $gridAction->deleteAction('ojs_journal_issue_delete', ['id', 'journalId' => $journal->getId()]); } $actionColumn->setRowActions($rowAction); $grid->addColumn($actionColumn); $data = []; $data['grid'] = $grid; return $grid->getGridResponse('OjsJournalBundle:Issue:index.html.twig', $data); }
/** * @param null $role * @return RowAction */ public function cmsAction($role = null) { $route = 'ojs_admin_page_index'; $rowAction = new RowAction('<i class="fa fa-anchor"></i>', $route); $rowAction->setAttributes(['class' => 'btn btn-info btn-xs ', 'data-toggle' => 'tooltip', 'title' => "CMS"]); $rowAction->setRouteParameters(['id', 'object']); $rowAction->setRoute($route); if ($role) { $rowAction->setRole($role); } $postExtension = $this->postExtension; $rowAction->manipulateRender(function (RowAction $action, Row $row) use($postExtension) { $entity = $row->getEntity(); $object = $postExtension->cmsobject($entity); $action->setRouteParameters(['id', 'object' => $object]); return $action; }); return $rowAction; }
/** * @param string $route * @param $key * @return RowAction */ public function filesAction($route, $key = 'id') { $rowAction = new RowAction('<i class="fa fa-files-o"></i>', $route); $rowAction->setAttributes(['class' => 'btn btn-primary btn-xs ', 'data-toggle' => 'tooltip', 'title' => $this->translator->trans('title.issue_files')]); $rowAction->setRouteParameters($key); $rowAction->setRouteParametersMapping(['id' => 'issueId']); return $rowAction; }