From 0d4b126dd4b84cbf4e01d10d1e76b5a3f9604221 Mon Sep 17 00:00:00 2001 From: 0xJacky Date: Mon, 1 Aug 2022 14:32:17 +0800 Subject: [PATCH] [frontend-next] Refactored NgxConfigEditor --- frontend-next/components.d.ts | 5 + .../src/components/CodeEditor/CodeEditor.vue | 9 +- .../src/components/CodeEditor/index.ts | 3 + frontend-next/src/views/domain/DomainEdit.vue | 16 +- .../src/views/domain/cert/CertInfo.vue | 71 ++--- .../views/domain/ngx_conf/LocationEditor.vue | 122 ++++---- .../views/domain/ngx_conf/NgxConfigEditor.vue | 295 +++++++++--------- .../ngx_conf/directive/DirectiveAdd.vue | 123 ++++---- .../ngx_conf/directive/DirectiveEditor.vue | 130 ++++---- .../ngx_conf/{ngx_constant.js => index.ts} | 0 frontend-next/version.json | 2 +- frontend-next/vite.config.ts | 3 + server/api/cert.go | 196 ++++++------ 13 files changed, 485 insertions(+), 490 deletions(-) create mode 100644 frontend-next/src/components/CodeEditor/index.ts rename frontend-next/src/views/domain/ngx_conf/{ngx_constant.js => index.ts} (100%) diff --git a/frontend-next/components.d.ts b/frontend-next/components.d.ts index af71a6ea..85a7ac0b 100644 --- a/frontend-next/components.d.ts +++ b/frontend-next/components.d.ts @@ -15,9 +15,11 @@ declare module '@vue/runtime-core' { AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider'] ADivider: typeof import('ant-design-vue/es')['Divider'] ADrawer: typeof import('ant-design-vue/es')['Drawer'] + AEmpty: typeof import('ant-design-vue/es')['Empty'] AForm: typeof import('ant-design-vue/es')['Form'] AFormItem: typeof import('ant-design-vue/es')['FormItem'] AInput: typeof import('ant-design-vue/es')['Input'] + AInputGroup: typeof import('ant-design-vue/es')['InputGroup'] AInputPassword: typeof import('ant-design-vue/es')['InputPassword'] ALayout: typeof import('ant-design-vue/es')['Layout'] ALayoutContent: typeof import('ant-design-vue/es')['LayoutContent'] @@ -38,7 +40,10 @@ declare module '@vue/runtime-core' { ASubMenu: typeof import('ant-design-vue/es')['SubMenu'] ASwitch: typeof import('ant-design-vue/es')['Switch'] ATable: typeof import('ant-design-vue/es')['Table'] + ATabPane: typeof import('ant-design-vue/es')['TabPane'] + ATabs: typeof import('ant-design-vue/es')['Tabs'] ATag: typeof import('ant-design-vue/es')['Tag'] + ATextarea: typeof import('ant-design-vue/es')['Textarea'] Breadcrumb: typeof import('./src/components/Breadcrumb/Breadcrumb.vue')['default'] CodeEditor: typeof import('./src/components/CodeEditor/CodeEditor.vue')['default'] FooterToolBar: typeof import('./src/components/FooterToolbar/FooterToolBar.vue')['default'] diff --git a/frontend-next/src/components/CodeEditor/CodeEditor.vue b/frontend-next/src/components/CodeEditor/CodeEditor.vue index b7823f39..d1484121 100644 --- a/frontend-next/src/components/CodeEditor/CodeEditor.vue +++ b/frontend-next/src/components/CodeEditor/CodeEditor.vue @@ -3,7 +3,10 @@ import {VAceEditor} from 'vue3-ace-editor' import 'ace-builds/src-noconflict/mode-nginx' import 'ace-builds/src-noconflict/theme-monokai' -const {content} = defineProps(['content']) +const {content, defaultHeight} = defineProps<{ + content?: string + defaultHeight?: string +}>() diff --git a/frontend-next/src/views/domain/ngx_conf/directive/DirectiveAdd.vue b/frontend-next/src/views/domain/ngx_conf/directive/DirectiveAdd.vue index f460529e..52b0b407 100644 --- a/frontend-next/src/views/domain/ngx_conf/directive/DirectiveAdd.vue +++ b/frontend-next/src/views/domain/ngx_conf/directive/DirectiveAdd.vue @@ -1,22 +1,69 @@ + + - - diff --git a/frontend-next/src/views/domain/ngx_conf/directive/DirectiveEditor.vue b/frontend-next/src/views/domain/ngx_conf/directive/DirectiveEditor.vue index 4f583b3f..4f7802fb 100644 --- a/frontend-next/src/views/domain/ngx_conf/directive/DirectiveEditor.vue +++ b/frontend-next/src/views/domain/ngx_conf/directive/DirectiveEditor.vue @@ -1,76 +1,78 @@ + + - - diff --git a/frontend-next/src/views/domain/ngx_conf/ngx_constant.js b/frontend-next/src/views/domain/ngx_conf/index.ts similarity index 100% rename from frontend-next/src/views/domain/ngx_conf/ngx_constant.js rename to frontend-next/src/views/domain/ngx_conf/index.ts diff --git a/frontend-next/version.json b/frontend-next/version.json index 398dd01b..8dfd7154 100644 --- a/frontend-next/version.json +++ b/frontend-next/version.json @@ -1 +1 @@ -{"version":"1.5.0","build_id":6,"total_build":76} \ No newline at end of file +{"version":"1.5.0","build_id":8,"total_build":78} \ No newline at end of file diff --git a/frontend-next/vite.config.ts b/frontend-next/vite.config.ts index 26b8db04..9f662236 100644 --- a/frontend-next/vite.config.ts +++ b/frontend-next/vite.config.ts @@ -72,4 +72,7 @@ export default defineConfig({ }, }, }, + build: { + chunkSizeWarningLimit: 600 + } }) diff --git a/server/api/cert.go b/server/api/cert.go index 158c5776..09103cdd 100644 --- a/server/api/cert.go +++ b/server/api/cert.go @@ -1,128 +1,134 @@ package api import ( - "github.com/0xJacky/Nginx-UI/server/tool" - "github.com/0xJacky/Nginx-UI/server/tool/nginx" - "github.com/gin-gonic/gin" - "github.com/gorilla/websocket" - "log" - "net/http" - "os" + "github.com/0xJacky/Nginx-UI/server/tool" + "github.com/0xJacky/Nginx-UI/server/tool/nginx" + "github.com/gin-gonic/gin" + "github.com/gorilla/websocket" + "log" + "net/http" + "os" ) func CertInfo(c *gin.Context) { - domain := c.Param("domain") + domain := c.Param("domain") - key, err := tool.GetCertInfo(domain) + key, err := tool.GetCertInfo(domain) - c.JSON(http.StatusOK, gin.H{ - "error": err, - "subject_name": key.Subject.CommonName, - "issuer_name": key.Issuer.CommonName, - "not_after": key.NotAfter, - "not_before": key.NotBefore, - }) + if err != nil { + c.JSON(http.StatusOK, gin.H{ + "error": err, + }) + return + } + + c.JSON(http.StatusOK, gin.H{ + "subject_name": key.Subject.CommonName, + "issuer_name": key.Issuer.CommonName, + "not_after": key.NotAfter, + "not_before": key.NotBefore, + }) } func IssueCert(c *gin.Context) { - domain := c.Param("domain") - var upGrader = websocket.Upgrader{ - CheckOrigin: func(r *http.Request) bool { - return true - }, - } + domain := c.Param("domain") + var upGrader = websocket.Upgrader{ + CheckOrigin: func(r *http.Request) bool { + return true + }, + } - // upgrade http to websocket - ws, err := upGrader.Upgrade(c.Writer, c.Request, nil) - if err != nil { - log.Println(err) - return - } + // upgrade http to websocket + ws, err := upGrader.Upgrade(c.Writer, c.Request, nil) + if err != nil { + log.Println(err) + return + } - defer func(ws *websocket.Conn) { - err := ws.Close() - if err != nil { - log.Println("defer websocket close err", err) - } - }(ws) + defer func(ws *websocket.Conn) { + err := ws.Close() + if err != nil { + log.Println("defer websocket close err", err) + } + }(ws) - // read - mt, message, err := ws.ReadMessage() - if err != nil { - log.Println(err) - return - } + // read + mt, message, err := ws.ReadMessage() + if err != nil { + log.Println(err) + return + } - if mt == websocket.TextMessage && string(message) == "go" { + if mt == websocket.TextMessage && string(message) == "go" { - err = tool.IssueCert(domain) + err = tool.IssueCert(domain) - if err != nil { + if err != nil { - log.Println(err) + log.Println(err) - err = ws.WriteJSON(gin.H{ - "status": "error", - "message": err.Error(), - }) + err = ws.WriteJSON(gin.H{ + "status": "error", + "message": err.Error(), + }) - if err != nil { - log.Println(err) - return - } + if err != nil { + log.Println(err) + return + } - return - } + return + } - sslCertificatePath := nginx.GetNginxConfPath("ssl/" + domain + "/fullchain.cer") - _, err = os.Stat(sslCertificatePath) + sslCertificatePath := nginx.GetNginxConfPath("ssl/" + domain + "/fullchain.cer") + _, err = os.Stat(sslCertificatePath) - if err != nil { - log.Println(err) - return - } + if err != nil { + log.Println(err) + return + } - log.Println("[found]", "fullchain.cer") + log.Println("[found]", "fullchain.cer") - err = ws.WriteJSON(gin.H{ - "status": "success", - "message": "[found] fullchain.cer", - }) + err = ws.WriteJSON(gin.H{ + "status": "success", + "message": "[found] fullchain.cer", + }) - if err != nil { - log.Println(err) - return - } + if err != nil { + log.Println(err) + return + } - sslCertificateKeyPath := nginx.GetNginxConfPath("ssl/" + domain + "/" + domain + ".key") - _, err = os.Stat(sslCertificateKeyPath) + sslCertificateKeyPath := nginx.GetNginxConfPath("ssl/" + domain + "/" + domain + ".key") + _, err = os.Stat(sslCertificateKeyPath) - if err != nil { - log.Println(err) - return - } + if err != nil { + log.Println(err) + return + } - log.Println("[found]", "cert key") - err = ws.WriteJSON(gin.H{ - "status": "success", - "message": "[found] Certificate Key", - }) + log.Println("[found]", "cert key") + err = ws.WriteJSON(gin.H{ + "status": "success", + "message": "[found] Certificate Key", + }) - if err != nil { - log.Println(err) - return - } + if err != nil { + log.Println(err) + return + } - err = ws.WriteJSON(gin.H{ - "status": "success", - "message": "Issued certificate successfully", - "ssl_certificate": sslCertificatePath, - "ssl_certificate_key": sslCertificateKeyPath, - }) + err = ws.WriteJSON(gin.H{ + "status": "success", + "message": "Issued certificate successfully", + "ssl_certificate": sslCertificatePath, + "ssl_certificate_key": sslCertificateKeyPath, + }) - if err != nil { - log.Println(err) - return - } - } + if err != nil { + log.Println(err) + return + } + } }