• Main Page
  • Modules
  • Classes
  • Files
  • File List

controllers/grid/files/copyedit/CopyeditingFilesGridHandler.inc.php

00001 <?php
00002 
00015 // import grid signoff files grid base classes
00016 import('controllers.grid.files.signoff.SignoffFilesGridHandler');
00017 
00018 // Import monograph file class which contains the MONOGRAPH_FILE_* constants.
00019 import('classes.monograph.MonographFile');
00020 
00021 // Import MONOGRAPH_EMAIL_* constants.
00022 import('classes.mail.MonographMailTemplate');
00023 
00024 class CopyeditingFilesGridHandler extends SignoffFilesGridHandler {
00028    function CopyeditingFilesGridHandler() {
00029       parent::SignoffFilesGridHandler(
00030          WORKFLOW_STAGE_ID_EDITING,
00031          MONOGRAPH_FILE_COPYEDIT,
00032          'SIGNOFF_COPYEDITING',
00033          MONOGRAPH_EMAIL_COPYEDIT_NOTIFY_AUTHOR
00034       );
00035 
00036       $this->addRoleAssignment(
00037          array(ROLE_ID_PRESS_MANAGER, ROLE_ID_SERIES_EDITOR, ROLE_ID_PRESS_ASSISTANT),
00038          array(
00039             'approveCopyedit'
00040          )
00041       );
00042    }
00043 
00047    function authorize($request, $args, $roleAssignments) {
00048       // Approve copyediting file needs monograph access policy.
00049       $router =& $request->getRouter();
00050       if ($router->getRequestedOp($request) == 'approveCopyedit') {
00051          import('classes.security.authorization.OmpMonographFileAccessPolicy');
00052          $this->addPolicy(new OmpMonographFileAccessPolicy($request, $args, $roleAssignments, MONOGRAPH_FILE_ACCESS_MODIFY));
00053       }
00054 
00055       return parent::authorize($request, $args, $roleAssignments);
00056    }
00057 
00058 
00063    function initialize(&$request) {
00064       parent::initialize($request);
00065 
00066       $this->setTitle('submission.copyediting');
00067       $this->setInstructions('editor.monograph.editorial.copyeditingDescription');
00068 
00069       // Basic grid configuration
00070       $this->setId('copyeditingFiles');
00071    }
00072 
00073 
00074    //
00075    // Public methods
00076    //
00083    function approveCopyedit($args, &$request) {
00084       $monographFile =& $this->getAuthorizedContextObject(ASSOC_TYPE_MONOGRAPH_FILE);
00085       $monograph =& $this->getAuthorizedContextObject(ASSOC_TYPE_MONOGRAPH);
00086 
00087       if ($monographFile->getViewable()) {
00088 
00089          // No longer expose the file to be sent to next stage.
00090          $monographFile->setViewable(false);
00091       } else {
00092 
00093          // Expose the file.
00094          $monographFile->setViewable(true);
00095       }
00096 
00097       $submissionFileDao =& DAORegistry::getDAO('SubmissionFileDAO');
00098       $submissionFileDao->updateObject($monographFile);
00099 
00100       return DAO::getDataChangedEvent($monographFile->getId());
00101    }
00102 }
00103 
00104 ?>

Generated on Mon Sep 17 2012 13:58:55 for Open Monograph Press by  doxygen 1.7.1