From 36e47dcdfb7d19d4c8982a77b4dd3b87d8c4ca31 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 16 Oct 2019 18:12:17 +0200 Subject: [serversetup-bwlp-ipxe/minilinux] Implement minilinux hook for ipxe --- .../serversetup-bwlp-ipxe/page.inc.php | 43 +++++++++++++--------- 1 file changed, 25 insertions(+), 18 deletions(-) (limited to 'modules-available/serversetup-bwlp-ipxe/page.inc.php') diff --git a/modules-available/serversetup-bwlp-ipxe/page.inc.php b/modules-available/serversetup-bwlp-ipxe/page.inc.php index 40b75dd2..f14c1e57 100644 --- a/modules-available/serversetup-bwlp-ipxe/page.inc.php +++ b/modules-available/serversetup-bwlp-ipxe/page.inc.php @@ -519,25 +519,25 @@ class Page_ServerSetup extends Page $params['oldentryid'] = $params['entryid'] = $row['entryid']; $params['builtin'] = $row['builtin']; } - if (!is_array($params['entries'])) { - $params['entries'] = []; - } - $f = []; - foreach ($params['entries'] as $e) { - if (isset($e['mode'])) { - $f[] = $e['mode']; - } - } - if (!in_array('PCBIOS', $f)) { - $params['entries'][] = ['mode' => 'PCBIOS']; - } - if (!in_array('EFI', $f)) { - $params['entries'][] = ['mode' => 'EFI']; - } $params['menus'] = Database::queryAll('SELECT m.menuid, m.title FROM serversetup_menu m INNER JOIN serversetup_menuentry me ON (me.menuid = m.menuid) WHERE me.entryid = :entryid', ['entryid' => $row['entryid']]); } + if (!isset($params['entries']) || !is_array($params['entries'])) { + $params['entries'] = []; + } + $f = []; + foreach ($params['entries'] as $e) { + if (isset($e['mode'])) { + $f[] = $e['mode']; + } + } + if (!in_array('PCBIOS', $f)) { + $params['entries'][] = ['mode' => 'PCBIOS']; + } + if (!in_array('EFI', $f)) { + $params['entries'][] = ['mode' => 'EFI']; + } $params['disabled'] = User::hasPermission('ipxe.bootentry.edit') ? '' : 'disabled'; Render::addTemplate('ipxe-new-boot-entry', $params); @@ -823,12 +823,19 @@ class Page_ServerSetup extends Page } /** @var BootEntryHook $module */ $module = $hook->run(); - $entryData = Request::post('selection-' . $type, false, 'string'); - $entry = $module->getBootEntry($entryData); + $id = Request::post('selection-' . $type, false, 'string'); + $entry = $module->isValidId($id); if ($entry === null) { - Message::addError('invalid-custom-entry-id', $type, $entryData); + Message::addError('invalid-custom-entry-id', $type, $id); return; } + $entryData = ['id' => $id]; + foreach ($module->extraFields() as $field) { + if ($field->name === 'id') + continue; + $entryData[$field->name] = $field->fromPost($type); + } + $entryData = json_encode($entryData); } $params = [ 'entryid' => $newId, -- cgit v1.2.3-55-g7522