Browse Source

Enhanced domain edit

0xJacky 3 years ago
parent
commit
3a935831c6

+ 3 - 1
frontend/src/lazy.js

@@ -47,7 +47,8 @@ import {
     Tabs,
     Tooltip,
     Transfer,
-    Upload
+    Upload,
+    Tag
 } from 'ant-design-vue'
 
 Vue.use(ConfigProvider)
@@ -97,6 +98,7 @@ Vue.use(Result)
 Vue.use(pageHeader)
 Vue.use(Switch)
 Vue.use(Space)
+Vue.use(Tag)
 
 Vue.prototype.$confirm = Modal.confirm
 Vue.prototype.$message = message

+ 32 - 27
frontend/src/locale/en/LC_MESSAGES/app.po

@@ -27,14 +27,18 @@ msgstr ""
 msgid "Add Site"
 msgstr ""
 
-#: src/views/domain/DomainAdd.vue:86 src/views/domain/DomainEdit.vue:172
+#: src/views/domain/DomainAdd.vue:89 src/views/domain/DomainEdit.vue:164
 msgid "Auto-renewal disabled for %{name}"
 msgstr ""
 
-#: src/views/domain/DomainAdd.vue:80 src/views/domain/DomainEdit.vue:166
+#: src/views/domain/DomainAdd.vue:83 src/views/domain/DomainEdit.vue:158
 msgid "Auto-renewal enabled for %{name}"
 msgstr ""
 
+#: src/views/domain/DomainEdit.vue:38
+msgid "Back"
+msgstr ""
+
 #: src/views/domain/DomainAdd.vue:37
 msgid "Base information"
 msgstr ""
@@ -43,7 +47,7 @@ msgstr ""
 msgid "Build with"
 msgstr ""
 
-#: src/views/config/ConfigEdit.vue:5 src/views/domain/DomainEdit.vue:24
+#: src/views/config/ConfigEdit.vue:5
 msgid "Cancel"
 msgstr ""
 
@@ -111,7 +115,7 @@ msgstr ""
 msgid "Development Mode"
 msgstr ""
 
-#: src/views/domain/DomainAdd.vue:88 src/views/domain/DomainEdit.vue:174
+#: src/views/domain/DomainAdd.vue:91 src/views/domain/DomainEdit.vue:166
 msgid "Disable auto-renewal failed for %{name}"
 msgstr ""
 
@@ -120,7 +124,7 @@ msgstr ""
 msgid "Disabled"
 msgstr ""
 
-#: src/views/domain/DomainList.vue:55
+#: src/views/domain/DomainEdit.vue:180 src/views/domain/DomainList.vue:55
 msgid "Disabled successfully"
 msgstr ""
 
@@ -128,15 +132,15 @@ msgstr ""
 msgid "Disk IO"
 msgstr ""
 
-#: src/views/domain/DomainEdit.vue:134
+#: src/views/domain/DomainEdit.vue:124
 msgid "Do you want to change the template to support the TLS?"
 msgstr ""
 
-#: src/views/domain/DomainAdd.vue:111
+#: src/views/domain/DomainAdd.vue:112
 msgid "Domain Config Created Successfully"
 msgstr ""
 
-#: src/views/domain/DomainEdit.vue:42
+#: src/views/domain/DomainEdit.vue:49
 msgid "Edit %{n}"
 msgstr ""
 
@@ -144,7 +148,7 @@ msgstr ""
 msgid "Edit Configuration"
 msgstr ""
 
-#: src/views/domain/DomainEdit.vue:95
+#: src/views/domain/DomainEdit.vue:136
 msgid "Edit Configuration File"
 msgstr ""
 
@@ -156,11 +160,11 @@ msgstr ""
 msgid "Email (*)"
 msgstr ""
 
-#: src/views/domain/DomainAdd.vue:82 src/views/domain/DomainEdit.vue:168
+#: src/views/domain/DomainAdd.vue:85 src/views/domain/DomainEdit.vue:160
 msgid "Enable auto-renewal failed for %{name}"
 msgstr ""
 
-#: src/views/domain/DomainAdd.vue:39
+#: src/views/domain/DomainAdd.vue:40
 msgid "Enable failed"
 msgstr ""
 
@@ -168,12 +172,13 @@ msgstr ""
 msgid "Enable TLS"
 msgstr ""
 
