Skip to content

Commit 4b1333c

Browse files
committed
fix: file not possible to delete if it fails between operations
* if file upload fails for example on commit, it is not possible to * remove it from the UI by clicking on trash can
1 parent 4f7ed0e commit 4b1333c

5 files changed

Lines changed: 46 additions & 1 deletion

File tree

invenio_rdm_records/assets/semantic-ui/js/invenio_rdm_records/src/deposit/api/DepositFilesService.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ export class UploadProgressNotifier {
5353
onUploadAdded(filename) {
5454
throw new Error("Not implemented.");
5555
}
56+
onUploadInitialized(filename, links) {
57+
throw new Error("Not implemented.");
58+
}
5659
onUploadStarted(filename, cancelFunc) {
5760
throw new Error("Not implemented.");
5861
}
@@ -165,6 +168,10 @@ export class RDMDepositFilesService extends DepositFilesService {
165168
let initializedFileMetadata;
166169
try {
167170
initializedFileMetadata = await this._initializeUpload(initializeUploadURL, file);
171+
this.progressNotifier.onUploadInitialized(
172+
file.name,
173+
initializedFileMetadata.links
174+
);
168175
} catch (error) {
169176
this._onError(file);
170177
return;

invenio_rdm_records/assets/semantic-ui/js/invenio_rdm_records/src/deposit/components/UploadProgressNotifier/UploadProgressNotifier.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
FILE_UPLOAD_CANCELLED,
1212
FILE_UPLOAD_FAILED,
1313
FILE_UPLOAD_FINISHED,
14+
FILE_UPLOAD_INITIALIZED,
1415
FILE_UPLOAD_IN_PROGRESS,
1516
FILE_UPLOAD_SET_CANCEL_FUNCTION,
1617
} from "../../state/types";
@@ -26,6 +27,17 @@ export class RDMUploadProgressNotifier extends UploadProgressNotifier {
2627
});
2728
}
2829

30+
onUploadInitialized(filename, links) {
31+
this.dispatcher &&
32+
this.dispatcher({
33+
type: FILE_UPLOAD_INITIALIZED,
34+
payload: {
35+
filename: filename,
36+
links: links,
37+
},
38+
});
39+
}
40+
2941
onUploadStarted(filename, cancelFn) {
3042
this.dispatcher &&
3143
this.dispatcher({

invenio_rdm_records/assets/semantic-ui/js/invenio_rdm_records/src/deposit/state/actions/files.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
FILE_UPLOAD_ADDED,
1818
FILE_UPLOAD_FINISHED,
1919
FILE_UPLOAD_FAILED,
20+
FILE_UPLOAD_INITIALIZED,
2021
} from "../types";
2122
import { saveDraftWithUrlUpdate } from "./deposit";
2223

@@ -82,7 +83,18 @@ export const initializeFileUpload = (draft, file) => {
8283
filename: file.name,
8384
},
8485
});
85-
return await config.service.files.initializeUpload(draft.links.files, file);
86+
const response = await config.service.files.initializeUpload(
87+
draft.links.files,
88+
file
89+
);
90+
dispatch({
91+
type: FILE_UPLOAD_INITIALIZED,
92+
payload: {
93+
filename: file.name,
94+
links: response.links,
95+
},
96+
});
97+
return response;
8698
} catch (error) {
8799
const axiosError = error?.t0 && error.t0.isAxiosError ? error.t0 : error;
88100

invenio_rdm_records/assets/semantic-ui/js/invenio_rdm_records/src/deposit/state/reducers/files.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
FILE_UPLOAD_CANCELLED,
1616
FILE_UPLOAD_FAILED,
1717
FILE_UPLOAD_FINISHED,
18+
FILE_UPLOAD_INITIALIZED,
1819
FILE_UPLOAD_IN_PROGRESS,
1920
FILE_UPLOAD_SAVE_DRAFT_FAILED,
2021
FILE_UPLOAD_SET_CANCEL_FUNCTION,
@@ -53,6 +54,18 @@ const fileReducer = (state = initialState, action) => {
5354
},
5455
actionState: action.type,
5556
};
57+
case FILE_UPLOAD_INITIALIZED:
58+
return {
59+
...state,
60+
entries: {
61+
...state.entries,
62+
[remoteFileName]: {
63+
...state.entries[remoteFileName],
64+
links: action.payload.links,
65+
},
66+
},
67+
actionState: action.type,
68+
};
5669
case FILE_UPLOAD_IN_PROGRESS:
5770
return {
5871
...state,

invenio_rdm_records/assets/semantic-ui/js/invenio_rdm_records/src/deposit/state/types/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ export const SET_DOI_NEEDED = "SET_DOI_NEEDED";
4848

4949
// Files
5050
export const FILE_UPLOAD_ADDED = "FILE_UPLOAD_ADDED";
51+
export const FILE_UPLOAD_INITIALIZED = "FILE_UPLOAD_INITIALIZED";
5152
export const FILE_UPLOAD_IN_PROGRESS = "FILE_UPLOAD_IN_PROGRESS";
5253
export const FILE_UPLOAD_FINISHED = "FILE_UPLOAD_FINISHED";
5354
export const FILE_UPLOAD_FAILED = "FILE_UPLOAD_FAILED";

0 commit comments

Comments
 (0)