mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF-3175] renabling upload on single target folder row (#3473)
This commit is contained in:
@@ -62,6 +62,40 @@ function getFakeShareDataRow(allowableOperations = ['delete', 'update', 'create'
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getFakeFileShareRow(allowableOperations = ['delete', 'update', 'create']) {
|
||||||
|
return {
|
||||||
|
obj: {
|
||||||
|
entry: {
|
||||||
|
createdAt: '2017-06-04T04:32:15.597Z',
|
||||||
|
path: {
|
||||||
|
name: '/Company Home/User Homes/Test',
|
||||||
|
isComplete: true,
|
||||||
|
elements: [
|
||||||
|
{
|
||||||
|
id: '94acfc73-7014-4475-9bd9-93a2162f0f8c',
|
||||||
|
name: 'Company Home'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '55052317-7e59-4058-8e07-769f41e615e1',
|
||||||
|
name: 'User Homes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '70e1cc6a-6918-468a-b84a-1048093b06fd',
|
||||||
|
name: 'Test'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
isFolder: false,
|
||||||
|
isFile: true,
|
||||||
|
name: 'pippo',
|
||||||
|
id: '7462d28e-bd43-4b91-9e7b-0d71598680ac',
|
||||||
|
nodeType: 'cm:folder',
|
||||||
|
allowableOperations
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
describe('UploadDragAreaComponent', () => {
|
describe('UploadDragAreaComponent', () => {
|
||||||
|
|
||||||
let component: UploadDragAreaComponent;
|
let component: UploadDragAreaComponent;
|
||||||
@@ -120,6 +154,7 @@ describe('UploadDragAreaComponent', () => {
|
|||||||
fullPath: '/folder-fake/file-fake.png',
|
fullPath: '/folder-fake/file-fake.png',
|
||||||
isDirectory: false,
|
isDirectory: false,
|
||||||
isFile: true,
|
isFile: true,
|
||||||
|
relativeFolder: '/',
|
||||||
name: 'file-fake.png',
|
name: 'file-fake.png',
|
||||||
file: (callbackFile) => {
|
file: (callbackFile) => {
|
||||||
let fileFake = new File(['fakefake'], 'file-fake.png', { type: 'image/png' });
|
let fileFake = new File(['fakefake'], 'file-fake.png', { type: 'image/png' });
|
||||||
@@ -166,6 +201,7 @@ describe('UploadDragAreaComponent', () => {
|
|||||||
fullPath: '/folder-fake/file-fake.png',
|
fullPath: '/folder-fake/file-fake.png',
|
||||||
isDirectory: false,
|
isDirectory: false,
|
||||||
isFile: true,
|
isFile: true,
|
||||||
|
relativeFolder: '/',
|
||||||
name: 'file-fake.png',
|
name: 'file-fake.png',
|
||||||
file: (callbackFile) => {
|
file: (callbackFile) => {
|
||||||
let fileFake = new File(['fakefake'], 'file-fake.png', { type: 'image/png' });
|
let fileFake = new File(['fakefake'], 'file-fake.png', { type: 'image/png' });
|
||||||
@@ -236,6 +272,7 @@ describe('UploadDragAreaComponent', () => {
|
|||||||
isDirectory: false,
|
isDirectory: false,
|
||||||
isFile: true,
|
isFile: true,
|
||||||
name: 'file-fake.png',
|
name: 'file-fake.png',
|
||||||
|
relativeFolder: '/',
|
||||||
file: (callbackFile) => {
|
file: (callbackFile) => {
|
||||||
let fileFake = new File(['fakefake'], 'file-fake.png', { type: 'image/png' });
|
let fileFake = new File(['fakefake'], 'file-fake.png', { type: 'image/png' });
|
||||||
callbackFile(fileFake);
|
callbackFile(fileFake);
|
||||||
@@ -257,6 +294,7 @@ describe('UploadDragAreaComponent', () => {
|
|||||||
fullPath: '/folder-fake/file-fake.png',
|
fullPath: '/folder-fake/file-fake.png',
|
||||||
isDirectory: false,
|
isDirectory: false,
|
||||||
isFile: true,
|
isFile: true,
|
||||||
|
relativeFolder: '/',
|
||||||
name: 'file-fake.png',
|
name: 'file-fake.png',
|
||||||
file: (callbackFile) => {
|
file: (callbackFile) => {
|
||||||
let fileFake = new File(['fakefake'], 'file-fake.png', { type: 'image/png' });
|
let fileFake = new File(['fakefake'], 'file-fake.png', { type: 'image/png' });
|
||||||
@@ -279,6 +317,7 @@ describe('UploadDragAreaComponent', () => {
|
|||||||
isDirectory: false,
|
isDirectory: false,
|
||||||
isFile: true,
|
isFile: true,
|
||||||
name: 'file-fake.png',
|
name: 'file-fake.png',
|
||||||
|
relativeFolder: '/',
|
||||||
file: (callbackFile) => {
|
file: (callbackFile) => {
|
||||||
let fileFake = new File(['fakefake'], 'file-fake.png', { type: 'image/png' });
|
let fileFake = new File(['fakefake'], 'file-fake.png', { type: 'image/png' });
|
||||||
callbackFile(fileFake);
|
callbackFile(fileFake);
|
||||||
@@ -294,6 +333,7 @@ describe('UploadDragAreaComponent', () => {
|
|||||||
isDirectory: false,
|
isDirectory: false,
|
||||||
isFile: true,
|
isFile: true,
|
||||||
name: 'file-fake.png',
|
name: 'file-fake.png',
|
||||||
|
relativeFolder: '/',
|
||||||
file: (callbackFile) => {
|
file: (callbackFile) => {
|
||||||
let fileFake = new File(['fakefake'], 'file-fake.png', { type: 'image/png' });
|
let fileFake = new File(['fakefake'], 'file-fake.png', { type: 'image/png' });
|
||||||
callbackFile(fileFake);
|
callbackFile(fileFake);
|
||||||
@@ -307,6 +347,65 @@ describe('UploadDragAreaComponent', () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
component.onUploadFiles(fakeCustomEvent);
|
||||||
|
expect(uploadService.addToQueue).toHaveBeenCalled();
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should upload a file to a specific target folder when dropped onto one', async(() => {
|
||||||
|
|
||||||
|
let fakeItem = {
|
||||||
|
fullPath: '/folder-fake/file-fake.png',
|
||||||
|
isDirectory: false,
|
||||||
|
isFile: true,
|
||||||
|
name: 'file-fake.png',
|
||||||
|
relativeFolder: '/',
|
||||||
|
file: (callbackFile) => {
|
||||||
|
let fileFake = new File(['fakefake'], 'file-fake.png', { type: 'image/png' });
|
||||||
|
callbackFile(fileFake);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
addToQueueSpy.and.callFake((fileList) => {
|
||||||
|
expect(fileList.name).toBe('file');
|
||||||
|
expect(fileList.options.path).toBe('/pippo');
|
||||||
|
});
|
||||||
|
|
||||||
|
let fakeCustomEvent: CustomEvent = new CustomEvent('CustomEvent', {
|
||||||
|
detail: {
|
||||||
|
data: getFakeShareDataRow(),
|
||||||
|
files: [fakeItem]
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
component.onUploadFiles(fakeCustomEvent);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should upload the file in the current folder when the target is file', async(() => {
|
||||||
|
|
||||||
|
let fakeItem = {
|
||||||
|
fullPath: '/folder-fake/file-fake.png',
|
||||||
|
isDirectory: false,
|
||||||
|
isFile: true,
|
||||||
|
name: 'file-fake.png',
|
||||||
|
relativeFolder: '/',
|
||||||
|
file: (callbackFile) => {
|
||||||
|
let fileFake = new File(['fakefake'], 'file-fake.png', { type: 'image/png' });
|
||||||
|
callbackFile(fileFake);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
addToQueueSpy.and.callFake((fileList) => {
|
||||||
|
expect(fileList.name).toBe('file');
|
||||||
|
expect(fileList.options.path).toBe('/');
|
||||||
|
});
|
||||||
|
|
||||||
|
let fakeCustomEvent: CustomEvent = new CustomEvent('CustomEvent', {
|
||||||
|
detail: {
|
||||||
|
data: getFakeFileShareRow(),
|
||||||
|
files: [fakeItem]
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
component.onUploadFiles(fakeCustomEvent);
|
component.onUploadFiles(fakeCustomEvent);
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
@@ -320,6 +419,7 @@ describe('UploadDragAreaComponent', () => {
|
|||||||
fullPath: '/folder-fake/file-fake.png',
|
fullPath: '/folder-fake/file-fake.png',
|
||||||
isDirectory: false,
|
isDirectory: false,
|
||||||
isFile: true,
|
isFile: true,
|
||||||
|
relativeFolder: '/',
|
||||||
name: 'file-fake.png',
|
name: 'file-fake.png',
|
||||||
file: (callbackFile) => {
|
file: (callbackFile) => {
|
||||||
let fileFake = new File(['fakefake'], 'file-fake.png', { type: 'image/png' });
|
let fileFake = new File(['fakefake'], 'file-fake.png', { type: 'image/png' });
|
||||||
|
@@ -119,10 +119,18 @@ export class UploadDragAreaComponent extends UploadBase implements NodePermissio
|
|||||||
let isAllowed: boolean = this.contentService.hasPermission(event.detail.data.obj.entry, PermissionsEnum.CREATE);
|
let isAllowed: boolean = this.contentService.hasPermission(event.detail.data.obj.entry, PermissionsEnum.CREATE);
|
||||||
if (isAllowed) {
|
if (isAllowed) {
|
||||||
let fileInfo: FileInfo[] = event.detail.files;
|
let fileInfo: FileInfo[] = event.detail.files;
|
||||||
|
if (this.isTargetNodeFolder(event)) {
|
||||||
|
const destinationFolderName = event.detail.data.obj.entry.name;
|
||||||
|
fileInfo.map((file) => file.relativeFolder = file.relativeFolder.concat(destinationFolderName));
|
||||||
|
}
|
||||||
if (fileInfo && fileInfo.length > 0) {
|
if (fileInfo && fileInfo.length > 0) {
|
||||||
this.uploadFilesInfo(fileInfo);
|
this.uploadFilesInfo(fileInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private isTargetNodeFolder(event: CustomEvent): boolean {
|
||||||
|
return event.detail.data.obj && event.detail.data.obj.entry.isFolder;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -456,16 +456,19 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.adf-upload__dragging {
|
.adf-upload__dragging {
|
||||||
& > td {
|
& > div {
|
||||||
border-top: $data-table-drag-border;
|
border-top: $data-table-drag-border !important;
|
||||||
border-bottom: $data-table-drag-border;
|
border-bottom: $data-table-drag-border !important;
|
||||||
|
border-color: $data-table-drag-border;
|
||||||
|
|
||||||
&:first-child {
|
&:first-child {
|
||||||
border-left: $data-table-drag-border;
|
border-left: $data-table-drag-border;
|
||||||
|
border-color: $data-table-drag-border;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
border-right: $data-table-drag-border;
|
border-right: $data-table-drag-border !important;
|
||||||
|
border-color: $data-table-drag-border;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user