-#: src/views/domain/DomainList.vue:8 src/views/domain/DomainList.vue:3
-#: src/views/domain/DomainList.vue:16
+#: src/views/domain/DomainEdit.vue:73 src/views/domain/DomainList.vue:8
+#: src/views/domain/DomainList.vue:3 src/views/domain/DomainList.vue:16
 msgid "Enabled"
 msgstr ""
 
-#: src/views/domain/DomainAdd.vue:36 src/views/domain/DomainList.vue:46
+#: src/views/domain/DomainAdd.vue:37 src/views/domain/DomainEdit.vue:172
+#: src/views/domain/DomainList.vue:46
 msgid "Enabled successfully"
 msgstr ""
 
@@ -181,11 +186,11 @@ msgstr ""
 msgid "Expiration Date: %{date}"
 msgstr ""
 
-#: src/views/domain/DomainList.vue:59
+#: src/views/domain/DomainEdit.vue:183 src/views/domain/DomainList.vue:59
 msgid "Failed to disable %{msg}"
 msgstr ""
 
-#: src/views/domain/DomainList.vue:50
+#: src/views/domain/DomainEdit.vue:175 src/views/domain/DomainList.vue:50
 msgid "Failed to enable %{msg}"
 msgstr ""
 
@@ -198,7 +203,7 @@ msgid "Finished"
 msgstr ""
 
 #: src/views/domain/DomainAdd.vue:13 src/views/domain/DomainAdd.vue:2
-#: src/views/domain/DomainEdit.vue:9 src/views/domain/DomainEdit.vue:3
+#: src/views/domain/DomainEdit.vue:22 src/views/domain/DomainEdit.vue:3
 msgid "Getting Certificate from Let's Encrypt"
 msgstr ""
 
@@ -259,7 +264,7 @@ msgstr ""
 msgid "Logout successful"
 msgstr ""
 
-#: src/views/domain/DomainEdit.vue:12 src/views/domain/DomainEdit.vue:6
+#: src/views/domain/DomainEdit.vue:25 src/views/domain/DomainEdit.vue:6
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "HTTPChallengePort (default: 9180) before getting the certificate."
@@ -367,17 +372,17 @@ msgstr ""
 msgid "Root Directory (root)"
 msgstr ""
 
-#: src/views/config/ConfigEdit.vue:6 src/views/domain/DomainEdit.vue:27
+#: src/views/config/ConfigEdit.vue:6 src/views/domain/DomainEdit.vue:41
 msgid "Save"
 msgstr ""
 
-#: src/views/config/ConfigEdit.vue:47 src/views/domain/DomainAdd.vue:43
-#: src/views/domain/DomainAdd.vue:54 src/views/domain/DomainEdit.vue:152
+#: src/views/config/ConfigEdit.vue:47 src/views/domain/DomainAdd.vue:44
+#: src/views/domain/DomainAdd.vue:55 src/views/domain/DomainEdit.vue:142
 msgid "Save error %{msg}"
 msgstr ""
 
-#: src/views/config/ConfigEdit.vue:44 src/views/domain/DomainAdd.vue:33
-#: src/views/domain/DomainAdd.vue:51 src/views/domain/DomainEdit.vue:146
+#: src/views/config/ConfigEdit.vue:44 src/views/domain/DomainAdd.vue:34
+#: src/views/domain/DomainAdd.vue:52 src/views/domain/DomainEdit.vue:136
 msgid "Saved successfully"
 msgstr ""
 
@@ -385,7 +390,7 @@ msgstr ""
 msgid "Send"
 msgstr ""
 
-#: src/views/config/ConfigEdit.vue:35 src/views/domain/DomainEdit.vue:72
+#: src/views/config/ConfigEdit.vue:35 src/views/domain/DomainEdit.vue:75
 #: src/views/other/Login.vue:35
 msgid "Server error"
 msgstr ""
@@ -438,7 +443,7 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr ""
 
-#: src/views/domain/DomainEdit.vue:4
+#: src/views/domain/DomainEdit.vue:17
 msgid ""
 "The following values will only take effect if you have the corresponding "
 "fields in your configuration file. The configuration filename cannot be "
@@ -446,11 +451,11 @@ msgid ""
 msgstr ""
 
 #: src/views/domain/DomainAdd.vue:15 src/views/domain/DomainAdd.vue:4
-#: src/views/domain/DomainEdit.vue:11 src/views/domain/DomainEdit.vue:5
+#: src/views/domain/DomainEdit.vue:24 src/views/domain/DomainEdit.vue:5
 msgid "This feature is not available in demo."
 msgstr ""
 
