[ACA-3447] Cancel upload of new version removes existing version (#5815)

* instead of deleting the whole node when we upload and then cancel a new version, we delete the version in case

* reverting wrong auto indent

* fix case name of the unit test

* fix auto indent

* fix auto indent
This commit is contained in:
Urse Daniel
2020-06-24 20:14:18 +03:00
committed by GitHub
parent ed68ebb751
commit de975d22b8
2 changed files with 56 additions and 1 deletions

View File

@@ -216,6 +216,50 @@ describe('UploadService', () => {
});
});
it('should delete node\'s version when cancelling the upload of the new file version', (done) => {
const emitter = new EventEmitter();
const emitterDisposable = emitter.subscribe((event) => {
expect(event.value).toEqual('File deleted');
emitterDisposable.unsubscribe();
const deleteRequest = jasmine.Ajax.requests.mostRecent();
expect(deleteRequest.url).toBe('http://localhost:9876/ecm/alfresco/api/-default-/public/alfresco/versions/1/nodes/myNodeId/versions/1.1');
expect(deleteRequest.method).toBe('DELETE');
jasmine.Ajax.requests.mostRecent().respondWith({
'status': 200,
contentType: 'text/plain',
responseText: 'File deleted'
});
done();
});
const fileFake = new FileModel(<File> {name: 'fake-name', size: 10}, null, 'fakeId');
service.addToQueue(fileFake);
service.uploadFilesInTheQueue(emitter);
const file = service.getQueue();
service.cancelUpload(...file);
const request = jasmine.Ajax.requests.mostRecent();
expect(request.url).toBe('http://localhost:9876/ecm/alfresco/api/-default-/public/alfresco/versions/1/nodes/fakeId/content?include=allowableOperations');
expect(request.method).toBe('PUT');
jasmine.Ajax.requests.mostRecent().respondWith({
'status': 200,
contentType: 'json',
responseText: {
entry: {
id: 'myNodeId',
properties: {
'cm:versionLabel': '1.1'
}
}
}
});
});
it('If newVersion is set, name should be a param', () => {
const uploadFileSpy = spyOn(alfrescoApiService.getInstance().upload, 'uploadFile').and.callThrough();

View File

@@ -275,7 +275,11 @@ export class UploadService {
.on('success', (data) => {
if (this.abortedFile === file.name) {
this.onUploadAborted(file);
this.deleteAbortedNode(data.entry.id);
if (file.id === undefined) {
this.deleteAbortedNode(data.entry.id);
} else {
this.deleteAbortedNodeVersion(data.entry.id, data.entry.properties['cm:versionLabel']);
}
if (emitter) {
emitter.emit({ value: 'File deleted' });
}
@@ -405,6 +409,13 @@ export class UploadService {
.then(() => (this.abortedFile = undefined));
}
private deleteAbortedNodeVersion(nodeId: string, versionId: string) {
this.apiService
.getInstance()
.core.versionsApi.deleteVersion(nodeId, versionId)
.then(() => (this.abortedFile = undefined));
}
private isSaveToAbortFile(file: FileModel): boolean {
return (
file.size > MIN_CANCELLABLE_FILE_SIZE &&