v1.0.178: fix — onFilesSelected больше не удаляет существущие файлы. reconcileSelection убрана из оркестратора. Файлы из ZIP/предыдущих загрузок сохраняются при добавлении новых.
This commit is contained in:
+13
-14
@@ -432,26 +432,25 @@ async function finalizeUpload() {
|
|||||||
/**
|
/**
|
||||||
* onFilesSelected(newFiles) — Оркестратор загрузки (Фаза 1).
|
* onFilesSelected(newFiles) — Оркестратор загрузки (Фаза 1).
|
||||||
*
|
*
|
||||||
* ПАТТЕРН (decoupling-final-plan.md):
|
* ПАТТЕРН:
|
||||||
* 1. reconcileSelection — согласовать состав (чистая мутация)
|
* 1. Для каждого файла: addZipFile (ZIP) или addRegularFile (обычный)
|
||||||
* 2. Для каждого файла: addZipFile (ZIP) или addRegularFile (обычный)
|
* 2. finalizeUpload — завершить цикл
|
||||||
* 3. finalizeUpload — завершить цикл
|
*
|
||||||
|
* НЕ удаляет существующие файлы — только добавляет новые.
|
||||||
|
* Дубликаты обрабатываются через confirm() в addRegularFile.
|
||||||
|
* Удаление — только вручную (кнопка ✕).
|
||||||
*
|
*
|
||||||
* Это ТОНКАЯ функция (~15 строк) — вся логика в шагах 1-3.
|
|
||||||
* Вызывается из fileInput.addEventListener('change', ...).
|
* Вызывается из fileInput.addEventListener('change', ...).
|
||||||
*/
|
*/
|
||||||
async function onFilesSelected(newFiles) {
|
async function onFilesSelected(newFiles) {
|
||||||
if (newFiles.length === 0) return;
|
if (newFiles.length === 0) return;
|
||||||
|
|
||||||
fileInput.disabled = true;
|
fileInput.disabled = true;
|
||||||
|
|
||||||
// Шаг 1: согласовать состав — убрать файлы, которых нет в новом выборе
|
// Сбросить прогресс пайплайна при добавлении новых файлов
|
||||||
state.files = reconcileSelection(state.files, newFiles);
|
|
||||||
render(state);
|
|
||||||
showClassifyBtn();
|
|
||||||
resetStepper('stepUpload');
|
resetStepper('stepUpload');
|
||||||
|
|
||||||
// Шаг 2: обработать каждый файл
|
// Обработать каждый файл
|
||||||
for (var i = 0; i < newFiles.length; i++) {
|
for (var i = 0; i < newFiles.length; i++) {
|
||||||
var f = newFiles[i];
|
var f = newFiles[i];
|
||||||
if (f.name.toLowerCase().endsWith('.zip')) {
|
if (f.name.toLowerCase().endsWith('.zip')) {
|
||||||
@@ -460,7 +459,7 @@ async function onFilesSelected(newFiles) {
|
|||||||
await addRegularFile(f);
|
await addRegularFile(f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Шаг 3: финализация
|
// Завершить цикл
|
||||||
await finalizeUpload();
|
await finalizeUpload();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user