diff options
Diffstat (limited to 'modules/sysconfig/addconfig.inc.php')
| -rw-r--r-- | modules/sysconfig/addconfig.inc.php | 221 |
1 files changed, 0 insertions, 221 deletions
diff --git a/modules/sysconfig/addconfig.inc.php b/modules/sysconfig/addconfig.inc.php deleted file mode 100644 index 8203e555..00000000 --- a/modules/sysconfig/addconfig.inc.php +++ /dev/null @@ -1,221 +0,0 @@ -<?php - -/** - * Addconfig subpage base - makes sure - * we have the two required methods preprocess and render - */ -abstract class AddConfig_Base -{ - - /** - * Holds the instance for the currently executing step - * @var \AddConfig_Base - */ - private static $instance = false; - - /** - * Config being edited (if any) - * @var \ConfigTgz - */ - protected $edit = false; - - /** - * - * @param type $step - * @return \AddConfig_Base - */ - public static function setStep($step) - { - if (empty($step) || !class_exists($step) || get_parent_class($step) !== 'AddConfig_Base') { - Message::addError('invalid-action', $step); - Util::redirect('?do=SysConfig'); - } - self::$instance = new $step(); - if (Request::any('edit')) { - self::$instance->edit = ConfigTgz::get(Request::any('edit')); - if (self::$instance->edit === false) - Util::traceError('Invalid config id for editing'); - Util::addRedirectParam('edit', self::$instance->edit->id()); - } - } - - protected function tmError() - { - Message::addError('taskmanager-error'); - Util::redirect('?do=SysConfig'); - } - - protected function taskError($status) - { - if (isset($status['data']['error'])) { - $error = $status['data']['error']; - } elseif (isset($status['statusCode'])) { - $error = $status['statusCode']; - } else { - $error = Dictionary::translate('lang_unknwonTaskManager'); // TODO: No text - } - Message::addError('task-error', $error); - Util::redirect('?do=SysConfig'); - } - - /** - * Called before any HTML rendering happens, so you can - * pepare stuff, validate input, and optionally redirect - * early if something is wrong, or you received post - * data etc. - */ - protected function preprocessInternal() - { - // void - } - - /** - * Do page rendering. - */ - protected function renderInternal() - { - // void - } - - /** - * Handle ajax stuff - */ - protected function ajaxInternal() - { - // void - } - - public static function preprocess() - { - if (self::$instance === false) { - Util::traceError('No step instance yet'); - } - self::$instance->preprocessInternal(); - } - - public static function render() - { - if (self::$instance === false) - Util::traceError('No step instance yet'); - if (self::$instance->edit !== false) - Message::addInfo('replacing-config', self::$instance->edit->title()); - self::$instance->renderInternal(); - } - - public static function ajax() - { - if (self::$instance === false) { - Util::traceError('No step instance yet'); - } - self::$instance->ajaxInternal(); - } - -} - -/** - * Start dialog for adding config. Ask for title, - * show selection of modules. - */ -class AddConfig_Start extends AddConfig_Base -{ - - protected function renderInternal() - { - $mods = ConfigModule::getList(); - $res = Database::simpleQuery("SELECT moduleid, title, moduletype, filepath FROM configtgz_module" - . " ORDER BY title ASC"); // Move to ConfigModule - if ($this->edit === false) { - $active = array(); - } else { - $active = $this->edit->getModuleIds(); - } - $id = 0; - $modGroups = array(); - foreach ($mods as &$mod) { - $mod['groupid'] = 'g' . ++$id; - $modGroups[$mod['group']] =& $mod; - } - unset($mod); - while ($row = $res->fetch(PDO::FETCH_ASSOC)) { - if (!isset($mods[$row['moduletype']])) { - $mods[$row['moduletype']] = array( - 'unique' => false, - 'group' => 'Undefined moduletype in addconfig.inc.php', - 'groupid' => 'g' . ++$id, - ); - $modGroups[$mods[$row['moduletype']]['group']] =& $mods[$row['moduletype']]; - } - unset($group); - $group =& $modGroups[$mods[$row['moduletype']]['group']]; - if (!isset($group['modules'])) { - $group['modules'] = array(); - } - if (empty($row['filepath']) || !file_exists($row['filepath'])) $row['missing'] = true; - $row['active'] = in_array($row['moduleid'], $active); - $group['modules'][] = $row; - } - if ($this->edit !== false) { - $title = $this->edit->title(); - } elseif (Request::any('title')) { - $title = Request::any('title'); - } else { - $title = ''; - } - foreach ($modGroups as &$mod) { - if (!empty($mod['modules']) && $mod['unique']) { - array_unshift($mod['modules'], array( - 'moduleid' => 0, - 'title' => Dictionary::translate('lang_noModuleFromThisGroup'), - )); - } - } - unset($mod); - Render::addDialog(Dictionary::translate("lang_configurationCompilation"), false, 'cfg-start', array( - 'step' => 'AddConfig_Finish', - 'groups' => array_values($modGroups), - 'title' => $title, - 'edit' => ($this->edit !== false ? $this->edit->id() : false) - )); - } - -} - -/** - * Success dialog if adding config worked. - */ -class AddConfig_Finish extends AddConfig_Base -{ - private $config = false; - - protected function preprocessInternal() - { - $modules = Request::post('module'); - $title = Request::post('title'); - if (!is_array($modules)) { - Message::addError('missing-file'); - Util::redirect('?do=SysConfig&action=addconfig'); - } - if (empty($title)) { - Message::addError('missing-title'); - Util::redirect('?do=SysConfig&action=addconfig'); - } - if ($this->edit === false) { - $this->config = ConfigTgz::insert($title, $modules); - } else { - $this->edit->update($title, $modules); - $this->config = $this->edit; - } - if ($this->config === false || $this->config->generate(true, 150) === false) { - Message::addError('unsuccessful-action'); - Util::redirect('?do=SysConfig&action=addconfig'); - } - } - - protected function renderInternal() - { - Render::addDialog(Dictionary::translate('lang_configurationCompilation'), false, 'cfg-finish', array( - 'configid' => $this->config->id() - )); - } - -} |
