Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/test/test.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/test/test.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/test/test.component.ts	(revision 55964)
@@ -1,6 +1,5 @@
 import {Component, ElementRef} from '@angular/core';
-import { Subject } from 'rxjs/Subject';
-import {Observable}       from 'rxjs/Observable';
+import { Subject , Observable} from 'rxjs';
 
 import {SearchFields, FieldDetails} from '../utils/properties/searchFields';
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/searchPaging.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/searchPaging.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/searchPaging.component.ts	(revision 55964)
@@ -1,5 +1,5 @@
 import {Component, Input, Output, EventEmitter} from '@angular/core';
-import {Observable}       from 'rxjs/Observable';
+import {Observable}       from 'rxjs';
 import {ErrorCodes} from '../../utils/properties/errorCodes';
 
 @Component({
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/communityGuard/connectSubscriber.guard.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/communityGuard/connectSubscriber.guard.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/communityGuard/connectSubscriber.guard.ts	(revision 55964)
@@ -1,6 +1,8 @@
+
+import {filter, mergeMap} from 'rxjs/operators';
 import { Injectable } from '@angular/core';
 import {Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanLoad, Route} from '@angular/router';
-import {Observable} from 'rxjs/Observable';
+import {Observable} from 'rxjs';
 import {Session} from '../../login/utils/helper.class';
 import {LoginErrorCodes} from '../../login/utils/guardHelper.class';
 import {CommunityService} from '../community/community.service';
@@ -8,7 +10,7 @@
 import {ConnectHelper} from '../connectHelper';
 
 @Injectable()
-export class ConnectSubscriberGuard implements CanActivate, CanLoad {
+export class ConnectSubscriberGuard implements CanActivate {
   constructor(private router: Router,
               private communityService: CommunityService,
               private propertiesService: EnvironmentSpecificService) {}
@@ -20,13 +22,13 @@
        this.router.navigate(['/user-info'], {queryParams: {'errorCode': errorCode, 'redirectUrl': path, communityId:community}});
        return false;
      } else {
-       const obs = this.propertiesService.subscribeEnvironment().mergeMap(properties => {
+       const obs = this.propertiesService.subscribeEnvironment().pipe(mergeMap(properties => {
          if(!community){
           community  = ConnectHelper.getCommunityFromDomain(properties.domain);
          }
          return this.communityService.isSubscribedToCommunity( community, Session.getUserEmail(), properties["adminToolsAPIURL"])
-       });
-       obs.filter(enabled => !enabled)
+       }));
+       obs.pipe(filter(enabled => !enabled))
            .subscribe(() => this.router.navigate(['/user-info'], {
              queryParams: {
                'errorCode': errorCode,
@@ -41,10 +43,5 @@
   canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
     return this.check(route.queryParams['communityId'], state.url);
   }
-  canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean {
-    const path = '/' + route.path + document.location.search;
-    return this.check(ConnectHelper.getCommunityFromPath(path), path);
 
-  }
-
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/communityGuard/connectCommunityGuard.guard.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/communityGuard/connectCommunityGuard.guard.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/communityGuard/connectCommunityGuard.guard.ts	(revision 55964)
@@ -1,3 +1,5 @@
+
+import {filter, mergeMap} from 'rxjs/operators';
 import { Injectable } from '@angular/core';
 import {
   Router,
@@ -7,13 +9,13 @@
   CanLoad,
   Route
 } from '@angular/router';
-import {Observable} from 'rxjs/Observable';
+import {Observable} from 'rxjs';
 import {CommunityService} from '../community/community.service';
 import { EnvironmentSpecificService} from '../../utils/properties/environment-specific.service';
 import {ConnectHelper} from '../connectHelper';
 
 @Injectable()
-export class ConnectCommunityGuard implements  CanActivate, CanLoad {
+export class ConnectCommunityGuard implements  CanActivate {
 
   constructor(private router: Router,
               private communityService: CommunityService,
@@ -21,10 +23,10 @@
   }
 
   check(community: string): Observable<boolean> | boolean {
-    const obs = this.propertiesService.subscribeEnvironment().mergeMap(properties => {
+    const obs = this.propertiesService.subscribeEnvironment().pipe(mergeMap(properties => {
       return this.communityService.isCommunityType(properties, properties['communityAPI'] + community);
-    });
-    obs.filter(enabled => !enabled)
+    }));
+    obs.pipe(filter(enabled => !enabled))
         .subscribe(() => this.router.navigate(['errorcommunity']));
     return obs;
   }
@@ -32,9 +34,4 @@
   canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
     return this.check(route.queryParams['communityId']);
   }
-
-  canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean {
-    const path = '/' + route.path + document.location.search;
-    return this.check(ConnectHelper.getCommunityFromPath(path));
-  }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/userEmailPreferences/mailPrefs.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/userEmailPreferences/mailPrefs.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/userEmailPreferences/mailPrefs.service.ts	(revision 55964)
@@ -1,6 +1,7 @@
 import {Injectable} from '@angular/core';
 import {Http, RequestOptions, Headers, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
+import {HttpClient, HttpErrorResponse} from "@angular/common/http";
+import {Observable, throwError} from 'rxjs';
 //import { HttpErrorResponse } from '@angular/common/http';
 
 import {EnvProperties} from '../../utils/properties/env-properties';
@@ -8,13 +9,13 @@
 
 @Injectable()
 export class MailPrefsService {
-    constructor(private http: Http ) {}
+    constructor(private http: HttpClient ) {}
 
     getUserEmailPreferencesForCommunity (communityId:string, apiUrl:string):any {
       let url = apiUrl +"users/notification"+"?communityId="+communityId;
 
       return this.http.get(url, CustomOptions.getAuthOptions())
-                      .map(request => <any> request.json())
+                      //.map(request => <any> request.json())
                       //.do(request => console.info("Get user email preferences for communityId= "+communityId ));
                       //.catch(this.handleError);
     }
@@ -23,13 +24,13 @@
       let url = apiUrl +"users/notification";
 
       //var error: HttpErrorResponse = new HttpErrorResponse({"error": {"code": 204}, "status" : 204}); // doesn't work
-      var response: Response = new Response({"body" : {"code":200, "data": []}, "status": 200, "headers": null, "url": "", "merge": null});
+      //var response: Response = new Response({"body" : {"code":200, "data": []}, "status": 200, "headers": null, "url": "", "merge": null});
 
       return this.http.get(url, CustomOptions.getAuthOptions())
                       //.timeoutWith(100, Observable.throw(response))   // goes to error
                       //.timeoutWith(100, Observable.of(response))      // goes to
                       //.do(request => console.info(request))
-                      .map(request => <any> request.json())
+                      //.map(request => <any> request.json())
                       //.do(request => console.info("Get user email preferences for OpenAIRE" ));
                       //.catch(this.handleError);
     }
@@ -39,18 +40,18 @@
 
       let body = JSON.stringify( notification );
       //console.warn('Json body:  : '+body);
-      let headers = new Headers({ 'Content-Type': 'application/json' });
-      let options = new RequestOptions({ headers: headers });
+      //let headers = new Headers({ 'Content-Type': 'application/json' });
+      //let options = new RequestOptions({ headers: headers });
       return this.http.post(url, body,  CustomOptions.getAuthOptionsWithBody())
-                            .map(res => res.json())
+                            //.map(res => res.json())
                             //.do(request => console.info("Insert Response:"+request.status) );
                             //.catch(this.handleError);
     }
 
-    private handleError (error: Response) {
+    private handleError (error: HttpErrorResponse) {
       // in a real world app, we may send the error to some remote logging infrastructure
       // instead of just logging it to the console
       console.log(error);
-      return Observable.throw(error  || 'Server error');
+      return throwError(error  || 'Server error');
     }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/searchPageTableView.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/searchPageTableView.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/searchPageTableView.component.ts	(revision 55964)
@@ -6,8 +6,7 @@
 import {ActivatedRoute, Router}                   from '@angular/router';
 import {Title, Meta}                      from '@angular/platform-browser';
 
-import {Observable}                       from 'rxjs/Observable';
-import {Subject}                          from 'rxjs/Subject';
+import {Observable, Subject}                       from 'rxjs';
 
 import {DataTableDirective }              from 'angular-datatables';
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/dateFilter.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/dateFilter.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/dateFilter.component.ts	(revision 55964)
@@ -1,33 +1,68 @@
 import {Component, Input, Output, EventEmitter} from '@angular/core';
-import {Observable}       from 'rxjs/Observable';
+import {Observable}       from 'rxjs';
 
 import { Filter, Value, DateValue} from './searchHelperClasses.class';
 import {IMyOptions, IMyDateModel} from '../../utils/my-date-picker/interfaces/index';
 // import {IMyDateModel} from '../../../utils/my-date-picker/interfaces/my-date-model.interface';
 import {Dates} from '../../utils/string-utils.class';
+import {FormControl} from "@angular/forms";
+import {MatDatepickerInputEvent} from "@angular/material";
 
 @Component({
     selector: 'date-filter',
     template: `
 
-    <select *ngIf="dateValue.type!='range' "  name="{{'select_date_type'+filterId}}"    [(ngModel)]=dateValue.type >
+    <select *ngIf="dateValue && dateValue.type!='range' "  name="{{'select_date_type'+filterId}}"    [(ngModel)]=dateValue.type >
       <option *ngFor="let type of dateValue.types let i = index"  [value]="type" (click)="typeChanged(type)">{{dateValue.typesTitle[i]}}</option>
     </select>
-    <div *ngIf="dateValue.type=='range' " class="-row dateFilter" >
-
+    <div *ngIf="dateValue && dateValue.type=='range' ">
       <table class=" uk-table uk-table-responsive" >
-      <tr><td>
-      <select name="{{'select_date_type'+filterId}}"    [(ngModel)]=dateValue.type >
-        <option *ngFor="let type of dateValue.types let i = index"  [value]="type" (click)="typeChanged(type)">{{dateValue.typesTitle[i]}}</option>
-      </select></td>
-      <td>
-          From</td><td  style="width: 112px;"><my-date-picker name="from" [options]="myDatePickerOptions"
-                    [(ngModel)]="from" (dateChanged)="onFromDateChanged($event)" ></my-date-picker>
-      </td> <td>
-            To </td><td  style="width: 112px;">     <my-date-picker name="to" [options]="myDatePickerOptions"
-                            [(ngModel)]="to" (dateChanged)="onToDateChanged($event)" ></my-date-picker></td></tr>
+        <tr>
+          <td class="uk-padding-remove-top">
+            <select name="{{'select_date_type'+filterId}}"    [(ngModel)]=dateValue.type >
+              <option *ngFor="let type of dateValue.types let i = index"  [value]="type" (click)="typeChanged(type)">{{dateValue.typesTitle[i]}}</option>
+            </select>
+          </td>
+          <td>
+            From
+          </td>
+          <td class="uk-padding-remove-top" style="width: 112px;">
+            <mat-form-field style="max-width: 112px;">
+              <input matInput [matDatepicker]="pickerFrom" placeholder="Choose a date" 
+                     [formControl]="fromDate" (click)="pickerFrom.open()" (dateChange)="fromDateChanged($event)">
+              <mat-datepicker-toggle matSuffix [for]="pickerFrom"></mat-datepicker-toggle>
+              <mat-datepicker #pickerFrom></mat-datepicker>
+            </mat-form-field>
+          </td>
+          <td>
+            To 
+          </td>
+          <td class="uk-padding-remove-top" style="width: 112px;">
+            <mat-form-field style="max-width: 112px;">
+              <input matInput [matDatepicker]="pickerTo" placeholder="Choose a date" 
+                     [formControl]="toDate" (click)="pickerTo.open()" (dateChange)="toDateChanged($event)">
+              <mat-datepicker-toggle matSuffix [for]="pickerTo"></mat-datepicker-toggle>
+              <mat-datepicker #pickerTo></mat-datepicker>
+            </mat-form-field>
+          </td>
+        </tr>
       </table>
-     </div>
+    </div>
+<!--    <div *ngIf="dateValue.type=='range' " class="-row dateFilter" >-->
+
+<!--      <table class=" uk-table uk-table-responsive" >-->
+<!--      <tr><td>-->
+<!--      <select name="{{'select_date_type'+filterId}}"    [(ngModel)]=dateValue.type >-->
+<!--        <option *ngFor="let type of dateValue.types let i = index"  [value]="type" (click)="typeChanged(type)">{{dateValue.typesTitle[i]}}</option>-->
+<!--      </select></td>-->
+<!--      <td>-->
+<!--          From</td><td  style="width: 112px;"><my-date-picker name="from" [options]="myDatePickerOptions"-->
+<!--                    [(ngModel)]="from" (dateChanged)="onFromDateChanged($event)" ></my-date-picker>-->
+<!--      </td> <td>-->
+<!--            To </td><td  style="width: 112px;">     <my-date-picker name="to" [options]="myDatePickerOptions"-->
+<!--                            [(ngModel)]="to" (dateChanged)="onToDateChanged($event)" ></my-date-picker></td></tr>-->
+<!--      </table>-->
+<!--     </div>-->
     `
 
 })
@@ -52,13 +87,23 @@
       // Initialized to specific date (09.10.2018).
       public from;//: Object = { date: { year: 2018, month: 10, day: 9 } };
       public to;//: Object = { date: { year: 2018, month: 10, day: 9 } };
+      public fromDate;
+      public toDate;
 
 constructor() {
+  //this.updateDefaultRangeDates(this.dateValue.from,this.dateValue.to);
+}
+
+ngOnInit() {
   this.updateDefaultRangeDates(this.dateValue.from,this.dateValue.to);
 }
 updateDefaultRangeDates(df:Date,dt:Date){
-    this.from = { date: { year: df.getFullYear(), month: (df.getMonth()+1), day: df.getDate() } };
-    this.to = { date: { year: dt.getFullYear(), month: (dt.getMonth()+1), day: dt.getDate() } };
+    df.setMonth(df.getMonth()-1);
+    this.fromDate = new FormControl(df);
+    this.toDate = new FormControl(dt);
+
+    //this.from = { date: { year: df.getFullYear(), month: (df.getMonth()+1), day: df.getDate() } };
+    //this.to = { date: { year: dt.getFullYear(), month: (dt.getMonth()+1), day: dt.getDate() } };
   }
 typeChanged(type:string){
   this.dateValue.setDatesByType(type);
@@ -65,6 +110,7 @@
   this.updateDefaultRangeDates(this.dateValue.from, this.dateValue.to);
 }
 
+/*
 onFromDateChanged(event: IMyDateModel) {
   this.dateValue.from = Dates.getDateFromString(event.formatted);
   this.validDateFrom = true;
@@ -72,4 +118,16 @@
 onToDateChanged(event: IMyDateModel) {
   this.dateValue.to = Dates.getDateFromString(event.formatted);
   this.validDateTo = true;
-}}
+}
+*/
+
+fromDateChanged(event: MatDatepickerInputEvent<Date>) {
+  this.dateValue.from = event.value;
+  //console.info("FROM: "+Dates.getDateToString(this.dateValue.from));
+}
+
+toDateChanged(event: MatDatepickerInputEvent<Date>) {
+  this.dateValue.to = event.value;
+  //console.info("TO: "+Dates.getDateToString(this.dateValue.to));
+}
+}
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/error/isRouteEnabled.guard.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/error/isRouteEnabled.guard.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/error/isRouteEnabled.guard.ts	(revision 55964)
@@ -1,3 +1,7 @@
+
+import {of as observableOf, Observable} from 'rxjs';
+
+import {map, filter, mergeMap} from 'rxjs/operators';
 import { Injectable } from '@angular/core';
 import {
   Router,
@@ -7,14 +11,13 @@
   RouterStateSnapshot,
   Route, Data
 } from '@angular/router';
-import {Observable} from 'rxjs/Observable';
-import 'rxjs/add/operator/filter';
+
 import { ConfigurationService } from '../utils/configuration/configuration.service';
 import { EnvironmentSpecificService} from '../utils/properties/environment-specific.service';
 import {ConnectHelper} from '../connect/connectHelper';
 
 @Injectable()
-export class IsRouteEnabled implements CanActivate, CanLoad {
+export class IsRouteEnabled implements CanActivate {
 
   constructor(private router: Router,
               private config: ConfigurationService,
@@ -26,18 +29,18 @@
       community = data['community'];
     }
       const redirect = customRedirect ? customRedirect : '/error';
-      const obs = this.propertiesService.subscribeEnvironment().map(res => {
+      const obs = this.propertiesService.subscribeEnvironment().pipe(map(res => {
         if (!community) {
           community  = ConnectHelper.getCommunityFromDomain(res.domain);
         }
        return  res['adminToolsAPIURL'];
-      }).mergeMap(url => {
+      }),mergeMap(url => {
         if (!community) { // no community to check - return true
-          return Observable.of(true);
+          return observableOf(true);
         }
         return this.config.isPageEnabled(url, community, '/' + path.split('?')[0].substring(1));
-      });
-      obs.filter(enabled => !enabled)
+      }),);
+      obs.pipe(filter(enabled => !enabled))
           .subscribe(() => this.router.navigate([redirect], {queryParams: {'page': path}}));
       return obs;
   }
@@ -45,8 +48,4 @@
   canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
     return this.check(route.data, route.queryParams['communityId'], state.url);
   }
-  canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean {
-    const path = '/' + route.path + document.location.search;
-    return this.check(route.data, ConnectHelper.getCommunityFromPath(path), path);
-  }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/community/community.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/community/community.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/community/community.service.ts	(revision 55964)
@@ -1,22 +1,33 @@
 import { Injectable } from '@angular/core';
 import { Http,  Headers, RequestOptions } from '@angular/http';
+import {HttpClient, HttpHeaders} from "@angular/common/http";
 import { CommunityInfo } from './communityInfo';
 import {EnvProperties} from '../../utils/properties/env-properties';
+import {map} from "rxjs/operators";
+import {COOKIE} from "../../login/utils/helper.class";
 
 @Injectable()
 export class CommunityService {
 
-    constructor(private http: Http) {
+    constructor(private http: HttpClient) {
       }
 
     getCommunity(properties: EnvProperties, url: string) {
         return this.http.get((properties.useCache) ? (properties.cacheUrl + encodeURIComponent(url)) : url)
-                        .map(res => <any> res.json()).map(res => this.parseCommunity(res));
+                        //.map(res => <any> res.json())
+                        .pipe(map(res => this.parseCommunity(res)));
     }
 
     updateCommunity(url: string, community: any) {
-        const headers = new Headers({'Content-Type': 'application/json'});
-        const options = new RequestOptions({headers: headers});
+        //const headers = new Headers({'Content-Type': 'application/json'});
+        //const options = new RequestOptions({headers: headers});
+
+        const options = {
+          headers: new HttpHeaders({
+            'Content-Type': 'application/json',
+          })
+        };
+
         const body = JSON.stringify(community);
         return this.http.post(url, body, options);
                           /*.map(res => res.json())*/
@@ -24,32 +35,33 @@
 
     isCommunityManager(properties: EnvProperties, url: string, manager: string) {
       return this.http.get((properties.useCache) ? (properties.cacheUrl + encodeURIComponent(url)) : url)
-                      .map(res => <any> res.json()).map(res =>
-              this.parseCommunity(res)).map(community => community.managers.indexOf(manager) !== -1);
+                      //.map(res => <any> res.json())
+                      .pipe(map(res => this.parseCommunity(res)))
+                      .pipe(map(community => community.managers.indexOf(manager) !== -1));
     }
 
     isRIType(properties: EnvProperties, url: string) {
       return this.http.get((properties.useCache) ? (properties.cacheUrl + encodeURIComponent(url)) : url)
-          .map(res => <any> res.json()).map(res =>
-              this.parseCommunity(res)).map(community =>
-              (community && community.type && community.type === 'ri'));
+          //.map(res => <any> res.json())
+          .pipe(map(res => this.parseCommunity(res)))
+          .pipe(map(community => (community && community.type && community.type === 'ri')));
     }
 
     isCommunityType(properties: EnvProperties, url: string) {
         return this.http.get((properties.useCache) ? (properties.cacheUrl + encodeURIComponent(url)) : url)
-            .map(res => <any> res.json()).map(res =>
-                this.parseCommunity(res)).map(community =>
-                (community && community.type && community.type === 'community'));
+            //.map(res => <any> res.json())
+            .pipe(map(res => this.parseCommunity(res)))
+            .pipe(map(community => (community && community.type && community.type === 'community')));
     }
 
     isSubscribedToCommunity(pid: string, email: string, url: string) {
       return this.http.get(url + '/community/' + pid + '/subscribers')
-                      .map(res =>  ((<any>res === '') ? {} : <any> res.json()))
-                      .map(res => {
-                        if (res.subscribers && res.subscribers != null) {
+                      //.map(res =>  ((<any>res === '') ? {} : <any> res.json()))
+                      .pipe(map(res => {
+                        if (res['subscribers'] && res['subscribers'] != null) {
 
-                          for (let i = 0; i < res.subscribers.length; i++ ) {
-                            if (res.subscribers[i] != null && res.subscribers[i].email === email) {
+                          for (let i = 0; i < res['subscribers'].length; i++ ) {
+                            if (res['subscribers'][i] != null && res['subscribers'][i].email === email) {
                               return true;
                             }
                           }
@@ -56,7 +68,7 @@
                         }
                         return false;
 
-                      });
+                      }));
     }
 
     private parseCommunity(data: any): CommunityInfo {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/communityGuard/isCommunity.guard.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/communityGuard/isCommunity.guard.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/communityGuard/isCommunity.guard.ts	(revision 55964)
@@ -4,10 +4,10 @@
   CanActivate,
   ActivatedRouteSnapshot,
   RouterStateSnapshot,
-  CanLoad, Route
+  CanLoad, Route, UrlSegment
 } from '@angular/router';
-import {Observable} from 'rxjs/Observable';
-import 'rxjs/add/operator/filter';
+import {Observable} from 'rxjs';
+
 import {ConnectHelper} from '../connectHelper';
 
 @Injectable()
@@ -29,7 +29,7 @@
     return this.check(route.queryParams['communityId']);
   }
 
-  canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean {
+  canLoad(route: Route, segments: UrlSegment[]): Observable<boolean> | Promise<boolean> | boolean {
     const path = '/' + route.path + document.location.search;
     return this.check(ConnectHelper.getCommunityFromPath(path));
   }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/contentProviders/searchDataproviders.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/contentProviders/searchDataproviders.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/contentProviders/searchDataproviders.service.ts	(revision 55964)
@@ -1,15 +1,16 @@
 import {Injectable} from '@angular/core';
 import {Http} from '@angular/http';
+import {HttpClient} from "@angular/common/http";
 import{EnvProperties} from '../../utils/properties/env-properties';
 
 @Injectable()
 export class SearchCommunityDataprovidersService {
-    constructor(private http: Http ) {}
+    constructor(private http: HttpClient ) {}
 
     searchDataproviders (properties:EnvProperties, communityId: string):any {
         let url = properties.communityAPI+communityId+"/contentproviders";
 
-        return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
+        return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url);
+                    //.map(res => <any> res.json())
     }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchDataproviders.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchDataproviders.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchDataproviders.service.ts	(revision 55964)
@@ -1,17 +1,19 @@
 import {Injectable} from '@angular/core';
 import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
+import {HttpClient} from "@angular/common/http";
+import {Observable}     from 'rxjs';
 import {SearchResult}     from '../utils/entities/searchResult';
 import {RefineResultsUtils} from './servicesUtils/refineResults.class';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+
+
+
 import {StringUtils} from '../utils/string-utils.class';
 import{EnvProperties} from '../utils/properties/env-properties';
+import {map} from "rxjs/operators";
 
 @Injectable()
 export class SearchDataprovidersService {
-    constructor(private http: Http ) {}
+    constructor(private http: HttpClient ) {}
 
     searchDataproviders (params: string, refineParams:string, page: number, size: number, refineFields:string[], properties:EnvProperties ):any {
 
@@ -28,9 +30,9 @@
 
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
+                    //.map(res => <any> res.json())
                     //.do(res => console.info(res))
-                    .map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields, "datasource")]);
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields, "datasource")]));
     }
     //((oaftype exact datasource) and(collectedfromdatasourceid exact "openaire____::47ce9e9f4fad46e732cff06419ecaabb"))
     advancedSearchDataproviders (params: string, page: number, size: number, properties: EnvProperties ):any {
@@ -47,9 +49,9 @@
       url += "&page="+(page-1)+"&size="+size+"&format=json";
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-      .map(res => <any> res.json())
+      //.map(res => <any> res.json())
       //.do(res => console.info(res))
-      .map(res => [res['meta'].total, this.parseResults(res['results'])])
+      .pipe(map(res => [res['meta'].total, this.parseResults(res['results'])]))
     }
 
     searchCompatibleDataprovidersTable ( properties:EnvProperties):any {
@@ -60,9 +62,9 @@
 
 
 
-      return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url).map(res => <any> res.json())
-
-                        .map(res => res['meta'].total);
+      return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
+                      //.map(res => <any> res.json())
+                      .pipe(map(res => res['meta'].total));
     }
 
     searchCompatibleDataproviders (params: string,refineParams:string, page: number, size: number, refineFields:string[], properties:EnvProperties ):any {
@@ -77,9 +79,9 @@
       url += "&page="+(page-1)+"&size="+size+"&format=json";
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-      .map(res => <any> res.json())
+      //.map(res => <any> res.json())
       //.do(res => console.info(res))
-      .map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields, "datasource")]);
+      .pipe(map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields, "datasource")]));
     }
 
     searchEntityRegistriesTable (properties:EnvProperties):any {
@@ -90,8 +92,9 @@
 
 
 
-      return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url).map(res => <any> res.json())
-                        .map(res => res['meta'].total);
+      return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
+                      //.map(res => <any> res.json())
+                      .pipe(map(res => res['meta'].total));
     }
 
     searchEntityRegistries (params: string,refineParams:string, page: number, size: number, refineFields:string[], properties:EnvProperties ):any {
@@ -106,9 +109,9 @@
       url += "&page="+(page-1)+"&size="+size+"&format=json";
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-      .map(res => <any> res.json())
+      //.map(res => <any> res.json())
       //.do(res => console.info(res))
-      .map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields, "datasource")]);
+      .pipe(map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields, "datasource")]));
     }
 
     searchJournalsTable ( properties:EnvProperties):any {
@@ -117,8 +120,8 @@
       url += '?query=((oaftype exact datasource) not(datasourcecompatibilityid = UNKNOWN) not(datasourcecompatibilityid = notCompatible) and (datasourcetypeuiid exact "pubsrepository::journal" or datasourcetypeuiid exact "aggregator::pubsrepository::journals" ))';
       url += "&page=0&size=0&format=json";
 
-      return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url).map(res => <any> res.json())
-                        .map(res => res['meta'].total);
+      return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)//.map(res => <any> res.json())
+                        .pipe(map(res => res['meta'].total));
     }
 
     searchJournals (params: string,refineParams:string, page: number, size: number, refineFields:string[] , properties:EnvProperties):any {
@@ -135,9 +138,9 @@
       url += "&page="+(page-1)+"&size="+size+"&format=json";
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-      .map(res => <any> res.json())
+      //.map(res => <any> res.json())
       //.do(res => console.info(res))
-      .map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields, "datasource")]);
+      .pipe(map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields, "datasource")]));
     }
 
     searchDataprovidersForDeposit (id: string,type:string, page: number, size: number, properties:EnvProperties):any {
@@ -155,8 +158,8 @@
 
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => [res['meta'].total, this.parseResults(res['results'])]);
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results'])]));
     }
     searchDataProvidersBySubjects(keyword:string, type:string, page: number, size: number, properties:EnvProperties):any {
       let link = properties.searchResourcesAPIURL;
@@ -173,8 +176,8 @@
 
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                  .map(res => <any> res.json())
-                  .map(res => [res['meta'].total, this.parseResults(res['results'])]);
+                  //.map(res => <any> res.json())
+                  .pipe(map(res => [res['meta'].total, this.parseResults(res['results'])]));
 
     }
 
