feat: Move notification settings to user profile and add i18n support
- Move notification config from system settings (.env) to user profile (database) - Add user-specific notification settings API endpoints (GET/PUT /api/user/notification-settings) - Add notification_settings column to qd_users table - Update portfolio and trading-assistant to use profile notification settings - Add notification settings UI in profile page with all channels (browser, telegram, email, phone, discord, webhook) - Add i18n translations for notification settings in 10 languages - Fix timestamp parsing in TradingRecords and portfolio (handle both ISO strings and Unix timestamps) - Fix header icons alignment for mobile responsive layout - Fix equity curve timestamp bug (handle datetime objects properly) - Remove unused login.js exports and clean up user.js store - Remove husky, commitlint and other dev dependencies - Clean up env.example by removing user-specific notification params - Update signal_notifier to prioritize user-specific tokens over global env vars
This commit is contained in:
@@ -68,21 +68,9 @@ MAKER_WAIT_SEC=10
|
||||
MAKER_OFFSET_BPS=2
|
||||
|
||||
# =========================
|
||||
# Strategy signal notifications (optional)
|
||||
# Email / SMTP (公共邮件服务,所有用户共用)
|
||||
# =========================
|
||||
# The frontend stores per-strategy notification_config.targets.*, but you can also set
|
||||
# a global fallback webhook URL used when a strategy enables "webhook" channel but
|
||||
# doesn't provide targets.webhook.
|
||||
SIGNAL_WEBHOOK_URL=
|
||||
SIGNAL_WEBHOOK_TOKEN=
|
||||
|
||||
# HTTP timeout for outbound notification requests (seconds).
|
||||
SIGNAL_NOTIFY_TIMEOUT_SEC=6
|
||||
|
||||
# Telegram (required if you enable telegram channel)
|
||||
TELEGRAM_BOT_TOKEN=
|
||||
|
||||
# Email / SMTP (required if you enable email channel)
|
||||
# 用户在个人中心配置自己的通知邮箱,SMTP 服务器由管理员统一配置
|
||||
SMTP_HOST=
|
||||
SMTP_PORT=587
|
||||
SMTP_USER=
|
||||
@@ -170,15 +158,6 @@ OPENROUTER_CONNECT_TIMEOUT=30
|
||||
# Optional: override model list shown in UI (JSON object: {"model_id":"Display Name", ...})
|
||||
AI_MODELS_JSON={}
|
||||
|
||||
# =========================
|
||||
# Market presets (optional)
|
||||
# =========================
|
||||
# Optional: override market types shown in UI (JSON array)
|
||||
MARKET_TYPES_JSON=[]
|
||||
|
||||
# Optional: supported crypto symbols list (JSON array)
|
||||
TRADING_SUPPORTED_SYMBOLS_JSON=[]
|
||||
|
||||
# =========================
|
||||
# Data sources (Kline / pricing)
|
||||
# =========================
|
||||
|
||||
Reference in New Issue
Block a user