diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/Dhcpv4Controller.php b/src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/Dhcpv4Controller.php index 954e0bc0a..a1f7e554e 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/Dhcpv4Controller.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/Dhcpv4Controller.php @@ -105,6 +105,14 @@ class Dhcpv4Controller extends ApiMutableModelControllerBase return $this->delBase("reservations.reservation", $uuid); } + public function downloadReservationsAction() + { + if ($this->request->isGet()) { + $this->sessionClose(); + $this->exportCsv($this->getModel()->reservations->reservation->asRecordSet(false, ['subnet'])); + } + } + public function searchPeerAction() { return $this->searchBase("ha_peers.peer", ['name', 'role'], "name"); diff --git a/src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv4.volt b/src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv4.volt index e0d5b184d..a13d78dbc 100644 --- a/src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv4.volt +++ b/src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv4.volt @@ -80,6 +80,11 @@ } }); + $("#download_reservations").click(function(e){ + e.preventDefault(); + window.open("/api/kea/dhcpv4/download_reservations"); + }); + /** * */ @@ -121,7 +126,7 @@ - + @@ -147,7 +152,8 @@ - + + @@ -170,7 +176,7 @@ - +