16 import(
'lib.pkp.controllers.grid.users.reviewer.form.ReviewerForm');
25 parent::__construct($submission, $reviewRound);
26 $this->
setTemplate(
'controllers/grid/users/reviewer/form/advancedSearchReviewerForm.tpl');
36 parent::readInputData();
44 function fetch($request, $template =
null, $display =
false) {
49 $actionArgs = $request->getUserVars();
51 $actionArgs[
'reviewRoundId'] = $reviewRound->getId();
52 $actionArgs[
'selectionType'] = REVIEWER_SELECT_ADVANCED_SEARCH;
56 new AjaxAction($request->url(
null,
null,
'reloadReviewerForm',
null, $actionArgs)),
57 __(
'manager.reviewerSearch.change'),
65 $currentlyAssigned = array();
66 if (!empty($reviewAssignments)) {
67 foreach ($reviewAssignments as $reviewAssignment) {
68 $currentlyAssigned[] = (int) $reviewAssignment->getReviewerId();
75 $warnOnAssignment = array();
77 $stageAssignmentResults = $stageAssignmentDao->getBySubmissionAndStageId($this->
getSubmissionId());
78 while ($stageAssignment = $stageAssignmentResults->next()) {
79 $warnOnAssignment[] = $stageAssignment->getUserId();
82 $managerUsersResults = $roleDao->getUsersByRoleId(ROLE_ID_MANAGER, $submissionContext->getId());
83 while ($manager = $managerUsersResults->next()) {
84 $warnOnAssignment[] = $manager->getId();
86 $adminUsersResults = $roleDao->getUsersByRoleId(ROLE_ID_SITE_ADMIN, $submissionContext->getId());
87 while ($admin = $adminUsersResults->next()) {
88 $warnOnAssignment[] = $admin->getId();
90 $warnOnAssignment = array_map(
'intval', array_values(array_unique($warnOnAssignment)));
93 $selectReviewerListPanel = new \PKP\components\listPanels\PKPSelectReviewerListPanel(
95 __(
'editor.submission.findAndSelectReviewer'),
97 'apiUrl' => $request->getDispatcher()->url(
100 $submissionContext->getPath(),
103 'currentlyAssigned' => $currentlyAssigned,
105 'contextId' => $submissionContext->getId(),
106 'reviewStage' => $reviewRound->getStageId(),
108 'selectorName' =>
'reviewerId',
109 'warnOnAssignment' => $warnOnAssignment,
112 $selectReviewerListPanel->set([
113 'items' => $selectReviewerListPanel->getItems($request),
114 'itemsMax' => $selectReviewerListPanel->getItemsMax(),
118 $templateMgr->assign(
'selectReviewerListData', [
120 'selectReviewer' => $selectReviewerListPanel->getConfig(),
125 if (array_intersect($this->
getUserRoles(), array(ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR))) {
126 $actionArgs[
'selectionType'] = REVIEWER_SELECT_CREATE;
130 new AjaxAction($request->url(
null,
null,
'reloadReviewerForm',
null, $actionArgs)),
131 __(
'editor.review.createReviewer'),
136 $actionArgs[
'selectionType'] = REVIEWER_SELECT_ENROLL_EXISTING;
140 new AjaxAction($request->url(
null,
null,
'reloadReviewerForm',
null, $actionArgs)),
141 __(
'editor.review.enrollReviewer.short'),
148 return parent::fetch($request, $template, $display);