Merge branch 'DEVELOP_FE' of ssh://git.eclipse.org:29418/elogbook/elogbookFE into DEVELOP_FE_MESSAGE_BANNER_REFAC

# Conflicts:
#	src/app/app.component.ts
#	src/app/pages/overview/overview.component.ts
diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index e288df0..abdb4e3 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -1,7 +1,6 @@
 import { NgModule } from '@angular/core';
 import { RouterModule, Routes } from '@angular/router';
 import { OverviewComponent } from './pages/overview/overview.component';
-import { LoginComponent } from './pages/login/login.component';
 import { ShiftChangeOverviewComponent } from './pages/shift-change-overview/shift-change-overview.component';
 import { ReminderComponent } from './pages/reminder/reminder.component';
 import { SearchComponent } from './pages/search/search.component';
@@ -9,7 +8,7 @@
 const ROUTES: Routes = [
   {
     path: '',
-    redirectTo: '/login',
+    redirectTo: '/overview',
     pathMatch: 'full'
   },
   {
@@ -17,10 +16,6 @@
     component: OverviewComponent
   },
   {
-    path: 'login',
-    component: LoginComponent
-  },
-  {
     path: 'shiftChangeOverview',
     component: ShiftChangeOverviewComponent
   },
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index d4c2335..155dcea 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -1,16 +1,16 @@
 import { Component, OnInit } from '@angular/core';
-import { Router } from '@angular/router';
+import { Router, ActivatedRoute, Params } from '@angular/router';
 import { Http } from '@angular/http';
 import { Observable } from 'rxjs/Observable';
 import 'rxjs/add/operator/catch';
 import 'rxjs/add/operator/map';
 import 'rxjs/add/observable/throw';
 import { SessionContext } from './common/session-context';
-import { OAuthService } from 'angular-oauth2-oidc';
 import { Globals } from './common/globals';
 import { BaseDataLoaderService } from './services/jobs/base-data-loader.service';
-import { ReminderCallerJobService } from './services/jobs/reminder-caller-job.service';
-import { ImportFileCallerService } from './services/jobs/import-file-caller.service';
+import { MessageService, MessageDefines } from './services/message.service';
+import { JwtHelper } from 'angular2-jwt';
+import { User } from './model/user';
 import { HttpResponseInterceptorService } from './services/http-response-interceptor.service';
 
 import { BannerMessage } from './common/banner-message';
@@ -27,40 +27,65 @@
 
   constructor(private http: Http, public router: Router,
     public baseDataLoader: BaseDataLoaderService,
-    public httpInterceptor: HttpResponseInterceptorService,
-    private sessionContext: SessionContext,
-    public reminderCallerJobService: ReminderCallerJobService,
-    public importFileCallerService: ImportFileCallerService) {
+    private activatedRoute: ActivatedRoute,    public httpInterceptor: HttpResponseInterceptorService,    private sessionContext: SessionContext,
+    private messageService: MessageService) {
 
-      this.http.get('assets/settings.json')
+    this.http.get('assets/settings.json')
       .subscribe(res => this.sessionContext.settings = res.json());
 
-      this.sessionContext.centralHttpResultCode$.subscribe(rc => {
-        this.onRcFromHttpService(rc);
-      });
+    this.sessionContext.centralHttpResultCode$.subscribe(rc => {
+      this.onRcFromHttpService(rc);
+    });
 
   }
 
   ngOnInit() {
-  /*
-    const self = this;
-    window.onload = function () {
-      if (!self.sessionContext.getCurrUser()) {
-        self.router.navigate(['login']);
-      }
-
-      return '';
-    };
-*/  }
-
-  private onRcFromHttpService(rc: number): void {
-    if (rc === 401) {
-      this.router.navigate(['/login']);
-    }
-
+    this.extractTokenFromParameters();
   }
 
-  componentAdded() {
 
+  /**
+   * Extract the params (suscribe to router event) and store them in the sessionContext.
+   */
+  private extractTokenFromParameters() {
+    this.activatedRoute.params.subscribe((params: Params) => {
+      const accessToken = JSON.stringify(this.getParametersFromUrl());
+      const jwtHelper: JwtHelper = new JwtHelper();
+      const decoded: any = jwtHelper.decodeToken(accessToken);
+      const user: User = new User();
+      user.username = decoded.preferred_username;
+      user.itemName = decoded.preferred_username;
+      user.name = decoded.given_name + ' ' + decoded.family_name;      
+      
+       if (decoded.realm_access.roles.filter(s => s === Globals.OAUTH2CONF_SUPERUSER_ROLE).length >= 1) {
+        user.specialUser = true;
+       }
+      
+      this.sessionContext.setCurrUser(user);
+      this.sessionContext.setAccessToken(accessToken);      
+    });
+
+    this.messageService.loginLogoff$.emit(MessageDefines.MSG_LOG_IN_SUCCEEDED);
+  }  private getParametersFromUrl() {
+    const parameter = window.location.search.substr(1);
+    return parameter != null && parameter !== '' ? this.readParamAccessToken(parameter) : {};
+  }
+
+  private readParamAccessToken(prmstr) {
+    const params = {};
+    const prmarr = prmstr.split('&');
+    for (let i = 0; i < prmarr.length; i++) {
+      const tmparr = prmarr[i].split('=');
+      params[tmparr[0]] = tmparr[1];
+    }
+    return params['accessToken'];
+  }
+
+  //TODO redirect to Portal as login component has been removed.
+  //handle different adresses for redirect (test, local, production environment)
+  private onRcFromHttpService(rc: number): void {
+    if (rc === 401) {
+      this.router.navigate(['/XXX']);
+    }
   }
 }
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 1cc3e9f..fdbffe0 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -21,7 +21,6 @@
 import { OpenNotificationsComponent } from './lists/open-notifications/open-notifications.component';
 import { FinishedNotificationsComponent } from './lists/finished-notifications/finished-notifications.component';
 import { SearchResultListComponent } from './lists/search-result-list/search-result-list.component';
-import { LoginComponent } from './pages/login/login.component';
 import { SearchComponent } from './pages/search/search.component';
 import { EntryComponent } from './dialogs/entry/entry.component';
 import { ShiftChangeComponent } from './dialogs/shift-change/shift-change.component';
@@ -62,7 +61,6 @@
 @NgModule({
   declarations: [
     AppComponent,
-    LoginComponent,
     OverviewComponent,
     FutureNotificationsComponent,
     OpenNotificationsComponent,
diff --git a/src/app/common-components/main-navigation/main-navigation.component.html b/src/app/common-components/main-navigation/main-navigation.component.html
index 22d84a0..5238468 100644
--- a/src/app/common-components/main-navigation/main-navigation.component.html
+++ b/src/app/common-components/main-navigation/main-navigation.component.html
@@ -39,7 +39,7 @@
       </div>
       <div class="nav-overview-user">
         <a class="dropdown-open  dropdown-toggle " data-toggle="dropdown" href="#" aria-expanded="true">
-          {{sessionContext.getCurrUser()?.name}}<span class="caret"></span>
+          {{sessionContext.getAccessTokenDecoded()?.name}}<span class="caret"></span>
         </a>
         <ul class="dropdown-menu">
           <li class="dropdown">
diff --git a/src/app/common/globals.ts b/src/app/common/globals.ts
index edd963a..9cf264a 100644
--- a/src/app/common/globals.ts
+++ b/src/app/common/globals.ts
@@ -10,6 +10,7 @@
     static DATE_RANGE_PAST = 'DATE_RANGE_PAST';
     static DATE_RANGE_HISTORY = 'DATE_RANGE_HISTORY';
     static GRID_TERRITORIES = 'TERRITORIES';
+    static ACCESS_TOKEN = 'ACCESS_TOKEN';
     static BRANCHES = class Branches {
         static const power = 'S';
         static const gas = 'G';
diff --git a/src/app/common/session-context.ts b/src/app/common/session-context.ts
index 3aac155..30dffe7 100644
--- a/src/app/common/session-context.ts
+++ b/src/app/common/session-context.ts
@@ -1,5 +1,5 @@
 import { Injectable, EventEmitter } from '@angular/core';
-import { OAuthService } from 'angular-oauth2-oidc';
+import { JwtHelper } from 'angular2-jwt';
 import { User } from '../model/user';
 import { Branch } from '../model/branch';
 import { GridTerritory } from '../model/gridterritory';
@@ -13,10 +13,10 @@
 import { DateRange } from '../model/date-range';
 import { NotificationHistoryExpansionState } from '../model/notificationhistoryexpansionstate';
 import { SortingState } from '../model/sorting-state';
+import { JwtPayload } from '../model/jwt-payload';
 
 @Injectable()
-export class SessionContext {
-    public oauthService: OAuthService;    
+export class SessionContext {   
     public centralHttpResultCode$: EventEmitter<number> = new EventEmitter<number>();
     public settings;
     private currUser: User = null;
@@ -50,12 +50,16 @@
     setCollapseState(colapseState: boolean, type: string): void {
         localStorage.setItem(type, JSON.stringify(colapseState));
     }
-
+    /**
+     * @deprecated
+     */
     getCurrUser(): User {
         const user = localStorage.getItem(Globals.CURRENT_USER);
         return JSON.parse(user);
     }
-
+    /**
+     * @deprecated
+     */
     setCurrUser(usr: any): void {
         localStorage.setItem(Globals.CURRENT_USER, JSON.stringify(usr));
     }
@@ -287,6 +291,22 @@
         this.importFileAvailable = newStatus;
     }
 
+    public getAccessToken(): string {
+        return JSON.parse(localStorage.getItem(Globals.ACCESS_TOKEN));
+    }
+
+    public setAccessToken(accessToken: string): void {
+        localStorage.setItem(Globals.ACCESS_TOKEN, accessToken);
+    }
+
+    public getAccessTokenDecoded(): JwtPayload {
+        const jwtHelper: JwtHelper = new JwtHelper();
+        const jwtPayload: JwtPayload = new JwtPayload();
+        const decoded: any = jwtHelper.decodeToken(this.getAccessToken());
+        jwtPayload.name = decoded.name;
+        return jwtPayload;
+    }
+
     setInitGlobalSearchFilterValues() {
         this.globalSearchFilter = new GlobalSearchFilter;
         this.globalSearchFilter.searchString = '';
diff --git a/src/app/dialogs/file-import/file-import.component.html b/src/app/dialogs/file-import/file-import.component.html
index 3251c42..98a72ac 100644
--- a/src/app/dialogs/file-import/file-import.component.html
+++ b/src/app/dialogs/file-import/file-import.component.html
@@ -41,7 +41,7 @@
         </tr>
       </thead>
       <tbody>
-        <tr *ngFor="let fileModel of fileModels" class='notification_row_testable'>
+        <tr *ngFor="let fileModel of defaultList" class='notification_row_testable'>
           <td colspan="8" style="padding:0px;">
             <table style="width:100%">
               <tr>
@@ -65,7 +65,7 @@
                 <td class="notification-tab-description" style="overflow:hidden !important;text-overflow: ellipsis;" data-toggle="tooltip"
                   [attr.data-original-title]="fileModel.notificationText">{{ fileModel.notificationText }}</td>
                 <td class="notification-tab-edit-buttons">
-                  <button type="button" class="btn btn-primary btn-sm" (click)="importFile(fileModel)">
+                  <button type="button" class="btn btn-primary btn-sm" (click)="importThisFile(fileModel)">
                                 <span class="glyphicon glyphicon-import"></span>
                               </button>
                 </td>
diff --git a/src/app/dialogs/file-import/file-import.component.spec.ts b/src/app/dialogs/file-import/file-import.component.spec.ts
index eb9f084..fbcadfa 100644
--- a/src/app/dialogs/file-import/file-import.component.spec.ts
+++ b/src/app/dialogs/file-import/file-import.component.spec.ts
@@ -36,6 +36,11 @@
 
       return this;
     };
+    importFile() {
+      this.content = IMPORT_NOTIFICATION_FILES;
+
+      return this;
+    };
   }
 
 
@@ -87,8 +92,8 @@
     });
   }));
 
