feat(web): show active sandbox details in Box status popover

Display sandbox count and a detailed list of active sessions including
session ID, image, backend, resources (CPU/memory), network mode, and
last used time. Fetched from GET /api/v1/box/sessions in parallel.
Includes i18n for all 8 supported languages.
This commit is contained in:
Junyan Qin
2026-04-18 22:16:36 +08:00
committed by WangCham
parent 7e50063731
commit cee5e9e0e2
11 changed files with 126 additions and 1 deletions
+5
View File
@@ -473,7 +473,12 @@ const enUS = {
boxUnavailable: 'Unavailable',
boxBackend: 'Backend',
boxProfile: 'Profile',
boxSandboxes: 'Sandboxes',
boxErrors: 'Errors',
boxSessionImage: 'Image',
boxSessionBackend: 'Backend',
boxSessionResources: 'Resources',
boxSessionNetwork: 'Network',
boxStatusLoadFailed: 'Failed to load Box status',
failedToGetDebugInfo: 'Failed to get debug information',
copiedToClipboard: 'Copied to clipboard',
+5
View File
@@ -485,7 +485,12 @@ const esES = {
boxUnavailable: 'No disponible',
boxBackend: 'Backend',
boxProfile: 'Perfil',
boxSandboxes: 'Sandboxes',
boxErrors: 'Errores',
boxSessionImage: 'Imagen',
boxSessionBackend: 'Backend',
boxSessionResources: 'Recursos',
boxSessionNetwork: 'Red',
boxStatusLoadFailed: 'Error al cargar el estado de Box',
failedToGetDebugInfo: 'Error al obtener la información de depuración',
copiedToClipboard: 'Copiado al portapapeles',
+5
View File
@@ -478,7 +478,12 @@ const jaJP = {
boxUnavailable: '利用不可',
boxBackend: 'バックエンド',
boxProfile: 'プロファイル',
boxSandboxes: 'サンドボックス',
boxErrors: 'エラー',
boxSessionImage: 'イメージ',
boxSessionBackend: 'バックエンド',
boxSessionResources: 'リソース',
boxSessionNetwork: 'ネットワーク',
boxStatusLoadFailed: 'Box ステータスの読み込みに失敗しました',
failedToGetDebugInfo: 'デバッグ情報の取得に失敗しました',
copiedToClipboard: 'クリップボードにコピーしました',
+5
View File
@@ -481,7 +481,12 @@ const ruRU = {
boxUnavailable: 'Недоступно',
boxBackend: 'Бэкенд',
boxProfile: 'Профиль',
boxSandboxes: 'Песочницы',
boxErrors: 'Ошибки',
boxSessionImage: 'Образ',
boxSessionBackend: 'Бэкенд',
boxSessionResources: 'Ресурсы',
boxSessionNetwork: 'Сеть',
boxStatusLoadFailed: 'Не удалось загрузить статус Box',
failedToGetDebugInfo: 'Не удалось получить отладочную информацию',
copiedToClipboard: 'Скопировано в буфер обмена',
+5
View File
@@ -468,7 +468,12 @@ const thTH = {
boxUnavailable: 'ไม่พร้อมใช้งาน',
boxBackend: 'แบ็กเอนด์',
boxProfile: 'โปรไฟล์',
boxSandboxes: 'แซนด์บ็อกซ์',
boxErrors: 'ข้อผิดพลาด',
boxSessionImage: 'อิมเมจ',
boxSessionBackend: 'แบ็กเอนด์',
boxSessionResources: 'ทรัพยากร',
boxSessionNetwork: 'เครือข่าย',
boxStatusLoadFailed: 'โหลดสถานะ Box ล้มเหลว',
failedToGetDebugInfo: 'ไม่สามารถดึงข้อมูลดีบักได้',
copiedToClipboard: 'คัดลอกไปยังคลิปบอร์ดแล้ว',
+5
View File
@@ -478,7 +478,12 @@ const viVN = {
boxUnavailable: 'Không khả dụng',
boxBackend: 'Backend',
boxProfile: 'Hồ sơ',
boxSandboxes: 'Sandbox',
boxErrors: 'Lỗi',
boxSessionImage: 'Image',
boxSessionBackend: 'Backend',
boxSessionResources: 'Tài nguyên',
boxSessionNetwork: 'Mạng',
boxStatusLoadFailed: 'Tải trạng thái Box thất bại',
failedToGetDebugInfo: 'Lấy thông tin gỡ lỗi thất bại',
copiedToClipboard: 'Đã sao chép vào clipboard',
+5
View File
@@ -452,7 +452,12 @@ const zhHans = {
boxUnavailable: '不可用',
boxBackend: '后端',
boxProfile: '配置',
boxSandboxes: '沙箱数',
boxErrors: '错误数',
boxSessionImage: '镜像',
boxSessionBackend: '后端',
boxSessionResources: '资源',
boxSessionNetwork: '网络',
boxStatusLoadFailed: '加载 Box 状态失败',
failedToGetDebugInfo: '获取调试信息失败',
copiedToClipboard: '已复制到剪贴板',
+5
View File
@@ -453,7 +453,12 @@ const zhHant = {
boxUnavailable: '不可用',
boxBackend: '後端',
boxProfile: '設定檔',
boxSandboxes: '沙箱數',
boxErrors: '錯誤數',
boxSessionImage: '映像檔',
boxSessionBackend: '後端',
boxSessionResources: '資源',
boxSessionNetwork: '網路',
boxStatusLoadFailed: '載入 Box 狀態失敗',
failedToGetDebugInfo: '取得偵錯資訊失敗',
copiedToClipboard: '已複製到剪貼簿',