Open Monograph Press  3.3.0
ManageCatalogHandler.inc.php
1 <?php
2 
16 import('classes.handler.Handler');
17 
19 
21  var $_isBackendPage = true;
22 
26  function __construct() {
27  parent::__construct();
28 
29  $this->addRoleAssignment(
30  array(ROLE_ID_SUB_EDITOR, ROLE_ID_MANAGER),
31  array('index')
32  );
33  }
34 
35 
36  //
37  // Implement template methods from PKPHandler
38  //
45  function authorize($request, &$args, $roleAssignments) {
46  import('lib.pkp.classes.security.authorization.PKPSiteAccessPolicy');
47  $this->addPolicy(new PKPSiteAccessPolicy($request, null, $roleAssignments));
48  return parent::authorize($request, $args, $roleAssignments);
49  }
50 
54  function initialize($request) {
55  $this->setupTemplate($request);
56 
57  // Call parent method.
58  parent::initialize($request);
59  }
60 
61 
62  //
63  // Public handler methods
64  //
71  function index($args, $request) {
72  AppLocale::requireComponents(LOCALE_COMPONENT_APP_SUBMISSION);
73  $context = $request->getContext();
74 
75  // Catalog list
76  import('lib.pkp.classes.submission.PKPSubmissionDAO'); // ORDERBY_DATE_PUBLISHED constants
77  list($catalogSortBy, $catalogSortDir) = explode('-', $context->getData('catalogSortOption'));
78  $catalogSortBy = empty($catalogSortBy) ? ORDERBY_DATE_PUBLISHED : $catalogSortBy;
79  $catalogSortDir = $catalogSortDir == SORT_DIRECTION_ASC ? 'ASC' : 'DESC';
80  $catalogList = new \APP\components\listPanels\CatalogListPanel(
81  'catalog',
82  __('submission.list.monographs'),
83  [
84  'apiUrl' => $request->getDispatcher()->url(
85  $request,
86  ROUTE_API,
87  $context->getPath(),
88  '_submissions'
89  ),
90  'catalogSortBy' => $catalogSortBy,
91  'catalogSortDir' => $catalogSortDir,
92  'getParams' => [
93  'status' => STATUS_PUBLISHED,
94  'orderByFeatured' => true,
95  'orderBy' => $catalogSortBy,
96  'orderDirection' => $catalogSortDir,
97  ],
98  ]
99  );
100 
101  $submissionService = \Services::get('submission');
102  $params = array_merge($catalogList->getParams, [
103  'count' => $catalogList->count,
104  'contextId' => $context->getId(),
105  ]);
106  $submissionsIterator = $submissionService->getMany($params);
107  $items = [];
108  foreach ($submissionsIterator as $submission) {
109  $items[] = $submissionService->getBackendListProperties($submission, ['request' => $request]);
110  }
111  $catalogList->set([
112  'items' => $items,
113  'itemsMax' => $submissionService->getMax($params),
114  ]);
115 
116  $templateMgr = TemplateManager::getManager($request);
117  $templateMgr->setState([
118  'components' => [
119  'catalog' => $catalogList->getConfig()
120  ]
121  ]);
122  return $templateMgr->display('manageCatalog/index.tpl');
123  }
124 }
PKPHandler\addRoleAssignment
addRoleAssignment($roleIds, $operations)
Definition: PKPHandler.inc.php:213
ManageCatalogHandler
Handle requests for catalog management.
Definition: ManageCatalogHandler.inc.php:18
AppLocale\requireComponents
static requireComponents()
Definition: env1/MockAppLocale.inc.php:56
ManageCatalogHandler\index
index($args, $request)
Definition: ManageCatalogHandler.inc.php:71
ManageCatalogHandler\initialize
initialize($request)
Definition: ManageCatalogHandler.inc.php:54
ManageCatalogHandler\$_isBackendPage
$_isBackendPage
Definition: ManageCatalogHandler.inc.php:21
ManageCatalogHandler\authorize
authorize($request, &$args, $roleAssignments)
Definition: ManageCatalogHandler.inc.php:45
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
PKPHandler\setupTemplate
setupTemplate($request)
Definition: PKPHandler.inc.php:466
ManageCatalogHandler\__construct
__construct()
Definition: ManageCatalogHandler.inc.php:26
PKPHandler\addPolicy
addPolicy($authorizationPolicy, $addToTop=false)
Definition: PKPHandler.inc.php:157
Handler
Base request handler application class.
Definition: Handler.inc.php:18
PKPSiteAccessPolicy
Class to that makes sure that a user is logged in.
Definition: PKPSiteAccessPolicy.inc.php:20
PKPServices\get
static get($service)
Definition: PKPServices.inc.php:49