Open Journal Systems  3.3.0
LanguageGridCellProvider.inc.php
1 <?php
2 
16 import('lib.pkp.classes.controllers.grid.GridCellProvider');
17 
19 
23  function getTemplateVarsFromRowColumn($row, $column) {
24  $element = $row->getData();
25  $columnId = $column->getId();
26  switch ($columnId) {
27  case 'enable':
28  return array('selected' => $element['supported'],
29  'disabled' => false);
30  case 'locale':
31  $label = $element['name'];
32  $returnArray = array('label' => $label);
33 
34  if (isset($element['incomplete'])) {
35  $returnArray['incomplete'] = $element['incomplete'];
36  }
37  return $returnArray;
38  case 'sitePrimary':
39  return array('selected' => $element['primary'],
40  'disabled' => !$element['supported']);
41  case 'contextPrimary':
42  return array('selected' => $element['primary'],
43  'disabled' => !$element['supported']);
44  case 'uiLocale';
45  return array('selected' => $element['supportedLocales'],
46  'disabled' => !$element['supported']);
47  case 'formLocale';
48  return array('selected' => $element['supportedFormLocales'],
49  'disabled' => !$element['supported']);
50  case 'submissionLocale';
51  return array('selected' => $element['supportedSubmissionLocales'],
52  'disabled' => !$element['supported']);
53  default:
54  assert(false);
55  break;
56  }
57  }
58 
62  function getCellActions($request, $row, $column, $position = GRID_ACTION_POSITION_DEFAULT) {
63  import('lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
64  import('lib.pkp.classes.linkAction.request.AjaxAction');
65 
66  $element = $row->getData();
67  $router = $request->getRouter();
68  $actions = array();
69  $actionArgs = array('rowId' => $row->getId());
70 
71  $action = null;
72  $actionRequest = null;
73 
74  switch ($column->getId()) {
75  case 'enable':
76  $enabled = $element['supported'];
77  if ($enabled) {
78  $action = 'disable-' . $row->getId();
79  $actionRequest = new RemoteActionConfirmationModal(
80  $request->getSession(),
81  __('admin.languages.confirmDisable'),
82  __('common.disable'),
83  $router->url($request, null, null, 'disableLocale', null, $actionArgs)
84  );
85  } else {
86  $action = 'enable-' . $row->getId();
87  $actionRequest = new AjaxAction($router->url($request, null, null, 'enableLocale', null, $actionArgs));
88  }
89  break;
90  case 'sitePrimary':
91  $primary = $element['primary'];
92  if (!$primary) {
93  $action = 'setPrimary-' . $row->getId();
94  $actionRequest = new RemoteActionConfirmationModal(
95  $request->getSession(),
96  __('admin.languages.confirmSitePrimaryLocaleChange'),
97  __('locale.primary'),
98  $router->url($request, null, null, 'setPrimaryLocale', null, $actionArgs)
99  );
100  }
101  break;
102  case 'contextPrimary':
103  $primary = $element['primary'];
104  if (!$primary) {
105  $action = 'setPrimary-' . $row->getId();
106  $actionRequest = new AjaxAction($router->url($request, null, null, 'setContextPrimaryLocale', null, $actionArgs));
107  }
108  break;
109  case 'uiLocale':
110  $action = 'setUiLocale-' . $row->getId();
111  $actionArgs['setting'] = 'supportedLocales';
112  $actionArgs['value'] = !$element['supportedLocales'];
113  $actionRequest = new AjaxAction($router->url($request, null, null, 'saveLanguageSetting', null, $actionArgs));
114  break;
115  case 'formLocale':
116  $action = 'setFormLocale-' . $row->getId();
117  $actionArgs['setting'] = 'supportedFormLocales';
118  $actionArgs['value'] = !$element['supportedFormLocales'];
119  $actionRequest = new AjaxAction($router->url($request, null, null, 'saveLanguageSetting', null, $actionArgs));
120  break;
121  case 'submissionLocale':
122  $action = 'setSubmissionLocale-' . $row->getId();
123  $actionArgs['setting'] = 'supportedSubmissionLocales';
124  $actionArgs['value'] = !$element['supportedSubmissionLocales'];
125  $actionRequest = new AjaxAction($router->url($request, null, null, 'saveLanguageSetting', null, $actionArgs));
126  break;
127  }
128 
129  if ($action && $actionRequest) {
130  $linkAction = new LinkAction($action, $actionRequest, null, null);
131  $actions = array($linkAction);
132  }
133 
134  return $actions;
135  }
136 }
137 
138 
RemoteActionConfirmationModal
Class defining a simple confirmation modal with a remote action and ok/cancel buttons.
Definition: RemoteActionConfirmationModal.inc.php:18
LanguageGridCellProvider\getTemplateVarsFromRowColumn
getTemplateVarsFromRowColumn($row, $column)
Definition: LanguageGridCellProvider.inc.php:23
AjaxAction
Class defining an AJAX action.
Definition: AjaxAction.inc.php:21
LanguageGridCellProvider
Subclass for a language grid column's cell provider.
Definition: LanguageGridCellProvider.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
GridCellProvider
Base class for a grid column's cell provider.
Definition: GridCellProvider.inc.php:20
LanguageGridCellProvider\getCellActions
getCellActions($request, $row, $column, $position=GRID_ACTION_POSITION_DEFAULT)
Definition: LanguageGridCellProvider.inc.php:62