summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2019-03-20 10:36:08 +0100
committerSimon Rettberg2019-03-20 10:36:08 +0100
commit4d773b27e9c5cc854c4525a2000f47eccc4f15fd (patch)
tree2887b0ab95e2e03fa1cf739277d723cb8ee8d5fa
parent[serversetup-bwlp-ipxe] Implement cascaded menus (diff)
downloadslx-admin-4d773b27e9c5cc854c4525a2000f47eccc4f15fd.tar.gz
slx-admin-4d773b27e9c5cc854c4525a2000f47eccc4f15fd.tar.xz
slx-admin-4d773b27e9c5cc854c4525a2000f47eccc4f15fd.zip
[serversetup-bwlp-ipxe] Fix editing menuchain entries, tweak script
-rw-r--r--modules-available/serversetup-bwlp-ipxe/api.inc.php4
-rw-r--r--modules-available/serversetup-bwlp-ipxe/page.inc.php7
-rw-r--r--modules-available/serversetup-bwlp-ipxe/templates/menu-edit.html11
3 files changed, 11 insertions, 11 deletions
diff --git a/modules-available/serversetup-bwlp-ipxe/api.inc.php b/modules-available/serversetup-bwlp-ipxe/api.inc.php
index 7a81f430..ec5fc577 100644
--- a/modules-available/serversetup-bwlp-ipxe/api.inc.php
+++ b/modules-available/serversetup-bwlp-ipxe/api.inc.php
@@ -71,8 +71,10 @@ if (substr($ip, 0, 7) === '::ffff:') {
$menu = Request::get('menuid', false, 'int');
if ($menu !== false) {
$menu = new IPxeMenu($menu);
+ $initLabel = 'slx_menu';
} else {
$menu = IPxeMenu::forClient($ip, $uuid);
+ $initLabel = 'init';
}
@@ -133,7 +135,7 @@ if ($slxExtensions) {
$output = <<<HERE
#!ipxe
-goto init || goto fail ||
+goto $initLabel || goto fail ||
# functions
diff --git a/modules-available/serversetup-bwlp-ipxe/page.inc.php b/modules-available/serversetup-bwlp-ipxe/page.inc.php
index 8ea782b3..9b97ff01 100644
--- a/modules-available/serversetup-bwlp-ipxe/page.inc.php
+++ b/modules-available/serversetup-bwlp-ipxe/page.inc.php
@@ -390,6 +390,9 @@ class Page_ServerSetup extends Page
$res = Database::simpleQuery("SELECT menuentryid, entryid, refmenuid, hotkey, title, hidden, sortval, plainpass FROM
serversetup_menuentry WHERE menuid = :id ORDER BY sortval ASC", compact('id'));
while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
+ if ($row['entryid'] === null && $row['refmenuid'] !== null) {
+ $row['entryid'] = 'menu:' . $row['refmenuid'];
+ }
if ($row['entryid'] == $highlight) {
$row['highlight'] = 'active';
}
@@ -399,7 +402,7 @@ class Page_ServerSetup extends Page
$menu['entrylist'] = array_merge(
Database::queryAll("SELECT entryid, title, hotkey, data FROM serversetup_bootentry ORDER BY title ASC"),
// Add all menus, so we can link
- Database::queryAll("SELECT Concat('menu=', menuid) AS entryid, title FROM serversetup_menu ORDER BY title ASC")
+ Database::queryAll("SELECT Concat('menu:', menuid) AS entryid, title FROM serversetup_menu ORDER BY title ASC")
);
class_exists('BootEntry'); // Leave this here for StandardBootEntry
foreach ($menu['entrylist'] as &$bootentry) {
@@ -649,7 +652,7 @@ class Page_ServerSetup extends Page
'hidden' => (int)$entry['hidden'], // TODO (needs hotkey to make sense)
'plainpass' => $entry['plainpass'],
];
- if (preg_match('/^menu=(\d+)$/', $entry['entryid'], $out)) {
+ if (preg_match('/^menu:(\d+)$/', $entry['entryid'], $out)) {
$params['refmenuid'] = $out[1];
} else {
$params['entryid'] = $entry['entryid'];
diff --git a/modules-available/serversetup-bwlp-ipxe/templates/menu-edit.html b/modules-available/serversetup-bwlp-ipxe/templates/menu-edit.html
index 701411bf..16d96d6b 100644
--- a/modules-available/serversetup-bwlp-ipxe/templates/menu-edit.html
+++ b/modules-available/serversetup-bwlp-ipxe/templates/menu-edit.html
@@ -69,17 +69,12 @@
<td class="text-nowrap">
<input class="entry-id" type="hidden" name="entry[{{menuentryid}}][entryid]" value="{{entryid}}">
- <button type="button" class="btn btn-default" style="width: 100%; text-align: left" {{disabled}} data-toggle="modal" data-target="#entry-chooser-modal">
+ <button type="button" class="btn btn-default" style="width:100%;text-align:left" {{disabled}} data-toggle="modal" data-target="#entry-chooser-modal">
{{#entryid}}
{{entryid}}
{{/entryid}}
{{^entryid}}
- {{^refmenuid}}
- {{lang_spacer}}
- {{/refmenuid}}
- {{#refmenuid}}
- menu={{refmenuid}}
- {{/refmenuid}}
+ {{lang_spacer}}
{{/entryid}}
</button>
</td>
@@ -333,7 +328,7 @@
$('#entry-list').change(function(e) {
var modal = $('#entry-chooser-modal');
modal.find('.entrydata').hide();
- modal.find('#entrydata-' + $(this).val()).show();
+ modal.find('#entrydata-' + $(this).val().replace(':', '\\:')).show();
});
var currentEntryButton = null;