Improve cancel task logic

pull/1426/head
Piero Toffanin 2023-11-06 10:35:02 -05:00
rodzic bd183c6455
commit 6b4230f233
3 zmienionych plików z 31 dodań i 6 usunięć

Wyświetl plik

@ -60,6 +60,7 @@ class ProjectListItem extends React.Component {
this.toggleTaskList = this.toggleTaskList.bind(this); this.toggleTaskList = this.toggleTaskList.bind(this);
this.closeUploadError = this.closeUploadError.bind(this); this.closeUploadError = this.closeUploadError.bind(this);
this.cancelUpload = this.cancelUpload.bind(this); this.cancelUpload = this.cancelUpload.bind(this);
this.handleCancel = this.handleCancel.bind(this);
this.handleTaskSaved = this.handleTaskSaved.bind(this); this.handleTaskSaved = this.handleTaskSaved.bind(this);
this.viewMap = this.viewMap.bind(this); this.viewMap = this.viewMap.bind(this);
this.handleDelete = this.handleDelete.bind(this); this.handleDelete = this.handleDelete.bind(this);
@ -248,13 +249,19 @@ class ProjectListItem extends React.Component {
} }
} }
}catch(e){ }catch(e){
this.setUploadState({error: `${e.message}`, uploading: false}); if (this.manuallyCanceled){
this.dz.cancelUpload(); // Manually canceled, ignore error
this.setUploadState({uploading: false});
}else{
this.setUploadState({error: `${e.message}`, uploading: false});
}
if (this.dz.files.length) this.dz.cancelUpload();
} }
}) })
.on("queuecomplete", () => { .on("queuecomplete", () => {
const remainingFilesCount = this.state.upload.totalCount - this.state.upload.uploadedCount; const remainingFilesCount = this.state.upload.totalCount - this.state.upload.uploadedCount;
if (remainingFilesCount === 0){ if (remainingFilesCount === 0 && this.state.upload.uploadedCount > 0){
// All files have uploaded! // All files have uploaded!
this.setUploadState({uploading: false}); this.setUploadState({uploading: false});
@ -332,10 +339,26 @@ class ProjectListItem extends React.Component {
this.setUploadState({error: ""}); this.setUploadState({error: ""});
} }
cancelUpload(e){ cancelUpload(){
this.dz.removeAllFiles(true); this.dz.removeAllFiles(true);
} }
handleCancel(){
this.manuallyCanceled = true;
this.cancelUpload();
if (this.dz._taskInfo && this.dz._taskInfo.id !== undefined){
$.ajax({
url: `/api/projects/${this.state.data.id}/tasks/${this.dz._taskInfo.id}/remove/`,
contentType: 'application/json',
dataType: 'json',
type: 'POST'
});
}
setTimeout(() => {
this.manuallyCanceled = false;
}, 500);
}
taskDeleted(){ taskDeleted(){
this.refresh(); this.refresh();
} }
@ -628,7 +651,7 @@ class ProjectListItem extends React.Component {
<button disabled={this.state.upload.error !== ""} <button disabled={this.state.upload.error !== ""}
type="button" type="button"
className={"btn btn-danger btn-sm " + (!this.state.upload.uploading ? "hide" : "")} className={"btn btn-danger btn-sm " + (!this.state.upload.uploading ? "hide" : "")}
onClick={this.cancelUpload}> onClick={this.handleCancel}>
<i className="glyphicon glyphicon-remove-circle"></i> <i className="glyphicon glyphicon-remove-circle"></i>
Cancel Upload Cancel Upload
</button> </button>

Wyświetl plik

@ -2199,6 +2199,8 @@ var Dropzone = function (_Emitter) {
}, { }, {
key: "cancelUpload", key: "cancelUpload",
value: function cancelUpload(file) { value: function cancelUpload(file) {
if (file === undefined) return;
if (file.status === Dropzone.UPLOADING) { if (file.status === Dropzone.UPLOADING) {
var groupedFiles = this._getFilesWithXhr(file.xhr); var groupedFiles = this._getFilesWithXhr(file.xhr);
for (var _iterator19 = groupedFiles, _isArray19 = true, _i20 = 0, _iterator19 = _isArray19 ? _iterator19 : _iterator19[Symbol.iterator]();;) { for (var _iterator19 = groupedFiles, _isArray19 = true, _i20 = 0, _iterator19 = _isArray19 ? _iterator19 : _iterator19[Symbol.iterator]();;) {

Wyświetl plik

@ -1,6 +1,6 @@
{ {
"name": "WebODM", "name": "WebODM",
"version": "2.2.0", "version": "2.2.1",
"description": "User-friendly, extendable application and API for processing aerial imagery.", "description": "User-friendly, extendable application and API for processing aerial imagery.",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {