00001 <?php
00002
00015 import('lib.pkp.classes.controllers.grid.GridCellProvider');
00016
00017 class LanguageGridCellProvider extends GridCellProvider {
00021 function LanguageGridCellProvider() {
00022 parent::GridCellProvider();
00023 }
00024
00028 function getTemplateVarsFromRowColumn(&$row, $column) {
00029 $element = $row->getData();
00030 $columnId = $column->getId();
00031 switch ($columnId) {
00032 case 'enable':
00033 return array('selected' => $element['supported'],
00034 'disabled' => false);
00035 case 'locale':
00036 $label = $element['name'];
00037 $returnArray = array('label' => $label);
00038
00039 if (isset($element['incomplete'])) {
00040 $returnArray['incomplete'] = $element['incomplete'];
00041 }
00042 return $returnArray;
00043 case 'sitePrimary':
00044 return array('selected' => $element['primary'],
00045 'disabled' => !$element['supported']);
00046 case 'pressPrimary':
00047 return array('selected' => $element['primary'],
00048 'disabled' => !$element['supported']);
00049 case 'uiLocale';
00050 return array('selected' => $element['supportedLocales'],
00051 'disabled' => !$element['supported']);
00052 case 'submissionLocale';
00053 return array('selected' => $element['supportedSubmissionLocales'],
00054 'disabled' => !$element['supported']);
00055 case 'formLocale';
00056 return array('selected' => $element['supportedFormLocales'],
00057 'disabled' => !$element['supported']);
00058 default:
00059 assert(false);
00060 break;
00061 }
00062 }
00063
00067 function getCellActions($request, $row, $column) {
00068 import('lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
00069 import('lib.pkp.classes.linkAction.request.AjaxAction');
00070
00071 $element = $row->getData();
00072 $router =& $request->getRouter();
00073 $actions = array();
00074 $actionArgs = array('rowId' => $row->getId());
00075
00076 $action = null;
00077 $actionRequest = null;
00078
00079 switch ($column->getId()) {
00080 case 'enable':
00081 $enabled = $element['supported'];
00082 if ($enabled) {
00083 $action = 'disable-' . $row->getId();
00084 $actionRequest = new RemoteActionConfirmationModal(__('admin.languages.confirmDisable'),
00085 __('common.disable'), $router->url($request, null, null, 'disableLocale', null, $actionArgs));
00086 } else {
00087 $action = 'enable-' . $row->getId();
00088 $actionRequest = new AjaxAction($router->url($request, null, null, 'enableLocale', null, $actionArgs));
00089 }
00090 break;
00091 case 'sitePrimary':
00092 $primary = $element['primary'];
00093 if (!$primary) {
00094 $action = 'setPrimary-' . $row->getId();
00095 $actionRequest = new AjaxAction($router->url($request, null, null, 'setPrimaryLocale', null, $actionArgs));
00096 }
00097 break;
00098 case 'pressPrimary':
00099 $primary = $element['primary'];
00100 if (!$primary) {
00101 $action = 'setPrimary-' . $row->getId();
00102 $actionRequest = new AjaxAction($router->url($request, null, null, 'setContextPrimaryLocale', null, $actionArgs));
00103 }
00104 break;
00105 case 'uiLocale':
00106 $action = 'setUiLocale-' . $row->getId();
00107 $actionArgs['setting'] = 'supportedLocales';
00108 $actionArgs['value'] = !$element['supportedLocales'];
00109 $actionRequest = new AjaxAction($router->url($request, null, null, 'saveLanguageSetting', null, $actionArgs));
00110 break;
00111 case 'submissionLocale':
00112 $action = 'setSubmissionLocale-' . $row->getId();
00113 $actionArgs['setting'] = 'supportedSubmissionLocales';
00114 $actionArgs['value'] = !$element['supportedSubmissionLocales'];
00115 $actionRequest = new AjaxAction($router->url($request, null, null, 'saveLanguageSetting', null, $actionArgs));
00116 break;
00117 case 'formLocale':
00118 $action = 'setFormLocale-' . $row->getId();
00119 $actionArgs['setting'] = 'supportedFormLocales';
00120 $actionArgs['value'] = !$element['supportedFormLocales'];
00121 $actionRequest = new AjaxAction($router->url($request, null, null, 'saveLanguageSetting', null, $actionArgs));
00122 break;
00123 default:
00124 break;
00125 }
00126
00127 if ($action && $actionRequest) {
00128 $linkAction = new LinkAction($action, $actionRequest, null, null);
00129 $actions = array($linkAction);
00130 }
00131
00132 return $actions;
00133 }
00134 }
00135
00136 ?>