From 6d7606b2fd53a1d71f59eff5678daafe58d92a5b Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 26 Oct 2020 15:14:58 +0100 Subject: [serversetup-bwlp-ipxe] Empty menu item title = use bootentry title We now leave the input box for the menu item title empty, which shows the matching bootentry's title as the placeholder. This will then also be what's displayed in the actual menu. This way, updating the boot entry's title will update the displayed menu item, if it wasn't overridden previously. Closes #3690 --- .../serversetup-bwlp-ipxe/inc/ipxemenu.inc.php | 4 ++-- .../serversetup-bwlp-ipxe/inc/menuentry.inc.php | 7 +++++-- modules-available/serversetup-bwlp-ipxe/page.inc.php | 11 ++++++++--- .../serversetup-bwlp-ipxe/templates/menu-edit.html | 13 +++---------- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/modules-available/serversetup-bwlp-ipxe/inc/ipxemenu.inc.php b/modules-available/serversetup-bwlp-ipxe/inc/ipxemenu.inc.php index d4705be5..b1e13e87 100644 --- a/modules-available/serversetup-bwlp-ipxe/inc/ipxemenu.inc.php +++ b/modules-available/serversetup-bwlp-ipxe/inc/ipxemenu.inc.php @@ -37,8 +37,8 @@ class IPxeMenu $this->timeoutMs = (int)$menu['timeoutms']; $this->title = $menu['title']; $this->defaultEntryId = $menu['defaultentryid']; - $res = Database::simpleQuery("SELECT e.menuentryid, e.entryid, e.refmenuid, e.hotkey, e.title, e.hidden, e.sortval, e.md5pass, - b.module, b.data AS bootentry + $res = Database::simpleQuery("SELECT e.menuentryid, e.entryid, e.refmenuid, e.hotkey, e.title, + e.hidden, e.sortval, e.md5pass, b.module, b.data AS bootentry, b.title AS betitle FROM serversetup_menuentry e LEFT JOIN serversetup_bootentry b USING (entryid) WHERE e.menuid = :menuid diff --git a/modules-available/serversetup-bwlp-ipxe/inc/menuentry.inc.php b/modules-available/serversetup-bwlp-ipxe/inc/menuentry.inc.php index 1e567448..eb4a98de 100644 --- a/modules-available/serversetup-bwlp-ipxe/inc/menuentry.inc.php +++ b/modules-available/serversetup-bwlp-ipxe/inc/menuentry.inc.php @@ -41,8 +41,8 @@ class MenuEntry */ public static function get($menuEntryId) { - $row = Database::queryFirst("SELECT e.menuentryid, e.entryid, e.refmenuid, e.hotkey, e.title, e.hidden, e.sortval, e.plainpass, e.md5pass, - b.module, b.data AS bootentry + $row = Database::queryFirst("SELECT e.menuentryid, e.entryid, e.refmenuid, e.hotkey, e.title, + e.hidden, e.sortval, e.plainpass, e.md5pass, b.module, b.data AS bootentry, b.title AS betitle FROM serversetup_menuentry e LEFT JOIN serversetup_bootentry b USING (entryid) WHERE e.menuentryid = :id", ['id' => $menuEntryId]); @@ -59,6 +59,9 @@ class MenuEntry public function __construct($row) { if (is_array($row)) { + if (empty($row['title']) && !empty($row['betitle'])) { + $row['title'] = $row['betitle']; + } foreach ($row as $key => $value) { if (property_exists($this, $key)) { $this->{$key} = $value; diff --git a/modules-available/serversetup-bwlp-ipxe/page.inc.php b/modules-available/serversetup-bwlp-ipxe/page.inc.php index 9bf0afe4..122c3791 100644 --- a/modules-available/serversetup-bwlp-ipxe/page.inc.php +++ b/modules-available/serversetup-bwlp-ipxe/page.inc.php @@ -379,7 +379,8 @@ class Page_ServerSetup extends Page // if = edit, else = add new if ($id !== 0) { $menu = Database::queryFirst("SELECT menuid, timeoutms, title, defaultentryid, isdefault - FROM serversetup_menu WHERE menuid = :id", compact('id')); + FROM serversetup_menu m + WHERE menuid = :id", compact('id')); } else { $menu = []; $menu['menuid'] = 0; @@ -405,8 +406,12 @@ class Page_ServerSetup extends Page $menu['timeout'] = round($menu['timeoutms'] / 1000); $menu['entries'] = []; - $res = Database::simpleQuery("SELECT menuentryid, entryid, refmenuid, hotkey, title, hidden, sortval, plainpass FROM - serversetup_menuentry WHERE menuid = :id ORDER BY sortval ASC", compact('id')); + $res = Database::simpleQuery("SELECT me.menuentryid, me.entryid, me.refmenuid, me.hotkey, me.title, + me.hidden, me.sortval, me.plainpass, be.title AS parenttitle + FROM serversetup_menuentry me + LEFT JOIN serversetup_bootentry be USING (entryid) + 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']; diff --git a/modules-available/serversetup-bwlp-ipxe/templates/menu-edit.html b/modules-available/serversetup-bwlp-ipxe/templates/menu-edit.html index b79e6bb3..6f119515 100644 --- a/modules-available/serversetup-bwlp-ipxe/templates/menu-edit.html +++ b/modules-available/serversetup-bwlp-ipxe/templates/menu-edit.html @@ -80,7 +80,7 @@ + placeholder="{{parenttitle}}" maxlength="100" {{readonly}}> @@ -252,7 +252,7 @@ - +