16 import(
'lib.pkp.classes.controllers.grid.GridHandler');
18 import(
'lib.pkp.controllers.grid.settings.reviewForms.ReviewFormGridRow');
20 import(
'lib.pkp.controllers.grid.settings.reviewForms.form.ReviewFormForm');
21 import(
'lib.pkp.controllers.grid.settings.reviewForms.form.ReviewFormElements');
23 import(
'lib.pkp.controllers.grid.settings.reviewForms.form.PreviewReviewForm');
30 parent::__construct();
32 array(ROLE_ID_MANAGER),
33 array(
'fetchGrid',
'fetchRow',
'createReviewForm',
'editReviewForm',
'updateReviewForm',
34 'reviewFormBasics',
'reviewFormElements',
'copyReviewForm',
35 'reviewFormPreview',
'activateReviewForm',
'deactivateReviewForm',
'deleteReviewForm',
48 parent::initialize($request, $args);
52 LOCALE_COMPONENT_APP_ADMIN,
53 LOCALE_COMPONENT_APP_MANAGER,
54 LOCALE_COMPONENT_PKP_USER,
55 LOCALE_COMPONENT_PKP_MANAGER
59 $this->
setTitle(
'manager.reviewForms');
62 $router = $request->getRouter();
64 import(
'lib.pkp.classes.linkAction.request.AjaxModal');
69 $router->url($request,
null,
null,
'createReviewForm',
null,
null),
70 __(
'manager.reviewForms.create'),
74 __(
'manager.reviewForms.create'),
81 import(
'lib.pkp.controllers.grid.settings.reviewForms.ReviewFormGridCellProvider');
88 'manager.reviewForms.title',
91 $reviewFormGridCellProvider
99 'manager.reviewForms.inReview',
102 $reviewFormGridCellProvider
110 'manager.reviewForms.completed',
113 $reviewFormGridCellProvider
124 'controllers/grid/common/cell/selectStatusCell.tpl',
125 $reviewFormGridCellProvider
133 function authorize($request, &$args, $roleAssignments) {
134 import(
'lib.pkp.classes.security.authorization.PolicySet');
135 $rolePolicy =
new PolicySet(COMBINING_PERMIT_OVERRIDES);
137 import(
'lib.pkp.classes.security.authorization.RoleBasedHandlerOperationPolicy');
138 foreach($roleAssignments as $role => $operations) {
143 return parent::authorize($request, $args, $roleAssignments);
160 protected function loadData($request, $filter =
null) {
163 $context = $request->getContext();
166 return $reviewForms->toAssociativeArray();
174 $gridDataElement->setSequence($newSequence);
175 $reviewFormDao->updateObject($gridDataElement);
182 return $reviewForm->getSequence();
189 import(
'lib.pkp.classes.controllers.grid.feature.OrderGridItemsFeature');
205 $reviewFormId = (int) $request->getUserVar(
'reviewFormId');
208 $context = $request->getContext();
215 $previewReviewForm->initData();
216 return new JSONMessage(
true, $previewReviewForm->fetch($request));
228 $reviewFormForm->initData();
229 return new JSONMessage(
true, $reviewFormForm->fetch($request));
240 $context = $request->getContext();
241 $reviewForm = $reviewFormDao->getById(
242 $request->getUserVar(
'rowId'),
248 $templateMgr->assign(array(
249 'preview' => $request->getUserVar(
'preview'),
250 'reviewFormId' => $reviewForm->getId(),
251 'canEdit' => $reviewForm->getIncompleteCount() == 0 && $reviewForm->getCompleteCount() == 0,
253 return new JSONMessage(
true, $templateMgr->fetch(
'controllers/grid/settings/reviewForms/editReviewForm.tpl'));
264 $reviewFormId = (int) $request->getUserVar(
'reviewFormId');
268 $reviewFormForm->initData();
269 return new JSONMessage(
true, $reviewFormForm->fetch($request));
281 $dispatcher = $request->getDispatcher();
282 return $templateMgr->fetchAjax(
283 'reviewFormElementsGridContainer',
285 $request, ROUTE_COMPONENT,
null,
286 'grid.settings.reviewForms.ReviewFormElementsGridHandler',
'fetchGrid',
null,
287 array(
'reviewFormId' => (
int) $request->getUserVar(
'reviewFormId'))
300 $reviewFormId = (int) $request->getUserVar(
'reviewFormId');
303 $context = $request->getContext();
310 $reviewFormForm =
new ReviewFormForm(!isset($reviewFormId) || empty($reviewFormId) ?
null : $reviewFormId);
311 $reviewFormForm->readInputData();
313 if ($reviewFormForm->validate()) {
314 $reviewFormForm->execute();
318 $user = $request->getUser();
319 $notificationMgr->createTrivialNotification($user->getId());
336 $reviewFormId = (int) $request->getUserVar(
'rowId');
339 $context = $request->getContext();
345 if ($request->checkCSRF() && isset($reviewForm)) {
346 $reviewForm->setActive(0);
347 $reviewForm->setSequence(REALLY_BIG_NUMBER);
348 $newReviewFormId = $reviewFormDao->insertObject($reviewForm);
352 $reviewFormElements = $reviewFormElementDao->getByReviewFormId($reviewFormId);
353 while ($reviewFormElement = $reviewFormElements->next()) {
354 $reviewFormElement->setReviewFormId($newReviewFormId);
355 $reviewFormElement->setSequence(REALLY_BIG_NUMBER);
356 $reviewFormElementDao->insertObject($reviewFormElement);
357 $reviewFormElementDao->resequenceReviewFormElements($newReviewFormId);
362 $user = $request->getUser();
363 $notificationMgr->createTrivialNotification($user->getId());
379 $reviewFormId = (int) $request->getUserVar(
'reviewFormKey');
382 $context = $request->getContext();
388 if ($request->checkCSRF() && isset($reviewForm) && !$reviewForm->getActive()) {
389 $reviewForm->setActive(1);
390 $reviewFormDao->updateObject($reviewForm);
394 $user = $request->getUser();
395 $notificationMgr->createTrivialNotification($user->getId());
413 $reviewFormId = (int) $request->getUserVar(
'reviewFormKey');
416 $context = $request->getContext();
422 if ($request->checkCSRF() && isset($reviewForm) && $reviewForm->getActive()) {
423 $reviewForm->setActive(0);
424 $reviewFormDao->updateObject($reviewForm);
428 $user = $request->getUser();
429 $notificationMgr->createTrivialNotification($user->getId());
445 $reviewFormId = (int) $request->getUserVar(
'rowId');
448 $context = $request->getContext();
454 if ($request->checkCSRF() && isset($reviewForm) && $reviewForm->getCompleteCount() == 0 && $reviewForm->getIncompleteCount() == 0) {
456 $reviewAssignments = $reviewAssignmentDao->getByReviewFormId($reviewFormId);
458 foreach ($reviewAssignments as $reviewAssignment) {
459 $reviewAssignment->setReviewFormId(
null);
460 $reviewAssignmentDao->updateObject($reviewAssignment);
463 $reviewFormDao->deleteById($reviewFormId, $context->getId());
467 $user = $request->getUser();
468 $notificationMgr->createTrivialNotification($user->getId());