diff options
Diffstat (limited to 'modules-available/sysconfig/inc/sysconfig.inc.php')
-rw-r--r-- | modules-available/sysconfig/inc/sysconfig.inc.php | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/modules-available/sysconfig/inc/sysconfig.inc.php b/modules-available/sysconfig/inc/sysconfig.inc.php index 15bd4104..09860c7d 100644 --- a/modules-available/sysconfig/inc/sysconfig.inc.php +++ b/modules-available/sysconfig/inc/sysconfig.inc.php @@ -3,15 +3,42 @@ class SysConfig { - public static function getAll() + public static function getAll(): array { $res = Database::simpleQuery("SELECT c.configid, c.title, c.filepath, c.status, Group_Concat(cl.locationid) AS locs FROM configtgz c" . " LEFT JOIN configtgz_location cl USING (configid) GROUP BY c.configid"); $ret = array(); - while ($row = $res->fetch(PDO::FETCH_ASSOC)) { + foreach ($res as $row) { $ret[] = $row; } return $ret; } + public static function archiveContentsFromTask($status, &$userGroupWarn = null) : array + { + // Sort files for better display + $dirs = array(); + foreach ($status['data']['entries'] as $file) { + if ($file['isdir']) continue; + $dirs[dirname($file['name'])][] = $file; + if ($file['userId'] > 0 || $file['groupId'] > 0) { + $userGroupWarn = true; + } + } + 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; + } + } + return $list; + } + }
\ No newline at end of file |