feat: 添加显隐标签的设置
This commit is contained in:
@@ -31,6 +31,8 @@ const AUTO_COPY_ON_SELECT_KEY = 'autoCopyOnSelect'; // 终端选中自动复制
|
||||
const STATUS_MONITOR_INTERVAL_SECONDS_KEY = 'statusMonitorIntervalSeconds'; // 状态监控间隔设置键
|
||||
const DEFAULT_STATUS_MONITOR_INTERVAL_SECONDS = 3; // 默认状态监控间隔
|
||||
const IP_BLACKLIST_ENABLED_KEY = 'ipBlacklistEnabled'; // IP 黑名单启用设置键
|
||||
const SHOW_CONNECTION_TAGS_KEY = 'showConnectionTags'; // 连接标签显示设置键
|
||||
const SHOW_QUICK_COMMAND_TAGS_KEY = 'showQuickCommandTags'; // 快捷指令标签显示设置键
|
||||
|
||||
export const settingsService = {
|
||||
/**
|
||||
@@ -479,6 +481,60 @@ export const settingsService = {
|
||||
// Directly call the specific repository function with the full, validated config
|
||||
await setCaptchaConfigInRepo(configToSave);
|
||||
console.log('[SettingsService] CAPTCHA config successfully set.');
|
||||
}, // <-- Add comma here
|
||||
|
||||
// --- Show Connection Tags ---
|
||||
async getShowConnectionTags(): Promise<boolean> {
|
||||
console.log(`[Service] Attempting to get setting for key: ${SHOW_CONNECTION_TAGS_KEY}`);
|
||||
try {
|
||||
const valueStr = await settingsRepository.getSetting(SHOW_CONNECTION_TAGS_KEY);
|
||||
console.log(`[Service] Raw value from repository for ${SHOW_CONNECTION_TAGS_KEY}:`, valueStr);
|
||||
// 默认显示,所以只有当值为 'false' 时才返回 false
|
||||
return valueStr !== 'false';
|
||||
} catch (error) {
|
||||
console.error(`[Service] Error getting show connection tags setting (key: ${SHOW_CONNECTION_TAGS_KEY}):`, error);
|
||||
return true; // 默认返回 true
|
||||
}
|
||||
}, // *** 确保这里有逗号 ***
|
||||
|
||||
async setShowConnectionTags(enabled: boolean): Promise<void> {
|
||||
console.log(`[Service] setShowConnectionTags called with: ${enabled}`);
|
||||
try {
|
||||
const valueStr = String(enabled);
|
||||
console.log(`[Service] Attempting to save setting. Key: ${SHOW_CONNECTION_TAGS_KEY}, Value: ${valueStr}`);
|
||||
await settingsRepository.setSetting(SHOW_CONNECTION_TAGS_KEY, valueStr);
|
||||
console.log(`[Service] Successfully saved setting for key: ${SHOW_CONNECTION_TAGS_KEY}`);
|
||||
} catch (error) {
|
||||
console.error(`[Service] Error calling settingsRepository.setSetting for key ${SHOW_CONNECTION_TAGS_KEY}:`, error);
|
||||
throw new Error('Failed to save show connection tags setting.');
|
||||
}
|
||||
}, // *** 确保这里有逗号 ***
|
||||
|
||||
// --- Show Quick Command Tags ---
|
||||
async getShowQuickCommandTags(): Promise<boolean> {
|
||||
console.log(`[Service] Attempting to get setting for key: ${SHOW_QUICK_COMMAND_TAGS_KEY}`);
|
||||
try {
|
||||
const valueStr = await settingsRepository.getSetting(SHOW_QUICK_COMMAND_TAGS_KEY);
|
||||
console.log(`[Service] Raw value from repository for ${SHOW_QUICK_COMMAND_TAGS_KEY}:`, valueStr);
|
||||
// 默认显示,所以只有当值为 'false' 时才返回 false
|
||||
return valueStr !== 'false';
|
||||
} catch (error) {
|
||||
console.error(`[Service] Error getting show quick command tags setting (key: ${SHOW_QUICK_COMMAND_TAGS_KEY}):`, error);
|
||||
return true; // 默认返回 true
|
||||
}
|
||||
}, // *** 确保这里有逗号 ***
|
||||
|
||||
async setShowQuickCommandTags(enabled: boolean): Promise<void> {
|
||||
console.log(`[Service] setShowQuickCommandTags called with: ${enabled}`);
|
||||
try {
|
||||
const valueStr = String(enabled);
|
||||
console.log(`[Service] Attempting to save setting. Key: ${SHOW_QUICK_COMMAND_TAGS_KEY}, Value: ${valueStr}`);
|
||||
await settingsRepository.setSetting(SHOW_QUICK_COMMAND_TAGS_KEY, valueStr);
|
||||
console.log(`[Service] Successfully saved setting for key: ${SHOW_QUICK_COMMAND_TAGS_KEY}`);
|
||||
} catch (error) {
|
||||
console.error(`[Service] Error calling settingsRepository.setSetting for key ${SHOW_QUICK_COMMAND_TAGS_KEY}:`, error);
|
||||
throw new Error('Failed to save show quick command tags setting.');
|
||||
}
|
||||
} // <-- No comma after the last method
|
||||
|
||||
}; // <-- End of settingsService object definition
|
||||
|
||||
@@ -417,6 +417,86 @@ async setCaptchaConfig(req: Request, res: Response): Promise<void> {
|
||||
res.status(500).json({ message: '设置 CAPTCHA 配置失败', error: error.message });
|
||||
}
|
||||
}
|
||||
}
|
||||
}, // <-- Add comma here
|
||||
|
||||
// --- Show Connection Tags ---
|
||||
async getShowConnectionTags(req: Request, res: Response): Promise<void> {
|
||||
try {
|
||||
console.log('[控制器] 收到获取“显示连接标签”设置的请求。');
|
||||
const isEnabled = await settingsService.getShowConnectionTags();
|
||||
console.log(`[控制器] 向客户端发送“显示连接标签”设置: ${isEnabled}`);
|
||||
res.json({ enabled: isEnabled });
|
||||
} catch (error: any) {
|
||||
console.error('[控制器] 获取“显示连接标签”设置时出错:', error);
|
||||
res.status(500).json({ message: '获取“显示连接标签”设置失败', error: error.message });
|
||||
}
|
||||
}, // *** 确保这里有逗号 ***
|
||||
|
||||
async setShowConnectionTags(req: Request, res: Response): Promise<void> {
|
||||
console.log('[控制器] 收到设置“显示连接标签”设置的请求。');
|
||||
try {
|
||||
const { enabled } = req.body;
|
||||
console.log('[控制器] 请求体 enabled:', enabled);
|
||||
|
||||
if (typeof enabled !== 'boolean') {
|
||||
console.warn('[控制器] 收到无效的 enabled 格式:', enabled);
|
||||
res.status(400).json({ message: '无效的请求体,"enabled" 必须是一个布尔值' });
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('[控制器] 调用 settingsService.setShowConnectionTags...');
|
||||
await settingsService.setShowConnectionTags(enabled);
|
||||
console.log('[控制器] settingsService.setShowConnectionTags 成功完成。');
|
||||
|
||||
auditLogService.logAction('SETTINGS_UPDATED', { updatedKeys: ['showConnectionTags'] });
|
||||
notificationService.sendNotification('SETTINGS_UPDATED', { updatedKeys: ['showConnectionTags'] });
|
||||
|
||||
console.log('[控制器] 发送成功响应。');
|
||||
res.status(200).json({ message: '“显示连接标签”设置已成功更新' });
|
||||
} catch (error: any) {
|
||||
console.error('[控制器] 设置“显示连接标签”时出错:', error);
|
||||
res.status(500).json({ message: '设置“显示连接标签”失败', error: error.message });
|
||||
}
|
||||
}, // *** 确保这里有逗号 ***
|
||||
|
||||
// --- Show Quick Command Tags ---
|
||||
async getShowQuickCommandTags(req: Request, res: Response): Promise<void> {
|
||||
try {
|
||||
console.log('[控制器] 收到获取“显示快捷指令标签”设置的请求。');
|
||||
const isEnabled = await settingsService.getShowQuickCommandTags();
|
||||
console.log(`[控制器] 向客户端发送“显示快捷指令标签”设置: ${isEnabled}`);
|
||||
res.json({ enabled: isEnabled });
|
||||
} catch (error: any) {
|
||||
console.error('[控制器] 获取“显示快捷指令标签”设置时出错:', error);
|
||||
res.status(500).json({ message: '获取“显示快捷指令标签”设置失败', error: error.message });
|
||||
}
|
||||
}, // *** 确保这里有逗号 ***
|
||||
|
||||
async setShowQuickCommandTags(req: Request, res: Response): Promise<void> {
|
||||
console.log('[控制器] 收到设置“显示快捷指令标签”设置的请求。');
|
||||
try {
|
||||
const { enabled } = req.body;
|
||||
console.log('[控制器] 请求体 enabled:', enabled);
|
||||
|
||||
if (typeof enabled !== 'boolean') {
|
||||
console.warn('[控制器] 收到无效的 enabled 格式:', enabled);
|
||||
res.status(400).json({ message: '无效的请求体,"enabled" 必须是一个布尔值' });
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('[控制器] 调用 settingsService.setShowQuickCommandTags...');
|
||||
await settingsService.setShowQuickCommandTags(enabled);
|
||||
console.log('[控制器] settingsService.setShowQuickCommandTags 成功完成。');
|
||||
|
||||
auditLogService.logAction('SETTINGS_UPDATED', { updatedKeys: ['showQuickCommandTags'] });
|
||||
notificationService.sendNotification('SETTINGS_UPDATED', { updatedKeys: ['showQuickCommandTags'] });
|
||||
|
||||
console.log('[控制器] 发送成功响应。');
|
||||
res.status(200).json({ message: '“显示快捷指令标签”设置已成功更新' });
|
||||
} catch (error: any) {
|
||||
console.error('[控制器] 设置“显示快捷指令标签”时出错:', error);
|
||||
res.status(500).json({ message: '设置“显示快捷指令标签”失败', error: error.message });
|
||||
}
|
||||
} // <-- No comma after the last method
|
||||
|
||||
};
|
||||
|
||||
@@ -53,6 +53,18 @@ router.get('/sidebar', settingsController.getSidebarConfig);
|
||||
// PUT /api/v1/settings/sidebar - 更新侧栏配置
|
||||
router.put('/sidebar', settingsController.setSidebarConfig);
|
||||
|
||||
// +++ 新增:显示连接标签路由 +++
|
||||
// GET /api/v1/settings/show-connection-tags - 获取设置
|
||||
router.get('/show-connection-tags', settingsController.getShowConnectionTags);
|
||||
// PUT /api/v1/settings/show-connection-tags - 更新设置
|
||||
router.put('/show-connection-tags', settingsController.setShowConnectionTags);
|
||||
|
||||
// +++ 新增:显示快捷指令标签路由 +++
|
||||
// GET /api/v1/settings/show-quick-command-tags - 获取设置
|
||||
router.get('/show-quick-command-tags', settingsController.getShowQuickCommandTags);
|
||||
// PUT /api/v1/settings/show-quick-command-tags - 更新设置
|
||||
router.put('/show-quick-command-tags', settingsController.setShowQuickCommandTags);
|
||||
|
||||
|
||||
export default router;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user