(kind, preferredFolder = '', preferredSourceId = '')
| 223 | } |
| 224 | |
| 225 | async function initCopyMoveSourceSelect(kind, preferredFolder = '', preferredSourceId = '') { |
| 226 | const rowId = kind === 'move' ? 'moveFilesSourceRow' : 'copyFilesSourceRow'; |
| 227 | const selectId = kind === 'move' ? 'moveTargetSource' : 'copyTargetSource'; |
| 228 | const folderSelectId = kind === 'move' ? 'moveTargetFolder' : 'copyTargetFolder'; |
| 229 | const row = document.getElementById(rowId); |
| 230 | const selectEl = document.getElementById(selectId); |
| 231 | const sources = await loadVisibleSources(); |
| 232 | if (!sources || sources.length <= 1 || !row || !selectEl) { |
| 233 | if (row) row.style.display = 'none'; |
| 234 | const active = getActiveSourceId(); |
| 235 | await loadCopyMoveFolderListForModal(folderSelectId, preferredFolder, active); |
| 236 | return; |
| 237 | } |
| 238 | |
| 239 | row.style.display = ''; |
| 240 | const activeId = getActiveSourceId(); |
| 241 | const preferredId = preferredSourceId || activeId; |
| 242 | populateSourceSelect(selectEl, sources, preferredId); |
| 243 | await loadCopyMoveFolderListForModal(folderSelectId, preferredFolder, selectEl.value || preferredId); |
| 244 | |
| 245 | if (!selectEl.__wired) { |
| 246 | selectEl.__wired = true; |
| 247 | selectEl.addEventListener('change', async () => { |
| 248 | const srcId = selectEl.value || ''; |
| 249 | await loadCopyMoveFolderListForModal(folderSelectId, preferredFolder, srcId); |
| 250 | }); |
| 251 | } |
| 252 | } |
| 253 | |
| 254 | function selectPreferredFolderOption(folderSelect, preferredFolder) { |
| 255 | if (!folderSelect || !preferredFolder) return; |
no test coverage detected