00001 <?php
00002
00015 import('classes.handler.Handler');
00016
00017
00018 import('lib.pkp.classes.linkAction.LinkAction');
00019 import('lib.pkp.classes.linkAction.request.AjaxModal');
00020
00021 class PublicationFormatHandler extends Handler {
00025 function PublicationFormatHandler() {
00026 parent::Handler();
00027
00028 $this->addRoleAssignment(
00029 array(ROLE_ID_SERIES_EDITOR, ROLE_ID_PRESS_MANAGER, ROLE_ID_PRESS_ASSISTANT),
00030 array('fetchPublicationFormat')
00031 );
00032 }
00033
00034
00035
00036
00037
00041 function authorize(&$request, $args, $roleAssignments) {
00042
00043 import('classes.security.authorization.internal.PublicationFormatRequiredPolicy');
00044 $publicationFormatPolicy = new PublicationFormatRequiredPolicy($request, $args);
00045
00046
00047 import('classes.security.authorization.OmpWorkflowStageAccessPolicy');
00048 $stagePolicy = new OmpWorkflowStageAccessPolicy($request, $args, $roleAssignments, 'monographId', WORKFLOW_STAGE_ID_PRODUCTION);
00049
00050
00051 $stagePolicy->addPolicy($publicationFormatPolicy);
00052
00053
00054 $this->addPolicy($stagePolicy);
00055 return parent::authorize($request, $args, $roleAssignments);
00056 }
00057
00061 function initialize(&$request, $args) {
00062 $this->setupTemplate();
00063 }
00064
00069 function setupTemplate() {
00070 parent::setupTemplate();
00071 AppLocale::requireComponents(LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_OMP_SUBMISSION, LOCALE_COMPONENT_OMP_EDITOR);
00072
00073 $templateMgr =& TemplateManager::getManager();
00074
00075 $monograph =& $this->getAuthorizedContextObject(ASSOC_TYPE_MONOGRAPH);
00076 $stageId = $this->getAuthorizedContextObject(ASSOC_TYPE_WORKFLOW_STAGE);
00077 $publicationFormat =& $this->getAuthorizedContextObject(ASSOC_TYPE_PUBLICATION_FORMAT);
00078
00079
00080 $templateMgr->assign_by_ref('monograph', $monograph);
00081 $templateMgr->assign('stageId', $stageId);
00082 $templateMgr->assign_by_ref('publicationFormat', $publicationFormat);
00083 }
00084
00085
00086
00087
00088
00094 function fetchPublicationFormat($args, $request) {
00095
00096 $templateMgr =& TemplateManager::getManager();
00097 return $templateMgr->fetchJson('workflow/publicationFormat.tpl');
00098 }
00099 }
00100
00101 ?>