From d5763f585db701ee0f7b9ee7dfbd7c53341f8f0a Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Sat, 14 Jul 2018 13:46:40 +0300 Subject: [PATCH] [ACA-1571] File library - navigate into library after create process (#510) * notify library ID conflict * navigate into library node --- src/app/common/services/content-management.service.ts | 7 ++++--- src/app/components/libraries/libraries.component.ts | 4 +++- src/app/dialogs/library/library.dialog.ts | 11 ++++++----- src/app/services/content-api.service.ts | 4 +++- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/app/common/services/content-management.service.ts b/src/app/common/services/content-management.service.ts index ecba58427..8dab2870f 100644 --- a/src/app/common/services/content-management.service.ts +++ b/src/app/common/services/content-management.service.ts @@ -34,7 +34,8 @@ import { AppStore } from '../../store/states'; import { MinimalNodeEntity, MinimalNodeEntryEntity, - Node + Node, + SiteEntry } from 'alfresco-js-api'; import { NodePermissionService } from './node-permission.service'; @@ -47,7 +48,7 @@ export class ContentManagementService { folderEdited = new Subject(); folderCreated = new Subject(); libraryDeleted = new Subject(); - libraryCreated = new Subject(); + libraryCreated = new Subject(); linksUnshared = new Subject(); constructor( @@ -109,7 +110,7 @@ export class ContentManagementService { this.store.dispatch(new SnackbarErrorAction(message)); }); - dialogInstance.afterClosed().subscribe(node => { + dialogInstance.afterClosed().subscribe((node: SiteEntry) => { if (node) { this.libraryCreated.next(node); } diff --git a/src/app/components/libraries/libraries.component.ts b/src/app/components/libraries/libraries.component.ts index 7982bb47f..0aec56010 100644 --- a/src/app/components/libraries/libraries.component.ts +++ b/src/app/components/libraries/libraries.component.ts @@ -55,7 +55,9 @@ export class LibrariesComponent extends PageComponent implements OnInit { this.subscriptions.push( this.content.libraryDeleted.subscribe(() => this.reload()), - this.content.libraryCreated.subscribe(() => this.reload()) + this.content.libraryCreated.subscribe((node: SiteEntry) => { + this.navigate(node.entry.guid); + }) ); } diff --git a/src/app/dialogs/library/library.dialog.ts b/src/app/dialogs/library/library.dialog.ts index 3fb071319..eea51282e 100644 --- a/src/app/dialogs/library/library.dialog.ts +++ b/src/app/dialogs/library/library.dialog.ts @@ -19,7 +19,7 @@ import { Observable } from 'rxjs/Observable'; import { Component, OnInit, Output, EventEmitter } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { MatDialogRef } from '@angular/material'; -import { SiteBody } from 'alfresco-js-api'; +import { SiteBody, SiteEntry } from 'alfresco-js-api'; import { ContentApiService } from '../../services/content-api.service'; import { SiteIdValidator, forbidSpecialCharacters } from './form.validators'; @@ -108,9 +108,10 @@ export class LibraryDialogComponent implements OnInit { if (!form.valid) { return; } this.create().subscribe( - (folder: any) => { - this.success.emit(folder); - dialog.close(folder); + (node: SiteEntry) => { + + this.success.emit(node); + dialog.close(node); }, (error) => this.handleError(error) ); @@ -120,7 +121,7 @@ export class LibraryDialogComponent implements OnInit { this.visibilityOption = event.value; } - private create(): Observable { + private create(): Observable { const { contentApi, title, id, description, visibility } = this; const siteBody = { id, diff --git a/src/app/services/content-api.service.ts b/src/app/services/content-api.service.ts index 992997678..a86451815 100644 --- a/src/app/services/content-api.service.ts +++ b/src/app/services/content-api.service.ts @@ -229,7 +229,9 @@ export class ContentApiService { ); } - createSite(siteBody: SiteBody, opts?: {skipConfiguration?: boolean, skipAddToFavorites?: boolean}): Observable { + createSite( + siteBody: SiteBody, + opts?: {fields?: Array, skipConfiguration?: boolean, skipAddToFavorites?: boolean}): Observable { return Observable.fromPromise( this.api.sitesApi.createSite(siteBody, opts) );