From c3ad7733d9334c4acc10fa5a8814a52ad0078e4d Mon Sep 17 00:00:00 2001
From: Alex ORLUC <alex.orluc@maarch.org>
Date: Thu, 3 Jan 2019 10:18:20 +0100
Subject: [PATCH] clean and fix handleErrors

---
 src/frontend/app/notification.service.ts | 38 +++++++++++++-----------
 src/frontend/lang/lang-en.ts             |  2 ++
 src/frontend/lang/lang-fr.ts             |  4 ++-
 src/frontend/lang/lang-nl.ts             |  2 ++
 4 files changed, 27 insertions(+), 19 deletions(-)

diff --git a/src/frontend/app/notification.service.ts b/src/frontend/app/notification.service.ts
index e806d29f7f8..b0dd34bb63d 100755
--- a/src/frontend/app/notification.service.ts
+++ b/src/frontend/app/notification.service.ts
@@ -1,8 +1,8 @@
-import {MatSnackBar} from '@angular/material';
-import {Injectable,Component,Inject} from '@angular/core';
-import {MAT_SNACK_BAR_DATA} from '@angular/material';
+import { MatSnackBar } from '@angular/material';
+import { Injectable, Component, Inject } from '@angular/core';
+import { MAT_SNACK_BAR_DATA } from '@angular/material';
 import { Router } from '@angular/router';
-
+import { LANG } from './translate.component';
 @Component({
     selector: 'custom-snackbar',
     template: '<mat-grid-list cols="4" rowHeight="1:1"><mat-grid-tile colspan="1"><mat-icon class="fa fa-{{data.icon}} fa-2x"></mat-icon></mat-grid-tile><mat-grid-tile colspan="3">{{data.message}}</mat-grid-tile></mat-grid-list>' // You may also use a HTML file
@@ -13,34 +13,36 @@ export class CustomSnackbarComponent {
 
 @Injectable()
 export class NotificationService {
+    lang: any = LANG;
+
     constructor(private router: Router, public snackBar: MatSnackBar) {
     }
-    success(message:string) {
-        this.snackBar.openFromComponent(CustomSnackbarComponent,{
+    success(message: string) {
+        this.snackBar.openFromComponent(CustomSnackbarComponent, {
             duration: 2000,
-            data: {message: message,icon : 'info-circle'}
-          });
+            data: { message: message, icon: 'info-circle' }
+        });
     }
-         
-    error(message:string) {
-        this.snackBar.openFromComponent(CustomSnackbarComponent,{
+
+    error(message: string) {
+        this.snackBar.openFromComponent(CustomSnackbarComponent, {
             duration: 2000,
-            data: {message: message,icon : 'exclamation-triangle'}
-          });
+            data: { message: message, icon: 'exclamation-triangle' }
+        });
     }
 
     handleErrors(err: any) {
         console.log(err);
-        if (err.status === 401 && this.router.url !== '/login') {
-            this.router.navigate(['/login']);
-            this.error('Veuillez vous reconnecter');
+        if (err.status === 401 && this.router.url !== '/home') {
+            this.router.navigate(['/home']);
+            this.error(this.lang.mustReconnect);
         } else if (err.status === 0 && err.statusText === 'Unknown Error') {
-            this.error('La connexion au serveur a échoué. Veuillez réessayer ultérieurement.');
+            this.error(this.lang.connectionFailed);
         } else {
             if (err.error.errors !== undefined) {
                 this.error(err.error.errors);
                 if (err.status === 403 || err.status === 404) {
-                    this.router.navigate(['/documents']);
+                    this.router.navigate(['/home']);
                 }
             } else if (err.error.exception !== undefined) {
                 this.error(err.error.exception[0].message);
diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts
index 821ff3af455..978461eb7a6 100755
--- a/src/frontend/lang/lang-en.ts
+++ b/src/frontend/lang/lang-en.ts
@@ -723,4 +723,6 @@ export const LANG_EN = {
     "internalParam"                                     : "Internal configuration",
     "enableAuth"                                        : "Activate authentication",
     "checkSendmail"                                     : "Check mail server status",
+    "mustReconnect"                                     : "Please reconnect",
+    "connectionFailed"                                  : "Connection to server failed, please try later.",
 };
diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts
index c74aa4579e8..efb97963242 100755
--- a/src/frontend/lang/lang-fr.ts
+++ b/src/frontend/lang/lang-fr.ts
@@ -749,6 +749,8 @@ export const LANG_FR = {
     "smtpRelayDesc"                                     : "Utilisation d'un relai smtp du serveur (ssmtp par exemple), configuration externe à l'application",
     "internalParam"                                     : "Configuration interne",
     "internalParamDesc"                                 : "Utilisateur du module interne phpmailer de l'application",
-    "enableAuth"                                       : "Activer l'authentification",
+    "enableAuth"                                        : "Activer l'authentification",
     "checkSendmail"                                     : "Vérifier l'état du serveur",
+    "mustReconnect"                                     : "Veuillez vous reconnecter",
+    "connectionFailed"                                  : "La connexion au serveur a échoué. Veuillez réessayer ultérieurement.",
 };
diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts
index 4397891e96f..1192db44361 100755
--- a/src/frontend/lang/lang-nl.ts
+++ b/src/frontend/lang/lang-nl.ts
@@ -752,4 +752,6 @@ export const LANG_NL = {
     "internalParam" : "_TO_TRANSLATE",
     "enableAuth" : "_TO_TRANSLATE",
     "checkSendmail" : "_TO_TRANSLATE",
+    "mustReconnect" : "_TO_TRANSLATE",
+    "connectionFailed" : "_TO_TRANSLATE",
 };
-- 
GitLab