feat(self-check): check websocket

This commit is contained in:
Jacky 2025-01-23 10:00:33 +08:00
parent 5c11266945
commit 132e05c35c
No known key found for this signature in database
GPG key ID: 215C21B10DF38B4D
17 changed files with 203 additions and 294 deletions

View file

@ -15,6 +15,7 @@ func InitPrivateRouter(r *gin.RouterGroup) {
r.GET("upgrade/current", GetCurrentVersion)
r.GET("self_check", SelfCheck)
r.POST("self_check/:name/fix", SelfCheckFix)
r.GET("self_check/websocket", CheckWebSocket)
}
func InitWebSocketRouter(r *gin.RouterGroup) {

View file

@ -1,6 +1,8 @@
package system
import (
"github.com/gorilla/websocket"
"github.com/uozi-tech/cosy/logger"
"net/http"
"github.com/0xJacky/Nginx-UI/internal/self_check"
@ -16,3 +18,24 @@ func SelfCheckFix(c *gin.Context) {
result := self_check.AttemptFix(c.Param("name"))
c.JSON(http.StatusOK, result)
}
func CheckWebSocket(c *gin.Context) {
var upgrader = websocket.Upgrader{
CheckOrigin: func(r *http.Request) bool {
return true
},
}
ws, err := upgrader.Upgrade(c.Writer, c.Request, nil)
if err != nil {
logger.Error(err)
return
}
defer ws.Close()
err = ws.WriteJSON(gin.H{
"message": "ok",
})
if err != nil {
logger.Error(err)
return
}
}

View file

@ -72,7 +72,6 @@
"eslint-plugin-sonarjs": "^3.0.1",
"less": "^4.2.1",
"postcss": "^8.5.1",
"tailwindcss": "^3.4.17",
"typescript": "5.7.3",
"unplugin-auto-import": "^19.0.0",
"unplugin-vue-components": "^28.0.0",

226
app/pnpm-lock.yaml generated
View file

@ -180,9 +180,6 @@ importers:
postcss:
specifier: ^8.5.1
version: 8.5.1
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
typescript:
specifier: 5.7.3
version: 5.7.3
@ -210,10 +207,6 @@ packages:
'@0xjacky/vue-github-button@3.1.1':
resolution: {integrity: sha512-fD9IWHGe0V6+7SR/5rbL/mrq+B6u3tDktZrAFYfKNgS9JUM/OBQAvKG+i8e39iq5invDhzHyLHAkzff9rT0j5g==}
'@alloc/quick-lru@5.2.0':
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
engines: {node: '>=10'}
'@ampproject/remapping@2.3.0':
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
@ -1892,9 +1885,6 @@ packages:
peerDependencies:
vue: '>=3.2.0'
any-promise@1.3.0:
resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
anymatch@3.1.3:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
@ -1906,9 +1896,6 @@ packages:
resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==}
engines: {node: '>=14'}
arg@5.0.2:
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
@ -2051,10 +2038,6 @@ packages:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
camelcase-css@2.0.1:
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
engines: {node: '>= 6'}
caniuse-lite@1.0.30001688:
resolution: {integrity: sha512-Nmqpru91cuABu/DTCXbM2NSRHzM2uVHfPnhJ/1zEAJx/ILBRVmz3pzH4N7DZqbdG0gWClsCC05Oj0mJ/1AWMbA==}
@ -2123,10 +2106,6 @@ packages:
resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==}
engines: {node: '>=4.0.0'}
commander@4.1.1:
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
engines: {node: '>= 6'}
commander@7.2.0:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
engines: {node: '>= 10'}
@ -2296,15 +2275,9 @@ packages:
devlop@1.1.0:
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
didyoumean@1.2.2:
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
diff3@0.0.3:
resolution: {integrity: sha512-iSq8ngPOt0K53A6eVr4d5Kn6GNrM2nQZtC740pzIriHtn4pOQ2lyzEXQMBeVcWERN0ye7fhBsk9PbLLQOnUx/g==}
dlv@1.1.3:
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
doctrine@3.0.0:
resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
engines: {node: '>=6.0.0'}
@ -2654,10 +2627,6 @@ packages:
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
fast-glob@3.3.2:
resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
engines: {node: '>=8.6.0'}
fast-glob@3.3.3:
resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
engines: {node: '>=8.6.0'}
@ -3094,10 +3063,6 @@ packages:
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
jiti@1.21.6:
resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
hasBin: true
jiti@2.4.1:
resolution: {integrity: sha512-yPBThwecp1wS9DmoA4x4KR2h3QoslacnDR8ypuFM962kI4/456Iy1oHx2RAgh4jfZNdn0bctsdadceiBUgpU1g==}
hasBin: true
@ -3177,10 +3142,6 @@ packages:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
lilconfig@3.1.3:
resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
engines: {node: '>=14'}
lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
@ -3480,9 +3441,6 @@ packages:
muggle-string@0.4.1:
resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
mz@2.7.0:
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
nanoid@3.3.8:
resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@ -3539,14 +3497,6 @@ packages:
engines: {node: ^14.16.0 || >=16.10.0}
hasBin: true
object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
object-hash@3.0.0:
resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
engines: {node: '>= 6'}
object-inspect@1.13.3:
resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==}
engines: {node: '>= 0.4'}
@ -3700,10 +3650,6 @@ packages:
resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
engines: {node: '>=12'}
pify@2.3.0:
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
engines: {node: '>=0.10.0'}
pify@4.0.1:
resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
engines: {node: '>=6'}
@ -3728,10 +3674,6 @@ packages:
typescript:
optional: true
pirates@4.0.6:
resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
engines: {node: '>= 6'}
pkg-types@1.2.1:
resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==}
@ -3752,36 +3694,6 @@ packages:
resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
engines: {node: '>= 0.4'}
postcss-import@15.1.0:
resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
engines: {node: '>=14.0.0'}
peerDependencies:
postcss: ^8.0.0
postcss-js@4.0.1:
resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
engines: {node: ^12 || ^14 || >= 16}
peerDependencies:
postcss: ^8.4.21
postcss-load-config@4.0.2:
resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
engines: {node: '>= 14'}
peerDependencies:
postcss: '>=8.0.9'
ts-node: '>=9.0.0'
peerDependenciesMeta:
postcss:
optional: true
ts-node:
optional: true
postcss-nested@6.2.0:
resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
engines: {node: '>=12.0'}
peerDependencies:
postcss: ^8.2.14
postcss-selector-parser@6.1.2:
resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
engines: {node: '>=4'}
@ -3816,9 +3728,6 @@ packages:
rc9@2.1.2:
resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==}
read-cache@1.0.0:
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
read-pkg-up@7.0.1:
resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
engines: {node: '>=8'}
@ -4110,11 +4019,6 @@ packages:
stylis@4.3.4:
resolution: {integrity: sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==}
sucrase@3.35.0:
resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
engines: {node: '>=16 || 14 >=14.17'}
hasBin: true
supports-color@7.2.0:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'}
@ -4139,11 +4043,6 @@ packages:
resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==}
engines: {node: ^14.18.0 || >=16.0.0}
tailwindcss@3.4.17:
resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==}
engines: {node: '>=14.0.0'}
hasBin: true
tapable@2.2.1:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
engines: {node: '>=6'}
@ -4152,13 +4051,6 @@ packages:
resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
engines: {node: '>=10'}
thenify-all@1.6.0:
resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
engines: {node: '>=0.8'}
thenify@3.3.1:
resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
throttle-debounce@5.0.2:
resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==}
engines: {node: '>=12.22'}
@ -4191,9 +4083,6 @@ packages:
peerDependencies:
typescript: '>=4.8.4'
ts-interface-checker@0.1.13:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
@ -4601,8 +4490,6 @@ snapshots:
dependencies:
github-buttons: 2.29.1
'@alloc/quick-lru@5.2.0': {}
'@ampproject/remapping@2.3.0':
dependencies:
'@jridgewell/gen-mapping': 0.3.8
@ -6474,8 +6361,6 @@ snapshots:
vue-types: 3.0.2(vue@3.5.13(typescript@5.7.3))
warning: 4.0.3
any-promise@1.3.0: {}
anymatch@3.1.3:
dependencies:
normalize-path: 3.0.0
@ -6492,8 +6377,6 @@ snapshots:
are-docs-informative@0.0.2: {}
arg@5.0.2: {}
argparse@2.0.1: {}
array-back@3.1.0: {}
@ -6667,8 +6550,6 @@ snapshots:
callsites@3.1.0: {}
camelcase-css@2.0.1: {}
caniuse-lite@1.0.30001688: {}
ccount@2.0.1: {}
@ -6758,8 +6639,6 @@ snapshots:
lodash.camelcase: 4.3.0
typical: 4.0.0
commander@4.1.1: {}
commander@7.2.0: {}
comment-parser@1.4.1: {}
@ -6908,12 +6787,8 @@ snapshots:
dependencies:
dequal: 2.0.3
didyoumean@1.2.2: {}
diff3@0.0.3: {}
dlv@1.1.3: {}
doctrine@3.0.0:
dependencies:
esutils: 2.0.3
@ -7473,14 +7348,6 @@ snapshots:
fast-deep-equal@3.1.3: {}
fast-glob@3.3.2:
dependencies:
'@nodelib/fs.stat': 2.0.5
'@nodelib/fs.walk': 1.2.8
glob-parent: 5.1.2
merge2: 1.4.1
micromatch: 4.0.8
fast-glob@3.3.3:
dependencies:
'@nodelib/fs.stat': 2.0.5
@ -7924,8 +7791,6 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
jiti@1.21.6: {}
jiti@2.4.1: {}
js-tokens@4.0.0: {}
@ -7997,8 +7862,6 @@ snapshots:
prelude-ls: 1.2.1
type-check: 0.4.0
lilconfig@3.1.3: {}
lines-and-columns@1.2.4: {}
load-tsconfig@0.2.5: {}
@ -8440,12 +8303,6 @@ snapshots:
muggle-string@0.4.1: {}
mz@2.7.0:
dependencies:
any-promise: 1.3.0
object-assign: 4.1.1
thenify-all: 1.6.0
nanoid@3.3.8: {}
nanopop@2.4.2: {}
@ -8496,10 +8353,6 @@ snapshots:
pkg-types: 1.3.0
ufo: 1.5.4
object-assign@4.1.1: {}
object-hash@3.0.0: {}
object-inspect@1.13.3: {}
object-keys@1.1.1: {}
@ -8640,8 +8493,6 @@ snapshots:
picomatch@4.0.2: {}
pify@2.3.0: {}
pify@4.0.1: {}
pinia-plugin-persistedstate@4.2.0(pinia@2.3.0(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)))(rollup@4.28.1):
@ -8667,8 +8518,6 @@ snapshots:
transitivePeerDependencies:
- '@vue/composition-api'
pirates@4.0.6: {}
pkg-types@1.2.1:
dependencies:
confbox: 0.1.8
@ -8689,30 +8538,6 @@ snapshots:
possible-typed-array-names@1.0.0: {}
postcss-import@15.1.0(postcss@8.5.1):
dependencies:
postcss: 8.5.1
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.9
postcss-js@4.0.1(postcss@8.5.1):
dependencies:
camelcase-css: 2.0.1
postcss: 8.5.1
postcss-load-config@4.0.2(postcss@8.5.1):
dependencies:
lilconfig: 3.1.3
yaml: 2.6.1
optionalDependencies:
postcss: 8.5.1
postcss-nested@6.2.0(postcss@8.5.1):
dependencies:
postcss: 8.5.1
postcss-selector-parser: 6.1.2
postcss-selector-parser@6.1.2:
dependencies:
cssesc: 3.0.0
@ -8747,10 +8572,6 @@ snapshots:
defu: 6.1.4
destr: 2.0.3
read-cache@1.0.0:
dependencies:
pify: 2.3.0
read-pkg-up@7.0.1:
dependencies:
find-up: 4.1.0
@ -9096,16 +8917,6 @@ snapshots:
stylis@4.3.4: {}
sucrase@3.35.0:
dependencies:
'@jridgewell/gen-mapping': 0.3.8
commander: 4.1.1
glob: 10.4.5
lines-and-columns: 1.2.4
mz: 2.7.0
pirates: 4.0.6
ts-interface-checker: 0.1.13
supports-color@7.2.0:
dependencies:
has-flag: 4.0.0
@ -9133,33 +8944,6 @@ snapshots:
'@pkgr/core': 0.1.1
tslib: 2.8.1
tailwindcss@3.4.17:
dependencies:
'@alloc/quick-lru': 5.2.0
arg: 5.0.2
chokidar: 3.6.0
didyoumean: 1.2.2
dlv: 1.1.3
fast-glob: 3.3.2
glob-parent: 6.0.2
is-glob: 4.0.3
jiti: 1.21.6
lilconfig: 3.1.3
micromatch: 4.0.8
normalize-path: 3.0.0
object-hash: 3.0.0
picocolors: 1.1.1
postcss: 8.5.1
postcss-import: 15.1.0(postcss@8.5.1)
postcss-js: 4.0.1(postcss@8.5.1)
postcss-load-config: 4.0.2(postcss@8.5.1)
postcss-nested: 6.2.0(postcss@8.5.1)
postcss-selector-parser: 6.1.2
resolve: 1.22.9
sucrase: 3.35.0
transitivePeerDependencies:
- ts-node
tapable@2.2.1: {}
tar@6.2.1:
@ -9171,14 +8955,6 @@ snapshots:
mkdirp: 1.0.4
yallist: 4.0.0
thenify-all@1.6.0:
dependencies:
thenify: 3.3.1
thenify@3.3.1:
dependencies:
any-promise: 1.3.0
throttle-debounce@5.0.2: {}
tinyexec@0.3.1: {}
@ -9204,8 +8980,6 @@ snapshots:
dependencies:
typescript: 5.7.3
ts-interface-checker@0.1.13: {}
tslib@2.8.1: {}
tsx@4.19.2:

