Fix Bug 2340: Invalid error message in UI for some role permission
[osm/NG-UI.git] / src / app / vim-accounts / info-vim / InfoVimComponent.ts
index b89a1b9..02aea69 100644 (file)
@@ -22,6 +22,8 @@ import { isNullOrUndefined } from 'util';
 import { Component, Injector, OnInit } from '@angular/core';
 import { ActivatedRoute, Router } from '@angular/router';
 import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
+import { TranslateService } from '@ngx-translate/core';
+import { NotifierService } from 'angular-notifier';
 import { ERRORDATA } from 'CommonModel';
 import { DataService } from 'DataService';
 import { environment } from 'environment';
@@ -82,12 +84,20 @@ export class InfoVimComponent implements OnInit {
   /** Utilizes modal service for any modal operations @private */
   private modalService: NgbModal;
 
+  /** Handle translate @public */
+  private translateService: TranslateService;
+
+  /** Notifier service to popup notification @private */
+  private notifierService: NotifierService;
+
   constructor(injector: Injector) {
     this.injector = injector;
     this.restService = this.injector.get(RestService);
     this.dataService = this.injector.get(DataService);
     this.activatedRoute = this.injector.get(ActivatedRoute);
     this.modalService = this.injector.get(NgbModal);
+    this.translateService = this.injector.get(TranslateService);
+    this.notifierService = this.injector.get(NotifierService);
     this.router = this.injector.get(Router);
   }
 
@@ -141,10 +151,15 @@ export class InfoVimComponent implements OnInit {
         this.isLoadingResults = false;
       }, (error: ERRORDATA) => {
         this.isLoadingResults = false;
-        if (error.error.status === HttpStatus.NOT_FOUND || error.error.status === HttpStatus.UNAUTHORIZED) {
+        if (error.error.status === HttpStatus.NOT_FOUND) {
           this.router.navigateByUrl('404', { skipLocationChange: true }).catch((): void => {
             // Catch Navigation Error
           });
+        } else if (error.error.status === HttpStatus.UNAUTHORIZED) {
+          this.notifierService.notify('error', this.translateService.instant('HTTPERROR.401'));
+          this.router.navigate(['/vim/details']).catch((): void => {
+            // Catch Navigation Error
+          });
         } else {
           this.restService.handleError(error, 'get');
         }