summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2020-01-15 15:34:40 +0100
committerSimon Rettberg2020-01-15 15:34:40 +0100
commit91715445c682e86779093be7060c7fa08f082021 (patch)
treeb8445c91b1b99d31b8f163a893ef293da5e3ebae
parent[minilinux] Make branches collapsible (diff)
downloadslx-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.php23
-rw-r--r--modules-available/minilinux/page.inc.php10
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']);
}
}