16 import(
'lib.pkp.classes.controllers.grid.GridHandler');
17 import(
'lib.pkp.controllers.grid.users.userSelect.UserSelectGridCellProvider');
27 parent::__construct();
29 array(ROLE_ID_SUB_EDITOR, ROLE_ID_MANAGER, ROLE_ID_ASSISTANT),
30 array(
'fetchGrid',
'fetchRows')
40 function authorize($request, &$args, $roleAssignments) {
41 $stageId = (int)$request->getUserVar(
'stageId');
43 import(
'lib.pkp.classes.security.authorization.WorkflowStageAccessPolicy');
46 return parent::authorize($request, $args, $roleAssignments);
53 parent::initialize($request, $args);
56 LOCALE_COMPONENT_PKP_SUBMISSION,
57 LOCALE_COMPONENT_PKP_MANAGER,
58 LOCALE_COMPONENT_PKP_USER,
59 LOCALE_COMPONENT_PKP_EDITOR,
60 LOCALE_COMPONENT_APP_EDITOR
65 $userGroups = $userGroupDao->getUserGroupsByStage(
66 $request->getContext()->getId(),
69 $this->_userGroupOptions = array();
70 while ($userGroup = $userGroups->next()) {
72 if ($userGroup->getRoleId() == ROLE_ID_REVIEWER)
continue;
73 $this->_userGroupOptions[$userGroup->getId()] = $userGroup->getLocalizedName();
76 $this->
setTitle(
'editor.submission.findAndSelectUser');
85 'controllers/grid/users/userSelect/userSelectRadioButton.tpl',
93 'author.users.contributor.name',
97 array(
'alignment' => COLUMN_ALIGNMENT_LEFT,
112 import(
'lib.pkp.classes.controllers.grid.feature.InfiniteScrollingFeature');
113 import(
'lib.pkp.classes.controllers.grid.feature.CollapsibleGridFeature');
120 protected function loadData($request, $filter) {
126 return $userStageAssignmentDao->filterUsersNotAssignedToStageInUserGroup($submission->getId(), $stageId, $filterUserGroupId, $name, $rangeInfo);
132 function renderFilter($request, $filterData = array()) {
136 $keys = array_keys($this->_userGroupOptions);
137 $allFilterData = array_merge(
140 'userGroupOptions' => $this->_userGroupOptions,
141 'selectedUserGroupId' => reset($keys),
142 'gridId' => $this->
getId(),
143 'submissionId' => $submission->getId(),
144 'stageId' => $stageId,
146 return parent::renderFilter($request, $allFilterData);
153 $name = (string) $request->getUserVar(
'name');
154 $filterUserGroupId = (int) $request->getUserVar(
'filterUserGroupId');
157 'filterUserGroupId' => $filterUserGroupId,
165 return 'controllers/grid/users/userSelect/searchUserFilter.tpl';
175 'submissionId' => $submission->getId(),
176 'stageId' => $stageId,
202 if (isset($filter[
'filterUserGroupId']) && $filter[
'filterUserGroupId']) {
203 $filterUserGroupId = $filter[
'filterUserGroupId'];
205 $keys = array_keys($this->_userGroupOptions);
206 $filterUserGroupId = reset($keys);
208 if (isset($filter[
'name']) && $filter[
'name']) {
209 $name = $filter[
'name'];
213 return array($filterUserGroupId, $name);