00001 <?php
00002
00015
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
00047
00051 function initialize(&$request, $args = null) {
00052 parent::initialize($request, $args);
00053
00054
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
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
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
00154 $settingName = $args['settingName'];
00155
00156
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
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 ?>