-#: src/views/domain/DomainEdit.vue:135
+#: src/views/domain/DomainEdit.vue:125
 msgid "This operation will lose the custom configuration."
 msgstr ""
 

BIN
frontend/src/locale/zh_CN/LC_MESSAGES/app.mo


+ 32 - 27
frontend/src/locale/zh_CN/LC_MESSAGES/app.po

@@ -29,14 +29,18 @@ msgstr "操作"
 msgid "Add Site"
 msgstr "添加站点"
 
-#: src/views/domain/DomainAdd.vue:86 src/views/domain/DomainEdit.vue:172
+#: src/views/domain/DomainAdd.vue:89 src/views/domain/DomainEdit.vue:164
 msgid "Auto-renewal disabled for %{name}"
 msgstr "成功关闭 %{name} 自动续签"
 
-#: src/views/domain/DomainAdd.vue:80 src/views/domain/DomainEdit.vue:166
+#: src/views/domain/DomainAdd.vue:83 src/views/domain/DomainEdit.vue:158
 msgid "Auto-renewal enabled for %{name}"
 msgstr "成功启用 %{name} 自动续签"
 
+#: src/views/domain/DomainEdit.vue:38
+msgid "Back"
+msgstr "返回"
+
 #: src/views/domain/DomainAdd.vue:37
 msgid "Base information"
 msgstr "基本信息"
@@ -45,7 +49,7 @@ msgstr "基本信息"
 msgid "Build with"
 msgstr "构建基于"
 
-#: src/views/config/ConfigEdit.vue:5 src/views/domain/DomainEdit.vue:24
+#: src/views/config/ConfigEdit.vue:5
 msgid "Cancel"
 msgstr "取消"
 
@@ -113,7 +117,7 @@ msgstr "检测到版本更新,页面将会刷新。"
 msgid "Development Mode"
 msgstr "开发模式"
 
-#: src/views/domain/DomainAdd.vue:88 src/views/domain/DomainEdit.vue:174
+#: src/views/domain/DomainAdd.vue:91 src/views/domain/DomainEdit.vue:166
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "关闭 %{name} 自动续签失败"
 
@@ -122,7 +126,7 @@ msgstr "关闭 %{name} 自动续签失败"
 msgid "Disabled"
 msgstr "禁用"
 
-#: src/views/domain/DomainList.vue:55
+#: src/views/domain/DomainEdit.vue:180 src/views/domain/DomainList.vue:55
 msgid "Disabled successfully"
 msgstr "禁用成功"
 
@@ -130,15 +134,15 @@ msgstr "禁用成功"
 msgid "Disk IO"
 msgstr "磁盘 IO"
 
-#: src/views/domain/DomainEdit.vue:134
+#: src/views/domain/DomainEdit.vue:124
 msgid "Do you want to change the template to support the TLS?"
 msgstr "你想要改变模板以支持 TLS 吗?"
 
-#: src/views/domain/DomainAdd.vue:111
+#: src/views/domain/DomainAdd.vue:112
 msgid "Domain Config Created Successfully"
 msgstr "域名配置文件创建成功"
 
-#: src/views/domain/DomainEdit.vue:42
+#: src/views/domain/DomainEdit.vue:49
 msgid "Edit %{n}"
 msgstr "编辑 %{n}"
 
@@ -146,7 +150,7 @@ msgstr "编辑 %{n}"
 msgid "Edit Configuration"
 msgstr "编辑配置"
 
-#: src/views/domain/DomainEdit.vue:95
+#: src/views/domain/DomainEdit.vue:136
 msgid "Edit Configuration File"
 msgstr "编辑配置文件"
 
@@ -158,11 +162,11 @@ msgstr "编辑站点"
 msgid "Email (*)"
 msgstr "邮箱 (*)"
 
-#: src/views/domain/DomainAdd.vue:82 src/views/domain/DomainEdit.vue:168
+#: src/views/domain/DomainAdd.vue:85 src/views/domain/DomainEdit.vue:160
 msgid "Enable auto-renewal failed for %{name}"
 msgstr "启用 %{name} 自动续签失败"
 
-#: src/views/domain/DomainAdd.vue:39
+#: src/views/domain/DomainAdd.vue:40
 msgid "Enable failed"
 msgstr "启用失败"
 
