feat: add AnyTLS support and improve system functionality

- Add AnyTLS protocol support
- Add system logs viewing in admin panel
- Refactor client subscription delivery code
- Refactor hook mechanism
- Add plugin support for Shadowsocks protocol
- Add CSV export option for batch user creation
- Fix mobile admin login page width display issue
This commit is contained in:
xboard
2025-05-22 17:58:22 +08:00
parent 2580475f78
commit fc5a957ddd
35 changed files with 1586 additions and 640 deletions
+47 -7
View File
@@ -1030,7 +1030,19 @@ window.XBOARD_TRANSLATIONS['en-US'] = {
"result": "Result",
"duration": "Duration",
"attempts": "Attempts",
"nextRetry": "Next Retry"
"nextRetry": "Next Retry",
"failedJobsDetailTitle": "Failed Jobs Details",
"viewFailedJobs": "View Failed Jobs",
"jobDetailTitle": "Job Details",
"time": "Time",
"queue": "Queue",
"name": "Job Name",
"exception": "Exception",
"noFailedJobs": "No failed jobs",
"connection": "Connection",
"payload": "Job Payload",
"viewDetail": "View Details",
"action": "Action"
},
"actions": {
"retry": "Retry",
@@ -1042,6 +1054,27 @@ window.XBOARD_TRANSLATIONS['en-US'] = {
"loading": "Loading queue status...",
"error": "Failed to load queue status"
},
"systemLog": {
"title": "System Logs",
"description": "View system operation logs",
"viewAll": "View All",
"level": "Level",
"time": "Time",
"message": "Message",
"action": "Action",
"context": "Context",
"search": "Search logs...",
"noLogs": "No logs available",
"noSearchResults": "No matching logs found",
"detailTitle": "Log Details",
"viewDetail": "View Details",
"totalLogs": "Total logs: {{count}}"
},
"common": {
"refresh": "Refresh",
"close": "Close",
"pagination": "Page {{current}}/{{total}}, {{count}} items total"
},
"search": {
"placeholder": "Search menus and functions...",
"title": "Menu Navigation",
@@ -1556,7 +1589,9 @@ window.XBOARD_TRANSLATIONS['en-US'] = {
},
"rate": {
"label": "Rate",
"error": "Please enter a valid rate"
"error": "Rate is required",
"error_numeric": "Rate must be a number",
"error_gte_zero": "Rate must be greater than or equal to 0"
},
"code": {
"label": "Custom Node ID",
@@ -1575,18 +1610,22 @@ window.XBOARD_TRANSLATIONS['en-US'] = {
},
"host": {
"label": "Node Address",
"placeholder": "Please enter domain or IP"
"placeholder": "Please enter domain or IP",
"error": "Node address is required"
},
"port": {
"label": "Connection Port",
"placeholder": "User connection port",
"tooltip": "The port that users actually connect to, this is the port number that needs to be filled in the client configuration. If using transit or tunnel, this port may be different from the port that the server actually listens on.",
"sync": "Sync to server port"
"sync": "Sync to server port",
"error": "Connection port is required"
},
"server_port": {
"label": "Server Port",
"placeholder": "Server listening port",
"tooltip": "The port that the server actually listens on, this is the real port opened on the server. If using transit or tunnel, this port may be different from the user connection port."
"placeholder": "Enter server port",
"error": "Server port is required",
"tooltip": "The actual listening port on the server.",
"sync": "Sync to server port"
},
"parent": {
"label": "Parent Node",
@@ -2003,7 +2042,8 @@ window.XBOARD_TRANSLATIONS['en-US'] = {
"generate_count_placeholder": "Enter count for batch generation",
"cancel": "Cancel",
"submit": "Generate",
"success": "Generated successfully"
"success": "Generated successfully",
"download_csv": "Export as CSV file"
}
},
"edit": {