diff --git a/package.json b/package.json
index 7a0d526..e04d225 100644
--- a/package.json
+++ b/package.json
@@ -23,6 +23,7 @@
"vite": "^4.4.5"
},
"dependencies": {
- "d3": "^7.9.0"
+ "d3": "^7.9.0",
+ "ipaddr.js": "^2.2.0"
}
}
diff --git a/src/components/CutOff.svelte b/src/components/CutOff.svelte
new file mode 100644
index 0000000..251d96a
--- /dev/null
+++ b/src/components/CutOff.svelte
@@ -0,0 +1,25 @@
+
+
+
+
+
diff --git a/src/components/CutOffTd.svelte b/src/components/CutOffTd.svelte
new file mode 100644
index 0000000..6af4e2f
--- /dev/null
+++ b/src/components/CutOffTd.svelte
@@ -0,0 +1,13 @@
+
+
+
+
+ |
+
+
diff --git a/src/components/Popup.svelte b/src/components/Popup.svelte
index 5d5d83f..2acb3ea 100644
--- a/src/components/Popup.svelte
+++ b/src/components/Popup.svelte
@@ -22,7 +22,7 @@
width: 100%;
height: 100%;
cursor: default;
- background-color: rgba(0,0,0,0.55);
+ background-color: rgba(0, 0, 0, 0.55);
display: none;
&.show {
@@ -45,6 +45,7 @@
position: fixed;
top: 50vh;
left: 50vw;
+ max-width: calc(100vw - 72px);
transform: translate(-50%, -50%);
background-color: $theme-header;
cursor: auto;
diff --git a/src/components/create-domains/ACreate.svelte b/src/components/create-domains/ACreate.svelte
new file mode 100644
index 0000000..c48a687
--- /dev/null
+++ b/src/components/create-domains/ACreate.svelte
@@ -0,0 +1,40 @@
+
+
+Name
+{#if editMode}
+ {editItem.Hdr.Name}
+{:else}
+
+{/if}
+
+IP Address
+
+{#if editItem.Hdr.Rrtype === DnsTypeA}
+ IP address is IPv4
+{:else if editItem.Hdr.Rrtype === DnsTypeAAAA}
+ IP address is IPv6
+{/if}
diff --git a/src/components/create-domains/CaaCreate.svelte b/src/components/create-domains/CaaCreate.svelte
new file mode 100644
index 0000000..2cb2d73
--- /dev/null
+++ b/src/components/create-domains/CaaCreate.svelte
@@ -0,0 +1,17 @@
+
+
+Name
+{#if editMode}
+ {editItem.Hdr.Name}
+{:else}
+
+{/if}
+Tag
+
+Value
+
diff --git a/src/components/create-domains/CnameCreate.svelte b/src/components/create-domains/CnameCreate.svelte
new file mode 100644
index 0000000..6e0804b
--- /dev/null
+++ b/src/components/create-domains/CnameCreate.svelte
@@ -0,0 +1,15 @@
+
+
+Name
+{#if editMode}
+ {editItem.Hdr.Name}
+{:else}
+
+{/if}
+Target
+
diff --git a/src/components/create-domains/MxCreate.svelte b/src/components/create-domains/MxCreate.svelte
new file mode 100644
index 0000000..18fda5a
--- /dev/null
+++ b/src/components/create-domains/MxCreate.svelte
@@ -0,0 +1,17 @@
+
+
+Name
+{#if editMode}
+ {editItem.Hdr.Name}
+{:else}
+
+{/if}
+Mail Server
+
+Preference
+
diff --git a/src/components/create-domains/NsCreate.svelte b/src/components/create-domains/NsCreate.svelte
new file mode 100644
index 0000000..5a78638
--- /dev/null
+++ b/src/components/create-domains/NsCreate.svelte
@@ -0,0 +1,15 @@
+
+
+Name
+{#if editMode}
+ {editItem.Hdr.Name}
+{:else}
+
+{/if}
+Nameserver
+
diff --git a/src/components/create-domains/SrvCreate.svelte b/src/components/create-domains/SrvCreate.svelte
new file mode 100644
index 0000000..25bc792
--- /dev/null
+++ b/src/components/create-domains/SrvCreate.svelte
@@ -0,0 +1,21 @@
+
+
+Name
+{#if editMode}
+ {editItem.Hdr.Name}
+{:else}
+
+{/if}
+Priority
+
+Weight
+
+Port
+
+Target
+
diff --git a/src/components/create-domains/TxtCreate.svelte b/src/components/create-domains/TxtCreate.svelte
new file mode 100644
index 0000000..34988c9
--- /dev/null
+++ b/src/components/create-domains/TxtCreate.svelte
@@ -0,0 +1,19 @@
+
+
+Name
+{#if editMode}
+ {editItem.Hdr.Name}
+{:else}
+
+{/if}
+Value
+
diff --git a/src/components/domains/ARow.svelte b/src/components/domains/ARow.svelte
index 15f2adc..5dcdfb4 100644
--- a/src/components/domains/ARow.svelte
+++ b/src/components/domains/ARow.svelte
@@ -1,8 +1,9 @@
+
+
+
{recordName} Records
+ {#if emptyRecord != null && createItem != null}
+
+
+
+
+
+ {/if}
+
+
+
+
+
+
+ {#each rowOrdering(value.rows, $domainOption, isTRecord) as item}
+
+
+
+ Loading...
+ |
+
+
+
+ Error loading row for {item.data.Hdr.Name}: {reason} |
+
+
+
+
+ {/each}
+
+
+
+
diff --git a/src/views/DomainsView.svelte b/src/views/DomainsView.svelte
index 624a105..29d0960 100644
--- a/src/views/DomainsView.svelte
+++ b/src/views/DomainsView.svelte
@@ -1,8 +1,14 @@
{#if soaRecords.length >= 1}
{/if}
-SOA Record
-
-
- Primary Domain |
- Email |
- Default TTL |
- Refresh Rate |
- Retry Rate |
- Expire Time |
- |
-
+{#each recordTypes as recordType}
+
+
+ {#each recordType.headers as header}
+ {header} |
+ {/each}
+ |
+
-
- {#each rowOrdering(value.rows, $domainOption, isSoaRecord) as item}
-
-
-
- Loading...
- |
-
+
+ {#if recordType.create != null && recordType.empty != null}
+
+ {/if}
+
-
- Error loading row for {item.data.Hdr.Name}: {reason} |
-
-
-
-
- {/each}
-
-
-
-NS Record
-
-
- Name Server |
- Subdomain |
- TTL |
- |
-
-
-
- {#each rowOrdering(value.rows, $domainOption, isNsRecord) as item}
-
-
-
- Loading...
- |
-
-
-
- Error loading row for {item.data.Hdr.Name}: {reason} |
-
-
-
-
- {/each}
-
-
-
-MX Record
-
-
- Mail Server |
- Preference |
- Subdomain |
- TTL |
- |
-
-
-
- {#each rowOrdering(value.rows, $domainOption, isMxRecord) as item}
-
-
-
- Loading...
- |
-
-
-
- Error loading row for {item.data.Hdr.Name}: {reason} |
-
-
-
-
- {/each}
-
-
-
-A/AAAA Record
-
-
- Hostname |
- IP Address |
- TTL |
- |
-
-
-
- {#each rowOrdering(value.rows, $domainOption, t => isARecord(t) || isAaaaRecord(t)) as item}
-
-
-
- Loading...
- |
-
-
-
- Error loading row for {item.data.Hdr.Name}: {reason} |
-
-
-
-
- {/each}
-
-
-
-CNAME Record
-
-
- Hostname |
- Aliases to |
- TTL |
- |
-
-
-
- {#each rowOrdering(value.rows, $domainOption, isCnameRecord) as item}
-
-
-
- Loading...
- |
-
-
-
- Error loading row for {item.data.Hdr.Name}: {reason} |
-
-
-
-
- {/each}
-
-
-
-TXT Record
-
-
- Hostname |
- Value |
- TTL |
- |
-
-
-
- {#each rowOrdering(value.rows, $domainOption, isTxtRecord) as item}
-
-
-
- Loading...
- |
-
-
-
- Error loading row for {item.data.Hdr.Name}: {reason} |
-
-
-
-
- {/each}
-
-
-
-SRV Record
-
-
- Name |
- Priority |
- Weight |
- Port |
- Target |
- TTL |
- |
-
-
-
- {#each rowOrdering(value.rows, $domainOption, isSrvRecord) as item}
-
-
-
- Loading...
- |
-
-
-
- Error loading row for {item.data.Hdr.Name}: {reason} |
-
-
-
-
- {/each}
-
-
-
-CAA Record
-
-
- Name |
- Tag |
- Value |
- TTL |
- |
-
-
-
- {#each rowOrdering(value.rows, $domainOption, isCaaRecord) as item}
-
-
-
- Loading...
- |
-
-
-
- Error loading row for {item.data.Hdr.Name}: {reason} |
-
-
-
-
- {/each}
-
-
+
+
+{/each}