@@ -191,8 +194,8 @@
       url += "&page="+(page-1)+"&size="+size+"&format=json";
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-      .map(res => <any> res.json())
-      .map(res => [res['meta'].total, this.parseResults(res['results'])]);
+      //.map(res => <any> res.json())
+      .pipe(map(res => [res['meta'].total, this.parseResults(res['results'])]));
     }
     searchDataprovidersForEntity (params: string, page: number, size: number, properties:EnvProperties):any {
         let link = properties.searchAPIURLLAst;
@@ -199,8 +202,8 @@
         let url = link+params+"/datasources?format=json";
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => [res['meta'].total, this.parseResults(res['results'])]);
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results'])]));
     }
 /*
     searchDataprovidersCSV (params: string, refineParams:string, page: number, size: number):any {
@@ -411,8 +414,8 @@
         //let url = OpenaireProperties. getSearchAPIURLLast()+params+(params.indexOf("?") == -1 ?"?":"&")+"format=json";
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => res.total);
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => res['total']));
     }
 
     numOfEntityDataproviders(id: string, entity: string, properties:EnvProperties):any {
@@ -454,8 +457,8 @@
 
 
 
-  return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url).map(res => <any> res.json())
-
-                    .map(res => res['meta'].total);
+  return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
+                  //.map(res => <any> res.json())
+                  .pipe(map(res => res['meta'].total));
 }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/reports.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/reports.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/reports.service.ts	(revision 55964)
@@ -1,35 +1,37 @@
 import {Injectable} from '@angular/core';
 import {Http, Response, Headers} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+import {HttpClient, HttpErrorResponse} from "@angular/common/http";
+import {Observable, throwError} from 'rxjs';
 
+
+
+import {map, tap} from "rxjs/operators";
+
 @Injectable()
 export class ReportsService {
     // url:string = "http://beta.services.openaire.eu:8480/search/rest/v2/api/publications?format=csv&page=0&size=3&q=(%22test%22)&fq=instancetypename%20exact%20%22Dataset%22";
-    constructor(private http: Http) {}
+    constructor(private http: HttpClient) {}
 //text/html
     //On the service:
    downloadCSVFile(url: string){
-     var headers = new Headers();
-     headers.append('responseType', 'arraybuffer');
+     //var headers = new Headers();
+     //headers.append('responseType', 'arraybuffer');
      return this.http.get(url)
-                .map(res => new Blob([res['_body']], { type: 'text/csv' }));
+                .pipe(map(res => new Blob([res['_body']], { type: 'text/csv' })));
    }
    getCSVResponse(url: string){
-     var headers = new Headers();
-     headers.append('responseType', 'arraybuffer');
+     //var headers = new Headers();
+     //headers.append('responseType', 'arraybuffer');
      return this.http.get(url)
-                .map(res => res['_body']);
+                .pipe(map(res => res['_body']));
    }
    downloadHTMLFile(url: string, info: string){
-     var headers = new Headers();
-     headers.append('responseType', 'arraybuffer');
+     //var headers = new Headers();
+     //headers.append('responseType', 'arraybuffer');
      return this.http.get(url)
-                .map(res => this.addInfo(res, info))
-                .map(res => new Blob([res['_body']], { type: 'text/html' }))
-                .do(res => console.log(res))
+                .pipe(map(res => this.addInfo(res, info)))
+                .pipe(map(res => new Blob([res['_body']], { type: 'text/html' })))
+                .pipe(tap(res => console.log(res)))
    }
 
    addInfo(res:any, info:string) {
@@ -43,11 +45,11 @@
        return res;
    }
 
-    private handleError (error: Response) {
+    private handleError (error: HttpErrorResponse) {
     // in a real world app, we may send the error to some remote logging infrastructure
     // instead of just logging it to the console
         console.log(error);
-        return Observable.throw(error  || 'Server error');
+        return throwError(error  || 'Server error');
     }
 
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/refineFieldResults.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/refineFieldResults.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/refineFieldResults.service.ts	(revision 55964)
@@ -1,16 +1,18 @@
 import {Injectable} from '@angular/core';
 import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
+import {HttpClient, HttpErrorResponse} from "@angular/common/http";
+import {Observable, throwError} from 'rxjs';
 import {AutoCompleteValue} from '../searchPages/searchUtils/searchHelperClasses.class';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+
+
+
 import {RefineResultsUtils} from './servicesUtils/refineResults.class';
 import{EnvProperties} from '../utils/properties/env-properties';
+import {map} from "rxjs/operators";
 
 @Injectable()
 export class RefineFieldResultsService {
-     constructor(private http: Http ) {}
+     constructor(private http: HttpClient ) {}
      getRefineFieldsResultsByEntityName(fields:string[], entityName:string, properties:EnvProperties, communityQuery=null):any{
         let url = properties.searchAPIURLLAst + this.getSearchAPIURLForEntity(entityName)+"?format=json&refine=true&page=1&size=0";
         for(var i=0; i < fields.length; i++){
@@ -21,9 +23,9 @@
         }
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
+                    //.map(res => <any> res.json())
 
-                    .map(res =>   [res['meta'].total, RefineResultsUtils.parse(res['refineResults'],fields, entityName)]);
+                    .pipe(map(res =>   [res['meta'].total, RefineResultsUtils.parse(res['refineResults'],fields, entityName)]));
 
      }
     getRefineFieldResultsByFieldName(fieldName:string, entityName:string, properties:EnvProperties):any{
@@ -36,9 +38,9 @@
       let url = link+"&refine=true&page=1&size=0";
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                  .map(res => <any> res.json())
-                  .map(res => res['refineResults'])
-                  .map(res =>  this.parse(res,fieldName));
+                  //.map(res => <any> res.json())
+                  .pipe(map(res => res['refineResults']))
+                  .pipe(map(res =>  this.parse(res,fieldName)));
 
     }
     parse(data: any,fieldName:string):any {
@@ -78,10 +80,10 @@
       }
       return  suffix;
     }
-    private handleError (error: Response) {
+    private handleError (error: HttpErrorResponse) {
       // in a real world app, we may send the error to some remote logging infrastructure
       // instead of just logging it to the console
       console.log(error);
-      return Observable.throw(error  || 'Server error');
+      return throwError(error  || 'Server error');
     }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchDatasets.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchDatasets.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchDatasets.service.ts	(revision 55964)
@@ -1,14 +1,13 @@
 import {Injectable} from '@angular/core';
-import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
-import {SearchResult}     from '../utils/entities/searchResult';
+import {HttpClient} from "@angular/common/http";
+import {SearchResult} from '../utils/entities/searchResult';
 import {RefineResultsUtils} from './servicesUtils/refineResults.class';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+
+
 import {DOI, StringUtils} from '../utils/string-utils.class';
-import { ParsingFunctions } from '../landingPages/landing-utils/parsingFunctions.class';
-import{EnvProperties} from '../utils/properties/env-properties';
+import {ParsingFunctions} from '../landingPages/landing-utils/parsingFunctions.class';
+import {EnvProperties} from '../utils/properties/env-properties';
+import {map} from "rxjs/operators";
 
 @Injectable()
 export class SearchDatasetsService {
@@ -15,7 +14,7 @@
     private sizeOfDescription: number = 270;
     public parsingFunctions: ParsingFunctions = new ParsingFunctions();
 
-    constructor(private http: Http ) {}
+    constructor(private http: HttpClient ) {}
 
     searchDatasets (params: string, refineParams:string, page: number, size: number, sortBy: string, refineFields:string[], properties:EnvProperties ):any {
 
@@ -35,16 +34,17 @@
 
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
+                    //.map(res => <any> res.json())
                     //.do(res => console.info(res))
-                    .map(res => [res['meta'].total, this.parseResults(res['results'], properties),RefineResultsUtils.parse(res['refineResults'],refineFields, "dataset")]);
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties),RefineResultsUtils.parse(res['refineResults'],refineFields, "dataset")]));
+
     }
     searchDatasetById (id: string , properties:EnvProperties):any {
 
         let url = properties.searchAPIURLLAst+"datasets/"+id+"?format=json";
          return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => this.parseResults(res, properties));
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => this.parseResults(res, properties)));
     }
 
     searchAggregators (id: string, params: string, refineParams:string, page: number, size: number, properties:EnvProperties ):any {
@@ -63,8 +63,8 @@
 
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => this.parseRefineResults(id, res['refineResults']))
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => this.parseRefineResults(id, res['refineResults'])))
     }
 
     searchDatasetsByDois (DOIs: string[], refineParams:string, page: number, size: number, refineFields:string[], properties:EnvProperties ):any {
@@ -86,10 +86,10 @@
 
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
+                    //.map(res => <any> res.json())
                     //.do(res => console.info(res))
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties),RefineResultsUtils.parse(res['refineResults'],refineFields, "dataset")]));
 
-                    .map(res => [res['meta'].total, this.parseResults(res['results'], properties),RefineResultsUtils.parse(res['refineResults'],refineFields, "dataset")]);
     }
     advancedSearchDatasets (params: string, page: number, size: number, sortBy: string, properties:EnvProperties ):any {
       let url = properties.searchResourcesAPIURL;
@@ -110,9 +110,9 @@
       url += "&format=json";
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-      .map(res => <any> res.json())
+      //.map(res => <any> res.json())
       //.do(res => console.info(res))
-      .map(res => [res['meta'].total, this.parseResults(res['results'], properties)]);
+      .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties)]));
     }
     searchDatasetsForEntity (params: string, page: number, size: number, properties:EnvProperties):any {
         let link = properties.searchAPIURLLAst;
@@ -119,8 +119,9 @@
         let url = link+params+"/datasets"+"?format=json";
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => [res['meta'].total, this.parseResults(res['results'], properties)]);
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties)]));
+
     }
 
     searchDatasetsForDataproviders(params: string, page: number, size: number, properties:EnvProperties):any {
@@ -127,8 +128,9 @@
         let link = properties.searchAPIURLLAst;
         let url = link+params+ "&page="+(page-1)+"&size="+size + "&format=json";
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => [res['meta'].total, this.parseResults(res['results'], properties)]);
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties)]));
+
     }
 
     parseResults(data: any, properties: EnvProperties): SearchResult[] {
@@ -347,8 +349,8 @@
     numOfDatasets(url: string, properties:EnvProperties):any {
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                  .map(res => <any> res.json())
-                  .map(res => res.total);
+                  //.map(res => <any> res.json())
+                  .pipe(map(res => res['total']));
     }
 
     numOfEntityDatasets(id: string, entity: string, properties:EnvProperties):any {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/organization.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/organization.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/organization.service.ts	(revision 55964)
@@ -1,16 +1,18 @@
 import {Injectable} from '@angular/core';
 import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
+import {HttpClient, HttpErrorResponse} from "@angular/common/http";
+import {Observable, throwError} from 'rxjs';
 import {OrganizationInfo} from '../utils/entities/organizationInfo';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+
+
+
 import{EnvProperties} from '../utils/properties/env-properties';
+import {map} from "rxjs/operators";
 
 @Injectable()
 export class OrganizationService {
 
-    constructor(private http: Http ) {}
+    constructor(private http: HttpClient ) {}
 
     organizationInfo: OrganizationInfo;
 
@@ -18,11 +20,11 @@
          let url = properties.searchAPIURLLAst+'resources?format=json&query=( (oaftype exact organization) and (reldatasourcecompatibilityid=driver or reldatasourcecompatibilityid=driver-openaire2.0 or reldatasourcecompatibilityid=openaire2.0 or reldatasourcecompatibilityid=openaire3.0 or reldatasourcecompatibilityid=openaire2.0_data or reldatasourcecompatibilityid=hostedBy or relprojectid=*  or reldatasourcecompatibilityid = native)) and ( objIdentifier ='+id+')';
 
         return this.http.get((properties.useCache)? (properties.cacheUrl +encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => res['results'][0])
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => res['results'][0]))
                     //.map(res => res[0]['result']['metadata']['oaf:entity']['oaf:organization'])
                     //.map(res => [res, res['rels']['rel']])
-                    .map(res => this.parseOrganizationInfo(res));
+                    .pipe(map(res => this.parseOrganizationInfo(res)));
 
 
     }
@@ -31,16 +33,16 @@
       let url = properties.searchAPIURLLAst+"organizations/"+id+"?format=json";
 
       return this.http.get((properties.useCache) ? (properties.cacheUrl+encodeURIComponent(url)): url)
-                  .map(res => <any> res.json())
-                  .map(res => res['result']['metadata']['oaf:entity']['oaf:organization'])
-                  .map(res => this.parseOrganizationNameAndUrl(res));
+                  //.map(res => <any> res.json())
+                  .pipe(map(res => res['result']['metadata']['oaf:entity']['oaf:organization']))
+                  .pipe(map(res => this.parseOrganizationNameAndUrl(res)));
     }
 
-    private handleError (error: Response) {
+    private handleError (error: HttpErrorResponse) {
     // in a real world app, we may send the error to some remote logging infrastructure
     // instead of just logging it to the console
         console.log(error);
-        return Observable.throw(error  || 'Server error');
+        return throwError(error  || 'Server error');
     }
 
     parseOrganizationInfo (data: any):any {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/metrics.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/metrics.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/metrics.service.ts	(revision 55964)
@@ -1,15 +1,17 @@
 import {Injectable} from '@angular/core';
 import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
+import {HttpClient} from "@angular/common/http";
+import {Observable}     from 'rxjs';
 import {Metrics} from '../utils/entities/metrics';
-import 'rxjs/add/operator/do';
+
 import{EnvProperties} from '../utils/properties/env-properties';
+import {map} from "rxjs/operators";
 
 @Injectable()
 export class MetricsService {
     metrics: Metrics;
 
-    constructor(private http: Http ) {}
+    constructor(private http: HttpClient ) {}
 
     getMetrics (id: string, entityType: string, properties:EnvProperties):any {
         let url = properties.metricsAPIURL+entityType+"/"+id+"/clicks";
@@ -16,9 +18,9 @@
         let key = url;
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => this.parseMetrics(res["downloads"], res["views"], res["total_downloads"], res["total_views"],
-                                                  res["total_openaire_views"], res["total_openaire_downloads"], res["pageviews"], properties));
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => this.parseMetrics(res["downloads"], res["views"], res["total_downloads"], res["total_views"],
+                                                  res["total_openaire_views"], res["total_openaire_downloads"], res["pageviews"], properties)));
     }
 
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchOrps.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchOrps.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchOrps.service.ts	(revision 55964)
@@ -1,14 +1,11 @@
 import {Injectable} from '@angular/core';
-import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
-import {SearchResult}     from '../utils/entities/searchResult';
+import {HttpClient} from "@angular/common/http";
+import {SearchResult} from '../utils/entities/searchResult';
 import {RefineResultsUtils} from './servicesUtils/refineResults.class';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
 import {DOI, StringUtils} from '../utils/string-utils.class';
-import { ParsingFunctions } from '../landingPages/landing-utils/parsingFunctions.class';
-import{EnvProperties} from '../utils/properties/env-properties';
+import {ParsingFunctions} from '../landingPages/landing-utils/parsingFunctions.class';
+import {EnvProperties} from '../utils/properties/env-properties';
+import {map} from "rxjs/operators";
 
 @Injectable()
 export class SearchOrpsService {
@@ -15,7 +12,7 @@
     private sizeOfDescription: number = 270;
     public parsingFunctions: ParsingFunctions = new ParsingFunctions();
 
-    constructor(private http: Http ) {}
+    constructor(private http: HttpClient ) {}
 
     searchOrps (params: string, refineParams:string, page: number, size: number, sortBy: string, refineFields:string[], properties:EnvProperties ):any {
 
@@ -35,9 +32,9 @@
 
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
+                    //.map(res => <any> res.json())
                     //.do(res => console.info(res))
-                    .map(res => [res['meta'].total, this.parseResults(res['results'], properties),RefineResultsUtils.parse(res['refineResults'],refineFields, "other")]);
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties),RefineResultsUtils.parse(res['refineResults'],refineFields, "other")]));
     }
     searchOrpById (id: string , properties:EnvProperties):any {
 
@@ -44,8 +41,8 @@
         let url = properties.searchAPIURLLAst+"other/"+id+"?format=json";
 
          return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => this.parseResults(res, properties));
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => this.parseResults(res, properties)));
     }
 
     searchAggregators (id: string, params: string, refineParams:string, page: number, size: number, properties:EnvProperties ):any {
@@ -64,8 +61,8 @@
 
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => this.parseRefineResults(id, res['refineResults']))
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => this.parseRefineResults(id, res['refineResults'])))
     }
 
     searchOrpsByDois (DOIs: string[], refineParams:string, page: number, size: number, refineFields:string[], properties:EnvProperties ):any {
@@ -88,10 +85,9 @@
 
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
+                    //.map(res => <any> res.json())
                     //.do(res => console.info(res))
-
-                    .map(res => [res['meta'].total, this.parseResults(res['results'], properties),RefineResultsUtils.parse(res['refineResults'],refineFields, "other")]);
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties),RefineResultsUtils.parse(res['refineResults'],refineFields, "other")]));
     }
     advancedSearchOrps (params: string, page: number, size: number, sortBy: string, properties:EnvProperties ):any {
       let url = properties.searchResourcesAPIURL;
@@ -113,9 +109,9 @@
       url += "&format=json";
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-      .map(res => <any> res.json())
+      //.map(res => <any> res.json())
       //.do(res => console.info(res))
-      .map(res => [res['meta'].total, this.parseResults(res['results'], properties)]);
+      .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties)]));
     }
     searchOrpsForEntity (params: string, page: number, size: number, properties:EnvProperties):any {
         let link = properties.searchAPIURLLAst;
@@ -123,8 +119,8 @@
         let url = link+params+"/other"+"?format=json";
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => [res['meta'].total, this.parseResults(res['results'], properties)]);
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties)]));
     }
 
     searchOrpsForDataproviders(params: string, page: number, size: number, properties:EnvProperties):any {
@@ -132,8 +128,8 @@
 
         let url = link+params+ "&page="+(page-1)+"&size="+size + "&format=json";
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => [res['meta'].total, this.parseResults(res['results'], properties)]);
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties)]));
     }
 
     parseResults(data: any, properties: EnvProperties): SearchResult[] {
@@ -351,8 +347,8 @@
     numOfOrps(url: string, properties:EnvProperties):any {
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                  .map(res => <any> res.json())
-                  .map(res => res.total);
+                  //.map(res => <any> res.json())
+                  .pipe(map(res => res['total']));
     }
 
     numOfEntityOrps(id: string, entity: string, properties:EnvProperties):any {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/layout.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/layout.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/layout.service.ts	(revision 55964)
@@ -1,11 +1,13 @@
 import {Injectable} from '@angular/core';
 import {Http, Response} from '@angular/http';
-import {Observable} from 'rxjs/Observable';
+import {HttpClient, HttpErrorResponse} from "@angular/common/http";
+import {Observable, throwError} from 'rxjs';
 import {CustomOptions} from './servicesUtils/customOptions.class';
+import {catchError} from "rxjs/operators";
 
 @Injectable()
 export class LayoutService {
-    constructor(private http: Http) {
+    constructor(private http: HttpClient) {
     }
 
     static removeNulls(obj) {
@@ -22,26 +24,26 @@
     saveLayout(pid: string, url: string, layout: any) {
         LayoutService.removeNulls(layout);
         return this.http.post(url + 'community/' + pid + '/updateLayout', JSON.stringify(layout), CustomOptions.getAuthOptionsWithBody())
-            .map(res => res.json())
-            .catch(this.handleError);
+            //.map(res => res.json())
+            .pipe(catchError(this.handleError));
     }
 
     getLayout(pid: string, url: string) {
         return this.http.get(url + 'community/' + pid + '/layout')
-            .map(res => res.json())
-            .catch(this.handleError);
+            //.map(res => res.json())
+            .pipe(catchError(this.handleError));
     }
 
     loadDefaultLayout(pid: string, url: string) {
         return this.http.post(url + 'community/' + pid + '/resetLayout', null, CustomOptions.getAuthOptionsWithBody())
-            .map(res => res.json())
-            .catch(this.handleError);
+            //.map(res => res.json())
+            .pipe(catchError(this.handleError));
     }
 
-    private handleError(error: Response) {
+    private handleError(error: HttpErrorResponse) {
         // in a real world app, we may send the error to some remote logging infrastructure
         // instead of just logging it to the console
         console.error(error);
-        return Observable.throw(error.json().error || 'Server error');
+        return throwError(error.error || 'Server error');
     }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchOrganizations.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchOrganizations.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchOrganizations.service.ts	(revision 55964)
@@ -1,18 +1,20 @@
 import {Injectable} from '@angular/core';
 import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+import {HttpClient} from "@angular/common/http";
+import {Observable}     from 'rxjs';
+
+
+
 import {SearchResult}     from '../utils/entities/searchResult';
 import {RefineResultsUtils} from './servicesUtils/refineResults.class';
 import{EnvProperties} from '../utils/properties/env-properties';
 import {StringUtils} from '../utils/string-utils.class';
+import {map} from "rxjs/operators";
 
 @Injectable()
 export class SearchOrganizationsService {
 
-    constructor(private http: Http ) {}
+    constructor(private http: HttpClient ) {}
 
     parseResultsForDeposit(data: any): {"name": string, "id": string}[] {
         let results: {"name": string, "id": string}[] = [];
@@ -51,8 +53,8 @@
 
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields, "organization")]);
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields, "organization")]));
     }
     advancedSearchOrganizations (params: string, page: number, size: number, properties:EnvProperties ):any {
       let url = properties.searchResourcesAPIURL;
@@ -72,9 +74,9 @@
       url += "&format=json";
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-      .map(res => <any> res.json())
+      //.map(res => <any> res.json())
 
-      .map(res => [res['meta'].total, this.parseResults(res['results'])]);
+      .pipe(map(res => [res['meta'].total, this.parseResults(res['results'])]));
     }
     parseResults(data: any): SearchResult[] {
         let results: SearchResult[] = [];
@@ -165,8 +167,8 @@
     numOfOrganizations(url: string, properties:EnvProperties ): any {
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                  .map(res => <any> res.json())
-                  .map(res => res.total);
+                  //.map(res => <any> res.json())
+                  .pipe(map(res => res['total']));
     }
 
     numOfEntityOrganizations(id: string, entity: string, properties:EnvProperties ):any {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchProjects.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchProjects.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchProjects.service.ts	(revision 55964)
@@ -1,18 +1,20 @@
 import {Injectable} from '@angular/core';
 import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+import {HttpClient} from "@angular/common/http";
+import {Observable}     from 'rxjs';
+
+
+
 import {SearchResult}     from '../utils/entities/searchResult';
 import {RefineResultsUtils} from './servicesUtils/refineResults.class';
 import{EnvProperties} from '../utils/properties/env-properties';
 import {StringUtils} from '../utils/string-utils.class';
+import {map} from "rxjs/operators";
 @Injectable()
 export class SearchProjectsService {
     private sizeOfDescription: number = 270;
 
-    constructor(private http: Http ) {}
+    constructor(private http: HttpClient ) {}
 
     searchProjects (params: string, refineParams:string, page: number, size: number, refineFields:string[] , properties:EnvProperties ):any {
 
@@ -29,8 +31,8 @@
 
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields, "project")]);
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields, "project")]));
     }
     getProjectsforDataProvider (datasourceId: string, page: number, size: number, properties:EnvProperties  ):any {
       let url = properties.searchResourcesAPIURL;
@@ -46,8 +48,8 @@
       url += "&format=json";
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-      .map(res => <any> res.json())
-      .map(res => [res['meta'].total, this.parseResults(res['results'])]);
+      //.map(res => <any> res.json())
+      .pipe(map(res => [res['meta'].total, this.parseResults(res['results'])]));
     }
     advancedSearchProjects (params: string, page: number, size: number, properties:EnvProperties  ):any {
       let url = properties.searchResourcesAPIURL;
@@ -62,8 +64,8 @@
       url += "&page="+(page-1)+"&size="+size;
       url += "&format=json";
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-      .map(res => <any> res.json())
-      .map(res => [res['meta'].total, this.parseResults(res['results'])]);
+      //.map(res => <any> res.json())
+      .pipe(map(res => [res['meta'].total, this.parseResults(res['results'])]));
     }
     getProjectsForOrganizations (organizationId: string, filterquery: string, page: number, size: number, refineFields:string[] , properties:EnvProperties  ):any {
       let url = properties.searchResourcesAPIURL;
@@ -84,15 +86,15 @@
       url += "&format=json";
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                  .map(res => <any> res.json())
-                  .map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields, "project")]);
+                  //.map(res => <any> res.json())
+                  .pipe(map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields, "project")]));
     }
     getFunders(properties:EnvProperties ):any {
        let url = properties.searchAPIURLLAst+"projects?refine=true&fields=funder&size=0"+ "&format=json";;
 
        return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                   .map(res => <any> res.json())
-                   .map(res => [res['meta'].total, res['refineResults']['funder']]);
+                   //.map(res => <any> res.json())
+                   .pipe(map(res => [res['meta'].total, res['refineResults']['funder']]));
 
 
       }
@@ -103,9 +105,10 @@
 
          return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url).toPromise()
                     .then(request =>{
-                      return (request.json().response.results)?request.json().response.results.result:request.json().response.result;
+                      //return (request.json().response.results)?request.json().response.results.result:request.json().response.result;
+                      return (request['response'].results)?request['response'].results.result:request['response'].result;
 
-                }) ;
+                    }) ;
         }
     parseResults(data: any): SearchResult[] {
         let results: SearchResult[] = [];
@@ -219,8 +222,8 @@
     numOfProjects(url: string, properties:EnvProperties ):any {
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                  .map(res => <any> res.json())
-                  .map(res => res.total);
+                  //.map(res => <any> res.json())
+                  .pipe(map(res => res['total']));
     }
 
     numOfEntityProjects(id: string, entity: string, properties:EnvProperties ):any {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchSoftware.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchSoftware.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchSoftware.service.ts	(revision 55964)
@@ -1,20 +1,22 @@
 import {Injectable} from '@angular/core';
 import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
+import {HttpClient} from "@angular/common/http";
+import {Observable}     from 'rxjs';
 import {SearchResult}     from '../utils/entities/searchResult';
 import {RefineResultsUtils} from './servicesUtils/refineResults.class';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+
+
+
 import { ParsingFunctions } from '../landingPages/landing-utils/parsingFunctions.class';
 import{EnvProperties} from '../utils/properties/env-properties';
 import {DOI, StringUtils} from '../utils/string-utils.class';
+import {map} from "rxjs/operators";
 @Injectable()
 export class SearchSoftwareService {
     private sizeOfDescription: number = 270;
     public parsingFunctions: ParsingFunctions = new ParsingFunctions();
 
-    constructor(private http: Http ) {}
+    constructor(private http: HttpClient ) {}
 
     searchSoftware (params: string, refineParams:string, page: number, size: number, sortBy: string, refineFields:string[], properties:EnvProperties ):any {
 
@@ -34,9 +36,9 @@
 
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
                     //.do(res => console.info(res))
-                    .map(res => [res['meta'].total, this.parseResults(res['results'], properties),RefineResultsUtils.parse(res['refineResults'],refineFields, "software")]);
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties),RefineResultsUtils.parse(res['refineResults'],refineFields, "software")]));
+
     }
     searchSoftwareById (id: string, properties:EnvProperties ):any {
 
@@ -44,8 +46,7 @@
 
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => this.parseResults(res, properties));
+                    .pipe(map(res => this.parseResults(res, properties)));
     }
 
     searchAggregators (id: string, params: string, refineParams:string, page: number, size: number, properties:EnvProperties ):any {
@@ -63,8 +64,8 @@
 
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => this.parseRefineResults(id, res['refineResults']))
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => this.parseRefineResults(id, res['refineResults'])));
     }
 
     searchSoftwareByDois (DOIs: string[], refineParams:string, page: number, size: number, refineFields:string[], properties:EnvProperties ):any {
@@ -86,9 +87,8 @@
 
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
                     //.do(res => console.info(res))
-                    .map(res => [res['meta'].total, this.parseResults(res['results'], properties),RefineResultsUtils.parse(res['refineResults'],refineFields, "software")]);
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties),RefineResultsUtils.parse(res['refineResults'],refineFields, "software")]));
     }
     advancedSearchSoftware (params: string, page: number, size: number, sortBy: string, properties:EnvProperties ):any {
       let url = properties.searchResourcesAPIURL;
@@ -109,9 +109,8 @@
       url += "&format=json";
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-      .map(res => <any> res.json())
-      //.do(res => console.info(res))
-      .map(res => [res['meta'].total, this.parseResults(res['results'], properties)]);
+      .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties)]));
+
     }
     searchSoftwareForEntity (params: string, page: number, size: number, properties:EnvProperties):any {
         let link = properties.searchAPIURLLAst;
@@ -118,8 +117,8 @@
         let url = link+params+"/software"+"?format=json";
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => [res['meta'].total, this.parseResults(res['results'], properties)]);
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties)]));
+
     }
 
     searchSoftwareForDataproviders(params: string, page: number, size: number, properties:EnvProperties):any {
@@ -127,8 +126,7 @@
         let url = link+params+ "&page="+(page-1)+"&size="+size + "&format=json";
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => [res['meta'].total, this.parseResults(res['results'], properties)]);
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties)]));
     }
 
     parseResults(data: any, properties: EnvProperties): SearchResult[] {
@@ -360,8 +358,8 @@
     numOfSoftware(url: string, properties:EnvProperties):any {
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                  .map(res => <any> res.json())
-                  .map(res => res.total);
+                  //.map(res => <any> res.json())
+                  .pipe(map(res => res['total']));
     }
 
     numOfEntitySoftware(id: string, entity: string, properties:EnvProperties):any {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/servicesUtils/customOptions.class.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/servicesUtils/customOptions.class.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/servicesUtils/customOptions.class.ts	(revision 55964)
@@ -1,9 +1,10 @@
-import { RequestOptions, Headers} from '@angular/http';
-import { COOKIE  } from '../../login/utils/helper.class';
+import {COOKIE} from '../../login/utils/helper.class';
+import {HttpHeaders} from "@angular/common/http";
 
 
 export class CustomOptions {
 
+  /*
   public static getAuthOptionsWithBody(): RequestOptions {
     const headers = new Headers();
     headers.append('Content-Type', 'application/json');
@@ -11,7 +12,18 @@
     const options = new RequestOptions({ headers: headers, withCredentials: true });
     return options;
   }
+  */
 
