diff --git a/public/app.js b/public/app.js index 20e58076..2855510c 100644 --- a/public/app.js +++ b/public/app.js @@ -2716,6 +2716,12 @@ class App { if (form.elements['configBackup.dir']) { form.elements['configBackup.dir'].value = config['configBackup.dir'] || ''; } + if (form.elements['configBackup.intervalHours']) { + form.elements['configBackup.intervalHours'].value = config['configBackup.intervalHours'] || 24; + } + if (form.elements['configBackup.scheduleTime']) { + form.elements['configBackup.scheduleTime'].value = config['configBackup.scheduleTime'] || '00:00'; + } if (form.elements['snapshot.backupPath']) { form.elements['snapshot.backupPath'].value = config['snapshot.backupPath'] || ''; } @@ -3203,6 +3209,8 @@ class App { ...this.collectBackupPolicy(), 'configBackup.enable': formData.get('configBackup.enable') === 'on', 'configBackup.retentionDays': parseInt(formData.get('configBackup.retentionDays')) || 7, + 'configBackup.intervalHours': parseInt(formData.get('configBackup.intervalHours')) || 24, + 'configBackup.scheduleTime': (formData.get('configBackup.scheduleTime') || '').trim(), 'configBackup.dir': (formData.get('configBackup.dir') || '').trim(), 'snapshot.backupPath': (formData.get('snapshot.backupPath') || '').trim(), 'admin.path': adminPath, @@ -3794,11 +3802,11 @@ class App { }) const modeOptions = (sel) => ([ ['upload', '上传(保留本地)'], - ['upload-delete', '上传后删除本地'], + ['upload-delete', '上传后删除本地(仅删除本地歌曲及其歌词等附件)'], ['download', '下载(远端→本地)'], ['sync', '双向同步'], ]).map(([v, t]) => '').join('') - const modeHelp = '上传:本地新增自动上传,保留本地;上传后删除:上传完成即删本地并清缓存索引;下载:仅把云端该用户目录拉到本地并补缓存;双向同步:补齐缓存并同步修改;本地缓存淘汰不会删除远端文件' + const modeHelp = '上传:本地新增自动上传,保留本地;上传后删除:仅对「下载 / 缓存」目录中的歌曲文件及其随同上传的歌词、封面等附件生效,上传校验通过后删除这些本地文件并清除缓存索引;系统配置、歌单与不喜欢快照、用户数据一律保留本地,不受此模式影响;下载:仅把云端该用户目录拉到本地并补缓存;双向同步:补齐缓存并同步修改;本地缓存淘汰不会删除远端文件' const toggleHtml = (id, checked) => '