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: '开始扫描',