+  public static getAuthOptionsWithBody():{} {
+    return {
+      headers: new HttpHeaders({
+        'Content-Type': 'application/json',
+        'X-XSRF-TOKEN': COOKIE.getCookie(COOKIE.cookieName_id)
+      }), withCredentials: true
+    };
+  }
+
+  /*
   public static getAuthOptions(): RequestOptions {
     const headers = new Headers();
     headers.append('X-XSRF-TOKEN',  COOKIE.getCookie(COOKIE.cookieName_id));
@@ -18,5 +30,15 @@
     const options = new RequestOptions({ headers: headers, withCredentials: true });
     return options;
   }
+  */
 
+  public static getAuthOptions():any {
+    const httpOptions = {
+      headers: new HttpHeaders({
+        'X-XSRF-TOKEN': COOKIE.getCookie(COOKIE.cookieName_id),
+      }), withCredentials: true
+    };
+    return httpOptions;
+  }
+
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchPublications.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchPublications.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/searchPublications.service.ts	(revision 55964)
@@ -1,15 +1,11 @@
 import {Injectable} from '@angular/core';
-import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
-
-import {SearchResult}     from '../utils/entities/searchResult';
+import {HttpClient} from "@angular/common/http";
+import {SearchResult} from '../utils/entities/searchResult';
 import {RefineResultsUtils} from './servicesUtils/refineResults.class';
 import {DOI, StringUtils} from '../utils/string-utils.class';
-import { ParsingFunctions } from '../landingPages/landing-utils/parsingFunctions.class';
-import{EnvProperties} from '../utils/properties/env-properties';
+import {ParsingFunctions} from '../landingPages/landing-utils/parsingFunctions.class';
+import {EnvProperties} from '../utils/properties/env-properties';
+import {map} from "rxjs/operators";
 
 
 @Injectable()
@@ -17,7 +13,7 @@
     private sizeOfDescription: number = 270;
     public parsingFunctions: ParsingFunctions = new ParsingFunctions();
 
