/** * Assign/reassign a layout editor to the submission. * @param $args array ($articleId, [$userId]) */ function assignLayoutEditor($args) { $articleId = isset($args[0]) ? (int) $args[0] : 0; $editorId = isset($args[1]) ? (int) $args[1] : 0; list($journal, $submission) = SubmissionEditHandler::validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $roleDao =& DAORegistry::getDAO('RoleDAO'); if ($editorId && $roleDao->roleExists($journal->getJournalId(), $editorId, ROLE_ID_LAYOUT_EDITOR)) { SectionEditorAction::assignLayoutEditor($submission, $editorId); Request::redirect(null, null, 'submissionEditing', $articleId); } else { $searchType = null; $searchMatch = null; $search = $searchQuery = Request::getUserVar('search'); $searchInitial = Request::getUserVar('searchInitial'); if (isset($search)) { $searchType = Request::getUserVar('searchField'); $searchMatch = Request::getUserVar('searchMatch'); } else { if (isset($searchInitial)) { $searchInitial = String::strtoupper($searchInitial); $searchType = USER_FIELD_INITIAL; $search = $searchInitial; } } $layoutEditors = $roleDao->getUsersByRoleId(ROLE_ID_LAYOUT_EDITOR, $journal->getJournalId(), $searchType, $search, $searchMatch); $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); $layoutEditorStatistics = $sectionEditorSubmissionDao->getLayoutEditorStatistics($journal->getJournalId()); parent::setupTemplate(true, $articleId, 'editing'); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign('searchField', $searchType); $templateMgr->assign('searchMatch', $searchMatch); $templateMgr->assign('search', $searchQuery); $templateMgr->assign('searchInitial', Request::getUserVar('searchInitial')); $templateMgr->assign('alphaList', explode(' ', Locale::translate('common.alphaList'))); $templateMgr->assign('pageTitle', 'user.role.layoutEditors'); $templateMgr->assign('pageSubTitle', 'editor.article.selectLayoutEditor'); $templateMgr->assign('actionHandler', 'assignLayoutEditor'); $templateMgr->assign('articleId', $articleId); $templateMgr->assign_by_ref('users', $layoutEditors); $layoutAssignment =& $submission->getLayoutAssignment(); if ($layoutAssignment) { $templateMgr->assign('currentUser', $layoutAssignment->getEditorId()); } $templateMgr->assign('fieldOptions', array(USER_FIELD_FIRSTNAME => 'user.firstName', USER_FIELD_LASTNAME => 'user.lastName', USER_FIELD_USERNAME => 'user.username', USER_FIELD_EMAIL => 'user.email')); $templateMgr->assign('statistics', $layoutEditorStatistics); $templateMgr->assign('helpTopicId', 'journal.roles.layoutEditor'); $templateMgr->display('sectionEditor/selectUser.tpl'); } }
/** * Assign/reassign a layout editor to the submission. * @param $args array ($articleId, [$userId]) * @param $request object */ function assignLayoutEditor($args, $request) { $articleId = (int) array_shift($args); $editorId = (int) array_shift($args); $this->validate($articleId, SECTION_EDITOR_ACCESS_EDIT); $journal =& $request->getJournal(); $submission =& $this->submission; $roleDao =& DAORegistry::getDAO('RoleDAO'); $signoffDao =& DAORegistry::getDAO('SignoffDAO'); if ($editorId && $roleDao->userHasRole($journal->getId(), $editorId, ROLE_ID_LAYOUT_EDITOR)) { SectionEditorAction::assignLayoutEditor($submission, $editorId, $request); $request->redirect(null, null, 'submissionEditing', $articleId); } else { $searchType = null; $searchMatch = null; $search = $searchQuery = $request->getUserVar('search'); $searchInitial = $request->getUserVar('searchInitial'); if (!empty($search)) { $searchType = $request->getUserVar('searchField'); $searchMatch = $request->getUserVar('searchMatch'); } elseif (!empty($searchInitial)) { $searchInitial = String::strtoupper($searchInitial); $searchType = USER_FIELD_INITIAL; $search = $searchInitial; } $layoutEditors = $roleDao->getUsersByRoleId(ROLE_ID_LAYOUT_EDITOR, $journal->getId(), $searchType, $search, $searchMatch); $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); $layoutEditorStatistics = $sectionEditorSubmissionDao->getLayoutEditorStatistics($journal->getId()); $this->setupTemplate(true, $articleId, 'editing'); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign('searchField', $searchType); $templateMgr->assign('searchMatch', $searchMatch); $templateMgr->assign('search', $searchQuery); $templateMgr->assign('searchInitial', $request->getUserVar('searchInitial')); $templateMgr->assign('alphaList', explode(' ', __('common.alphaList'))); $templateMgr->assign('pageTitle', 'user.role.layoutEditors'); $templateMgr->assign('pageSubTitle', 'editor.article.selectLayoutEditor'); $templateMgr->assign('actionHandler', 'assignLayoutEditor'); $templateMgr->assign('articleId', $articleId); $templateMgr->assign_by_ref('users', $layoutEditors); $layoutSignoff = $signoffDao->build('SIGNOFF_LAYOUT', ASSOC_TYPE_ARTICLE, $articleId); if ($layoutSignoff) { $templateMgr->assign('currentUser', $layoutSignoff->getUserId()); } $templateMgr->assign('fieldOptions', array(USER_FIELD_FIRSTNAME => 'user.firstName', USER_FIELD_LASTNAME => 'user.lastName', USER_FIELD_USERNAME => 'user.username', USER_FIELD_EMAIL => 'user.email')); $templateMgr->assign('statistics', $layoutEditorStatistics); $templateMgr->assign('helpTopicId', 'journal.roles.layoutEditor'); $templateMgr->display('sectionEditor/selectUser.tpl'); } }