diff options
Diffstat (limited to 'modules-available/minilinux/inc')
-rw-r--r-- | modules-available/minilinux/inc/minilinux.inc.php | 23 |
1 files changed, 21 insertions, 2 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 |