From d564aae5f36188b5215e0d2b7f6b0d2ed5029730 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Tue, 16 Feb 2021 19:14:10 +0100 Subject: [PATCH] Added DNS Detail page. --- frontend/package.json | 1 + frontend/src/api/domains.js | 3 + frontend/src/components/domains/DNSDetail.vue | 139 ++++++++++ .../src/components/domains/DomainList.vue | 239 +++++++++--------- frontend/src/components/layout/Navbar.vue | 2 +- frontend/src/components/layout/Topbar.vue | 2 +- frontend/src/filters/index.js | 8 + frontend/yarn.lock | 5 + modoboa/admin/models/domain.py | 6 +- modoboa/dnstools/serializers.py | 51 ++++ modoboa/dnstools/urls_api.py | 10 + modoboa/dnstools/viewsets.py | 26 ++ modoboa/urls_api.py | 1 + 13 files changed, 373 insertions(+), 120 deletions(-) create mode 100644 frontend/src/components/domains/DNSDetail.vue create mode 100644 modoboa/dnstools/serializers.py create mode 100644 modoboa/dnstools/urls_api.py create mode 100644 modoboa/dnstools/viewsets.py diff --git a/frontend/package.json b/frontend/package.json index 92da867f1..e9f06fd65 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -11,6 +11,7 @@ "dependencies": { "core-js": "^3.6.5", "js-cookie": "^2.2.1", + "luxon": "^1.26.0", "vee-validate": "^3.4.5", "vue": "^2.6.11", "vue-cookie": "^1.1.4", diff --git a/frontend/src/api/domains.js b/frontend/src/api/domains.js index 9f8fed7bd..c86d69a37 100644 --- a/frontend/src/api/domains.js +++ b/frontend/src/api/domains.js @@ -7,6 +7,9 @@ export default { getDomains () { return repository.get(`/${domainResource}/`) }, + getDomainDNSDetail (domainId) { + return repository.get(`/${domainResource}/${domainId}/dns_detail/`) + }, getDomainAliases (domain) { let url = `/${domainAliasResource}/` if (domain !== undefined) { diff --git a/frontend/src/components/domains/DNSDetail.vue b/frontend/src/components/domains/DNSDetail.vue new file mode 100644 index 000000000..537bef85c --- /dev/null +++ b/frontend/src/components/domains/DNSDetail.vue @@ -0,0 +1,139 @@ + + + diff --git a/frontend/src/components/domains/DomainList.vue b/frontend/src/components/domains/DomainList.vue index 08fd8fd39..894972019 100644 --- a/frontend/src/components/domains/DomainList.vue +++ b/frontend/src/components/domains/DomainList.vue @@ -1,120 +1,122 @@ @@ -122,10 +124,12 @@ import { mapGetters } from 'vuex' import domainApi from '@/api/domains' import ConfirmDialog from '@/components/layout/ConfirmDialog' +import DNSDetail from '@/components/domains/DNSDetail' export default { components: { - ConfirmDialog + ConfirmDialog, + 'dns-detail': DNSDetail }, computed: mapGetters({ domains: 'domains/domains' @@ -142,6 +146,7 @@ export default { ], selectedDomain: null, showConfirmDialog: false, + showDNSdetail: false, search: '', selected: [], expanded: [], @@ -205,6 +210,10 @@ export default { this.$set(this.aliases, item.name, resp.data) }) }, + openDNSDetail (domain) { + this.selectedDomain = domain + this.showDNSdetail = true + }, showAliases (item) { this.expanded = [{ item }] } diff --git a/frontend/src/components/layout/Navbar.vue b/frontend/src/components/layout/Navbar.vue index b3cac4f1d..bba3231d4 100644 --- a/frontend/src/components/layout/Navbar.vue +++ b/frontend/src/components/layout/Navbar.vue @@ -5,7 +5,7 @@ app dark > -
+
-
+