View file

@ -1,5 +1,6 @@
import type { CosyError } from '@/lib/http'
import http from '@/lib/http'
import ws from '@/lib/websocket'
export interface Report {
name: string
@ -13,6 +14,9 @@ const selfCheck = {
fix(taskName: string) {
return http.post(`/self_check/${taskName}/fix`)
},
websocket() {
return ws('/api/self_check/websocket', false)
},
}
export default selfCheck

View file

@ -199,7 +199,7 @@ msgstr "اطلب المساعدة من ChatGPT"
msgid "Assistant"
msgstr "المساعد"
#: src/views/system/SelfCheck/SelfCheck.vue:50
#: src/views/system/SelfCheck/SelfCheck.vue:54
#, fuzzy
msgid "Attempt to fix"
msgstr "محاولات"
@ -1846,7 +1846,7 @@ msgstr "يقرأ"
msgid "Receive"
msgstr "يستقبل"
#: src/views/system/SelfCheck/SelfCheck.vue:42
#: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck"
msgstr ""
@ -2139,7 +2139,7 @@ msgstr "تم نسخ السر"
msgid "Selector"
msgstr "المحدد"
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:37
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:42
msgid "Self Check"
msgstr ""
@ -2155,7 +2155,7 @@ msgstr "إرسال"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194
#: src/lib/http/index.ts:129 src/views/config/components/Mkdir.vue:38
#: src/lib/http/index.ts:128 src/views/config/components/Mkdir.vue:38
#: src/views/config/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59
@ -2285,6 +2285,14 @@ msgstr "مجلد"
msgid "Success"
msgstr "نجاح"
#: src/views/system/SelfCheck/SelfCheck.vue:78
msgid ""
"Support communication with the backend through the WebSocket protocol. If "
"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
"link to write the corresponding configuration file: https://nginxui.com/"
"guide/nginx-proxy-example.html"
msgstr ""
#: src/views/dashboard/ServerAnalytic.vue:240
#: src/views/dashboard/ServerAnalytic.vue:241
msgid "Swap"

View file

@ -209,7 +209,7 @@ msgstr ""
msgid "Assistant"
msgstr ""
#: src/views/system/SelfCheck/SelfCheck.vue:50
#: src/views/system/SelfCheck/SelfCheck.vue:54
msgid "Attempt to fix"
msgstr ""
@ -1910,7 +1910,7 @@ msgstr "Reads"
msgid "Receive"
msgstr "Receive"
#: src/views/system/SelfCheck/SelfCheck.vue:42
#: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck"
msgstr ""
@ -2229,7 +2229,7 @@ msgstr ""
msgid "Selector"
msgstr ""
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:37
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:42
msgid "Self Check"
msgstr ""
@ -2245,7 +2245,7 @@ msgstr "Send"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194
#: src/lib/http/index.ts:129 src/views/config/components/Mkdir.vue:38
#: src/lib/http/index.ts:128 src/views/config/components/Mkdir.vue:38
#: src/views/config/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59
@ -2380,6 +2380,14 @@ msgstr "Directive"
msgid "Success"
msgstr ""
#: src/views/system/SelfCheck/SelfCheck.vue:78
msgid ""
"Support communication with the backend through the WebSocket protocol. If "
"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
"link to write the corresponding configuration file: https://nginxui.com/"
"guide/nginx-proxy-example.html"
msgstr ""
#: src/views/dashboard/ServerAnalytic.vue:240
#: src/views/dashboard/ServerAnalytic.vue:241
msgid "Swap"

View file

@ -204,7 +204,7 @@ msgstr "Preguntar por ayuda a ChatGPT"
msgid "Assistant"
msgstr "Asistente"
#: src/views/system/SelfCheck/SelfCheck.vue:50
#: src/views/system/SelfCheck/SelfCheck.vue:54
#, fuzzy
msgid "Attempt to fix"
msgstr "Intentos"
@ -1878,7 +1878,7 @@ msgstr "Lecturas"
msgid "Receive"
msgstr "Recibido"
#: src/views/system/SelfCheck/SelfCheck.vue:42
#: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck"
msgstr ""
@ -2187,7 +2187,7 @@ msgstr "El secreto ha sido copiado"
msgid "Selector"
msgstr "Seleccionador"
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:37
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:42
msgid "Self Check"
msgstr ""
@ -2203,7 +2203,7 @@ msgstr "Enviado"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194
#: src/lib/http/index.ts:129 src/views/config/components/Mkdir.vue:38
#: src/lib/http/index.ts:128 src/views/config/components/Mkdir.vue:38
#: src/views/config/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59
@ -2333,6 +2333,14 @@ msgstr "Directorio"
msgid "Success"
msgstr "Éxito"
#: src/views/system/SelfCheck/SelfCheck.vue:78
msgid ""
"Support communication with the backend through the WebSocket protocol. If "
"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
"link to write the corresponding configuration file: https://nginxui.com/"
"guide/nginx-proxy-example.html"
msgstr ""
#: src/views/dashboard/ServerAnalytic.vue:240
#: src/views/dashboard/ServerAnalytic.vue:241
msgid "Swap"

View file

@ -212,7 +212,7 @@ msgstr "Modèle ChatGPT"
msgid "Assistant"
msgstr ""
#: src/views/system/SelfCheck/SelfCheck.vue:50
#: src/views/system/SelfCheck/SelfCheck.vue:54
msgid "Attempt to fix"
msgstr ""
@ -1924,7 +1924,7 @@ msgstr "Lectures"
msgid "Receive"
msgstr "Recevoir"
#: src/views/system/SelfCheck/SelfCheck.vue:42
#: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck"
msgstr ""
@ -2244,7 +2244,7 @@ msgstr ""
msgid "Selector"
msgstr "Sélecteur"
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:37
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:42
msgid "Self Check"
msgstr ""
@ -2260,7 +2260,7 @@ msgstr "Envoyer"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194
#: src/lib/http/index.ts:129 src/views/config/components/Mkdir.vue:38
#: src/lib/http/index.ts:128 src/views/config/components/Mkdir.vue:38
#: src/views/config/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59
@ -2394,6 +2394,14 @@ msgstr "Directive"
msgid "Success"
msgstr ""
#: src/views/system/SelfCheck/SelfCheck.vue:78
msgid ""
"Support communication with the backend through the WebSocket protocol. If "
"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
"link to write the corresponding configuration file: https://nginxui.com/"
"guide/nginx-proxy-example.html"
msgstr ""
#: src/views/dashboard/ServerAnalytic.vue:240
#: src/views/dashboard/ServerAnalytic.vue:241
#, fuzzy

View file

@ -201,7 +201,7 @@ msgstr "ChatGPT에게 도움 요청"
msgid "Assistant"
msgstr "조수"
#: src/views/system/SelfCheck/SelfCheck.vue:50
#: src/views/system/SelfCheck/SelfCheck.vue:54
#, fuzzy
msgid "Attempt to fix"
msgstr "시도 횟수"
@ -1888,7 +1888,7 @@ msgstr "읽기"
msgid "Receive"
msgstr "수신"
#: src/views/system/SelfCheck/SelfCheck.vue:42
#: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck"
msgstr ""
@ -2211,7 +2211,7 @@ msgstr ""
msgid "Selector"
msgstr "선택"
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:37
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:42
msgid "Self Check"
msgstr ""
@ -2227,7 +2227,7 @@ msgstr "보내기"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194
#: src/lib/http/index.ts:129 src/views/config/components/Mkdir.vue:38
#: src/lib/http/index.ts:128 src/views/config/components/Mkdir.vue:38
#: src/views/config/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59
@ -2361,6 +2361,14 @@ msgstr "디렉토리"
msgid "Success"
msgstr "성공"
#: src/views/system/SelfCheck/SelfCheck.vue:78
msgid ""
"Support communication with the backend through the WebSocket protocol. If "
"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
"link to write the corresponding configuration file: https://nginxui.com/"
"guide/nginx-proxy-example.html"
msgstr ""
#: src/views/dashboard/ServerAnalytic.vue:240
#: src/views/dashboard/ServerAnalytic.vue:241
msgid "Swap"

View file

@ -190,7 +190,7 @@ msgstr ""
msgid "Assistant"
msgstr ""
#: src/views/system/SelfCheck/SelfCheck.vue:50
#: src/views/system/SelfCheck/SelfCheck.vue:54
msgid "Attempt to fix"
msgstr ""
@ -1790,7 +1790,7 @@ msgstr ""
msgid "Receive"
msgstr ""
#: src/views/system/SelfCheck/SelfCheck.vue:42
#: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck"
msgstr ""
@ -2078,7 +2078,7 @@ msgid "Selector"
msgstr ""
#: src/routes/index.ts:283
#: src/views/system/SelfCheck/SelfCheck.vue:37
#: src/views/system/SelfCheck/SelfCheck.vue:42
msgid "Self Check"
msgstr ""
@ -2094,7 +2094,7 @@ msgstr ""
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194
#: src/lib/http/index.ts:129
#: src/lib/http/index.ts:128
#: src/views/config/components/Mkdir.vue:38
#: src/views/config/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111
@ -2226,6 +2226,10 @@ msgstr ""
msgid "Success"
msgstr ""
#: src/views/system/SelfCheck/SelfCheck.vue:78
msgid "Support communication with the backend through the WebSocket protocol. If your Nginx UI is being used via an Nginx reverse proxy, please refer to this link to write the corresponding configuration file: https://nginxui.com/guide/nginx-proxy-example.html"
msgstr ""
#: src/views/dashboard/ServerAnalytic.vue:240
#: src/views/dashboard/ServerAnalytic.vue:241
msgid "Swap"

View file

@ -203,7 +203,7 @@ msgstr "Обратитесь за помощью к ChatGPT"
msgid "Assistant"
msgstr "Ассистент"
#: src/views/system/SelfCheck/SelfCheck.vue:50
#: src/views/system/SelfCheck/SelfCheck.vue:54
#, fuzzy
msgid "Attempt to fix"
msgstr "Попытки"
@ -1873,7 +1873,7 @@ msgstr "Чтение"
msgid "Receive"
msgstr "Принято"
#: src/views/system/SelfCheck/SelfCheck.vue:42
#: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck"
msgstr ""
@ -2181,7 +2181,7 @@ msgstr ""
msgid "Selector"
msgstr "Выбор"
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:37
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:42
msgid "Self Check"
msgstr ""
@ -2197,7 +2197,7 @@ msgstr "Отправлено"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194
#: src/lib/http/index.ts:129 src/views/config/components/Mkdir.vue:38
#: src/lib/http/index.ts:128 src/views/config/components/Mkdir.vue:38
#: src/views/config/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59
@ -2327,6 +2327,14 @@ msgstr "Каталог"
msgid "Success"
msgstr "Успех"
#: src/views/system/SelfCheck/SelfCheck.vue:78
msgid ""
"Support communication with the backend through the WebSocket protocol. If "
"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
"link to write the corresponding configuration file: https://nginxui.com/"
"guide/nginx-proxy-example.html"
msgstr ""
#: src/views/dashboard/ServerAnalytic.vue:240
#: src/views/dashboard/ServerAnalytic.vue:241
msgid "Swap"

View file

@ -199,7 +199,7 @@ msgstr "ChatGPT'den Yardım İsteyin"
msgid "Assistant"
msgstr "Asistan"
#: src/views/system/SelfCheck/SelfCheck.vue:50
#: src/views/system/SelfCheck/SelfCheck.vue:54
#, fuzzy
msgid "Attempt to fix"
msgstr "Girişimler"
@ -1968,7 +1968,7 @@ msgstr "Okumalar"
msgid "Receive"
msgstr "Teslim almak"
#: src/views/system/SelfCheck/SelfCheck.vue:42
#: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck"
msgstr ""
@ -2326,7 +2326,7 @@ msgstr "Sır kopyalandı"
msgid "Selector"
msgstr "Selektör"
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:37
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:42
msgid "Self Check"
msgstr ""
@ -2343,7 +2343,7 @@ msgstr "Gönder"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194
#: src/lib/http/index.ts:129 src/views/config/components/Mkdir.vue:38
#: src/lib/http/index.ts:128 src/views/config/components/Mkdir.vue:38
#: src/views/config/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59
@ -2496,6 +2496,14 @@ msgstr "Dizin"
msgid "Success"
msgstr "Başarılı"
#: src/views/system/SelfCheck/SelfCheck.vue:78
msgid ""
"Support communication with the backend through the WebSocket protocol. If "
"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
"link to write the corresponding configuration file: https://nginxui.com/"
"guide/nginx-proxy-example.html"
msgstr ""
#: src/views/dashboard/ServerAnalytic.vue:240
#: src/views/dashboard/ServerAnalytic.vue:241
#, fuzzy

View file

@ -210,7 +210,7 @@ msgstr "Hỏi ChatGPT"
msgid "Assistant"
msgstr "Trợ lý"
#: src/views/system/SelfCheck/SelfCheck.vue:50
#: src/views/system/SelfCheck/SelfCheck.vue:54
msgid "Attempt to fix"
msgstr ""
@ -1928,7 +1928,7 @@ msgstr "Đọc"
msgid "Receive"
msgstr "Nhận"
#: src/views/system/SelfCheck/SelfCheck.vue:42
#: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck"
msgstr ""
@ -2251,7 +2251,7 @@ msgstr ""
msgid "Selector"
msgstr "Bộ chọn"
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:37
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:42
msgid "Self Check"
msgstr ""
@ -2267,7 +2267,7 @@ msgstr "Gửi"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194
#: src/lib/http/index.ts:129 src/views/config/components/Mkdir.vue:38
#: src/lib/http/index.ts:128 src/views/config/components/Mkdir.vue:38
#: src/views/config/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59
@ -2398,6 +2398,14 @@ msgstr "Thư mục"
msgid "Success"
msgstr "Thành công"
#: src/views/system/SelfCheck/SelfCheck.vue:78
msgid ""
"Support communication with the backend through the WebSocket protocol. If "
"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
"link to write the corresponding configuration file: https://nginxui.com/"
"guide/nginx-proxy-example.html"
msgstr ""
#: src/views/dashboard/ServerAnalytic.vue:240
#: src/views/dashboard/ServerAnalytic.vue:241
msgid "Swap"

View file

@ -196,7 +196,7 @@ msgstr "与ChatGPT聊天"
msgid "Assistant"
msgstr "助手"
#: src/views/system/SelfCheck/SelfCheck.vue:50
#: src/views/system/SelfCheck/SelfCheck.vue:54
msgid "Attempt to fix"
msgstr "尝试修复"
@ -1808,7 +1808,7 @@ msgstr "读"
msgid "Receive"
msgstr "下载"
#: src/views/system/SelfCheck/SelfCheck.vue:42
#: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck"
msgstr "重新检查"
@ -2098,7 +2098,7 @@ msgstr "密钥已复制"
msgid "Selector"
msgstr "选择器"
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:37
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:42
msgid "Self Check"
msgstr "自我检查"
@ -2114,7 +2114,7 @@ msgstr "上传"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194
#: src/lib/http/index.ts:129 src/views/config/components/Mkdir.vue:38
#: src/lib/http/index.ts:128 src/views/config/components/Mkdir.vue:38
#: src/views/config/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59
@ -2240,6 +2240,16 @@ msgstr "Streams 目录"
msgid "Success"
msgstr "成功"
#: src/views/system/SelfCheck/SelfCheck.vue:78
msgid ""
"Support communication with the backend through the WebSocket protocol. If "
"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
"link to write the corresponding configuration file: https://nginxui.com/"
"guide/nginx-proxy-example.html"
msgstr ""
"支持通过 WebSocket 协议与后端通信,如果您正在使用 Nginx 反向代理了 Nginx UI "
"请参考https://nginxui.com/guide/nginx-proxy-example.html 编写配置文件"
#: src/views/dashboard/ServerAnalytic.vue:240
#: src/views/dashboard/ServerAnalytic.vue:241
msgid "Swap"

View file

@ -204,7 +204,7 @@ msgstr "向 ChatGPT 尋求幫助"
msgid "Assistant"
msgstr "助理"
#: src/views/system/SelfCheck/SelfCheck.vue:50
#: src/views/system/SelfCheck/SelfCheck.vue:54
#, fuzzy
msgid "Attempt to fix"
msgstr "嘗試次數"
@ -1841,7 +1841,7 @@ msgstr "讀取"
msgid "Receive"
msgstr "接收"
#: src/views/system/SelfCheck/SelfCheck.vue:42
#: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck"
msgstr ""
@ -2144,7 +2144,7 @@ msgstr ""
msgid "Selector"
msgstr "選擇器"
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:37
#: src/routes/index.ts:283 src/views/system/SelfCheck/SelfCheck.vue:42
msgid "Self Check"
msgstr ""
@ -2160,7 +2160,7 @@ msgstr "傳送"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194
#: src/lib/http/index.ts:129 src/views/config/components/Mkdir.vue:38
#: src/lib/http/index.ts:128 src/views/config/components/Mkdir.vue:38
#: src/views/config/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59
@ -2288,6 +2288,14 @@ msgstr "目錄"
msgid "Success"
msgstr "成功"
#: src/views/system/SelfCheck/SelfCheck.vue:78
msgid ""
"Support communication with the backend through the WebSocket protocol. If "
"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
"link to write the corresponding configuration file: https://nginxui.com/"
"guide/nginx-proxy-example.html"
msgstr ""
#: src/views/dashboard/ServerAnalytic.vue:240
#: src/views/dashboard/ServerAnalytic.vue:241
msgid "Swap"

View file

@ -7,6 +7,7 @@ import tasks from './tasks'
const data = ref<Report[]>()
const loading = ref(false)
const supportWebsocket = ref(false)
function check() {
loading.value = true
@ -15,6 +16,10 @@ function check() {
}).finally(() => {
loading.value = false
})
const ws = selfCheck.websocket()
ws.onopen = () => {
supportWebsocket.value = true
}
}
onMounted(() => {
@ -42,30 +47,47 @@ function fix(taskName: string) {
{{ $gettext('Recheck') }}
</AButton>
</template>
<AList :data-source="data">
<template #renderItem="{ item }">
<AListItem>
<template v-if="item.err" #actions>
<AButton type="link" size="small" :loading="fixing[item.name]" @click="fix(item.name)">
{{ $gettext('Attempt to fix') }}
</AButton>
<AList>
<AListItem v-for="(item, index) in data" :key="index">
<template v-if="item.err" #actions>
<AButton type="link" size="small" :loading="fixing[item.name]" @click="fix(item.name)">
{{ $gettext('Attempt to fix') }}
</AButton>
</template>
<AListItemMeta>
<template #title>
{{ tasks?.[item.name]?.name?.() }}
</template>
<AListItemMeta>
<template #title>
{{ tasks?.[item.name]?.name?.() }}
</template>
<template #description>
{{ tasks?.[item.name]?.description?.() }}
</template>
<template #avatar>
<div class="text-23px">
<CheckCircleOutlined v-if="!item.err" class="text-green" />
<CloseCircleOutlined v-else class="text-red" />
</div>
</template>
</AListItemMeta>
</AListItem>
</template>
<template #description>
{{ tasks?.[item.name]?.description?.() }}
</template>
<template #avatar>
<div class="text-23px">
<CheckCircleOutlined v-if="!item.err" class="text-green" />
<CloseCircleOutlined v-else class="text-red" />
</div>
</template>
</AListItemMeta>
</AListItem>
<AListItem>
<AListItemMeta>
<template #title>
WebSocket
</template>
<template #description>
{{ $gettext('Support communication with the backend through the WebSocket protocol. '
+ 'If your Nginx UI is being used via an Nginx reverse proxy, '
+ 'please refer to this link to write the corresponding configuration file: '
+ 'https://nginxui.com/guide/nginx-proxy-example.html') }}
</template>
<template #avatar>
<div class="text-23px">
<CheckCircleOutlined v-if="supportWebsocket" class="text-green" />
<CloseCircleOutlined v-else class="text-red" />
</div>
</template>
</AListItemMeta>
</AListItem>
</AList>
</ACard>
</template>