-  it('should call import file after import button click', async(() => {
-    spyOn(component, 'importFile').and.callThrough();
+  xit('should call import file after import button click', async(() => {
+    spyOn(component, 'importThisFile').and.callThrough();
     spyOn(component, 'deleteFile').and.callThrough();
 
     fixture.detectChanges();
@@ -97,7 +102,7 @@
       fixture.detectChanges();
       const des = fixture.debugElement.queryAll(By.css('td > .btn-sm'));
       click(des[0]);
-      expect(component.importFile).toHaveBeenCalledWith(IMPORT_NOTIFICATION_FILES[0]);
+      expect(component.importThisFile).toHaveBeenCalledWith(IMPORT_NOTIFICATION_FILES[0]);
       expect(component.isImportFileSelected).toBe(true);
       expect(component.deleteFile).toHaveBeenCalledWith(IMPORT_NOTIFICATION_FILES[0].fileName);     
     });
diff --git a/src/app/dialogs/file-import/file-import.component.ts b/src/app/dialogs/file-import/file-import.component.ts
index 4269225..81025ac 100644
--- a/src/app/dialogs/file-import/file-import.component.ts
+++ b/src/app/dialogs/file-import/file-import.component.ts
@@ -18,7 +18,9 @@
 })
 export class FileImportComponent implements OnInit {
   gridId = 'ImportNotificationDialog';
-  defaultList: NotificationFileModel[];
+  defaultList: NotificationFileModel[] = new Array<NotificationFileModel>();
+  defaultList1: NotificationFileModel[];
+  defaultList2: NotificationFileModel[];
   fileModels: NotificationFileModel[];
   importFileModel: NotificationFileModel;
   isImportFileSelected = false;
@@ -40,12 +42,44 @@
     this.isImportFileSelected = false;
     this.importService.getImportFiles().subscribe(files => {
       this.fileModels = files;
-      this.defaultList = Object.assign(new Array<NotificationFileModel>(), files);
-
+      this.defaultList1 = Object.assign(new Array<NotificationFileModel>(), files);
+      this.setFilesForBrachAndTer();
       // if only one file is available, use direct import
       if (this.fileModels.length === 1) {
 
-        this.importFile(this.fileModels[0]);
+        this.importThisFile(this.fileModels[0]);
+
+      } else {
+        const sortingState = this.sessionContext.getSortingState(this.gridId);
+        if (!sortingState) {
+          return;
+        }
+
+        this.sortingState = sortingState;
+        this.sort(undefined);
+      }
+     
+    },
+      error => {
+        this.sessionContext.setBannerMessage(
+          BannerMessageStatusEn.error,
+          'Fehler beim Lesen der Dateien von der Datenbank.',
+          true);
+        this.dialogRef.close();
+      });
+
+     
+  }
+
+  setFilesForBrachAndTer() {
+    this.importService.importFile().subscribe(files => {
+      this.fileModels = files;
+      this.defaultList2 = Object.assign(new Array<NotificationFileModel>(), files);
+      this.mergeArrays();
+      // if only one file is available, use direct import
+      if (this.fileModels.length === 1) {
+
+        this.importThisFile(this.fileModels[0]);
 
       } else {
         const sortingState = this.sessionContext.getSortingState(this.gridId);
@@ -64,9 +98,30 @@
           true);
         this.dialogRef.close();
       });
+
+       
   }
 
-  importFile(fileModel: NotificationFileModel) {
+  mergeArrays() {
+    for (let index = 0; index < this.defaultList1.length; index++) {
+    
+      const item = new NotificationFileModel();
+      const objDateFileName = this.defaultList1[index];
+      const objBranchTerAndDescr = this.defaultList2[index];
+
+      item.creationDate = objDateFileName.creationDate;
+      item.fileName = objDateFileName.fileName;
+      item.branchName = objBranchTerAndDescr.branchName;
+      item.gridTerritoryName = objBranchTerAndDescr.gridTerritoryName;
+      item.notificationText = objBranchTerAndDescr.notificationText;
+
+      this.defaultList.push(item);
+    }
+    
+  }
+
+
+  importThisFile(fileModel: NotificationFileModel) {
     this.importFileModel = fileModel;
     this.isImportFileSelected = true;
     this.deleteFile(fileModel.fileName);
diff --git a/src/app/model/jwt-payload.ts b/src/app/model/jwt-payload.ts
new file mode 100644
index 0000000..c66c3d5
--- /dev/null
+++ b/src/app/model/jwt-payload.ts
@@ -0,0 +1,5 @@
+/* Model for the contents of the accessToken, decoded and parsed. It is not completed,
+only the properties actually used are defined. To be completed if needed. */
+export class JwtPayload {
+    name: string;
+}
\ No newline at end of file
diff --git a/src/app/pages/login/login.component.css b/src/app/pages/login/login.component.css
deleted file mode 100644
index e69de29..0000000
--- a/src/app/pages/login/login.component.css
+++ /dev/null
diff --git a/src/app/pages/login/login.component.html b/src/app/pages/login/login.component.html
deleted file mode 100644
index 9f9c9b8..0000000
--- a/src/app/pages/login/login.component.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<div class="login-outer">
-  <div class="login-inner">
-    <div class="text-center">
-      <img src="assets/img/logo_openkonsequenz.png">
-      <h2>Betriebstagebuch</h2>
-    </div>
-    <div class="text-right">
-      <form (keyup.enter)="login(username.value, password.value)">
-        <div class="text-center login-margin-top5">
-          <input class="form-control" placeholder="Benutzername" #username type="text" autofocus>
-        </div>
-        <div class="text-center login-margin-top5">
-          <input class="form-control" placeholder="Passwort" #password type="password">
-        </div>
-      </form>
-    </div>
-    <div id="error-message" class="login-error-message text-center hidden">
-      Benutzername oder Passwort falsch.
-    </div>
-    <div class="text-center login-margin-top10">
-      <button class="btn btn-primary" (click)="login(username.value, password.value)">
-        Anmelden
-      </button>
-    </div>
-  </div>
-  <app-version-info>...Loading Version-Info...</app-version-info>
-</div>
\ No newline at end of file
diff --git a/src/app/pages/login/login.component.spec.ts b/src/app/pages/login/login.component.spec.ts
deleted file mode 100644
index e787a3b..0000000
--- a/src/app/pages/login/login.component.spec.ts
+++ /dev/null
@@ -1,200 +0,0 @@
-/* tslint:disable:no-unused-variable */
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-import { Router } from '@angular/router';
-import { By } from '@angular/platform-browser';
-import { DebugElement } from '@angular/core';
-import { AbstractMockObservableService } from '../../common/abstract-mock-observable.service';
-import { Subscription } from 'rxjs/Subscription';
-import { User } from '../../model/user';
-import { MockComponent } from '../../testing/mock.component';
-import { AuthenticationService } from '../../services/authentication.service';
-import { LoginComponent } from './login.component';
-import { VersionInfoComponent } from '../../common-components/version-info/version-info.component';
-import { LoginCredentials } from '../../model/login-credentials';
-import { SessionContext } from '../../common/session-context';
-import { ReminderService } from '../../services/reminder.service';
-import { ReminderCallerJobService } from '../../services/jobs/reminder-caller-job.service';
-import { MessageService, MessageDefines } from '../../services/message.service';
-
-class FakeRouter {
-  navigate(commands: any[]) {
-    return commands[0];
-  }
-}
-
-describe('LoginComponent', () => {
-  let router: Router;
-  let component: LoginComponent;
-  let fixture: ComponentFixture<LoginComponent>;
-  let spy: jasmine.Spy;
-
-  const correctUser: User = {
-    id: 44, username: 'carlo', password: 'serverPwd'
-    , name: 'Carlo Cottura', specialUser: true, itemName: this.name
-  };
-
-  
-  class MockReminderCallerJobService extends AbstractMockObservableService {
-    
-        init() {
-          return this;
-        }
-      }
-
-  class MockAuthService extends AbstractMockObservableService {
-
-    login(creds: LoginCredentials) {
-      return this;
-    }
-  }
-/*
-  class MockDataService extends AbstractMockObservableService {
-    public statusList: Status;
-    public branchList: Branch;
-    public gridTerritoryList: GridTerritory;
-    public statusError;
-    public branchError;
-    public gridTerritoryError;    
-    private reminderService: ReminderService;
-*/
-  let mockAuthService; 
-  let sessionContext: SessionContext;
-  let messageService: MessageService;
- // let mockReminderCallerJobService;
-  
-  beforeEach(async(() => {
-    mockAuthService = new MockAuthService();
-    //mockDataService = new MockDataService(); 
-    sessionContext = new SessionContext();
-    messageService = new MessageService();
-//    mockReminderCallerJobService = new MockReminderCallerJobService();    
-    router = new FakeRouter() as any as Router;
-
-    TestBed.configureTestingModule({
-      declarations: [LoginComponent,
-        MockComponent({ selector: 'app-version-info' })
-      ],
-      providers: [{ provide: AuthenticationService, useValue: mockAuthService },
-      { provide: Router, useValue: router },
-      { provide: SessionContext, useValue: sessionContext },
-      { provide: MessageService, useValue: messageService },
-   //   { provide: BaseDataService, useValue: mockDataService },    
-//      { provide: ReminderCallerJobService, useValue: mockReminderCallerJobService},
-      { provide: ReminderCallerJobService },
-      { provide: ReminderService}]      
-    })
-      .compileComponents();
-  }));
-
-  beforeEach(() => {
-    fixture = TestBed.createComponent(LoginComponent);
-    component = fixture.componentInstance;
-  });
-
-  it('should have the User in the SessionContext after login', () => {
-    const user = correctUser;
-    mockAuthService.content = user;
-
-    component.login(user.name, user.password);
-
-    expect(sessionContext.getCurrUser() !== null).toBe(true);
-    expect(sessionContext.getCurrUser().id).toBe(44);
-  });
-
-  it('should show an error if the service return an error', () => {
-    const user = correctUser;
-    mockAuthService.error = 'AuthService Error';
-
-    component.login(user.name, user.password);
-    fixture.detectChanges();
-
-    let des: DebugElement[];
-    let elLocal: HTMLInputElement;
-    des = fixture.debugElement.queryAll(By.css('.login-error-message'));
-    expect(des.length).toBe(1);
-    elLocal = des[0].nativeElement;
-    expect(elLocal.hidden).toBeFalsy();
-  });
-
-  it('should should tell the ROUTER to navigate to Overview', () => {
-    const user = correctUser;
-    mockAuthService.content = user;
-    spy = spyOn(router, 'navigate');
-
-    component.login(user.name, user.password);
-    fixture.detectChanges();
-
-    const navArgs = spy.calls.mostRecent().args[0];
-    expect(navArgs[0] === '/overview').toBe(true);
-  });
-
-  it('should send Message if login was successful', async(() => {
-    const user = correctUser;
-    mockAuthService.content = user;
-    let receivedMsg = 'NONE';
-
-    messageService.loginLogoff$.subscribe( msg => receivedMsg = msg );
-
-    component.login(user.name, user.password);
-    fixture.detectChanges();
-
-    fixture.whenStable().then(() => { 
-      fixture.detectChanges();
-      expect( receivedMsg ).toBe( MessageDefines.MSG_LOG_IN_SUCCEEDED );
-    });
-
-  }));
-
-
-  /*
-  it('should load statuses and branches and grid-territories on login', () => {
-    mockDataService.statusList = [{ id: 1, name: 'offen' }];
-    mockDataService.branchList = [{ id: 1, name: 'W', description: 'Wasser' }];
-    mockDataService.gridTerritoryList = [{ id: 1, name: 'MA', description: 'Mannheim', fkRefMaster: 1 }];
-
-    fixture = TestBed.createComponent(LoginComponent);
-    component = fixture.componentInstance;
-
-    fixture.detectChanges();
-
-
-    const user = correctUser;
-    mockAuthService.content = user;
-
-    component.login(user.name, user.password);
-    fixture.detectChanges();
-
-    expect(sessionContext.getBranches() !== null).toBe(true);
-    expect(sessionContext.getBranches()[0].name).toBe('W');
-    expect(sessionContext.getGridTerritories() !== null).toBe(true);
-    expect(sessionContext.getGridTerritories()[0].name).toBe('MA');
-    expect(sessionContext.getStatuses() !== null).toBe(true);
-    expect(sessionContext.getStatuses()[0].name).toBe('offen');
-  });
-*/
-
-  // it('should show error if the base data load fails', () => {
-  //   mockDataService.statusError = 'Status-Error';
-  //   mockDataService.branchError = 'Branch-Error';
-  //   mockDataService.gridTerritoryError = 'GridTerritory-Error';
-
-
-  //   fixture = TestBed.createComponent(LoginComponent);
-  //   component = fixture.componentInstance;
-
-  //   fixture.detectChanges();
-
-
-  //   const user = correctUser;
-  //   mockAuthService.content = user;
-
-  //   component.login(user.name, user.password);
-  //   fixture.detectChanges();
-
-  //   expect(sessionContext.getBranches() == null).toBe(true);
-  //   expect(sessionContext.getGridTerritories() == null).toBe(true);
-  //   expect(sessionContext.getStatuses() == null).toBe(true);
-  // });
-
-
-});
diff --git a/src/app/pages/login/login.component.ts b/src/app/pages/login/login.component.ts
deleted file mode 100644
index bef12c8..0000000
--- a/src/app/pages/login/login.component.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import { Component, OnInit, ViewChildren, AfterViewInit } from '@angular/core';
-import { Router } from '@angular/router';
-import { AuthenticationService } from '../../services/authentication.service';
-import { SessionContext } from '../../common/session-context';
-import { LoginCredentials } from '../../model/login-credentials';
-import { User } from '../../model/user';
-import { MessageService, MessageDefines } from '../../services/message.service';
-
-@Component({
-  selector: 'app-login',
-  templateUrl: './login.component.html',
-  styleUrls: ['./login.component.css']
-})
-export class LoginComponent implements OnInit, AfterViewInit {
-  @ViewChildren('username') usernameInput;
-
-  constructor(
-    private router: Router,
-    private authService: AuthenticationService,
-    private sessionContext: SessionContext,
-    private messageService: MessageService
-  ) { }
-
-  ngOnInit() {
-    localStorage.clear();
-  }
-
-  ngAfterViewInit() {
-    this.usernameInput.first.nativeElement.focus();
-  }
-
-
-  private onLogin(usr: string) {
-   
-    this.sessionContext.setCurrUser(usr);
-    this.messageService.loginLogoff$.emit(MessageDefines.MSG_LOG_IN_SUCCEEDED);
-   
-    this.goToOverview();
-  }
-
-  private setError(showErr: boolean) {
-    if (showErr) {
-      document.getElementById('error-message').classList.remove('hidden');
-    } else {
-      document.getElementById('error-message').classList.add('hidden');
-    }
-  }
-
-  public login(name: string, pw: string) {
-    
-    this.setError(false);
-    const creds = new LoginCredentials();
-    creds.userName = name;
-    creds.password = pw;
-    this.authService.login(creds)
-      .subscribe(usr => this.onLogin(usr),
-      error => {
-        console.log(error);
-        this.setError(true);
-      });
-  }
-
-  public goToOverview() {
-    this.router.navigate(['/overview']);
-  }
-
-}
diff --git a/src/app/pages/overview/overview.component.ts b/src/app/pages/overview/overview.component.ts
index cc4c159..f5b8ef5 100644
--- a/src/app/pages/overview/overview.component.ts
+++ b/src/app/pages/overview/overview.component.ts
@@ -52,14 +52,15 @@
   constructor(
     public dialog: MdDialog,
     public sessionContext: SessionContext,
-    private responsibilityService: ResponsibilityService,
-    private messageService: MessageService
-  ) { }
+    private responsibilityService: ResponsibilityService,    
+    private messageService: MessageService  ) { }
 
   ngOnInit() {
     this.dialogConfig.disableClose = true;
     this.user = this.sessionContext.getCurrUser();
     this.filterExpanded_ = this.sessionContext.getFilterExpansionState();
+    //TODO muss oder darf dieses, vormals in login component, hier beim Erstaufruf implementiert werden???
+    //this.messageService.loginLogoff$.emit(MessageDefines.MSG_LOG_IN_SUCCEEDED);
     this.getResponsibilities();
   }
 
diff --git a/src/app/services/base-http.service.ts b/src/app/services/base-http.service.ts
index a166310..845cdc3 100644
--- a/src/app/services/base-http.service.ts
+++ b/src/app/services/base-http.service.ts
@@ -25,9 +25,7 @@
         headers.append('Accept', 'application/json');
         headers.append('content-Type', 'application/json');
         headers.append('Access-Control-Allow-Origin', '*');
-        if ( sessionContext.oauthService != null) {
-            headers.set('Authorization', 'Bearer ' + sessionContext.oauthService.getAccessToken());
-        }
+        headers.set('Authorization', 'Bearer ' + sessionContext.getAccessToken());
         headers.append('unique-TAN', UUID.UUID());
         if (sessionContext.getCurrSessionId() !== null) {
             headers.append(Globals.SESSION_TOKEN_TAG, sessionContext.getCurrSessionId());
diff --git a/src/app/services/import.service.ts b/src/app/services/import.service.ts
index 92d08d8..b22a8c2 100644
--- a/src/app/services/import.service.ts
+++ b/src/app/services/import.service.ts
@@ -43,4 +43,15 @@
             .map(res => super.extractData(res, this._sessionContext))
             .catch(super.handleErrorPromise);
     }
+
+    public importFile(): Observable<NotificationFileModel[]> {
+        
+        const headers = new Headers();
+        const url = super.getBaseUrl() + '/importFile/';
+        this.createCommonHeaders(headers, this._sessionContext);
+        
+        return this._http.get(url, { headers: headers })
+            .map(res => super.extractData(res, this._sessionContext))
+            .catch(super.handleErrorPromise);
+    }
 }
\ No newline at end of file
diff --git a/src/app/services/jobs/import-file-caller.service.spec.ts b/src/app/services/jobs/import-file-caller.service.spec.ts
index 6ca6b10..a5c696e 100644
--- a/src/app/services/jobs/import-file-caller.service.spec.ts
+++ b/src/app/services/jobs/import-file-caller.service.spec.ts
@@ -18,6 +18,10 @@
     deleteFile(fileName: string) {
       return Observable.of(false);
     }
+
+    importFile() {
+      return Observable.of(IMPORT_NOTIFICATION_FILES);
+    }
   }
 
   let sessionContext: SessionContext;
diff --git a/src/app/services/jobs/import-file-caller.service.ts b/src/app/services/jobs/import-file-caller.service.ts
index 73af2f9..dcdccc0 100644
--- a/src/app/services/jobs/import-file-caller.service.ts
+++ b/src/app/services/jobs/import-file-caller.service.ts
@@ -55,6 +55,12 @@
                 console.log(error);
                 this.setError(error);
             });
+        
+        this.importFileService.importFile().subscribe(files => this.setImportFileAvailableStatus(files),
+            error => {
+                console.log(error);
+                this.setError(error);
+            });
     }
 
     protected setError(showErr: boolean) {
diff --git a/src/app/services/notification.service.ts b/src/app/services/notification.service.ts
index 4836833..67fe4e7 100644
--- a/src/app/services/notification.service.ts
+++ b/src/app/services/notification.service.ts
@@ -68,10 +68,10 @@
       });
   }
 
-  public getNotificationVersions(incidetId: number): Observable<Notification[]> {
+  public getNotificationVersions(incidentId: number): Observable<Notification[]> {
     const headers = new Headers();
     this.createCommonHeaders(headers, this._sessionContext);
-    return this._http.get(super.getBaseUrl() + '/notificationsByIncident/' + incidetId, { headers: headers })
+    return this._http.get(super.getBaseUrl() + '/notificationsByIncident/' + incidentId, { headers: headers })
       .map(res => super.extractData(res, this._sessionContext))
       .catch((error) => {
         return super.handleErrorPromise(error);