Open Journal Systems  3.3.0
ManageLanguageGridHandler.inc.php
1 <?php
2 
16 import('lib.pkp.controllers.grid.languages.LanguageGridHandler');
17 
22  function __construct() {
23  parent::__construct();
24  $this->addRoleAssignment(
25  array(ROLE_ID_MANAGER),
26  array('saveLanguageSetting', 'setContextPrimaryLocale', 'reloadLocale', 'fetchGrid', 'fetchRow')
27  );
28  }
29 
30 
31  //
32  // Implement methods from GridHandler.
33  //
37  function authorize($request, &$args, $roleAssignments) {
38  import('lib.pkp.classes.security.authorization.ContextAccessPolicy');
39  $this->addPolicy(new ContextAccessPolicy($request, $roleAssignments));
40  return parent::authorize($request, $args, $roleAssignments);
41  }
42 
46  protected function loadData($request, $filter) {
47  $site = $request->getSite();
48  $context = $request->getContext();
49 
50  $allLocales = AppLocale::getAllLocales();
51  $supportedLocales = $site->getSupportedLocales();
52  $contextPrimaryLocale = $context->getPrimaryLocale();
53  $data = array();
54 
55  foreach ($supportedLocales as $locale) {
56  $data[$locale] = array();
57  $data[$locale]['name'] = $allLocales[$locale];
58  $data[$locale]['supported'] = true;
59  $data[$locale]['primary'] = ($locale == $contextPrimaryLocale);
60  }
61 
62  $data = $this->addManagementData($request, $data);
63  return $data;
64  }
65 
66  //
67  // Extended methods from LanguageGridHandler.
68  //
72  function initialize($request, $args = null) {
73  parent::initialize($request, $args);
74  AppLocale::requireComponents(LOCALE_COMPONENT_APP_MANAGER);
75 
76  $this->addNameColumn();
77  $this->addPrimaryColumn('contextPrimary');
78  $this->addManagementColumns();
79  }
80 
87  public function reloadLocale($args, $request) {
88  $context = $request->getContext();
89  $locale = $request->getUserVar('rowId');
90  $gridData = $this->getGridDataElements($request);
91 
92  if (empty($context) || !$request->checkCSRF() || !array_key_exists($locale, $gridData)) {
93  return new JSONMessage(false);
94  }
95 
96  import('classes.core.Services');
97  $context = Services::get('context')->restoreLocaleDefaults($context, $request, $locale);
98 
99  $notificationManager = new NotificationManager();
100  $notificationManager->createTrivialNotification(
101  $request->getUser()->getId(),
102  NOTIFICATION_TYPE_SUCCESS,
103  array('contents' => __('notification.localeReloaded', array('locale' => $gridData[$locale]['name'], 'contextName' => $context->getLocalizedName())))
104  );
105 
106  return DAO::getDataChangedEvent($locale);
107  }
108 }
PKPHandler\addRoleAssignment
addRoleAssignment($roleIds, $operations)
Definition: PKPHandler.inc.php:213
PKPLocale\getAllLocales
static & getAllLocales()
Definition: PKPLocale.inc.php:537
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
ManageLanguageGridHandler\initialize
initialize($request, $args=null)
Definition: ManageLanguageGridHandler.inc.php:72
GridHandler\getGridDataElements
& getGridDataElements($request)
Definition: GridHandler.inc.php:345
LanguageGridHandler\addPrimaryColumn
addPrimaryColumn($columnId)
Definition: LanguageGridHandler.inc.php:197
DAO\getDataChangedEvent
static getDataChangedEvent($elementId=null, $parentElementId=null, $content='')
Definition: DAO.inc.php:647
LanguageGridHandler\addManagementData
addManagementData($request, $data)
Definition: LanguageGridHandler.inc.php:254
JSONMessage
Class to represent a JSON (Javascript Object Notation) message.
Definition: JSONMessage.inc.php:18
ManageLanguageGridHandler\authorize
authorize($request, &$args, $roleAssignments)
Definition: ManageLanguageGridHandler.inc.php:37
ManageLanguageGridHandler\__construct
__construct()
Definition: ManageLanguageGridHandler.inc.php:22
ManageLanguageGridHandler\loadData
loadData($request, $filter)
Definition: ManageLanguageGridHandler.inc.php:46
NotificationManager
Definition: NotificationManager.inc.php:19
LanguageGridHandler\addNameColumn
addNameColumn()
Definition: LanguageGridHandler.inc.php:178
LanguageGridHandler\addManagementColumns
addManagementColumns()
Definition: LanguageGridHandler.inc.php:214
ManageLanguageGridHandler
Handle language management grid requests only.
Definition: ManageLanguageGridHandler.inc.php:18
PKPHandler\addPolicy
addPolicy($authorizationPolicy, $addToTop=false)
Definition: PKPHandler.inc.php:157
PKPServices\get
static get($service)
Definition: PKPServices.inc.php:49
LanguageGridHandler
Handle language grid requests.
Definition: LanguageGridHandler.inc.php:20
ManageLanguageGridHandler\reloadLocale
reloadLocale($args, $request)
Definition: ManageLanguageGridHandler.inc.php:87