-    constructor(private http: Http ) {}
+    constructor(private http: HttpClient ) {}
 
     searchPublications (params: string, refineParams:string, page: number, size: number, sortBy: string, refineFields:string[] , properties:EnvProperties):any {
         let link = properties.searchAPIURLLAst+"publications";
@@ -36,9 +32,7 @@
 
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    // .do(res => console.info(res))
-                    .map(res => [res['meta'].total, this.parseResults(res['results'], properties),RefineResultsUtils.parse(res['refineResults'],refineFields, "publication")]);
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties),RefineResultsUtils.parse(res['refineResults'],refineFields, "publication")]));
     }
     searchPublicationById (id: string, properties:EnvProperties ):any {
 
@@ -45,8 +39,7 @@
         let url = properties.searchAPIURLLAst+"publications/"+id+"?format=json";
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res =>  this.parseResults(res, properties));
+                    .pipe(map(res =>  this.parseResults(res, properties)));
     }
 
     searchAggregators (id: string, params: string, refineParams:string, page: number, size: number, properties:EnvProperties ):any {
@@ -65,8 +58,8 @@
 
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => this.parseRefineResults(id, res['refineResults']));
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => this.parseRefineResults(id, res['refineResults'])));
     }
 
     searchPublicationsByDois (DOIs: string[], refineParams:string, page: number, size: number, refineFields:string[], properties:EnvProperties ):any {
@@ -89,9 +82,9 @@
         url += "&page="+(page-1)+"&size="+size;
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
+                    //.map(res => <any> res.json())
                     //.do(res => console.info(res))
-                    .map(res => [res['meta'].total, this.parseResults(res['results'], properties),RefineResultsUtils.parse(res['refineResults'],refineFields, "publication")]);
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties),RefineResultsUtils.parse(res['refineResults'],refineFields, "publication")]));
     }
 
     advancedSearchPublications (params: string, page: number, size: number, sortBy: string, properties:EnvProperties ):any {
@@ -113,10 +106,9 @@
       url += "&format=json";
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-      .map(res => <any> res.json())
+      //.map(res => <any> res.json())
       //.do(res => console.info(res))
-
-      .map(res => [res['meta'].total, this.parseResults(res['results'], properties)]);
+      .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties)]));
     }
     searchPublicationsForEntity (params: string, page: number, size: number, properties:EnvProperties):any {
         let link = properties.searchAPIURLLAst;
@@ -126,8 +118,7 @@
 
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => [res['meta'].total, this.parseResults(res['results'], properties)]);
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties)]));
     }
 
     searchPublicationsForDataproviders(params: string, page: number, size: number, properties:EnvProperties):any {
@@ -134,8 +125,7 @@
         let link = properties.searchAPIURLLAst;
         let url = link+params+ "&page="+(page-1)+"&size="+size + "&format=json";
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => [res['meta'].total, this.parseResults(res['results'], properties)]);
+                    .pipe(map(res => [res['meta'].total, this.parseResults(res['results'], properties)]));
     }
 /*
 	searchPublicationsCSV (params: string, refineParams:string, page: number, size: number):any {
@@ -463,8 +453,8 @@
     numOfPublications(url: string, properties:EnvProperties): any {
 
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                  .map(res => <any> res.json())
-                  .map(res => res.total);
+                  //.map(res => <any> res.json())
+                  .pipe(map(res => res['total']));
     }
 
     numOfEntityPublications(id: string, entity: string, properties:EnvProperties):any {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/curatorPhoto.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/curatorPhoto.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/services/curatorPhoto.service.ts	(revision 55964)
@@ -1,8 +1,7 @@
 import {Injectable} from '@angular/core';
 import {Observable} from 'rxjs/Observable';
 import {CustomOptions} from './servicesUtils/customOptions.class';
-import {HttpClient, HttpHeaders} from '@angular/common/http';
-import {COOKIE} from '../login/utils/helper.class';
+import {HttpClient} from '@angular/common/http';
 
 @Injectable()
 export class CuratorPhotoService {
@@ -12,20 +11,11 @@
     uploadPhoto(url: string, photo: File): Observable<any> {
         const formData = new FormData();
         formData.append('photo', photo);
-        return this.http.post(url, formData, this.getAuthOptions());
+        return this.http.post(url, formData, CustomOptions.getAuthOptions());
     }
 
     deletePhoto(url: string) {
-        return this.http.delete(url, this.getAuthOptions());
+        return this.http.delete(url, CustomOptions.getAuthOptions());
     }
 
-    // TODO remove and use CustomOptions.getAuthOptions(false)
-    private getAuthOptions(): any {
-        const httpOptions = {
-            headers: new HttpHeaders({
-                'X-XSRF-TOKEN': COOKIE.getCookie(COOKIE.cookieName_id),
-            })
-        };
-        return httpOptions;
-    }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/find/search.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/find/search.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/find/search.component.ts	(revision 55964)
@@ -6,7 +6,7 @@
 import {Location}                     from '@angular/common';
 import {Title, Meta}                  from '@angular/platform-browser';
 
-import {Observable}                   from 'rxjs/Observable';
+import {Observable}                   from 'rxjs';
 
 import {FetchPublications}            from '../../utils/fetchEntitiesClasses/fetchPublications.class';
 import {FetchDataproviders}           from  '../../utils/fetchEntitiesClasses/fetchDataproviders.class';
@@ -155,9 +155,9 @@
 
       this.config.getCommunityInformation(this.properties.adminToolsAPIURL, (this.connectCommunityId)?this.connectCommunityId:this.properties.adminToolsCommunity ).subscribe(data => {
           var showEntity = {};
-          for(var i=0; i< data.entities.length; i++){
+          for(var i=0; i< data['entities'].length; i++){
 
-            showEntity[""+data.entities[i]["pid"]+""] = data.entities[i]["isEnabled"];
+            showEntity[""+data['entities'][i]["pid"]+""] = data['entities'][i]["isEnabled"];
           }
           this.showPublications =  showEntity["publication"];
           this.showDatasets =   showEntity["dataset"];
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchOrps.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchOrps.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchOrps.component.ts	(revision 55964)
@@ -1,5 +1,5 @@
 import {Component, Input, ViewChild} from '@angular/core';
-import {Observable}       from 'rxjs/Observable';
+import {Observable}       from 'rxjs';
 import { Router, ActivatedRoute} from '@angular/router';
 import {Filter, Value,AdvancedField} from '../searchUtils/searchHelperClasses.class';
 import {SearchOrpsService} from '../../services/searchOrps.service';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchDataProviders.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchDataProviders.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchDataProviders.component.ts	(revision 55964)
@@ -1,5 +1,5 @@
 import {Component, Input, ViewChild} from '@angular/core';
-import {Observable}       from 'rxjs/Observable';
+import {Observable}       from 'rxjs';
 import { Router, ActivatedRoute} from '@angular/router';
 import {Filter, Value,AdvancedField} from '../searchUtils/searchHelperClasses.class';
 import {SearchDataprovidersService} from '../../services/searchDataproviders.service';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchOrganizations.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchOrganizations.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchOrganizations.component.ts	(revision 55964)
@@ -1,5 +1,5 @@
 import {Component, Input, ViewChild} from '@angular/core';
-import {Observable}       from 'rxjs/Observable';
+import {Observable}       from 'rxjs';
 import { Router, ActivatedRoute} from '@angular/router';
 import {Filter, Value,AdvancedField} from '../searchUtils/searchHelperClasses.class';
 import {SearchOrganizationsService} from '../../services/searchOrganizations.service';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchDatasets.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchDatasets.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchDatasets.component.ts	(revision 55964)
@@ -1,5 +1,5 @@
 import {Component, Input, ViewChild} from '@angular/core';
-import {Observable}       from 'rxjs/Observable';
+import {Observable}       from 'rxjs';
 import { Router, ActivatedRoute} from '@angular/router';
 import {Filter, Value,AdvancedField} from '../searchUtils/searchHelperClasses.class';
 import {SearchDatasetsService} from '../../services/searchDatasets.service';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchProjects.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchProjects.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchProjects.component.ts	(revision 55964)
@@ -1,5 +1,5 @@
 import {Component, Input, ViewChild} from '@angular/core';
-import {Observable}       from 'rxjs/Observable';
+import {Observable}       from 'rxjs';
 import { Router, ActivatedRoute} from '@angular/router';
 import {Filter, Value,AdvancedField} from '../searchUtils/searchHelperClasses.class';
 import {SearchProjectsService} from '../../services/searchProjects.service';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchSoftware.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchSoftware.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchSoftware.component.ts	(revision 55964)
@@ -1,5 +1,5 @@
 import {Component, Input, ViewChild} from '@angular/core';
-import {Observable}       from 'rxjs/Observable';
+import {Observable}       from 'rxjs';
 import { Router, ActivatedRoute} from '@angular/router';
 import {Filter, Value,AdvancedField} from '../searchUtils/searchHelperClasses.class';
 import {SearchSoftwareService} from '../../services/searchSoftware.service';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchPublications.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchPublications.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/advanced/advancedSearchPublications.component.ts	(revision 55964)
@@ -1,5 +1,5 @@
 import {Component, Input, ViewChild} from '@angular/core';
-import {Observable}       from 'rxjs/Observable';
+import {Observable}       from 'rxjs';
 import { Router, ActivatedRoute} from '@angular/router';
 import {Filter, Value,AdvancedField} from '../searchUtils/searchHelperClasses.class';
 import {SearchPublicationsService} from '../../services/searchPublications.service';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/dateFilter.module.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/dateFilter.module.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/dateFilter.module.ts	(revision 55964)
@@ -1,11 +1,16 @@
 import { NgModule}            from '@angular/core';
 import { CommonModule }        from '@angular/common';
-import { FormsModule }         from '@angular/forms';
+import { FormsModule, ReactiveFormsModule }         from '@angular/forms';
 import { MyDatePickerModule } from '../../utils/my-date-picker/my-date-picker.module';
 import {DateFilterComponent} from './dateFilter.component';
+import {MatNativeDateModule} from '@angular/material';
+import {MatDatepickerModule} from '@angular/material/datepicker';
+import {MatFormFieldModule} from '@angular/material';
+import {MatInputModule} from '@angular/material';
 @NgModule({
   imports: [
-    CommonModule, FormsModule, MyDatePickerModule
+    CommonModule, FormsModule, ReactiveFormsModule, MyDatePickerModule,
+    MatNativeDateModule, MatDatepickerModule, MatFormFieldModule, MatInputModule
   ],
   declarations: [
     DateFilterComponent
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/advancedSearchForm.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/advancedSearchForm.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/advancedSearchForm.component.ts	(revision 55964)
@@ -1,12 +1,10 @@
-import {Component, Input, Output, EventEmitter, ElementRef} from '@angular/core';
-import {Observable}       from 'rxjs/Observable';
-import { Subject } from 'rxjs/Subject';
+import {Component, EventEmitter, Input, Output} from '@angular/core';
 import {ActivatedRoute} from '@angular/router';
 
-import {AdvancedField, OPERATOR} from '../searchUtils/searchHelperClasses.class';
-import {SearchFields, FieldDetails} from '../../utils/properties/searchFields';
+import {AdvancedField} from '../searchUtils/searchHelperClasses.class';
+import {SearchFields} from '../../utils/properties/searchFields';
 import {Dates} from '../../utils/string-utils.class';
-import{EnvProperties} from '../../utils/properties/env-properties';
+import {EnvProperties} from '../../utils/properties/env-properties';
 
 @Component({
     selector: 'advanced-search-form',
@@ -30,7 +28,7 @@
   fieldList:{[id:string]:any[]} = {};
   public searchFields:SearchFields = new SearchFields();
 properties:EnvProperties;
-  public operators:  {name:string, id:string}[] = this.searchFields.ADVANCED_SEARCH_OPERATORS;
+  public operators: {name:string, id:string}[] = this.searchFields.ADVANCED_SEARCH_OPERATORS;
     constructor (private route: ActivatedRoute) {
      }
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/searchDownload.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/searchDownload.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/searchDownload.component.ts	(revision 55964)
@@ -1,5 +1,5 @@
 import {Component, Input, Output, EventEmitter, ViewChild} from '@angular/core';
-import {Observable}       from 'rxjs/Observable';
+import {Observable}       from 'rxjs';
 import { ActivatedRoute} from '@angular/router';
 import {AlertModal} from '../../utils/modal/alert';
 import {ReportsService} from '../../services/reports.service';
@@ -8,7 +8,7 @@
 import{EnvProperties} from '../../utils/properties/env-properties';
 import {ErrorCodes} from '../../utils/properties/errorCodes';
 
-import 'rxjs/Rx' ;
+import 'rxjs' ;
 
 @Component({
     selector: 'search-download',
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/searchFilter.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/searchFilter.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/searchFilter.component.ts	(revision 55964)
@@ -1,5 +1,5 @@
 import {Component, Input, Output, EventEmitter} from '@angular/core';
-import {Observable}       from 'rxjs/Observable';
+import {Observable}       from 'rxjs';
 
 import { Filter, Value} from './searchHelperClasses.class';
 import {Open} from '../../utils/modal/open.component';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/advancedSearchPage.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/advancedSearchPage.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/searchPages/searchUtils/advancedSearchPage.component.ts	(revision 55964)
@@ -4,7 +4,7 @@
 import {ActivatedRoute,  Router}      from '@angular/router';
 import {Title, Meta}                  from '@angular/platform-browser';
 
-import {Observable}                   from 'rxjs/Observable';
+import {Observable}                   from 'rxjs';
 
 import {Filter, Value, AdvancedField} from '../searchUtils/searchHelperClasses.class';
 import {SearchResult}                 from '../../utils/entities/searchResult';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/curators/curator.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/curators/curator.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/curators/curator.service.ts	(revision 55964)
@@ -1,9 +1,9 @@
 import {Injectable} from '@angular/core';
-import {HttpClient, HttpHeaders} from '@angular/common/http';
+import {HttpClient} from '@angular/common/http';
 import {BehaviorSubject, Observable} from 'rxjs';
 import {Curator} from '../../utils/entities/CuratorInfo';
 import {EnvProperties} from '../../utils/properties/env-properties';
-import {COOKIE} from '../../login/utils/helper.class';
+import {CustomOptions} from "../../services/servicesUtils/customOptions.class";
 
 @Injectable()
 export class CuratorService {
@@ -34,7 +34,7 @@
   }
 
   public updateCurator(url: string, curator: Curator) {
-    return this.http.post<Curator>(url, curator, this.getAuthOptions());
+    return this.http.post<Curator>(url, curator, CustomOptions.getAuthOptions());
   }
 
   public getCurator(properties: EnvProperties, url: string): Observable<Curator> {
@@ -41,13 +41,4 @@
     return this.http.get<Curator>((properties.useCache) ? (properties.cacheUrl + encodeURIComponent(url)) : url);
   }
 
-  // TODO remove and use CustomOptions.getAuthOptions()
-  private getAuthOptions(): any {
-     const httpOptions = {
-      headers: new HttpHeaders({
-        'X-XSRF-TOKEN': COOKIE.getCookie(COOKIE.cookieName_id),
-      }), withCredentials: true
-    };
-    return httpOptions;
-  }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/communityGuard/connectAdminLoginGuard.guard.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/communityGuard/connectAdminLoginGuard.guard.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/communityGuard/connectAdminLoginGuard.guard.ts	(revision 55964)
@@ -1,3 +1,5 @@
+
+import {map, filter, mergeMap} from 'rxjs/operators';
 import { Injectable } from '@angular/core';
 import {
   Router,
@@ -4,9 +6,9 @@
   CanActivate,
   ActivatedRouteSnapshot,
   RouterStateSnapshot,
-  CanLoad, Route
+  CanLoad, Route, UrlSegment
 } from '@angular/router';
-import {Observable} from 'rxjs/Observable';
+import {Observable} from 'rxjs';
 import {Session} from '../../login/utils/helper.class';
 import {LoginErrorCodes} from '../../login/utils/guardHelper.class';
 import {CommunityService} from '../community/community.service';
@@ -25,10 +27,10 @@
       if (Session.isPortalAdministrator() || Session.isCommunityCurator()) {
         return true;
       } else {
-        const obs = this.propertiesService.subscribeEnvironment().map(res => res).mergeMap(properties => {
+        const obs = this.propertiesService.subscribeEnvironment().pipe(map(res => res),mergeMap(properties => {
           return this.communityService.isCommunityManager(properties, properties['communityAPI'] + community, Session.getUserEmail());
-        });
-        obs.filter(enabled => !enabled)
+        }),);
+        obs.pipe(filter(enabled => !enabled))
             .subscribe(() => this.router.navigate(['/user-info'], {
               queryParams: {
                 'errorCode': errorCode,
@@ -49,7 +51,7 @@
     return this.check(route.queryParams['communityId'], state.url);
   }
 
-  canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean {
+  canLoad(route: Route, segments: UrlSegment[]): Observable<boolean> | Promise<boolean> | boolean {
     const path = '/' + route.path + document.location.search;
     return this.check(ConnectHelper.getCommunityFromPath(path), path);
   }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/communityGuard/connectRIGuard.guard.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/communityGuard/connectRIGuard.guard.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/communityGuard/connectRIGuard.guard.ts	(revision 55964)
@@ -1,3 +1,5 @@
+
+import {filter, mergeMap} from 'rxjs/operators';
 import { Injectable } from '@angular/core';
 import {
   Router,
@@ -5,9 +7,9 @@
   ActivatedRouteSnapshot,
   RouterStateSnapshot,
   CanLoad,
-  Route
+  Route, UrlSegment
 } from '@angular/router';
-import {Observable} from 'rxjs/Observable';
+import {Observable} from 'rxjs';
 import {CommunityService} from '../community/community.service';
 import { EnvironmentSpecificService} from '../../utils/properties/environment-specific.service';
 import {ConnectHelper} from '../connectHelper';
@@ -21,10 +23,10 @@
   }
 
   check(community: string): Observable<boolean> | boolean {
-    const obs = this.propertiesService.subscribeEnvironment().mergeMap(properties => {
+    const obs = this.propertiesService.subscribeEnvironment().pipe(mergeMap(properties => {
       return this.communityService.isRIType(properties, properties['communityAPI'] + community);
-    });
-    obs.filter(enabled => !enabled)
+    }));
+    obs.pipe(filter(enabled => !enabled))
         .subscribe(() => this.router.navigate(['errorcommunity']));
     return obs;
   }
@@ -33,7 +35,7 @@
     return this.check(route.queryParams['communityId']);
   }
 
-  canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean {
+  canLoad(route: Route, segments: UrlSegment[]): Observable<boolean> | Promise<boolean> | boolean {
     const path = '/' + route.path + document.location.search;
     return this.check(ConnectHelper.getCommunityFromPath(path));
   }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/zenodoCommunities/searchZenodoCommunities.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/zenodoCommunities/searchZenodoCommunities.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/zenodoCommunities/searchZenodoCommunities.service.ts	(revision 55964)
@@ -1,15 +1,16 @@
 import {Injectable} from '@angular/core';
 import {Http} from '@angular/http';
+import {HttpClient} from "@angular/common/http";
 import{EnvProperties} from '../../utils/properties/env-properties';
 
 @Injectable()
 export class SearchZenodoCommunitiesService {
-    constructor(private http: Http ) {}
+    constructor(private http: HttpClient ) {}
 
     searchZCommunities (properties:EnvProperties, communityId: string):any {
         let url = properties.communityAPI+communityId+"/zenodocommunities";
 
-        return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
+        return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url);
+                    //.map(res => <any> res.json())
     }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/projects/searchProjects.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/projects/searchProjects.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/projects/searchProjects.service.ts	(revision 55964)
@@ -1,15 +1,16 @@
 import {Injectable} from '@angular/core';
 import {Http} from '@angular/http';
+import {HttpClient} from "@angular/common/http";
 import{EnvProperties} from '../../utils/properties/env-properties';
 
 @Injectable()
 export class SearchCommunityProjectsService {
-    constructor(private http: Http ) {}
+    constructor(private http: HttpClient ) {}
 
     searchProjects (properties:EnvProperties, communityId: string):any {
         let url = properties.communityAPI+communityId+"/projects";
 
-        return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
+        return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url);
+                    //.map(res => <any> res.json())
     }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/userEmailPreferences/mailPrefs.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/userEmailPreferences/mailPrefs.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/userEmailPreferences/mailPrefs.component.ts	(revision 55964)
@@ -1,6 +1,6 @@
 import {Component, ViewChild, Input} from '@angular/core';
 import {Location} from '@angular/common';
-import {Observable}       from 'rxjs/Observable';
+import {Observable}       from 'rxjs';
 import {ActivatedRoute, Router} from '@angular/router';
 import {ModalLoading} from '../../utils/modal/loading.component';
 import {AlertModal} from '../../utils/modal/alert';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/zenodoCommunities/zenodo-communities.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/zenodoCommunities/zenodo-communities.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/zenodoCommunities/zenodo-communities.service.ts	(revision 55964)
@@ -1,28 +1,32 @@
 import {Injectable}                 from '@angular/core';
 import {Http, Response}             from '@angular/http';
 import {Headers, RequestOptions}    from '@angular/http';
-import {Observable}                 from 'rxjs/Rx';
+import {HttpClient} from "@angular/common/http";
+import {Observable}                 from 'rxjs';
 
 import {ZenodoCommunityInfo}        from './zenodoCommunityInfo';
 import {EnvProperties}              from '../../utils/properties/env-properties';
+import {map} from "rxjs/operators";
 
 @Injectable()
 export class ZenodoCommunitiesService {
 
-    constructor(private http:Http) {
+    constructor(private http:HttpClient) {
     }
 
     getZenodoCommunities(properties:EnvProperties, url: string) {
             return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)) : url)
-                            .map(res => <any> res.json()).map(res => [this.parseZenodoCommunities(res.hits.hits),res.hits.total]);
+                            //.map(res => <any> res.json())
+                            .pipe(map(res => [this.parseZenodoCommunities(res['hits'].hits),res['hits'].total]));
     }
     getZenodoCommunityById(properties:EnvProperties, url: string, openaireId:string) {
             return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)) : url)
-                            .map(res => <any> res.json()).map(res => {
+                            //.map(res => <any> res.json())
+                            .pipe(map(res => {
                               var community = this.parseZenodoCommunity(res);
                               community["openaireId"]=openaireId;
                               return community;
-                            });
+                            }));
     }
 
     parseZenodoCommunities(data: any): ZenodoCommunityInfo[] {
@@ -53,6 +57,7 @@
 
     getTotalZenodoCommunities(properties:EnvProperties, url: string) {
             return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)) : url)
-                            .map(res => <any> res.json()).map(res => res.hits.total);
+                            //.map(res => <any> res.json())
+                            .pipe(map(res => res['hits'].total));
     }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/orp/orp.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/orp/orp.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/orp/orp.service.ts	(revision 55964)
@@ -1,18 +1,15 @@
 import {Injectable} from '@angular/core';
-import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
+import {HttpClient, HttpErrorResponse} from "@angular/common/http";
+import {throwError} from 'rxjs';
 import {OrpInfo} from '../../utils/entities/orpInfo';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
-import{EnvProperties} from '../../utils/properties/env-properties';
+import {EnvProperties} from '../../utils/properties/env-properties';
+import {ParsingFunctions} from '../landing-utils/parsingFunctions.class';
+import {map} from "rxjs/operators";
 
-import { ParsingFunctions } from '../landing-utils/parsingFunctions.class';
-
 @Injectable()
 export class OrpService {
 
-  constructor(private http: Http ) {
+  constructor(private http: HttpClient ) {
     this.parsingFunctions = new ParsingFunctions();
   }
 
@@ -25,9 +22,9 @@
     let key = url;
 
     return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => [res['result']['header']['dri:status'], res['result']['metadata']['oaf:entity'],res])
-                    .map(res => [res[1]['oaf:result'],  //0
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => [res['result']['header']['dri:status'], res['result']['metadata']['oaf:entity'],res]))
+                    .pipe(map(res => [res[1]['oaf:result'],  //0
                                  res[1]['oaf:result']['title'],   //1
                                  res[1]['oaf:result']['rels']['rel'], //2
                                  res[1]['oaf:result']['children'],  //3
@@ -43,14 +40,15 @@
                                  res[2],  //13
                                  (res[1]['extraInfo']!= undefined && res[1]['extraInfo']['citations']!= undefined)? res[1]['extraInfo']['citations']['citation']:null, //14
                                   res[1]['oaf:result']['journal'] //15
-                    ]).map(res => this.parseOrpInfo(res, properties));
+                    ]))
+                    .pipe(map(res => this.parseOrpInfo(res, properties)));
   }
 
-  private handleError (error: Response) {
+  private handleError (error: HttpErrorResponse) {
   // in a real world app, we may send the error to some remote logging infrastructure
   // instead of just logging it to the console
     console.log(error);
-    return Observable.throw(error  || 'Server error');
+    return throwError(error  || 'Server error');
   }
 
   parseOrpInfo (data: any, properties: EnvProperties):any {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/dataProvider/relatedDatasourcesTab.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/dataProvider/relatedDatasourcesTab.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/dataProvider/relatedDatasourcesTab.component.ts	(revision 55964)
@@ -7,7 +7,7 @@
 
 import { ErrorCodes} from '../../utils/properties/errorCodes';
 import {RouterHelper} from '../../utils/routerHelper.class';
-import { Observable } from 'rxjs/Observable';
+import { Observable } from 'rxjs';
 import{EnvProperties} from '../../utils/properties/env-properties';
 
 @Component({
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/project/project.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/project/project.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/project/project.service.ts	(revision 55964)
@@ -1,18 +1,20 @@
 import {Injectable} from '@angular/core';
 import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
+import {HttpClient, HttpErrorResponse} from "@angular/common/http";
+import {Observable, throwError} from 'rxjs';
 import {ProjectInfo} from '../../utils/entities/projectInfo';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+
+
+
 import{EnvProperties} from '../../utils/properties/env-properties';
 
 import { ParsingFunctions } from '../landing-utils/parsingFunctions.class';
+import {map} from "rxjs/operators";
 
 @Injectable()
 export class ProjectService {
 
-    constructor(private http: Http ) {
+    constructor(private http: HttpClient ) {
       this.parsingFunctions = new ParsingFunctions();
     }
 
@@ -25,12 +27,12 @@
         let key = url;
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => res['result']['metadata']['oaf:entity']['oaf:project'])
-                    .map(res => [res,
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => res['result']['metadata']['oaf:entity']['oaf:project']))
+                    .pipe(map(res => [res,
                                  res['fundingtree'],
-                                 res['rels']['rel']])
-                    .map(res => this.parseProjectInfo(res, properties));
+                                 res['rels']['rel']]))
+                    .pipe(map(res => this.parseProjectInfo(res, properties)));
 
     }
 
@@ -43,13 +45,13 @@
          let key = url;
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => res['results'][0])
-                    .map(res => [res['result']['metadata']['oaf:entity']['oaf:project'],res['result']['header']['dri:objIdentifier']])
-                    .map(res => [res[0],
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => res['results'][0]))
+                    .pipe(map(res => [res['result']['metadata']['oaf:entity']['oaf:project'],res['result']['header']['dri:objIdentifier']]))
+                    .pipe(map(res => [res[0],
                                  res[0]['fundingtree'],
-                                 res[0]['rels']['rel'],res[1]])
-                    .map(res => this.parseProjectInfo(res, properties));
+                                 res[0]['rels']['rel'],res[1]]))
+                    .pipe(map(res => this.parseProjectInfo(res, properties)));
 
     }
     /*
@@ -61,12 +63,12 @@
         let key = url+'_projectDates';
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => res['result']['metadata']['oaf:entity']['oaf:project'])
-                    .map(res => [res,
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => res['result']['metadata']['oaf:entity']['oaf:project']))
+                    .pipe(map(res => [res,
                               res['fundingtree'],
-                              res['rels']['rel']])
-                    .map(res => this.parseProjectDates(id,res))
+                              res['rels']['rel']]))
+                    .pipe(map(res => this.parseProjectDates(id,res)))
 
     }
 
@@ -75,14 +77,14 @@
         let key = url;
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => res['result']['metadata']['oaf:entity']['oaf:project'])
-                    .map(res => this.parseHTMLInfo(res));
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => res['result']['metadata']['oaf:entity']['oaf:project']))
+                    .pipe(map(res => this.parseHTMLInfo(res)));
     }
 
-    private handleError (error: Response) {
+    private handleError (error: HttpErrorResponse) {
         console.log(error);
-        return Observable.throw(error  || 'Server error');
+        return throwError(error  || 'Server error');
     }
 
     parseHTMLInfo (data: any):any {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/publication/publication.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/publication/publication.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/publication/publication.component.ts	(revision 55964)
@@ -3,7 +3,7 @@
 import {ActivatedRoute, Router}       from '@angular/router';
 import {Title, Meta}                  from '@angular/platform-browser';
 
-import {Observable}                   from 'rxjs/Observable';
+import {Observable}                   from 'rxjs';
 
 import {EnvProperties}                from '../../utils/properties/env-properties';
 import {PublicationInfo}              from '../../utils/entities/publicationInfo';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/landing-utils/metrics.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/landing-utils/metrics.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/landing-utils/metrics.component.ts	(revision 55964)
@@ -3,7 +3,7 @@
 import {MetricsService } from '../../services/metrics.service';
 import {ErrorCodes} from '../../utils/properties/errorCodes';
 
-import { Subscription }   from 'rxjs/Subscription';
+import { Subscription }   from 'rxjs';
 import{EnvProperties} from '../../utils/properties/env-properties';
 
 @Component({
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/email/email.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/email/email.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/email/email.service.ts	(revision 55964)
@@ -1,5 +1,6 @@
 import {Injectable} from '@angular/core';
 import {Http, Response, Headers, RequestOptions} from '@angular/http';
+import {HttpClient} from "@angular/common/http";
 import {Email} from './email';
 import {CustomOptions} from '../../services/servicesUtils/customOptions.class';
 import {EmailRecaptcha} from "../entities/EmailRecaptcha";
@@ -7,14 +8,14 @@
 @Injectable()
 export class EmailService {
 
-    constructor(private http:Http) {
+    constructor(private http:HttpClient) {
     }
 
     sendEmail(url: string, email: Email) {
         let body = JSON.stringify(email);
 
-        return this.http.post(url, body, CustomOptions.getAuthOptionsWithBody())
-                   .map(request => request.json());
+        return this.http.post(url, body, CustomOptions.getAuthOptionsWithBody());
+                   //.map(request => request.json());
     }
 
     contact(url: string, email: Email, recaptcha: string) {
@@ -21,8 +22,8 @@
         const data: EmailRecaptcha = new EmailRecaptcha();
         data.email = email;
         data.recaptcha = recaptcha;
-        return this.http.post(url, data)
-            .map(request => request.json());
+        return this.http.post(url, data);
+            //.map(request => request.json());
     }
 
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/staticAutoComplete/ISVocabularies.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/staticAutoComplete/ISVocabularies.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/staticAutoComplete/ISVocabularies.service.ts	(revision 55964)
@@ -1,16 +1,15 @@
 import {Injectable} from '@angular/core';
 import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
+import {HttpClient, HttpErrorResponse} from "@angular/common/http";
+import {Observable, throwError,  of } from 'rxjs';
 import {AutoCompleteValue} from '../../searchPages/searchUtils/searchHelperClasses.class';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
 
 import{EnvProperties} from '../properties/env-properties';
+import {catchError, map} from "rxjs/operators";
 
 @Injectable()
 export class ISVocabulariesService {
-    constructor(private http: Http ) {}
+    constructor(private http: HttpClient ) {}
 
     getVocabularyByType(field:string,entity:string, properties:EnvProperties):any{
       //console.log("getVocabulary field: "+ field + " for entity: "+ entity);
@@ -34,7 +33,7 @@
         return this.getVocabularyFromService(vocabulary, properties);
 
       }else if ( field == "type" && (entity == "software" || entity == "other")){
-        return Observable.of([]);
+        return of([]);
 
       }else if( field == "access" && (entity == "publication" || entity == "dataset" ||  entity == "software" || entity == "other")){
         // file= "accessMode.json";
@@ -81,10 +80,10 @@
         //     return results;
         //   });
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => res['terms'])
-                    .map(res => this.parse(res))
-                    .catch(this.handleError);
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => res['terms']))
+                    .pipe(map(res => this.parse(res)))
+                    .pipe(catchError(this.handleError));
 
     }
 
@@ -100,10 +99,10 @@
         return array;
 
     }
-private handleError (error: Response) {
+private handleError (error: HttpErrorResponse) {
       // in a real world app, we may send the error to some remote logging infrastructure
       // instead of just logging it to the console
       console.log(error);
-      return Observable.throw(error  || 'Server error');
+      return throwError(error  || 'Server error');
     }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/helper/helper.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/helper/helper.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/helper/helper.service.ts	(revision 55964)
@@ -1,14 +1,15 @@
 import {Injectable, Inject} from '@angular/core';
 import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+import {HttpClient} from "@angular/common/http";
+import {Observable}     from 'rxjs';
+
+
+
 import{EnvProperties} from '../properties/env-properties';
 
 @Injectable()
 export class HelperService {
-    constructor(private http: Http) {}
+    constructor(private http: HttpClient) {}
 
     getHelper (router: string, position: string, before: boolean, div: string, properties:EnvProperties,communityId:string ):any {
         //console.info("get router helpText for : "+router+" - position="+position+" - before="+before + " - div="+div);
@@ -23,8 +24,8 @@
           }
         }
 
-        return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json());
+        return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url);
+                    //.map(res => <any> res.json());
 
     }
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/properties/environment-specific.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/properties/environment-specific.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/properties/environment-specific.service.ts	(revision 55964)
@@ -1,13 +1,19 @@
-import { Injectable, OnInit, PLATFORM_ID, Inject,InjectionToken , Optional, Injector } from '@angular/core';
+import {Injectable, OnInit, PLATFORM_ID, Inject, InjectionToken, Optional, Injector, inject} from '@angular/core';
 import { isPlatformBrowser} from '@angular/common';
 import { Http, Response, Headers, RequestOptions } from '@angular/http';
-import { Observable, Subscription, BehaviorSubject } from 'rxjs/Rx';
-import 'rxjs/add/operator/map';
-import 'rxjs/add/operator/toPromise';
+import {HttpClient} from "@angular/common/http";
+import { Observable, Subscription, BehaviorSubject ,  of } from 'rxjs';
 
+import {Request} from 'express';
+import {REQUEST} from '@nguniversal/express-engine/tokens';
+
 import { EnvProperties } from './env-properties';
-import { DOCUMENT } from '@angular/platform-browser';
+import { DOCUMENT } from '@angular/common';
+import {map} from "rxjs/operators";
+import {Type} from "@angular/compiler";
 
+//export const REQUEST_TOKEN = new InjectionToken<Request>('request');
+
 @Injectable()
 export class EnvironmentSpecificService {
 
@@ -18,12 +24,14 @@
   private envSpecificSubject: BehaviorSubject<EnvProperties> = new BehaviorSubject<EnvProperties>(null);
   private propertiesUrl = "/assets/env-properties.json";
 
-  constructor(private http: Http,  @Inject(PLATFORM_ID) private platformId: string, private injector: Injector) {
+  constructor(private http: HttpClient,  @Inject(PLATFORM_ID) private platformId: string, /*private injector: Injector,*/
+              @Optional() @Inject(REQUEST) private request: Request) {
       this.testBrowser = isPlatformBrowser(platformId);
       if (this.testBrowser) {
           //this is only executed on the browser
       }
   }
