00001 <?php
00002
00015 import('controllers.grid.files.SubmissionFilesGridHandler');
00016 import('controllers.grid.files.UploaderUserGroupGridColumn');
00017
00018 class ProductionReadyFilesGridHandler extends SubmissionFilesGridHandler {
00022 function ProductionReadyFilesGridHandler() {
00023 import('controllers.grid.files.SubmissionFilesGridDataProvider');
00024 parent::SubmissionFilesGridHandler(
00025 new SubmissionFilesGridDataProvider(MONOGRAPH_FILE_PRODUCTION_READY),
00026 WORKFLOW_STAGE_ID_PRODUCTION,
00027 FILE_GRID_ADD|FILE_GRID_DELETE|FILE_GRID_VIEW_NOTES
00028 );
00029
00030 $this->addRoleAssignment(
00031 array(
00032 ROLE_ID_SERIES_EDITOR,
00033 ROLE_ID_PRESS_MANAGER,
00034 ROLE_ID_PRESS_ASSISTANT
00035 ),
00036 array(
00037 'fetchGrid', 'fetchRow',
00038 'addFile',
00039 'downloadFile',
00040 'deleteFile',
00041 'signOffFile'
00042 )
00043 );
00044 }
00045
00049 function initialize($request) {
00050 parent::initialize($request);
00051
00052 $this->setTitle('editor.monograph.production.productionReadyFiles');
00053 $this->setInstructions('editor.monograph.production.productionReadyFilesDescription');
00054
00055 $currentUser =& $request->getUser();
00056
00057
00058 $uploaderUserGroupIds = array();
00059 $dataElements =& $this->getGridDataElements($request);
00060 foreach ($dataElements as $id => $rowElement) {
00061 $submissionFile =& $rowElement['submissionFile'];
00062 $uploaderUserGroupIds[] = $submissionFile->getUserGroupId();
00063 }
00064
00065 $uploaderUserGroupIds = array_unique($uploaderUserGroupIds);
00066
00067
00068 $userGroupDao =& DAORegistry::getDAO('UserGroupDAO');
00069 foreach ($uploaderUserGroupIds as $userGroupId) {
00070 $userGroup =& $userGroupDao->getById($userGroupId);
00071 assert(is_a($userGroup, 'UserGroup'));
00072 $this->addColumn(new UploaderUserGroupGridColumn($userGroup));
00073 unset($userGroup);
00074 }
00075 }
00076 }
00077
00078 ?>