Esempio n. 1
0
 /**
  * Configure the grid
  * @param $request PKPRequest
  */
 function initialize(&$request)
 {
     parent::initialize($request);
     // Retrieve the authorized monograph
     $monograph =& $this->getAuthorizedContextObject(ASSOC_TYPE_MONOGRAPH);
     assert(is_a($monograph, 'Monograph'));
     $this->setMonograph($monograph);
     Locale::requireComponents(array(LOCALE_COMPONENT_OMP_DEFAULT_SETTINGS, LOCALE_COMPONENT_OMP_SUBMISSION));
     // Basic grid configuration
     $this->setTitle('grid.chapters.title');
     // Set the category data
     $chapterDao =& DAORegistry::getDAO('ChapterDAO');
     $chapters =& $chapterDao->getChapters($monograph->getId());
     $this->setGridDataElements($chapters);
     // Grid actions
     $router =& $request->getRouter();
     $actionArgs = array('monographId' => $monograph->getId());
     $this->addAction(new LinkAction('addChapter', new AjaxModal($router->url($request, null, null, 'addChapter', null, $actionArgs), __('submission.chapter.addChapter'), 'fileManagement'), __('grid.action.addItem'), 'add_item'));
     // Columns
     // reuse the cell providers for the SubmissionContributorGrid
     $cellProvider = new SubmissionContributorGridCellProvider();
     $this->addColumn(new GridColumn('name', 'author.users.contributor.name', null, 'controllers/grid/gridCell.tpl', $cellProvider));
     $this->addColumn(new GridColumn('email', 'author.users.contributor.email', null, 'controllers/grid/gridCell.tpl', $cellProvider));
     $this->addColumn(new GridColumn('role', 'author.users.contributor.role', null, 'controllers/grid/gridCell.tpl', $cellProvider));
     $this->addColumn(new GridColumn('principalContact', 'author.users.contributor.principalContact', null, 'controllers/grid/users/submissionContributor/primaryContact.tpl', $cellProvider));
 }
 /**
  * @copydoc GridHandler::initialize()
  */
 function initialize($request)
 {
     parent::initialize($request);
     // Load language components
     AppLocale::requireComponents(LOCALE_COMPONENT_PKP_MANAGER, LOCALE_COMPONENT_PKP_COMMON, LOCALE_COMPONENT_APP_MANAGER);
     // Basic grid configuration
     $this->setTitle('common.plugins');
     // Set the no items row text
     $this->setEmptyRowText('grid.noItems');
     // Columns
     import('lib.pkp.controllers.grid.plugins.PluginGridCellProvider');
     $pluginCellProvider = new PluginGridCellProvider();
     $this->addColumn(new GridColumn('name', 'common.name', null, null, $pluginCellProvider, array('multiline' => true, 'showTotalItemsNumber' => true, 'collapseAllColumnsInCategories' => true)));
     $descriptionColumn = new GridColumn('description', 'common.description', null, null, $pluginCellProvider);
     $descriptionColumn->addFlag('html', true);
     $this->addColumn($descriptionColumn);
     $this->addColumn(new GridColumn('enabled', 'common.enabled', null, 'controllers/grid/common/cell/selectStatusCell.tpl', $pluginCellProvider));
     $router = $request->getRouter();
     // Grid level actions.
     $userRoles = $this->getAuthorizedContextObject(ASSOC_TYPE_USER_ROLES);
     if (in_array(ROLE_ID_SITE_ADMIN, $userRoles)) {
         import('lib.pkp.classes.linkAction.request.AjaxModal');
         // Install plugin.
         $this->addAction(new LinkAction('upload', new AjaxModal($router->url($request, null, null, 'uploadPlugin'), __('manager.plugins.upload'), 'modal_add_file'), __('manager.plugins.upload'), 'add'));
     }
 }
 function initialize($request)
 {
     parent::initialize($request);
     // Retrieve the authorized monograph.
     $this->setMonograph($this->getAuthorizedContextObject(ASSOC_TYPE_MONOGRAPH));
     $representativeId = (int) $request->getUserVar('representativeId');
     // set if editing or deleting a representative entry
     if ($representativeId != '') {
         $representativeDao = DAORegistry::getDAO('RepresentativeDAO');
         $representative = $representativeDao->getById($representativeId, $this->getMonograph()->getId());
         if (!isset($representative)) {
             fatalError('Representative referenced outside of authorized monograph context!');
         }
     }
     // Load submission-specific translations
     AppLocale::requireComponents(LOCALE_COMPONENT_APP_SUBMISSION, LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_PKP_USER, LOCALE_COMPONENT_APP_DEFAULT, LOCALE_COMPONENT_PKP_DEFAULT);
     // Basic grid configuration
     $this->setTitle('grid.catalogEntry.representatives');
     // Grid actions
     $router = $request->getRouter();
     $actionArgs = $this->getRequestArgs();
     $this->addAction(new LinkAction('addRepresentative', new AjaxModal($router->url($request, null, null, 'addRepresentative', null, $actionArgs), __('grid.action.addRepresentative'), 'modal_add_item'), __('grid.action.addRepresentative'), 'add_item'));
     // Columns
     $cellProvider = new RepresentativesGridCellProvider();
     $this->addColumn(new GridColumn('name', 'grid.catalogEntry.representativeName', null, null, $cellProvider));
     $this->addColumn(new GridColumn('role', 'grid.catalogEntry.representativeRole', null, null, $cellProvider));
 }
 /**
  * Configure the grid
  * @param $request PKPRequest
  */
 function initialize($request)
 {
     parent::initialize($request);
     // Retrieve the authorized submission.
     $this->setSubmission($this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION));
     // Load submission-specific translations
     AppLocale::requireComponents(LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_PKP_USER, LOCALE_COMPONENT_PKP_DEFAULT);
 }
