Open Journal Systems  3.3.0
SwordDepositPointsGridHandler.inc.php
1 <?php
2 
14 import('lib.pkp.classes.controllers.grid.GridHandler');
15 import('plugins.generic.sword.controllers.grid.SwordDepositPointsGridRow');
16 import('plugins.generic.sword.controllers.grid.SwordDepositPointsGridCellProvider');
17 
20  public static $plugin;
21 
26  static public function setPlugin($plugin) {
27  self::$plugin = $plugin;
28  }
29 
33  public function __construct() {
34  parent::__construct();
35  $this->addRoleAssignment(
36  array(ROLE_ID_MANAGER),
37  array('index', 'fetchGrid', 'fetchRow', 'addDepositPoint', 'editDepositPoint', 'updateDepositPoint', 'delete')
38  );
39  }
40 
44  function authorize($request, &$args, $roleAssignments) {
45  import('lib.pkp.classes.security.authorization.ContextAccessPolicy');
46  $this->addPolicy(new ContextAccessPolicy($request, $roleAssignments));
47  return parent::authorize($request, $args, $roleAssignments);
48  }
49 
53  public function initialize($request, $args = null) {
54  parent::initialize($request);
55  $context = $request->getContext();
56 
57  // Set the grid details.
58  $this->setTitle('plugins.generic.sword.settings.depositPoints');
59  $this->setEmptyRowText('plugins.generic.sword.manager.noneCreated');
60 
61  // Get the pages and add the data to the grid
62  self::$plugin->import('classes.DepositPoint');
63  $depositPointDao = DAORegistry::getDAO('DepositPointDAO');
64  $depositPoints = $depositPointDao->getByContextId($context->getId());
65  $this->setGridDataElements($depositPoints);
66 
67  // Add grid-level actions
68  $router = $request->getRouter();
69  import('lib.pkp.classes.linkAction.request.AjaxModal');
70  $this->addAction(
71  new LinkAction(
72  'addDepositPoint',
73  new AjaxModal(
74  $router->url($request, null, null, 'addDepositPoint'),
75  __('plugins.generic.sword.depositPoints.create'),
76  'modal_add_item'
77  ),
78  __('plugins.generic.sword.depositPoints.create'),
79  'add_item'
80  )
81  );
82 
83  // Columns
84  $cellProvider = new SwordDepositPointsGridCellProvider();
85  $this->addColumn(new GridColumn(
86  'name',
87  'plugins.generic.sword.depositPoints.name',
88  null,
89  'controllers/grid/gridCell.tpl',
90  $cellProvider
91  ));
92  $this->addColumn(new GridColumn(
93  'url',
94  'plugins.importexport.sword.depositUrl',
95  null,
96  'controllers/grid/gridCell.tpl',
97  $cellProvider
98  ));
99  $this->addColumn(new GridColumn(
100  'type',
101  'common.type',
102  null,
103  'controllers/grid/gridCell.tpl',
104  $cellProvider
105  ));
106  }
107 
111  public function getRowInstance() {
112  return new SwordDepositPointsGridRow();
113  }
114 
120  public function index($args, $request) {
121  $templateMgr = TemplateManager::getManager($request);
122  $dispatcher = $request->getDispatcher();
123  return $templateMgr->fetchAjax(
124  'swordDepositPointsGridContainer',
125  $dispatcher->url(
126  $request, ROUTE_COMPONENT, null,
127  'plugins.generic.sword.controllers.grid.SwordDepositPointsGridHandler',
128  'fetchGrid'
129  )
130  );
131  }
132 
138  public function addDepositPoint($args, $request) {
139  return $this->editDepositPoint($args, $request);
140  }
141 
148  public function editDepositPoint($args, $request) {
149  $depositPointId = $request->getUserVar('depositPointId');
150  $context = $request->getContext();
151  $this->setupTemplate($request);
152  self::$plugin->import('controllers.grid.form.SwordDepositPointForm');
153  $swordDepositPointForm = new SwordDepositPointForm(self::$plugin, $context->getId(), $depositPointId);
154  $swordDepositPointForm->initData();
155  return new JSONMessage(true, $swordDepositPointForm->fetch($request));
156  }
157 
164  public function updateDepositPoint($args, $request) {
165  $depositPointId = $request->getUserVar('depositPointId');
166  $context = $request->getContext();
167  $this->setupTemplate($request);
168 
169  self::$plugin->import('controllers.grid.form.SwordDepositPointForm');
170  $swordDepositPointForm = new SwordDepositPointForm(self::$plugin, $context->getId(), $depositPointId);
171  $swordDepositPointForm->readInputData($request);
172 
173  if ($swordDepositPointForm->validate()) {
174  $swordDepositPointForm->execute();
175  return DAO::getDataChangedEvent();
176  } else {
177  // Present any errors
178  return new JSONMessage(true, $swordDepositPointForm->fetch($request));
179  }
180  }
181 
188  public function delete($args, $request) {
189  $depositPointId = $request->getUserVar('depositPointId');
190  $context = $request->getContext();
191 
192  $depositPointDao = DAORegistry::getDAO('DepositPointDAO');
193  $depositPointDao->deleteById($depositPointId, $context->getId());
194 
195  return DAO::getDataChangedEvent();
196  }
197 }
PKPHandler\addRoleAssignment
addRoleAssignment($roleIds, $operations)
Definition: PKPHandler.inc.php:213
GridHandler\setEmptyRowText
setEmptyRowText($emptyRowText)
Definition: GridHandler.inc.php:231
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
ContextAccessPolicy
Class to control access to PKP applications' setup components.
Definition: ContextAccessPolicy.inc.php:17
SwordDepositPointsGridRow
Handle custom blocks grid row requests.
Definition: SwordDepositPointsGridRow.inc.php:16
SwordDepositPointsGridHandler\initialize
initialize($request, $args=null)
Definition: SwordDepositPointsGridHandler.inc.php:53
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
SwordDepositPointsGridHandler
Handle sword deposit points grid requests.
Definition: SwordDepositPointsGridHandler.inc.php:18
SwordDepositPointsGridHandler\$plugin
static $plugin
Definition: SwordDepositPointsGridHandler.inc.php:20
SwordDepositPointsGridHandler\index
index($args, $request)
Definition: SwordDepositPointsGridHandler.inc.php:120
GridHandler\addAction
addAction($action, $position=GRID_ACTION_POSITION_ABOVE)
Definition: GridHandler.inc.php:266
GridHandler\addColumn
addColumn($column)
Definition: GridHandler.inc.php:335
SwordDepositPointsGridCellProvider
Class for a cell provider to display information about deposit point.
Definition: SwordDepositPointsGridCellProvider.inc.php:17
SwordDepositPointsGridHandler\updateDepositPoint
updateDepositPoint($args, $request)
Definition: SwordDepositPointsGridHandler.inc.php:164
DAO\getDataChangedEvent
static getDataChangedEvent($elementId=null, $parentElementId=null, $content='')
Definition: DAO.inc.php:647
SwordDepositPointsGridHandler\__construct
__construct()
Definition: SwordDepositPointsGridHandler.inc.php:33
GridHandler\setGridDataElements
setGridDataElements($data)
Definition: GridHandler.inc.php:379
JSONMessage
Class to represent a JSON (Javascript Object Notation) message.
Definition: JSONMessage.inc.php:18
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
SwordDepositPointsGridHandler\authorize
authorize($request, &$args, $roleAssignments)
Definition: SwordDepositPointsGridHandler.inc.php:44
SwordDepositPointsGridHandler\addDepositPoint
addDepositPoint($args, $request)
Definition: SwordDepositPointsGridHandler.inc.php:138
GridHandler\setTitle
setTitle($title)
Definition: GridHandler.inc.php:215
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
SwordDepositPointForm
Form to create and modify deposit points.
Definition: SwordDepositPointForm.inc.php:16
SwordDepositPointsGridHandler\setPlugin
static setPlugin($plugin)
Definition: SwordDepositPointsGridHandler.inc.php:26
SwordDepositPointsGridHandler\getRowInstance
getRowInstance()
Definition: SwordDepositPointsGridHandler.inc.php:111
PKPHandler\setupTemplate
setupTemplate($request)
Definition: PKPHandler.inc.php:466
GridHandler
This class defines basic operations for handling HTML grids. Grids are used to implement a standardiz...
Definition: GridHandler.inc.php:58
SwordDepositPointsGridHandler\editDepositPoint
editDepositPoint($args, $request)
Definition: SwordDepositPointsGridHandler.inc.php:148
PKPHandler\addPolicy
addPolicy($authorizationPolicy, $addToTop=false)
Definition: PKPHandler.inc.php:157