summaryrefslogtreecommitdiffstats
path: root/modules/sysconfig.inc.php
diff options
context:
space:
mode:
authorJonathan Bauer2014-06-04 18:11:00 +0200
committerJonathan Bauer2014-06-04 18:11:00 +0200
commit375b2cf8233c50c52f08750d0a38df86d6836927 (patch)
tree1e1d71987a1090d726ee34758c9e318553d32075 /modules/sysconfig.inc.php
parentFixed some bugs from Sateserver v05 (diff)
downloadslx-admin-375b2cf8233c50c52f08750d0a38df86d6836927.tar.gz
slx-admin-375b2cf8233c50c52f08750d0a38df86d6836927.tar.xz
slx-admin-375b2cf8233c50c52f08750d0a38df86d6836927.zip
listing of module's content
Diffstat (limited to 'modules/sysconfig.inc.php')
-rw-r--r--modules/sysconfig.inc.php61
1 files changed, 61 insertions, 0 deletions
diff --git a/modules/sysconfig.inc.php b/modules/sysconfig.inc.php
index 5fc0114c..3be8b16f 100644
--- a/modules/sysconfig.inc.php
+++ b/modules/sysconfig.inc.php
@@ -109,6 +109,9 @@ class Page_SysConfig extends Page
case 'list':
$this->listConfigs();
break;
+ case 'module':
+ $this->listModuleContents();
+ break;
default:
Message::addError('invalid-action', $action);
break;
@@ -146,6 +149,64 @@ class Page_SysConfig extends Page
));
}
+ private function listModuleContents()
+ {
+ // fetch the data
+ $moduleid = Request::post('list', 'MISSING');
+ $row = Database::queryFirst("SELECT title, filepath FROM configtgz_module WHERE moduleid = :moduleid LIMIT 1", array('moduleid' => $moduleid));
+ if ($row == false) {
+ Message::addError('config-invalid', $moduleid);
+ Util::redirect('?do=SysConfig');
+ }
+
+ // find files in that archive
+ $taskStatus = Taskmanager::submit('ListArchive', array(
+ 'file' => $row['filepath']
+ ));
+
+ if (isset($taskStatus['id'])) {
+
+ $status = Taskmanager::waitComplete($taskStatus['id']);
+ Taskmanager::release($taskStatus['id']);
+ if (!isset($status['statusCode'])) {
+ //
+ //$this->tmError();
+ }
+ if ($status['statusCode'] != TASK_FINISHED) {
+ $this->taskError($status);
+ }
+ // 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;
+ }
+ }
+ } else {
+ // task failed, redirect
+ Util::redirect('?do=SysConfig');
+ }
+
+
+ // render the template
+ Render::addDialog('Inhalt von "' . $row['title'] . '"', false, 'sysconfig/custom-filelist', array(
+ 'token' => Session::get('token'),
+ 'files' => $list,
+ ));
+ }
+
private function activateConfig()
{
$configid = Request::post('activate', 'MISSING');