/** * Setup common template variables. * @param $subclass boolean set to true if caller is below this handler in the hierarchy */ function setupTemplate($subclass = false, $paperId = 0, $parentPage = null) { parent::setupTemplate(); AppLocale::requireComponents(array(LOCALE_COMPONENT_OCS_AUTHOR, LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_OCS_DIRECTOR, LOCALE_COMPONENT_OCS_MANAGER)); $templateMgr =& TemplateManager::getManager(); $pageHierarchy = $subclass ? array(array(Request::url(null, null, 'user'), 'navigation.user'), array(Request::url(null, null, 'author'), 'user.role.author'), array(Request::url(null, null, 'author'), 'paper.submissions')) : array(array(Request::url(null, null, 'user'), 'navigation.user'), array(Request::url(null, null, 'author'), 'user.role.author')); import('submission.trackDirector.TrackDirectorAction'); $submissionCrumb = TrackDirectorAction::submissionBreadcrumb($paperId, $parentPage, 'author'); if (isset($submissionCrumb)) { $pageHierarchy = array_merge($pageHierarchy, $submissionCrumb); } $templateMgr->assign('pageHierarchy', $pageHierarchy); // ---------------------- $conference =& Request::getConference(); $schedConf =& Request::getSchedConf(); $roleDao =& DAORegistry::getDAO('RoleDAO'); $user = Request::getUser(); $isConferenceManager = false; $isDirector = false; $isTrackDirector = false; $isAuthor = false; if (isset($user)) { $roles =& $roleDao->getRolesByUserId($user->getId(), $conference->getId(), $schedConf->getId()); foreach ($roles as $role) { $roleId = $role->_data['roleId']; //echo $roleId . "|"; if (intval($roleId) === 4096) { $isConferenceManager = true; } else { if (intval($roleId) === 256) { $isDirector = true; } else { if (intval($roleId) === 128) { $isTrackDirector = true; } else { if (intval($roleId) === 64) { $isAuthor = true; } } } } } } //$roles =& $roleDao->getRolesByUserId($user->getId(), $conference->getId()); //print_r($roles); $templateMgr->assign('isConferenceManager', $isConferenceManager); $templateMgr->assign('$isDirector', $isDirector); $templateMgr->assign('$isTrackDirector', $isTrackDirector); $templateMgr->assign('$isAuthor', $isAuthor); // ------------------------- $templateMgr->assign("conferenceUrl", Request::url(null, 'index')); $templateMgr->assign("schedConfUrl", Request::url(null, $conference->getSetting('path'))); $templateMgr->assign("conferenceId", $conference->getId()); $templateMgr->assign("schedConfId", $schedConf->getId()); // ------------------------- }
/** * View a file (inlines file). * @param $args array ($paperId, $galleyId, $fileId [optional]) * @param $request Request */ function viewFile($args, &$request) { $paperId = isset($args[0]) ? $args[0] : 0; $galleyId = isset($args[1]) ? $args[1] : 0; $fileId = isset($args[2]) ? (int) $args[2] : 0; $this->validate($request, $paperId, $galleyId); $paper =& $this->paper; $this->setupTemplate($request); $galleyDao = DAORegistry::getDAO('PaperGalleyDAO'); $galley =& $galleyDao->getGalley($galleyId, $paper->getId()); if (!$galley) { $request->redirect(null, null, null, null, 'view', $paperId); } if (!$fileId) { $galleyDao->incrementViews($galleyId); $fileId = $galley->getFileId(); } else { if (!$galley->isDependentFile($fileId)) { $request->redirect(null, null, null, null, 'view', $paperId); } } // reuse track director's view file function import('classes.submission.trackDirector.TrackDirectorAction'); TrackDirectorAction::viewFile($paper->getId(), $fileId); }
/** * Setup common template variables. * @param $level int set to 0 if caller is at the same level as this handler in the hierarchy; otherwise the number of levels below this handler */ function setupTemplate($request, $level = DIRECTOR_TRACK_HOME, $paperId = 0, $parentPage = null) { parent::setupTemplate($request); $templateMgr =& TemplateManager::getManager(); $conference =& $request->getConference(); $schedConf =& $request->getSchedConf(); $pageHierarchy = array(); if ($schedConf) { $pageHierarchy[] = array($request->url(null, null, 'index'), $schedConf->getFullTitle(), true); } elseif ($conference) { $pageHierarchy[] = array($request->url(null, 'index', 'index'), $conference->getConferenceTitle(), true); } $pageHierarchy[] = array($request->url(null, null, 'user'), 'navigation.user'); if ($level == DIRECTOR_TRACK_SUBMISSIONS) { $pageHierarchy[] = array($request->url(null, null, 'director'), 'user.role.director'); $pageHierarchy[] = array($request->url(null, null, 'director', 'submissions'), 'paper.submissions'); } import('classes.submission.trackDirector.TrackDirectorAction'); $submissionCrumb = TrackDirectorAction::submissionBreadcrumb($paperId, $parentPage, 'director'); if (isset($submissionCrumb)) { $pageHierarchy = array_merge($pageHierarchy, $submissionCrumb); } $templateMgr->assign('pageHierarchy', $pageHierarchy); }
/** * View a file (inlines file). * @param $args array ($paperId, $fileId, [$revision]) */ function viewFile($args, $request) { $paperId = (int) array_shift($args); $fileId = (int) array_shift($args); $revision = (int) array_shift($args); $this->validate($request, $paperId); if (!TrackDirectorAction::viewFile($paperId, $fileId, $revision)) { $request->redirect(null, null, null, 'submission', $paperId); } }
/** * Delete comment. */ function deleteComment($args, $request) { $paperId = (int) array_shift($args); $commentId = (int) array_shift($args); $this->addCheck(new HandlerValidatorSubmissionComment($this, $commentId)); $this->validate($request); $comment =& $this->comment; $submissionEditHandler = new SubmissionEditHandler(); $submissionEditHandler->validate($request, $paperId); $paperDao = DAORegistry::getDAO('PaperDAO'); $submission =& $paperDao->getPaper($paperId); TrackDirectorAction::deleteComment($commentId); // Redirect back to initial comments page if ($comment->getCommentType() == COMMENT_TYPE_PEER_REVIEW) { $request->redirect(null, null, null, 'viewPeerReviewComments', array($paperId, $comment->getAssocId())); } else { if ($comment->getCommentType() == COMMENT_TYPE_DIRECTOR_DECISION) { $request->redirect(null, null, null, 'viewDirectorDecisionComments', $paperId); } } }
/** * Notifies an author that a submission was unsuitable. * @param $trackDirectorSubmission object * @return boolean true iff ready for redirect */ function unsuitableSubmission($trackDirectorSubmission, $send = false) { $trackDirectorSubmissionDao =& DAORegistry::getDAO('TrackDirectorSubmissionDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); $conference =& Request::getConference(); $schedConf =& Request::getSchedConf(); $user =& Request::getUser(); $author =& $userDao->getUser($trackDirectorSubmission->getUserId()); if (!isset($author)) { return true; } import('mail.PaperMailTemplate'); $email = new PaperMailTemplate($trackDirectorSubmission, 'SUBMISSION_UNSUITABLE'); if (!$email->isEnabled() || $send && !$email->hasErrors()) { HookRegistry::call('TrackDirectorAction::unsuitableSubmission', array(&$trackDirectorSubmission, &$author, &$email)); if ($email->isEnabled()) { $email->setAssoc(PAPER_EMAIL_DIRECTOR_NOTIFY_AUTHOR_UNSUITABLE, PAPER_EMAIL_TYPE_DIRECTOR, $user->getId()); $email->send(); } TrackDirectorAction::archiveSubmission($trackDirectorSubmission); return true; } else { if (!Request::getUserVar('continued')) { $paramArray = array('editorialContactSignature' => $user->getContactSignature(), 'authorName' => $author->getFullName(), 'locationCity' => $schedConf->getSetting('locationCity')); $email->assignParams($paramArray); $email->addRecipient($author->getEmail(), $author->getFullName()); } $email->displayEditForm(Request::url(null, null, null, 'unsuitableSubmission'), array('paperId' => $trackDirectorSubmission->getPaperId())); return false; } }
/** * Setup common template variables. * @param $subclass boolean set to true if caller is below this handler in the hierarchy */ function setupTemplate($request, $subclass = false, $paperId = 0, $parentPage = null) { parent::setupTemplate(); Locale::requireComponents(array(LOCALE_COMPONENT_OCS_DIRECTOR, LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_OCS_AUTHOR)); $templateMgr =& TemplateManager::getManager(); $isDirector = Validation::isDirector(); $pageHierarchy = array(); $conference =& $request->getConference(); $schedConf =& $request->getSchedConf(); $templateMgr->assign('helpTopicId', $isDirector ? 'editorial.directorsRole' : 'editorial.trackDirectorsRole'); if ($schedConf) { $pageHierarchy[] = array($request->url(null, null, 'index'), $schedConf->getFullTitle(), true); } elseif ($conference) { $pageHierarchy[] = array($request->url(null, 'index', 'index'), $conference->getConferenceTitle(), true); } $roleSymbolic = $isDirector ? 'director' : 'trackDirector'; $roleKey = $isDirector ? 'user.role.director' : 'user.role.trackDirector'; $pageHierarchy[] = array($request->url(null, null, 'user'), 'navigation.user'); $pageHierarchy[] = array($request->url(null, null, $roleSymbolic), $roleKey); if ($subclass) { $pageHierarchy[] = array($request->url(null, null, $roleSymbolic), 'paper.submissions'); } import('classes.submission.trackDirector.TrackDirectorAction'); $submissionCrumb = TrackDirectorAction::submissionBreadcrumb($paperId, $parentPage, $roleSymbolic); if (isset($submissionCrumb)) { $pageHierarchy = array_merge($pageHierarchy, $submissionCrumb); } $templateMgr->assign('pageHierarchy', $pageHierarchy); }
/** * View a file (inlines file). * @param $args array ($paperId, $fileId, [$revision]) */ function viewFile($args) { $paperId = isset($args[0]) ? $args[0] : 0; $fileId = isset($args[1]) ? $args[1] : 0; $revision = isset($args[2]) ? $args[2] : null; $this->validate($paperId); if (!TrackDirectorAction::viewFile($paperId, $fileId, $revision)) { Request::redirect(null, null, null, 'submission', $paperId); } }
/** * Change the session type for a submission. */ function changeSessionType() { $paperId = Request::getUserVar('paperId'); $this->validate($paperId); $conference =& Request::getConference(); $schedConf =& Request::getSchedConf(); $submission =& $this->submission; $sessionType = Request::getUserVar('sessionType'); TrackDirectorAction::changeSessionType($submission, $sessionType); Request::redirect(null, null, null, 'submission', $paperId); }
/** * Setup common template variables. * @param $subclass boolean set to true if caller is below this handler in the hierarchy */ function setupTemplate($request, $subclass = false, $paperId = 0, $parentPage = null) { parent::setupTemplate($request); AppLocale::requireComponents(LOCALE_COMPONENT_APP_AUTHOR, LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_APP_EDITOR, LOCALE_COMPONENT_APP_MANAGER); $templateMgr =& TemplateManager::getManager(); $pageHierarchy = $subclass ? array(array($request->url(null, null, 'user'), 'navigation.user'), array($request->url(null, null, 'author'), 'user.role.author'), array($request->url(null, null, 'author'), 'paper.submissions')) : array(array($request->url(null, null, 'user'), 'navigation.user'), array($request->url(null, null, 'author'), 'user.role.author')); import('classes.submission.trackDirector.TrackDirectorAction'); $submissionCrumb = TrackDirectorAction::submissionBreadcrumb($paperId, $parentPage, 'author'); if (isset($submissionCrumb)) { $pageHierarchy = array_merge($pageHierarchy, $submissionCrumb); } $templateMgr->assign('pageHierarchy', $pageHierarchy); }