diff options
author | Simon Rettberg | 2020-01-15 15:34:40 +0100 |
---|---|---|
committer | Simon Rettberg | 2020-01-15 15:34:40 +0100 |
commit | 91715445c682e86779093be7060c7fa08f082021 (patch) | |
tree | b8445c91b1b99d31b8f163a893ef293da5e3ebae | |
parent | [minilinux] Make branches collapsible (diff) | |
download | slx-admin-91715445c682e86779093be7060c7fa08f082021.tar.gz slx-admin-91715445c682e86779093be7060c7fa08f082021.tar.xz slx-admin-91715445c682e86779093be7060c7fa08f082021.zip |
[minilinux] Set downloaded linux as default if it's the first/only one
-rw-r--r-- | modules-available/minilinux/inc/minilinux.inc.php | 23 | ||||
-rw-r--r-- | 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']); } } |