GNM-132
Merge branch 'DEVELOP_FE' of ssh://git.eclipse.org:29418/elogbook/portalFE into DEVELOP_FE

# Conflicts:
#	src/app/pages/module-grid/module-grid.component.spec.ts
diff --git a/src/app/pages/module-grid/module-grid.component.spec.ts b/src/app/pages/module-grid/module-grid.component.spec.ts
index c8ca31b..9c2bd9c 100644
--- a/src/app/pages/module-grid/module-grid.component.spec.ts
+++ b/src/app/pages/module-grid/module-grid.component.spec.ts
@@ -24,8 +24,7 @@
 import { UserModule } from '../../model/user-module';
 import { UserModuleService } from '../../services/user-module.service';
 import { ModuleGridComponent } from './module-grid.component';
-import { USER_MODULES } from '../../testing/user-module';
-import { ONE_USER_MODULE } from '../../testing/user-module';
+import { USER_MODULES, ONE_USER_MODULE, PGM_MODULE } from '../../testing/user-module';
 import { AuthenticationService } from '../../services/authentication.service';
 import { AbstractMockObservableService } from '../../common/abstract-mock-observable.service';
 
@@ -152,10 +151,19 @@
     component.userModules = [];
 
     component.setModulesForRole(USER_MODULES);
-
     expect(component.moduleRights).toBeFalsy();
 
   }));
 
+  it('should create elogbookLink token string', async(() => {
+
+    /* tslint:disable:max-line-length */
+    sessionContext.setAccessToken('eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJodVl0eVByUEVLQ1phY3FfMW5sOGZscENETnFHdmZEZHctYUxGQXNoWHZVIn0.eyJqdGkiOiJhNTkzMWYzMS1lYjgzLTQ1Y2YtYWIwMy1kY2E2ODc5Y2M2YjgiLCJleHAiOjE1MjM5NTk5MTcsIm5iZiI6MCwiaWF0IjoxNTIzOTU5NjE3LCJpc3MiOiJodHRwOi8vZW50amF2YTAwMjo4MDgwL2F1dGgvcmVhbG1zL2Vsb2dib29rIiwiYXVkIjoiZWxvZ2Jvb2stYmFja2VuZCIsInN1YiI6ImMyZTlkN2FlLTJiZmEtNDU3OC1iMDllLWY1ZGM1ZjA5YTg3OSIsInR5cCI6IkJlYXJlciIsImF6cCI6ImVsb2dib29rLWJhY2tlbmQiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiIzZTM1ODg0OC0wNDY0LTQ2YjMtYmNlNC0wNDgyZDZkNWViY2QiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbIioiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbImVsb2dib29rLWFjY2VzcyIsImVsb2dib29rLW5vcm1hbHVzZXIiLCJwbGFubmVkLXBvbGljaWVzLWFjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIiwicGxhbm5lZC1wb2xpY2llcy1ub3JtYWx1c2VyIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwicm9sZXMiOiJbcGxhbm5lZC1wb2xpY2llcy1ub3JtYWx1c2VyLCBwbGFubmVkLXBvbGljaWVzLWFjY2Vzcywgb2ZmbGluZV9hY2Nlc3MsIHVtYV9hdXRob3JpemF0aW9uLCBlbG9nYm9vay1hY2Nlc3MsIGVsb2dib29rLW5vcm1hbHVzZXJdIiwibmFtZSI6Ik90dG8gTm9ybWFsdmVyYnJhdWNoZXIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJvdHRvIiwiZ2l2ZW5fbmFtZSI6Ik90dG8iLCJmYW1pbHlfbmFtZSI6Ik5vcm1hbHZlcmJyYXVjaGVyIn0.rKZdROPPD6xkSoNU9oY2vWYvTQnPKbHFh25o3PdOFEkEk1jmagEZCayKg2NH7TwVqJRZQfkyBy0PCfj9ReaQFfrKweTQZHUEi5bJuvzL4dR-TdDa_yGafCgnDvdM6vgshAdlvb5_8rPz5IEYfeszsC3RoLFBR13hRzu88MIFT2LJBaLLS4A386SznoN8T0wcC6q7uzfJRL-QAQoUkqjvSK1HM4yN4wzjj9IC-1MIye1uqcMfvd3qDHlzWlLM1vO9adcd5GZ8aaYg87a7m-vznJd1VtvaQ-l8TqYXa59z0Wgoyzr1UC3r_-1UlP9W6K0abiYTRDxvfIsvfdim4HozaA');
+
+    component.goToElogbookIfValid(PGM_MODULE);
+    expect(component.goToElogbookIfValid(PGM_MODULE)).toHaveBeenCalled;
+
+  }));
+
 
 });
