17 import(
'lib.pkp.classes.controllers.grid.CategoryGridHandler');
20 import(
'lib.pkp.controllers.grid.files.SubmissionFilesGridRow');
21 import(
'lib.pkp.controllers.grid.files.FileNameGridColumn');
22 import(
'lib.pkp.controllers.grid.files.SelectableSubmissionFileListCategoryGridRow');
25 import(
'lib.pkp.classes.controllers.grid.files.FilesGridCapabilities');
28 import(
'lib.pkp.classes.submission.SubmissionFile');
45 function __construct($dataProvider, $stageId, $capabilities = 0) {
48 $this->_stageId = (int)$stageId;
53 parent::__construct($dataProvider);
83 assert(is_a($submission,
'Submission'));
94 protected function loadData($request, $filter) {
96 $workflowStages = parent::loadData($request, $filter);
99 if ($filter[
'allStages']) {
100 return array_combine($workflowStages, $workflowStages);
110 return 'controllers/grid/files/selectableSubmissionFileListCategoryGridFilter.tpl';
124 return array(
'allStages' => $request->getUserVar(
'allStages') ?
true :
false);
145 function authorize($request, &$args, $roleAssignments) {
148 $stageId = (int) $request->getUserVar(
'stageId');
151 $this->_stageId = $stageId;
155 $dataProvider->setStageId($this->
getStageId());
157 return parent::authorize($request, $args, $roleAssignments);
164 parent::initialize($request, $args);
168 LOCALE_COMPONENT_APP_SUBMISSION,
169 LOCALE_COMPONENT_PKP_SUBMISSION,
170 LOCALE_COMPONENT_APP_EDITOR,
171 LOCALE_COMPONENT_PKP_EDITOR,
172 LOCALE_COMPONENT_PKP_COMMON,
173 LOCALE_COMPONENT_APP_COMMON
180 if($capabilities->canManage()) {
181 $this->
addAction($dataProvider->getSelectAction($request));
184 if($capabilities->canAdd()) {
185 assert(isset($dataProvider));
186 $this->
addAction($dataProvider->getAddFileAction($request));
190 if ($capabilities->canDownloadAll() && $this->hasGridDataElements($request)) {
193 $linkParams = array(
'submissionId' => $submission->getId(),
'stageId' => $stageId);
196 $this->
addAction($capabilities->getDownloadAllAction($request, $files, $linkParams), GRID_ACTION_POSITION_BELOW);
203 import(
'lib.pkp.controllers.grid.files.fileList.FileGenreGridColumn');
214 import(
'lib.pkp.classes.controllers.grid.feature.selectableItems.SelectableItemsFeature');
243 $submissionFiles = array();
244 foreach ($workflowStages as $stageId) {
245 $submissionFiles = array_merge(
250 return $submissionFiles;
258 $submissionFile = $gridDataElement[
'submissionFile'];
262 if ($dataProvider->getFileStage() != $submissionFile->getFileStage()) {
264 } elseif ($currentStageId == WORKFLOW_STAGE_ID_INTERNAL_REVIEW || $currentStageId == WORKFLOW_STAGE_ID_EXTERNAL_REVIEW) {
265 if ($currentStageId != $categoryDataId) {
271 return $submissionFile->getViewable();
279 return 'selectedFiles';