Esempio n. 5
0
 /**
  * @copydoc PKPHandler::initialize()
  */
 function initialize($request)
 {
     parent::initialize($request);
     AppLocale::requireComponents(LOCALE_COMPONENT_APP_EDITOR, LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_APP_SUBMISSION);
     //
     // Grid columns.
     //
     import('controllers.grid.toc.TocGridCellProvider');
     $tocGridCellProvider = new TocGridCellProvider();
     // Article title
     $this->addColumn(new GridColumn('title', 'article.title', null, null, $tocGridCellProvider));
 }
 /**
  * Configure the grid
  * @param PKPRequest $request
  */
 function initialize($request)
 {
     parent::initialize($request);
     AppLocale::requireComponents(LOCALE_COMPONENT_PKP_COMMON, LOCALE_COMPONENT_APP_COMMON, LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_APP_EDITOR, LOCALE_COMPONENT_PKP_EDITOR, LOCALE_COMPONENT_APP_SUBMISSION);
     $submission = $this->getSubmission();
     // Bring in file constants
     import('lib.pkp.classes.submission.SubmissionFile');
     // Grid actions
     // Action to add a file -- Adds a category row for the file
     import('lib.pkp.controllers.api.file.linkAction.AddFileLinkAction');
     $this->addAction(new AddFileLinkAction($request, $submission->getId(), $this->getStageId(), array(ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_ASSISTANT), null, $this->getFileStage(), $this->getAssocType(), $this->getAssocId()));
     // Action to signoff on a file -- Lets user interact with their own rows.
     $user = $request->getUser();
     $signoffDao = DAORegistry::getDAO('SubmissionFileSignoffDAO');
     /* @var $signoffDao SubmissionFileSignoffDAO */
     $signoffFactory = $signoffDao->getAllBySubmission($submission->getId(), $this->getSymbolic(), $user->getId(), null, true);
     if (!$signoffFactory->wasEmpty()) {
         import('lib.pkp.controllers.api.signoff.linkAction.AddSignoffFileLinkAction');
         $this->addAction(new AddSignoffFileLinkAction($request, $submission->getId(), $this->getStageId(), $this->getSymbolic(), null, __('submission.upload.signoff'), __('submission.upload.signoff')));
     }
     $router = $request->getRouter();
     // Action to add a user -- Adds the user as a subcategory to the files selected in its modal
     $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO');
     /* @var $submissionFileDao SubmissionFileDAO */
     $submissionFiles = $submissionFileDao->getLatestRevisions($submission->getId(), $this->getFileStage());
     // The "Add Auditor" link should only be available if at least
     // one file already exists.
     if (!empty($submissionFiles)) {
         $this->addAction(new LinkAction('addAuditor', new AjaxModal($router->url($request, null, null, 'addAuditor', null, $this->getRequestArgs()), __('editor.submission.addAuditor'), 'modal_add_user'), __('editor.submission.addAuditor'), 'add_user'));
     }
     //
     // Grid Columns
     //
     $userIds = $this->_getSignoffCapableUsersId();
     // Add a column for the file's label
     $this->addColumn(new GridColumn('name', 'common.file', null, null, new SignoffGridCellProvider($submission->getId(), $this->getStageId()), array('alignment' => COLUMN_ALIGNMENT_LEFT, 'width' => 60)));
     // Add the considered column (signoff).
     import('lib.pkp.controllers.grid.files.SignoffOnSignoffGridColumn');
     $this->addColumn(new SignoffOnSignoffGridColumn('common.considered', $userIds, $this->getRequestArgs(), array('hoverTitle' => true)));
     // Add approved column (make the file visible). This column
     // will only have content in category rows, so we define
     // a cell provider there. See getCategoryRowInstance().
     import('lib.pkp.classes.controllers.grid.GridColumn');
     import('lib.pkp.classes.controllers.grid.NullGridCellProvider');
     $this->addColumn(new GridColumn('approved', 'editor.signoff.approved', null, null, new NullGridCellProvider()));
     // Set the no-row locale key
     $this->setEmptyRowText('grid.noFiles');
 }
 /**
  * @copydoc PKPHandler::initialize()
  */
 function initialize($request)
 {
     parent::initialize($request);
     $press = $request->getPress();
     $this->_pressId = $press->getId();
     AppLocale::requireComponents(LOCALE_COMPONENT_APP_MANAGER);
     // Set the grid title.
     $this->setTitle('grid.category.categories');
     // Add grid-level actions.
     $router = $request->getRouter();
     $this->addAction(new LinkAction('addCategory', new AjaxModal($router->url($request, null, null, 'addCategory'), __('grid.category.add'), 'modal_manage'), __('grid.category.add'), 'add_category'));
     // Add grid columns.
     $cellProvider = new DataObjectGridCellProvider();
     $cellProvider->setLocale(AppLocale::getLocale());
     $this->addColumn(new GridColumn('title', 'grid.category.name', null, null, $cellProvider));
 }
 /**
  * @copydoc Gridhandler::initialize()
  */
 function initialize($request, $args = null)
 {
     parent::initialize($request);
     $context = $request->getContext();
     $this->setSubmissionId($request->getUserVar('submissionId'));
     // Set the grid details.
     $this->setTitle('plugins.generic.vgWort.vgWortGrid');
     $this->setEmptyRowText('plugins.generic.vgWort.emptyRow');
     $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO');
     $files = $submissionFileDao->getLatestRevisions($this->getSubmissionId(), 10);
     //getBySubmissionId($this->submissionId);
     $this->setGridDataElements($files);
     // Columns
     $cellProvider = new VGWortPrivateGridCellProvider($this->getSubmissionId());
     $this->addColumn(new GridColumn('name', 'plugins.generic.vgWort.submissionFiles', null, 'controllers/grid/gridCell.tpl', $cellProvider));
     $this->addColumn(new GridColumn('code', 'plugins.generic.vgWort.submissionMetadataForm.code', null, 'controllers/grid/gridCell.tpl', $cellProvider));
 }
 /**
  * @copydoc PKPHandler::initialize()
  */
 function initialize($request)
 {
     parent::initialize($request);
     // Load submission-specific translations
     AppLocale::requireComponents(LOCALE_COMPONENT_APP_EDITOR, LOCALE_COMPONENT_PKP_USER, LOCALE_COMPONENT_APP_DEFAULT, LOCALE_COMPONENT_PKP_DEFAULT, LOCALE_COMPONENT_PKP_SUBMISSION);
     // Columns
     import('lib.pkp.controllers.grid.users.stageParticipant.StageParticipantGridCellProvider');
     $cellProvider = new StageParticipantGridCellProvider();
     $this->addColumn(new GridColumn('participants', null, null, null, $cellProvider));
     // The "Add stage participant" grid action is available to
     // Editors and Managers only
     if ($this->_canAdminister()) {
         $router = $request->getRouter();
         $this->addAction(new LinkAction('requestAccount', new AjaxModal($router->url($request, null, null, 'addParticipant', null, $this->getRequestArgs()), __('editor.submission.addStageParticipant'), 'modal_add_user'), __('common.add'), 'add_user'));
     }
     $this->setEmptyCategoryRowText('editor.submission.noneAssigned');
 }
