Open Journal Systems  3.3.0
AuthorGridRow.inc.php
1 <?php
2 
16 import('lib.pkp.classes.controllers.grid.GridRow');
17 
18 class AuthorGridRow extends GridRow {
20  var $_submission;
21 
24 
26  var $_readOnly;
27 
29  var $_version;
30 
34  function __construct($submission, $publication, $readOnly = false) {
35  $this->_submission = $submission;
36  $this->_publication = $publication;
37  $this->_readOnly = $readOnly;
38  parent::__construct();
39  }
40 
41  //
42  // Overridden methods from GridRow
43  //
47  function initialize($request, $template = null) {
48  // Do the default initialization
49  parent::initialize($request, $template);
50 
51  // Is this a new row or an existing row?
52  $rowId = $this->getId();
53  if (!empty($rowId) && is_numeric($rowId)) {
54  // Only add row actions if this is an existing row
55  $router = $request->getRouter();
56  $actionArgs = $this->getRequestArgs();
57  $actionArgs['authorId'] = $rowId;
58 
59  if (!$this->isReadOnly()) {
60  // Add row-level actions
61  import('lib.pkp.classes.linkAction.request.AjaxModal');
62  $this->addAction(
63  new LinkAction(
64  'editAuthor',
65  new AjaxModal(
66  $router->url($request, null, null, 'editAuthor', null, $actionArgs),
67  __('grid.action.editContributor'),
68  'modal_edit'
69  ),
70  __('grid.action.edit'),
71  'edit'
72  )
73  );
74 
75  import('lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
76  $this->addAction(
77  new LinkAction(
78  'deleteAuthor',
80  $request->getSession(),
81  __('common.confirmDelete'),
82  __('common.delete'),
83  $router->url($request, null, null, 'deleteAuthor', null, $actionArgs),
84  'modal_delete'
85  ),
86  __('grid.action.delete'),
87  'delete'
88  )
89  );
90 
91  $authorDao = DAORegistry::getDAO('AuthorDAO'); /* @var $authorDao AuthorDAO */
92  $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */
93  $author = $authorDao->getById($rowId);
94 
95  if ($author && !$userDao->userExistsByEmail($author->getEmail())) {
96  $this->addAction(
97  new LinkAction(
98  'addUser',
99  new AjaxModal(
100  $router->url($request, null, null, 'addUser', null, $actionArgs),
101  __('grid.user.add'),
102  'modal_add_user',
103  true
104  ),
105  __('grid.user.add'),
106  'add_user')
107  );
108  }
109  }
110  }
111  }
112 
117  function getSubmission() {
118  return $this->_submission;
119  }
120 
125  function getPublication() {
126  return $this->_publication;
127  }
128 
133  function getRequestArgs() {
134  $submission = $this->getSubmission();
135  $publication = $this->getPublication();
136  return array(
137  'submissionId' => $submission->getId(),
138  'publicationId' => $publication->getId()
139  );
140  }
141 
149  function allowedToCreateUser($request) {
150  return false;
151  }
152 
157  function isReadOnly() {
158  return $this->_readOnly;
159  }
160 }
161 
162 
AuthorGridRow\allowedToCreateUser
allowedToCreateUser($request)
Definition: AuthorGridRow.inc.php:161
GridRow\__construct
__construct()
Definition: GridRow.inc.php:75
AuthorGridRow\isReadOnly
isReadOnly()
Definition: AuthorGridRow.inc.php:169
AuthorGridRow\$_submission
$_submission
Definition: AuthorGridRow.inc.php:23
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
AuthorGridRow\$_version
$_version
Definition: AuthorGridRow.inc.php:41
GridRow
GridRow implements a row of a Grid. See GridHandler for general information about grids.
Definition: GridRow.inc.php:29
AuthorGridRow\getPublication
getPublication()
Definition: AuthorGridRow.inc.php:137
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
AuthorGridRow\getSubmission
getSubmission()
Definition: AuthorGridRow.inc.php:129
AuthorGridRow\getRequestArgs
getRequestArgs()
Definition: AuthorGridRow.inc.php:145
AuthorGridRow\__construct
__construct($submission, $publication, $readOnly=false)
Definition: AuthorGridRow.inc.php:46
AuthorGridRow\initialize
initialize($request, $template=null)
Definition: AuthorGridRow.inc.php:59
AuthorGridRow\$_publication
$_publication
Definition: AuthorGridRow.inc.php:29
AuthorGridRow\$_readOnly
$_readOnly
Definition: AuthorGridRow.inc.php:35
AuthorGridRow
Base class for author grid row definition.
Definition: AuthorGridRow.inc.php:18