16 import(
'lib.pkp.classes.controllers.grid.GridHandler');
17 import(
'lib.pkp.controllers.grid.announcements.form.AnnouncementTypeForm');
24 parent::__construct();
28 'fetchGrid',
'fetchRow',
29 'addAnnouncementType',
'editAnnouncementType',
30 'updateAnnouncementType',
31 'deleteAnnouncementType'
42 function authorize($request, &$args, $roleAssignments) {
43 import(
'lib.pkp.classes.security.authorization.ContextAccessPolicy');
45 $context = $request->getContext();
47 $announcementTypeId = $request->getUserVar(
'announcementTypeId');
48 if ($announcementTypeId) {
51 $announcementType = $announcementTypeDao->getById($announcementTypeId);
52 if (!$announcementType || $announcementType->getAssocType() != $context->getAssocType() || $announcementType->getAssocId() != $context->getId()) {
56 return parent::authorize($request, $args, $roleAssignments);
63 parent::initialize($request, $args);
66 $this->
setTitle(
'manager.announcementTypes');
71 $context = $request->getContext();
74 import(
'lib.pkp.controllers.grid.announcements.AnnouncementTypeGridCellProvider');
81 $announcementTypeCellProvider,
90 $router = $request->getRouter();
92 import(
'lib.pkp.classes.linkAction.request.AjaxModal');
95 'addAnnouncementType',
97 $router->url($request,
null,
null,
'addAnnouncementType',
null,
null),
98 __(
'grid.action.addAnnouncementType'),
102 __(
'grid.action.addAnnouncementType'),
112 $context = $request->getContext();
114 return $announcementTypeDao->getByAssoc($context->getAssocType(), $context->getId());
121 import(
'lib.pkp.controllers.grid.announcements.AnnouncementTypeGridRow');
145 $announcementTypeId = (int)$request->getUserVar(
'announcementTypeId');
146 $context = $request->getContext();
147 $contextId = $context->getId();
150 $announcementTypeForm->initData();
152 return new JSONMessage(
true, $announcementTypeForm->fetch($request));
164 $announcementTypeId = $request->getUserVar(
'announcementTypeId');
165 $context = $request->getContext();
166 $contextId = $context->getId();
170 $announcementTypeForm->readInputData();
172 if ($announcementTypeForm->validate()) {
173 $announcementTypeForm->execute();
175 if ($announcementTypeId) {
177 $notificationLocaleKey =
'notification.editedAnnouncementType';
180 $notificationLocaleKey =
'notification.addedAnnouncementType';
185 $user = $request->getUser();
186 $notificationManager->createTrivialNotification($user->getId(), NOTIFICATION_TYPE_SUCCESS, array(
'contents' => __($notificationLocaleKey)));
202 $announcementTypeId = (int) $request->getUserVar(
'announcementTypeId');
203 $context = $request->getContext();
206 $announcementType = $announcementTypeDao->getById($announcementTypeId, $context->getAssocType(), $context->getId());
207 if ($announcementType && $request->checkCSRF()) {
208 $announcementTypeDao->deleteObject($announcementType);
212 $user = $request->getUser();
213 $notificationManager->createTrivialNotification($user->getId(), NOTIFICATION_TYPE_SUCCESS, array(
'contents' => __(
'notification.removedAnnouncementType')));