summaryrefslogtreecommitdiffstats
path: root/modules-available/minilinux/page.inc.php
diff options
context:
space:
mode:
authorSimon Rettberg2022-05-27 15:49:07 +0200
committerSimon Rettberg2022-05-27 15:49:07 +0200
commita7fff60a22cb6bbd08033da6e7c4b50ec90c22ce (patch)
treea11158738e3b7f8ac4f7c480162e3f27e4db2bca /modules-available/minilinux/page.inc.php
parent[systemstatus] lighttpd log: Filter some openssl errors (diff)
downloadslx-admin-a7fff60a22cb6bbd08033da6e7c4b50ec90c22ce.tar.gz
slx-admin-a7fff60a22cb6bbd08033da6e7c4b50ec90c22ce.tar.xz
slx-admin-a7fff60a22cb6bbd08033da6e7c4b50ec90c22ce.zip
[minilinux] Add quicknav at top of version list
Diffstat (limited to 'modules-available/minilinux/page.inc.php')
-rw-r--r--modules-available/minilinux/page.inc.php36
1 files changed, 25 insertions, 11 deletions
diff --git a/modules-available/minilinux/page.inc.php b/modules-available/minilinux/page.inc.php
index 33a7ab28..411d1ae9 100644
--- a/modules-available/minilinux/page.inc.php
+++ b/modules-available/minilinux/page.inc.php
@@ -31,30 +31,31 @@ class Page_MiniLinux extends Page
protected function doRender()
{
- Render::addTemplate('page-minilinux', ['default' => Property::get(MiniLinux::PROPERTY_DEFAULT_BOOT)]);
- // Warning
- if (!MiniLinux::updateCurrentBootSetting()) {
- Message::addError('default-not-installed', Property::get(MiniLinux::PROPERTY_DEFAULT_BOOT));
- }
$show = Request::get('show', 'list', 'string');
if ($show === 'list') {
// List branches and versions
$branches = Database::queryAll('SELECT sourceid, branchid, title, description FROM minilinux_branch ORDER BY title ASC');
$versions = MiniLinux::queryAllVersionsByBranch();
$usage = MiniLinux::getBootMenuUsage();
+ $sourceList = [];
// Group by branch for detailed listing, add usage info
foreach ($branches as &$branch) {
- $branch['bid'] = 'div-' . str_replace('/', '-', $branch['branchid']);
+ $bid = 'div-' . str_replace('/', '-', $branch['branchid']);
+ if (!isset($sourceList[$branch['sourceid']])) {
+ $sourceList[$branch['sourceid']] = ['sourceid' => $branch['sourceid'], 'list' => []];
+ }
+ $sourceList[$branch['sourceid']]['list'][] = ['title' => $branch['title'], 'bid' => $bid];
+ $branch['bid'] = $bid;
if (isset($versions[$branch['branchid']])) {
$branch['versionlist'] = $this->renderVersionList($versions[$branch['branchid']], $usage);
}
}
unset($branch);
- Render::addTemplate('branches', ['branches' => $branches]);
+ $sourceList = array_values($sourceList);
} elseif ($show === 'sources') {
// List sources
$res = Database::simpleQuery('SELECT sourceid, title, url, lastupdate, pubkey FROM minilinux_source ORDER BY title, sourceid');
- $data = ['list' => [], 'show_refresh' => true];
+ $sourceViewData = ['list' => [], 'show_refresh' => true];
$tooOld = strtotime('-7 days');
$showRefresh = strtotime('-5 minutes');
foreach ($res as $row) {
@@ -63,11 +64,24 @@ class Page_MiniLinux extends Page
$row['update_class'] = 'text-danger';
}
if ($row['lastupdate'] > $showRefresh) {
- $data['show_refresh'] = false;
+ $sourceViewData['show_refresh'] = false;
}
- $data['list'][] = $row;
+ $sourceViewData['list'][] = $row;
}
- Render::addTemplate('sources', $data);
+ }
+ // Output
+ Render::addTemplate('page-minilinux', [
+ 'default' => Property::get(MiniLinux::PROPERTY_DEFAULT_BOOT),
+ 'sources' => $sourceList ?? null,
+ ]);
+ // Warning
+ if (!MiniLinux::updateCurrentBootSetting()) {
+ Message::addError('default-not-installed', Property::get(MiniLinux::PROPERTY_DEFAULT_BOOT));
+ }
+ if (isset($branches)) {
+ Render::addTemplate('branches', ['branches' => $branches]);
+ } elseif (isset($sourceViewData)) {
+ Render::addTemplate('sources', $sourceViewData);
} else {
Message::addError('main.invalid-action', $show);
}