mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF-325] added attach folder widget (#2831)
[ADF-325] added new attach folder widget
This commit is contained in:
@@ -106,7 +106,7 @@ describe('ContentNodeDialogService', () => {
|
||||
expect(materialDialog.open).toHaveBeenCalled();
|
||||
}));
|
||||
|
||||
it('should be able to open the dialog using the first user site', fakeAsync(() => {
|
||||
it('should be able to open the dialog for files using the first user site', fakeAsync(() => {
|
||||
spyOn(sitesService, 'getSites').and.returnValue(Observable.of(fakeSiteList));
|
||||
spyOn(documentListService, 'getFolderNode').and.returnValue(Promise.resolve(fakeNode));
|
||||
service.openFileBrowseDialogBySite().subscribe();
|
||||
@@ -114,6 +114,14 @@ describe('ContentNodeDialogService', () => {
|
||||
expect(materialDialog.open).toHaveBeenCalled();
|
||||
}));
|
||||
|
||||
it('should be able to open the dialog for folder using the first user site', fakeAsync(() => {
|
||||
spyOn(sitesService, 'getSites').and.returnValue(Observable.of(fakeSiteList));
|
||||
spyOn(documentListService, 'getFolderNode').and.returnValue(Promise.resolve(fakeNode));
|
||||
service.openFolderBrowseDialogBySite().subscribe();
|
||||
tick();
|
||||
expect(materialDialog.open).toHaveBeenCalled();
|
||||
}));
|
||||
|
||||
it('should be able to close the material dialog', () => {
|
||||
service.close();
|
||||
expect(materialDialog.closeAll).toHaveBeenCalled();
|
||||
|
@@ -48,6 +48,19 @@ export class ContentNodeDialogService {
|
||||
});
|
||||
}
|
||||
|
||||
openFolderBrowseDialogBySite(): Observable<MinimalNodeEntryEntity[]> {
|
||||
return this.siteService.getSites().switchMap((response: SitePaging) => {
|
||||
return this.openFolderBrowseDialogByFolderId(response.list.entries[0].entry.guid);
|
||||
});
|
||||
}
|
||||
|
||||
openFolderBrowseDialogByFolderId(folderNodeId: string): Observable<MinimalNodeEntryEntity[]> {
|
||||
return Observable.fromPromise(this.documentListService.getFolderNode(folderNodeId))
|
||||
.switchMap((node: MinimalNodeEntryEntity) => {
|
||||
return this.openUploadFolderDialog('Choose', node);
|
||||
});
|
||||
}
|
||||
|
||||
openCopyMoveDialog(action: string, contentEntry: MinimalNodeEntryEntity, permission?: string): Observable<MinimalNodeEntryEntity[]> {
|
||||
if (this.contentService.hasPermission(contentEntry, permission)) {
|
||||
|
||||
@@ -74,6 +87,26 @@ export class ContentNodeDialogService {
|
||||
}
|
||||
}
|
||||
|
||||
openUploadFolderDialog(action: string, contentEntry: MinimalNodeEntryEntity): Observable<MinimalNodeEntryEntity[]> {
|
||||
const select = new Subject<MinimalNodeEntryEntity[]>();
|
||||
select.subscribe({
|
||||
complete: this.close.bind(this)
|
||||
});
|
||||
|
||||
const data: ContentNodeSelectorComponentData = {
|
||||
title: `${action} '${contentEntry.name}' to ...`,
|
||||
actionName: action,
|
||||
currentFolderId: contentEntry.id,
|
||||
imageResolver: this.imageResolver.bind(this),
|
||||
isSelectionValid: this.hasPermissionOnNodeFolder.bind(this),
|
||||
rowFilter : this.rowFilter.bind(this, contentEntry.id),
|
||||
select: select
|
||||
};
|
||||
|
||||
this.openContentNodeDialog(data, 'adf-content-node-selector-dialog', '630px');
|
||||
return select;
|
||||
}
|
||||
|
||||
openUploadFileDialog(action: string, contentEntry: MinimalNodeEntryEntity): Observable<MinimalNodeEntryEntity[]> {
|
||||
const select = new Subject<MinimalNodeEntryEntity[]>();
|
||||
select.subscribe({
|
||||
@@ -120,6 +153,14 @@ export class ContentNodeDialogService {
|
||||
return entry.isFile;
|
||||
}
|
||||
|
||||
private hasPermissionOnNodeFolder(entry: MinimalNodeEntryEntity): boolean {
|
||||
return this.isNodeFolder(entry) && this.contentService.hasPermission(entry, 'create');
|
||||
}
|
||||
|
||||
private isNodeFolder(entry: MinimalNodeEntryEntity): boolean {
|
||||
return entry.isFolder;
|
||||
}
|
||||
|
||||
private hasEntityCreatePermission(entry: MinimalNodeEntryEntity): boolean {
|
||||
return this.contentService.hasPermission(entry, 'create');
|
||||
}
|
||||
|
Reference in New Issue
Block a user