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("upgrade/current", GetCurrentVersion)
r.GET("self_check", SelfCheck) r.GET("self_check", SelfCheck)
r.POST("self_check/:name/fix", SelfCheckFix) r.POST("self_check/:name/fix", SelfCheckFix)
r.GET("self_check/websocket", CheckWebSocket)
} }
func InitWebSocketRouter(r *gin.RouterGroup) { func InitWebSocketRouter(r *gin.RouterGroup) {

View file

@ -1,6 +1,8 @@
package system package system
import ( import (
"github.com/gorilla/websocket"
"github.com/uozi-tech/cosy/logger"
"net/http" "net/http"
"github.com/0xJacky/Nginx-UI/internal/self_check" "github.com/0xJacky/Nginx-UI/internal/self_check"
@ -16,3 +18,24 @@ func SelfCheckFix(c *gin.Context) {
result := self_check.AttemptFix(c.Param("name")) result := self_check.AttemptFix(c.Param("name"))
c.JSON(http.StatusOK, result) 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", "eslint-plugin-sonarjs": "^3.0.1",
"less": "^4.2.1", "less": "^4.2.1",
"postcss": "^8.5.1", "postcss": "^8.5.1",
"tailwindcss": "^3.4.17",
"typescript": "5.7.3", "typescript": "5.7.3",
"unplugin-auto-import": "^19.0.0", "unplugin-auto-import": "^19.0.0",
"unplugin-vue-components": "^28.0.0", "unplugin-vue-components": "^28.0.0",

226
app/pnpm-lock.yaml generated
View file

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

View file

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

View file

@ -199,7 +199,7 @@ msgstr "اطلب المساعدة من ChatGPT"
msgid "Assistant" msgid "Assistant"
msgstr "المساعد" msgstr "المساعد"
#: src/views/system/SelfCheck/SelfCheck.vue:50 #: src/views/system/SelfCheck/SelfCheck.vue:54
#, fuzzy #, fuzzy
msgid "Attempt to fix" msgid "Attempt to fix"
msgstr "محاولات" msgstr "محاولات"
@ -1846,7 +1846,7 @@ msgstr "يقرأ"
msgid "Receive" msgid "Receive"
msgstr "يستقبل" msgstr "يستقبل"
#: src/views/system/SelfCheck/SelfCheck.vue:42 #: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck" msgid "Recheck"
msgstr "" msgstr ""
@ -2139,7 +2139,7 @@ msgstr "تم نسخ السر"
msgid "Selector" msgid "Selector"
msgstr "المحدد" 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" msgid "Self Check"
msgstr "" msgstr ""
@ -2155,7 +2155,7 @@ msgstr "إرسال"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194 #: 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/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111 #: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/BatchUpgrader.vue:59
@ -2285,6 +2285,14 @@ msgstr "مجلد"
msgid "Success" msgid "Success"
msgstr "نجاح" 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:240
#: src/views/dashboard/ServerAnalytic.vue:241 #: src/views/dashboard/ServerAnalytic.vue:241
msgid "Swap" msgid "Swap"

View file

@ -209,7 +209,7 @@ msgstr ""
msgid "Assistant" msgid "Assistant"
msgstr "" msgstr ""
#: src/views/system/SelfCheck/SelfCheck.vue:50 #: src/views/system/SelfCheck/SelfCheck.vue:54
msgid "Attempt to fix" msgid "Attempt to fix"
msgstr "" msgstr ""
@ -1910,7 +1910,7 @@ msgstr "Reads"
msgid "Receive" msgid "Receive"
msgstr "Receive" msgstr "Receive"
#: src/views/system/SelfCheck/SelfCheck.vue:42 #: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck" msgid "Recheck"
msgstr "" msgstr ""
@ -2229,7 +2229,7 @@ msgstr ""
msgid "Selector" msgid "Selector"
msgstr "" 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" msgid "Self Check"
msgstr "" msgstr ""
@ -2245,7 +2245,7 @@ msgstr "Send"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194 #: 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/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111 #: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/BatchUpgrader.vue:59
@ -2380,6 +2380,14 @@ msgstr "Directive"
msgid "Success" msgid "Success"
msgstr "" 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:240
#: src/views/dashboard/ServerAnalytic.vue:241 #: src/views/dashboard/ServerAnalytic.vue:241
msgid "Swap" msgid "Swap"

View file

@ -204,7 +204,7 @@ msgstr "Preguntar por ayuda a ChatGPT"
msgid "Assistant" msgid "Assistant"
msgstr "Asistente" msgstr "Asistente"
#: src/views/system/SelfCheck/SelfCheck.vue:50 #: src/views/system/SelfCheck/SelfCheck.vue:54
#, fuzzy #, fuzzy
msgid "Attempt to fix" msgid "Attempt to fix"
msgstr "Intentos" msgstr "Intentos"
@ -1878,7 +1878,7 @@ msgstr "Lecturas"
msgid "Receive" msgid "Receive"
msgstr "Recibido" msgstr "Recibido"
#: src/views/system/SelfCheck/SelfCheck.vue:42 #: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck" msgid "Recheck"
msgstr "" msgstr ""
@ -2187,7 +2187,7 @@ msgstr "El secreto ha sido copiado"
msgid "Selector" msgid "Selector"
msgstr "Seleccionador" 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" msgid "Self Check"
msgstr "" msgstr ""
@ -2203,7 +2203,7 @@ msgstr "Enviado"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194 #: 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/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111 #: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/BatchUpgrader.vue:59
@ -2333,6 +2333,14 @@ msgstr "Directorio"
msgid "Success" msgid "Success"
msgstr "Éxito" 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:240
#: src/views/dashboard/ServerAnalytic.vue:241 #: src/views/dashboard/ServerAnalytic.vue:241
msgid "Swap" msgid "Swap"

View file

@ -212,7 +212,7 @@ msgstr "Modèle ChatGPT"
msgid "Assistant" msgid "Assistant"
msgstr "" msgstr ""
#: src/views/system/SelfCheck/SelfCheck.vue:50 #: src/views/system/SelfCheck/SelfCheck.vue:54
msgid "Attempt to fix" msgid "Attempt to fix"
msgstr "" msgstr ""
@ -1924,7 +1924,7 @@ msgstr "Lectures"
msgid "Receive" msgid "Receive"
msgstr "Recevoir" msgstr "Recevoir"
#: src/views/system/SelfCheck/SelfCheck.vue:42 #: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck" msgid "Recheck"
msgstr "" msgstr ""
@ -2244,7 +2244,7 @@ msgstr ""
msgid "Selector" msgid "Selector"
msgstr "Sélecteur" 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" msgid "Self Check"
msgstr "" msgstr ""
@ -2260,7 +2260,7 @@ msgstr "Envoyer"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194 #: 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/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111 #: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/BatchUpgrader.vue:59
@ -2394,6 +2394,14 @@ msgstr "Directive"
msgid "Success" msgid "Success"
msgstr "" 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:240
#: src/views/dashboard/ServerAnalytic.vue:241 #: src/views/dashboard/ServerAnalytic.vue:241
#, fuzzy #, fuzzy

View file

@ -201,7 +201,7 @@ msgstr "ChatGPT에게 도움 요청"
msgid "Assistant" msgid "Assistant"
msgstr "조수" msgstr "조수"
#: src/views/system/SelfCheck/SelfCheck.vue:50 #: src/views/system/SelfCheck/SelfCheck.vue:54
#, fuzzy #, fuzzy
msgid "Attempt to fix" msgid "Attempt to fix"
msgstr "시도 횟수" msgstr "시도 횟수"
@ -1888,7 +1888,7 @@ msgstr "읽기"
msgid "Receive" msgid "Receive"
msgstr "수신" msgstr "수신"
#: src/views/system/SelfCheck/SelfCheck.vue:42 #: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck" msgid "Recheck"
msgstr "" msgstr ""
@ -2211,7 +2211,7 @@ msgstr ""
msgid "Selector" msgid "Selector"
msgstr "선택" 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" msgid "Self Check"
msgstr "" msgstr ""
@ -2227,7 +2227,7 @@ msgstr "보내기"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194 #: 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/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111 #: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/BatchUpgrader.vue:59
@ -2361,6 +2361,14 @@ msgstr "디렉토리"
msgid "Success" msgid "Success"
msgstr "성공" 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:240
#: src/views/dashboard/ServerAnalytic.vue:241 #: src/views/dashboard/ServerAnalytic.vue:241
msgid "Swap" msgid "Swap"

View file

@ -190,7 +190,7 @@ msgstr ""
msgid "Assistant" msgid "Assistant"
msgstr "" msgstr ""
#: src/views/system/SelfCheck/SelfCheck.vue:50 #: src/views/system/SelfCheck/SelfCheck.vue:54
msgid "Attempt to fix" msgid "Attempt to fix"
msgstr "" msgstr ""
@ -1790,7 +1790,7 @@ msgstr ""
msgid "Receive" msgid "Receive"
msgstr "" msgstr ""
#: src/views/system/SelfCheck/SelfCheck.vue:42 #: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck" msgid "Recheck"
msgstr "" msgstr ""
@ -2078,7 +2078,7 @@ msgid "Selector"
msgstr "" msgstr ""
#: src/routes/index.ts:283 #: src/routes/index.ts:283
#: src/views/system/SelfCheck/SelfCheck.vue:37 #: src/views/system/SelfCheck/SelfCheck.vue:42
msgid "Self Check" msgid "Self Check"
msgstr "" msgstr ""
@ -2094,7 +2094,7 @@ msgstr ""
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194 #: 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/Mkdir.vue:38
#: src/views/config/components/Rename.vue:45 #: src/views/config/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111 #: src/views/config/ConfigEditor.vue:111
@ -2226,6 +2226,10 @@ msgstr ""
msgid "Success" msgid "Success"
msgstr "" 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:240
#: src/views/dashboard/ServerAnalytic.vue:241 #: src/views/dashboard/ServerAnalytic.vue:241
msgid "Swap" msgid "Swap"

View file

@ -203,7 +203,7 @@ msgstr "Обратитесь за помощью к ChatGPT"
msgid "Assistant" msgid "Assistant"
msgstr "Ассистент" msgstr "Ассистент"
#: src/views/system/SelfCheck/SelfCheck.vue:50 #: src/views/system/SelfCheck/SelfCheck.vue:54
#, fuzzy #, fuzzy
msgid "Attempt to fix" msgid "Attempt to fix"
msgstr "Попытки" msgstr "Попытки"
@ -1873,7 +1873,7 @@ msgstr "Чтение"
msgid "Receive" msgid "Receive"
msgstr "Принято" msgstr "Принято"
#: src/views/system/SelfCheck/SelfCheck.vue:42 #: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck" msgid "Recheck"
msgstr "" msgstr ""
@ -2181,7 +2181,7 @@ msgstr ""
msgid "Selector" msgid "Selector"
msgstr "Выбор" 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" msgid "Self Check"
msgstr "" msgstr ""
@ -2197,7 +2197,7 @@ msgstr "Отправлено"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194 #: 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/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111 #: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/BatchUpgrader.vue:59
@ -2327,6 +2327,14 @@ msgstr "Каталог"
msgid "Success" msgid "Success"
msgstr "Успех" 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:240
#: src/views/dashboard/ServerAnalytic.vue:241 #: src/views/dashboard/ServerAnalytic.vue:241
msgid "Swap" msgid "Swap"

View file

@ -199,7 +199,7 @@ msgstr "ChatGPT'den Yardım İsteyin"
msgid "Assistant" msgid "Assistant"
msgstr "Asistan" msgstr "Asistan"
#: src/views/system/SelfCheck/SelfCheck.vue:50 #: src/views/system/SelfCheck/SelfCheck.vue:54
#, fuzzy #, fuzzy
msgid "Attempt to fix" msgid "Attempt to fix"
msgstr "Girişimler" msgstr "Girişimler"
@ -1968,7 +1968,7 @@ msgstr "Okumalar"
msgid "Receive" msgid "Receive"
msgstr "Teslim almak" msgstr "Teslim almak"
#: src/views/system/SelfCheck/SelfCheck.vue:42 #: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck" msgid "Recheck"
msgstr "" msgstr ""
@ -2326,7 +2326,7 @@ msgstr "Sır kopyalandı"
msgid "Selector" msgid "Selector"
msgstr "Selektör" 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" msgid "Self Check"
msgstr "" msgstr ""
@ -2343,7 +2343,7 @@ msgstr "Gönder"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194 #: 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/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111 #: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/BatchUpgrader.vue:59
@ -2496,6 +2496,14 @@ msgstr "Dizin"
msgid "Success" msgid "Success"
msgstr "Başarılı" 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:240
#: src/views/dashboard/ServerAnalytic.vue:241 #: src/views/dashboard/ServerAnalytic.vue:241
#, fuzzy #, fuzzy

View file

@ -210,7 +210,7 @@ msgstr "Hỏi ChatGPT"
msgid "Assistant" msgid "Assistant"
msgstr "Trợ lý" msgstr "Trợ lý"
#: src/views/system/SelfCheck/SelfCheck.vue:50 #: src/views/system/SelfCheck/SelfCheck.vue:54
msgid "Attempt to fix" msgid "Attempt to fix"
msgstr "" msgstr ""
@ -1928,7 +1928,7 @@ msgstr "Đọc"
msgid "Receive" msgid "Receive"
msgstr "Nhận" msgstr "Nhận"
#: src/views/system/SelfCheck/SelfCheck.vue:42 #: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck" msgid "Recheck"
msgstr "" msgstr ""
@ -2251,7 +2251,7 @@ msgstr ""
msgid "Selector" msgid "Selector"
msgstr "Bộ chọn" 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" msgid "Self Check"
msgstr "" msgstr ""
@ -2267,7 +2267,7 @@ msgstr "Gửi"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194 #: 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/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111 #: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/BatchUpgrader.vue:59
@ -2398,6 +2398,14 @@ msgstr "Thư mục"
msgid "Success" msgid "Success"
msgstr "Thành công" 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:240
#: src/views/dashboard/ServerAnalytic.vue:241 #: src/views/dashboard/ServerAnalytic.vue:241
msgid "Swap" msgid "Swap"

View file

@ -196,7 +196,7 @@ msgstr "与ChatGPT聊天"
msgid "Assistant" msgid "Assistant"
msgstr "助手" msgstr "助手"
#: src/views/system/SelfCheck/SelfCheck.vue:50 #: src/views/system/SelfCheck/SelfCheck.vue:54
msgid "Attempt to fix" msgid "Attempt to fix"
msgstr "尝试修复" msgstr "尝试修复"
@ -1808,7 +1808,7 @@ msgstr "读"
msgid "Receive" msgid "Receive"
msgstr "下载" msgstr "下载"
#: src/views/system/SelfCheck/SelfCheck.vue:42 #: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck" msgid "Recheck"
msgstr "重新检查" msgstr "重新检查"
@ -2098,7 +2098,7 @@ msgstr "密钥已复制"
msgid "Selector" msgid "Selector"
msgstr "选择器" 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" msgid "Self Check"
msgstr "自我检查" msgstr "自我检查"
@ -2114,7 +2114,7 @@ msgstr "上传"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194 #: 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/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111 #: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/BatchUpgrader.vue:59
@ -2240,6 +2240,16 @@ msgstr "Streams 目录"
msgid "Success" msgid "Success"
msgstr "成功" 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:240
#: src/views/dashboard/ServerAnalytic.vue:241 #: src/views/dashboard/ServerAnalytic.vue:241
msgid "Swap" msgid "Swap"

View file

@ -204,7 +204,7 @@ msgstr "向 ChatGPT 尋求幫助"
msgid "Assistant" msgid "Assistant"
msgstr "助理" msgstr "助理"
#: src/views/system/SelfCheck/SelfCheck.vue:50 #: src/views/system/SelfCheck/SelfCheck.vue:54
#, fuzzy #, fuzzy
msgid "Attempt to fix" msgid "Attempt to fix"
msgstr "嘗試次數" msgstr "嘗試次數"
@ -1841,7 +1841,7 @@ msgstr "讀取"
msgid "Receive" msgid "Receive"
msgstr "接收" msgstr "接收"
#: src/views/system/SelfCheck/SelfCheck.vue:42 #: src/views/system/SelfCheck/SelfCheck.vue:47
msgid "Recheck" msgid "Recheck"
msgstr "" msgstr ""
@ -2144,7 +2144,7 @@ msgstr ""
msgid "Selector" msgid "Selector"
msgstr "選擇器" 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" msgid "Self Check"
msgstr "" msgstr ""
@ -2160,7 +2160,7 @@ msgstr "傳送"
#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:53
#: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:70
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:194 #: 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/components/Rename.vue:45
#: src/views/config/ConfigEditor.vue:111 #: src/views/config/ConfigEditor.vue:111
#: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/BatchUpgrader.vue:59
@ -2288,6 +2288,14 @@ msgstr "目錄"
msgid "Success" msgid "Success"
msgstr "成功" 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:240
#: src/views/dashboard/ServerAnalytic.vue:241 #: src/views/dashboard/ServerAnalytic.vue:241
msgid "Swap" msgid "Swap"

View file

@ -7,6 +7,7 @@ import tasks from './tasks'
const data = ref<Report[]>() const data = ref<Report[]>()
const loading = ref(false) const loading = ref(false)
const supportWebsocket = ref(false)
function check() { function check() {
loading.value = true loading.value = true
@ -15,6 +16,10 @@ function check() {
}).finally(() => { }).finally(() => {
loading.value = false loading.value = false
}) })
const ws = selfCheck.websocket()
ws.onopen = () => {
supportWebsocket.value = true
}
} }
onMounted(() => { onMounted(() => {
@ -42,30 +47,47 @@ function fix(taskName: string) {
{{ $gettext('Recheck') }} {{ $gettext('Recheck') }}
</AButton> </AButton>
</template> </template>
<AList :data-source="data"> <AList>
<template #renderItem="{ item }"> <AListItem v-for="(item, index) in data" :key="index">
<AListItem> <template v-if="item.err" #actions>
<template v-if="item.err" #actions> <AButton type="link" size="small" :loading="fixing[item.name]" @click="fix(item.name)">
<AButton type="link" size="small" :loading="fixing[item.name]" @click="fix(item.name)"> {{ $gettext('Attempt to fix') }}
{{ $gettext('Attempt to fix') }} </AButton>
</AButton> </template>
<AListItemMeta>
<template #title>
{{ tasks?.[item.name]?.name?.() }}
</template> </template>
<AListItemMeta> <template #description>
<template #title> {{ tasks?.[item.name]?.description?.() }}
{{ tasks?.[item.name]?.name?.() }} </template>
</template> <template #avatar>
<template #description> <div class="text-23px">
{{ tasks?.[item.name]?.description?.() }} <CheckCircleOutlined v-if="!item.err" class="text-green" />
</template> <CloseCircleOutlined v-else class="text-red" />
<template #avatar> </div>
<div class="text-23px"> </template>
<CheckCircleOutlined v-if="!item.err" class="text-green" /> </AListItemMeta>
<CloseCircleOutlined v-else class="text-red" /> </AListItem>
</div> <AListItem>
</template> <AListItemMeta>
</AListItemMeta> <template #title>
</AListItem> WebSocket
</template> </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> </AList>
</ACard> </ACard>
</template> </template>