Merge branch 'DEVELOP_FE' of ssh://git.eclipse.org:29418/elogbook/elogbookFE into DEVELOP_FE
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index f6094ed..01aff89 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -3,6 +3,7 @@
 import { BaseDataLoaderService } from './services/jobs/base-data-loader.service';
 import { ReminderCallerJobService } from './services/jobs/reminder-caller-job.service';
 import { SessionContext } from './common/session-context';
+import { ImportFileCallerService } from './services/jobs/import-file-caller.service';
 
 @Component({
   selector: 'app-root',
@@ -16,7 +17,8 @@
   constructor(public router: Router,
     public baseDataLoader: BaseDataLoaderService,
     private sessionContext: SessionContext,
-    public reminderCallerJobService: ReminderCallerJobService) {
+    public reminderCallerJobService: ReminderCallerJobService,
+    public importFileCallerService: ImportFileCallerService) {
   }
 
   ngOnInit() {
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 317f8f2..a6c0307 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -51,8 +51,10 @@
 import { BaseDataLoaderService } from './services/jobs/base-data-loader.service';
 import { CurrentRemindersComponent } from './lists/current-reminders/current-reminders.component';
 import { ReminderCallerJobService } from './services/jobs/reminder-caller-job.service';
+import { ImportFileCallerService } from './services/jobs/import-file-caller.service';
 import { LoadingSpinnerComponent } from './dialogs/loading-spinner/loading-spinner.component';
 import { SortingComponent } from './lists/sorting/sorting.component';
+import { ImportService } from './services/import.service';
 
 @NgModule({
   declarations: [
@@ -117,8 +119,10 @@
     SessionContext,
     BaseDataService,
     ReminderCallerJobService,
+    ImportFileCallerService,
     MessageService,
-    BaseDataLoaderService  ],
+    BaseDataLoaderService,
+    ImportService  ],
   bootstrap: [AppComponent]
 })
 export class AppModule { }
diff --git a/src/app/common/session-context.ts b/src/app/common/session-context.ts
index 0b55f2f..12750bb 100644
--- a/src/app/common/session-context.ts
+++ b/src/app/common/session-context.ts
@@ -21,6 +21,7 @@
     private gridTerritories: GridTerritory[];
     private globalSearchFilter: GlobalSearchFilter;
     public reminderAvailable = false;
+    public importFileAvailable = false;
     public filterExpanded = false;
     private notificationHistoryExpansionStates: NotificationHistoryExpansionState[];
     public sortingState: SortingState;    
@@ -253,6 +254,14 @@
         this.reminderAvailable = newStatus;
     }
 
+    public isImportFileAvailable(): boolean {
+        return this.importFileAvailable;
+    }
+
+    public setImportFileAvailable(newStatus: boolean) {
+        this.importFileAvailable = newStatus;
+    }
+
     setInitGlobalSearchFilterValues() {
         this.globalSearchFilter = new GlobalSearchFilter;
         this.globalSearchFilter.searchString = '';
diff --git a/src/app/pages/overview/overview.component.html b/src/app/pages/overview/overview.component.html
index b3a39ac..586d2cd 100644
--- a/src/app/pages/overview/overview.component.html
+++ b/src/app/pages/overview/overview.component.html
@@ -24,7 +24,7 @@
           </button>
           <!-- Datenimport starten -->
           <!-- old: (click)="openDialogShiftChange() Schicht übergeben -->
-            <button class="btn btn-primary" id="dataimport" (click)="openDialogDataImport()">
+            <button  class="btn btn-primary" id="dataimport" [ngClass]="{'btn-warning': sessionContext.isImportFileAvailable()}" (click)="openDialogDataImport()">
             Datenimport
           </button>
           </div>
diff --git a/src/app/services/import.service.ts b/src/app/services/import.service.ts
new file mode 100644
index 0000000..3419d13
--- /dev/null
+++ b/src/app/services/import.service.ts
@@ -0,0 +1,37 @@
+import { Injectable } from '@angular/core';
+import { Http, Response, Headers } from '@angular/http';
+import { Observable } from 'rxjs/Observable';
+import 'rxjs/add/operator/catch';
+import 'rxjs/add/operator/map';
+import 'rxjs/add/observable/throw';
+
+import { Notification } from '../model/notification';
+import { SessionContext } from '../common/session-context';
+import { Globals } from '../common/globals';
+import { BaseHttpService } from './base-http.service';
+
+
+@Injectable()
+export class ImportService extends BaseHttpService {
+
+    constructor(
+        private _http: Http,
+        private _sessionContext: SessionContext) {
+        super();
+    }
+
+    public getImportFiles(): Observable<boolean> {
+        
+        const headers = new Headers();
+        this.createCommonHeaders(headers, this._sessionContext);
+        // TODO implement the correct WS
+        return new Observable(observer => {
+            observer.next(true);
+            observer.complete();
+        });
+        // return this._http.get(super.getBaseUrl() + '/importFiles', { 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.ts b/src/app/services/jobs/import-file-caller.service.ts
new file mode 100644
index 0000000..5c5c75e
--- /dev/null
+++ b/src/app/services/jobs/import-file-caller.service.ts
@@ -0,0 +1,76 @@
+import { Injectable, EventEmitter } from '@angular/core';
+import { OnInit, OnDestroy } from '@angular/core';
+import { Http, Response, Headers } from '@angular/http';
+import { Subscription, Observable } from 'rxjs/Rx';
+import { TimerObservable } from 'rxjs/observable/TimerObservable';
+import { ReminderSearchFilter } from '../../model/reminder-search-filter';
+import { ImportService } from '../../services/import.service';
+import { SessionContext } from '../../common/session-context';
+import { MessageService, MessageDefines } from '../../services/message.service';
+import { Globals } from '../../common/globals';
+
+
+@Injectable()
+export class ImportFileCallerService {
+
+    private timer;
+    private subscription: Subscription;
+    currentTime$: string;
+
+
+    constructor(
+        protected _sessionContext: SessionContext,
+        protected importFileService: ImportService,
+        protected msgService: MessageService
+    ) {
+        this.msgService.loginLogoff$.subscribe(msg => this.onLoginLogoff(msg));
+    }
+
+    onLoginLogoff(msg: string) {
+        if (msg === MessageDefines.MSG_LOG_IN_SUCCEEDED) {
+            this.init();
+        }
+        if (msg === MessageDefines.MSG_LOG_OFF) {
+            this.destroy();
+        }
+    }
+
+    init() {
+        this.timer = TimerObservable.create(Globals.REMINDER_JOB_POLLING_START_DELAY, Globals.REMINDER_JOB_POLLING_INTERVALL);
+        this.subscription = this.timer.subscribe(t => this.doJob(t));
+    }
+
+    destroy() {
+        if (this.subscription) {
+            this.subscription.unsubscribe();
+        }
+    }
+
+    doJob(tick: number) {
+        this.currentTime$ = new Date().toISOString();
+
+        this.importFileService.getImportFiles()
+            .subscribe(res => this.setImportFileAvailableStatus(res),
+            error => {
+                console.log(error);
+                this.setError(error);
+            });
+    }
+
+    protected setError(showErr: boolean) {
+    }
+
+
+
+    setImportFileAvailableStatus(file: boolean) {
+        if (file) {
+            // not empty; file available                         
+            this._sessionContext.setImportFileAvailable(true);
+        } else {
+            // empty; no file available            
+            this._sessionContext.setImportFileAvailable(false);
+        }
+    }
+
+
+}