/** * @see PKPHandler::initialize() */ function initialize(&$request) { // Basic grid configuration $this->setId('fairCopyFiles'); $this->setTitle('editor.monograph.fairCopy'); // Load grid data. $this->loadMonographFiles(); // Test whether the tar binary is available for the export to work, if so, add grid action $tarBinary = Config::getVar('cli', 'tar'); if ($this->hasData() && !empty($tarBinary) && file_exists($tarBinary)) { $monograph =& $this->getMonograph(); $router =& $request->getRouter(); $this->addAction(new LinkAction('downloadAll', new RedirectAction($router->url($request, null, null, 'downloadAllFiles', null, array('monographId' => $monograph->getId()))), 'submission.files.downloadAll', 'getPackage')); } // Load additional translation components. Locale::requireComponents(array(LOCALE_COMPONENT_OMP_EDITOR)); // Columns import('controllers.grid.files.fairCopyFiles.FairCopyFilesGridCellProvider'); $cellProvider =& new FairCopyFilesGridCellProvider(); parent::initialize($request, $cellProvider); // Add a column for the uploader. // FIXME: We're just adding some placeholder text here until this // is correctly implemented, see #6233. $this->addColumn(new GridColumn('select', null, 'FIXME', 'controllers/grid/common/cell/roleCell.tpl', $cellProvider)); // Add another column for the uploader's role // FIXME: We're just adding some placeholder text here until this // is correctly implemented, see #6233. $this->addColumn(new GridColumn('uploader-name', null, 'FIXME', 'controllers/grid/common/cell/roleCell.tpl', $cellProvider)); }
/** * @see PKPHandler::initialize() */ function initialize(&$request) { // Basic grid configuration $this->setTitle('submission.submit.submissionFiles'); // Load monograph files. $this->loadMonographFiles(); $cellProvider = new SubmissionFilesGridCellProvider(); parent::initialize($request, $cellProvider); $this->addColumn(new GridColumn('fileType', 'common.fileType', null, 'controllers/grid/gridCell.tpl', $cellProvider)); $this->addColumn(new GridColumn('type', 'common.type', null, 'controllers/grid/gridCell.tpl', $cellProvider)); }
function initialize(&$request, $additionalActionArgs = array()) { $this->setTitle('grid.reviewAttachments.title'); // Set the select checkbox name to avoid namespace collisions $this->setSelectName('selectedAttachments'); // Load monograph files. $this->loadMonographFiles(); import('controllers.grid.files.SubmissionFilesGridCellProvider'); $cellProvider = new SubmissionFilesGridCellProvider(); parent::initialize($request, $cellProvider, $additionalActionArgs); }
/** * @see PKPHandler::initialize() */ function initialize(&$request) { parent::initialize($request); // Add the "manage files" action if required. if ($this->canManage()) { $dataProvider =& $this->getDataProvider(); $this->addAction($dataProvider->getSelectAction($request)); } // The file list grid layout has an additional file genre column. import('controllers.grid.files.fileList.FileGenreGridColumn'); $this->addColumn(new FileGenreGridColumn()); }
function initialize(&$request) { // Basic grid configuration $this->setId('reviewFiles'); $this->setTitle('submission.submit.submissionFiles'); // Load monograph files. $this->loadMonographFiles(); $cellProvider = new SubmissionFilesGridCellProvider(); parent::initialize($request, $cellProvider); $this->addColumn(new GridColumn('fileType', 'common.fileType', null, 'controllers/grid/gridCell.tpl', $cellProvider)); $this->addColumn(new GridColumn('type', 'common.type', null, 'controllers/grid/gridCell.tpl', $cellProvider)); import('controllers.grid.files.reviewFiles.ReviewFilesGridCellProvider'); $reviewCellProvider =& new ReviewFilesGridCellProvider(); $this->addColumn(new GridColumn('select', 'common.select', null, 'controllers/grid/gridRowSelectInput.tpl', $reviewCellProvider)); }
/** * @see PKPHandler::initialize() */ function initialize(&$request) { // Basic grid configuration. $this->setTitle('submission.finalDraft'); // Add required locale files. Locale::requireComponents(array(LOCALE_COMPONENT_PKP_COMMON, LOCALE_COMPONENT_APPLICATION_COMMON, LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_OMP_EDITOR, LOCALE_COMPONENT_OMP_SUBMISSION)); // Load the monograph files to be displayed in the grid $this->loadMonographFiles(); if ($this->canManage()) { $monograph =& $this->getMonograph(); $router =& $request->getRouter(); $this->addAction(new SelectSubmissionFilesLinkAction(&$request, $monograph->getId(), __('editor.monograph.manageFinalDraftFiles'))); } import('controllers.grid.files.SubmissionFilesGridCellProvider'); $cellProvider = new SubmissionFilesGridCellProvider(); parent::initialize($request, $cellProvider); }
/** * @copydoc PKPHandler::initialize() */ function initialize($request) { parent::initialize($request); $currentUser = $request->getUser(); $submission = $this->getSubmission(); $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); /* @var $stageAssignmentDao StageAssignmentDAO */ $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); /* @var $userGroupDao UserGroupDAO */ // Set up the roles we may include as columns $roles = array(ROLE_ID_MANAGER => 'user.role.manager', ROLE_ID_SUB_EDITOR => 'user.role.subEditor', ROLE_ID_ASSISTANT => 'user.role.assistant'); // Get all the uploader user group id's $uploaderUserGroupIds = array(); $dataElements = $this->getGridDataElements($request); foreach ($dataElements as $id => $rowElement) { $submissionFile = $rowElement['submissionFile']; $uploaderUserGroupIds[] = $submissionFile->getUserGroupId(); } $uploaderUserGroupIds = array_unique($uploaderUserGroupIds); $userGroupIds = array(); foreach ($roles as $roleId => $roleName) { $userIds = array(); $assignments = $stageAssignmentDao->getBySubmissionAndRoleId($submission->getId(), $roleId, $this->getStageId()); // Only include a role column if there is at least one user assigned from that role to this stage. if (!$assignments->wasEmpty()) { while ($assignment = $assignments->next()) { $userIds[] = $assignment->getUserId(); $userGroupIds[] = $assignment->getUserGroupId(); } $userIds = array_unique($userIds); $this->addColumn(new SignoffStatusFromFileGridColumn('role-' . $roleId, $roleName, null, $this->getSymbolic(), $userIds, $this->getRequestArgs(), in_array($currentUser->getId(), $userIds), array('hoverTitle', true))); } unset($assignments); } // Add a column for uploader User Groups not present in the previous groups $uploaderUserGroupIds = array_diff($uploaderUserGroupIds, array_unique($userGroupIds)); $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); foreach ($uploaderUserGroupIds as $userGroupId) { $userGroup = $userGroupDao->getById($userGroupId); assert(is_a($userGroup, 'UserGroup')); $this->addColumn(new UploaderUserGroupGridColumn($userGroup)); } }
/** * @see PKPHandler::initialize() */ function initialize(&$request) { // Basic grid configuration $this->setId('fairCopyFiles'); $this->setTitle('editor.monograph.fairCopy'); // Load grid data. $this->loadMonographFiles(); // Load additional translation components. Locale::requireComponents(array(LOCALE_COMPONENT_OMP_EDITOR)); // Columns import('controllers.grid.files.fairCopy.FairCopyFilesGridCellProvider'); $cellProvider = new FairCopyFilesGridCellProvider(); parent::initialize($request, $cellProvider); // Add a column for the uploader. // FIXME: We're just adding some placeholder text here until this // is correctly implemented, see #6233. $this->addColumn(new GridColumn('select', null, 'FIXME', 'controllers/grid/common/cell/statusCell.tpl', $cellProvider)); // Add another column for the uploader's role // FIXME: We're just adding some placeholder text here until this // is correctly implemented, see #6233. $this->addColumn(new GridColumn('uploader-name', null, 'FIXME', 'controllers/grid/common/cell/statusCell.tpl', $cellProvider)); }
/** * @copydoc PKPHandler::initialize() */ function initialize($request) { parent::initialize($request); $this->setTitle('editor.submission.production.productionReadyFiles'); $this->setInstructions('editor.submission.production.productionReadyFilesDescription'); $currentUser = $request->getUser(); // Get all the uploader user group id's $uploaderUserGroupIds = array(); $dataElements = $this->getGridDataElements($request); foreach ($dataElements as $id => $rowElement) { $submissionFile = $rowElement['submissionFile']; $uploaderUserGroupIds[] = $submissionFile->getUserGroupId(); } // Make sure each is only present once $uploaderUserGroupIds = array_unique($uploaderUserGroupIds); // Add a Uploader UserGroup column for each group $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); foreach ($uploaderUserGroupIds as $userGroupId) { $userGroup = $userGroupDao->getById($userGroupId); assert(is_a($userGroup, 'UserGroup')); $this->addColumn(new UploaderUserGroupGridColumn($userGroup)); } }
/** * Display the file upload form * @param $args array * @param $request PKPRequest * @return string Serialized JSON object */ function displayFileForm(&$args, &$request) { $templateMgr =& TemplateManager::getManager(); $templateMgr->assign('isEditing', true); return parent::displayFileForm($args, $request); }
/** * @see GridHandler::loadData() */ function &loadData($request, $filter) { // Retrieve all press and series editor user // groups from the database. $router =& $request->getRouter(); $press =& $router->getContext($request); $userGroupDao =& DAORegistry::getDAO('UserGroupDAO'); /* @var $userGroupDao UserGroupDAO */ $editorGroups = array(); foreach (array(ROLE_ID_PRESS_MANAGER, ROLE_ID_SERIES_EDITOR) as $editorRoleId) { $editorGroupFactory =& $userGroupDao->getByRoleId($press->getId(), $editorRoleId); while ($editorGroup =& $editorGroupFactory->next()) { /* @var $editorGroup UserGroup */ $editorGroups[$editorGroup->getId()] =& $editorGroup; unset($editorGroup); } unset($editorGroupFactory); } // Go through the list of workflow stage participants and // identify all assigned press and series editors. $monograph =& $this->getMonograph(); $signoffDao =& DAORegistry::getDAO('SignoffDAO'); /* @var $signoffDao SignoffDAO */ $signoffFactory =& $signoffDao->getAllBySymbolic('SIGNOFF_STAGE', ASSOC_TYPE_MONOGRAPH, $monograph->getId(), null, $this->getStageId()); $stageEditors = array(); while ($signoff =& $signoffFactory->next()) { /* @var $signoff Signoff */ if (isset($editorGroups[$signoff->getUserGroupId()])) { if (!isset($stageEditors[$signoff->getUserId()])) { $stageEditors[$signoff->getUserId()] = array(); } $stageEditors[$signoff->getUserId()][$signoff->getUserGroupId()] =& $editorGroups[$signoff->getUserGroupId()]; } } // Now go through all files and create a signoff for each of // the assigned editors unless that editor is the uploader. $submissionFiles =& parent::loadData($request, $filter); foreach ($submissionFiles as $fileId => $submissionFileData) { assert(isset($submissionFileData['submissionFile'])); $monographFile =& $submissionFileData['submissionFile']; /* @var $monographFile MonographFile */ // All press and series editors assigned to the stage except // for those who uploaded the file have to sign off this file. $fileSignoffs = $stageEditors; unset($fileSignoffs[$monographFile->getUploaderUserId()]); $submissionFiles[$fileId]['signoffs'] = $fileSignoffs; } return $submissionFiles; }