16 import(
'lib.pkp.classes.controllers.grid.GridHandler');
17 import(
'lib.pkp.controllers.grid.settings.reviewForms.ReviewFormElementGridRow');
18 import(
'lib.pkp.controllers.grid.settings.reviewForms.form.ReviewFormElementForm');
28 parent::__construct();
31 array(
'fetchGrid',
'fetchRow',
'saveSequence',
32 'createReviewFormElement',
'editReviewFormElement',
'deleteReviewFormElement',
'updateReviewFormElement')
42 function authorize($request, &$args, $roleAssignments) {
43 import(
'lib.pkp.classes.security.authorization.PolicySet');
44 $rolePolicy =
new PolicySet(COMBINING_PERMIT_OVERRIDES);
46 import(
'lib.pkp.classes.security.authorization.RoleBasedHandlerOperationPolicy');
47 foreach($roleAssignments as $role => $operations) {
52 $this->reviewFormId = (int) $request->getUserVar(
'reviewFormId');
56 return parent::authorize($request, $args, $roleAssignments);
63 parent::initialize($request, $args);
67 LOCALE_COMPONENT_APP_ADMIN,
68 LOCALE_COMPONENT_APP_MANAGER,
69 LOCALE_COMPONENT_APP_COMMON,
70 LOCALE_COMPONENT_PKP_MANAGER,
71 LOCALE_COMPONENT_PKP_USER
75 $router = $request->getRouter();
77 import(
'lib.pkp.classes.linkAction.request.AjaxModal');
82 'createReviewFormElement',
84 $router->url($request,
null,
null,
'createReviewFormElement',
null, array(
'reviewFormId' => $this->reviewFormId)),
85 __(
'manager.reviewFormElements.create'),
89 __(
'manager.reviewFormElements.create'),
98 import(
'lib.pkp.controllers.grid.settings.reviewForms.ReviewFormElementGridCellProvider');
105 'manager.reviewFormElements.question',
108 $reviewFormElementGridCellProvider,
109 array(
'html' =>
true,
'maxLength' => 220)
114 $this->
setTitle(
'manager.reviewFormElements');
124 import(
'lib.pkp.classes.controllers.grid.feature.OrderGridItemsFeature');
139 protected function loadData($request, $filter =
null) {
143 $reviewFormElements = $reviewFormElementDao->getByReviewFormId($this->reviewFormId,
null);
145 return $reviewFormElements->toAssociativeArray();
152 return array_merge(array(
'reviewFormId' => $this->reviewFormId), parent::getRequestArgs());
159 return $gridDataElement->getSequence();
167 $gridDataElement->setSequence($newSequence);
168 $reviewFormElementDao->updateObject($gridDataElement);
184 $reviewFormElementForm->initData();
185 return new JSONMessage(
true, $reviewFormElementForm->fetch($request));
196 $reviewFormElementId = (int) $request->getUserVar(
'rowId');
200 $reviewFormElementForm->initData();
201 return new JSONMessage(
true, $reviewFormElementForm->fetch($request));
211 $reviewFormElementId = (int) $request->getUserVar(
'reviewFormElementId');
213 $context = $request->getContext();
219 if (!$reviewFormDao->unusedReviewFormExists($this->reviewFormId,
Application::getContextAssocType(), $context->getId()) || ($reviewFormElementId && !$reviewFormElementDao->reviewFormElementExists($reviewFormElementId, $this->reviewFormId))) {
220 fatalError(
'Invalid review form information!');
223 import(
'lib.pkp.controllers.grid.settings.reviewForms.form.ReviewFormElementForm');
225 $reviewFormElementForm->readInputData();
227 if ($reviewFormElementForm->validate()) {
228 $reviewFormElementId = $reviewFormElementForm->execute();
232 $user = $request->getUser();
233 $notificationMgr->createTrivialNotification($user->getId());
248 $reviewFormElementId = (int) $request->getUserVar(
'rowId');
250 $context = $request->getContext();
255 $reviewFormElementDao->deleteById($reviewFormElementId);