diff options
author | Simon Rettberg | 2015-01-29 20:41:41 +0100 |
---|---|---|
committer | Simon Rettberg | 2015-01-29 20:41:41 +0100 |
commit | 06d9d5f70e8475e768b528b1f46e1005b8c2e1ee (patch) | |
tree | a2355836c9128cf4d5aa3939c48bad635ed768b8 /modules | |
parent | [sysconfig] Add legend (diff) | |
download | slx-admin-06d9d5f70e8475e768b528b1f46e1005b8c2e1ee.tar.gz slx-admin-06d9d5f70e8475e768b528b1f46e1005b8c2e1ee.tar.xz slx-admin-06d9d5f70e8475e768b528b1f46e1005b8c2e1ee.zip |
Config.tgz improvements, automatic rebuilds etc.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/sysconfig.inc.php | 6 | ||||
-rw-r--r-- | modules/sysconfig/addconfig.inc.php | 2 | ||||
-rw-r--r-- | modules/sysconfig/addmodule.inc.php | 16 | ||||
-rw-r--r-- | modules/sysconfig/addmodule_adauth.inc.php | 47 | ||||
-rw-r--r-- | modules/sysconfig/addmodule_branding.inc.php | 44 | ||||
-rw-r--r-- | modules/sysconfig/addmodule_custommodule.inc.php | 2 |
6 files changed, 81 insertions, 36 deletions
diff --git a/modules/sysconfig.inc.php b/modules/sysconfig.inc.php index 94e2455a..e9b7e677 100644 --- a/modules/sysconfig.inc.php +++ b/modules/sysconfig.inc.php @@ -127,7 +127,8 @@ class Page_SysConfig extends Page } Render::addTemplate('sysconfig/_page', array( 'configs' => $configs, - 'modules' => $modules + 'modules' => $modules, + 'havemodules' => (count($modules) > 0) )); Render::addScriptTop('custom'); Render::addFooter('<script> $(window).load(function (e) { @@ -243,8 +244,7 @@ class Page_SysConfig extends Page Message::addError('config-invalid', $configid); Util::redirect('?do=SysConfig'); } - //$ret = $config->generate(false, 350); // TODO - $ret = $config->generate(false, 350) === 'OK'; // TODO + $ret = $config->generate(false, 350); // TODO if ($ret === true) Message::addSuccess('module-rebuilt', $config->title()); elseif ($ret === false) diff --git a/modules/sysconfig/addconfig.inc.php b/modules/sysconfig/addconfig.inc.php index 55194069..daa2cd58 100644 --- a/modules/sysconfig/addconfig.inc.php +++ b/modules/sysconfig/addconfig.inc.php @@ -153,7 +153,7 @@ class AddConfig_Finish extends AddConfig_Base Util::redirect('?do=SysConfig&action=addconfig'); } $this->config = ConfigTgz::insert($title, $modules); - if ($this->config === false || $this->config->generate() !== 'OK') { + if ($this->config === false || $this->config->generate(true, 10000) !== true) { Message::addError('unsuccessful-action'); Util::redirect('?do=SysConfig&action=addconfig'); } diff --git a/modules/sysconfig/addmodule.inc.php b/modules/sysconfig/addmodule.inc.php index 69160964..5e9ecb3a 100644 --- a/modules/sysconfig/addmodule.inc.php +++ b/modules/sysconfig/addmodule.inc.php @@ -12,6 +12,12 @@ abstract class AddModule_Base * @var \AddModule_Base */ private static $instance = false; + + /** + * Instance of ConfigModule we're editing. False if not editing but creating. + * @var \ConfigModule + */ + protected $edit = false; /** * @@ -25,6 +31,14 @@ abstract class AddModule_Base Util::redirect('?do=SysConfig'); } self::$instance = new $step(); + if (Request::any('edit')) { + self::$instance->edit = ConfigModule::get(Request::any('edit')); + if (self::$instance->edit === false) + Util::traceError('Invalid module id for editing'); + if (!preg_match('/^' . self::$instance->edit->moduleType() . '_/', $step)) + Util::traceError('Module to edit is of different type!'); + Util::addRedirectParam('edit', self::$instance->edit->id()); + } } protected function tmError() @@ -40,7 +54,7 @@ abstract class AddModule_Base } elseif (isset($status['statusCode'])) { $error = $status['statusCode']; } else { - $error = Dictionary::translate('lang_unknwonTaskManager'); // TODO: No text + $error = Dictionary::translate('lang_unknwonTaskManager'); } Message::addError('task-error', $error); Util::redirect('?do=SysConfig'); diff --git a/modules/sysconfig/addmodule_adauth.inc.php b/modules/sysconfig/addmodule_adauth.inc.php index 2418916e..26ca5b79 100644 --- a/modules/sysconfig/addmodule_adauth.inc.php +++ b/modules/sysconfig/addmodule_adauth.inc.php @@ -9,17 +9,28 @@ class AdAuth_Start extends AddModule_Base protected function renderInternal() { - Session::set('ad_check', false); - Session::save(); - Render::addDialog(Dictionary::translate('config-module', 'adAuth_title'), false, 'sysconfig/ad-start', array( - 'step' => 'AdAuth_CheckConnection', - 'title' => Request::post('title'), - 'server' => Request::post('server'), - 'searchbase' => Request::post('searchbase'), - 'binddn' => Request::post('binddn'), - 'bindpw' => Request::post('bindpw'), - 'home' => Request::post('home') - )); + if ($this->edit !== false) { + $data = array( + 'title' => $this->edit->title(), + 'server' => $this->edit->getData('server'), + 'searchbase' => $this->edit->getData('searchbase'), + 'binddn' => $this->edit->getData('binddn'), + 'bindpw' => $this->edit->getData('bindpw'), + 'home' => $this->edit->getData('home'), + 'edit' => $this->edit->id() + ); + } else { + $data = array( + 'title' => Request::post('title'), + 'server' => Request::post('server'), + 'searchbase' => Request::post('searchbase'), + 'binddn' => Request::post('binddn'), + 'bindpw' => Request::post('bindpw'), + 'home' => Request::post('home') + ); + } + $data['step'] = 'AdAuth_CheckConnection'; + Render::addDialog(Dictionary::translate('config-module', 'adAuth_title'), false, 'sysconfig/ad-start', $data); } } @@ -80,6 +91,7 @@ class AdAuth_CheckConnection extends AddModule_Base protected function renderInternal() { Render::addDialog(Dictionary::translate('config-module', 'adAuth_title'), false, 'sysconfig/ad-checkconnection', array_merge($this->taskIds, array( + 'edit' => Request::post('edit'), 'title' => Request::post('title'), 'server' => Request::post('server'), 'searchbase' => Request::post('searchbase'), @@ -125,17 +137,24 @@ class AdAuth_Finish extends AddModule_Base $title = Request::post('title'); if (empty($title)) $title = 'AD: ' . Request::post('server'); - $module = ConfigModule::getInstance('AdAuth'); + if ($this->edit === false) + $module = ConfigModule::getInstance('AdAuth'); + else + $module = $this->edit; $module->setData('server', Request::post('server')); $module->setData('searchbase', $searchbase); $module->setData('binddn', $binddn); $module->setData('bindpw', Request::post('bindpw')); $module->setData('home', Request::post('home')); - if (!$module->insert($title)) { + if ($this->edit !== false) + $ret = $module->update(); + else + $ret = $module->insert($title); + if (!$ret) { Message::addError('value-invalid', 'any', 'any'); $tgz = false; } else { - $tgz = $module->generate(true); + $tgz = $module->generate(true, NULL, 200); } if ($tgz === false) { AddModule_Base::setStep('AdAuth_Start'); // Continues with AdAuth_Start for render() diff --git a/modules/sysconfig/addmodule_branding.inc.php b/modules/sysconfig/addmodule_branding.inc.php index 7b7dace9..527b2e7b 100644 --- a/modules/sysconfig/addmodule_branding.inc.php +++ b/modules/sysconfig/addmodule_branding.inc.php @@ -11,6 +11,7 @@ class Branding_Start extends AddModule_Base { Render::addDialog(Dictionary::translate('config-module', 'branding_title'), false, 'sysconfig/branding-start', array( 'step' => 'Branding_ProcessFile', + 'edit' => $this->edit ? $this->edit->id() : false )); } @@ -79,6 +80,8 @@ class Branding_ProcessFile extends AddModule_Base 'svg' => $svg, 'error' => $this->task['data']['error'], 'step' => 'Branding_Finish', + 'edit' => $this->edit ? $this->edit->id() : false, + 'title' => $this->edit ? $this->edit->title() : false ) ); @unlink($this->svgFile); @@ -145,12 +148,12 @@ class Branding_ProcessFile extends AddModule_Base if (!empty($p["scheme"])) return $relative; - extract(parse_url($absolute)); - $path = dirname($path); + $parsed = parse_url($absolute); + $path = dirname($parsed['path']); if ($relative{0} === '/') { if ($relative{1} === '/') - return "$scheme:$relative"; + return "{$parsed['scheme']}:$relative"; $cparts = array_filter(explode("/", $relative)); } else { $aparts = array_filter(explode("/", $path)); @@ -169,17 +172,16 @@ class Branding_ProcessFile extends AddModule_Base } $path = implode("/", $cparts); $url = ""; - if ($scheme) - $url = "$scheme://"; - if (!empty($user)) { - $url .= "$user"; - if (!empty($pass)) { - $url .= ":$pass"; - } + if (!empty($parsed['scheme'])) + $url = $parsed['scheme'] . "://"; + if (!empty($parsed['user'])) { + $url .= $parsed['user']; + if (!empty($parsed['pass'])) + $url .= ":" . $parsed['pass']; $url .= "@"; } - if ($host) - $url .= "$host/"; + if ($parsed['host']) + $url .= $parsed['host'] . "/"; $url .= $path; return $url; } @@ -203,21 +205,31 @@ class Branding_Finish extends AddModule_Base Message::addError('error-read', $tgz); Util::redirect('?do=SysConfig&action=addmodule&step=Branding_Start'); } - $module = ConfigModule::getInstance('Branding'); + if ($this->edit === false) + $module = ConfigModule::getInstance('Branding'); + else + $module = $this->edit; if ($module === false) { Message::addError('error-read', 'branding.inc.php'); Util::redirect('?do=SysConfig&action=addmodule&step=Branding_Start'); } $module->setData('tmpFile', $tgz); - if (!$module->insert($title)) + if ($this->edit !== false) + $ret = $module->update(); + else + $ret = $module->insert($title); + if (!$ret) Util::redirect('?do=SysConfig&action=addmodule&step=Branding_Start'); - elseif (!$module->generate(true)) + elseif ($module->generate(true, NULL, 200) === false) Util::redirect('?do=SysConfig&action=addmodule&step=Branding_Start'); Session::set('logo_tgz', false); Session::set('logo_name', false); Session::save(); // Yay - Message::addSuccess('module-added'); + if ($this->edit !== false) + Message::addSuccess('module-edited'); + else + Message::addSuccess('module-added'); Util::redirect('?do=SysConfig'); } diff --git a/modules/sysconfig/addmodule_custommodule.inc.php b/modules/sysconfig/addmodule_custommodule.inc.php index 1be9c10f..bd66f417 100644 --- a/modules/sysconfig/addmodule_custommodule.inc.php +++ b/modules/sysconfig/addmodule_custommodule.inc.php @@ -131,7 +131,7 @@ class CustomModule_CompressModule extends AddModule_Base $module->setData('tmpFile', $destFile); if (!$module->insert($title)) Util::redirect('?do=SysConfig&action=addmodule&step=CustomModule_Start'); - elseif (!$module->generate(true)) + elseif (!$module->generate(true, NULL, 200)) Util::redirect('?do=SysConfig&action=addmodule&step=CustomModule_Start'); Session::set('mod_temp', false); Session::save(); |