From 1fc4763d9087e04bbb7e942475aded9f71500183 Mon Sep 17 00:00:00 2001 From: Modnark Date: Thu, 14 May 2026 16:34:50 -0400 Subject: [PATCH] update DNS record page --- coredns_bridge.js | 2 +- routes/dns.js | 18 ++++++++++++++++-- views/dns.handlebars | 17 +++++++++++++---- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/coredns_bridge.js b/coredns_bridge.js index f85926d..04419c4 100644 --- a/coredns_bridge.js +++ b/coredns_bridge.js @@ -33,7 +33,7 @@ async function RegisterNewDomain(domain) { if (!prefix) throw new Error("Invalid domain"); const key = `${prefix}`; - const value = JSON.stringify({ host: '10.66.66.1' }); + const value = JSON.stringify({ type: 'A', host: '10.66.66.1' }); await client.put(key).value(value); } diff --git a/routes/dns.js b/routes/dns.js index add980f..afaa9d8 100644 --- a/routes/dns.js +++ b/routes/dns.js @@ -27,12 +27,26 @@ router.get('/dns/edit/:domainId', authMw.AllowIfAuthenticated, async (req, res, const fullDomain = result.domain + "." + result.tld; const rawRecords = await GetAllRecords(fullDomain); let records = []; + let recordHeaders = []; for(const [key, value] of Object.entries(rawRecords)) { - records.push({domain: CoreDNSToDomain(key), host: JSON.parse(value).host}); + let parsedVal = JSON.parse(value); + let finalRecord = { + domain: CoreDNSToDomain(key) + }; + + for(const [key, value] of Object.entries(parsedVal)) { + if(!recordHeaders.includes(key)) { + recordHeaders.push(key); + } + + finalRecord[key] = value; + } + + records.push(finalRecord); } - res.render('dns', {title: pageTitle, domain: result, dnsRecords: records}); + res.render('dns', {title: pageTitle, domain: result, dnsRecords: records, dnsRecordsHeaders: recordHeaders}); }); module.exports = router; \ No newline at end of file diff --git a/views/dns.handlebars b/views/dns.handlebars index 13d3b1f..4d48a9e 100644 --- a/views/dns.handlebars +++ b/views/dns.handlebars @@ -1,8 +1,17 @@

Configuring DNS records for {{domain.domain}}.{{domain.tld}}

-
+ + + {{#each dnsRecordsHeaders}} + + {{/each}} + {{#each dnsRecords}} -

{{this.domain}}

-

{{this.host}}

+ + {{#each this}} + + {{/each}} + {{/each}} - +
{{this}}
{{this}}
+