getId(); if (!empty($issueId) && is_numeric($issueId)) { $issue = $this->getData(); assert(is_a($issue, 'Issue')); $router = $request->getRouter(); $this->addAction( new LinkAction( 'edit', new AjaxModal( $router->url($request, null, null, 'editIssue', null, ['issueId' => $issueId]), __('editor.issues.editIssue', ['issueIdentification' => htmlspecialchars($issue->getIssueIdentification())]), 'modal_edit', true ), __('grid.action.edit'), 'edit' ) ); $dispatcher = $request->getDispatcher(); $this->addAction( new LinkAction( $issue->getDatePublished() ? 'viewIssue' : 'previewIssue', new OpenWindowAction( $dispatcher->url($request, PKPApplication::ROUTE_PAGE, null, 'issue', 'view', [$issueId]) ), __($issue->getDatePublished() ? 'grid.action.viewIssue' : 'grid.action.previewIssue'), 'information' ) ); if ($issue->getDatePublished()) { $this->addAction( new LinkAction( 'unpublish', new RemoteActionConfirmationModal( $request->getSession(), __('editor.issues.confirmUnpublish'), __('editor.issues.unpublishIssue'), $router->url($request, null, null, 'unpublishIssue', null, ['issueId' => $issueId]), 'modal_delete' ), __('editor.issues.unpublishIssue'), 'delete' ) ); } else { $this->addAction( new LinkAction( 'publish', new AjaxModal( $router->url( $request, null, null, 'publishIssue', null, ['issueId' => $issueId] ), __('editor.issues.publishIssue'), 'modal_confirm' ), __('editor.issues.publishIssue'), 'advance' ) ); } $currentIssue = Repo::issue()->getCurrent($issue->getJournalId()); $isCurrentIssue = $currentIssue != null && $issue->getId() == $currentIssue->getId(); if ($issue->getDatePublished() && !$isCurrentIssue) { $this->addAction( new LinkAction( 'setCurrentIssue', new RemoteActionConfirmationModal( $request->getSession(), __('editor.issues.confirmSetCurrentIssue'), __('editor.issues.currentIssue'), $router->url($request, null, null, 'setCurrentIssue', null, ['issueId' => $issueId]), 'modal_delete' ), __('editor.issues.currentIssue'), 'delete' ) ); } $this->addAction( new LinkAction( 'delete', new RemoteActionConfirmationModal( $request->getSession(), __('common.confirmDelete'), __('grid.action.delete'), $router->url($request, null, null, 'deleteIssue', null, ['issueId' => $issueId]), 'modal_delete' ), __('grid.action.delete'), 'delete' ) ); } } }