58 lines
1.7 KiB
JavaScript
58 lines
1.7 KiB
JavaScript
import { openTab as _openTab } from './ui/tabs.js';
|
|
import { initTrainForm } from './train/form.js';
|
|
import { startProcessPolling, stopProcessPolling, loadProcesses } from './processes/list.js';
|
|
import { loadLogFiles } from './logfiles/list.js';
|
|
|
|
const hooks = {
|
|
onEnterProcesses: () => {
|
|
loadProcesses();
|
|
},
|
|
onLeaveProcesses: () => {
|
|
stopProcessPolling();
|
|
},
|
|
onEnterLogfiles: () => {
|
|
loadLogFiles();
|
|
},
|
|
};
|
|
|
|
window.openTab = (evt, tabName) => _openTab(evt, tabName, hooks);
|
|
|
|
// 文件夹选择器功能
|
|
window.selectFolder = async (inputId) => {
|
|
try {
|
|
// 检查是否支持 File System Access API
|
|
if ('showDirectoryPicker' in window) {
|
|
const dirHandle = await window.showDirectoryPicker();
|
|
const path = dirHandle.name; // 使用目录名称作为路径
|
|
document.getElementById(inputId).value = `./${path}`;
|
|
} else {
|
|
// 降级方案:使用文件输入模拟
|
|
const input = document.createElement('input');
|
|
input.type = 'file';
|
|
input.webkitdirectory = true;
|
|
input.onchange = (e) => {
|
|
const files = e.target.files;
|
|
if (files.length > 0) {
|
|
// 提取相对路径
|
|
const path = files[0].webkitRelativePath.split('/')[0];
|
|
document.getElementById(inputId).value = `./${path}`;
|
|
}
|
|
};
|
|
input.click();
|
|
}
|
|
} catch (error) {
|
|
console.warn('文件夹选择失败:', error);
|
|
// 如果用户取消选择,不显示错误
|
|
if (error.name !== 'AbortError') {
|
|
alert('文件夹选择失败,请手动输入路径');
|
|
}
|
|
}
|
|
};
|
|
|
|
window.addEventListener('load', () => {
|
|
initTrainForm();
|
|
startProcessPolling();
|
|
loadProcesses();
|
|
});
|
|
|