diff options
Diffstat (limited to 'modules-available/sysconfig/page.inc.php')
-rw-r--r-- | modules-available/sysconfig/page.inc.php | 61 |
1 files changed, 18 insertions, 43 deletions
diff --git a/modules-available/sysconfig/page.inc.php b/modules-available/sysconfig/page.inc.php index 64162294..b11f399e 100644 --- a/modules-available/sysconfig/page.inc.php +++ b/modules-available/sysconfig/page.inc.php @@ -152,11 +152,12 @@ class Page_SysConfig extends Page $listid = Request::post('list', Request::REQUIRED, 'int'); $this->listConfigContents($listid); return; + default: } Message::addError('invalid-action', $action, 'main'); } - private function getLocationNames($locations, $ids) + private function getLocationNames(array $locations, array $ids): string { $ret = array(); foreach ($ids as $id) { @@ -174,12 +175,12 @@ class Page_SysConfig extends Page private function listConfigs() { // Configs - $res = Database::simpleQuery("SELECT c.configid, c.title, c.filepath, c.status, c.dateline, + $res = Database::simpleQuery("SELECT c.configid, c.title, c.filepath, c.status, c.dateline, c.warnings, GROUP_CONCAT(DISTINCT cl.locationid) AS loclist, GROUP_CONCAT(DISTINCT cxm.moduleid) AS modlist FROM configtgz c LEFT JOIN configtgz_x_module cxm USING (configid) LEFT JOIN configtgz_location cl ON (c.configid = cl.configid) - GROUP BY configid + GROUP BY configid, title ORDER BY title ASC"); $configs = array(); if ($this->currentLoc !== 0) { @@ -188,7 +189,7 @@ class Page_SysConfig extends Page $locationName = false; } $hasDefault = false; - while ($row = $res->fetch(PDO::FETCH_ASSOC)) { + foreach ($res as $row) { if (is_null($row['loclist'])) { $locList = array(); } else { @@ -208,6 +209,8 @@ class Page_SysConfig extends Page $this->haveOverriddenLocations = true; } $configs[] = array( + 'warnings' => $row['warnings'], + 'warnings_hidden' => (!empty($row['warnings']) && $row['status'] === 'OK') ? '' : 'hidden', 'configid' => $row['configid'], 'config' => $row['title'], 'modlist' => $row['modlist'], @@ -234,7 +237,7 @@ class Page_SysConfig extends Page private function listModules() { // Config modules - $modules = ConfigModule::getAll(); + $modules = ConfigModule::getAll() ?? []; $types = array_map(function ($mod) { return $mod->moduleType(); }, $modules); $titles = array_map(function ($mod) { return $mod->title(); }, $modules); array_multisort($types, SORT_ASC, $titles, SORT_ASC, $modules); @@ -265,27 +268,7 @@ class Page_SysConfig extends Page Taskmanager::addErrorMessage($status); Util::redirect('?do=sysconfig&locationid=' . $this->currentLoc); } - - // Sort files for better display - $dirs = array(); - foreach ($status['data']['entries'] as $file) { - if ($file['isdir']) - continue; - $dirs[dirname($file['name'])][] = $file; - } - ksort($dirs); - $list = array(); - foreach ($dirs as $dir => $files) { - $list[] = array( - 'name' => $dir, - 'isdir' => true - ); - sort($files); - foreach ($files as $file) { - $file['size'] = Util::readableFileSize($file['size']); - $list[] = $file; - } - } + $list = SysConfig::archiveContentsFromTask($status); // render the template Render::addDialog(Dictionary::translate('lang_contentOf') . ' ' . $row['title'], false, 'custom-filelist', array( @@ -309,7 +292,7 @@ class Page_SysConfig extends Page . " ORDER BY module.title ASC", array('configid' => $configid)); $modules = array(); - while ($row = $res->fetch(PDO::FETCH_ASSOC)) { + foreach ($res as $row) { $modules[] = array( 'module' => $row['moduletitle'], 'moduleid' => $row['moduleid'] @@ -354,7 +337,7 @@ class Page_SysConfig extends Page { $configid = Request::post('rebuild', Request::REQUIRED, 'int'); $config = ConfigTgz::get($configid); - if ($config === false) { + if ($config === null) { Message::addError('config-invalid', $configid); Util::redirect('?do=sysconfig&locationid=' . $this->currentLoc); } @@ -393,9 +376,9 @@ class Page_SysConfig extends Page Message::addSuccess('module-deleted', $module['title']); } // Rebuild depending config.tgz - while ($crow = $existing->fetch(PDO::FETCH_ASSOC)) { + foreach ($existing as $crow) { $config = ConfigTgz::get($crow['configid']); - if ($config !== false) { + if ($config !== null) { $config->generate(); } } @@ -419,11 +402,11 @@ class Page_SysConfig extends Page { $moduleid = Request::post('rebuild', Request::REQUIRED); $module = ConfigModule::get($moduleid); - if ($module === false) { + if ($module === null) { Message::addError('config-invalid', $moduleid); Util::redirect('?do=sysconfig'); } - $ret = $module->generate(false, 250); + $ret = $module->generate(false, null, 500); if ($ret === true) Message::addSuccess('module-rebuilt', $module->title()); elseif ($ret === false) @@ -437,7 +420,7 @@ class Page_SysConfig extends Page { $configid = Request::post('del', Request::REQUIRED); $config = ConfigTgz::get($configid); - if ($config === false) { + if ($config === null) { Message::addError('config-invalid', $configid); Util::redirect('?do=sysconfig&locationid=' . $this->currentLoc); } @@ -481,22 +464,14 @@ class Page_SysConfig extends Page if (Request::post('action') === 'status') { $mods = Request::post('mods'); $confs = Request::post('confs'); - $outMods = array(); - $outConfs = array(); $mods = explode(',', $mods); $confs = explode(',', $confs); // Mods - $res = Database::simpleQuery("SELECT moduleid FROM configtgz_module + $outMods = Database::queryAll("SELECT moduleid AS id FROM configtgz_module WHERE moduleid in (:mods) AND status = 'OK'", compact('mods')); - while ($row = $res->fetch(PDO::FETCH_ASSOC)) { - $outMods[] = $row['moduleid']; - } // Confs - $res = Database::simpleQuery("SELECT configid FROM configtgz + $outConfs = Database::queryAll("SELECT configid AS id, warnings FROM configtgz WHERE configid in (:confs) AND status = 'OK'", compact('confs')); - while ($row = $res->fetch(PDO::FETCH_ASSOC)) { - $outConfs[] = $row['configid']; - } Header('Content-Type: application/json'); die(json_encode(array('mods' => $outMods, 'confs' => $outConfs))); } |