Open Journal Systems  3.3.0
PLNStatusGridHandler.inc.php
1 <?php
2 
14 import('lib.pkp.classes.controllers.grid.GridHandler');
15 import('plugins.generic.pln.controllers.grid.PLNStatusGridRow');
16 import('plugins.generic.pln.controllers.grid.PLNStatusGridCellProvider');
17 
20  static $plugin;
21 
25  public function __construct() {
26  parent::__construct();
27  $this->addRoleAssignment(
28  array(ROLE_ID_MANAGER),
29  array('fetchGrid', 'fetchRow', 'resetDeposit')
30  );
31  self::$plugin = PluginRegistry::getPlugin('generic', PLN_PLUGIN_NAME);
32  }
33 
38  public static function setPlugin($plugin) {
39  self::$plugin = $plugin;
40  }
41 
42 
43  //
44  // Overridden template methods
45  //
49  public function initialize($request, $args = null) {
50  parent::initialize($request);
51 
52  // Set the grid title.
53  $this->setTitle('plugins.generic.pln.status.deposits');
54 
55  // Set the grid instructions.
56  $this->setEmptyRowText('common.none');
57 
58  // Columns
59  $cellProvider = new PLNStatusGridCellProvider();
60  $this->addColumn(new GridColumn('id', 'common.id', null, null, $cellProvider));
61  $this->addColumn(new GridColumn('type', 'common.type', null, null, $cellProvider));
62  $this->addColumn(new GridColumn('objectId', 'plugins.generic.pln.objectId', null, null, $cellProvider));
63  $this->addColumn(new GridColumn('checked', 'plugins.generic.pln.status.checked', null, null, $cellProvider));
64  $this->addColumn(new GridColumn('local_status', 'plugins.generic.pln.status.local_status', null, null, $cellProvider));
65  $this->addColumn(new GridColumn('processing_status', 'plugins.generic.pln.status.processing_status', null, null, $cellProvider));
66  $this->addColumn(new GridColumn('lockss_status', 'plugins.generic.pln.status.lockss_status', null, null, $cellProvider));
67  $this->addColumn(new GridColumn('complete', 'plugins.generic.pln.status.complete', null, null, $cellProvider));
68  }
69 
73  public function initFeatures($request, $args) {
74  import('lib.pkp.classes.controllers.grid.feature.PagingFeature');
75  return array(new PagingFeature());
76  }
77 
81  protected function getRowInstance() {
82  import('plugins.generic.pln.controllers.grid.PLNStatusGridRow');
83  return new PLNStatusGridRow();
84  }
85 
89  public function authorize($request, &$args, $roleAssignments) {
90  import('lib.pkp.classes.security.authorization.ContextAccessPolicy');
91  $this->addPolicy(new ContextAccessPolicy($request, $roleAssignments));
92  return parent::authorize($request, $args, $roleAssignments, false);
93  }
94 
98  protected function loadData($request, $filter) {
99  $context = $request->getContext();
100  $depositDao = DAORegistry::getDAO('DepositDAO');
101  $rangeInfo = $this->getGridRangeInfo($request, $this->getId());
102  return $depositDao->getByJournalId($context->getId(), $rangeInfo);
103  }
104 
105  //
106  // Public Grid Actions
107  //
115  public function resetDeposit($args, $request) {
116  $depositId = $args['depositId'];
117  $depositDao = DAORegistry::getDAO('DepositDAO');
118  $journal = $request->getJournal();
119 
120  if (!is_null($depositId)) {
121  $deposit = $depositDao->getById($depositId, $journal->getId());
122  $deposit->setStatus(PLN_PLUGIN_DEPOSIT_STATUS_NEW);
123  $deposit->setExportDepositError('');
124  $depositDao->updateObject($deposit);
125  }
126 
127  return DAO::getDataChangedEvent();
128  }
129 }
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
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
PLNStatusGridHandler\authorize
authorize($request, &$args, $roleAssignments)
Definition: PLNStatusGridHandler.inc.php:92
PLNStatusGridHandler\initFeatures
initFeatures($request, $args)
Definition: PLNStatusGridHandler.inc.php:76
PLNStatusGridHandler\getRowInstance
getRowInstance()
Definition: PLNStatusGridHandler.inc.php:84
PKPHandler\getId
getId()
Definition: PKPHandler.inc.php:107
GridHandler\addColumn
addColumn($column)
Definition: GridHandler.inc.php:335
DAO\getDataChangedEvent
static getDataChangedEvent($elementId=null, $parentElementId=null, $content='')
Definition: DAO.inc.php:647
PLNStatusGridHandler\setPlugin
static setPlugin($plugin)
Definition: PLNStatusGridHandler.inc.php:41
PagingFeature
Add paging functionality to grids.
Definition: PagingFeature.inc.php:19
PLNStatusGridHandler\$plugin
static $plugin
Definition: PLNStatusGridHandler.inc.php:23
GridHandler\setTitle
setTitle($title)
Definition: GridHandler.inc.php:215
PLNStatusGridHandler\loadData
loadData($request, $filter)
Definition: PLNStatusGridHandler.inc.php:101
PLNStatusGridCellProvider
Class for a cell provider to display information about PLN Deposits.
Definition: PLNStatusGridCellProvider.inc.php:17
GridHandler\getGridRangeInfo
getGridRangeInfo($request, $rangeName, $contextData=null)
Definition: GridHandler.inc.php:589
PLNStatusGridHandler\initialize
initialize($request, $args=null)
Definition: PLNStatusGridHandler.inc.php:52
PluginRegistry\getPlugin
static getPlugin($category, $name)
Definition: PluginRegistry.inc.php:85
PLNStatusGridRow
Handle PLNStatus deposit grid row requests.
Definition: PLNStatusGridRow.inc.php:16
GridHandler
This class defines basic operations for handling HTML grids. Grids are used to implement a standardiz...
Definition: GridHandler.inc.php:58
PLNStatusGridHandler
Handle PLNStatus grid requests.
Definition: PLNStatusGridHandler.inc.php:18
PKPHandler\addPolicy
addPolicy($authorizationPolicy, $addToTop=false)
Definition: PKPHandler.inc.php:157
PLNStatusGridHandler\resetDeposit
resetDeposit($args, $request)
Definition: PLNStatusGridHandler.inc.php:118
PLNStatusGridHandler\__construct
__construct()
Definition: PLNStatusGridHandler.inc.php:28