+
   public loadEnvironment() {
       // Only want to do this once - if root page is revisited, it calls this again.
 
@@ -31,13 +39,13 @@
         var domain  = this.getDomain();
         var location = this.getFullUrl();
         // console.log('loadEnvironment: Loading  '+ location);
-        return this.http.get(location)
-            .map((data) => {
-                                    var properties:EnvProperties=data.json();
+        return this.http.get<EnvProperties>(location)
+            .pipe(map((data) => {
+                                    var properties:EnvProperties=data;//.json();
                                     properties.domain = domain;
                                     this.envSpecific = properties;
                                     return properties;
-                      })
+                      }))
             .toPromise<EnvProperties>();
       }
       // console.log('loadEnvironment: already loaded ');
@@ -50,28 +58,29 @@
         var domain  = this.getDomain();
         var location = this.getFullUrl();
         // console.log('subscribeEnvironment: Loading  '+ location);
-        return this.http.get(location)
-        .map((data) => {
-                                var properties:EnvProperties=data.json();
+        return this.http.get<EnvProperties>(location)
+        .pipe(map((data) => {
+                                var properties:EnvProperties=data;//.json();
                                 properties.domain = domain;
                                 this.envSpecific = properties;
                                 return properties;
-                  })
+                  }))
 
       }
       // console.log('subscribeEnvironment: already loaded  ');
-      return Observable.of(this.envSpecific);
+      return of(this.envSpecific);
   }
   getFullUrl(){
     var location ="";
       var domain  = "";
     if (typeof document == 'undefined') {
-         let req = this.injector.get('request');
-         domain = req.get('host').split(":")[0];
-         location = (domain.indexOf(".openaire.eu")!=-1?"https://":"http://")+ req.get('host') + this.propertiesUrl;
+      //let req = this.injector.get('request');
+      //let req: Request = this.injector.get(REQUEST_TOKEN);
+      domain = this.request.get('host').split(":")[0];
+      location = (domain.indexOf(".openaire.eu")!=-1?"https://":"http://")+ this.request.get('host') + this.propertiesUrl;
      }else{
-       location = document.location.protocol +"//" + document.location.host+this.propertiesUrl;
-       domain = document.location.hostname;
+      location = document.location.protocol +"//" + document.location.host+this.propertiesUrl;
+      domain = document.location.hostname;
    }
    return location;
   }
@@ -78,10 +87,11 @@
   getDomain(){
     var domain  = "";
     if (typeof document == 'undefined') {
-         let req = this.injector.get('request');
-         domain = req.get('host').split(":")[0];
-     }else{
-       domain = document.location.hostname;
+      //let req = this.injector.get('request');
+      //let req: Request = this.injector.get(REQUEST_TOKEN);
+      domain = this.request.get('host').split(":")[0];
+    }else{
+      domain = document.location.hostname;
    }
    return domain;
   }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/fetchEntitiesClasses/fetchSoftware.class.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/fetchEntitiesClasses/fetchSoftware.class.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/fetchEntitiesClasses/fetchSoftware.class.ts	(revision 55964)
@@ -3,7 +3,7 @@
 import {ErrorMessagesComponent}    from '../../utils/errorMessages.component';
 import {SearchUtilsClass } from '../../searchPages/searchUtils/searchUtils.class';
 import {DOI} from '../../utils/string-utils.class';
-import {Subject} from 'rxjs/Subject';
+import {Subject} from 'rxjs';
 import{EnvProperties} from '../../utils/properties/env-properties';
 import {StringUtils} from '../../utils/string-utils.class';
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/app.module.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/app.module.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/app.module.ts	(revision 55964)
@@ -4,7 +4,7 @@
 import { BrowserModule } from '@angular/platform-browser';
 import { NoopAnimationsModule } from '@angular/platform-browser/animations';
 import { APP_BASE_HREF, CommonModule } from '@angular/common';
-import { HttpModule } from '@angular/http';
+import { HttpClientModule } from '@angular/common/http';
 import { RouterModule } from '@angular/router';
 import { AppComponent } from './app.component';
 import {NavigationBarModule} from './sharedComponents/navigationBar.module';
@@ -69,10 +69,10 @@
     SharedModule,
     NoopAnimationsModule,
     CommonModule,
-    CookieLawModule, BottomModule,
-    HttpModule,
+    CookieLawModule,
+    BottomModule,
+    HttpClientModule,
     NavigationBarModule,
-    CookieLawModule,
     MainSearchModule,
     ErrorModule,
     DepositDatasetsModule,DepositDatasetsResultsModule, DepositBySubjectResultsModule,DepositPublicationsModule , DepositPublicationsResultsModule,
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/dataProvider/dataProvider.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/dataProvider/dataProvider.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/dataProvider/dataProvider.component.ts	(revision 55964)
@@ -1,13 +1,13 @@
+
+import {merge as observableMerge, Observable} from 'rxjs';
 import {Component, ViewChild}               from '@angular/core';
 import {Input}                  from '@angular/core';
 import {ActivatedRoute, Router}             from '@angular/router';
 import {Title, Meta}                        from '@angular/platform-browser';
 
-import {Observable}                         from 'rxjs/Observable';
 
-import 'rxjs/add/operator/switch';
-import 'rxjs/add/operator/switchMap';
 
+
 import {EnvProperties}                      from '../../utils/properties/env-properties';
 
 import {DataProviderInfo}                   from '../../utils/entities/dataProviderInfo';
