feat: 添加“终端右键粘贴”设置

This commit is contained in:
Baobhan Sith
2025-05-12 22:23:01 +08:00
parent 2e69a00049
commit 978aa942fb
12 changed files with 232 additions and 125 deletions
@@ -48,13 +48,9 @@ export const settingsRepository = {
updated_at = excluded.updated_at`;
const params = [key, value, now, now];
// console.log(`[仓库] 尝试设置设置项。键: ${key}, 值: ${value}`);
// console.log(`[仓库] 执行 SQL: ${sql},参数: ${JSON.stringify(params)}`);
try {
const db = await getDbInstance();
const result = await runDb(db, sql, params);
// console.log(`[仓库] 成功设置键为 ${key} 的设置项。影响行数: ${result.changes}`);
} catch (err: any) {
console.error(`[Repository] 设置设置项 ${key} 时出错:`, err.message);
throw new Error(`设置设置项 ${key} 失败`);
@@ -265,8 +261,9 @@ export const ensureDefaultSettingsExist = async (db: sqlite3.Database): Promise<
statusMonitorIntervalSeconds: '3',
[SIDEBAR_CONFIG_KEY]: JSON.stringify(defaultSidebarPanesStructure),
[CAPTCHA_CONFIG_KEY]: JSON.stringify(defaultCaptchaSettings),
timezone: 'UTC', // NEW: 添加时区默认值
terminalScrollbackLimit: '5000', // NEW: 添加终端回滚行数默认值
timezone: 'UTC', // 添加时区默认值
terminalScrollbackLimit: '5000', // 添加终端回滚行数默认值
terminalEnableRightClickPaste: 'true', // 添加终端右键粘贴默认值
};
const nowSeconds = Math.floor(Date.now() / 1000);
const sqlInsertOrIgnore = `INSERT OR IGNORE INTO settings (key, value, created_at, updated_at) VALUES (?, ?, ?, ?)`;
@@ -45,15 +45,16 @@ export const settingsController = {
'fileManagerRowSizeMultiplier', // +++ 添加文件管理器行大小键 +++
'fileManagerColWidths', // +++ 添加文件管理器列宽键 +++
'commandInputSyncTarget', // +++ 添加命令输入同步目标键 +++
'timezone', // NEW: 添加时区键
'rdpModalWidth', // NEW: 添加 RDP 模态框宽度键
'rdpModalHeight', // NEW: 添加 RDP 模态框高度键
'vncModalWidth', // NEW: 添加 VNC 模态框宽度键
'vncModalHeight', // NEW: 添加 VNC 模态框高度键
'timezone', // 添加时区键
'rdpModalWidth', // 添加 RDP 模态框宽度键
'rdpModalHeight', // 添加 RDP 模态框高度键
'vncModalWidth', // 添加 VNC 模态框宽度键
'vncModalHeight', // 添加 VNC 模态框高度键
'ipBlacklistEnabled', // <-- 添加 IP 黑名单启用键
'layoutLocked', // +++ 添加布局锁定键 +++
'terminalScrollbackLimit', // NEW: 添加终端回滚行数键
'fileManagerShowDeleteConfirmation' // NEW: 添加文件管理器删除确认键
'terminalScrollbackLimit', // 添加终端回滚行数键
'fileManagerShowDeleteConfirmation', // 添加文件管理器删除确认键
'terminalEnableRightClickPaste' // 添加终端右键粘贴键
];
const filteredSettings: Record<string, string> = {};
for (const key in settingsToUpdate) {
@@ -64,7 +65,7 @@ export const settingsController = {
if (Object.keys(filteredSettings).length > 0) {
await settingsService.setMultipleSettings(filteredSettings);
}
}
const updatedKeys = Object.keys(filteredSettings);
if (updatedKeys.length > 0) {
+1 -1
View File
@@ -18,7 +18,7 @@ export interface ClientState { // 导出以便 Service 可以导入
connectionName?: string; // 添加连接名称字段
sftp?: SFTPWrapper; // 添加 sftp 实例 (由 SftpService 管理)
statusIntervalId?: NodeJS.Timeout; // 添加状态轮询 ID (由 StatusMonitorService 管理)
dockerStatusIntervalId?: NodeJS.Timeout; // NEW: Docker 状态轮询 ID
dockerStatusIntervalId?: NodeJS.Timeout; // Docker 状态轮询 ID
ipAddress?: string; // 添加 IP 地址字段
isShellReady?: boolean; // 标记 Shell 是否已准备好处理输入和调整大小
isSuspendedByService?: boolean; // 标记此会话是否已被 SshSuspendService 接管