summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorSimon Rettberg2015-01-29 20:41:41 +0100
committerSimon Rettberg2015-01-29 20:41:41 +0100
commit06d9d5f70e8475e768b528b1f46e1005b8c2e1ee (patch)
treea2355836c9128cf4d5aa3939c48bad635ed768b8 /modules
parent[sysconfig] Add legend (diff)
downloadslx-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.php6
-rw-r--r--modules/sysconfig/addconfig.inc.php2
-rw-r--r--modules/sysconfig/addmodule.inc.php16
-rw-r--r--modules/sysconfig/addmodule_adauth.inc.php47
-rw-r--r--modules/sysconfig/addmodule_branding.inc.php44
-rw-r--r--modules/sysconfig/addmodule_custommodule.inc.php2
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();