From 715609f71af344af7430006c438d73b20374f3fa Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Wed, 22 May 2019 08:45:57 +0100 Subject: [PATCH] [ACA-2286] handle metadata errors (#1115) * [ACA-2286] handle errors in metadata * [ACA-2377] use ADF i18n support for info drawer * update lint settings * update plint settings --- .github/plint.yml | 3 ++ .../info-drawer/info-drawer.component.html | 4 +-- .../metadata-tab/metadata-tab.component.ts | 35 ++++++++++++++++--- 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/.github/plint.yml b/.github/plint.yml index 27172f700..15cb0cb6f 100644 --- a/.github/plint.yml +++ b/.github/plint.yml @@ -3,11 +3,14 @@ modules: - pr.spellcheck prettier: + options: + singleQuote: true exclude: - '*.json' spellcheck: dictionaries: + - softwareTerms - html - en-gb - en_US diff --git a/src/app/components/info-drawer/info-drawer.component.html b/src/app/components/info-drawer/info-drawer.component.html index 14230ca9d..8cf1471d7 100644 --- a/src/app/components/info-drawer/info-drawer.component.html +++ b/src/app/components/info-drawer/info-drawer.component.html @@ -2,11 +2,11 @@ - + . */ -import { Component, Input, ViewEncapsulation } from '@angular/core'; +import { + Component, + Input, + ViewEncapsulation, + OnInit, + OnDestroy +} from '@angular/core'; import { MinimalNodeEntryEntity } from '@alfresco/js-api'; import { NodePermissionService } from '@alfresco/aca-shared'; import { AppStore, infoDrawerMetadataAspect } from '@alfresco/aca-shared/store'; import { AppExtensionService } from '../../../extensions/extension.service'; -import { AppConfigService } from '@alfresco/adf-core'; +import { AppConfigService, NotificationService } from '@alfresco/adf-core'; import { isLocked } from '../../../utils/node.utils'; -import { Observable } from 'rxjs'; +import { Observable, Subject } from 'rxjs'; import { Store } from '@ngrx/store'; +import { ContentMetadataService } from '@alfresco/adf-content-services'; +import { takeUntil } from 'rxjs/operators'; @Component({ selector: 'app-metadata-tab', @@ -47,7 +55,9 @@ import { Store } from '@ngrx/store'; encapsulation: ViewEncapsulation.None, host: { class: 'app-metadata-tab' } }) -export class MetadataTabComponent { +export class MetadataTabComponent implements OnInit, OnDestroy { + protected onDestroy$ = new Subject(); + @Input() node: MinimalNodeEntryEntity; @@ -57,7 +67,9 @@ export class MetadataTabComponent { private permission: NodePermissionService, protected extensions: AppExtensionService, private appConfig: AppConfigService, - private store: Store + private store: Store, + private notificationService: NotificationService, + private contentMetadataService: ContentMetadataService ) { if (this.extensions.contentMetadata) { this.appConfig.config[ @@ -74,4 +86,17 @@ export class MetadataTabComponent { return false; } + + ngOnInit() { + this.contentMetadataService.error + .pipe(takeUntil(this.onDestroy$)) + .subscribe((err: { message: string }) => { + this.notificationService.showError(err.message); + }); + } + + ngOnDestroy() { + this.onDestroy$.next(true); + this.onDestroy$.complete(); + } }