@@ -170,12 +174,13 @@ msgstr "启用失败"
 msgid "Enable TLS"
 msgstr "启用 TLS"
 
-#: src/views/domain/DomainList.vue:8 src/views/domain/DomainList.vue:3
-#: src/views/domain/DomainList.vue:16
+#: src/views/domain/DomainEdit.vue:73 src/views/domain/DomainList.vue:8
+#: src/views/domain/DomainList.vue:3 src/views/domain/DomainList.vue:16
 msgid "Enabled"
 msgstr "启用"
 
-#: src/views/domain/DomainAdd.vue:36 src/views/domain/DomainList.vue:46
+#: src/views/domain/DomainAdd.vue:37 src/views/domain/DomainEdit.vue:172
+#: src/views/domain/DomainList.vue:46
 msgid "Enabled successfully"
 msgstr "启用成功"
 
@@ -183,11 +188,11 @@ msgstr "启用成功"
 msgid "Expiration Date: %{date}"
 msgstr "过期时间: %{date}"
 
-#: src/views/domain/DomainList.vue:59
+#: src/views/domain/DomainEdit.vue:183 src/views/domain/DomainList.vue:59
 msgid "Failed to disable %{msg}"
 msgstr "禁用失败 %{msg}"
 
-#: src/views/domain/DomainList.vue:50
+#: src/views/domain/DomainEdit.vue:175 src/views/domain/DomainList.vue:50
 msgid "Failed to enable %{msg}"
 msgstr "启用失败 %{msg}"
 
@@ -200,7 +205,7 @@ msgid "Finished"
 msgstr "完成"
 
 #: src/views/domain/DomainAdd.vue:13 src/views/domain/DomainAdd.vue:2
-#: src/views/domain/DomainEdit.vue:9 src/views/domain/DomainEdit.vue:3
+#: src/views/domain/DomainEdit.vue:22 src/views/domain/DomainEdit.vue:3
 msgid "Getting Certificate from Let's Encrypt"
 msgstr "从 Let's Encrypt 获取证书"
 
@@ -261,7 +266,7 @@ msgstr "登录成功"
 msgid "Logout successful"
 msgstr "登出成功"
 
-#: src/views/domain/DomainEdit.vue:12 src/views/domain/DomainEdit.vue:6
+#: src/views/domain/DomainEdit.vue:25 src/views/domain/DomainEdit.vue:6
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "HTTPChallengePort (default: 9180) before getting the certificate."
@@ -371,17 +376,17 @@ msgstr "下载"
 msgid "Root Directory (root)"
 msgstr "网站根目录 (root)"
 
-#: src/views/config/ConfigEdit.vue:6 src/views/domain/DomainEdit.vue:27
+#: src/views/config/ConfigEdit.vue:6 src/views/domain/DomainEdit.vue:41
 msgid "Save"
 msgstr "保存"
 
-#: src/views/config/ConfigEdit.vue:47 src/views/domain/DomainAdd.vue:43
-#: src/views/domain/DomainAdd.vue:54 src/views/domain/DomainEdit.vue:152
+#: src/views/config/ConfigEdit.vue:47 src/views/domain/DomainAdd.vue:44
+#: src/views/domain/DomainAdd.vue:55 src/views/domain/DomainEdit.vue:142
 msgid "Save error %{msg}"
 msgstr "保存错误 %{msg}"
 
-#: src/views/config/ConfigEdit.vue:44 src/views/domain/DomainAdd.vue:33
-#: src/views/domain/DomainAdd.vue:51 src/views/domain/DomainEdit.vue:146
+#: src/views/config/ConfigEdit.vue:44 src/views/domain/DomainAdd.vue:34
+#: src/views/domain/DomainAdd.vue:52 src/views/domain/DomainEdit.vue:136
 msgid "Saved successfully"
 msgstr "保存成功"
 
@@ -389,7 +394,7 @@ msgstr "保存成功"
 msgid "Send"
 msgstr "上传"
 
-#: src/views/config/ConfigEdit.vue:35 src/views/domain/DomainEdit.vue:72
+#: src/views/config/ConfigEdit.vue:35 src/views/domain/DomainEdit.vue:75
 #: src/views/other/Login.vue:35
 msgid "Server error"
 msgstr "服务器错误"
@@ -444,7 +449,7 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr "文件名不能包含以下字符: %{c}"
 
-#: src/views/domain/DomainEdit.vue:4
+#: src/views/domain/DomainEdit.vue:17
 msgid ""
 "The following values will only take effect if you have the corresponding "
 "fields in your configuration file. The configuration filename cannot be "
