diff --git a/rapids/templates/rapids/rapid_form.html b/rapids/templates/rapids/rapid_form.html index c8d606ce..81bf8290 100755 --- a/rapids/templates/rapids/rapid_form.html +++ b/rapids/templates/rapids/rapid_form.html @@ -12,18 +12,20 @@ // set to hold the files that are still being processed let active_file_inputs = new Set() - async function listAllFilesAndDirs(dirHandle) { + async function listAllFilesAndDirs(dirHandle, files_only) { const files = []; for await (let [name, handle] of dirHandle) { const { kind } = handle; if (handle.kind === 'directory') { - files.push({ - name, - handle, - kind - }); + if (files_only != true) { + files.push({ + name, + handle, + kind + }); + } files.push(...await listAllFilesAndDirs(handle)); } else { files.push({ @@ -75,6 +77,19 @@ } + function getCurrentFiles() { + inputs = $("#rapid-form input[type=file]"); + + let files = new Set(); + for (let j = 0; j < inputs.length; j++) { + i = inputs.get(j); + console.log(i) + files.add(i.files[0]); + console.log(i.files) + } + return files; + } + function extendInputs(n) { // Makes sure we have n inputs available // returns available inputs @@ -174,7 +189,7 @@ //ocr(el) console.log(el); - if(feedback) { + if (feedback) { arr = el.name.split("-"); arr.splice(2, 1, "feedback_image"); feedback_el_name = arr.join("-"); @@ -265,17 +280,28 @@ monitor_interval_id = setInterval(function () { listAllFilesAndDirs(monitor_directory_handler).then((items) => { console.log(items); + files_to_add = Set(); + for (var i = 0; i < items.length; i++) { + files_to_add.add(items[i].getFile()); + } + current_files = getCurrentFiles(); + let distinct_set = new Set([...files_to_add].filter(x => + ! + current_files.has(x))); + + console.log(distinct_set) }); }, 5000); - $("#directory-picker-display").text(monitor_directory_handler.name).after( - $( - " [clear]").click((evt) => { - $(evt.target).remove(); - $("#directory-picker-display").text(""); - monitor_directory_handler = false; - clearInterval(monitor_interval_id); - //const files = await listAllFilesAndDirs(directoryHandle); - })); + $("#directory-picker-display").text(monitor_directory_handler.name) + .after( + $( + " [clear]").click((evt) => { + $(evt.target).remove(); + $("#directory-picker-display").text(""); + monitor_directory_handler = false; + clearInterval(monitor_interval_id); + //const files = await listAllFilesAndDirs(directoryHandle); + })); }); });