00001 <?php
00002
00015
00016 import('controllers.grid.files.signoff.SignoffFilesGridHandler');
00017
00018
00019 import('classes.monograph.MonographFile');
00020
00021
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
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
00070 $this->setId('copyeditingFiles');
00071 }
00072
00073
00074
00075
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
00090 $monographFile->setViewable(false);
00091 } else {
00092
00093
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 ?>