From 834c42fc1e68eef15fcb731e630cc245d09d57bc Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Tue, 7 Jan 2025 17:33:05 +0100 Subject: [PATCH] mvc: implement reusable grid template using form definitions. for https://github.com/opnsense/core/issues/8187 [2] minor bugfix, make sure grid_view exists before iterating over it. --- .../OPNsense/Base/ControllerBase.php | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Base/ControllerBase.php b/src/opnsense/mvc/app/controllers/OPNsense/Base/ControllerBase.php index 7bb8f6273..c089020df 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Base/ControllerBase.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Base/ControllerBase.php @@ -255,20 +255,23 @@ class ControllerBase extends ControllerRoot $record['label'] = gettext((string)$item); break; case 'id': - $record['column-id'] = end(explode('.', (string)$item)); + $tmp = explode('.', (string)$item); + $record['column-id'] = end($tmp); break; } } /* iterate field->grid_view items */ $this_sequence = '9999999'; - foreach ($rootnode->grid_view->children() as $key => $item) { - if ($key == 'ignore' && $item != 'false') { - /* ignore field as requested */ - continue 2; - } elseif ($key == 'sequence') { - $this_sequence = (string)$item; - } else { - $record[$key] = (string)$item; + if (isset($rootnode->grid_view)) { + foreach ($rootnode->grid_view->children() as $key => $item) { + if ($key == 'ignore' && $item != 'false') { + /* ignore field as requested */ + continue 2; + } elseif ($key == 'sequence') { + $this_sequence = (string)$item; + } else { + $record[$key] = (string)$item; + } } } $all_data[sprintf("%010d.%03d", $this_sequence, $idx++)] = $record;