• Main Page
  • Modules
  • Classes
  • Files
  • File List

controllers/grid/languages/LanguageGridCellProvider.inc.php

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 ?>

Generated on Mon Sep 17 2012 13:58:56 for Open Monograph Press by  doxygen 1.7.1