Skip to content

Commit 415ecae

Browse files
promises and resove.all
1 parent 9cf7a74 commit 415ecae

File tree

5 files changed

+106
-53
lines changed

5 files changed

+106
-53
lines changed

components/ExtensionSelector.vue

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -72,16 +72,31 @@
7272
7373
async function get_output_file_extensions() {
7474
toggle_loading()
75-
const params = { input_geode_object, filenames }
76-
await api_fetch(
77-
{ schema, params },
78-
{
79-
response_function: (response) => {
80-
geode_objects_and_output_extensions.value =
81-
response._data.geode_objects_and_output_extensions
82-
},
83-
},
84-
)
75+
geode_objects_and_output_extensions.vaue = {}
76+
var promise_array = []
77+
for (const filename of filenames) {
78+
const params = { input_geode_object, filename }
79+
const promise = new Promise((resolve, reject) => {
80+
api_fetch(
81+
{ schema, params },
82+
{
83+
request_error_function: () => {
84+
reject()
85+
},
86+
response_function: (response) => {
87+
geode_objects_and_output_extensions.value =
88+
response._data.geode_objects_and_output_extensions
89+
resolve()
90+
},
91+
response_error_function: () => {
92+
reject()
93+
},
94+
},
95+
)
96+
})
97+
promise_array.push(promise)
98+
}
99+
await Promise.all(promise_array)
85100
toggle_loading()
86101
}
87102

components/FileUploader.vue

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,29 @@
4949
5050
async function upload_files() {
5151
toggle_loading()
52-
await upload_file(
53-
{ route, files: multiple ? files.value : [files.value[0]] },
54-
{
55-
response_function: () => {
56-
files_uploaded.value = true
57-
emit("files_uploaded", files.value)
58-
},
59-
},
60-
)
52+
var promise_array = []
53+
for (const file of files.value) {
54+
const promise = new Promise((resolve, reject) => {
55+
upload_file(
56+
{ route, file },
57+
{
58+
request_error_function: () => {
59+
reject()
60+
},
61+
response_function: () => {
62+
resolve()
63+
},
64+
response_error_function: () => {
65+
reject()
66+
},
67+
},
68+
)
69+
})
70+
promise_array.push(promise)
71+
}
72+
await Promise.all(promise_array)
73+
files_uploaded.value = true
74+
emit("files_uploaded", files.value)
6175
toggle_loading()
6276
}
6377

components/MissingFilesSelector.vue

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -73,32 +73,41 @@
7373
}
7474
7575
async function missing_files() {
76+
toggle_loading()
7677
has_missing_files.value = false
7778
mandatory_files.value = []
7879
additional_files.value = []
79-
toggle_loading()
80-
const params = { input_geode_object, filenames }
81-
await api_fetch(
82-
{ schema, params },
83-
{
84-
response_function: (response) => {
85-
has_missing_files.value = response._data.has_missing_files
86-
mandatory_files.value = response._data.mandatory_files
87-
additional_files.value = response._data.additional_files
8880
89-
const files_list = [].concat(
90-
mandatory_files.value,
91-
additional_files.value,
92-
)
93-
accept.value = files_list
94-
.map((filename) => "." + filename.split(".").pop())
95-
.join(",")
96-
if (!has_missing_files.value) {
97-
emit("increment_step")
98-
}
81+
for (const filename of filenames) {
82+
const params = { input_geode_object, filename }
83+
await api_fetch(
84+
{ schema, params },
85+
{
86+
request_error_function: () => {
87+
resolve()
88+
},
89+
response_function: (response) => {
90+
has_missing_files.value = response._data.has_missing_files
91+
mandatory_files.value = response._data.mandatory_files
92+
additional_files.value = response._data.additional_files
93+
94+
const files_list = [].concat(
95+
mandatory_files.value,
96+
additional_files.value,
97+
)
98+
accept.value = files_list
99+
.map((filename) => "." + filename.split(".").pop())
100+
.join(",")
101+
if (!has_missing_files.value) {
102+
emit("increment_step")
103+
}
104+
},
105+
response_error_function: () => {
106+
resolve()
107+
},
99108
},
100-
},
101-
)
109+
)
110+
}
102111
103112
toggle_loading()
104113
}

components/ObjectSelector.vue

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,33 @@
4949
const toggle_loading = useToggle(loading)
5050
5151
async function get_allowed_objects() {
52-
const params = { filenames, key }
5352
toggle_loading()
54-
await api_fetch(
55-
{ schema, params },
56-
{
57-
response_function: (response) => {
58-
allowed_objects.value = response._data.allowed_objects
59-
},
60-
},
61-
)
53+
allowed_objects.value = []
54+
var promise_array = []
55+
for (const filename of filenames) {
56+
const params = { filename, key }
57+
const promise = new Promise((resolve, reject) => {
58+
api_fetch(
59+
{ schema, params },
60+
{
61+
request_error_function: () => {
62+
reject()
63+
},
64+
response_function: (response) => {
65+
console.log(response._data.allowed_objects)
66+
allowed_objects.value = response._data.allowed_objects
67+
68+
resolve()
69+
},
70+
response_error_function: () => {
71+
reject()
72+
},
73+
},
74+
)
75+
})
76+
promise_array.push(promise)
77+
}
78+
await Promise.all(promise_array)
6279
toggle_loading()
6380
}
6481

composables/upload_file.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
export function upload_file(
2-
{ route, files },
2+
{ route, file },
33
{ request_error_function, response_function, response_error_function } = {},
44
) {
55
const errors_store = use_errors_store()
66
const geode_store = use_geode_store()
77

88
const body = new FormData()
9-
for (let i = 0; i < files.length; i++) {
10-
body.append("content", files[i])
11-
}
9+
body.append("file", file)
1210

1311
const request_options = {
1412
method: "PUT",

0 commit comments

Comments
 (0)