From 91715445c682e86779093be7060c7fa08f082021 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 15 Jan 2020 15:34:40 +0100 Subject: [minilinux] Set downloaded linux as default if it's the first/only one --- modules-available/minilinux/inc/minilinux.inc.php | 23 +++++++++++++++++++++-- modules-available/minilinux/page.inc.php | 10 +--------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/modules-available/minilinux/inc/minilinux.inc.php b/modules-available/minilinux/inc/minilinux.inc.php index da8be3f2..7fe2035a 100644 --- a/modules-available/minilinux/inc/minilinux.inc.php +++ b/modules-available/minilinux/inc/minilinux.inc.php @@ -337,14 +337,19 @@ class MiniLinux self::setInstalledState($versionid, $task['statusCode'] === 'TASK_FINISHED'); } - public static function setInstalledState($versionid, $installed) + public static function setInstalledState($versionid, int $installed) { - settype($installed, 'int'); error_log("Setting $versionid to $installed"); Database::exec('UPDATE minilinux_version SET installed = :installed WHERE versionid = :versionid', [ 'versionid' => $versionid, 'installed' => $installed, ]); + if ($installed) { + $res = Database::queryFirst('SELECT Count(*) AS cnt FROM minilinux_version WHERE installed <> 0'); + if ($res['cnt'] == 1) { + self::setDefaultVersion($versionid); + } + } } public static function queryAllVersionsByBranch() @@ -358,4 +363,18 @@ class MiniLinux return $list; } + public static function setDefaultVersion($versionId) + { + Property::set(MiniLinux::PROPERTY_DEFAULT_BOOT, $versionId); + self::updateCurrentBootSetting(); + // Legacy PXELINUX boot menu (TODO: Remove this when we get rid of PXELINUX support) + $task = Taskmanager::submit('Symlink', [ + 'target' => $versionId, + 'linkname' => CONFIG_HTTP_DIR . '/default', + ]); + if ($task !== false) { + Taskmanager::release($task); + } + } + } \ No newline at end of file diff --git a/modules-available/minilinux/page.inc.php b/modules-available/minilinux/page.inc.php index a8cb7dcd..76bcb95f 100644 --- a/modules-available/minilinux/page.inc.php +++ b/modules-available/minilinux/page.inc.php @@ -285,15 +285,7 @@ class Page_MiniLinux extends Page Message::addError('no-such-version'); return; } - Property::set(MiniLinux::PROPERTY_DEFAULT_BOOT, $version['versionid']); - // Legacy PXELINUX boot menu (TODO: Remove this when we get rid of PXELINUX support) - $task = Taskmanager::submit('Symlink', [ - 'target' => $version['versionid'], - 'linkname' => CONFIG_HTTP_DIR . '/default', - ]); - if ($task !== false) { - Taskmanager::release($task); - } + MiniLinux::setDefaultVersion($version['versionid']); } } -- cgit v1.2.3-55-g7522