Fixed some issues with dump (#904)

* Changed method for downloading annotations

* Initial commit

* Initial commit

* Updated download method for dataset

* fixed eslint error
main
Boris Sekachev 6 years ago committed by Nikita Manovich
parent f3a3f4c90a
commit 72517557d3

@ -563,20 +563,18 @@
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
async function request() { async function request() {
try { Axios.get(`${url}`, {
const response = await Axios proxy: config.proxy,
.get(`${url}`, { }).then((response) => {
proxy: config.proxy,
});
if (response.status === 202) { if (response.status === 202) {
setTimeout(request, 3000); setTimeout(request, 3000);
} else { } else {
url = `${url}&action=download`; url = `${url}&action=download`;
resolve(url); resolve(url);
} }
} catch (errorData) { }).catch((errorData) => {
reject(generateError(errorData)); reject(generateError(errorData));
} });
} }
setTimeout(request); setTimeout(request);

@ -164,9 +164,9 @@ ThunkAction<Promise<void>, {}, {}, AnyAction> {
try { try {
dispatch(dumpAnnotation(task, dumper)); dispatch(dumpAnnotation(task, dumper));
const url = await task.annotations.dump(task.name, dumper); const url = await task.annotations.dump(task.name, dumper);
// false positive const downloadAnchor = (window.document.getElementById('downloadAnchor') as HTMLAnchorElement);
// eslint-disable-next-line security/detect-non-literal-fs-filename downloadAnchor.href = url;
window.open(url); downloadAnchor.click();
} catch (error) { } catch (error) {
dispatch(dumpAnnotationFailed(task, dumper, error)); dispatch(dumpAnnotationFailed(task, dumper, error));
return; return;
@ -270,9 +270,9 @@ ThunkAction<Promise<void>, {}, {}, AnyAction> {
try { try {
const url = await task.annotations.exportDataset(exporter.tag); const url = await task.annotations.exportDataset(exporter.tag);
// false positive const downloadAnchor = (window.document.getElementById('downloadAnchor') as HTMLAnchorElement);
// eslint-disable-next-line security/detect-non-literal-fs-filename downloadAnchor.href = url;
window.open(url, '_blank'); downloadAnchor.click();
} catch (error) { } catch (error) {
dispatch(exportDatasetFailed(task, exporter, error)); dispatch(exportDatasetFailed(task, exporter, error));
} }

@ -233,6 +233,7 @@ export default class CVATApplication extends React.PureComponent<CVATAppProps> {
</Switch> </Switch>
<FeedbackComponent/> <FeedbackComponent/>
<ModelRunnerModalContainer/> <ModelRunnerModalContainer/>
<a id='downloadAnchor' style={{ display: 'none' }} download/>
</Layout.Content> </Layout.Content>
</Layout> </Layout>
</BrowserRouter> </BrowserRouter>

@ -364,7 +364,7 @@ class TaskViewSet(auth.TaskGetQuerySetMixin, viewsets.ModelViewSet):
"{}.{}.{}.{}".format(filename, username, timestamp, db_dumper.format.lower())) "{}.{}.{}.{}".format(filename, username, timestamp, db_dumper.format.lower()))
queue = django_rq.get_queue("default") queue = django_rq.get_queue("default")
rq_id = "{}@/api/v1/tasks/{}/annotations/{}".format(username, pk, filename) rq_id = "{}@/api/v1/tasks/{}/annotations/{}/{}".format(username, pk, dump_format, filename)
rq_job = queue.fetch_job(rq_id) rq_job = queue.fetch_job(rq_id)
if rq_job: if rq_job:

Loading…
Cancel
Save