diff options
author | Simon Rettberg | 2015-02-04 17:58:01 +0100 |
---|---|---|
committer | Simon Rettberg | 2015-02-04 17:58:01 +0100 |
commit | 43bc68c732338be2e82c5c516f20704e12d82a7c (patch) | |
tree | 3cd7b72884b70906e2898bcff643720d88d4cbac /modules | |
parent | Config.tgz improvements, automatic rebuilds etc. (diff) | |
download | slx-admin-43bc68c732338be2e82c5c516f20704e12d82a7c.tar.gz slx-admin-43bc68c732338be2e82c5c516f20704e12d82a7c.tar.xz slx-admin-43bc68c732338be2e82c5c516f20704e12d82a7c.zip |
Finish config module editing
Diffstat (limited to 'modules')
-rw-r--r-- | modules/sysconfig.inc.php | 35 | ||||
-rw-r--r-- | modules/sysconfig/addmodule.inc.php | 2 | ||||
-rw-r--r-- | modules/sysconfig/addmodule_branding.inc.php | 2 | ||||
-rw-r--r-- | modules/sysconfig/addmodule_custommodule.inc.php | 27 |
4 files changed, 61 insertions, 5 deletions
diff --git a/modules/sysconfig.inc.php b/modules/sysconfig.inc.php index e9b7e677..8c08af4f 100644 --- a/modules/sysconfig.inc.php +++ b/modules/sysconfig.inc.php @@ -91,6 +91,41 @@ class Page_SysConfig extends Page } Message::addError('invalid-action', $action); } + + protected function doAjax() + { + if (Request::post('action') === 'status') { + $mods = Request::post('mods'); + $confs = Request::post('confs'); + error_log('Hit. Mods: ' . $mods . ', Confs: ' . $confs); + $outMods = array(); + $outConfs = array(); + $mods = explode(',', $mods); + $confs = explode(',', $confs); + // Mods + $string = '0'; + foreach ($mods as $mod) { + if (is_numeric($mod)) + $string .= ',' . $mod; + } + $res = Database::simpleQuery("SELECT moduleid FROM configtgz_module WHERE moduleid in ($string) AND status = 'OK'"); + while ($row = $res->fetch(PDO::FETCH_ASSOC)) { + $outMods[] = $row['moduleid']; + } + // Confs + $string = '0'; + foreach ($confs as $conf) { + if (is_numeric($conf)) + $string .= ',' . $conf; + } + $res = Database::simpleQuery("SELECT configid FROM configtgz WHERE configid in ($string) AND status = 'OK'"); + while ($row = $res->fetch(PDO::FETCH_ASSOC)) { + $outConfs[] = $row['configid']; + } + Header('Content-Type: application/json'); + die(json_encode(array('mods' => $outMods, 'confs' => $outConfs))); + } + } /** * List all configurations and configuration modules. diff --git a/modules/sysconfig/addmodule.inc.php b/modules/sysconfig/addmodule.inc.php index 5e9ecb3a..31f3823a 100644 --- a/modules/sysconfig/addmodule.inc.php +++ b/modules/sysconfig/addmodule.inc.php @@ -100,6 +100,8 @@ abstract class AddModule_Base if (self::$instance === false) { Util::traceError('No step instance yet'); } + if (self::$instance->edit !== false) + Message::addInfo('replacing-module', self::$instance->edit->title ()); self::$instance->renderInternal(); } diff --git a/modules/sysconfig/addmodule_branding.inc.php b/modules/sysconfig/addmodule_branding.inc.php index 527b2e7b..7fc7abc5 100644 --- a/modules/sysconfig/addmodule_branding.inc.php +++ b/modules/sysconfig/addmodule_branding.inc.php @@ -58,7 +58,7 @@ class Branding_ProcessFile extends AddModule_Base 'tarFile' => $this->tarFile, 'svgFile' => $this->svgFile )); - $this->task = Taskmanager::waitComplete($this->task); + $this->task = Taskmanager::waitComplete($this->task, 5000); if (Taskmanager::isFailed($this->task)) { @unlink($this->svgFile); Taskmanager::addErrorMessage($this->task); diff --git a/modules/sysconfig/addmodule_custommodule.inc.php b/modules/sysconfig/addmodule_custommodule.inc.php index bd66f417..dfa03a19 100644 --- a/modules/sysconfig/addmodule_custommodule.inc.php +++ b/modules/sysconfig/addmodule_custommodule.inc.php @@ -13,7 +13,8 @@ class CustomModule_Start extends AddModule_Base { Session::set('mod_temp', false); Render::addDialog(Dictionary::translate('config-module', 'custom_title'), false, 'sysconfig/custom-upload', array( - 'step' => 'CustomModule_ProcessUpload' + 'step' => 'CustomModule_ProcessUpload', + 'edit' => $this->edit ? $this->edit->id() : false )); } @@ -84,9 +85,17 @@ class CustomModule_ProcessUpload extends AddModule_Base $list[] = $file; } } + if ($this->edit !== false) + $title = $this->edit->title(); + elseif (isset($_FILES['modulefile']['name'])) + $title = basename($_FILES['modulefile']['name']); + else + $title = ''; Render::addDialog(Dictionary::translate('config-module', 'custom_title'), false, 'sysconfig/custom-fileselect', array( 'step' => 'CustomModule_CompressModule', 'files' => $list, + 'edit' => $this->edit ? $this->edit->id() : false, + 'title' => $title )); Session::save(); } @@ -123,20 +132,30 @@ class CustomModule_CompressModule extends AddModule_Base $this->taskError($status); } // Seems ok, create entry - $module = ConfigModule::getInstance('CustomModule'); + if ($this->edit === false) + $module = ConfigModule::getInstance('CustomModule'); + else + $module = $this->edit; if ($module === false) { Message::addError('error-read', 'custommodule.inc.php'); Util::redirect('?do=SysConfig&action=addmodule&step=CustomModule_Start'); } $module->setData('tmpFile', $destFile); - 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=CustomModule_Start'); elseif (!$module->generate(true, NULL, 200)) Util::redirect('?do=SysConfig&action=addmodule&step=CustomModule_Start'); Session::set('mod_temp', 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'); } |