Open Journal Systems  3.3.0
IssueGridRow.inc.php
1 <?php
2 
16 import('lib.pkp.classes.controllers.grid.GridRow');
17 
18 class IssueGridRow extends GridRow {
19 
20  //
21  // Overridden template methods
22  //
23  /*
24  * @copydoc GridRow::initialize
25  */
26  function initialize($request, $template = null) {
27  parent::initialize($request, $template);
28 
29  // Is this a new row or an existing row?
30  $issueId = $this->getId();
31  if (!empty($issueId) && is_numeric($issueId)) {
32  $issue = $this->getData();
33  assert(is_a($issue, 'Issue'));
34  $router = $request->getRouter();
35 
36  import('lib.pkp.classes.linkAction.request.AjaxModal');
37  $this->addAction(
38  new LinkAction(
39  'edit',
40  new AjaxModal(
41  $router->url($request, null, null, 'editIssue', null, array('issueId' => $issueId)),
42  __('editor.issues.editIssue', array('issueIdentification' => $issue->getIssueIdentification())),
43  'modal_edit',
44  true),
45  __('grid.action.edit'),
46  'edit'
47  )
48  );
49 
50  import('lib.pkp.classes.linkAction.request.OpenWindowAction');
51  $dispatcher = $request->getDispatcher();
52  $this->addAction(
53  new LinkAction(
54  $issue->getDatePublished()?'viewIssue':'previewIssue',
55  new OpenWindowAction(
56  $dispatcher->url($request, ROUTE_PAGE, null, 'issue', 'view', array($issueId))
57  ),
58  __($issue->getDatePublished()?'grid.action.viewIssue':'grid.action.previewIssue'),
59  'information'
60  )
61  );
62 
63  import('lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
64  if ($issue->getDatePublished()) {
65  import('lib.pkp.classes.linkAction.request.AjaxModal');
66  $this->addAction(
67  new LinkAction(
68  'unpublish',
70  $request->getSession(),
71  __('editor.issues.confirmUnpublish'),
72  __('editor.issues.unpublishIssue'),
73  $router->url($request, null, null, 'unpublishIssue', null, array('issueId' => $issueId)),
74  'modal_delete'
75  ),
76  __('editor.issues.unpublishIssue'),
77  'delete'
78  )
79  );
80  } else {
81  $this->addAction(
82  new LinkAction(
83  'publish',
84  new AjaxModal(
85  $router->url(
86  $request, null, null, 'publishIssue', null, array('issueId' => $issueId)),
87  __('editor.issues.publishIssue'),
88  'modal_confirm'
89  ),
90  __('editor.issues.publishIssue'),
91  'advance'
92  )
93  );
94  }
95 
96  if ($issue->getDatePublished() && !$issue->getCurrent()) {
97  $this->addAction(
98  new LinkAction(
99  'setCurrentIssue',
101  $request->getSession(),
102  __('editor.issues.confirmSetCurrentIssue'),
103  __('editor.issues.currentIssue'),
104  $router->url($request, null, null, 'setCurrentIssue', null, array('issueId' => $issueId)),
105  'modal_delete'
106  ),
107  __('editor.issues.currentIssue'),
108  'delete'
109  )
110  );
111  }
112 
113  $this->addAction(
114  new LinkAction(
115  'delete',
117  $request->getSession(),
118  __('common.confirmDelete'),
119  __('grid.action.delete'),
120  $router->url($request, null, null, 'deleteIssue', null, array('issueId' => $issueId)),
121  'modal_delete'
122  ),
123  __('grid.action.delete'),
124  'delete'
125  )
126  );
127  }
128  }
129 }
130 
131 
OpenWindowAction
This action request redirects to another page.
Definition: OpenWindowAction.inc.php:18
RemoteActionConfirmationModal
Class defining a simple confirmation modal with a remote action and ok/cancel buttons.
Definition: RemoteActionConfirmationModal.inc.php:18
GridRow\addAction
addAction($action, $position=GRID_ACTION_POSITION_DEFAULT)
Definition: GridRow.inc.php:179
GridBodyElement\getId
getId()
Definition: GridBodyElement.inc.php:57
IssueGridRow
Handle issue grid row requests.
Definition: IssueGridRow.inc.php:18
IssueGridRow\initialize
initialize($request, $template=null)
Definition: IssueGridRow.inc.php:26
GridRow
GridRow implements a row of a Grid. See GridHandler for general information about grids.
Definition: GridRow.inc.php:29
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
GridRow\getData
& getData()
Definition: GridRow.inc.php:131