@@ -454,11 +459,11 @@ msgstr ""
 "可修改。"
 
 #: src/views/domain/DomainAdd.vue:15 src/views/domain/DomainAdd.vue:4
-#: src/views/domain/DomainEdit.vue:11 src/views/domain/DomainEdit.vue:5
+#: src/views/domain/DomainEdit.vue:24 src/views/domain/DomainEdit.vue:5
 msgid "This feature is not available in demo."
 msgstr "该功能在 Demo 中不可用。"
 
-#: src/views/domain/DomainEdit.vue:135
+#: src/views/domain/DomainEdit.vue:125
 msgid "This operation will lose the custom configuration."
 msgstr "该操作将会丢失自定义配置。"
 

BIN
frontend/src/locale/zh_TW/LC_MESSAGES/app.mo


+ 34 - 31
frontend/src/locale/zh_TW/LC_MESSAGES/app.po

@@ -30,14 +30,18 @@ msgstr "操作"
 msgid "Add Site"
 msgstr "新增站點"
 
-#: src/views/domain/DomainAdd.vue:86 src/views/domain/DomainEdit.vue:172
+#: src/views/domain/DomainAdd.vue:89 src/views/domain/DomainEdit.vue:164
 msgid "Auto-renewal disabled for %{name}"
 msgstr "成功關閉 %{name} 自動續簽"
 
-#: src/views/domain/DomainAdd.vue:80 src/views/domain/DomainEdit.vue:166
+#: src/views/domain/DomainAdd.vue:83 src/views/domain/DomainEdit.vue:158
 msgid "Auto-renewal enabled for %{name}"
 msgstr "成功啟用 %{name} 自動續簽"
 
+#: src/views/domain/DomainEdit.vue:38
+msgid "Back"
+msgstr "返回"
+
 #: src/views/domain/DomainAdd.vue:37
 msgid "Base information"
 msgstr "基本訊息"
@@ -46,7 +50,7 @@ msgstr "基本訊息"
 msgid "Build with"
 msgstr "構建基於"
 
-#: src/views/config/ConfigEdit.vue:5 src/views/domain/DomainEdit.vue:24
+#: src/views/config/ConfigEdit.vue:5
 msgid "Cancel"
 msgstr "取消"
 
@@ -114,7 +118,7 @@ msgstr "檢測到版本更新,頁面將會重新整理。"
 msgid "Development Mode"
 msgstr "開發模式"
 
-#: src/views/domain/DomainAdd.vue:88 src/views/domain/DomainEdit.vue:174
+#: src/views/domain/DomainAdd.vue:91 src/views/domain/DomainEdit.vue:166
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "關閉 %{name} 自動續簽失敗"
 
@@ -123,7 +127,7 @@ msgstr "關閉 %{name} 自動續簽失敗"
 msgid "Disabled"
 msgstr "禁用"
 
-#: src/views/domain/DomainList.vue:55
+#: src/views/domain/DomainEdit.vue:180 src/views/domain/DomainList.vue:55
 msgid "Disabled successfully"
 msgstr "禁用成功"
 
@@ -131,15 +135,15 @@ msgstr "禁用成功"
 msgid "Disk IO"
 msgstr "磁碟 IO"
 
-#: src/views/domain/DomainEdit.vue:134
+#: src/views/domain/DomainEdit.vue:124
 msgid "Do you want to change the template to support the TLS?"
 msgstr "你想要改變模板以支援 TLS 嗎?"
 
-#: src/views/domain/DomainAdd.vue:111
+#: src/views/domain/DomainAdd.vue:112
 msgid "Domain Config Created Successfully"
 msgstr "域名配置文件創建成功"
 
-#: src/views/domain/DomainEdit.vue:42
+#: src/views/domain/DomainEdit.vue:49
 msgid "Edit %{n}"
 msgstr "編輯 %{n}"
 
@@ -147,7 +151,7 @@ msgstr "編輯 %{n}"
 msgid "Edit Configuration"
 msgstr "編輯配置"
 
-#: src/views/domain/DomainEdit.vue:95
+#: src/views/domain/DomainEdit.vue:136
 msgid "Edit Configuration File"
 msgstr "編輯配置檔案"
 
@@ -159,11 +163,11 @@ msgstr "編輯站點"
 msgid "Email (*)"
 msgstr "郵箱 (*)"
 
