diff --git a/backend/app/service/website_utils.go b/backend/app/service/website_utils.go
index e4c74c5b3..d63b052d5 100644
--- a/backend/app/service/website_utils.go
+++ b/backend/app/service/website_utils.go
@@ -431,6 +431,10 @@ func delWafConfig(website model.Website, force bool) error {
if !fileOp.Stat(wafDataPath) {
return nil
}
+ monitorDir := path.Join(wafDataPath, "db", "sites", website.Alias)
+ if fileOp.Stat(monitorDir) {
+ _ = fileOp.DeleteDir(monitorDir)
+ }
websitesConfigPath := path.Join(wafDataPath, "conf", "sites.json")
content, err := fileOp.GetContent(websitesConfigPath)
if err != nil {
diff --git a/frontend/src/assets/iconfont/iconfont.css b/frontend/src/assets/iconfont/iconfont.css
index 950638ef3..b87102f15 100644
--- a/frontend/src/assets/iconfont/iconfont.css
+++ b/frontend/src/assets/iconfont/iconfont.css
@@ -1,9 +1,9 @@
@font-face {
font-family: "panel"; /* Project id 3575356 */
- src: url('iconfont.woff2?t=1712830223091') format('woff2'),
- url('iconfont.woff?t=1712830223091') format('woff'),
- url('iconfont.ttf?t=1712830223091') format('truetype'),
- url('iconfont.svg?t=1712830223091#panel') format('svg');
+ src: url('iconfont.woff2?t=1716193696248') format('woff2'),
+ url('iconfont.woff?t=1716193696248') format('woff'),
+ url('iconfont.ttf?t=1716193696248') format('truetype'),
+ url('iconfont.svg?t=1716193696248#panel') format('svg');
}
.panel {
@@ -14,6 +14,10 @@
-moz-osx-font-smoothing: grayscale;
}
+.p-monitor-1:before {
+ content: "\e60d";
+}
+
.p-xpack:before {
content: "\e604";
}
@@ -26,6 +30,10 @@
content: "\e623";
}
+.p-monitor-4:before {
+ content: "\ec4e";
+}
+
.p-waf-4:before {
content: "\e608";
}
@@ -42,6 +50,10 @@
content: "\e666";
}
+.p-monitor-2:before {
+ content: "\ec4f";
+}
+
.p-setting-1:before {
content: "\e626";
}
@@ -70,6 +82,10 @@
content: "\e687";
}
+.p-monitor-3:before {
+ content: "\ec50";
+}
+
.p-tongji:before {
content: "\e856";
}
diff --git a/frontend/src/assets/iconfont/iconfont.js b/frontend/src/assets/iconfont/iconfont.js
index ffd4348d6..39eb66470 100644
--- a/frontend/src/assets/iconfont/iconfont.js
+++ b/frontend/src/assets/iconfont/iconfont.js
@@ -1 +1 @@
-window._iconfont_svg_string_3575356='',function(c){var l=(l=document.getElementsByTagName("script"))[l.length-1],h=l.getAttribute("data-injectcss"),l=l.getAttribute("data-disable-injectsvg");if(!l){var a,t,v,p,z,i=function(l,h){h.parentNode.insertBefore(l,h)};if(h&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(l){console&&console.log(l)}}a=function(){var l,h=document.createElement("div");h.innerHTML=c._iconfont_svg_string_3575356,(h=h.getElementsByTagName("svg")[0])&&(h.setAttribute("aria-hidden","true"),h.style.position="absolute",h.style.width=0,h.style.height=0,h.style.overflow="hidden",h=h,(l=document.body).firstChild?i(h,l.firstChild):l.appendChild(h))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(t=function(){document.removeEventListener("DOMContentLoaded",t,!1),a()},document.addEventListener("DOMContentLoaded",t,!1)):document.attachEvent&&(v=a,p=c.document,z=!1,d(),p.onreadystatechange=function(){"complete"==p.readyState&&(p.onreadystatechange=null,m())})}function m(){z||(z=!0,v())}function d(){try{p.documentElement.doScroll("left")}catch(l){return void setTimeout(d,50)}m()}}(window);
\ No newline at end of file
+window._iconfont_svg_string_3575356='',function(c){var l=(l=document.getElementsByTagName("script"))[l.length-1],h=l.getAttribute("data-injectcss"),l=l.getAttribute("data-disable-injectsvg");if(!l){var a,t,p,v,z,i=function(l,h){h.parentNode.insertBefore(l,h)};if(h&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(l){console&&console.log(l)}}a=function(){var l,h=document.createElement("div");h.innerHTML=c._iconfont_svg_string_3575356,(h=h.getElementsByTagName("svg")[0])&&(h.setAttribute("aria-hidden","true"),h.style.position="absolute",h.style.width=0,h.style.height=0,h.style.overflow="hidden",h=h,(l=document.body).firstChild?i(h,l.firstChild):l.appendChild(h))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(t=function(){document.removeEventListener("DOMContentLoaded",t,!1),a()},document.addEventListener("DOMContentLoaded",t,!1)):document.attachEvent&&(p=a,v=c.document,z=!1,m(),v.onreadystatechange=function(){"complete"==v.readyState&&(v.onreadystatechange=null,d())})}function d(){z||(z=!0,p())}function m(){try{v.documentElement.doScroll("left")}catch(l){return void setTimeout(m,50)}d()}}(window);
\ No newline at end of file
diff --git a/frontend/src/assets/iconfont/iconfont.json b/frontend/src/assets/iconfont/iconfont.json
index 87ae1fa97..4743ee57f 100644
--- a/frontend/src/assets/iconfont/iconfont.json
+++ b/frontend/src/assets/iconfont/iconfont.json
@@ -5,6 +5,13 @@
"css_prefix_text": "p-",
"description": "",
"glyphs": [
+ {
+ "icon_id": "8156501",
+ "name": "e6d8",
+ "font_class": "monitor-1",
+ "unicode": "e60d",
+ "unicode_decimal": 58893
+ },
{
"icon_id": "3722144",
"name": "钻石",
@@ -26,6 +33,13 @@
"unicode": "e623",
"unicode_decimal": 58915
},
+ {
+ "icon_id": "40398413",
+ "name": "监控",
+ "font_class": "monitor-4",
+ "unicode": "ec4e",
+ "unicode_decimal": 60494
+ },
{
"icon_id": "8229531",
"name": "ACL策略",
@@ -54,6 +68,13 @@
"unicode": "e666",
"unicode_decimal": 58982
},
+ {
+ "icon_id": "40398423",
+ "name": "地图",
+ "font_class": "monitor-2",
+ "unicode": "ec4f",
+ "unicode_decimal": 60495
+ },
{
"icon_id": "899647",
"name": "欢迎页",
@@ -103,6 +124,13 @@
"unicode": "e687",
"unicode_decimal": 59015
},
+ {
+ "icon_id": "40398652",
+ "name": "日志",
+ "font_class": "monitor-3",
+ "unicode": "ec50",
+ "unicode_decimal": 60496
+ },
{
"icon_id": "5838475",
"name": "统计",
diff --git a/frontend/src/assets/iconfont/iconfont.svg b/frontend/src/assets/iconfont/iconfont.svg
index bdf80b7af..7a1197847 100644
--- a/frontend/src/assets/iconfont/iconfont.svg
+++ b/frontend/src/assets/iconfont/iconfont.svg
@@ -14,12 +14,16 @@
/>
+
+
+
+
@@ -28,6 +32,8 @@
+
+
@@ -42,6 +48,8 @@
+
+
diff --git a/frontend/src/assets/iconfont/iconfont.ttf b/frontend/src/assets/iconfont/iconfont.ttf
index e2561d344..2dc17ad68 100644
Binary files a/frontend/src/assets/iconfont/iconfont.ttf and b/frontend/src/assets/iconfont/iconfont.ttf differ
diff --git a/frontend/src/assets/iconfont/iconfont.woff b/frontend/src/assets/iconfont/iconfont.woff
index 7ea8b2134..95608de62 100644
Binary files a/frontend/src/assets/iconfont/iconfont.woff and b/frontend/src/assets/iconfont/iconfont.woff differ
diff --git a/frontend/src/assets/iconfont/iconfont.woff2 b/frontend/src/assets/iconfont/iconfont.woff2
index 15ece6feb..5c0176a5d 100644
Binary files a/frontend/src/assets/iconfont/iconfont.woff2 and b/frontend/src/assets/iconfont/iconfont.woff2 differ
diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts
index 8e7f25fa1..1223e5250 100644
--- a/frontend/src/lang/modules/en.ts
+++ b/frontend/src/lang/modules/en.ts
@@ -1560,6 +1560,8 @@ const message = {
gpu: 'Upgrading to the professional version can help users visually monitor important parameters of GPU such as workload, temperature, memory usage in real time.',
setting:
'Upgrading to the professional version allows customization of panel logo, welcome message, and other information.',
+ monitor:
+ 'Upgrade to the professional version to view the real-time status of the website, visitor trends, visitor sources, request logs and other information. ',
},
clean: {
scan: 'Start Scanning',
diff --git a/frontend/src/lang/modules/tw.ts b/frontend/src/lang/modules/tw.ts
index bd40de3f5..93406b0cb 100644
--- a/frontend/src/lang/modules/tw.ts
+++ b/frontend/src/lang/modules/tw.ts
@@ -1453,6 +1453,7 @@ const message = {
tamper: '升級專業版可以保護網站免受未經授權的修改或篡改。',
gpu: '升級專業版可以幫助用戶實時直觀查看到 GPU 的工作負載、溫度、顯存等重要參數。',
setting: '升級專業版可以自定義面板 Logo、歡迎簡介等信息。',
+ monitor: '升級專業版可以查看網站的即時狀態、訪客趨勢、訪客來源、請求日誌等資訊。 ',
},
clean: {
scan: '開始掃描',
diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts
index 958aec56d..29377492a 100644
--- a/frontend/src/lang/modules/zh.ts
+++ b/frontend/src/lang/modules/zh.ts
@@ -1454,6 +1454,7 @@ const message = {
tamper: '升级专业版可以保护网站免受未经授权的修改或篡改。',
gpu: '升级专业版可以帮助用户实时直观查看到 GPU 的工作负载、温度、显存等重要参数。',
setting: '升级专业版可以自定义面板 Logo、欢迎简介等信息。',
+ monitor: '升级专业版可以查看网站的实时状态、访客趋势、访客来源、请求日志等信息。',
},
clean: {
scan: '开始扫描',