diff --git a/src/app/pages/module-grid/module-grid.component.ts b/src/app/pages/module-grid/module-grid.component.ts
index 80edcd1..9fc325b 100644
--- a/src/app/pages/module-grid/module-grid.component.ts
+++ b/src/app/pages/module-grid/module-grid.component.ts
@@ -38,9 +38,9 @@
     this.getUserModules();
   }
 
-  private goToElogbookIfValid(userModule: UserModule): void {
+  goToElogbookIfValid(userModule: UserModule): void {
     const elogbookLink = userModule.link + '?accessToken=' + this.sessionContext.getAccessToken();
-    
+
     this.authService.checkAuth().subscribe(res => {
       window.open(elogbookLink, '_blank');
     },
diff --git a/src/app/testing/user-module.ts b/src/app/testing/user-module.ts
index cf98739..b6b7f01 100644
--- a/src/app/testing/user-module.ts
+++ b/src/app/testing/user-module.ts
@@ -21,10 +21,10 @@
         cols: 1,
         rows: 1,
         color: '#ffffff',
-        link: '/elogbookFE', 
+        link: '/elogbookFE',
         pictureLink: 'https://www.openkonsequenz.de/medien/cache/main_image/m_logbuch_2443636.jpg',
         requiredRole: 'elogbook_access'
-    },     
+    },
     {
         name: 'Bereitschaftsplanung',
         cols: 1,
@@ -33,7 +33,7 @@
         link: 'https://www.openkonsequenz.de/anwender/11-geplante-projekte/94-bereitschaftsplan',
         pictureLink: 'https://www.openkonsequenz.de/medien/cache/main_image/l_bereitschaftsplan_57882047.jpg',
         requiredRole: 'planning_access'
-    },    
+    },
     {
         name: 'Einspeisemanagement',
         cols: 1,
@@ -51,7 +51,7 @@
         link: 'https://www.openkonsequenz.de/anwender/11-geplante-projekte/64-geplante-netzmassnahme',
         // tslint:disable-next-line:max-line-length
         pictureLink: 'https://www.openkonsequenz.de//components/com_flexicontent/librairies/phpthumb/phpThumb.php?src=/medien/cache/main_image/l_ok_module5.jpg',
-        requiredRole: 'planned_policies_access'        
+        requiredRole: 'planned_policies_access'
     }
 ];
 
@@ -65,4 +65,17 @@
         pictureLink: 'https://www.openkonsequenz.de/medien/cache/main_image/m_logbuch_2443636.jpg',
         requiredRole: 'elogbook_access'
     }
-];
\ No newline at end of file
+];
+
+export const PGM_MODULE: UserModule =
+    {
+        name: 'Geplante Maßnahmen',
+        cols: 1,
+        rows: 1,
+        color: '#ffffff',
+        link: 'http://localhost:4220',
+        // tslint:disable-next-line:max-line-length
+        pictureLink: 'https://www.openkonsequenz.de//components/com_flexicontent/librairies/phpthumb/phpThumb.php?src=/medien/cache/main_image/l_ok_module5.jpg',
+        requiredRole: 'planned_policies_access'
+    }
+    ;
\ No newline at end of file