-#: src/views/domain/DomainAdd.vue:82 src/views/domain/DomainEdit.vue:168
+#: src/views/domain/DomainAdd.vue:85 src/views/domain/DomainEdit.vue:160
 msgid "Enable auto-renewal failed for %{name}"
 msgstr "啟用 %{name} 自動續簽失敗"
 
-#: src/views/domain/DomainAdd.vue:39
+#: src/views/domain/DomainAdd.vue:40
 msgid "Enable failed"
 msgstr "啟用失敗"
 
@@ -171,12 +175,13 @@ msgstr "啟用失敗"
 msgid "Enable TLS"
 msgstr "啟用 TLS"
 
-#: src/views/domain/DomainList.vue:8 src/views/domain/DomainList.vue:3
-#: src/views/domain/DomainList.vue:16
+#: src/views/domain/DomainEdit.vue:73 src/views/domain/DomainList.vue:8
+#: src/views/domain/DomainList.vue:3 src/views/domain/DomainList.vue:16
 msgid "Enabled"
 msgstr "啟用"
 
-#: src/views/domain/DomainAdd.vue:36 src/views/domain/DomainList.vue:46
+#: src/views/domain/DomainAdd.vue:37 src/views/domain/DomainEdit.vue:172
+#: src/views/domain/DomainList.vue:46
 msgid "Enabled successfully"
 msgstr "啟用成功"
 
@@ -184,11 +189,11 @@ msgstr "啟用成功"
 msgid "Expiration Date: %{date}"
 msgstr "過期時間: %{date}"
 
-#: src/views/domain/DomainList.vue:59
+#: src/views/domain/DomainEdit.vue:183 src/views/domain/DomainList.vue:59
 msgid "Failed to disable %{msg}"
 msgstr "禁用失敗 %{msg}"
 
-#: src/views/domain/DomainList.vue:50
+#: src/views/domain/DomainEdit.vue:175 src/views/domain/DomainList.vue:50
 msgid "Failed to enable %{msg}"
 msgstr "啟用失敗 %{msg}"
 
@@ -201,7 +206,7 @@ msgid "Finished"
 msgstr "完成"
 
 #: src/views/domain/DomainAdd.vue:13 src/views/domain/DomainAdd.vue:2
-#: src/views/domain/DomainEdit.vue:9 src/views/domain/DomainEdit.vue:3
+#: src/views/domain/DomainEdit.vue:22 src/views/domain/DomainEdit.vue:3
 msgid "Getting Certificate from Let's Encrypt"
 msgstr "從 Let's Encrypt 獲取證書"
 
@@ -262,8 +267,7 @@ msgstr "登入成功"
 msgid "Logout successful"
 msgstr "登出成功"
 
-#: src/views/domain/DomainEdit.vue:12 src/views/domain/DomainEdit.vue:6
-#, fuzzy
+#: src/views/domain/DomainEdit.vue:25 src/views/domain/DomainEdit.vue:6
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "HTTPChallengePort (default: 9180) before getting the certificate."
@@ -373,17 +377,17 @@ msgstr "下載"
 msgid "Root Directory (root)"
 msgstr "網站根目錄 (root)"
 
-#: src/views/config/ConfigEdit.vue:6 src/views/domain/DomainEdit.vue:27
+#: src/views/config/ConfigEdit.vue:6 src/views/domain/DomainEdit.vue:41
 msgid "Save"
 msgstr "儲存"
 
-#: src/views/config/ConfigEdit.vue:47 src/views/domain/DomainAdd.vue:43
-#: src/views/domain/DomainAdd.vue:54 src/views/domain/DomainEdit.vue:152
+#: src/views/config/ConfigEdit.vue:47 src/views/domain/DomainAdd.vue:44
+#: src/views/domain/DomainAdd.vue:55 src/views/domain/DomainEdit.vue:142
 msgid "Save error %{msg}"
 msgstr "儲存錯誤 %{msg}"
 
-#: src/views/config/ConfigEdit.vue:44 src/views/domain/DomainAdd.vue:33
-#: src/views/domain/DomainAdd.vue:51 src/views/domain/DomainEdit.vue:146
+#: src/views/config/ConfigEdit.vue:44 src/views/domain/DomainAdd.vue:34
+#: src/views/domain/DomainAdd.vue:52 src/views/domain/DomainEdit.vue:136
 msgid "Saved successfully"
 msgstr "儲存成功"
 
