[ADF-325] added attach folder widget (#2831)

[ADF-325] added new attach folder widget
This commit is contained in:
Vito
2018-01-16 15:28:39 +01:00
committed by Eugenio Romano
parent 3671c12f35
commit 66262c4822
12 changed files with 393 additions and 12 deletions

View File

@@ -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');
}