Open Journal Systems  3.3.0
SubscriptionsGridHandler.inc.php
1 <?php
2 
16 import('lib.pkp.classes.controllers.grid.GridHandler');
17 
18 import('controllers.grid.subscriptions.SubscriptionsGridRow');
19 import('controllers.grid.subscriptions.SubscriptionsGridCellProvider');
20 
21 abstract class SubscriptionsGridHandler extends GridHandler {
22 
26  function __construct() {
27  parent::__construct();
28  $this->addRoleAssignment(array(
29  ROLE_ID_MANAGER, ROLE_ID_SUBSCRIPTION_MANAGER),
30  array('fetchGrid', 'fetchRow', 'editSubscription', 'updateSubscription',
31  'deleteSubscription', 'addSubscription', 'renewSubscription')
32  );
33  }
34 
35 
36  //
37  // Implement template methods from PKPHandler.
38  //
42  function authorize($request, &$args, $roleAssignments) {
43  import('lib.pkp.classes.security.authorization.ContextAccessPolicy');
44  $this->addPolicy(new ContextAccessPolicy($request, $roleAssignments));
45  return parent::authorize($request, $args, $roleAssignments);
46  }
47 
51  function initialize($request, $args = null) {
52  parent::initialize($request, $args);
53 
54  // Load user-related translations.
56  LOCALE_COMPONENT_APP_MANAGER,
57  LOCALE_COMPONENT_PKP_USER
58  );
59 
60  // Grid actions.
61  $router = $request->getRouter();
62 
63  import('lib.pkp.classes.linkAction.request.AjaxModal');
64  $this->addAction(
65  new LinkAction(
66  'addSubscription',
67  new AjaxModal(
68  $router->url($request, null, null, 'addSubscription', null, null),
69  __('manager.subscriptions.create'),
70  'modal_add_subscription',
71  true
72  ),
73  __('manager.subscriptions.create'),
74  'add_subscription')
75  );
76  }
77 
78 
82  function initFeatures($request, $args) {
83  import('lib.pkp.classes.controllers.grid.feature.PagingFeature');
84  return array(new PagingFeature());
85  }
86 
91  protected function getRowInstance() {
92  return new SubscriptionsGridRow();
93  }
94 
99  function getFilterSelectionData($request) {
100  // Get the search terms.
101  $searchField = $request->getUserVar('searchField');
102  $searchMatch = $request->getUserVar('searchMatch');
103  $search = $request->getUserVar('search');
104 
105  return $filterSelectionData = array(
106  'searchField' => $searchField,
107  'searchMatch' => $searchMatch,
108  'search' => $search ? $search : ''
109  );
110  }
111 
116  protected function getFilterForm() {
117  return 'controllers/grid/subscriptions/subscriptionsGridFilter.tpl';
118  }
119 
120 
121  //
122  // Public grid actions.
123  //
129  function addSubscription($args, $request) {
130  // Calling editSubscription with an empty row id will add a new subscription.
131  return $this->editSubscription($args, $request);
132  }
133 
139  function renewSubscription($args, $request) {
140  $subscriptionDao = DAORegistry::getDAO($request->getUserVar('institutional')?'InstitutionalSubscriptionDAO':'IndividualSubscriptionDAO');
141  $subscriptionId = $request->getUserVar('rowId');
142  if ($subscription = $subscriptionDao->getById($subscriptionId, $request->getJournal()->getId())) {
143  $subscriptionDao->renewSubscription($subscription);
144  }
145  return DAO::getDataChangedEvent($subscriptionId);
146  }
147 }
148 
149 ?>
150 
SubscriptionsGridHandler\initialize
initialize($request, $args=null)
Definition: SubscriptionsGridHandler.inc.php:51
SubscriptionsGridHandler\initFeatures
initFeatures($request, $args)
Definition: SubscriptionsGridHandler.inc.php:82
PKPHandler\addRoleAssignment
addRoleAssignment($roleIds, $operations)
Definition: PKPHandler.inc.php:213
SubscriptionsGridHandler\getFilterSelectionData
getFilterSelectionData($request)
Definition: SubscriptionsGridHandler.inc.php:99
AppLocale\requireComponents
static requireComponents()
Definition: env1/MockAppLocale.inc.php:56
ContextAccessPolicy
Class to control access to PKP applications' setup components.
Definition: ContextAccessPolicy.inc.php:17
SubscriptionsGridHandler
Handle subscription grid requests.
Definition: SubscriptionsGridHandler.inc.php:21
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
SubscriptionsGridHandler\getFilterForm
getFilterForm()
Definition: SubscriptionsGridHandler.inc.php:116
GridHandler\addAction
addAction($action, $position=GRID_ACTION_POSITION_ABOVE)
Definition: GridHandler.inc.php:266
SubscriptionsGridRow
Subscriptions grid row definition.
Definition: SubscriptionsGridRow.inc.php:21
DAO\getDataChangedEvent
static getDataChangedEvent($elementId=null, $parentElementId=null, $content='')
Definition: DAO.inc.php:647
SubscriptionsGridHandler\renewSubscription
renewSubscription($args, $request)
Definition: SubscriptionsGridHandler.inc.php:139
AjaxModal
A modal that retrieves its content from via AJAX.
Definition: AjaxModal.inc.php:18
LinkAction
Base class defining an action that can be performed by the user in the user interface.
Definition: LinkAction.inc.php:22
PagingFeature
Add paging functionality to grids.
Definition: PagingFeature.inc.php:19
GridHandler
This class defines basic operations for handling HTML grids. Grids are used to implement a standardiz...
Definition: GridHandler.inc.php:58
SubscriptionsGridHandler\getRowInstance
getRowInstance()
Definition: SubscriptionsGridHandler.inc.php:91
SubscriptionsGridHandler\__construct
__construct()
Definition: SubscriptionsGridHandler.inc.php:26
PKPHandler\addPolicy
addPolicy($authorizationPolicy, $addToTop=false)
Definition: PKPHandler.inc.php:157
SubscriptionsGridHandler\addSubscription
addSubscription($args, $request)
Definition: SubscriptionsGridHandler.inc.php:129
SubscriptionsGridHandler\authorize
authorize($request, &$args, $roleAssignments)
Definition: SubscriptionsGridHandler.inc.php:42