@@ -391,7 +395,7 @@ msgstr "儲存成功"
 msgid "Send"
 msgstr "上傳"
 
-#: src/views/config/ConfigEdit.vue:35 src/views/domain/DomainEdit.vue:72
+#: src/views/config/ConfigEdit.vue:35 src/views/domain/DomainEdit.vue:75
 #: src/views/other/Login.vue:35
 msgid "Server error"
 msgstr "伺服器錯誤"
@@ -446,22 +450,21 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr "檔名不能包含以下字元: %{c}"
 
-#: src/views/domain/DomainEdit.vue:4
-#, fuzzy
+#: src/views/domain/DomainEdit.vue:17
 msgid ""
 "The following values will only take effect if you have the corresponding "
 "fields in your configuration file. The configuration filename cannot be "
 "changed after it has been created."
 msgstr ""
-"只有在您的配置檔案中有相應欄位時,下列的配置才能生效。配置檔名稱建立後不可"
-"改。"
+"只有在您的配置檔案中有相應欄位時,下列的配置才能生效。配置檔名稱建立後不可"
+"改。"
 
 #: src/views/domain/DomainAdd.vue:15 src/views/domain/DomainAdd.vue:4
-#: src/views/domain/DomainEdit.vue:11 src/views/domain/DomainEdit.vue:5
+#: src/views/domain/DomainEdit.vue:24 src/views/domain/DomainEdit.vue:5
 msgid "This feature is not available in demo."
 msgstr "此功能在演示中不可用。"
 
-#: src/views/domain/DomainEdit.vue:135
+#: src/views/domain/DomainEdit.vue:125
 msgid "This operation will lose the custom configuration."
 msgstr "該操作將會丟失自定義配置。"
 

File diff suppressed because it is too large
+ 0 - 0
frontend/src/translations.json


+ 5 - 4
frontend/src/views/domain/DomainAdd.vue

@@ -15,6 +15,7 @@
                     type="primary" ghost
                     style="margin: 10px 0"
                     :disabled="is_demo"
+                    :loading="issuing_cert"
                 >
                     <translate>Getting Certificate from Let's Encrypt</translate>
                 </a-button>
@@ -55,10 +56,7 @@
                     <translate>Next</translate>
                 </a-button>
             </a-space>
-
         </div>
-
-
     </a-card>
 </template>
 
