diff --git a/includes/class/Zone.php b/includes/class/Zone.php index 9dfb0d8..d7b4ba0 100644 --- a/includes/class/Zone.php +++ b/includes/class/Zone.php @@ -215,6 +215,21 @@ class RRSet { array_push($this->comments, $comment); } + public function rrsets2records() { + $ret = Array(); + + foreach ($this->rrsets as $rrset) { + foreach ($rrset->export_records() as $record) { + $record['name'] = $rrset['name']; + $record['ttl'] = $rrset['ttl']; + $record['type'] = $rrset['type']; + } + array_push($ret, $record); + } + + return $ret; + } + public function export() { $ret = Array(); $ret['comments'] = $this->export_comments(); diff --git a/zones.php b/zones.php index 3b23639..3baf524 100644 --- a/zones.php +++ b/zones.php @@ -305,6 +305,20 @@ case "listslaves": jtable_respond($return); break; +case "listrecords": + $zonedata = $api->loadzone($_GET['zoneid']); + $zone = new Zone() + $zone->parse($zonedata); + $records = $zone->rrsets2records(); + foreach ($records as &$record) { + $record['id'] = json_encode($record); + } + unset($record); + usort($records, "record_compare"); + jtable_respond($records); + break; + + case "create": $zonename = isset($_POST['name']) ? $_POST['name'] : ''; $zonekind = isset($_POST['kind']) ? $_POST['kind'] : ''; @@ -448,19 +462,6 @@ case "delete": jtable_respond(null, 'delete'); break; -case "listrecords": - $zone = get_zone_by_url(isset($_GET['zoneurl']) ? $_GET['zoneurl'] : ''); - - $a = api_request($zone['url']); - $records = $a['records']; - foreach ($records as &$record) { - $record['id'] = json_encode($record); - } - unset($record); - usort($records, "record_compare"); - jtable_respond($records); - break; - case "createrecord": $zone = get_zone_by_url(isset($_GET['zoneurl']) ? $_GET['zoneurl'] : ''); $record = create_record($zone, $_POST);