Open Journal Systems  3.3.0
ManageQueryNoteFilesGridHandler.inc.php
1 <?php
2 
16 import('lib.pkp.controllers.grid.files.SelectableSubmissionFileListCategoryGridHandler');
17 
22  function __construct() {
23  import('lib.pkp.controllers.grid.files.query.QueryNoteFilesCategoryGridDataProvider');
24  $request = Application::get()->getRequest();
25  $stageId = $request->getUservar('stageId'); // authorized by data provider.
26  parent::__construct(
28  $stageId,
29  FILE_GRID_DELETE|FILE_GRID_VIEW_NOTES|FILE_GRID_EDIT
30  );
31 
32  $this->addRoleAssignment(
33  array(
34  ROLE_ID_SUB_EDITOR,
35  ROLE_ID_MANAGER,
36  ROLE_ID_ASSISTANT
37  ),
38  array(
39  'fetchGrid', 'fetchCategory', 'fetchRow',
40  'addFile',
41  'downloadFile',
42  'deleteFile',
43  'updateQueryNoteFiles'
44  )
45  );
46 
47  // Set the grid title.
48  $this->setTitle('submission.queryNoteFiles');
49  }
50 
51 
52  //
53  // Override methods from SelectableSubmissionFileListCategoryGridHandler
54  //
58  function isDataElementInCategorySelected($categoryDataId, &$gridDataElement) {
59  $submissionFile = $gridDataElement['submissionFile'];
60 
61  // Check for special cases when the file needs to be unselected.
62  $dataProvider = $this->getDataProvider();
63  if ($dataProvider->getFileStage() != $submissionFile->getFileStage()) return false;
64 
65  // Passed the checks above. If it's part of the current query, mark selected.
66  $query = $this->getAuthorizedContextObject(ASSOC_TYPE_QUERY);
67  $headNote = $query->getHeadNote();
68  return ($submissionFile->getAssocType() == ASSOC_TYPE_NOTE && $submissionFile->getAssocId() == $headNote->getId());
69  }
70 
71  //
72  // Public handler methods
73  //
80  function updateQueryNoteFiles($args, $request) {
81  $submission = $this->getSubmission();
82  $query = $this->getAuthorizedContextObject(ASSOC_TYPE_QUERY);
83 
84  import('lib.pkp.controllers.grid.files.query.form.ManageQueryNoteFilesForm');
85  $manageQueryNoteFilesForm = new ManageQueryNoteFilesForm($submission->getId(), $query->getId(), $request->getUserVar('noteId'));
86  $manageQueryNoteFilesForm->readInputData();
87 
88  if ($manageQueryNoteFilesForm->validate()) {
89  $manageQueryNoteFilesForm->execute(
90  $this->getGridCategoryDataElements($request, $this->getStageId())
91  );
92 
93  // Let the calling grid reload itself
94  return DAO::getDataChangedEvent();
95  } else {
96  return new JSONMessage(false);
97  }
98  }
99 }
100 
101 
PKPHandler\addRoleAssignment
addRoleAssignment($roleIds, $operations)
Definition: PKPHandler.inc.php:213
ManageQueryNoteFilesForm
Form to add files to the query files grid.
Definition: ManageQueryNoteFilesForm.inc.php:18
GridHandler\getDataProvider
getDataProvider()
Definition: GridHandler.inc.php:157
ManageQueryNoteFilesGridHandler\updateQueryNoteFiles
updateQueryNoteFiles($args, $request)
Definition: ManageQueryNoteFilesGridHandler.inc.php:80
ManageQueryNoteFilesGridHandler
Handle the query file selection grid.
Definition: ManageQueryNoteFilesGridHandler.inc.php:18
ManageQueryNoteFilesGridHandler\isDataElementInCategorySelected
isDataElementInCategorySelected($categoryDataId, &$gridDataElement)
Definition: ManageQueryNoteFilesGridHandler.inc.php:58
SelectableSubmissionFileListCategoryGridHandler\getSubmission
getSubmission()
Definition: SelectableSubmissionFileListCategoryGridHandler.inc.php:86
QueryNoteFilesCategoryGridDataProvider
Definition: QueryNoteFilesCategoryGridDataProvider.inc.php:17
DAO\getDataChangedEvent
static getDataChangedEvent($elementId=null, $parentElementId=null, $content='')
Definition: DAO.inc.php:647
ManageQueryNoteFilesGridHandler\__construct
__construct()
Definition: ManageQueryNoteFilesGridHandler.inc.php:22
JSONMessage
Class to represent a JSON (Javascript Object Notation) message.
Definition: JSONMessage.inc.php:18
GridHandler\setTitle
setTitle($title)
Definition: GridHandler.inc.php:215
SelectableSubmissionFileListCategoryGridHandler\getStageId
getStageId()
Definition: SelectableSubmissionFileListCategoryGridHandler.inc.php:78
PKPHandler\getAuthorizedContextObject
& getAuthorizedContextObject($assocType)
Definition: PKPHandler.inc.php:174
SelectableSubmissionFileListCategoryGridHandler
Handle selectable submission file list category grid requests.
Definition: SelectableSubmissionFileListCategoryGridHandler.inc.php:30
CategoryGridHandler\getGridCategoryDataElements
& getGridCategoryDataElements($request, $categoryElement)
Definition: CategoryGridHandler.inc.php:123
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235