Open Monograph Press  3.3.0
StageParticipantGridRow.inc.php
1 <?php
2 
16 import('lib.pkp.classes.controllers.grid.GridRow');
17 
20  var $_submission;
21 
23  var $_stageId;
24 
26  var $_canAdminister;
27 
31  function __construct($submission, $stageId, $canAdminister = false) {
32  $this->_submission = $submission;
33  $this->_stageId = $stageId;
34  $this->_canAdminister = $canAdminister;
35 
36  parent::__construct();
37  }
38 
39 
40  //
41  // Overridden methods from GridRow
42  //
46  function initialize($request, $template = null) {
47  // Do the default initialization
48  parent::initialize($request, $template);
49 
50  // Is this a new row or an existing row?
51  $rowId = $this->getId();
52  if (!empty($rowId) && is_numeric($rowId)) {
53  // Only add row actions if this is an existing row.
54  $router = $request->getRouter();
55  import('lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
56  if ($this->_canAdminister) {
57  $this->addAction(new LinkAction(
58  'delete',
60  $request->getSession(),
61  __('editor.submission.removeStageParticipant.description'),
62  __('editor.submission.removeStageParticipant'),
63  $router->url($request, null, null, 'deleteParticipant', null, $this->getRequestArgs()),
64  'modal_delete'
65  ),
66  __('grid.action.remove'),
67  'delete'
68  )
69  );
70 
71  $this->addAction(new LinkAction(
72  'requestAccount',
73  new AjaxModal(
74  $router->url($request, null, null, 'addParticipant', null, $this->getRequestArgs()),
75  __('editor.submission.editStageParticipant'),
76  'modal_edit_user'
77  ),
78  __('common.edit'),
79  'edit_user'
80  )
81  );
82  }
83 
84  import('lib.pkp.controllers.grid.users.stageParticipant.linkAction.NotifyLinkAction');
85  $submission = $this->getSubmission();
86  $stageId = $this->getStageId();
87  $stageAssignment = $this->getData();
88  $userId = $stageAssignment->getUserId();
89  $userGroupId = $stageAssignment->getUserGroupId();
90  $context = $request->getContext();
91  $this->addAction(new NotifyLinkAction($request, $submission, $stageId, $userId));
92 
93  $user = $request->getUser();
94  if (
96  $user->getId() != $userId &&
97  Validation::canAdminister($userId, $user->getId())
98  ) {
99  $dispatcher = $router->getDispatcher();
100  import('lib.pkp.classes.linkAction.request.RedirectConfirmationModal');
101  $userGroupDAO = DAORegistry::getDAO('UserGroupDAO');
102  $userGroup = $userGroupDAO->getById($userGroupId, $context->getId());
103 
104  if ($userGroup->getRoleId() == ROLE_ID_AUTHOR) {
105  $handler = 'authorDashboard';
106  $op = 'submission';
107  } else {
108  $handler = 'workflow';
109  $op = 'access';
110  }
111  $redirectUrl = $dispatcher->url(
112  $request,
113  ROUTE_PAGE,
114  $context->getPath(),
115  $handler,
116  $op,
117  $submission->getId()
118  );
119 
120  $this->addAction(
121  new LinkAction(
122  'logInAs',
124  __('grid.user.confirmLogInAs'),
125  __('grid.action.logInAs'),
126  $dispatcher->url($request, ROUTE_PAGE, null, 'login', 'signInAsUser', $userId, array('redirectUrl'=> $redirectUrl))
127  ),
128  __('grid.action.logInAs'),
129  'enroll_user'
130  )
131  );
132  }
133  }
134  }
135 
136  //
137  // Getters/Setters
138  //
143  function getSubmission() {
144  return $this->_submission;
145  }
146 
151  function getStageId() {
153  }
154 
158  function getRequestArgs() {
159  return array(
160  'submissionId' => $this->getSubmission()->getId(),
161  'stageId' => $this->_stageId,
162  'assignmentId' => $this->getId()
163  );
164  }
165 }
166 
167 
$op
$op
Definition: lib/pkp/pages/help/index.php:18
StageParticipantGridRow\initialize
initialize($request, $template=null)
Definition: StageParticipantGridRow.inc.php:55
Validation\isLoggedInAs
static isLoggedInAs()
Definition: Validation.inc.php:388
GridRow\__construct
__construct()
Definition: GridRow.inc.php:75
RemoteActionConfirmationModal
Class defining a simple confirmation modal with a remote action and ok/cancel buttons.
Definition: RemoteActionConfirmationModal.inc.php:18
GridRow\addAction
addAction($action, $position=GRID_ACTION_POSITION_DEFAULT)
Definition: GridRow.inc.php:179
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
GridBodyElement\getId
getId()
Definition: GridBodyElement.inc.php:57
StageParticipantGridRow\$_submission
$_submission
Definition: StageParticipantGridRow.inc.php:23
StageParticipantGridRow\$_stageId
$_stageId
Definition: StageParticipantGridRow.inc.php:29
StageParticipantGridRow\getRequestArgs
getRequestArgs()
Definition: StageParticipantGridRow.inc.php:167
StageParticipantGridRow\getStageId
getStageId()
Definition: StageParticipantGridRow.inc.php:160
StageParticipantGridRow\$_canAdminister
$_canAdminister
Definition: StageParticipantGridRow.inc.php:35
GridRow
GridRow implements a row of a Grid. See GridHandler for general information about grids.
Definition: GridRow.inc.php:29
AjaxModal
A modal that retrieves its content from via AJAX.
Definition: AjaxModal.inc.php:18
LinkAction
Base class defining an action that can be performed by the user in the user interface.
Definition: LinkAction.inc.php:22
StageParticipantGridRow
StageParticipant grid row definition.
Definition: StageParticipantGridRow.inc.php:18
StageParticipantGridRow\__construct
__construct($submission, $stageId, $canAdminister=false)
Definition: StageParticipantGridRow.inc.php:40
NotifyLinkAction
An action to open up the notify part of the stage participants grid.
Definition: NotifyLinkAction.inc.php:17
StageParticipantGridRow\getSubmission
getSubmission()
Definition: StageParticipantGridRow.inc.php:152
RedirectConfirmationModal
Class defining a simple confirmation modal with a redirect url and ok/cancel buttons.
Definition: RedirectConfirmationModal.inc.php:18
Validation\canAdminister
static canAdminister($administeredUserId, $administratorUserId)
Definition: Validation.inc.php:410
GridRow\getData
& getData()
Definition: GridRow.inc.php:131