Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions client/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { SessionDetail } from "./pages/SessionDetail";
import { ActivityFeed } from "./pages/ActivityFeed";
import { Analytics } from "./pages/Analytics";
import { Workflows } from "./pages/Workflows";
import { Reports } from "./pages/Reports";
import { Settings } from "./pages/Settings";
import { CcConfig } from "./pages/CcConfig";
import { Run } from "./pages/Run";
Expand Down Expand Up @@ -42,6 +43,7 @@ export default function App() {
<Route path="activity" element={<ActivityFeed />} />
<Route path="analytics" element={<Analytics />} />
<Route path="workflows" element={<Workflows />} />
<Route path="reports" element={<Reports />} />
<Route path="cc-config" element={<CcConfig />} />
<Route path="run" element={<Run />} />
<Route path="settings" element={<Settings />} />
Expand Down
2 changes: 2 additions & 0 deletions client/src/components/Sidebar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import {
Activity,
BarChart3,
Workflow,
FileBarChart,
Boxes,
Play,
Settings,
Expand Down Expand Up @@ -49,6 +50,7 @@ const NAV_KEYS = [
{ to: "/activity", icon: Activity, key: "nav:activityFeed" },
{ to: "/analytics", icon: BarChart3, key: "nav:analytics" },
{ to: "/workflows", icon: Workflow, key: "nav:workflows" },
{ to: "/reports", icon: FileBarChart, key: "nav:reports" },
{ to: "/cc-config", icon: Boxes, key: "nav:ccConfig" },
{ to: "/run", icon: Play, key: "nav:run" },
{ to: "/settings", icon: Settings, key: "nav:settings" },
Expand Down
7 changes: 7 additions & 0 deletions client/src/i18n/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ import run_vi from "./locales/vi/run.json";
import alerts_en from "./locales/en/alerts.json";
import alerts_zh from "./locales/zh/alerts.json";
import alerts_vi from "./locales/vi/alerts.json";
import reports_en from "./locales/en/reports.json";
import reports_zh from "./locales/zh/reports.json";
import reports_vi from "./locales/vi/reports.json";

i18n
.use(LanguageDetector)
Expand All @@ -71,6 +74,7 @@ i18n
ccConfig: ccConfig_en,
run: run_en,
alerts: alerts_en,
reports: reports_en,
},
zh: {
common: common_zh,
Expand All @@ -87,6 +91,7 @@ i18n
ccConfig: ccConfig_zh,
run: run_zh,
alerts: alerts_zh,
reports: reports_zh,
},
vi: {
common: common_vi,
Expand All @@ -103,6 +108,7 @@ i18n
ccConfig: ccConfig_vi,
run: run_vi,
alerts: alerts_vi,
reports: reports_vi,
},
},
supportedLngs: ["en", "zh", "vi"],
Expand All @@ -123,6 +129,7 @@ i18n
"ccConfig",
"run",
"alerts",
"reports",
],
defaultNS: "common",
interpolation: { escapeValue: false },
Expand Down
1 change: 1 addition & 0 deletions client/src/i18n/locales/en/nav.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"activityFeed": "Activity Feed",
"analytics": "Analytics",
"workflows": "Workflows",
"reports": "Reports",
"alerts": "Alerts",
"ccConfig": "Claude Config",
"run": "Run Claude",
Expand Down
85 changes: 85 additions & 0 deletions client/src/i18n/locales/en/reports.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
{
"title": "Scheduled Reports",
"subtitle": "Automated analytics reports delivered on a schedule",
"newReport": "New report",
"refresh": "Refresh",
"failedLoad": "Failed to load reports",
"definitions": {
"empty": "No scheduled reports yet",
"emptyDesc": "Create a report to receive automated analytics summaries on a schedule.",
"createFirst": "Create report",
"nextRun": "Next run",
"lastRun": "Last run",
"never": "Never",
"runNow": "Run now",
"running": "Running…",
"edit": "Edit",
"delete": "Delete",
"enabled": "Enabled",
"disabled": "Disabled",
"formats": "Formats",
"window": "{{count}}-day window",
"viewHistory": "View history",
"hideHistory": "Hide history"
},
"frequency": {
"daily": "Daily",
"weekly": "Weekly",
"monthly": "Monthly",
"dailyAt": "Daily · {{time}}",
"weeklyAt": "Weekly · {{day}} {{time}}",
"monthlyAt": "Monthly · day 1 {{time}}"
},
"days": {
"0": "Sun",
"1": "Mon",
"2": "Tue",
"3": "Wed",
"4": "Thu",
"5": "Fri",
"6": "Sat"
},
"status": {
"success": "Success",
"error": "Error",
"pending": "Pending"
},
"form": {
"createTitle": "New scheduled report",
"editTitle": "Edit report",
"name": "Name",
"namePlaceholder": "Weekly analytics digest",
"template": "Template",
"frequency": "Frequency",
"dayOfWeek": "Day of week",
"hour": "Hour (0–23)",
"formats": "Formats",
"windowDays": "Window (days)",
"enabled": "Enabled",
"enabledDesc": "Run this report automatically on its schedule",
"cancel": "Cancel",
"create": "Create report",
"save": "Save changes",
"saving": "Saving…",
"validationName": "A report name is required",
"validationTemplate": "Select a template",
"validationFormats": "Select at least one format"
},
"history": {
"title": "Run history",
"empty": "No runs yet",
"emptyDesc": "This report hasn't run yet. Use \"Run now\" to generate the first report.",
"loadFailed": "Failed to load run history",
"window": "Window",
"started": "Started",
"viewHtml": "View HTML",
"downloadJson": "Download JSON",
"errorLabel": "Error"
},
"delete": {
"title": "Delete report?",
"message": "\"{{name}}\" and its run history will be permanently removed.",
"confirm": "Delete",
"cancel": "Cancel"
}
}
1 change: 1 addition & 0 deletions client/src/i18n/locales/vi/nav.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"activityFeed": "Luồng hoạt động",
"analytics": "Phân tích",
"workflows": "Quy trình",
"reports": "Báo cáo",
"alerts": "Cảnh báo",
"ccConfig": "Cấu hình Claude",
"run": "Chạy Claude",
Expand Down
85 changes: 85 additions & 0 deletions client/src/i18n/locales/vi/reports.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
{
"title": "Báo cáo định kỳ",
"subtitle": "Báo cáo phân tích tự động được tạo theo lịch",
"newReport": "Báo cáo mới",
"refresh": "Làm mới",
"failedLoad": "Không tải được báo cáo",
"definitions": {
"empty": "Chưa có báo cáo định kỳ",
"emptyDesc": "Tạo một báo cáo để nhận tóm tắt phân tích tự động theo lịch.",
"createFirst": "Tạo báo cáo",
"nextRun": "Lần chạy tiếp theo",
"lastRun": "Lần chạy gần nhất",
"never": "Chưa bao giờ",
"runNow": "Chạy ngay",
"running": "Đang chạy…",
"edit": "Sửa",
"delete": "Xóa",
"enabled": "Đang bật",
"disabled": "Đang tắt",
"formats": "Định dạng",
"window": "Khoảng {{count}} ngày",
"viewHistory": "Xem lịch sử",
"hideHistory": "Ẩn lịch sử"
},
"frequency": {
"daily": "Hằng ngày",
"weekly": "Hằng tuần",
"monthly": "Hằng tháng",
"dailyAt": "Hằng ngày · {{time}}",
"weeklyAt": "Hằng tuần · {{day}} {{time}}",
"monthlyAt": "Hằng tháng · ngày 1 {{time}}"
},
"days": {
"0": "CN",
"1": "T2",
"2": "T3",
"3": "T4",
"4": "T5",
"5": "T6",
"6": "T7"
},
"status": {
"success": "Thành công",
"error": "Lỗi",
"pending": "Đang chờ"
},
"form": {
"createTitle": "Báo cáo định kỳ mới",
"editTitle": "Sửa báo cáo",
"name": "Tên",
"namePlaceholder": "Tóm tắt phân tích hằng tuần",
"template": "Mẫu",
"frequency": "Tần suất",
"dayOfWeek": "Ngày trong tuần",
"hour": "Giờ (0–23)",
"formats": "Định dạng",
"windowDays": "Khoảng (ngày)",
"enabled": "Đang bật",
"enabledDesc": "Tự động chạy báo cáo này theo lịch",
"cancel": "Hủy",
"create": "Tạo báo cáo",
"save": "Lưu thay đổi",
"saving": "Đang lưu…",
"validationName": "Cần nhập tên báo cáo",
"validationTemplate": "Chọn một mẫu",
"validationFormats": "Chọn ít nhất một định dạng"
},
"history": {
"title": "Lịch sử chạy",
"empty": "Chưa có lần chạy nào",
"emptyDesc": "Báo cáo này chưa chạy. Dùng \"Chạy ngay\" để tạo báo cáo đầu tiên.",
"loadFailed": "Không tải được lịch sử chạy",
"window": "Khoảng",
"started": "Bắt đầu",
"viewHtml": "Xem HTML",
"downloadJson": "Tải JSON",
"errorLabel": "Lỗi"
},
"delete": {
"title": "Xóa báo cáo?",
"message": "\"{{name}}\" và lịch sử chạy của nó sẽ bị xóa vĩnh viễn.",
"confirm": "Xóa",
"cancel": "Hủy"
}
}
1 change: 1 addition & 0 deletions client/src/i18n/locales/zh/nav.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"activityFeed": "活动流",
"analytics": "分析",
"workflows": "工作流",
"reports": "报表",
"alerts": "警报",
"ccConfig": "Claude 配置",
"run": "运行 Claude",
Expand Down
85 changes: 85 additions & 0 deletions client/src/i18n/locales/zh/reports.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
{
"title": "定时报表",
"subtitle": "按计划自动生成并交付分析报表",
"newReport": "新建报表",
"refresh": "刷新",
"failedLoad": "加载报表失败",
"definitions": {
"empty": "暂无定时报表",
"emptyDesc": "创建一个报表,即可按计划自动接收分析摘要。",
"createFirst": "创建报表",
"nextRun": "下次运行",
"lastRun": "上次运行",
"never": "从未",
"runNow": "立即运行",
"running": "运行中…",
"edit": "编辑",
"delete": "删除",
"enabled": "已启用",
"disabled": "已停用",
"formats": "格式",
"window": "{{count}} 天窗口",
"viewHistory": "查看历史",
"hideHistory": "隐藏历史"
},
"frequency": {
"daily": "每天",
"weekly": "每周",
"monthly": "每月",
"dailyAt": "每天 · {{time}}",
"weeklyAt": "每周 · {{day}} {{time}}",
"monthlyAt": "每月 · 1 号 {{time}}"
},
"days": {
"0": "周日",
"1": "周一",
"2": "周二",
"3": "周三",
"4": "周四",
"5": "周五",
"6": "周六"
},
"status": {
"success": "成功",
"error": "失败",
"pending": "待处理"
},
"form": {
"createTitle": "新建定时报表",
"editTitle": "编辑报表",
"name": "名称",
"namePlaceholder": "每周分析摘要",
"template": "模板",
"frequency": "频率",
"dayOfWeek": "星期几",
"hour": "小时(0–23)",
"formats": "格式",
"windowDays": "窗口(天)",
"enabled": "已启用",
"enabledDesc": "按计划自动运行此报表",
"cancel": "取消",
"create": "创建报表",
"save": "保存更改",
"saving": "保存中…",
"validationName": "请填写报表名称",
"validationTemplate": "请选择模板",
"validationFormats": "请至少选择一种格式"
},
"history": {
"title": "运行历史",
"empty": "暂无运行记录",
"emptyDesc": "此报表尚未运行。点击“立即运行”以生成首份报表。",
"loadFailed": "加载运行历史失败",
"window": "窗口",
"started": "开始时间",
"viewHtml": "查看 HTML",
"downloadJson": "下载 JSON",
"errorLabel": "错误"
},
"delete": {
"title": "删除报表?",
"message": "“{{name}}”及其运行历史将被永久删除。",
"confirm": "删除",
"cancel": "取消"
}
}
Loading
Loading