Open Journal Systems  3.3.0
InstitutionalSubscriptionsGridHandler.inc.php
1 <?php
2 
16 import('controllers.grid.subscriptions.SubscriptionsGridHandler');
17 
18 import('controllers.grid.subscriptions.InstitutionalSubscriptionForm');
19 
24  function initialize($request, $args = null) {
25  parent::initialize($request, $args);
26 
27  // Basic grid configuration.
28  $this->setTitle('subscriptionManager.institutionalSubscriptions');
29 
30  //
31  // Grid columns.
32  //
33  $cellProvider = new SubscriptionsGridCellProvider();
34 
35  $this->addColumn(
36  new GridColumn(
37  'name',
38  'common.name',
39  null,
40  null,
41  $cellProvider
42  )
43  );
44  $this->addColumn(
45  new GridColumn(
46  'subscriptionType',
47  'manager.subscriptions.subscriptionType',
48  null,
49  null,
50  $cellProvider
51  )
52  );
53  $this->addColumn(
54  new GridColumn(
55  'status',
56  'manager.subscriptions.form.status',
57  null,
58  null,
59  $cellProvider
60  )
61  );
62  $this->addColumn(
63  new GridColumn(
64  'dateStart',
65  'manager.subscriptions.dateStart',
66  null,
67  null,
68  $cellProvider
69  )
70  );
71  $this->addColumn(
72  new GridColumn(
73  'dateEnd',
74  'manager.subscriptions.dateEnd',
75  null,
76  null,
77  $cellProvider
78  )
79  );
80  $this->addColumn(
81  new GridColumn(
82  'referenceNumber',
83  'manager.subscriptions.referenceNumber',
84  null,
85  null,
86  $cellProvider
87  )
88  );
89  }
90 
91 
92  //
93  // Implement methods from GridHandler.
94  //
98  function renderFilter($request) {
99  $context = $request->getContext();
100 
101  // Import field constants.
102  import('lib.pkp.classes.user.UserDAO');
103  import('classes.subscription.InstitutionalSubscriptionDAO');
104  $fieldOptions = array(
105  IDENTITY_SETTING_GIVENNAME => 'user.givenName',
106  IDENTITY_SETTING_FAMILYNAME => 'user.familyName',
107  USER_FIELD_USERNAME => 'user.username',
108  USER_FIELD_EMAIL => 'user.email',
109  SUBSCRIPTION_MEMBERSHIP => 'user.subscriptions.form.membership',
110  SUBSCRIPTION_REFERENCE_NUMBER => 'manager.subscriptions.form.referenceNumber',
111  SUBSCRIPTION_NOTES => 'manager.subscriptions.form.notes',
112  SUBSCRIPTION_INSTITUTION_NAME => 'manager.subscriptions.form.institutionName',
113  SUBSCRIPTION_DOMAIN => 'manager.subscriptions.form.domain',
114  SUBSCRIPTION_IP_RANGE => 'manager.subscriptions.form.ipRange',
115  );
116 
117  $matchOptions = array(
118  'contains' => 'form.contains',
119  'is' => 'form.is'
120  );
121 
122  $filterData = array(
123  'fieldOptions' => $fieldOptions,
124  'matchOptions' => $matchOptions
125  );
126 
127  return parent::renderFilter($request, $filterData);
128  }
129 
133  protected function loadData($request, $filter) {
134  // Get the context.
135  $journal = $request->getContext();
136 
137  $subscriptionDao = DAORegistry::getDAO('InstitutionalSubscriptionDAO'); /* @var $subscriptionDao InstitutionalSubscriptionDAO */
138  $rangeInfo = $this->getGridRangeInfo($request, $this->getId());
139  return $subscriptionDao->getByJournalId($journal->getId(), null, $filter['searchField'], $filter['searchMatch'], $filter['search']?$filter['search']:null, null, null, null, $rangeInfo);
140  }
141 
142 
143  //
144  // Public grid actions.
145  //
152  function editSubscription($args, $request) {
153  // Form handling.
154  $subscriptionForm = new InstitutionalSubscriptionForm($request, $request->getUserVar('rowId'));
155  $subscriptionForm->initData();
156 
157  return new JSONMessage(true, $subscriptionForm->fetch($request));
158  }
159 
166  function updateSubscription($args, $request) {
167  $subscriptionId = (int) $request->getUserVar('subscriptionId');
168  // Form handling.
169  $subscriptionForm = new InstitutionalSubscriptionForm($request, $subscriptionId);
170  $subscriptionForm->readInputData();
171 
172  if ($subscriptionForm->validate()) {
173  $subscriptionForm->execute();
174  $notificationManager = new NotificationManager();
175  $notificationManager->createTrivialNotification($request->getUser()->getId(), NOTIFICATION_TYPE_SUCCESS);
176  // Prepare the grid row data.
177  return DAO::getDataChangedEvent($subscriptionId);
178  } else {
179  return new JSONMessage(true, $subscriptionForm->fetch($request));
180  }
181  }
182 
189  function deleteSubscription($args, $request) {
190  if (!$request->checkCSRF()) return new JSONMessage(false);
191 
192  $context = $request->getContext();
193  $user = $request->getUser();
194 
195  // Identify the subscription ID.
196  $subscriptionId = $request->getUserVar('rowId');
197  $subscriptionDao = DAORegistry::getDAO('InstitutionalSubscriptionDAO'); /* @var $subscriptionDao InstitutionalSubscriptionDAO */
198  $subscriptionDao->deleteById($subscriptionId, $context->getId());
199  return DAO::getDataChangedEvent();
200  }
201 }
202 
203 
SubscriptionsGridCellProvider
Class for a cell provider to display information about subscriptions.
Definition: SubscriptionsGridCellProvider.inc.php:18
GridColumn
The GridColumn class represents a column within a grid. It is used to format the data presented in a ...
Definition: GridColumn.inc.php:27
SubscriptionsGridHandler
Handle subscription grid requests.
Definition: SubscriptionsGridHandler.inc.php:21
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
PKPHandler\getId
getId()
Definition: PKPHandler.inc.php:107
InstitutionalSubscriptionsGridHandler\updateSubscription
updateSubscription($args, $request)
Definition: InstitutionalSubscriptionsGridHandler.inc.php:166
InstitutionalSubscriptionsGridHandler\loadData
loadData($request, $filter)
Definition: InstitutionalSubscriptionsGridHandler.inc.php:133
InstitutionalSubscriptionsGridHandler\initialize
initialize($request, $args=null)
Definition: InstitutionalSubscriptionsGridHandler.inc.php:24
GridHandler\addColumn
addColumn($column)
Definition: GridHandler.inc.php:335
DAO\getDataChangedEvent
static getDataChangedEvent($elementId=null, $parentElementId=null, $content='')
Definition: DAO.inc.php:647
InstitutionalSubscriptionsGridHandler\editSubscription
editSubscription($args, $request)
Definition: InstitutionalSubscriptionsGridHandler.inc.php:152
JSONMessage
Class to represent a JSON (Javascript Object Notation) message.
Definition: JSONMessage.inc.php:18
InstitutionalSubscriptionsGridHandler\deleteSubscription
deleteSubscription($args, $request)
Definition: InstitutionalSubscriptionsGridHandler.inc.php:189
InstitutionalSubscriptionsGridHandler
Handle subscription grid requests.
Definition: InstitutionalSubscriptionsGridHandler.inc.php:20
GridHandler\setTitle
setTitle($title)
Definition: GridHandler.inc.php:215
GridHandler\getGridRangeInfo
getGridRangeInfo($request, $rangeName, $contextData=null)
Definition: GridHandler.inc.php:589
InstitutionalSubscriptionForm
Form class for institutional subscription create/edits.
Definition: InstitutionalSubscriptionForm.inc.php:18
NotificationManager
Definition: NotificationManager.inc.php:19
InstitutionalSubscriptionsGridHandler\renderFilter
renderFilter($request)
Definition: InstitutionalSubscriptionsGridHandler.inc.php:98