@@ -80,7 +78,8 @@ export default {
             columns: columns.slice(0, -1), // 隐藏SSL支持开关
             error: {},
             current_step: 0,
-            columnsSSL
+            columnsSSL,
+            issuing_cert: false
         }
     },
     watch: {
@@ -123,11 +122,13 @@ export default {
 
         },
         issue_cert() {
+            this.issuing_cert = true
             issue_cert(this.config.server_name, this.callback)
         },
         callback(ssl_certificate, ssl_certificate_key) {
             this.$set(this.config, 'ssl_certificate', ssl_certificate)
             this.$set(this.config, 'ssl_certificate_key', ssl_certificate_key)
+            this.issuing_cert = false
         },
         goto_modify() {
             this.$router.push('/domain/'+this.config.name)

+ 60 - 30
frontend/src/views/domain/DomainEdit.vue

@@ -1,22 +1,37 @@
 <template>
     <div>
         <a-collapse :bordered="false" default-active-key="1">
-            <a-collapse-panel key="1" :header="$gettextInterpolate($gettext('Edit %{n}'), {n: name})">
-                <p v-translate>The following values will only take effect if you have the corresponding fields in your configuration file. The configuration filename cannot be changed after it has been created.</p>
-                <std-data-entry :data-list="columns" v-model="config"/>
-                <template v-if="config.support_ssl">
-                    <cert-info :domain="name" ref="cert-info" v-if="name"/>
-                    <a-button
-                        @click="issue_cert"
-                        type="primary" ghost
-                        style="margin: 10px 0"
-                        :disabled="is_demo"
-                    >
-                        <translate>Getting Certificate from Let's Encrypt</translate>
-                    </a-button>
-                    <p v-if="is_demo" v-translate>This feature is not available in demo.</p>
-                    <p v-else v-translate>Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate.</p>
+            <a-collapse-panel key="1">
+                <template v-slot:header>
+                    <span style="margin-right: 10px">{{ $gettextInterpolate($gettext('Edit %{n}'), {n: name}) }}</span>
+                    <a-tag color="blue" v-if="enabled">
+                        {{ $gettext('Enabled') }}
+                    </a-tag>
+                    <a-tag color="orange" v-else>
+                        {{ $gettext('Disabled') }}
+                    </a-tag>
                 </template>
+                <div class="container">
+                    <a-form-item :label="$gettext('Enabled')">
+                        <a-switch v-model="enabled" @change="checked=>{checked?enable():disable()}"/>
+                    </a-form-item>
+                    <p v-translate>The following values will only take effect if you have the corresponding fields in your configuration file. The configuration filename cannot be changed after it has been created.</p>
+                    <std-data-entry :data-list="columns" v-model="config"/>
+                    <template v-if="config.support_ssl">
+                        <cert-info :domain="name" ref="cert-info" v-if="name"/>
+                        <a-button
+                            @click="issue_cert"
+                            type="primary" ghost
+                            style="margin: 10px 0"
+                            :disabled="is_demo"
+                            :loading="issuing_cert"
+                        >
+                            <translate>Getting Certificate from Let's Encrypt</translate>
+                        </a-button>
+                        <p v-if="is_demo" v-translate>This feature is not available in demo.</p>
+                        <p v-else v-translate>Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate.</p>
+                    </template>
+                </div>
             </a-collapse-panel>
         </a-collapse>
 
@@ -27,7 +42,7 @@
         <footer-tool-bar>
             <a-space>
                 <a-button @click="$router.go(-1)">
-                    <translate>Cancel</translate>
+                    <translate>Back</translate>
                 </a-button>
                 <a-button type="primary" @click="save">
                     <translate>Save</translate>
@@ -65,9 +80,11 @@ export default {
                 support_ssl: false,
                 auto_cert: false
             },
+            enabled: false,
             configText: '',
             ws: null,
-            ok: false
+            ok: false,
+            issuing_cert: false
         }
     },
     watch: {
@@ -105,6 +122,7 @@ export default {
                 this.$api.domain.get(this.name).then(r => {
                     this.configText = r.config
                     this.config.auto_cert = r.auto_cert
+                    this.enabled = r.enabled
                     this.parse(r).then(() => {
                         this.ok = true
                     })
@@ -112,19 +130,6 @@ export default {
                     console.log(r)
                     this.$message.error($gettext('Server error'))
                 })
-            } else {
-                this.config = {
-                    http_listen_port: 80,
-                    https_listen_port: null,
-                    server_name: '',
-                    index: '',
-                    root: '',
-                    ssl_certificate: '',
-                    ssl_certificate_key: '',
-                    support_ssl: false,
-                    auto_cert: false,
-                }
-                this.get_template()
             }
         },
         async parse(r) {
@@ -194,12 +199,14 @@ export default {
             })
         },
         issue_cert() {
+            this.issuing_cert = true
             issue_cert(this.config.server_name, this.callback)
         },
         callback(ssl_certificate, ssl_certificate_key) {
             this.$set(this.config, 'ssl_certificate', ssl_certificate)
             this.$set(this.config, 'ssl_certificate_key', ssl_certificate_key)
             if (this.$refs['cert-info']) this.$refs['cert-info'].get()
+            this.issuing_cert = false
         },
         change_auto_cert() {
             if (this.config.auto_cert) {
@@ -215,6 +222,22 @@ export default {
                     this.$message.error(e.message ?? $interpolate($gettext('Disable auto-renewal failed for %{name}', {name: this.name})))
                 })
             }
+        },
+        enable() {
+            this.$api.domain.enable(this.name).then(() => {
+                this.$message.success($gettext('Enabled successfully'))
+                this.enabled = true
+            }).catch(r => {
+                this.$message.error($interpolate($gettext('Failed to enable %{msg}'), {msg: r.message ?? ''}), 10)
+            })
+        },
+        disable() {
+            this.$api.domain.disable(this.name).then(() => {
+                this.$message.success($gettext('Disabled successfully'))
+                this.enabled = false
+            }).catch(r => {
+                this.$message.error($interpolate($gettext('Failed to disable %{msg}'), {msg: r.message ?? ''}))
+            })
         }
     },
     computed: {
@@ -259,5 +282,12 @@ export default {
         margin: 10px 0;
     }
 }
+.container {
+    max-width: 800px;
+    margin: 0 auto;
+    /deep/.ant-form-item-label > label::after {
+        content: none;
+    }
+}
 
 </style>

Some files were not shown because too many files changed in this diff