Open Preprint Systems  3.3.0
SettingsHandler.inc.php
1 <?php
2 
16 // Import the base ManagementHandler.
17 import('lib.pkp.pages.management.ManagementHandler');
18 
23  function __construct() {
24  parent::__construct();
25  $this->addRoleAssignment(
26  array(ROLE_ID_SITE_ADMIN),
27  array(
28  'access',
29  )
30  );
31  $this->addRoleAssignment(
32  ROLE_ID_MANAGER,
33  array(
34  'settings',
35  )
36  );
37  }
38 
45  function workflow($args, $request) {
46  parent::workflow($args, $request);
47  $templateMgr = TemplateManager::getManager($request);
48  $context = $request->getContext();
49  $dispatcher = $request->getDispatcher();
50 
51  $contextApiUrl = $dispatcher->url($request, ROUTE_API, $context->getPath(), 'contexts/' . $context->getId());
52  $apiUrl = $dispatcher->url($request, ROUTE_API, $context->getPath(), 'contexts/' . $context->getId());
53 
54  $supportedFormLocales = $context->getSupportedFormLocales();
55  $localeNames = AppLocale::getAllLocales();
56  $locales = array_map(function($localeKey) use ($localeNames) {
57  return ['key' => $localeKey, 'label' => $localeNames[$localeKey]];
58  }, $supportedFormLocales);
59 
60  $screeningForm = new \APP\components\forms\context\ScreeningForm($apiUrl, $locales, $context);
61 
62  // Add forms to the existing settings data
63  $settingsData = $templateMgr->getTemplateVars('settingsData');
64  $settingsData['components'][$screeningForm->id] = $screeningForm->getConfig();
65 
66  $templateMgr->assign('settingsData', $settingsData);
67  TemplateManager::getManager($request)->display('management/workflow.tpl');
68  }
69 
76  function distribution($args, $request) {
77  parent::distribution($args, $request);
78  $templateMgr = TemplateManager::getManager($request);
79  $context = $request->getContext();
80  $dispatcher = $request->getDispatcher();
81 
82  $apiUrl = $dispatcher->url($request, ROUTE_API, $context->getPath(), 'contexts/' . $context->getId());
83 
84  $supportedFormLocales = $context->getSupportedFormLocales();
85  $localeNames = AppLocale::getAllLocales();
86  $locales = array_map(function($localeKey) use ($localeNames) {
87  return ['key' => $localeKey, 'label' => $localeNames[$localeKey]];
88  }, $supportedFormLocales);
89 
90  $accessForm = new \APP\components\forms\context\AccessForm($apiUrl, $locales, $context);
91 
92  // Add forms to the existing settings data
93  $components = $templateMgr->getState('components');
94  $components[$accessForm->id] = $accessForm->getConfig();
95  $templateMgr->setState(['components' => $components]);
96 
97  $templateMgr->display('management/distribution.tpl');
98  }
99 }
100 
PKPHandler\addRoleAssignment
addRoleAssignment($roleIds, $operations)
Definition: PKPHandler.inc.php:213
PKPLocale\getAllLocales
static & getAllLocales()
Definition: PKPLocale.inc.php:537
SettingsHandler\__construct
__construct()
Definition: SettingsHandler.inc.php:23
SettingsHandler
Handle requests for settings pages.
Definition: SettingsHandler.inc.php:19
SettingsHandler\workflow
workflow($args, $request)
Definition: SettingsHandler.inc.php:45
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1226
SettingsHandler\distribution
distribution($args, $request)
Definition: SettingsHandler.inc.php:76
ManagementHandler
Base class for all management page handlers.
Definition: ManagementHandler.inc.php:19