Esempio n. 10
0
 function initialize($request)
 {
     parent::initialize($request);
     $router = $request->getRouter();
     $this->_context = $router->getContext($request);
     // Set name
     $this->setTitle('manager.publication.library');
     AppLocale::requireComponents(LOCALE_COMPONENT_PKP_COMMON, LOCALE_COMPONENT_APP_COMMON, LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_APP_SUBMISSION, LOCALE_COMPONENT_PKP_MANAGER, LOCALE_COMPONENT_APP_MANAGER);
     // Columns
     // Basic grid row configuration
     $this->addColumn($this->getFileNameColumn());
     $router = $request->getRouter();
     // Add grid-level actions
     if ($this->canEdit()) {
         $this->addAction(new LinkAction('addFile', new AjaxModal($router->url($request, null, null, 'addFile', null, $this->getActionArgs()), __('grid.action.addFile'), 'modal_add_file'), __('grid.action.addFile'), 'add'));
     }
 }
Esempio n. 11
0
 /**
  * @copydoc PKPHandler::initialize()
  */
 function initialize($request)
 {
     parent::initialize($request);
     // Load user-related translations.
     AppLocale::requireComponents(LOCALE_COMPONENT_PKP_USER, LOCALE_COMPONENT_APP_ADMIN, LOCALE_COMPONENT_PKP_ADMIN, LOCALE_COMPONENT_APP_MANAGER, LOCALE_COMPONENT_APP_COMMON);
     // Basic grid configuration.
     $this->setTitle('admin.systemConfiguration');
     //
     // Grid columns.
     //
     import('lib.pkp.controllers.grid.admin.systemInfo.InfoGridCellProvider');
     $infoGridCellProvider = new InfoGridCellProvider();
     // setting name.
     $this->addColumn(new GridColumn('name', 'admin.systemInfo.settingName', null, null, $infoGridCellProvider, array('width' => 20)));
     // setting value.
     $this->addColumn(new GridColumn('value', 'admin.systemInfo.settingValue', null, null, $infoGridCellProvider));
     $this->_configData = Config::getData();
 }
 /**
  * Configure the grid
  * @param $request PKPRequest
  */
 function initialize($request)
 {
     parent::initialize($request);
     $this->setTitle('submission.chapters');
     AppLocale::requireComponents(LOCALE_COMPONENT_APP_DEFAULT, LOCALE_COMPONENT_PKP_DEFAULT, LOCALE_COMPONENT_APP_SUBMISSION);
     if (!$this->getReadOnly()) {
         // Grid actions
         $router = $request->getRouter();
         $actionArgs = $this->getRequestArgs();
         $this->addAction(new LinkAction('addChapter', new AjaxModal($router->url($request, null, null, 'addChapter', null, $actionArgs), __('submission.chapter.addChapter'), 'modal_add_item'), __('submission.chapter.addChapter'), 'add_item'));
     }
     // Columns
     // reuse the cell providers for the AuthorGrid
     $cellProvider = new PKPAuthorGridCellProvider();
     $this->addColumn(new GridColumn('name', 'author.users.contributor.name', null, null, $cellProvider, array('width' => 50, 'alignment' => COLUMN_ALIGNMENT_LEFT)));
     $this->addColumn(new GridColumn('email', 'author.users.contributor.email', null, null, $cellProvider));
     $this->addColumn(new GridColumn('role', 'author.users.contributor.role', null, null, $cellProvider));
 }
 function initialize(&$request)
 {
     parent::initialize($request);
     // Basic grid configuration
     $this->setId('copyeditingFiles');
     $this->setTitle('submission.copyediting');
     Locale::requireComponents(array(LOCALE_COMPONENT_PKP_COMMON, LOCALE_COMPONENT_APPLICATION_COMMON, LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_OMP_EDITOR, LOCALE_COMPONENT_OMP_SUBMISSION));
     // Grab the copyediting files to display as categories
     import('classes.monograph.MonographFile');
     $submissionFileDao =& DAORegistry::getDAO('SubmissionFileDAO');
     /* @var $submissionFileDao SubmissionFileDAO */
     $monograph =& $this->getAuthorizedContextObject(ASSOC_TYPE_MONOGRAPH);
     $monographFiles =& $submissionFileDao->getLatestRevisions($monograph->getId(), MONOGRAPH_FILE_COPYEDIT);
     $rowData = array();
     foreach ($monographFiles as $monographFile) {
         $rowData[$monographFile->getFileId()] = $monographFile;
     }
     $this->setGridDataElements($rowData);
     // Grid actions
     // Action to add a file -- Adds a category row for the file
     $router =& $request->getRouter();
     $this->addAction(new LegacyLinkAction('uploadFile', LINK_ACTION_MODE_MODAL, LINK_ACTION_TYPE_APPEND, $router->url($request, null, 'grid.files.submission.CopyeditingSubmissionFilesGridHandler', 'addFile', null, array('monographId' => $monograph->getId(), 'fileStage' => MONOGRAPH_FILE_COPYEDIT)), 'submission.addFile', null, 'add'));
     // Action to add a user -- Adds the user as a subcategory to the files selected in its modal
     // FIXME: Not all roles should see this action. Bug #5975.
     $this->addAction(new LegacyLinkAction('addUser', LINK_ACTION_MODE_MODAL, LINK_ACTION_TYPE_REPLACE, $router->url($request, null, null, 'addUser', null, array('monographId' => $monograph->getId())), 'editor.monograph.copyediting.addUser', null, 'add'));
     // Grid Columns
     $cellProvider = new CopyeditingFilesGridCellProvider();
     // Add a column for the file's label
     $this->addColumn(new GridColumn('name', 'common.file', null, 'controllers/grid/gridCell.tpl', $cellProvider));
     // Add role columns -- One of each user group currently assigned to the stage:
     $signoffDao =& DAORegistry::getDAO('SignoffDAO');
     /* @var $signoffDao SignoffDAO */
     $signoffs =& $signoffDao->getAllBySymbolic('SIGNOFF_STAGE', ASSOC_TYPE_MONOGRAPH, $monograph->getId(), null, WORKFLOW_STAGE_ID_EDITING);
     $userGroupDao =& DAORegistry::getDAO('UserGroupDAO');
     $userGroups = array();
     while ($signoff =& $signoffs->next()) {
         $userGroup =& $userGroupDao->getById($signoff->getUserGroupId());
         $userGroups[$userGroup->getId()] = $userGroup->getLocalizedAbbrev();
         unset($signoff, $userGroup);
     }
     foreach ($userGroups as $userGroupId => $userGroupAbbrev) {
         $this->addColumn(new GridColumn($userGroupId, null, $userGroupAbbrev, 'controllers/grid/common/cell/statusCell.tpl', $cellProvider));
     }
 }
 function initialize($request)
 {
     parent::initialize($request);
     AppLocale::requireComponents(LOCALE_COMPONENT_PKP_MANAGER, LOCALE_COMPONENT_APP_MANAGER);
     // Basic grid configuration
     $this->setTitle('grid.content.navigation.footer');
     // Set the no items row text
     $this->setEmptyRowText('grid.content.navigation.footer.noneExist');
     $context = $request->getContext();
     $this->setContext($context);
     // Columns
     import('lib.pkp.controllers.grid.content.navigation.FooterGridCellProvider');
     $footerLinksGridCellProvider = new FooterGridCellProvider();
     $gridColumn = new GridColumn('title', 'common.title', null, 'controllers/grid/gridCell.tpl', $footerLinksGridCellProvider, array());
     $gridColumn->addFlag('html', true);
     $this->addColumn($gridColumn);
     // Add grid action.
     $router = $request->getRouter();
     import('lib.pkp.classes.linkAction.request.AjaxModal');
     $this->addAction(new LinkAction('addFooterCategoryLink', new AjaxModal($router->url($request, null, null, 'addFooterCategory', null, null), __('grid.content.navigation.footer.addCategory'), 'modal_add_item', true), __('grid.content.navigation.footer.addCategory'), 'add_item'));
 }
 /**
  * @see GridHandler::initialize($request, $args)
  */
 function initialize($request, $args)
 {
     parent::initialize($request);
     $dataProvider = $this->getDataProvider();
     $user = $request->getUser();
     $dataProvider->setUserId($user->getId());
     AppLocale::requireComponents(LOCALE_COMPONENT_PKP_COMMON, LOCALE_COMPONENT_APP_COMMON, LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_APP_SUBMISSION);
     $addSignoffFileLinkAction = $dataProvider->getAddSignoffFile($request);
     if ($addSignoffFileLinkAction) {
         $this->addAction($addSignoffFileLinkAction);
     }
     // The file name column is common to all file grid types.
     import('lib.pkp.controllers.grid.files.FileNameGridColumn');
     $this->addColumn(new FileNameGridColumn(true, WORKFLOW_STAGE_ID_PRODUCTION));
     import('lib.pkp.controllers.grid.files.fileSignoff.AuthorSignoffFilesGridCellProvider');
     $submission = $this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION);
     $cellProvider = new AuthorSignoffFilesGridCellProvider($submission, WORKFLOW_STAGE_ID_PRODUCTION);
     // Add a column to show whether the author uploaded a signoff.
     $this->addColumn(new GridColumn('response', 'submission.response', null, 'controllers/grid/gridCell.tpl', $cellProvider));
     // Set the grid title.
     $this->setTitle('submission.pageProofs');
 }
 /**
  * Configure the grid
  * @param $request PKPRequest
  */
 function initialize($request)
 {
     parent::initialize($request);
     // Retrieve the authorized submission.
     $this->setSubmission($this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION));
     // Load submission-specific translations
     AppLocale::requireComponents(LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_PKP_EDITOR, LOCALE_COMPONENT_PKP_USER, LOCALE_COMPONENT_PKP_DEFAULT);
     $this->setTitle('monograph.publicationFormats');
     // Load submission-specific translations
     AppLocale::requireComponents(LOCALE_COMPONENT_APP_SUBMISSION, LOCALE_COMPONENT_APP_DEFAULT, LOCALE_COMPONENT_APP_EDITOR);
     // Grid actions
     $router = $request->getRouter();
     $actionArgs = $this->getRequestArgs();
     $this->addAction(new LinkAction('addFormat', new AjaxModal($router->url($request, null, null, 'addFormat', null, $actionArgs), __('grid.action.addFormat'), 'modal_add_item'), __('grid.action.addFormat'), 'add_item'));
     // Columns
     $submission = $this->getSubmission();
     import('controllers.grid.catalogEntry.PublicationFormatGridCellProvider');
     $this->_cellProvider = new PublicationFormatGridCellProvider($submission->getId());
     $this->addColumn(new GridColumn('name', 'common.name', null, null, $this->_cellProvider, array('width' => 60, 'anyhtml' => true)));
     $this->addColumn(new GridColumn('isComplete', 'common.complete', null, 'controllers/grid/common/cell/statusCell.tpl', $this->_cellProvider, array('width' => 20)));
     $this->addColumn(new GridColumn('isAvailable', 'grid.catalogEntry.availability', null, 'controllers/grid/common/cell/statusCell.tpl', $this->_cellProvider, array('width' => 20)));
 }
 /**
  * @copydoc PKPHandler::initialize()
  */
 function initialize($request)
 {
     parent::initialize($request);
     // Load translations.
     AppLocale::requireComponents(LOCALE_COMPONENT_APP_SUBMISSION, LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_APP_EDITOR, LOCALE_COMPONENT_PKP_EDITOR, LOCALE_COMPONENT_PKP_COMMON, LOCALE_COMPONENT_APP_COMMON);
     // Add grid actions
     $capabilities = $this->getCapabilities();
     $dataProvider = $this->getDataProvider();
     if ($capabilities->canManage()) {
         $this->addAction($dataProvider->getSelectAction($request));
     }
     if ($capabilities->canAdd()) {
         assert(isset($dataProvider));
         $this->addAction($dataProvider->getAddFileAction($request));
     }
     // Test whether the tar binary is available for the export to work, if so, add 'download all' grid action
     if ($capabilities->canDownloadAll() && $this->hasGridDataElements($request)) {
         $submission = $this->getSubmission();
         $stageId = $this->getStageId();
         $linkParams = array('submissionId' => $submission->getId(), 'stageId' => $stageId);
         $files = $this->getFilesToDownload($request);
         $this->addAction($capabilities->getDownloadAllAction($request, $files, $linkParams), GRID_ACTION_POSITION_BELOW);
     }
     // The file name column is common to all file grid types.
     $this->addColumn(new FileNameGridColumn($capabilities->canViewNotes(), $this->getStageId()));
     // The file list grid layout has an additional file genre column.
     import('lib.pkp.controllers.grid.files.fileList.FileGenreGridColumn');
     $this->addColumn(new FileGenreGridColumn());
     // Set the no items row text
     $this->setEmptyRowText('grid.noFiles');
 }