From 418a53f4adb3a0298d50092d12cddc8f18b25c54 Mon Sep 17 00:00:00 2001 From: 0xJacky Date: Thu, 13 Apr 2023 11:07:12 +0800 Subject: [PATCH] wip: dns credentials manager --- frontend/src/api/dns_credential.ts | 5 + frontend/src/components/Chart/AreaChart.vue | 10 +- frontend/src/components/ChatGPT/ChatGPT.vue | 3 +- .../components/NginxControl/NginxControl.vue | 4 +- .../StdDataDisplay/StdBatchEdit.vue | 35 +- .../src/components/StdDataDisplay/StdCurd.vue | 43 +- .../StdDataDisplay/StdPagination.vue | 10 +- .../StdDataEntry/components/StdPassword.vue | 8 +- .../src/components/StdDataEntry/index.tsx | 2 +- frontend/src/routes/index.ts | 24 +- frontend/src/views/cert/DNSCredential.vue | 62 +++ frontend/src/views/config/Config.vue | 12 +- frontend/src/views/config/config.ts | 3 +- frontend/src/views/domain/DomainAdd.vue | 1 - frontend/src/views/domain/DomainList.vue | 5 +- frontend/src/views/domain/cert/Cert.vue | 3 +- frontend/src/views/domain/cert/CertInfo.vue | 2 +- frontend/src/views/domain/cert/ChangeCert.vue | 2 +- frontend/src/views/domain/cert/IssueCert.vue | 2 +- .../cert/components/AutoCertStepOne.vue | 2 +- .../domain/cert/components/DNSChallenge.vue | 20 +- .../domain/cert/components/ObtainCert.vue | 2 +- .../views/domain/ngx_conf/LocationEditor.vue | 1 - .../src/views/domain/ngx_conf/LogEntry.vue | 2 +- .../views/domain/ngx_conf/NgxConfigEditor.vue | 3 +- .../config_template/ConfigTemplate.vue | 4 +- .../ngx_conf/directive/DirectiveAdd.vue | 1 - .../ngx_conf/directive/DirectiveEditor.vue | 1 - .../directive/DirectiveEditorItem.vue | 1 - frontend/src/views/other/Install.vue | 12 +- frontend/src/views/other/Login.vue | 5 +- frontend/src/views/preference/Preference.vue | 2 +- server/api/dns_credential.go | 122 ++++++ .../{config-backup.go => config_backup.go} | 0 server/model/dns_credential.go | 12 + server/model/model.go | 1 + server/query/dns_credentials.gen.go | 374 ++++++++++++++++++ server/query/gen.go | 100 ++--- server/router/routers.go | 8 + 39 files changed, 758 insertions(+), 151 deletions(-) create mode 100644 frontend/src/api/dns_credential.ts create mode 100644 frontend/src/views/cert/DNSCredential.vue create mode 100644 server/api/dns_credential.go rename server/model/{config-backup.go => config_backup.go} (100%) create mode 100644 server/model/dns_credential.go create mode 100644 server/query/dns_credentials.gen.go diff --git a/frontend/src/api/dns_credential.ts b/frontend/src/api/dns_credential.ts new file mode 100644 index 00000000..097c2838 --- /dev/null +++ b/frontend/src/api/dns_credential.ts @@ -0,0 +1,5 @@ +import Curd from '@/api/curd' + +const dns_credential = new Curd('/dns_credential') + +export default dns_credential diff --git a/frontend/src/components/Chart/AreaChart.vue b/frontend/src/components/Chart/AreaChart.vue index 5a253338..001add2a 100644 --- a/frontend/src/components/Chart/AreaChart.vue +++ b/frontend/src/components/Chart/AreaChart.vue @@ -22,11 +22,11 @@ let chartOptions = { enabled: false }, animations: { - enabled: false, + enabled: false }, toolbar: { show: false - }, + } }, colors: ['#ff6385', '#36a3eb'], fill: { @@ -41,7 +41,7 @@ let chartOptions = { }, stroke: { curve: 'smooth', - width: 0, + width: 0 }, xaxis: { type: 'datetime', @@ -75,7 +75,7 @@ let chartOptions = { }, onItemHover: { highlightDataSeries: false - }, + } } } @@ -114,7 +114,7 @@ const callback = () => { }, onItemHover: { highlightDataSeries: false - }, + } } } } diff --git a/frontend/src/components/ChatGPT/ChatGPT.vue b/frontend/src/components/ChatGPT/ChatGPT.vue index d28b46a9..f959206a 100644 --- a/frontend/src/components/ChatGPT/ChatGPT.vue +++ b/frontend/src/components/ChatGPT/ChatGPT.vue @@ -7,11 +7,10 @@ import {urlJoin} from '@/lib/helper' import {marked} from 'marked' import hljs from 'highlight.js' import 'highlight.js/styles/vs2015.css' -import {SendOutlined} from '@ant-design/icons-vue' +import Icon, {SendOutlined} from '@ant-design/icons-vue' import Template from '@/views/template/Template.vue' import openai from '@/api/openai' import ChatGPT_logo from '@/assets/svg/ChatGPT_logo.svg' -import Icon from '@ant-design/icons-vue' const {$gettext} = useGettext() diff --git a/frontend/src/components/NginxControl/NginxControl.vue b/frontend/src/components/NginxControl/NginxControl.vue index a544dc45..4050d42b 100644 --- a/frontend/src/components/NginxControl/NginxControl.vue +++ b/frontend/src/components/NginxControl/NginxControl.vue @@ -1,7 +1,5 @@ + + + + diff --git a/frontend/src/views/config/Config.vue b/frontend/src/views/config/Config.vue index 23a88cfc..6bf5bd82 100644 --- a/frontend/src/views/config/Config.vue +++ b/frontend/src/views/config/Config.vue @@ -2,19 +2,17 @@ import StdTable from '@/components/StdDataDisplay/StdTable.vue' import gettext from '@/gettext' import config from '@/api/config' -import {customRender, datetime} from '@/components/StdDataDisplay/StdTableTransformer' -import {computed, h, nextTick, ref, watch} from 'vue' - -const {$gettext} = gettext - -const api = config - +import {computed, ref, watch} from 'vue' import configColumns from '@/views/config/config' import {useRoute} from 'vue-router' import FooterToolBar from '@/components/FooterToolbar/FooterToolBar.vue' import router from '@/routes' import InspectConfig from '@/views/config/InspectConfig.vue' +const {$gettext} = gettext + +const api = config + const table = ref(null) const route = useRoute() diff --git a/frontend/src/views/config/config.ts b/frontend/src/views/config/config.ts index 63a1bc18..bfac78e6 100644 --- a/frontend/src/views/config/config.ts +++ b/frontend/src/views/config/config.ts @@ -1,10 +1,9 @@ import {customRender, datetime} from '@/components/StdDataDisplay/StdTableTransformer' import gettext from '@/gettext' +import {h} from 'vue' const {$gettext} = gettext -import {h} from 'vue' - const configColumns = [{ title: () => $gettext('Name'), dataIndex: 'name', diff --git a/frontend/src/views/domain/DomainAdd.vue b/frontend/src/views/domain/DomainAdd.vue index 25a99a3f..89fa3217 100644 --- a/frontend/src/views/domain/DomainAdd.vue +++ b/frontend/src/views/domain/DomainAdd.vue @@ -8,7 +8,6 @@ import ngx from '@/api/ngx' import {computed, reactive, ref} from 'vue' import {message} from 'ant-design-vue' import {useRouter} from 'vue-router' -import template from '@/api/template' const {$gettext, interpolate} = useGettext() diff --git a/frontend/src/views/domain/DomainList.vue b/frontend/src/views/domain/DomainList.vue index b5d99edc..cc06747d 100644 --- a/frontend/src/views/domain/DomainList.vue +++ b/frontend/src/views/domain/DomainList.vue @@ -3,15 +3,14 @@ import StdTable from '@/components/StdDataDisplay/StdTable.vue' import {customRender, datetime} from '@/components/StdDataDisplay/StdTableTransformer' import {useGettext} from 'vue3-gettext' - -const {$gettext, interpolate} = useGettext() - import domain from '@/api/domain' import {Badge, message} from 'ant-design-vue' import {h, ref} from 'vue' import {input} from '@/components/StdDataEntry' import SiteDuplicate from '@/views/domain/SiteDuplicate.vue' +const {$gettext, interpolate} = useGettext() + const columns = [{ title: () => $gettext('Name'), dataIndex: 'name', diff --git a/frontend/src/views/domain/cert/Cert.vue b/frontend/src/views/domain/cert/Cert.vue index e4b52698..a58282e0 100644 --- a/frontend/src/views/domain/cert/Cert.vue +++ b/frontend/src/views/domain/cert/Cert.vue @@ -1,10 +1,9 @@