@@ -419,7 +419,7 @@
           &&
           ( this.fetchAggregatorsOrps.searchUtils.status == this.errorCodes.LOADING ||
             this.fetchAggregatorsOrps.searchUtils.status == this.errorCodes.DONE )) {
-        this.relatedDatasourcesSub = Observable.merge(this.fetchAggregatorsPublications.requestComplete, this.fetchAggregatorsDatasets.requestComplete, this.fetchAggregatorsSoftware.requestComplete, this.fetchAggregatorsOrps.requestComplete)
+        this.relatedDatasourcesSub = observableMerge(this.fetchAggregatorsPublications.requestComplete, this.fetchAggregatorsDatasets.requestComplete, this.fetchAggregatorsSoftware.requestComplete, this.fetchAggregatorsOrps.requestComplete)
                                .subscribe(
                                  data => {},
                                  err => {},
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/dataset/dataset.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/dataset/dataset.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/dataset/dataset.component.ts	(revision 55964)
@@ -3,7 +3,7 @@
 import {ActivatedRoute, Router}       from '@angular/router';
 import {Title, Meta}                  from '@angular/platform-browser';
 
-import {Observable}                   from 'rxjs/Observable';
+import {Observable}                   from 'rxjs';
 
 import {DatasetInfo}                  from '../../utils/entities/datasetInfo';
 import {EnvProperties}                from '../../utils/properties/env-properties';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/htmlProjectReport/htmlProjectReport.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/htmlProjectReport/htmlProjectReport.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/htmlProjectReport/htmlProjectReport.component.ts	(revision 55964)
@@ -2,7 +2,7 @@
 import {ActivatedRoute, Params, Router} from '@angular/router';
 import {Title, Meta}                  from '@angular/platform-browser';
 
-import {Observable}                     from 'rxjs/Observable';
+import {Observable}                     from 'rxjs';
 
 import {EnvProperties}                  from '../../utils/properties/env-properties';
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/landing-utils/deletedByInference/deletedByInference.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/landing-utils/deletedByInference/deletedByInference.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/landing-utils/deletedByInference/deletedByInference.component.ts	(revision 55964)
@@ -2,7 +2,7 @@
 import {ElementRef, Input}            from '@angular/core';
 import {ActivatedRoute, Router}       from '@angular/router';
 
-import {Observable}                   from 'rxjs/Observable';
+import {Observable}                   from 'rxjs';
 
 import {EnvProperties}                from '../../../utils/properties/env-properties';
 import {DeletedByInferenceResult}     from '../../../utils/entities/deletedByInferenceResult';
@@ -11,9 +11,9 @@
 
 import {DeletedByInferenceService}    from './deletedByInference.service';
 
-//import {zip} from 'rxjs';
-import 'rxjs/add/observable/zip';
+import {zip} from 'rxjs';
 
+
 @Component({
     selector: 'deletedByInference',
     template: `
@@ -152,7 +152,7 @@
         allRequests.push(this._deletedByInferenceService.getDeletedByInferencePublications(id, this.properties));
       }
 
-      Observable.zip.apply(null, allRequests).subscribe(
+      zip.apply(null, allRequests).subscribe(
      //   this._deletedByInferenceService.getDeletedByInferencePublications(id, this.properties).subscribe(
          data => {
            this.results = data;
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/subscribe/subscribe.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/subscribe/subscribe.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/subscribe/subscribe.service.ts	(revision 55964)
@@ -1,31 +1,34 @@
 import { Injectable } from '@angular/core';
 import { Http, Response, Headers, RequestOptions } from '@angular/http';
-import { Observable } from 'rxjs/Rx';
+import { HttpClient } from '@angular/common/http';
+import { HttpHeaders } from '@angular/common/http';
+import { Observable } from 'rxjs';
 import {COOKIE} from "../../login/utils/helper.class"
+import { map } from "rxjs/operators";
+import {CustomOptions} from "../../services/servicesUtils/customOptions.class";
 
-
 @Injectable()
 export class SubscribeService {
 
-  constructor(private http:Http) {
+  constructor(private http:HttpClient) {
     }
      getCommunitySubscribers(pid:string, url:string){
-       return this.http.get(url+"/community/"+pid+"/subscribers")
-                       .map(res => <any> res.json());
+       return this.http.get<any>(url+"/community/"+pid+"/subscribers");
+                       //.map(res => <any> res.json());
      }
 
      isSubscribedToCommunity(pid:string, email:string, url:string){
        return this.http.get(url+"/community/"+pid+"/subscribers")
-                       .map(res =>  ((<any>res =="")?{}:<any> res.json()))
+                       //.map(res =>  ((<any>res =="")?{}:<any> res.json()))
 
-                       .map(res => {
-                         if(res.status && res.status != 200) {
+         .pipe(map(res => {
+                         if(res['status'] && res['status'] != 200) {
                            return null;
                          }
-                         if(res.subscribers && res.subscribers != null){
+                         if(res['subscribers'] && res['subscribers'] != null){
 
-                           for(var i =0; i< res.subscribers.length; i++ ){
-                             if(res.subscribers[i]!=null && res.subscribers[i].email == email){
+                           for(var i =0; i< res['subscribers'].length; i++ ){
+                             if(res['subscribers'][i]!=null && res['subscribers'][i].email == email){
                                return true;
                              }
                            }
@@ -32,23 +35,24 @@
                          }
                          return false;
 
-                       });
+                       }));
      }
      subscribeToCommunity(pid:string, email:string, url:string){
        var subscriber = {"email":email};
-       return this.http.post(url+"/community/"+pid+"/subscribers", JSON.stringify(subscriber), this.getAuthOptionsWithBody())
-           .map(res => <any> res.json());
+       return this.http.post<any>(url+"/community/"+pid+"/subscribers", JSON.stringify(subscriber), CustomOptions.getAuthOptionsWithBody());
+           //.map(res => <any> res.json());
      }
      unSubscribeToCommunity(pid:string, email:string, url:string){
 
-       return this.http.post(url+"/community/"+pid+"/subscribers/delete", JSON.stringify([email]), this.getAuthOptionsWithBody())
-           .map(res => <any> res.json());
+       return this.http.post<any>(url+"/community/"+pid+"/subscribers/delete", JSON.stringify([email]),  CustomOptions.getAuthOptionsWithBody());
+           //.map(res => <any> res.json());
      }
      getCommunitiesSubscribedTo(email:string, url:string){
-      return this.http.get(url+"/subscriber/communities?email="+email)
-                     .map(res => <any> res.json());
+      return this.http.get<any>(url+"/subscriber/communities?email="+email);
+                     //.map(res => <any> res.json());
      }
 
+     /*
      public getAuthOptionsWithBody():RequestOptions{
      let headers = new Headers();
      headers.append('Content-Type', 'application/json');
@@ -56,5 +60,14 @@
      let options = new RequestOptions({ headers: headers, withCredentials:true  });
        return options;
      }
+    */
 
+  public getAuthOptionsWithBody():any {
+    return {
+      headers: new HttpHeaders({
+        'Content-Type': 'application/json',
+        'X-XSRF-TOKEN': COOKIE.getCookie(COOKIE.cookieName_id)
+      }), withCredentials: true
+    };
+  }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/configuration/configuration.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/configuration/configuration.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/configuration/configuration.service.ts	(revision 55964)
@@ -1,20 +1,21 @@
 import {Injectable} from '@angular/core';
 import {Http, Response, Headers} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
-import 'rxjs/add/operator/mapTo';
-import 'rxjs/add/observable/of';
+import {HttpClient} from "@angular/common/http";
+import {Observable}     from 'rxjs';
+
+
 // import 'rxjs/add/operator/do';
 // import 'rxjs/add/operator/share';
-import { mapTo } from 'rxjs/operators';
+import {map, mapTo} from 'rxjs/operators';
 
 @Injectable()
 export class ConfigurationService {
 
 
-   constructor(private http: Http ) {}
+   constructor(private http: HttpClient ) {}
    getCommunityInformation(APIUrl:string, community:string){
-     return this.http.get(APIUrl + "/communityFull/" + community)
-               .map(res => res.json());
+     return this.http.get(APIUrl + "/communityFull/" + community);
+               //.map(res => res.json());
    }
 
    isEntityEnabled(APIUrl:string, community:string,entity: string){
@@ -26,32 +27,33 @@
     //  }
     //  return Observable.of(new Object()).mapTo(true);
      return this.http.get(APIUrl + "/page")
-               .map(res => true);
+               .pipe(map(res => true));
    }
 
    isPageEnabled(APIUrl:string, community:string,router: string){
       return this.http.get(APIUrl + "/community/" + community+"/pages?page_route="+router)
-              .map(res => res.json()).map(res => {
+              //.map(res => res.json())
+              .pipe(map(res => {
                 let result = false;
-                if(res.length >0 && res[0].route == router){
+                if(res['length'] >0 && res[0].route == router){
                   result =  res[0].isEnabled;
                 }
 
                 return result;
-              });//.do(res => {console.log("Route "+router +" is "+res)});
+              }));//.do(res => {console.log("Route "+router +" is "+res)});
    }
 
    getMainPageContent(APIUrl:string, community:string,){
      return this.http.get(APIUrl + "/page")
-               .map(res => true);
+               .pipe(map(res => true));
    }
    getSpecialAnouncementContent(APIUrl:string, community:string,){
      return this.http.get(APIUrl + "/page")
-               .map(res => "");
+               .pipe(map(res => ""));
    }
    getHelpPageContent(APIUrl:string, community:string, router:string){
      return  this.http.get(APIUrl + "/page")
-               .map(res => true);
+               .pipe(map(res => true));
    }
     // private handleError (error: Response) {
     // // in a real world app, we may send the error to some remote logging infrastructure
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/my-date-picker/my-date-picker.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/my-date-picker/my-date-picker.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/my-date-picker/my-date-picker.component.ts	(revision 55964)
@@ -118,7 +118,9 @@
     constructor(public elem: ElementRef, private renderer: Renderer, private cdr: ChangeDetectorRef, private localeService: LocaleService, private utilService: UtilService) {
         this.setLocaleOptions();
         renderer.listenGlobal("document", "click", (event: any) => {
-            if (this.showSelector && event.target && this.elem.nativeElement !== event.target && !this.elem.nativeElement.contains(event.target)) {
+        //renderer.listen("document", "click", (event: any) => {
+console.info("listen global");
+        if (this.showSelector && event.target && this.elem.nativeElement !== event.target && !this.elem.nativeElement.contains(event.target)) {
                 this.showSelector = false;
                 this.calendarToggle.emit(4);
             }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/piwik/previousRouteRecorder.guard.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/piwik/previousRouteRecorder.guard.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/piwik/previousRouteRecorder.guard.ts	(revision 55964)
@@ -1,7 +1,7 @@
 
 import { Injectable } from '@angular/core';
 import { CanDeactivate, Router} from '@angular/router';
-import {Observable}       from 'rxjs/Observable';
+import {Observable}       from 'rxjs';
 
 @Injectable() // do not forget to register this class as a provider
 export class PreviousRouteRecorder implements CanDeactivate<any> {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/fetchEntitiesClasses/fetchDatasets.class.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/fetchEntitiesClasses/fetchDatasets.class.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/fetchEntitiesClasses/fetchDatasets.class.ts	(revision 55964)
@@ -3,7 +3,7 @@
 import {ErrorMessagesComponent}    from '../../utils/errorMessages.component';
 import {SearchUtilsClass } from '../../searchPages/searchUtils/searchUtils.class';
 import {DOI} from '../../utils/string-utils.class';
-import {Subject} from 'rxjs/Subject';
+import {Subject} from 'rxjs';
 import{EnvProperties} from '../../utils/properties/env-properties';
 import {StringUtils} from '../../utils/string-utils.class';
 export class FetchDatasets{
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/communities/communities.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/communities/communities.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/connect/communities/communities.service.ts	(revision 55964)
@@ -1,9 +1,11 @@
 import {Injectable} from '@angular/core';
 import {Http} from '@angular/http';
+import {HttpClient} from "@angular/common/http";
 
 import {CommunityInfo} from '../community/communityInfo';
 import {EnvProperties} from '../../utils/properties/env-properties';
 import {BehaviorSubject, Observable} from "rxjs";
+import {map} from "rxjs/operators";
 
 @Injectable()
 export class CommunitiesService {
@@ -10,7 +12,7 @@
 
     public communities: BehaviorSubject<CommunityInfo[]> = null;
 
-    constructor(private http: Http) {
+    constructor(private http: HttpClient) {
         this.communities = new BehaviorSubject([]);
     }
 
@@ -26,7 +28,8 @@
 
     getCommunities(properties: EnvProperties, url: string) {
         return this.http.get((properties.useCache) ? (properties.cacheUrl + encodeURIComponent(url)) : url)
-                        .map(res => <any> res.json()).map(res => this.parseCommunities(res));
+                        //.map(res => <any> res.json())
+                        .pipe(map(res => this.parseCommunities(res)));
     }
 
     parseCommunities(data: any): CommunityInfo[] {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/dataProvider/dataProvider.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/dataProvider/dataProvider.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/dataProvider/dataProvider.service.ts	(revision 55964)
@@ -1,17 +1,19 @@
 import {Injectable} from '@angular/core';
 import {Http, Response,Headers, RequestOptions} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
+import {HttpClient, HttpErrorResponse, HttpHeaders} from "@angular/common/http";
+import {Observable, throwError} from 'rxjs';
 import {DataProviderInfo} from '../../utils/entities/dataProviderInfo';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+
+
+
 import{EnvProperties} from '../../utils/properties/env-properties';
+import {map} from "rxjs/operators";
 
 
 @Injectable()
 export class DataProviderService {
 
-    constructor(private http: Http ) {}
+    constructor(private http: HttpClient ) {}
 
     dataProviderInfo: DataProviderInfo;
 
@@ -20,9 +22,9 @@
         let key = url;
 
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => res['result']['metadata']['oaf:entity'])
-                    .map(res => [res['oaf:datasource'],
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => res['result']['metadata']['oaf:entity']))
+                    .pipe(map(res => [res['oaf:datasource'],
                                  res['oaf:datasource']['datasourcetype'],
                                  res['oaf:datasource']['openairecompatibility'],
                                  res['oaf:datasource']['collectedfrom'],
@@ -29,28 +31,34 @@
                                  res['oaf:datasource']['accessinfopackage'],
                                  res['oaf:datasource']['rels']['rel'],
                                  res['oaf:datasource']['journal'] //6
-                     ])
-                     .map(res => this.parseDataProviderInfo(res));
+                     ]))
+                     .pipe(map(res => this.parseDataProviderInfo(res)));
 
     }
 
     getDataproviderAggregationStatus(original_id: string, properties:EnvProperties):any {
-        let headers = new Headers({'Content-Type': 'application/json', 'accept': 'application/json'});
-        let options = new RequestOptions({headers: headers});
+        //let headers = new Headers({'Content-Type': 'application/json', 'accept': 'application/json'});
+        //let options = new RequestOptions({headers: headers});
 
-        let page: number = 0;
+      const options = {
+        headers: new HttpHeaders({
+          'Content-Type': 'application/json',
+          'accept': 'application/json'})
+      };
+
+      let page: number = 0;
         let size: number = 1;
         return this.http.post(properties.datasourcesAPI+page+"/"+size+"?requestSortBy=id&order=ASCENDING", JSON.stringify({ "id": original_id }), options)
-            .map(res => <any> res.json())
-            .map(res => res['datasourceInfo'])
-            .map(res => this.parseDataproviderAggregationStatus(res));
+            //.map(res => <any> res.json())
+            .pipe(map(res => res['datasourceInfo']))
+            .pipe(map(res => this.parseDataproviderAggregationStatus(res)));
     }
 
-    private handleError (error: Response) {
+    private handleError (error: HttpErrorResponse) {
     // in a real world app, we may send the error to some remote logging infrastructure
     // instead of just logging it to the console
         console.log(error);
-        return Observable.throw(error  || 'Server error');
+        return throwError(error  || 'Server error');
     }
 
     parseDataproviderAggregationStatus(data: any): any {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/dataset/dataset.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/dataset/dataset.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/dataset/dataset.service.ts	(revision 55964)
@@ -1,18 +1,20 @@
 import {Injectable} from '@angular/core';
 import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
+import {HttpClient, HttpErrorResponse} from "@angular/common/http";
+import {Observable, throwError} from 'rxjs';
 import {DatasetInfo} from '../../utils/entities/datasetInfo';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+
+
+
 import{EnvProperties} from '../../utils/properties/env-properties';
 
 import { ParsingFunctions } from '../landing-utils/parsingFunctions.class';
+import {map} from "rxjs/operators";
 
 @Injectable()
 export class DatasetService {
 
-  constructor(private http: Http ) {
+  constructor(private http: HttpClient ) {
     this.parsingFunctions = new ParsingFunctions();
   }
 
@@ -26,9 +28,9 @@
 
 
     return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => [res['result']['header']['dri:status'], res['result']['metadata']['oaf:entity']['oaf:result'],res])
-                    .map(res => [res[1],  //0
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => [res['result']['header']['dri:status'], res['result']['metadata']['oaf:entity']['oaf:result'],res]))
+                    .pipe(map(res => [res[1],  //0
                                  res[1]['title'],   //1
                                  res[1]['rels']['rel'], //2
                                  res[1]['children'],  //3
@@ -45,14 +47,15 @@
                                  res[2], //13
                                  (res[1]['extraInfo']!= undefined && res[1]['extraInfo']['citations']!= undefined)? res[1]['extraInfo']['citations']['citation']:null, //14
                                   res[1]['journal'] //15
-                    ]).map(res => this.parseDatasetInfo(res, properties));
+                    ]))
+                    .pipe(map(res => this.parseDatasetInfo(res, properties)));
   }
 
-  private handleError (error: Response) {
+  private handleError (error: HttpErrorResponse) {
   // in a real world app, we may send the error to some remote logging infrastructure
   // instead of just logging it to the console
     console.log(error);
-    return Observable.throw(error  || 'Server error');
+    return throwError(error  || 'Server error');
   }
 
   parseDatasetInfo (data: any, properties: EnvProperties):any {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/htmlProjectReport/htmlProjectReport.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/htmlProjectReport/htmlProjectReport.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/htmlProjectReport/htmlProjectReport.service.ts	(revision 55964)
@@ -1,12 +1,14 @@
 import {Injectable} from '@angular/core';
 import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
-import 'rxjs/add/operator/do';
+import {HttpClient} from "@angular/common/http";
+import {Observable}     from 'rxjs';
 
+import {map} from "rxjs/operators";
+
 @Injectable()
 export class HtmlProjectReportService {
 
-    constructor(private http: Http ) {}
+    constructor(private http: HttpClient ) {}
 
     getHTML(id: string, size: number, type:string, csvAPIURL: string ):any {
 
@@ -32,6 +34,9 @@
         let key = url;
 
         return this.http.get(url)
-                    .map(res => <any> res.text());
+                    .pipe(map(res => {
+                      let resText:any = res;
+                      return resText.text();
+                    }));
     }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/landing-utils/deletedByInference/deletedByInference.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/landing-utils/deletedByInference/deletedByInference.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/landing-utils/deletedByInference/deletedByInference.service.ts	(revision 55964)
@@ -1,21 +1,15 @@
 import {Injectable} from '@angular/core';
-import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
+import {HttpClient} from "@angular/common/http";
 import {DeletedByInferenceResult} from '../../../utils/entities/deletedByInferenceResult';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
-import 'rxjs/add/operator/map';
-import{EnvProperties} from '../../../utils/properties/env-properties';
+import {EnvProperties} from '../../../utils/properties/env-properties';
+import {ParsingFunctions} from '../parsingFunctions.class';
+import {map} from "rxjs/operators";
 
-
-import { ParsingFunctions } from '../parsingFunctions.class';
-
 @Injectable()
 export class DeletedByInferenceService {
   private sizeOfDescription: number = 270;
 
-  constructor(private http: Http ) {
+  constructor(private http: HttpClient ) {
     this.parsingFunctions = new ParsingFunctions();
   }
 
@@ -26,9 +20,9 @@
     let key = url;
 
     return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                .map(res => <any> res.json())
-                .map(res => res['result']['metadata']['oaf:entity'])
-                .map(res => this.parseDeletedByInferencePublications(res, properties));
+                //.map(res => <any> res.json())
+                .pipe(map(res => res['result']['metadata']['oaf:entity']))
+                .pipe(map(res => this.parseDeletedByInferencePublications(res, properties)));
   }
 
   parseDeletedByInferencePublications (result: any, properties: EnvProperties): DeletedByInferenceResult {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/software/software.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/software/software.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/software/software.service.ts	(revision 55964)
@@ -1,18 +1,15 @@
 import {Injectable} from '@angular/core';
-import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
+import {HttpClient, HttpErrorResponse} from "@angular/common/http";
+import {throwError} from 'rxjs';
 import {SoftwareInfo} from '../../utils/entities/softwareInfo';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
-import{EnvProperties} from '../../utils/properties/env-properties';
+import {EnvProperties} from '../../utils/properties/env-properties';
+import {ParsingFunctions} from '../landing-utils/parsingFunctions.class';
+import {map} from "rxjs/operators";
 
-import { ParsingFunctions } from '../landing-utils/parsingFunctions.class';
-
 @Injectable()
 export class SoftwareService {
 
-  constructor(private http: Http ) {
+  constructor(private http: HttpClient ) {
     this.parsingFunctions = new ParsingFunctions();
   }
 
@@ -26,9 +23,9 @@
 
 
     return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                    .map(res => <any> res.json())
-                    .map(res => [res['result']['header']['dri:status'], res['result']['metadata']['oaf:entity']['oaf:result'], res])
-                    .map(res => [res[1],
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => [res['result']['header']['dri:status'], res['result']['metadata']['oaf:entity']['oaf:result'], res]))
+                    .pipe(map(res => [res[1],
                                  res[1]['title'],
                                  res[1]['rels']['rel'],
                                  res[1]['children'],
@@ -45,14 +42,15 @@
                                  res[1]['programmingLanguage'],
                                  res[2],
                                 res[1]['journal'] //15
-                    ]).map(res => this.parseSoftwareInfo(res, properties));
+                    ]))
+                    .pipe(map(res => this.parseSoftwareInfo(res, properties)));
   }
 
-  private handleError (error: Response) {
+  private handleError (error: HttpErrorResponse) {
   // in a real world app, we may send the error to some remote logging infrastructure
   // instead of just logging it to the console
     console.log(error);
-    return Observable.throw(error  || 'Server error');
+    return throwError(error  || 'Server error');
   }
 
   parseSoftwareInfo (data: any, properties: EnvProperties):any {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/entitiesAutoComplete/entitiesAutoComplete.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/entitiesAutoComplete/entitiesAutoComplete.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/entitiesAutoComplete/entitiesAutoComplete.component.ts	(revision 55964)
@@ -1,11 +1,12 @@
+
+import {switchMap, distinctUntilChanged, debounceTime} from 'rxjs/operators';
 import {Component, ElementRef, Input, Output, EventEmitter, OnChanges, SimpleChange} from '@angular/core';
-import {Observable} from 'rxjs/Observable';
-import {Subject} from 'rxjs/Subject';
+import {Observable, Subject} from 'rxjs';
 import {Value} from '../../searchPages/searchUtils/searchHelperClasses.class';
 import {EntitiesSearchService} from './entitySearch.service';
 import{EnvProperties} from '../properties/env-properties';
-import 'rxjs/add/operator/debounceTime';
-import 'rxjs/add/operator/distinctUntilChanged';
+
+
 //Usage example
 //<static-autocomplete [(filtered)] =filtered [(selected)] =selected placeHolderMessage = "Search for countries" title = "Countries:" (keywordChange)="keywordChanged($event)"></static-autocomplete>
 
@@ -100,36 +101,36 @@
 
       this.showInput = true;
        if(this.entityType == "project" && this.funderId ){
-        this.filtered  = this.searchTermStream
-        .debounceTime(300).distinctUntilChanged()
-        .switchMap((term: string) =>    {
+        this.filtered  = this.searchTermStream.pipe(
+        debounceTime(300),distinctUntilChanged(),
+        switchMap((term: string) =>    {
           //console.log("funder"+this.funderId);
             var results = this._search.searchProjectsByFunder(term, (this.funderId == "0"?"":encodeURIComponent(this.funderId)), this.properties);
             this.showLoading = false;
              this.results = results.length;
             return   results;
-        });
+        }),);
       }else if(this.entityType == "organization" && this.depositType ){
-         this.filtered  = this.searchTermStream
-        .debounceTime(300).distinctUntilChanged()
-        .switchMap((term: string) => {
+         this.filtered  = this.searchTermStream.pipe(
+        debounceTime(300),distinctUntilChanged(),
+        switchMap((term: string) => {
           var results = this._search.searchByDepositType(term, this.depositType, this.properties);
           this.showLoading = false;
           this.results = results.length;
           return   results;
-      });
+      }),);
 
       }else{
 
-        this.filtered  = this.searchTermStream
-        .debounceTime(300)
-        .distinctUntilChanged()
-        .switchMap((term: string) => {
+        this.filtered  = this.searchTermStream.pipe(
+        debounceTime(300),
+        distinctUntilChanged(),
+        switchMap((term: string) => {
           var results = this._search.searchByType(term, this.entityType, this.properties);
           this.showLoading = false;
           this.results = results.length;
           return   results;
-      });
+      }),);
 
         this.getSelectedNameFromGivenId();
       }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/my-date-picker/directives/my-date-picker.focus.directive.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/my-date-picker/directives/my-date-picker.focus.directive.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/my-date-picker/directives/my-date-picker.focus.directive.ts	(revision 55964)
@@ -15,6 +15,10 @@
             return;
         }
 
+        console.info("focus");
+        /*if (typeof document !== 'undefined') {
+          this.el.nativeElement.focus();
+        }*/
         this.renderer.invokeElementMethod(this.el.nativeElement, "focus", []);
 
         // Set cursor position at the end of text if input element
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/piwik/piwik.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/piwik/piwik.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/piwik/piwik.service.ts	(revision 55964)
@@ -1,9 +1,10 @@
 import {Injectable} from '@angular/core';
 import {Http, Response, Headers, RequestOptions, URLSearchParams} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+import {HttpClient} from "@angular/common/http";
+import {Observable}     from 'rxjs';
+
+
+
 import {Location} from '@angular/common';
 
 import {StringUtils} from '../string-utils.class';
@@ -13,7 +14,7 @@
 @Injectable()
 export class PiwikService {
     private piwikbaseUrl:string = "";
-    constructor(private http: Http, private location: Location ) {}
+    constructor(private http: HttpClient, private location: Location ) {}
 
     trackView (properties:EnvProperties, title, siteId = null):any {
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/fetchEntitiesClasses/fetchOrps.class.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/fetchEntitiesClasses/fetchOrps.class.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/fetchEntitiesClasses/fetchOrps.class.ts	(revision 55964)
@@ -3,7 +3,7 @@
 import {ErrorMessagesComponent}    from '../../utils/errorMessages.component';
 import {SearchUtilsClass } from '../../searchPages/searchUtils/searchUtils.class';
 import {DOI} from '../../utils/string-utils.class';
-import {Subject} from 'rxjs/Subject';
+import {Subject} from 'rxjs';
 import{EnvProperties} from '../../utils/properties/env-properties';
 import {StringUtils} from '../../utils/string-utils.class';
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/orp/orp.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/orp/orp.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/orp/orp.component.ts	(revision 55964)
@@ -3,7 +3,7 @@
 import {ActivatedRoute, Router}       from '@angular/router';
 import {Title, Meta}                  from '@angular/platform-browser';
 
-import {Observable}                   from 'rxjs/Observable';
+import {Observable}                   from 'rxjs';
 
 import {OrpInfo}                  from '../../utils/entities/orpInfo';
 import {EnvProperties}                from '../../utils/properties/env-properties';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/organization/organization.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/organization/organization.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/organization/organization.component.ts	(revision 55964)
@@ -3,8 +3,7 @@
 import {ActivatedRoute, Router}         from '@angular/router';
 import {Title, Meta}                    from '@angular/platform-browser';
 
-import {Observable}                     from 'rxjs/Observable';
-import {Subject}                        from 'rxjs/Subject';
+import {Observable, Subject}                     from 'rxjs';
 
 import {OrganizationService}            from '../../services/organization.service';
 import {OrganizationInfo}               from '../../utils/entities/organizationInfo';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/project/project.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/project/project.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/project/project.component.ts	(revision 55964)
@@ -4,7 +4,7 @@
 import {Params}                       from '@angular/router';
 import {Title, Meta}                  from '@angular/platform-browser';
 
-import {Observable}                   from 'rxjs/Observable';
+import {Observable}                   from 'rxjs';
 
 import {ProjectService}               from './project.service';
 import {ProjectInfo}                  from '../../utils/entities/projectInfo';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/publication/publication.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/publication/publication.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/publication/publication.service.ts	(revision 55964)
@@ -1,22 +1,15 @@
-
 import {Injectable} from '@angular/core';
-import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
+import {HttpClient, HttpErrorResponse} from "@angular/common/http";
+import {throwError} from 'rxjs';
 import {PublicationInfo} from '../../utils/entities/publicationInfo';
-import {DeletedByInferenceResult} from '../../utils/entities/deletedByInferenceResult';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
-import 'rxjs/add/operator/map';
-import{EnvProperties} from '../../utils/properties/env-properties';
+import {EnvProperties} from '../../utils/properties/env-properties';
+import {ParsingFunctions} from '../landing-utils/parsingFunctions.class';
+import {map} from "rxjs/operators";
 
-
-import { ParsingFunctions } from '../landing-utils/parsingFunctions.class';
-
 @Injectable()
 export class PublicationService {
 
-  constructor(private http: Http ) {
+  constructor(private http: HttpClient ) {
     this.parsingFunctions = new ParsingFunctions();
   }
 
@@ -28,9 +21,9 @@
     let key = url;
 
     return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                .map(res => <any> res.json())
-                .map(res => [res['result']['header']['dri:status'], res['result']['metadata']['oaf:entity'], res])
-                .map(res => [ res[1]['oaf:result'], //0
+                //.map(res => <any> res.json())
+                .pipe(map(res => [res['result']['header']['dri:status'], res['result']['metadata']['oaf:entity'], res]))
+                .pipe(map(res => [ res[1]['oaf:result'], //0
                               res[1]['oaf:result']['title'],  //1
                               res[1]['oaf:result']['rels']['rel'],  //2
                               res[1]['oaf:result']['children'], //3
@@ -46,15 +39,15 @@
                               res[1]['oaf:result']['creator'],  //13
                               res[2], //14
                               res[1]['oaf:result']['country']  //15
-                ])
-                .map(res => this.parsePublicationInfo(res, properties));
+                ]))
+                .pipe(map(res => this.parsePublicationInfo(res, properties)));
   }
 
-  private handleError (error: Response) {
+  private handleError (error: HttpErrorResponse) {
   // in a real world app, we may send the error to some remote logging infrastructure
   // instead of just logging it to the console
     console.log(error);
-    return Observable.throw(error  || 'Server error');
+    return throwError(error  || 'Server error');
   }
 
   parsePublicationInfo (data: any, properties: EnvProperties):any {
@@ -378,8 +371,8 @@
 
     //return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
     return this.http.get(url)
-                .map(res => <any> res.json())
-                .map(res => [res['total'], this.parseOpenCitations(res['results'])]);
+                //.map(res => <any> res.json())
+                .pipe(map(res => [res['total'], this.parseOpenCitations(res['results'])]));
   }
 
   parseOpenCitations(openCitations: any): {"url": string, "title": string, "year": string, "doi": string, "authors": string[]}[] {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/software/software.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/software/software.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/landingPages/software/software.component.ts	(revision 55964)
@@ -3,7 +3,7 @@
 import {ActivatedRoute, Router}       from '@angular/router';
 import {Title, Meta}                  from '@angular/platform-browser';
 
-import {Observable}                   from 'rxjs/Observable';
+import {Observable}                   from 'rxjs';
 
 import {SoftwareService}              from './software.service';
 import {SoftwareInfo}                 from '../../utils/entities/softwareInfo';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/entitiesAutoComplete/entitySearch.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/entitiesAutoComplete/entitySearch.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/entitiesAutoComplete/entitySearch.service.ts	(revision 55964)
@@ -1,17 +1,19 @@
 import {Injectable} from '@angular/core';
 import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
+import {HttpClient, HttpErrorResponse} from "@angular/common/http";
+import {Observable, throwError} from 'rxjs';
 import {AutoCompleteValue} from '../../searchPages/searchUtils/searchHelperClasses.class';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+
+
+
 import{EnvProperties} from '../properties/env-properties';
 
 import {StringUtils} from '../string-utils.class';
+import {catchError, map} from "rxjs/operators";
 @Injectable()
 export class EntitiesSearchService {
     public ready:boolean = false;
-    constructor(private http: Http ) {}
+    constructor(private http: HttpClient ) {}
 
     searchProjectsByFunder(keyword:string, funderId:string, properties:EnvProperties ):any {
       this.ready = false;
@@ -30,7 +32,8 @@
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url).toPromise()
       .then(request =>
         {
-          request = request.json().results;
+          //request = request.json().results;
+          request = request['results'];
           this.ready = true;
           return this.parse(request,"oaf:project","project");
         }).catch((ex) => {
@@ -71,7 +74,8 @@
         return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url).toPromise()
         .then(request =>
           {
-            request = request.json().results;
+            //request = request.json().results;
+            request = request['results'];
             //console.log(request);
             this.ready = true;
             return this.parse(request,"oaf:organization","organization");
@@ -124,15 +128,16 @@
   this.ready = false;
   let url = link+"/"+id+"?format=json";
   return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-    .map(request => <any> request.json())
+    //.map(request => <any> request.json())
     // .do(res => console.info(res))
-    .map(request => {
+    .pipe(map(request => {
       this.ready = true;
       return this.parse(request,oafEntityType,type);
-    }).catch((ex) => {
+    }))
+    .pipe(catchError((ex) => {
       console.error('An error occured', ex);
       return  [{id:'-2',label:'Error'}];;
-    });
+    }));
 
 }
     private search (link,keyword,oafEntityType,type, properties:EnvProperties ){
@@ -154,7 +159,8 @@
       return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url).toPromise()
                  .then(request =>
                    {
-                     request = request.json().results;
+                     //request = request.json().results;
+                     request = request['results'];
                      this.ready = true;
                      return this.parse(request,oafEntityType,type);
                    }).catch((ex) => {
@@ -266,10 +272,10 @@
         return array;
     }
 
-    private handleError (error: Response) {
+    private handleError (error: HttpErrorResponse) {
       // in a real world app, we may send the error to some remote logging infrastructure
       // instead of just logging it to the console
       console.log(error);
-      return Observable.throw(error  || 'Server error');
+      return throwError(error  || 'Server error');
     }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/my-date-picker/directives/my-date-picker.input.auto.fill.directive.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/my-date-picker/directives/my-date-picker.input.auto.fill.directive.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/my-date-picker/directives/my-date-picker.input.auto.fill.directive.ts	(revision 55964)
@@ -64,6 +64,8 @@
     }
 
     private setInputValue(val: string): void {
+      console.info(val);
         this.rndr.setElementProperty(this.el.nativeElement, "value", val);
+        //this.rndr.setProperty(this.el.nativeElement, "value", val);
     }
 }
\ No newline at end of file
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/helper/helper.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/helper/helper.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/helper/helper.component.ts	(revision 55964)
@@ -1,6 +1,6 @@
 import { Component, Input } from '@angular/core';
 import {ActivatedRoute} from '@angular/router';
-import 'rxjs/Rx';
+import 'rxjs';
 import {HelperService} from './helper.service';
 import{EnvProperties} from '../properties/env-properties';
 import {ConnectHelper} from '../../connect/connectHelper';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/fetchEntitiesClasses/fetchPublications.class.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/fetchEntitiesClasses/fetchPublications.class.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/utils/fetchEntitiesClasses/fetchPublications.class.ts	(revision 55964)
@@ -5,7 +5,7 @@
 import {SearchFields, FieldDetails} from '../../utils/properties/searchFields';
  import {SearchUtilsClass } from '../../searchPages/searchUtils/searchUtils.class';
 import {DOI} from '../../utils/string-utils.class';
-import {Subject} from 'rxjs/Subject';
+import {Subject} from 'rxjs';
 import{EnvProperties} from '../../utils/properties/env-properties';
 import {StringUtils} from '../../utils/string-utils.class';
 export class FetchPublications {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/app.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/app.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/app.component.ts	(revision 55964)
@@ -1,6 +1,6 @@
-import { Component, Directive, ElementRef, Renderer, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';
+import { Component, Directive, ElementRef, Renderer2, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';
 import { ConfigurationService } from './utils/configuration/configuration.service';
-import {Observable}       from 'rxjs/Observable';
+import {Observable}       from 'rxjs';
 import { EnvProperties } from './utils/properties/env-properties';
 import {ActivatedRoute} from '@angular/router';
 import{EnvironmentSpecificService} from './utils/properties/environment-specific.service';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/deposit/depositResult.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/deposit/depositResult.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/deposit/depositResult.component.ts	(revision 55964)
@@ -2,7 +2,7 @@
 import {Router,  ActivatedRoute}    from '@angular/router';
 import {Title, Meta}                from '@angular/platform-browser';
 
-import {Observable}                 from 'rxjs/Observable';
+import {Observable}                 from 'rxjs';
 import {ErrorCodes}                 from '../utils/properties/errorCodes';
 
 import{EnvProperties} from '../utils/properties/env-properties';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/deposit/datasets/depositBySubject.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/deposit/datasets/depositBySubject.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/deposit/datasets/depositBySubject.component.ts	(revision 55964)
@@ -2,7 +2,7 @@
 import {Router, ActivatedRoute}  from '@angular/router';
 import {Title, Meta}             from '@angular/platform-browser';
 
-import {Observable}              from 'rxjs/Observable';
+import {Observable}              from 'rxjs';
 
 import {EnvProperties} from '../../utils/properties/env-properties';
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/deposit/datasets/depositBySubjectResult.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/deposit/datasets/depositBySubjectResult.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/deposit/datasets/depositBySubjectResult.component.ts	(revision 55964)
@@ -3,7 +3,7 @@
 import {ActivatedRoute}             from '@angular/router';
 import {Title, Meta}                from '@angular/platform-browser';
 
-import {Observable}                 from 'rxjs/Observable';
+import {Observable}                 from 'rxjs';
 
 import {EnvProperties}               from '../../utils/properties/env-properties';
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/deposit/deposit.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/deposit/deposit.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/deposit/deposit.component.ts	(revision 55964)
@@ -2,7 +2,7 @@
 import {Router, ActivatedRoute}    from '@angular/router';
 import {Title, Meta}               from '@angular/platform-browser';
 
-import {Observable}                from 'rxjs/Observable';
+import {Observable}                from 'rxjs';
 
 import {EnvProperties}             from '../utils/properties/env-properties';
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/login/adminLoginGuard.guard.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/login/adminLoginGuard.guard.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/login/adminLoginGuard.guard.ts	(revision 55964)
@@ -1,11 +1,19 @@
-import { Injectable } from '@angular/core';
-import {Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanLoad, Route} from '@angular/router';
-import {Observable} from 'rxjs/Observable';
+import {Injectable} from '@angular/core';
+import {
+  Router,
+  CanActivate,
+  ActivatedRouteSnapshot,
+  RouterStateSnapshot,
+  CanLoad,
+  Route,
+  UrlSegment
+} from '@angular/router';
+import {Observable} from 'rxjs';
 import {Session} from './utils/helper.class';
 import {LoginErrorCodes} from './utils/guardHelper.class';
 
 @Injectable()
-export class AdminLoginGuard implements CanActivate, CanLoad {
+export class AdminLoginGuard implements CanActivate{
 
   constructor(private router: Router) {
   }
@@ -22,7 +30,12 @@
       }
     }
     if (!loggedIn || !isAdmin) {
-      this.router.navigate(['/user-info'], {queryParams: {'errorCode': errorCode, 'redirectUrl': path}});
+      this.router.navigate(['/user-info'], {
+        queryParams: {
+          'errorCode': errorCode,
+          'redirectUrl': path
+        }
+      });
     }
     return loggedIn && isAdmin;
   }
@@ -31,7 +44,4 @@
     return this.check(state.url);
   }
 
-  canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean {
-    return this.check('/' + route.path);
-  }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/login/loginGuard.guard.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/login/loginGuard.guard.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/login/loginGuard.guard.ts	(revision 55964)
@@ -1,11 +1,19 @@
-import { Injectable } from '@angular/core';
-import {Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Route, CanLoad} from '@angular/router';
-import {Observable} from 'rxjs/Observable';
+import {Injectable} from '@angular/core';
+import {
+  Router,
+  CanActivate,
+  ActivatedRouteSnapshot,
+  RouterStateSnapshot,
+  Route,
+  CanLoad,
+  UrlSegment
+} from '@angular/router';
+import {Observable} from 'rxjs';
 import {Session} from './utils/helper.class';
 import {LoginErrorCodes} from './utils/guardHelper.class';
 
 @Injectable()
-export class LoginGuard implements CanActivate, CanLoad {
+export class LoginGuard implements CanActivate {
 
   constructor(private router: Router) {
   }
@@ -16,7 +24,12 @@
       loggedIn = true;
     }
     if (!loggedIn) {
-      this.router.navigate(['/user-info'], {queryParams: {'errorCode': LoginErrorCodes.NOT_LOGIN, path}});
+      this.router.navigate(['/user-info'], {
+        queryParams: {
+          'errorCode': LoginErrorCodes.NOT_LOGIN,
+          'redirectUrl': path
+        }
+      });
     }
     return loggedIn;
   }
@@ -24,8 +37,4 @@
   canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
     return this.check(state.url);
   }
-
-  canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean {
-    return this.check('/' + route.path);
-  }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/service/searchDatacite.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/service/searchDatacite.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/service/searchDatacite.service.ts	(revision 55964)
@@ -1,15 +1,18 @@
+
+import {throwError as observableThrowError, Observable} from 'rxjs';
 import {Injectable} from '@angular/core';
 import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+import { HttpClient } from '@angular/common/http';
+
+
+
 import{EnvProperties} from '../../../utils/properties/env-properties';
 import { ClaimResult} from  '../claimEntities.class';
+import {map} from "rxjs/operators";
 
 @Injectable()
 export class SearchDataciteService {
-  constructor(private http: Http ) {}
+  constructor(private http: HttpClient ) {}
 
   searchDataciteResults (term: string, size : number, page : number, properties:EnvProperties, parse:boolean = false):any {
     //console.info("In search datacite results "+term+ " "+properties.searchDataciteAPIURL);
@@ -17,8 +20,8 @@
     let key = url;
 
     return this.http.get( ( properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                     .map(request => <any> request.json())
-                     .map(request => (parse?this.parse(request.data):request))
+                     //.map(request => <any> request.json())
+                     .pipe(map(request => (parse?this.parse(request['data']):request)))
                       //.catch(this.handleError);
     }
     getDataciteResultByDOI (doi: string, properties:EnvProperties, parse:boolean = false):any {
@@ -26,8 +29,8 @@
       let key = url;
 
       return this.http.get( (properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
-                       .map(request => <any> request.json())
-                       .map(request => (parse?this.parse(request.data):request))
+                       //.map(request => <any> request.json())
+                       .pipe(map(request => (parse?this.parse(request['data']):request)))
 
                       //  .do(items => console.log("Datacite Results: total results = "+items.meta.total+" doi = "+doi))
 
@@ -39,7 +42,7 @@
     // in a real world app, we may send the error to some remote logging infrastructure
     // instead of just logging it to the console
     console.log(error);
-    return Observable.throw(error  || 'Server error');
+    return observableThrowError(error  || 'Server error');
   }
   private extractData(res: Response) {
     if (res.status < 200 || res.status >= 300) {
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/service/searchCrossref.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/service/searchCrossref.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/service/searchCrossref.service.ts	(revision 55964)
@@ -1,13 +1,17 @@
+
+import {throwError as observableThrowError, Observable} from 'rxjs';
 import {Injectable} from '@angular/core';
 import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+
+
+
+import { HttpClient } from '@angular/common/http';
+
 import { ClaimResult} from  '../claimEntities.class';
+import {map} from "rxjs/operators";
 @Injectable()
 export class SearchCrossrefService {
-  constructor( private http: Http ) {}
+  constructor( private http: HttpClient ) {}
 
 
   searchCrossrefResults (term: string, size : number, page : number, apiUrl:string, parse:boolean = false):any {
@@ -15,8 +19,9 @@
      let key = url;
 
      return this.http.get(url)
-                     .map(request => <any> request.json().message)
-                     .map(request => (parse?this.parse(request.items):request))
+                     //.map(request => <any> request.json().message)
+                     .pipe(map(request => request['message']))
+                     .pipe(map(request => (parse?this.parse(request.items):request)))
                      //.catch(this.handleError);
 
     }
@@ -31,8 +36,9 @@
 
 
        return this.http.get(url)
-                       .map(request => <any> request.json().message)
-                       .map(request => (parse?this.parse(request.items):request))
+                       //.map(request => <any> request.json().message)
+                       .pipe(map(request => request['message']))
+                       .pipe(map(request => (parse?this.parse(request.items):request)))
                        //.catch(this.handleError);
 
       }
@@ -46,8 +52,9 @@
 
 
          return this.http.get(url)
-                         .map(request => <any> request.json().message)
-                         .map(request => (parse?this.parse(request.items):request))
+                         //.map(request => <any> request.json().message)
+                         .pipe(map(request => request['message']))
+                         .pipe(map(request => (parse?this.parse(request.items):request)))
                          //.catch(this.handleError);
 
         }
@@ -56,7 +63,7 @@
     // in a real world app, we may send the error to some remote logging infrastructure
     // instead of just logging it to the console
     console.log(error);
-    return Observable.throw(error  || 'Server error');
+    return observableThrowError(error  || 'Server error');
   }
   parse(response):ClaimResult[]{
     var results:ClaimResult[] = [];
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/service/claims.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/service/claims.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/service/claims.service.ts	(revision 55964)
@@ -1,15 +1,19 @@
+
+import {throwError as observableThrowError, Observable} from 'rxjs';
 import {Injectable} from '@angular/core';
 import {URLSearchParams } from '@angular/http';
 import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
+import { HttpClient } from '@angular/common/http';
 // import {Claim}           from '../claim';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+
+
+
+import { catchError } from 'rxjs/operators';
+
 import { CustomOptions } from '../../../services/servicesUtils/customOptions.class';
 @Injectable()
 export class ClaimsService {
-  constructor(private http: Http ) {
+  constructor(private http: HttpClient ) {
   }
 
   private getClaimRequest(size : number, page : number, url :string, fromCache:boolean):any {
@@ -16,9 +20,9 @@
     //console.info('ClaimsService: Claims request: '+url);
     let key = url;
        return this.http.get(url, CustomOptions.getAuthOptions())
-                    .map(request => <any> request.json())
+                    //.map(request => <any> request.json())
                     //.do(request => console.info("Get claims: offset = "+(size*(page-1)) + " limit ="+size ))
-                    .catch(this.handleError);
+         .pipe(catchError(this.handleError));
   }
   getClaims( size : number, page : number, keyword:string, sortby: string, descending: boolean, types: string, apiUrl:string):any {
     let url = apiUrl +"claims"+"?offset="+(size*(page-1) + "&limit="+size)+"&keyword="+keyword+"&sortby="+sortby+"&descending="+descending+"&"+types;
@@ -54,9 +58,9 @@
     let url = apiUrl +"claims/"+claimId;
     // let headers = new Headers({ 'Content-Type': 'application/json' });
     // let options = new RequestOptions({ headers: headers });
-      return this.http.delete( url,  CustomOptions.getAuthOptionsWithBody()).map(request => <any> request.json())
+      return this.http.delete( url,  CustomOptions.getAuthOptionsWithBody())//.map(request => <any> request.json())
       // .do(request => console.info("After delete" ))
-      .catch(this.handleError);
+      .pipe(catchError(this.handleError));
 
   }
   deleteBulk(claimIds:string[], apiUrl:string):any{
@@ -71,9 +75,9 @@
 
     // let headers = new Headers({ 'Content-Type': 'application/json' });
     // let options = new RequestOptions({ headers: headers });
-      return this.http.delete( url,  CustomOptions.getAuthOptions()).map(request => <any> request.json())
+      return this.http.delete( url,  CustomOptions.getAuthOptions())//.map(request => <any> request.json())
       // .do(request => console.info("After delete" ))
-      .catch(this.handleError);
+      .pipe(catchError(this.handleError));
 
   }
   insertBulkClaims(claims, apiUrl:string):any{
@@ -84,9 +88,9 @@
     // let headers = new Headers({ 'Content-Type': 'application/json' });
     // let options = new RequestOptions({ headers: headers });
     return this.http.post(url, body,  CustomOptions.getAuthOptionsWithBody())
-                          .map(res => res.json())
+                          //.map(res => res.json())
                           //.do(request => console.info("Insert Response:"+request.status) )
-                          .catch(this.handleError);
+                          .pipe(catchError(this.handleError));
 
     }
   insertClaim(claim, apiUrl:string):any{
@@ -96,9 +100,9 @@
           // let headers = new Headers({ 'Content-Type': 'application/json' });
           // let options = new RequestOptions({ headers: headers });
           return this.http.post(url, body,  CustomOptions.getAuthOptionsWithBody())
-                          .map(res => res.json())
+                          //.map(res => res.json())
                           //.do(request => console.info("Insert Response:"+request.status) )
-                          .catch(this.handleError);
+                          .pipe(catchError(this.handleError));
 
     }
     insertDirectRecords(records, apiUrl:string):any{
@@ -109,9 +113,9 @@
       // let headers = new Headers({ 'Content-Type': 'application/json' });
       // let options = new RequestOptions({ headers: headers });
       return this.http.post(url, body, CustomOptions.getAuthOptionsWithBody())
-                            .map(res => res.json())
+                            //.map(res => res.json())
                             //.do(request => console.info("Insert Response:"+request) )
-                            .catch(this.handleError);
+                            .pipe(catchError(this.handleError));
 
       }
   private handleError (error: Response) {
@@ -118,7 +122,7 @@
     // in a real world app, we may send the error to some remote logging infrastructure
     // instead of just logging it to the console
     console.log(error);
-    return Observable.throw(error  || 'Server error');
+    return observableThrowError(error  || 'Server error');
   }
 
   getClaim(id:string, apiUrl:string):any {
@@ -125,10 +129,10 @@
   let url = apiUrl+"claims/"+id;
       return new Promise((resolve, reject) => {
         this.http.get(url)
-          .map(res => res.json())
+          //.map(res => res.json())
           .subscribe(
             data => {
-              resolve(data.data);
+              resolve(data['data']);
             },
             err => {
               reject(err);
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/claimContextSearchForm.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/claimContextSearchForm.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/claimContextSearchForm.component.ts	(revision 55964)
@@ -1,5 +1,5 @@
 import {Component, Input,Output, EventEmitter, ViewChild} from '@angular/core';
-import {Observable}       from 'rxjs/Observable';
+import {Observable}       from 'rxjs';
 import { Router} from '@angular/router';
 import {ContextsService} from './service/contexts.service';
 import {ClaimContext} from './claimEntities.class';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claimsByToken/claimsByToken.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claimsByToken/claimsByToken.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claimsByToken/claimsByToken.component.ts	(revision 55964)
@@ -4,8 +4,7 @@
 import {Title, Meta}                 from '@angular/platform-browser';
 
 import {DataTableDirective}          from 'angular-datatables';
-import {Observable}                  from 'rxjs/Observable';
-import { Subject }                   from 'rxjs/Subject';
+import {Observable,  Subject }                  from 'rxjs';
 
 import{EnvProperties}                from '../../utils/properties/env-properties';
 import {ErrorCodes}                  from '../../utils/properties/errorCodes';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/linking/linkingGeneric.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/linking/linkingGeneric.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/linking/linkingGeneric.component.ts	(revision 55964)
@@ -1,7 +1,7 @@
 import {Component, Input}             from '@angular/core';
 import {ActivatedRoute, Router}       from '@angular/router';
 import {Title, Meta}                  from '@angular/platform-browser';
-import {Observable}                   from 'rxjs/Observable';
+import {Observable}                   from 'rxjs';
 
 import {EnvProperties}                from '../../utils/properties/env-properties';
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/sharedComponents/navigationBar.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/sharedComponents/navigationBar.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/sharedComponents/navigationBar.component.ts	(revision 55964)
@@ -1,7 +1,7 @@
 import { Component, Input } from '@angular/core';
 // import 'rxjs/Rx';
 import {ActivatedRoute, Router} from '@angular/router';
-import {Observable}       from 'rxjs/Observable';
+import {Observable}       from 'rxjs';
 
 import {Session} from '../login/utils/helper.class';
 import { ConfigurationService } from '../utils/configuration/configuration.service';
@@ -63,12 +63,12 @@
 
 if( this.APIUrl && this.communityId ){
     this.config.getCommunityInformation(this.APIUrl, this.communityId ).subscribe(data => {
-        for(var i=0; i< data.entities.length; i++){
+        for(var i=0; i< data['entities'].length; i++){
 
-          this.showEntity[""+data.entities[i]["pid"]+""] = data.entities[i]["isEnabled"];
+          this.showEntity[""+data['entities'][i]["pid"]+""] = data['entities'][i]["isEnabled"];
         }
-        for(var i=0; i< data.pages.length; i++){
-          this.showPage[data.pages[i]["route"]] = data.pages[i]["isEnabled"];
+        for(var i=0; i< data['pages'].length; i++){
+          this.showPage[data['pages'][i]["route"]] = data['pages'][i]["isEnabled"];
 
         }
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claimsByToken/claimsByToken.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claimsByToken/claimsByToken.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claimsByToken/claimsByToken.service.ts	(revision 55964)
@@ -1,15 +1,16 @@
 import {Injectable} from '@angular/core';
-import {Http, Response} from '@angular/http';
-import {Jsonp, URLSearchParams,ResponseOptions, RequestOptions, Headers} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
-import 'rxjs/add/operator/do';
+import {RequestOptions, Headers} from '@angular/http';
+import {HttpClient, HttpErrorResponse, HttpHeaders} from "@angular/common/http";
+import {throwError} from 'rxjs';
 
+
 import { CustomOptions } from '../../services/servicesUtils/customOptions.class';
+import {catchError} from "rxjs/operators";
 
 @Injectable()
 export class ClaimsByTokenService {
 
-    constructor(private http: Http ) {}
+    constructor(private http: HttpClient ) {}
 
     getClaims(openaireId: string,  apiURL:string):any {
 
@@ -18,9 +19,9 @@
 
         let key = url;
 
-        return this.http.get(url, CustomOptions.getAuthOptions())
+        return this.http.get(url, CustomOptions.getAuthOptions());
                     //.map(res => <any> res.text())
-                    .map(request => <any> request.json());
+                    //.map(request => <any> request.json());
 
     }
 
@@ -57,12 +58,11 @@
 
     let body = JSON.stringify( claimsCurationInfo );
     //console.warn('Json body:  : '+body);
-    let headers = new Headers({ 'Content-Type': 'application/json' });
-    let options = new RequestOptions({ headers: headers });
+
     return this.http.post(url, body,  CustomOptions.getAuthOptionsWithBody())
-                          .map(res => res.json())
+                          //.map(res => res.json())
                           //.do(request => console.info("Insert Response:"+request.status) )
-                          .catch(this.handleError);
+                          .pipe(catchError(this.handleError));
   }
 
 
@@ -74,17 +74,17 @@
 
       let body = JSON.stringify( claimsCurationInfo );
       //console.warn('Json body:  : '+body);
-      let headers = new Headers({ 'Content-Type': 'application/json' });
-      let options = new RequestOptions({ headers: headers });
+
       return this.http.post(url, body,  CustomOptions.getAuthOptionsWithBody())
-                            .map(res => res.json())
-                            .catch(this.handleError);
+                            //.map(res => res.json())
+                            .pipe(catchError(this.handleError));
     }
 
-  private handleError (error: Response) {
+  private handleError (error: HttpErrorResponse) {
     // in a real world app, we may send the error to some remote logging infrastructure
     // instead of just logging it to the console
     console.log(error);
-    return Observable.throw(error  || 'Server error');
+    return throwError(error || 'Server error');
+    //return Observable.throw(error  || 'Server error');
   }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/linking/insertClaim/insertClaim.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/linking/insertClaim/insertClaim.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/linking/insertClaim/insertClaim.component.ts	(revision 55964)
@@ -1,5 +1,5 @@
 import {Component, Input, Output, EventEmitter, ViewChild} from '@angular/core';
-import {Observable}       from 'rxjs/Observable';
+import {Observable}       from 'rxjs';
 import {Router, ActivatedRoute} from '@angular/router';
 import {ClaimsService} from '../../claim-utils/service/claims.service';
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/sharedComponents/cookie-law/cookie-law.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/sharedComponents/cookie-law/cookie-law.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/sharedComponents/cookie-law/cookie-law.component.ts	(revision 55964)
@@ -14,14 +14,14 @@
   Input,
   Output,
   EventEmitter,
-  animate,
+} from '@angular/core';
+import {  animate,
   state,
   trigger,
   style,
   transition,
-  AnimationTransitionEvent,
-} from '@angular/core';
-
+  AnimationEvent
+} from '@angular/animations';
 import {
   DomSanitizer,
   SafeHtml,
@@ -129,7 +129,7 @@
     }
   }
 
-  afterDismissAnimation(evt: AnimationTransitionEvent) {
+  afterDismissAnimation(evt: AnimationEvent) {
     if (evt.toState === 'topOut' ||
         evt.toState === 'bottomOut') {
       this.isSeen = true;
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/login/freeGuard.guard.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/login/freeGuard.guard.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/login/freeGuard.guard.ts	(revision 55964)
@@ -7,11 +7,11 @@
   Route,
   CanLoad
 } from '@angular/router';
-import {Observable} from 'rxjs/Observable';
+import {Observable} from 'rxjs';
 import {LoginErrorCodes} from './utils/guardHelper.class';
 
 @Injectable()
-export class FreeGuard implements CanActivate, CanLoad {
+export class FreeGuard implements CanActivate {
 
   constructor(private router: Router) {
   }
@@ -28,7 +28,4 @@
     return this.check(state.url);
   }
 
-  canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean {
-    return this.check('/' + route.path);
-  }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/service/searchOrcid.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/service/searchOrcid.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/service/searchOrcid.service.ts	(revision 55964)
@@ -2,60 +2,68 @@
 import {URLSearchParams} from '@angular/http';
 import {Http, Response} from '@angular/http';
 import { Headers, RequestOptions } from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
+import {HttpClient, HttpHeaders} from '@angular/common/http';
+import {Observable}     from 'rxjs';
 import{EnvProperties} from '../../../utils/properties/env-properties';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+
+
+
 import { ClaimResult} from  '../claimEntities.class';
+import {map} from "rxjs/operators";
 
 @Injectable()
 export class SearchOrcidService {
-  constructor( private http: Http ) {}
+  constructor( private http: HttpClient ) {}
 
 
   searchOrcidAuthor (term: string, authorIds: string[], authors, properties:EnvProperties, addId):any {
 
-    var headers = new Headers();
-    headers.append('Accept', 'application/orcid+json');
+    //var headers = new Headers();
+    //headers.append('Accept', 'application/orcid+json');
+    let headers = new HttpHeaders({'Accept': 'application/orcid+json'});
 
     let url = properties.searchOrcidURL + term+'/record';
     let key = url;
 
     return this.http.get(url, { headers: headers })
-                .map(res => res.json()['person'])
-                .map(res => [res['name']['given-names'],
+                //.map(res => res.json()['person'])
+                 .pipe(map(res => res['person']))
+                 .pipe(map(res => [res['name']['given-names'],
                              res['name']['family-name'],
-                             res['name']])
-                .map(res => this.parseOrcidAuthor(res, authorIds, authors, addId));
+                             res['name']]))
+                .pipe(map(res => this.parseOrcidAuthor(res, authorIds, authors, addId)));
     }
 
   searchOrcidAuthors (term: string, authorIds: string[],
     properties:EnvProperties):any {
 
-    var headers = new Headers();
-    headers.append('Accept', 'application/orcid+json');
+    //var headers = new Headers();
+    //headers.append('Accept', 'application/orcid+json');
+    let headers = new HttpHeaders({'Accept': 'application/orcid+json'});
 
     let url = properties.searchOrcidURL+'search?defType=edismax&q='+term+'&qf=given-name^1.0+family-name^2.0+other-names^1.0+credit-name^1.0&start=0&rows=10';
     let key = url;
 
     return this.http.get(url, { headers: headers })
-      .map(res => res.json()['result'])
-      .map(res => this.parseOrcidAuthors(res, authorIds));
+      //.map(res => res.json()['result'])
+      .pipe(map(res => res['result']))
+      .pipe(map(res => this.parseOrcidAuthors(res, authorIds)));
 
     }
 
     searchOrcidPublications (id: string, properties:EnvProperties, parse:boolean = false):any {
 
-      var headers = new Headers();
-      headers.append('Accept', 'application/orcid+json');
+      //var headers = new Headers();
+      //headers.append('Accept', 'application/orcid+json');
+      let headers = new HttpHeaders({'Accept': 'application/orcid+json'});
 
       let url =properties.searchOrcidURL+id+'/works';
       let key = url;
 
       return this.http.get(url, { headers: headers })
-        .map(res => res.json()['group'])
-        .map(request => (parse?this.parse(id, request):request));
+        //.map(res => res.json()['group'])
+        .pipe(map(res => res['group']))
+        .pipe(map(request => (parse?this.parse(id, request):request)));
         //.map(res => res['orcid-work']);
       }
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/login/claimsCuratorGuard.guard.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/login/claimsCuratorGuard.guard.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/login/claimsCuratorGuard.guard.ts	(revision 55964)
@@ -1,11 +1,19 @@
-import { Injectable } from '@angular/core';
-import {Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanLoad, Route} from '@angular/router';
-import {Observable} from 'rxjs/Observable';
+import {Injectable} from '@angular/core';
+import {
+  Router,
+  CanActivate,
+  ActivatedRouteSnapshot,
+  RouterStateSnapshot,
+  CanLoad,
+  Route,
+  UrlSegment
+} from '@angular/router';
+import {Observable} from 'rxjs';
 import {Session} from './utils/helper.class';
 import {LoginErrorCodes} from './utils/guardHelper.class';
 
 @Injectable()
-export class ClaimsCuratorGuard implements CanActivate, CanLoad {
+export class ClaimsCuratorGuard implements CanActivate {
 
   constructor(private router: Router) {
   }
@@ -24,7 +32,12 @@
       }
     }
     if (!loggedIn || !isAuthorized) {
-      this.router.navigate(['/user-info'], {queryParams: {'errorCode': errorCode, 'redirectUrl': path}});
+      this.router.navigate(['/user-info'], {
+        queryParams: {
+          'errorCode': errorCode,
+          'redirectUrl': path
+        }
+      });
     }
     return loggedIn && isAuthorized;
   }
@@ -33,7 +46,4 @@
     return this.check(state.url);
   }
 
-  canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean {
-    return this.check('/' + route.path);
-  }
 }
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claimsAdmin/claimsAdmin.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claimsAdmin/claimsAdmin.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claimsAdmin/claimsAdmin.component.ts	(revision 55964)
@@ -2,7 +2,7 @@
 import {Location}                     from '@angular/common';
 import {Title, Meta}                  from '@angular/platform-browser';
 
-import {Observable}                   from 'rxjs/Observable';
+import {Observable}                   from 'rxjs';
 
 
 @Component({
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/service/contexts.service.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/service/contexts.service.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/service/contexts.service.ts	(revision 55964)
@@ -1,16 +1,16 @@
+
+import {throwError as observableThrowError, Observable} from 'rxjs';
 import {Injectable} from '@angular/core';
 import {Jsonp, URLSearchParams, RequestOptions, Headers} from '@angular/http';
 import {Http, Response} from '@angular/http';
-import {Observable}     from 'rxjs/Observable';
+import { HttpClient } from '@angular/common/http';
 import {Claim}           from '../claim';
 import {AutoCompleteValue} from '../../../searchPages/searchUtils/searchHelperClasses.class';
-import 'rxjs/add/observable/of';
-import 'rxjs/add/operator/do';
-import 'rxjs/add/operator/share';
+import {catchError, map} from "rxjs/operators";
 import { COOKIE  } from '../../../login/utils/helper.class';
 @Injectable()
 export class ContextsService {
-  constructor(private http: Http ) {
+  constructor(private http: HttpClient ) {
   }
 
   public getCommunities( apiUrl:string):any {
@@ -19,9 +19,10 @@
   let key = url;
     //console.info('ContextsService: request communities  '+url);
       return this.http.get(url)
-                    .map(res => <any> res.json()).map(res => this.parseCommunities(res, true) )
+                    //.map(res => <any> res.json())
+                    .pipe(map(res => this.parseCommunities(res, true) ))
                     // .do(request => console.info("Get claims: offset = "))
-                    .catch(this.handleError);
+                    .pipe(catchError(this.handleError));
   }
   public getPublicCommunities( apiUrl:string):any {
     let  url   = apiUrl + 's/';
@@ -29,9 +30,7 @@
     let key = url;
     //console.info('ContextsService: request communities  '+url);
     return this.http.get(url)
-      .map(res => <any> res.json()).map(res => this.parseCommunities(res, false) )
-      // .do(request => console.info("Get claims: offset = "))
-      .catch(this.handleError);
+      .pipe(map(res => this.parseCommunities(res, true) ));
   }
   parseCommunities(data, getall){
     var communities = [];
@@ -52,9 +51,9 @@
 
 
       return this.http.get(url)
-                    .map(request => <any> request.json())
+                    //.map(request => <any> request.json())
                     // .do(request => console.info("Get claims: offset = " ))
-                    .catch(this.handleError);;
+                    .pipe(catchError(this.handleError));
   }
   public getConcepts(categoryId :string, keyword: string, parsing:boolean, apiUrl:string):any {
     //console.info('ContextsService:  request concept for category  with id '+categoryId + ' and keyword '+ keyword);
@@ -63,9 +62,9 @@
 
 
       return this.http.get(url )
-                    .map(request => <any> request.json())
-                    .catch(this.handleError)
-                    .map(res => (parsing)?this.parse(res):res);
+                    //.map(request => <any> request.json())
+                    .pipe(catchError(this.handleError))
+                    .pipe(map(res => (parsing)?this.parse(res):res));
                     // .do(res => console.info("Result is "+ res.length ));
   }
   public getSubConcepts(subConceptID :string, keyword: string, parsing:boolean, apiUrl:string):any {
@@ -75,9 +74,9 @@
 
 
       return this.http.get(url )
-                    .map(request => <any> request.json())
-                    .catch(this.handleError)
-                    .map(res => (parsing)?this.parseSubConcepts(res):res);
+                    //.map(request => <any> request.json())
+                    .pipe(catchError(this.handleError))
+                    .pipe(map(res => (parsing)?this.parseSubConcepts(res):res));
                     // .do(res => console.info("Result is "+ res.length ));
   }
   parse (data: any):any {
@@ -130,7 +129,7 @@
     // in a real world app, we may send the error to some remote logging infrastructure
     // instead of just logging it to the console
     console.log(error);
-    return Observable.throw(error  || 'Server error');
+    return observableThrowError(error  || 'Server error');
   }
   private getAuthOptions():RequestOptions{
   let headers = new Headers();
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/claimProjectSearchForm.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/claimProjectSearchForm.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/claimProjectSearchForm.component.ts	(revision 55964)
@@ -1,9 +1,7 @@
 import {Component, Input,Output, ElementRef, EventEmitter, ViewChild} from '@angular/core';
-import {Observable}       from 'rxjs/Observable';
+import {Observable,  Subject }       from 'rxjs';
 import {SearchProjectsService} from '../../services/searchProjects.service';
 import {ProjectService} from '../../landingPages/project/project.service';
-// import {ModalLoading} from '../../utils/modal/loading.component';
-import { Subject } from 'rxjs/Subject';
 import {ClaimProject} from './claimEntities.class';
 declare var UIkit:any;
 import{EnvProperties} from '../../utils/properties/env-properties';
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/directLinking/directLinking.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/directLinking/directLinking.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/directLinking/directLinking.component.ts	(revision 55964)
@@ -1,5 +1,5 @@
 import {Component, Input}             from '@angular/core';
-import {Observable}                   from 'rxjs/Observable';
+import {Observable}                   from 'rxjs';
 import {ActivatedRoute, Router}       from '@angular/router';
 import {Title, Meta}                  from '@angular/platform-browser';
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/myClaims/myClaims.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/myClaims/myClaims.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/myClaims/myClaims.component.ts	(revision 55964)
@@ -1,5 +1,5 @@
 import {Component, Input}      from '@angular/core';
-import {Observable}            from 'rxjs/Observable';
+import {Observable}            from 'rxjs';
 import {Title, Meta}           from '@angular/platform-browser';
 
 @Component({
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/displayClaims/displayClaims.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/displayClaims/displayClaims.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/claim-utils/displayClaims/displayClaims.component.ts	(revision 55964)
@@ -1,8 +1,9 @@
+
+import {distinctUntilChanged, debounceTime} from 'rxjs/operators';
 import {Component, ViewChild, Input} from '@angular/core';
 import {Location} from '@angular/common';
-import {Observable}       from 'rxjs/Observable';
+import {Observable, Subject}       from 'rxjs';
 import {ActivatedRoute, Router} from '@angular/router';
-import {Subject} from 'rxjs/Subject';
 import {ClaimsService} from '../service/claims.service';
 import {ModalLoading} from '../../../utils/modal/loading.component';
 import {AlertModal} from '../../../utils/modal/alert';
@@ -58,8 +59,8 @@
       this.setTypes(params['types']); // check the appropriate checkboxes
       this.setSortby(params['sort']);
       this.getClaims();
-      this.searchTermStream
-      .debounceTime(300).distinctUntilChanged()
+      this.searchTermStream.pipe(
+      debounceTime(300),distinctUntilChanged(),)
       .subscribe((term: string) =>    {
         this.keyword = this.inputkeyword;
         //console.log("keyword: "+this.keyword + " VS inputkeyword: "+this.inputkeyword);
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/linking/bulkClaim/bulkClaim.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/linking/bulkClaim/bulkClaim.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/claims/linking/bulkClaim/bulkClaim.component.ts	(revision 55964)
@@ -1,5 +1,5 @@
 import {Component, Input, Output, EventEmitter,ViewChild} from '@angular/core';
-import {Observable}       from 'rxjs/Observable';
+import {Observable}       from 'rxjs';
 import {SearchCrossrefService} from '../../claim-utils/service/searchCrossref.service';
 import {SearchDataciteService} from '../../claim-utils/service/searchDatacite.service';
 
Index: modules/uoa-services-library/trunk/ng-openaire-library/src/app/sharedComponents/bottom.component.ts
===================================================================
--- modules/uoa-services-library/trunk/ng-openaire-library/src/app/sharedComponents/bottom.component.ts	(revision 55963)
+++ modules/uoa-services-library/trunk/ng-openaire-library/src/app/sharedComponents/bottom.component.ts	(revision 55964)
@@ -1,6 +1,6 @@
 import { Component, Input } from '@angular/core';
 import {ActivatedRoute} from '@angular/router';
-import 'rxjs/Rx';
+import 'rxjs';
 import{MenuItem} from './menu';
 import { ConfigurationService } from '../utils/configuration/configuration.service';
 
@@ -34,8 +34,8 @@
       if(this.showMenuItems){
         if( this.APIUrl && this.communityId ){
           this.config.getCommunityInformation(this.APIUrl, this.communityId ).subscribe(data => {
-            for(var i=0; i< data.pages.length; i++){
-              this.showPage[data.pages[i]["route"]] = data.pages[i]["isEnabled"];
+            for(var i=0; i< data['pages'].length; i++){
+              this.showPage[data['pages'][i]["route"]] = data['pages'][i]["isEnabled"];
 
             }
             // console.log(this.showPage)
