From 32f2140394566bc4a7b5d9c8f54f8a0821e4c41f Mon Sep 17 00:00:00 2001
From: Christian Hofmaier
Date: Wed, 4 Dec 2019 14:44:54 +0100
Subject: [locationinfo] less lovely javascript more not so lovely php - same
function just in backend
---
modules-available/locationinfo/page.inc.php | 20 ++++-
.../templates/page-config-panel-url.html | 92 ++++++++++------------
2 files changed, 61 insertions(+), 51 deletions(-)
diff --git a/modules-available/locationinfo/page.inc.php b/modules-available/locationinfo/page.inc.php
index f849aa1d..13d7d459 100644
--- a/modules-available/locationinfo/page.inc.php
+++ b/modules-available/locationinfo/page.inc.php
@@ -417,6 +417,7 @@ class Page_LocationInfo extends Page
$bookmarkUrls = Request::post('bookmarkUrls', [], 'array');
$bookmarkString = '';
for ($i = 0; $i < count($bookmarkNames); $i++) {
+ if ($bookmarkNames[$i] == '' || $bookmarkUrls[$i] == '') continue;
$bookmarkString .= rawurlencode($bookmarkNames[$i]);
$bookmarkString .= ",";
$bookmarkString .= rawurlencode($bookmarkUrls[$i]);
@@ -433,7 +434,7 @@ class Page_LocationInfo extends Page
'split-login' => Request::post('split-login', 0, 'bool'),
'browser' => Request::post('browser', 'slx-browser', 'string'),
'interactive' => Request::post('interactive', '0', 'bool'),
- 'bookmarks' => $bookmarkString,
+ 'bookmarks' => $bookmarkString ? $bookmarkString : '',
);
return array('config' => $conf, 'locationids' => []);
}
@@ -1026,6 +1027,21 @@ class Page_LocationInfo extends Page
'overrides' => json_encode($config['overrides']),
));
} elseif ($panel['paneltype'] === 'URL') {
+
+ $bookmarksArray = [];
+ if ($config['bookmarks'] !== '') {
+ $bookmarksConfig = explode(' ', $config['bookmarks']);
+ foreach ($bookmarksConfig AS $bookmark) {
+ $bookmark = explode(',', $bookmark);
+ $name = rawurldecode($bookmark[0]);
+ $url = rawurldecode($bookmark[1]);
+ $bookmarksArray[] = [
+ 'name' => $name,
+ 'url' => $url,
+ ];
+ }
+ }
+
Render::addTemplate('page-config-panel-url', array(
'new' => $id === 'new',
'uuid' => $id,
@@ -1038,7 +1054,7 @@ class Page_LocationInfo extends Page
'split-login_checked' => $config['split-login'] ? 'checked' : '',
'browser' => $config['browser'],
'interactive_checked' => $config['interactive'] ? 'checked' : '',
- 'bookmarks' => $config['bookmarks'],
+ 'bookmarks' => $bookmarksArray,
));
} else {
Render::addTemplate('page-config-panel-summary', array(
diff --git a/modules-available/locationinfo/templates/page-config-panel-url.html b/modules-available/locationinfo/templates/page-config-panel-url.html
index e34f0477..7b82199e 100644
--- a/modules-available/locationinfo/templates/page-config-panel-url.html
+++ b/modules-available/locationinfo/templates/page-config-panel-url.html
@@ -166,19 +166,11 @@
-
+
-
-
-
-
-
-
-
+
+
+ {{#bookmarks}}
+
+ {{/bookmarks}}
@@ -205,16 +230,12 @@
--
cgit v1.2.3-55-g7522
From 8afd58bd94c0d98e29351e71d0a692574a38cb82 Mon Sep 17 00:00:00 2001
From: Simon Rettberg
Date: Sat, 7 Dec 2019 13:57:25 +0100
Subject: [minilinux] Fix deleting orphaned/empty branches
---
modules-available/minilinux/inc/minilinux.inc.php | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/modules-available/minilinux/inc/minilinux.inc.php b/modules-available/minilinux/inc/minilinux.inc.php
index 54536096..ca81eafa 100644
--- a/modules-available/minilinux/inc/minilinux.inc.php
+++ b/modules-available/minilinux/inc/minilinux.inc.php
@@ -71,11 +71,9 @@ class MiniLinux
WHERE sourceid = :sourceid AND taskid = :taskid",
['sourceid' => $sourceid, 'taskid' => $taskId]);
// Clean up -- delete orphaned versions that are not installed
- $orphaned = Database::queryColumnArray('SELECT versionid FROM minilinux_version WHERE orphan > 4 AND installed = 0');
- if (!empty($orphaned)) {
- Database::exec('DELETE FROM minilinux_version WHERE versionid IN (:list)', ['list' => $orphaned]);
- }
- Database::exec('DELETE FROM minilinux_branch', [], true);
+ Database::exec('DELETE FROM minilinux_version WHERE orphan > 4 AND installed = 0');
+ // FKC makes sure we only delete orphaned ones
+ Database::exec('DELETE IGNORE FROM minilinux_branch WHERE 1', [], true);
}
private static function addBranches($sourceid, $systems)
--
cgit v1.2.3-55-g7522
From e34b09df163aca1f9878040239370d8dabd0c02a Mon Sep 17 00:00:00 2001
From: Simon Rettberg
Date: Sat, 7 Dec 2019 13:57:40 +0100
Subject: [serversetup-bwlp-ipxe] Fix initrd= command line for EFI
initrd=cpio1,cpio2 is syslinux syntax and not understood by the
kernel when booting in EFI mode. The proper way to this is
initrd=cpio1 initrd=cpio2 ...
---
.../serversetup-bwlp-ipxe/inc/bootentry.inc.php | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/modules-available/serversetup-bwlp-ipxe/inc/bootentry.inc.php b/modules-available/serversetup-bwlp-ipxe/inc/bootentry.inc.php
index dec70528..e89380ce 100644
--- a/modules-available/serversetup-bwlp-ipxe/inc/bootentry.inc.php
+++ b/modules-available/serversetup-bwlp-ipxe/inc/bootentry.inc.php
@@ -308,13 +308,17 @@ class StandardBootEntry extends BootEntry
$script .= "-r ";
}
$script .= $entry->executable;
- if (empty($initrds)) {
- $rdBase = '';
- } else {
- $rdBase = " initrd=" . implode(',', $initrds);
+ if (!empty($initrds)) {
+ if ($mode === BootEntry::BIOS) {
+ $script .= " initrd=" . implode(',', $initrds);
+ } else {
+ foreach ($initrds as $initrd) {
+ $script .= " initrd=$initrd";
+ }
+ }
}
if (!empty($entry->commandLine)) {
- $script .= "$rdBase {$entry->commandLine}";
+ $script .= ' ' . $entry->commandLine;
}
$script .= " || goto $failLabel\n";
if ($entry->resetConsole) {
--
cgit v1.2.3-55-g7522
From 68f98827d066422dfa185de030f783971e44c6b3 Mon Sep 17 00:00:00 2001
From: Simon Rettberg
Date: Sat, 7 Dec 2019 13:57:55 +0100
Subject: [sysconfig] Display error if deleting config from database failed
---
modules-available/sysconfig/inc/configtgz.inc.php | 7 +++----
modules-available/sysconfig/lang/de/messages.json | 3 +--
modules-available/sysconfig/lang/en/messages.json | 3 +--
modules-available/sysconfig/page.inc.php | 4 +++-
4 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/modules-available/sysconfig/inc/configtgz.inc.php b/modules-available/sysconfig/inc/configtgz.inc.php
index cf9bf041..c1df2c93 100644
--- a/modules-available/sysconfig/inc/configtgz.inc.php
+++ b/modules-available/sysconfig/inc/configtgz.inc.php
@@ -135,9 +135,8 @@ class ConfigTgz
{
if ($this->configId === 0)
Util::traceError('ConfigTgz::delete called with invalid config id!');
- $ret = Database::exec("DELETE FROM configtgz WHERE configid = :configid LIMIT 1", array(
- 'configid' => $this->configId
- ), true) !== false;
+ $ret = Database::exec("DELETE FROM configtgz WHERE configid = :configid LIMIT 1",
+ ['configid' => $this->configId], true);
if ($ret !== false) {
if ($this->file !== false)
Taskmanager::submit('DeleteFile', array('file' => $this->file), true);
@@ -145,7 +144,7 @@ class ConfigTgz
$this->modules = false;
$this->file = false;
}
- return $ret;
+ return $ret !== false;
}
public function markOutdated()
diff --git a/modules-available/sysconfig/lang/de/messages.json b/modules-available/sysconfig/lang/de/messages.json
index 5bceb2f0..6bc2f2e5 100644
--- a/modules-available/sysconfig/lang/de/messages.json
+++ b/modules-available/sysconfig/lang/de/messages.json
@@ -1,5 +1,5 @@
{
- "config-activated": "Konfiguration {{0}} wurde aktiviert",
+ "config-delete-error": "Datenbankfehler: {{0}}",
"config-deleted": "Konfiguration {{0}} wurde gel\u00f6scht",
"config-invalid": "Konfiguration mit ID {{0}} existiert nicht",
"could-not-determine-binddn": "Konnte Bind-DN nicht ermitteln ({{0}})",
@@ -9,7 +9,6 @@
"module-added": "Modul erfolgreich hinzugef\u00fcgt",
"module-deleted": "Modul {{0}} wurde gel\u00f6scht",
"module-edited": "Modul wurde aktualisiert",
- "module-in-use": "Modul {{0}} wird noch durch Konfiguration {{1}} verwendet",
"module-rebuild-failed": "Neubau des Moduls fehlgeschlagen",
"module-rebuilding": "Modul wird neu generiert",
"module-rebuilt": "Modul wurde neu generiert",
diff --git a/modules-available/sysconfig/lang/en/messages.json b/modules-available/sysconfig/lang/en/messages.json
index 6e50b80c..d34e4bfa 100644
--- a/modules-available/sysconfig/lang/en/messages.json
+++ b/modules-available/sysconfig/lang/en/messages.json
@@ -1,5 +1,5 @@
{
- "config-activated": "Configuration {{0}} has been activated",
+ "config-delete-error": "Database error: {{0}}",
"config-deleted": "Deleted configuration {{0}}",
"config-invalid": "Configuration with id {{0}} does not exist",
"could-not-determine-binddn": "Could not determine bind dn ({{0}})",
@@ -9,7 +9,6 @@
"module-added": "Module successfully added",
"module-deleted": "Module {{0}} was deleted",
"module-edited": "Module has been edited",
- "module-in-use": "Module {{0}} is still used by Configuration {{1}}",
"module-rebuild-failed": "Rebuilding module failed",
"module-rebuilding": "Module is rebuilding...",
"module-rebuilt": "Module was rebuilt",
diff --git a/modules-available/sysconfig/page.inc.php b/modules-available/sysconfig/page.inc.php
index 320030f9..b64c7a5c 100644
--- a/modules-available/sysconfig/page.inc.php
+++ b/modules-available/sysconfig/page.inc.php
@@ -481,7 +481,9 @@ class Page_SysConfig extends Page
Message::addError('config-invalid', $configid);
Util::redirect('?do=sysconfig&locationid=' . $this->currentLoc);
}
- if ($config->delete() !== false) {
+ if ($config->delete() === false) {
+ Message::addError('config-delete-error', Database::lastError());
+ } else {
Message::addSuccess('config-deleted', $config->title());
}
Util::redirect('?do=sysconfig&locationid=' . $this->currentLoc);
--
cgit v1.2.3-55-g7522