Open Journal Systems  3.3.0
SubmissionDocumentsFilesGridHandler.inc.php
1 <?php
2 
16 import('lib.pkp.controllers.grid.files.LibraryFileGridHandler');
17 import('lib.pkp.controllers.grid.files.submissionDocuments.SubmissionDocumentsFilesGridDataProvider');
18 
23  function __construct() {
24 
25  parent::__construct(new SubmissionDocumentsFilesGridDataProvider());
26  $this->addRoleAssignment(
27  array(ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_ASSISTANT, ROLE_ID_AUTHOR),
28  array(
29  'addFile', 'uploadFile', 'saveFile', // Adding new library files
30  'editFile', 'updateFile', // Editing existing library files
31  'deleteFile', 'viewLibrary'
32  )
33  );
34  }
35 
36 
37  //
38  // Overridden template methods
39  //
44  function initialize($request, $args = null) {
45  $this->setCanEdit(true); // this grid can always be edited.
46  parent::initialize($request, $args);
47 
48  AppLocale::requireComponents(LOCALE_COMPONENT_APP_EDITOR, LOCALE_COMPONENT_PKP_EDITOR, LOCALE_COMPONENT_APP_MANAGER);
49 
50  $this->setTitle(null);
51 
52  $router = $request->getRouter();
53 
54  // Add grid-level actions
55 
56  if ($this->canEdit()) {
57  $this->addAction(
58  new LinkAction(
59  'addFile',
60  new AjaxModal(
61  $router->url($request, null, null, 'addFile', null, $this->getActionArgs()),
62  __('grid.action.addFile'),
63  'modal_add_file'
64  ),
65  __('grid.action.addFile'),
66  'add'
67  )
68  );
69  }
70 
71  $this->addAction(
72  new LinkAction(
73  'viewLibrary',
74  new AjaxModal(
75  $router->url($request, null, null, 'viewLibrary', null, $this->getActionArgs()),
76  __('grid.action.viewLibrary'),
77  'modal_information'
78  ),
79  __('grid.action.viewLibrary'),
80  'more_info'
81  )
82  );
83 
84  }
85 
90  function getActionArgs() {
91  $submission = $this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION);
92  $actionArgs = array(
93  'submissionId' => $submission->getId(),
94  );
95 
96  return $actionArgs;
97  }
98 
103  protected function getRowInstance() {
104  $submission = $this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION);
105  return new LibraryFileGridRow($this->canEdit(), $submission);
106  }
107 
108  //
109  // Public File Grid Actions
110  //
111 
118  function viewLibrary($args, $request) {
119  $templateMgr = TemplateManager::getManager($request);
120  $templateMgr->assign('isModal', true);
121  $userRoles = $this->getAuthorizedContextObject(ASSOC_TYPE_USER_ROLES);
122  $templateMgr->assign('canEdit', !empty(array_intersect([ROLE_ID_MANAGER], $userRoles)));
123  return $templateMgr->fetchJson('controllers/modals/documentLibrary/publisherLibrary.tpl');
124  }
125 
131  function _getNewFileForm($context) {
132  $submission = $this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION);
133  import('lib.pkp.controllers.grid.files.submissionDocuments.form.NewLibraryFileForm');
134  return new NewLibraryFileForm($context->getId(), $submission->getId());
135  }
136 
143  function _getEditFileForm($context, $fileId) {
144  $submission = $this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION);
145  import('lib.pkp.controllers.grid.files.submissionDocuments.form.EditLibraryFileForm');
146  return new EditLibraryFileForm($context->getId(), $fileId, $submission->getId());
147  }
148 }
PKPHandler\addRoleAssignment
addRoleAssignment($roleIds, $operations)
Definition: PKPHandler.inc.php:213
AppLocale\requireComponents
static requireComponents()
Definition: env1/MockAppLocale.inc.php:56
SubmissionDocumentsFilesGridHandler\_getEditFileForm
_getEditFileForm($context, $fileId)
Definition: SubmissionDocumentsFilesGridHandler.inc.php:143
NewLibraryFileForm
Definition: files/submissionDocuments/form/NewLibraryFileForm.inc.php:18
LibraryFileGridHandler
Base class for handling library file grid requests.
Definition: LibraryFileGridHandler.inc.php:25
SubmissionDocumentsFilesGridHandler\_getNewFileForm
_getNewFileForm($context)
Definition: SubmissionDocumentsFilesGridHandler.inc.php:131
SubmissionDocumentsFilesGridHandler\getRowInstance
getRowInstance()
Definition: SubmissionDocumentsFilesGridHandler.inc.php:103
SubmissionDocumentsFilesGridHandler\getActionArgs
getActionArgs()
Definition: SubmissionDocumentsFilesGridHandler.inc.php:90
SubmissionDocumentsFilesGridHandler
Definition: SubmissionDocumentsFilesGridHandler.inc.php:19
GridHandler\addAction
addAction($action, $position=GRID_ACTION_POSITION_ABOVE)
Definition: GridHandler.inc.php:266
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
LibraryFileGridRow
Handle library file grid row requests.
Definition: LibraryFileGridRow.inc.php:22
SubmissionDocumentsFilesGridHandler\initialize
initialize($request, $args=null)
Definition: SubmissionDocumentsFilesGridHandler.inc.php:44
GridHandler\setTitle
setTitle($title)
Definition: GridHandler.inc.php:215
SubmissionDocumentsFilesGridDataProvider
The base data provider for the submission documents library files grid.
Definition: SubmissionDocumentsFilesGridDataProvider.inc.php:17
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
PKPHandler\getAuthorizedContextObject
& getAuthorizedContextObject($assocType)
Definition: PKPHandler.inc.php:174
LibraryFileGridHandler\setCanEdit
setCanEdit($canEdit)
Definition: LibraryFileGridHandler.inc.php:69
LibraryFileGridHandler\canEdit
canEdit()
Definition: LibraryFileGridHandler.inc.php:61
SubmissionDocumentsFilesGridHandler\viewLibrary
viewLibrary($args, $request)
Definition: SubmissionDocumentsFilesGridHandler.inc.php:118
EditLibraryFileForm
Form for editing a library file.
Definition: files/submissionDocuments/form/EditLibraryFileForm.inc.php:18
SubmissionDocumentsFilesGridHandler\__construct
__construct()
Definition: SubmissionDocumentsFilesGridHandler.inc.php:23