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
+}>()
@@ -11,7 +14,9 @@ const {content} = defineProps(['content'])
v-model:value="content"
lang="nginx"
theme="monokai"
- style="min-height: 100vh"/>
+ :style="{
+ minHeight: defaultHeight || '100vh'
+ }"/>
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 @@
+
+
-
-
- {{ $gettext('Single Directive') }}
-
-
- if
-
-
-
-
-
-
-
-
-
+
+
+
+ {{ $gettext('Single Directive') }}
+
+
+ if
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ $gettext('Add Directive Below') }}
-
-
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 @@
+
+
-
-
-
-
- {{ $gettext('Directives') }}
+
+
+
+
+
+
-
+
-
-
-
+
+
+
-
-
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
+ }
+ }
}