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

controllers/tab/settings/AdminSettingsTabHandler.inc.php

00001 <?php
00002 
00015 // Import the base Handler.
00016 import('controllers.tab.settings.SettingsTabHandler');
00017 
00018 class AdminSettingsTabHandler extends SettingsTabHandler {
00019 
00023    function AdminSettingsTabHandler() {
00024       $role = array(ROLE_ID_SITE_ADMIN);
00025 
00026       $this->addRoleAssignment(ROLE_ID_PRESS_MANAGER,
00027          array(
00028             'showFileUploadForm',
00029             'uploadFile',
00030             'saveFile',
00031             'deleteFile',
00032             'fetchFile'
00033          )
00034       );
00035 
00036       parent::SettingsTabHandler($role);
00037       $this->setPageTabs(array(
00038          'siteSetup' => 'controllers.tab.settings.siteSetup.form.SiteSetupForm',
00039          'languages' => 'controllers/tab/admin/languages/languages.tpl',
00040          'plugins' => 'controllers/tab/admin/plugins/sitePlugins.tpl',
00041       ));
00042    }
00043 
00044 
00045    //
00046    // Extended methods from SettingsTabHandler
00047    //
00051    function initialize(&$request, $args = null) {
00052       parent::initialize($request, $args);
00053 
00054       // Load grid-specific translations
00055       AppLocale::requireComponents(
00056          LOCALE_COMPONENT_PKP_ADMIN,
00057          LOCALE_COMPONENT_OMP_ADMIN,
00058          LOCALE_COMPONENT_PKP_MANAGER,
00059          LOCALE_COMPONENT_OMP_MANAGER
00060       );
00061    }
00062 
00063 
00064    //
00065    // Public methods.
00066    //
00073    function showFileUploadForm($args, &$request) {
00074       $fileUploadForm =& $this->_getFileUploadForm($request);
00075       $fileUploadForm->initData($request);
00076 
00077       $json = new JSONMessage(true, $fileUploadForm->fetch($request));
00078       return $json->getString();
00079    }
00080 
00087    function uploadFile($args, &$request) {
00088       $fileUploadForm =& $this->_getFileUploadForm($request);
00089       $json = new JSONMessage();
00090 
00091       $temporaryFileId = $fileUploadForm->uploadFile($request);
00092 
00093       if ($temporaryFileId !== false) {
00094          $json->setAdditionalAttributes(array(
00095             'temporaryFileId' => $temporaryFileId
00096          ));
00097       } else {
00098          $json->setStatus(false);
00099          $json->setContent(__('common.uploadFailed'));
00100       }
00101 
00102       return $json->getString();
00103    }
00104 
00111    function saveFile($args, &$request) {
00112       $fileUploadForm =& $this->_getFileUploadForm($request);
00113       $fileUploadForm->readInputData();
00114 
00115       if ($fileUploadForm->validate()) {
00116          if ($fileUploadForm->execute($request)) {
00117             // Generate a JSON message with an event
00118             $settingName = $request->getUserVar('fileSettingName');
00119             return DAO::getDataChangedEvent($settingName);
00120          }
00121       }
00122       $json = new JSONMessage(false, __('common.invalidFileType'));
00123       return $json->getString();
00124    }
00125 
00132    function deleteFile($args, &$request) {
00133       $settingName = $request->getUserVar('fileSettingName');
00134 
00135       $tabForm = $this->getTabForm();
00136       $tabForm->initData($request);
00137 
00138       if ($tabForm->deleteFile($settingName, $request)) {
00139          return DAO::getDataChangedEvent($settingName);
00140       } else {
00141          return new JSONMessage(false);
00142       }
00143    }
00144 
00152    function fetchFile($args, &$request) {
00153       // Get the setting name.
00154       $settingName = $args['settingName'];
00155 
00156       // Try to fetch the file.
00157       $tabForm = $this->getTabForm();
00158       $tabForm->initData($request);
00159 
00160       $renderedElement = $tabForm->renderFileView($settingName, $request);
00161 
00162       $json = new JSONMessage();
00163       if ($renderedElement == false) {
00164          $json->setAdditionalAttributes(array('noData' => $settingName));
00165       } else {
00166          $json->setElementId($settingName);
00167          $json->setContent($renderedElement);
00168       }
00169       return $json->getString();
00170    }
00171 
00172 
00173    //
00174    // Private helper methods.
00175    //
00181    function &_getFileUploadForm($request) {
00182       $settingName = $request->getUserVar('fileSettingName');
00183       $fileType = $request->getUserVar('fileType');
00184 
00185       switch ($fileType) {
00186          case 'image':
00187             import('controllers.tab.settings.siteSetup.form.NewSiteImageFileForm');
00188             $fileUploadForm = new NewSiteImageFileForm($settingName);
00189             break;
00190          case 'css':
00191             import('controllers.tab.settings.siteSetup.form.NewSiteCssFileForm');
00192             $fileUploadForm = new NewSiteCssFileForm($settingName);
00193             break;
00194          default:
00195             assert(false);
00196             break;
00197       }
00198 
00199       return $fileUploadForm;
00200    }
00201 }
00202 
00203 ?>

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