From b19ecdda9cf22059d9cd5ce317ee9018fb7d06fe Mon Sep 17 00:00:00 2001 From: 0xJacky Date: Thu, 28 Jul 2022 13:59:39 +0800 Subject: [PATCH] Refactored nginx configuration editor --- frontend/src/api/domain.js | 4 +- frontend/src/api/index.js | 4 +- frontend/src/api/ngx.js | 13 + .../components/StdDataDisplay/StdTable.vue | 9 +- .../components/VueItextarea/VueItextarea.vue | 16 +- frontend/src/layouts/BaseLayout.vue | 1 - frontend/src/views/domain/DomainAdd.vue | 248 ++++++----- frontend/src/views/domain/DomainEdit.vue | 219 ++++------ frontend/src/views/domain/cert/Cert.vue | 44 ++ .../src/views/domain/{ => cert}/CertInfo.vue | 12 +- frontend/src/views/domain/cert/IssueCert.vue | 163 ++++++++ frontend/src/views/domain/columns.js | 90 ++-- frontend/src/views/domain/methods.js | 33 +- .../views/domain/ngx_conf/LocationEditor.vue | 78 ++++ .../views/domain/ngx_conf/NgxConfigEditor.vue | 104 +++++ .../ngx_conf/directive/DirectiveAdd.vue | 74 ++++ .../ngx_conf/directive/DirectiveEditor.vue | 92 +++++ .../src/views/domain/ngx_conf/ngx_constant.js | 1 + server/api/cert.go | 226 +++++----- server/api/domain.go | 391 +++++++++--------- server/api/ngx.go | 42 ++ server/api/template.go | 60 ++- server/router/middleware.go | 4 +- server/router/routers.go | 142 ++++--- server/template/http-conf | 13 - server/template/https-conf | 25 -- server/template/template.go | 6 - server/tool/cert.go | 292 ++++++------- server/tool/nginx/build_config.go | 2 +- server/tool/nginx/parse.go | 22 +- server/tool/nginx/type.go | 2 - 31 files changed, 1476 insertions(+), 956 deletions(-) create mode 100644 frontend/src/api/ngx.js create mode 100644 frontend/src/views/domain/cert/Cert.vue rename frontend/src/views/domain/{ => cert}/CertInfo.vue (91%) create mode 100644 frontend/src/views/domain/cert/IssueCert.vue create mode 100644 frontend/src/views/domain/ngx_conf/LocationEditor.vue create mode 100644 frontend/src/views/domain/ngx_conf/NgxConfigEditor.vue create mode 100644 frontend/src/views/domain/ngx_conf/directive/DirectiveAdd.vue create mode 100644 frontend/src/views/domain/ngx_conf/directive/DirectiveEditor.vue create mode 100644 frontend/src/views/domain/ngx_conf/ngx_constant.js create mode 100644 server/api/ngx.go delete mode 100644 server/template/http-conf delete mode 100644 server/template/https-conf delete mode 100644 server/template/template.go diff --git a/frontend/src/api/domain.js b/frontend/src/api/domain.js index 7cf95641..b1266cf0 100644 --- a/frontend/src/api/domain.js +++ b/frontend/src/api/domain.js @@ -27,8 +27,8 @@ const domain = { return http.post(base_url + '/' + name + '/disable') }, - get_template(name) { - return http.get('template/' + name) + get_template() { + return http.get('template') }, cert_info(domain) { diff --git a/frontend/src/api/index.js b/frontend/src/api/index.js index 66aa9948..54f3bdc9 100644 --- a/frontend/src/api/index.js +++ b/frontend/src/api/index.js @@ -5,6 +5,7 @@ import user from './user' import install from './install' import analytic from './analytic' import settings from './settings' +import ngx from './ngx' export default { domain, @@ -13,5 +14,6 @@ export default { user, install, analytic, - settings + settings, + ngx } diff --git a/frontend/src/api/ngx.js b/frontend/src/api/ngx.js new file mode 100644 index 00000000..eeacf95a --- /dev/null +++ b/frontend/src/api/ngx.js @@ -0,0 +1,13 @@ +import http from '@/lib/http' + +const ngx = { + build_config(ngxConfig) { + return http.post('/ngx/build_config', ngxConfig) + }, + + tokenize_config(content) { + return http.post('/ngx/tokenize_config', {content}) + } +} + +export default ngx diff --git a/frontend/src/components/StdDataDisplay/StdTable.vue b/frontend/src/components/StdDataDisplay/StdTable.vue index dfafd029..b970a1cf 100644 --- a/frontend/src/components/StdDataDisplay/StdTable.vue +++ b/frontend/src/components/StdDataDisplay/StdTable.vue @@ -72,7 +72,7 @@ :okText="ok_text" :title="restore_title_text" @confirm="restore(record[rowKey])"> - {{restore_action_text}} + {{ restore_action_text }} - {{destroy_action_text}} + {{ destroy_action_text }} @@ -93,6 +93,7 @@ import StdPagination from './StdPagination' import moment from 'moment' import StdDataEntry from '@/components/StdDataEntry/StdDataEntry' +import $gettext, {$interpolate} from '@/lib/translate/gettext' export default { name: 'StdTable', @@ -230,10 +231,10 @@ export default { destroy(id) { this.api.destroy(id).then(() => { this.get_list() - this.$message.success('删除 ID: ' + id + ' 成功') + this.$message.success($interpolate($gettext('Delete ID: %{id}'), {id: id})) }).catch(e => { console.log(e) - this.$message.error(e?.message ?? '系统错误') + this.$message.error(e?.message ?? $gettext('Server error')) }) }, get_list(page_num = null) { diff --git a/frontend/src/components/VueItextarea/VueItextarea.vue b/frontend/src/components/VueItextarea/VueItextarea.vue index 5e2b1655..39dfa179 100644 --- a/frontend/src/components/VueItextarea/VueItextarea.vue +++ b/frontend/src/components/VueItextarea/VueItextarea.vue @@ -1,5 +1,5 @@ diff --git a/frontend/src/views/domain/cert/Cert.vue b/frontend/src/views/domain/cert/Cert.vue new file mode 100644 index 00000000..294b0943 --- /dev/null +++ b/frontend/src/views/domain/cert/Cert.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/frontend/src/views/domain/CertInfo.vue b/frontend/src/views/domain/cert/CertInfo.vue similarity index 91% rename from frontend/src/views/domain/CertInfo.vue rename to frontend/src/views/domain/cert/CertInfo.vue index 5a289055..dd452ee1 100644 --- a/frontend/src/views/domain/CertInfo.vue +++ b/frontend/src/views/domain/cert/CertInfo.vue @@ -1,6 +1,6 @@