angular update to version 8

Remove_explore
Diamantis Tziotzios 5 years ago
parent 4f507eddf3
commit e6891861e5

@ -0,0 +1,12 @@
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries
# You can see what browsers were selected by your queries by running:
# npx browserslist
> 0.5%
last 2 versions
Firefox ESR
not dead
not IE 9-11 # For IE 9-11 support, remove 'not'.

@ -1,63 +1,58 @@
{
"name": "dmp-frontend2",
"version": "0.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build --prod",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^6.1.7",
"@angular/common": "^6.1.7",
"@angular/compiler": "^6.1.7",
"@angular/core": "^6.1.7",
"@angular/flex-layout": "6.0.0-beta.18",
"@angular/forms": "^6.1.7",
"@angular/material-moment-adapter": "^6.4.7",
"@angular/platform-browser": "^6.1.7",
"@ngx-translate/core": "^10.0.2",
"@ngx-translate/http-loader": "^3.0.1",
"@swimlane/ngx-datatable": "^13.1.0",
"bootstrap": "^4.1.3",
"core-js": "^2.5.5",
"file-saver": "^2.0.0-rc.3",
"moment": "^2.22.2",
"moment-timezone": "^0.5.23",
"ngx-cookie-service": "^1.0.10",
"rxjs": "^6.3.2",
"rxjs-compat": "^6.3.2",
"web-animations-js": "^2.3.1",
"zone.js": "^0.8.26"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.8.5",
"@angular/cdk": "^6.3.0",
"@angular/material": "^6.4.7",
"@angular/cli": "6.2.5",
"@angular/compiler-cli": "^6.1.10",
"@angular/http": "^6.1.10",
"@angular/platform-browser-dynamic": "^6.1.10",
"@angular/router": "^6.1.10",
"@angular/language-service": "^6.1.10",
"@types/facebook-js-sdk": "^2.8.4",
"@types/file-saver": "^1.3.1",
"@types/gapi": "^0.0.36",
"@types/gapi.auth2": "^0.0.47",
"@types/jasmine": "~2.8.9",
"@types/jasminewd2": "~2.0.5",
"@types/moment-timezone": "^0.5.4",
"@types/node": "^10.11.7",
"codelyzer": "~4.5.0",
"jasmine-core": "^3.2.1",
"jasmine-spec-reporter": "^4.2.1",
"protractor": "~5.4.1",
"ts-node": "~7.0.1",
"tslint": "~5.11.0",
"typescript": "2.9.1"
}
"name": "dmp-frontend2",
"version": "0.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build --prod",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^8.2.7",
"@angular/common": "^8.2.7",
"@angular/compiler": "^8.2.7",
"@angular/core": "^8.2.7",
"@angular/forms": "^8.2.7",
"@angular/material-moment-adapter": "^8.2.0",
"@angular/platform-browser": "^8.2.7",
"@ngx-translate/core": "^11.0.1",
"@ngx-translate/http-loader": "^4.0.0",
"@swimlane/ngx-datatable": "^16.0.2",
"bootstrap": "^4.3.1",
"core-js": "^2.5.5",
"file-saver": "^2.0.2",
"moment": "^2.24.0",
"moment-timezone": "^0.5.26",
"ngx-cookie-service": "^2.2.0",
"rxjs": "^6.3.2",
"tslib": "^1.10.0",
"web-animations-js": "^2.3.2",
"zone.js": "~0.9.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.803.5",
"@angular/cdk": "^8.2.0",
"@angular/material": "^8.2.0",
"@angular/cli": "8.3.5",
"@angular/compiler-cli": "^8.2.7",
"@angular/platform-browser-dynamic": "^8.2.7",
"@angular/router": "^8.2.7",
"@angular/language-service": "^8.2.7",
"@types/facebook-js-sdk": "^3.3.0",
"@types/file-saver": "^2.0.1",
"@types/gapi": "^0.0.39",
"@types/gapi.auth2": "^0.0.50",
"@types/jasmine": "~3.4.0",
"@types/jasminewd2": "~2.0.6",
"@types/moment-timezone": "^0.5.12",
"@types/node": "^10.11.7",
"codelyzer": "^5.1.1",
"ts-node": "~8.4.1",
"tslint": "~5.20.0",
"typescript": "3.5.3"
}
}

@ -14,7 +14,7 @@ const appRoutes: Routes = [
},
{
path: 'datasetcreatewizard',
loadChildren: './ui/dataset-create-wizard/dataset-create-wizard.module#DatasetCreateWizardModule',
loadChildren: () => import('./ui/dataset-create-wizard/dataset-create-wizard.module').then(m => m.DatasetCreateWizardModule),
data: {
breadcrumb: true,
title: 'GENERAL.TITLES.DATASETCREATEWIZARD'
@ -22,7 +22,7 @@ const appRoutes: Routes = [
},
{
path: 'explore',
loadChildren: './ui/explore-dataset/explore-dataset.module#ExploreDatasetModule',
loadChildren: () => import('./ui/explore-dataset/explore-dataset.module').then(m => m.ExploreDatasetModule),
data: {
breadcrumb: true,
title: 'GENERAL.TITLES.EXPLORE'
@ -30,7 +30,7 @@ const appRoutes: Routes = [
},
{
path: 'explore-plans',
loadChildren: './ui/explore-dmp/explore-dmp.module#ExploreDmpModule',
loadChildren: () => import('./ui/explore-dmp/explore-dmp.module').then(m => m.ExploreDmpModule),
data: {
breadcrumb: true,
title: 'GENERAL.TITLES.EXPLORE-PLANS'
@ -38,7 +38,7 @@ const appRoutes: Routes = [
},
{
path: 'datasets',
loadChildren: './ui/dataset/dataset.module#DatasetModule',
loadChildren: () => import('./ui/dataset/dataset.module').then(m => m.DatasetModule),
data: {
breadcrumb: true,
title: 'GENERAL.TITLES.DATASETS'
@ -46,7 +46,7 @@ const appRoutes: Routes = [
},
{
path: 'about',
loadChildren: './ui/about/about.module#AboutModule',
loadChildren: () => import('./ui/about/about.module').then(m => m.AboutModule),
data: {
breadcrumb: true,
title: 'GENERAL.TITLES.ABOUT'
@ -54,7 +54,7 @@ const appRoutes: Routes = [
},
{
path: 'grants',
loadChildren: './ui/grant/grant.module#GrantModule',
loadChildren: () => import('./ui/grant/grant.module').then(m => m.GrantModule),
data: {
breadcrumb: true,
title: 'GENERAL.TITLES.GRANTS'
@ -62,7 +62,7 @@ const appRoutes: Routes = [
},
{
path: 'plans',
loadChildren: './ui/dmp/dmp.module#DmpModule',
loadChildren: () => import('./ui/dmp/dmp.module').then(m => m.DmpModule),
data: {
breadcrumb: true,
title: 'GENERAL.TITLES.PLANS'
@ -70,7 +70,7 @@ const appRoutes: Routes = [
},
{
path: 'dmp-profiles',
loadChildren: './ui/admin/dmp-profile/dmp-profile.module#DmpProfileModule',
loadChildren: () => import('./ui/admin/dmp-profile/dmp-profile.module').then(m => m.DmpProfileModule),
data: {
breadcrumb: true,
title: 'GENERAL.TITLES.DMP-PROFILES'
@ -78,7 +78,7 @@ const appRoutes: Routes = [
},
{
path: 'quick-wizard',
loadChildren: './ui/quick-wizard/quick-wizard.module#OuickWizardModule',
loadChildren: () => import('./ui/quick-wizard/quick-wizard.module').then(m => m.OuickWizardModule),
data: {
breadcrumb: true,
title: "GENERAL.TITLES.QUICK-WIZARD"
@ -86,7 +86,7 @@ const appRoutes: Routes = [
},
{
path: 'dataset-profiles',
loadChildren: './ui/admin/dataset-profile/dataset-profile.module#DatasetProfileModule',
loadChildren: () => import('./ui/admin/dataset-profile/dataset-profile.module').then(m => m.DatasetProfileModule),
data: {
breadcrumb: true,
title: 'GENERAL.TITLES.DATASET-PROFILES'
@ -94,21 +94,21 @@ const appRoutes: Routes = [
},
{
path: 'home',
loadChildren: './ui/dashboard/dashboard.module#DashboardModule',
loadChildren: () => import('./ui/dashboard/dashboard.module').then(m => m.DashboardModule),
data: {
breadcrumb: true
}
},
{
path: 'unauthorized',
loadChildren: './ui/misc/unauthorized/unauthorized.module#UnauthorizedModule',
loadChildren: () => import('./ui/misc/unauthorized/unauthorized.module').then(m => m.UnauthorizedModule),
data: {
breadcrumb: true
},
},
{
path: 'users',
loadChildren: './ui/admin/user/user.module#UserModule',
loadChildren: () => import('./ui/admin/user/user.module').then(m => m.UserModule),
data: {
breadcrumb: true,
title: 'GENERAL.TITLES.USERS'
@ -116,7 +116,7 @@ const appRoutes: Routes = [
},
{
path: 'profile',
loadChildren: './ui/user-profile/user-profile.module#UserProfileModule',
loadChildren: () => import('./ui/user-profile/user-profile.module').then(m => m.UserProfileModule),
data: {
breadcrumb: true,
title: 'GENERAL.TITLES.PROFILE'
@ -124,14 +124,14 @@ const appRoutes: Routes = [
},
{
path: 'login/admin',
loadChildren: './ui/auth/admin-login/admin-login.module#AdminLoginModule',
loadChildren: () => import('./ui/auth/admin-login/admin-login.module').then(m => m.AdminLoginModule),
data: {
breadcrumb: true
},
},
{
path: 'login',
loadChildren: './ui/auth/login/login.module#LoginModule',
loadChildren: () => import('./ui/auth/login/login.module').then(m => m.LoginModule),
data: {
breadcrumb: true,
title: 'GENERAL.TITLES.LOGIN'

@ -1,12 +1,14 @@
import {of as observableOf, Observable } from 'rxjs';
import {switchMap, filter, map } from 'rxjs/operators';
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { Observable } from 'rxjs';
import { environment } from '../environments/environment';
import { AuthService } from './core/services/auth/auth.service';
import { CultureService } from './core/services/culture/culture-service';
import { BreadCrumbResolverService } from './ui/misc/breadcrumb/service/breadcrumb.service';
import { filter, map } from 'rxjs/operators';
import { Title } from '@angular/platform-browser';
@ -20,7 +22,7 @@ declare var $: any;
})
export class AppComponent implements OnInit {
hasBreadCrumb = Observable.of(false);
hasBreadCrumb = observableOf(false);
sideNavOpen = false;
helpContentEnabled = environment.HelpService.Enabled;
@ -46,12 +48,12 @@ export class AppComponent implements OnInit {
}
ngOnInit() {
this.hasBreadCrumb = this.router.events
.filter(event => event instanceof NavigationEnd)
.map(() => this.route)
.map(route => route.firstChild)
.switchMap(route => route.data)
.map(data => data['breadcrumb']);
this.hasBreadCrumb = this.router.events.pipe(
filter(event => event instanceof NavigationEnd),
map(() => this.route),
map(route => route.firstChild),
switchMap(route => route.data),
map(data => data['breadcrumb']),);
const appTitle = this.titleService.getTitle();
this.router

@ -1,7 +1,7 @@
import { OverlayModule } from '@angular/cdk/overlay';
import { HttpClient, HttpClientModule } from '@angular/common/http';
import { LOCALE_ID, NgModule } from '@angular/core';
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
import { MatMomentDateModule, MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';
import { BrowserModule, Title } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

@ -1,5 +1,5 @@
import { Inject, Injectable, Optional } from '@angular/core';
import { MAT_DATE_LOCALE } from '@angular/material';
import { MAT_DATE_LOCALE } from '@angular/material/core';
import { MomentDateAdapter } from '@angular/material-moment-adapter';
import * as moment from 'moment';
import { Moment } from 'moment';

@ -1,6 +1,6 @@
import { HttpHandler, HttpHeaderResponse, HttpProgressEvent, HttpRequest, HttpResponse, HttpSentEvent, HttpUserEvent } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { MatSnackBar } from '@angular/material';
import { MatSnackBar } from '@angular/material/snack-bar';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { BaseInterceptor } from './base.interceptor';

@ -1,3 +1,5 @@
import {tap} from 'rxjs/operators';
import { Injectable } from "@angular/core";
import { BaseInterceptor } from "./base.interceptor";
import { InterceptorType } from "./interceptor-type";
@ -10,11 +12,11 @@ export class StatusCodeInterceptor extends BaseInterceptor {
type: InterceptorType;
interceptRequest(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent <any>> {
return next.handle(req).do(event => { }, err => {
return next.handle(req).pipe(tap(event => { }, err => {
if (err.status === 480) {
this.router.navigate(['confirmation']);
}
});
}));
}
constructor(

@ -1,37 +1,35 @@
import { NgModule } from '@angular/core';
import {
MatButtonModule,
MatToolbarModule,
MatIconModule,
MatCardModule,
MatGridListModule,
MatSnackBarModule,
MatSidenavModule,
MatListModule,
MatChipsModule,
MatFormFieldModule,
MatSelectModule,
MatOptionModule,
MatInputModule,
MatExpansionModule,
MatAutocompleteModule,
MatProgressSpinnerModule,
MatTabsModule,
MatDialogModule,
MatMenuModule,
MatRadioModule,
MatStepperModule,
MatTooltipModule,
MatProgressBarModule,
MatCheckboxModule,
MatDatepickerModule,
MatButtonToggleModule,
MatSliderModule,
MatSlideToggleModule,
MatTableModule,
MatPaginatorModule,
MatSortModule,
} from '@angular/material';
import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { MatButtonModule } from '@angular/material/button';
import { MatButtonToggleModule } from '@angular/material/button-toggle';
import { MatCardModule } from '@angular/material/card';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatChipsModule } from '@angular/material/chips';
import { MatOptionModule } from '@angular/material/core';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatDialogModule } from '@angular/material/dialog';
import { MatExpansionModule } from '@angular/material/expansion';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatGridListModule } from '@angular/material/grid-list';
import { MatIconModule } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input';
import { MatListModule } from '@angular/material/list';
import { MatMenuModule } from '@angular/material/menu';
import { MatPaginatorModule } from '@angular/material/paginator';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { MatRadioModule } from '@angular/material/radio';
import { MatSelectModule } from '@angular/material/select';
import { MatSidenavModule } from '@angular/material/sidenav';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatSliderModule } from '@angular/material/slider';
import { MatSnackBarModule } from '@angular/material/snack-bar';
import { MatSortModule } from '@angular/material/sort';
import { MatStepperModule } from '@angular/material/stepper';
import { MatTableModule } from '@angular/material/table';
import { MatTabsModule } from '@angular/material/tabs';
import { MatToolbarModule } from '@angular/material/toolbar';
import { MatTooltipModule } from '@angular/material/tooltip';
import { CdkTableModule } from '@angular/cdk/table';
@NgModule({

@ -1,10 +1,9 @@
import { DmpModel } from "../dmp"
import { DatasetProfileModel } from "../../dataset/dataset-profile";
import { FormGroup } from "@angular/forms/src/model";
import { ValidationContext } from "../../../../common/forms/validation/validation-context";
import { Validators, FormBuilder } from "@angular/forms";
import { FormBuilder, FormGroup, Validators } from "@angular/forms";
import { BackendErrorValidator } from "../../../../common/forms/validation/custom-validator";
import { ValidationErrorModel } from "../../../../common/forms/validation/error-model/validation-error-model";
import { ValidationContext } from "../../../../common/forms/validation/validation-context";
import { DatasetProfileModel } from "../../dataset/dataset-profile";
import { DmpModel } from "../dmp";
export class DmpCreateWizardFormModel {
dmp: DmpModel;
@ -18,7 +17,7 @@ export class DmpCreateWizardFormModel {
return this;
}
buildForm(context: ValidationContext = null): FormGroup{
buildForm(context: ValidationContext = null): FormGroup {
if (context == null) { context = this.createValidationContext(); }
const formBuilder = new FormBuilder();
const formGroup = formBuilder.group({
@ -37,6 +36,3 @@ export class DmpCreateWizardFormModel {
return baseContext;
}
}

@ -1,10 +1,12 @@
import {of as observableOf, throwError as observableThrowError, Observable } from 'rxjs';
import {map, catchError, takeUntil } from 'rxjs/operators';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { MatSnackBar } from '@angular/material';
import { MatSnackBar } from '@angular/material/snack-bar';
import { Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { takeUntil } from 'rxjs/operators';
import { Observable } from 'rxjs/Rx';
import { environment } from '../../../../environments/environment';
import { SnackBarNotificationComponent } from '../../../library/notification/snack-bar/snack-bar-notification.component';
import { BaseService } from '../../common/base/base.service';
@ -67,31 +69,31 @@ export class AuthService extends BaseService {
public login(loginInfo: LoginInfo): Observable<Principal> {
const url = this.actionUrl + 'externallogin';
return this.http.post(url, loginInfo, { headers: this.headers })
.map((res: any) => {
return this.http.post(url, loginInfo, { headers: this.headers }).pipe(
map((res: any) => {
const principal = this.current(res.payload);
//this.loginContextSubject.next(true);
return principal;
})
.catch((error: any) => {
}),
catchError((error: any) => {
//this.loginContextSubject.next(false);
return Observable.throw(error);
});
return observableThrowError(error);
}),);
}
public nativeLogin(credentials: Credential): Observable<Principal> {
const url = this.actionUrl + 'nativelogin';
return this.http.post(url, credentials, { headers: this.headers })
.map((res: any) => {
return this.http.post(url, credentials, { headers: this.headers }).pipe(
map((res: any) => {
const principal = this.current(res.payload);
//this.loginContextSubject.next(true);
return principal;
})
.catch((error: any) => {
}),
catchError((error: any) => {
//this.loginContextSubject.next(false);
return Observable.throw(error);
});
return observableThrowError(error);
}),);
}
@ -116,22 +118,22 @@ export class AuthService extends BaseService {
const principal = this.current();
if (!principal) {
this.clear();
return Observable.of<Principal>();
return observableOf<Principal>();
}
let headers = this.headers;
headers = headers.set('AuthToken', principal.token);
return this.http.post(url, null, { headers: headers })
.map((res: any) => {
return this.http.post(url, null, { headers: headers }).pipe(
map((res: any) => {
const princ = this.current(res.payload);
return princ;
})
.catch((error: any) => {
}),
catchError((error: any) => {
//console.warn('could not retrieve me info:\n', error);
this.clear();
const princ = this.current();
this.router.navigate(['/login']);
return Observable.of<Principal>(princ);
});
return observableOf<Principal>(princ);
}),);
}
public onLogOutSuccess(logoutMessage: any) {

@ -2,17 +2,14 @@ import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { environment } from '../../../../environments/environment';
import { RequestItem } from '../../query/request-item';
import { BaseHttpParams } from '../../../common/http/base-http-params';
import { InterceptorType } from '../../../common/http/interceptors/interceptor-type';
import { DatasetProfileDefinitionModel } from '../../model/dataset-profile-definition/dataset-profile-definition';
import { DatasetProfileModel } from '../../model/dataset/dataset-profile';
import { DatasetWizardModel } from '../../model/dataset/dataset-wizard';
import { DmpModel } from '../../model/dmp/dmp';
import { DatasetProfileCriteria } from '../../query/dataset-profile/dataset-profile-criteria';
import { DmpCriteria } from '../../query/dmp/dmp-criteria';
import { RequestItem } from '../../query/request-item';
import { BaseHttpService } from '../http/base-http.service';
import { ContentType } from '@angular/http/src/enums';
import { BaseHttpParams } from '../../../common/http/base-http-params';
import { InterceptorType } from '../../../common/http/interceptors/interceptor-type';
@Injectable()
export class DatasetWizardService {
@ -70,7 +67,7 @@ export class DatasetWizardService {
return this.http.get<DatasetWizardModel>(this.actionUrl + id + '/unlock', { headers: this.headers });
}
public uploadXml(fileList: FileList, datasetTitle: string, dmpId: string, datasetProfileId: string): Observable<ContentType> {
public uploadXml(fileList: FileList, datasetTitle: string, dmpId: string, datasetProfileId: string): Observable<any> {
const formData: FormData = new FormData();
if (fileList instanceof FileList) {
for (let i = 0; i < fileList.length; i++) {
@ -90,6 +87,6 @@ export class DatasetWizardService {
}
public updateDatasetProfile(id: String): Observable<DatasetWizardModel> {
return this.http.get<DatasetWizardModel>(this.actionUrl + "profile/"+ id, { headers: this.headers });
return this.http.get<DatasetWizardModel>(this.actionUrl + "profile/" + id, { headers: this.headers });
}
}

@ -2,23 +2,22 @@ import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { environment } from '../../../../environments/environment';
import { BaseHttpParams } from '../../../common/http/base-http-params';
import { InterceptorType } from '../../../common/http/interceptors/interceptor-type';
import { DynamicFieldGrantCriteria } from '../../../models/dynamic-field-grant/DynamicFieldGrantCriteria';
import { DataTableData } from '../../model/data-table/data-table-data';
import { DataTableRequest } from '../../model/data-table/data-table-request';
import { DatasetListingModel } from '../../model/dataset/dataset-listing';
import { DatasetProfileModel } from '../../model/dataset/dataset-profile';
import { DatasetsToBeFinalized } from '../../model/dataset/datasets-toBeFinalized';
import { DmpModel } from '../../model/dmp/dmp';
import { DmpListingModel } from '../../model/dmp/dmp-listing';
import { DmpOverviewModel } from '../../model/dmp/dmp-overview';
import { DatasetProfileCriteria } from '../../query/dataset-profile/dataset-profile-criteria';
import { DmpCriteria } from '../../query/dmp/dmp-criteria';
import { ExploreDmpCriteriaModel } from '../../query/explore-dmp/explore-dmp-criteria';
import { RequestItem } from '../../query/request-item';
import { BaseHttpService } from '../http/base-http.service';
import { ContentType } from '@angular/http/src/enums';
import { BaseHttpParams } from '../../../common/http/base-http-params';
import { InterceptorType } from '../../../common/http/interceptors/interceptor-type';
import { ExploreDmpCriteriaModel } from '../../query/explore-dmp/explore-dmp-criteria';
import { DmpOverviewModel } from '../../model/dmp/dmp-overview';
import { DatasetListingModel } from '../../model/dataset/dataset-listing';
import { DatasetsToBeFinalized } from '../../model/dataset/datasets-toBeFinalized';
@Injectable()
export class DmpService {
@ -93,7 +92,7 @@ export class DmpService {
}
getDoi(id: string): Observable<string> {
return this.http.post<string>(this.actionUrl + 'createZenodoDoi/' + id, {headers: this.headers});
return this.http.post<string>(this.actionUrl + 'createZenodoDoi/' + id, { headers: this.headers });
}
getDynamicField(requestItem: RequestItem<DynamicFieldGrantCriteria>): any {
@ -119,7 +118,7 @@ export class DmpService {
return this.httpClient.get(this.actionUrl + 'rda/' + id, { responseType: 'blob', observe: 'response' });
}
public uploadXml(fileList: FileList, dmpTitle: string): Observable<ContentType> {
public uploadXml(fileList: FileList, dmpTitle: string): Observable<any> {
const formData: FormData = new FormData();
if (fileList instanceof FileList) {
for (let i = 0; i < fileList.length; i++) {

@ -1,7 +1,7 @@
import { HttpHeaders } from '@angular/common/http';
import { Injectable } from "@angular/core";
import { HttpHeaders } from "@angular/common/http/src/headers";
import { BaseHttpService } from "../http/base-http.service";
import { environment } from "../../../../environments/environment";
import { BaseHttpService } from "../http/base-http.service";
@Injectable()
export class EmailConfirmationService {
@ -17,6 +17,6 @@ export class EmailConfirmationService {
}
public sendConfirmationEmail(email: string) {
return this.http.post<String>(this.actioUrl, email, {headers: this.headers});
return this.http.post<String>(this.actioUrl, email, { headers: this.headers });
}
}

@ -1,55 +1,57 @@
import { HttpClient } from '@angular/common/http';
/**
* Created by stefania on 7/17/17.
*/
import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { Observable } from 'rxjs/Rx';
import { Observable, throwError as observableThrowError } from 'rxjs';
import { catchError, map } from 'rxjs/operators';
import { environment } from '../../../../environments/environment';
import { PageHelpContent } from '../../model/help-content/page-help-content';
import { CachedContentItem } from './cached-content-item';
@Injectable()
export class HelpContentService {
private _helpServiceUrl = environment.HelpService.Url;
cache = new Map<String, CachedContentItem>();
constructor(private http: Http) {
constructor(private http: HttpClient) {
}
getActivePageContent(route: string) {
if (!this.cache.get(route) || !this.isValidCachedItem(route)) {
return this.http.get(this._helpServiceUrl + '/page/route?q=' + route)
.map(res => {
this.cache.set(route, { timestamp: Date.now(), content: <PageHelpContent>res.json() });
return res.json();
})
.catch(this.handleError);
}
return Observable.create(observer => observer.next(this.cache.get(route).content));
}
private extractData(res: Response) {
const body = res.json();
return body.data || {};
}
private handleError(error: Response | any) {
// In a real world app, we might use a remote logging infrastructure
// We'd also dig deeper into the error to get a better message
let errMsg = '';
if (error instanceof Response) {
const body = error.text() || '';
//const err = body.error || JSON.stringify(body);
errMsg = `${error.status} - ${error.statusText || ''} ${body}`;
} else {
errMsg = (error.message) ? error.message :
error.status ? `${error.status} - ${error.statusText}` : 'Server error';
console.error(errMsg); // log to console instead
}
return Observable.throw(errMsg);
}
// getActivePageContent(route: string) {
// if (!this.cache.get(route) || !this.isValidCachedItem(route)) {
// return this.http.get(this._helpServiceUrl + '/page/route?q=' + route).pipe(
// map((res: Response) => {
// this.cache.set(route, { timestamp: Date.now(), content: res.json() as PageHelpContent });
// return res.json();
// }),
// catchError(this.handleError));
// }
// return Observable.create(observer => observer.next(this.cache.get(route).content));
// }
// private extractData(res: Response) {
// const body = res.json();
// return body. || {};
// }
// private handleError(error: Response | any) {
// // In a real world app, we might use a remote logging infrastructure
// // We'd also dig deeper into the error to get a better message
// let errMsg = '';
// if (error instanceof Response) {
// const body = error.text() || '';
// //const err = body.error || JSON.stringify(body);
// errMsg = `${error.status} - ${error.statusText || ''} ${body}`;
// } else {
// errMsg = (error.message) ? error.message :
// error.status ? `${error.status} - ${error.statusText}` : 'Server error';
// console.error(errMsg); // log to console instead
// }
// return observableThrowError(errMsg);
// }
isValidCachedItem(route) {
const cachedTimestamp = this.cache.get(route).timestamp;
const currentTimestamp = Date.now();
if (currentTimestamp - cachedTimestamp > 30000) { return false; } else { return true; }
}
// isValidCachedItem(route) {
// const cachedTimestamp = this.cache.get(route).timestamp;
// const currentTimestamp = Date.now();
// if (currentTimestamp - cachedTimestamp > 30000) { return false; } else { return true; }
// }
}

@ -1,3 +1,5 @@
import {map} from 'rxjs/operators';
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
@ -39,7 +41,7 @@ export class BaseHttpService {
}
private interceptRepsonse<T>(observable: Observable<Object>): Observable<T> {
return observable
return observable.pipe(
// .catch((errorResponse) => {
// if (errorResponse.status === 401) {
// this.snackBar.openFromComponent(SnackBarNotificationComponent, {
@ -69,7 +71,7 @@ export class BaseHttpService {
// }
// }
// })
.map(response => {
map(response => {
if (response instanceof Blob) { return response; }
if (response['statusCode'] === ApiMessageCode.SUCCESS_MESSAGE) {
//throw new Error('Request failed');
@ -83,6 +85,6 @@ export class BaseHttpService {
} else {
return response['payload'];
}
});
}));
}
}

@ -2,7 +2,9 @@ import { FocusMonitor } from '@angular/cdk/a11y';
import { COMMA, ENTER } from '@angular/cdk/keycodes';
import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Optional, Output, Self, ViewChild } from '@angular/core';
import { ControlValueAccessor, NgControl } from '@angular/forms';
import { MatAutocompleteSelectedEvent, MatAutocompleteTrigger, MatChipInputEvent, MatFormFieldControl } from '@angular/material';
import { MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete';
import { MatChipInputEvent } from '@angular/material/chips';
import { MatFormFieldControl } from '@angular/material/form-field';
import { Observable, of as observableOf, Subject } from 'rxjs';
import { debounceTime, distinctUntilChanged, map, mergeMap, startWith, tap } from 'rxjs/operators';
import { AutoCompleteGroup } from '../auto-complete-group';
@ -87,8 +89,8 @@ export class MultipleAutoCompleteComponent implements OnInit, MatFormFieldContro
}
private _selectedValue;
@ViewChild('textInput') textInput: ElementRef;
@ViewChild(MatAutocompleteTrigger) autocomplete: MatAutocompleteTrigger;
@ViewChild('textInput', { static: true }) textInput: ElementRef;
@ViewChild(MatAutocompleteTrigger, { static: true }) autocomplete: MatAutocompleteTrigger;
constructor(
private fm: FocusMonitor,

@ -2,7 +2,8 @@ import { FocusMonitor } from '@angular/cdk/a11y';
import { COMMA, ENTER } from '@angular/cdk/keycodes';
import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Optional, Output, Self } from '@angular/core';
import { ControlValueAccessor, NgControl } from '@angular/forms';
import { MatAutocompleteSelectedEvent, MatFormFieldControl } from '@angular/material';
import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
import { MatFormFieldControl } from '@angular/material/form-field';
import { Observable, of as observableOf, Subject } from 'rxjs';
import { debounceTime, distinctUntilChanged, map, mergeMap, startWith, tap } from 'rxjs/operators';
import { AutoCompleteGroup } from '../auto-complete-group';

@ -1,5 +1,5 @@
import { Component, Inject } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
@Component({
selector: 'app-confirmation-dialog',

@ -1,5 +1,5 @@
import { Component, Inject } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { FormGroup } from '@angular/forms';
@Component({

@ -1,5 +1,5 @@
import { Component, OnInit, Inject } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
@Component({

@ -1,5 +1,6 @@
import { Component, OnInit } from '@angular/core';
import { MatDialog, MatSnackBar } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { MatSnackBar } from '@angular/material/snack-bar';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../core/common/base/base.component';
import { UiNotificationService, UiNotificationType, PopupNotification, SnackBarNotification, SnackBarNotificationLevel } from '../../core/services/notification/ui-notification-service';

@ -1,5 +1,5 @@
import { Component, Inject } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { PopupNotification } from '../../../core/services/notification/ui-notification-service';
@Component({

@ -1,5 +1,5 @@
import { Component, Inject } from '@angular/core';
import { MAT_SNACK_BAR_DATA } from '@angular/material';
import { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';
import { SnackBarNotification } from '../../../core/services/notification/ui-notification-service';
@Component({

@ -1,7 +1,10 @@
import { HttpErrorResponse } from '@angular/common/http';
import {of as observableOf, Observable } from 'rxjs';
import { HttpErrorResponse } from '@angular/common/http';
import { Component, OnInit, ViewChild } from '@angular/core';
import { FormArray, FormControl, FormGroup } from '@angular/forms';
import { MatHorizontalStepper, MatDialog } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { MatHorizontalStepper } from '@angular/material/stepper';
import { ActivatedRoute, ParamMap, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { map, takeUntil } from 'rxjs/operators';
@ -18,7 +21,6 @@ import { ConfirmationDialogComponent } from '../../../../library/confirmation-di
import { DatasetProfileEnum } from '../../../../core/common/enum/dataset-profile';
import * as FileSaver from 'file-saver';
import { BreadcrumbItem } from '../../../misc/breadcrumb/definition/breadcrumb-item';
import { Observable } from 'rxjs';
import { DatasetStatus } from '../../../../core/common/enum/dataset-status';
//import * as data from 'src/assets/resources/skipDisable.json';
@ -42,7 +44,7 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn
newVersionId: string;
dataWizardModel: DatasetWizardModel;
breadCrumbs: Observable<BreadcrumbItem[]>;
@ViewChild('stepper') stepper: MatHorizontalStepper;
@ViewChild('stepper', { static: false }) stepper: MatHorizontalStepper;
viewOnly = false;
constructor(
@ -88,7 +90,7 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn
},
error => this.onCallbackError(error)
);
this.breadCrumbs = Observable.of([{
this.breadCrumbs = observableOf([{
parentComponentName: 'DatasetProfileListingComponent',
label: this.language.instant('NAV-BAR.TEMPLATE'),
url: '/dataset-profiles/' + this.datasetProfileId

@ -1,5 +1,5 @@
import { Component, OnInit } from '@angular/core';
import { MatDialog } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { TranslateService } from '@ngx-translate/core';
import { takeUntil } from 'rxjs/operators';
import { ValidationErrorModel } from '../../../../../common/forms/validation/error-model/validation-error-model';

@ -1,4 +1,4 @@
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { Inject, Component } from '@angular/core';

@ -1,9 +1,12 @@
import {merge as observableMerge, of as observableOf, Observable } from 'rxjs';
import {switchMap, startWith, map, takeUntil } from 'rxjs/operators';
import { DataSource } from '@angular/cdk/table';
import { Component, OnInit, ViewChild } from '@angular/core';
import { MatPaginator, MatSort, PageEvent } from '@angular/material';
import { MatPaginator, PageEvent } from '@angular/material/paginator';
import { MatSort } from '@angular/material/sort';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../../core/common/base/base.component';
import { DataTableRequest } from '../../../../core/model/data-table/data-table-request';
import { DatasetListingModel } from '../../../../core/model/dataset/dataset-listing';
@ -24,9 +27,9 @@ import { BreadcrumbItem } from '../../../misc/breadcrumb/definition/breadcrumb-i
})
export class DatasetProfileListingComponent extends BaseComponent implements OnInit {
@ViewChild(MatPaginator) _paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
@ViewChild(DatasetProfileCriteriaComponent) criteria: DatasetProfileCriteriaComponent;
@ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator;
@ViewChild(MatSort, { static: true }) sort: MatSort;
@ViewChild(DatasetProfileCriteriaComponent, { static: true }) criteria: DatasetProfileCriteriaComponent;
breadCrumbs: Observable<BreadcrumbItem[]>;
dataSource: DatasetDataSource | null;
@ -70,7 +73,7 @@ export class DatasetProfileListingComponent extends BaseComponent implements OnI
this.criteria.setCriteria(this.getDefaultCriteria());
this.refresh();
this.criteria.setRefreshCallback(() => this.refresh());
this.breadCrumbs = Observable.of([{
this.breadCrumbs = observableOf([{
parentComponentName: null,
label: this.language.instant('NAV-BAR.DATASET-TEMPLATES'),
url: '/dataset-profiles'
@ -80,7 +83,7 @@ export class DatasetProfileListingComponent extends BaseComponent implements OnI
}
setDmpTitle(dmpId: String) {
this.dmpService.getSingle(dmpId).map(data => data as DmpModel)
this.dmpService.getSingle(dmpId).pipe(map(data => data as DmpModel))
.pipe(takeUntil(this._destroyed))
.subscribe(data => {
this.titlePrefix = data.label;
@ -140,9 +143,9 @@ export class DatasetDataSource extends DataSource<DatasetListingModel> {
//this._sort.matSortChange
];
return Observable.merge(...displayDataChanges)
.startWith(null)
.switchMap(() => {
return observableMerge(...displayDataChanges).pipe(
startWith(null),
switchMap(() => {
const startIndex = this._paginator.pageIndex * this._paginator.pageSize;
let fields: Array<string> = new Array();
if (this._sort.active) { fields = this._sort.direction === 'asc' ? ['+' + this._sort.active] : ['-' + this._sort.active]; }
@ -153,7 +156,7 @@ export class DatasetDataSource extends DataSource<DatasetListingModel> {
request.criteria.allVersions = true;
}
return this._service.getPaged(request);
})
}),
/*.catch((error: any) => {
this._snackBar.openFromComponent(SnackBarNotificationComponent, {
data: { message: 'GENERAL.SNACK-BAR.FORMS-BAD-REQUEST', language: this._languageService },
@ -163,14 +166,14 @@ export class DatasetDataSource extends DataSource<DatasetListingModel> {
//this._criteria.criteria.onCallbackError(error);
return Observable.of(null);
})*/
.map(result => {
map(result => {
return result;
})
.map(result => {
}),
map(result => {
if (!result) { return []; }
if (this._paginator.pageIndex === 0) { this.totalCount = result.totalCount; }
return result.data;
});
}),);
}
disconnect() {

@ -1,6 +1,6 @@
import { Component, Inject, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../../core/common/base/base.component';
import { DatasetProfileService } from '../../../../core/services/dataset-profile/dataset-profile.service';

@ -1,9 +1,12 @@
import {of as observableOf, Observable } from 'rxjs';
import {map, takeUntil } from 'rxjs/operators';
import { AfterViewInit, Component, OnInit } from '@angular/core';
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import * as FileSaver from 'file-saver';
import { takeUntil } from 'rxjs/operators';
import { environment } from '../../../../../environments/environment';
import { ValidationErrorModel } from '../../../../common/forms/validation/error-model/validation-error-model';
import { BaseComponent } from '../../../../core/common/base/base.component';
@ -16,7 +19,6 @@ import { SnackBarNotificationLevel, UiNotificationService } from '../../../../co
import { EnumUtils } from '../../../../core/services/utilities/enum-utils.service';
import { DmpProfileEditorModel, DmpProfileFieldEditorModel } from './dmp-profile-editor.model';
import { BreadcrumbItem } from '../../../misc/breadcrumb/definition/breadcrumb-item';
import { Observable } from 'rxjs';
import { DmpProfileExternalAutoCompleteFieldDataEditorModel } from './external-autocomplete/dmp-profile-external-autocomplete-field-editor.model';
@Component({
@ -53,7 +55,7 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie
if (this.dmpProfileId != null) {
this.isNew = false;
this.dmpProfileService.getSingle(this.dmpProfileId).map(data => data as DmpProfile)
this.dmpProfileService.getSingle(this.dmpProfileId).pipe(map(data => data as DmpProfile))
.pipe(takeUntil(this._destroyed))
.subscribe(data => {
this.dmpProfileModel = new DmpProfileEditorModel().fromModel(data);
@ -62,7 +64,7 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie
this.formGroup.disable();
this.viewOnly = true
}
this.breadCrumbs = Observable.of([{
this.breadCrumbs = observableOf([{
parentComponentName: 'DmpProfileListingComponent',
label: this.language.instant('NAV-BAR.TEMPLATE'),
url: '/dmp-profiles/' + this.dmpProfileId
@ -74,7 +76,7 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie
this.formGroup = this.dmpProfileModel.buildForm();
this.addField();
});
this.breadCrumbs = Observable.of([{
this.breadCrumbs = observableOf([{
parentComponentName: 'DmpProfileListingComponent',
label: this.language.instant('NAV-BAR.TEMPLATE'),
url: '/dmp-profiles/' + this.dmpProfileId

@ -1,4 +1,4 @@
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { Inject, Component } from '@angular/core';

@ -5,7 +5,7 @@ import { DmpCriteria } from '../../../../../core/query/dmp/dmp-criteria';
import { DmpProfileCriteria } from '../../../../../core/query/dmp/dmp-profile-criteria';
import { BaseCriteriaComponent } from '../../../../misc/criteria/base-criteria.component';
import { DialodConfirmationUploadDmpProfiles } from './dialog-confirmation-upload-profile/dialog-confirmation-upload-profiles.component';
import { MatDialog } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { TranslateService } from '@ngx-translate/core';
import { takeUntil } from 'rxjs/operators';
import { DmpProfileService } from '../../../../../core/services/dmp/dmp-profile.service';

@ -1,10 +1,14 @@
import {merge as observableMerge, of as observableOf, Observable } from 'rxjs';
import {map, switchMap, startWith, takeUntil } from 'rxjs/operators';
import { DataSource } from '@angular/cdk/table';
import { Component, OnInit, ViewChild } from '@angular/core';
import { MatPaginator, MatSnackBar, MatSort, PageEvent } from '@angular/material';
import { MatPaginator, PageEvent } from '@angular/material/paginator';
import { MatSnackBar } from '@angular/material/snack-bar';
import { MatSort } from '@angular/material/sort';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../../core/common/base/base.component';
import { DmpProfileListing } from '../../../../core/model/dmp-profile/dmp-profile-listing';
import { DmpProfileCriteria } from '../../../../core/query/dmp/dmp-profile-criteria';
@ -20,9 +24,9 @@ import { BreadcrumbItem } from '../../../misc/breadcrumb/definition/breadcrumb-i
})
export class DmpProfileListingComponent extends BaseComponent implements OnInit {
@ViewChild(MatPaginator) _paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
@ViewChild(DmpProfileCriteriaComponent) criteria: DmpProfileCriteriaComponent;
@ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator;
@ViewChild(MatSort, { static: true }) sort: MatSort;
@ViewChild(DmpProfileCriteriaComponent, { static: true }) criteria: DmpProfileCriteriaComponent;
dataSource: DatasetDataSource | null;
displayedColumns: String[] = ['label', 'status', 'created'];
@ -54,7 +58,7 @@ export class DmpProfileListingComponent extends BaseComponent implements OnInit
this.criteria.setCriteria(this.getDefaultCriteria());
this.refresh();
this.criteria.setRefreshCallback(() => this.refresh());
this.breadCrumbs = Observable.of([{
this.breadCrumbs = observableOf([{
parentComponentName: null,
label: this.languageService.instant('NAV-BAR.DMP-TEMPLATES'),
url: '/dmp-profiles'
@ -101,16 +105,16 @@ export class DatasetDataSource extends DataSource<DmpProfileListing> {
//this._sort.matSortChange
];
return Observable.merge(...displayDataChanges)
.startWith(null)
.switchMap(() => {
return observableMerge(...displayDataChanges).pipe(
startWith(null),
switchMap(() => {
const startIndex = this._paginator.pageIndex * this._paginator.pageSize;
let fields: Array<string> = new Array();
if (this._sort.active) { fields = this._sort.direction === 'asc' ? ['+' + this._sort.active] : ['-' + this._sort.active]; }
const request = new DataTableRequest<DmpProfileCriteria>(startIndex, this._paginator.pageSize, { fields: fields });
request.criteria = this._criteria.criteria;
return this._service.getPaged(request);
})
}),
/*.catch((error: any) => {
this._snackBar.openFromComponent(SnackBarNotificationComponent, {
data: { message: 'GENERAL.SNACK-BAR.FORMS-BAD-REQUEST', language: this._languageService },
@ -120,14 +124,14 @@ export class DatasetDataSource extends DataSource<DmpProfileListing> {
//this._criteria.criteria.onCallbackError(error);
return Observable.of(null);
})*/
.map(result => {
map(result => {
return result;
})
.map(result => {
}),
map(result => {
if (!result) { return []; }
if (this._paginator.pageIndex === 0) { this.totalCount = result.totalCount; }
return result.data;
});
}),);
}
disconnect() {

@ -1,8 +1,13 @@
import {of as observableOf, merge as observableMerge, Observable } from 'rxjs';
import {map, catchError, switchMap, startWith} from 'rxjs/operators';
import { DataSource } from '@angular/cdk/table';
import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';
import { MatPaginator, MatSnackBar, MatSort } from '@angular/material';
import { MatPaginator } from '@angular/material/paginator';
import { MatSnackBar } from '@angular/material/snack-bar';
import { MatSort } from '@angular/material/sort';
import { TranslateService } from '@ngx-translate/core';
import { Observable } from 'rxjs';
import { UserListingModel } from '../../../../core/model/user/user-listing';
import { UserCriteria } from '../../../../core/query/user/user-criteria';
import { UserService } from '../../../../core/services/user/user.service';
@ -41,28 +46,28 @@ export class UsersDataSource extends DataSource<UserListingModel> {
// this._paginator.pageIndex = 0;
//})
return Observable.merge(...displayDataChanges)
.startWith(null)
.switchMap(() => {
return observableMerge(...displayDataChanges).pipe(
startWith(null),
switchMap(() => {
const startIndex = this._paginator.pageIndex * this._paginator.pageSize;
let fields: Array<string> = new Array();
if (this._sort.active) { fields = this._sort.direction === 'asc' ? ['+' + this._sort.active] : ['-' + this._sort.active]; }
const request = new DataTableRequest<UserCriteria>(startIndex, this._paginator.pageSize, { fields: fields });
request.criteria = this._criteria.getFormData();
return this._service.getPaged(request);
})
.catch((error: any) => {
}),
catchError((error: any) => {
this._snackBar.openFromComponent(SnackBarNotificationComponent, {
data: { message: 'GENERAL.SNACK-BAR.FORMS-BAD-REQUEST', language: this._languageService },
duration: 3000,
});
this._criteria.onCallbackError(error);
return Observable.of(null);
})
.map(result => {
return observableOf(null);
}),
map(result => {
return result;
})
.map(result => {
}),
map(result => {
if (!result) { return []; }
if (this._paginator.pageIndex === 0) { this.totalCount = result.totalCount; }
//result.data.forEach((element: any) => {
@ -75,7 +80,7 @@ export class UsersDataSource extends DataSource<UserListingModel> {
// element.roles = roles;
//});
return result.data;
});
}),);
}
disconnect() {
@ -90,9 +95,9 @@ export class UsersDataSource extends DataSource<UserListingModel> {
})
export class UserListingComponent implements OnInit, AfterViewInit {
@ViewChild(MatPaginator) _paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
@ViewChild(UserCriteriaComponent) criteria: UserCriteriaComponent;
@ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator;
@ViewChild(MatSort, { static: true }) sort: MatSort;
@ViewChild(UserCriteriaComponent, { static: true }) criteria: UserCriteriaComponent;
breadCrumbs: Observable<BreadcrumbItem[]>;
dataSource: UsersDataSource | null;
@ -107,7 +112,7 @@ export class UserListingComponent implements OnInit, AfterViewInit {
}
ngOnInit() {
this.breadCrumbs = Observable.of([{
this.breadCrumbs = observableOf([{
parentComponentName: null,
label: this.languageService.instant('NAV-BAR.USERS-BREADCRUMB'),
url: "/users"

@ -1,7 +1,10 @@
import {of as observableOf, Observable } from 'rxjs';
import {mergeMap, takeUntil } from 'rxjs/operators';
import { Component, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
import { Router, ActivatedRoute, Params } from '@angular/router';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../core/common/base/base.component';
import { RecentActivityType } from '../../core/common/enum/recent-activity-type';
import { DashboardStatisticsModel } from '../../core/model/dashboard/dashboard-statistics-model';
@ -24,7 +27,6 @@ import { DatasetService } from '../../core/services/dataset/dataset.service';
import { ExploreDatasetCriteriaModel } from '../../core/query/explore-dataset/explore-dataset-criteria';
import { BreadcrumbItem } from '../misc/breadcrumb/definition/breadcrumb-item';
import { IBreadCrumbComponent } from '../misc/breadcrumb/definition/IBreadCrumbComponent';
import { Observable } from 'rxjs';
@Component({
selector: 'app-dashboard',
@ -90,7 +92,7 @@ export class DashboardComponent extends BaseComponent implements OnInit, IBreadC
// };
const breadCrumbs = [];
this.breadCrumbs = Observable.of(breadCrumbs);
this.breadCrumbs = observableOf(breadCrumbs);
if (!this.isAuthenticated()) {
this.dashboardService.getStatistics()
@ -109,9 +111,9 @@ export class DashboardComponent extends BaseComponent implements OnInit, IBreadC
});
}
this.filteredOptions = this.searchControl.valueChanges.flatMap(x => {
this.filteredOptions = this.searchControl.valueChanges.pipe(mergeMap(x => {
return this.searchBarService.search(x);
});
}));
}
public isAuthenticated(): boolean {

@ -2,7 +2,7 @@ import { BaseComponent } from "../../../core/common/base/base.component";
import { OnInit, Component } from "@angular/core";
import { Router, ActivatedRoute } from "@angular/router";
import { TranslateService } from "@ngx-translate/core";
import { MatSnackBar } from "@angular/material";
import { MatSnackBar } from "@angular/material/snack-bar";
@Component({
selector: 'app-quick-wizard-create-add-component',

@ -10,7 +10,7 @@ import { Router } from '@angular/router';
import { Principal } from '../../../core/model/auth/Principal';
import { TranslateService } from '@ngx-translate/core';
import { ConfirmationDialogComponent } from '../../../library/confirmation-dialog/confirmation-dialog.component';
import { MatDialog } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { ExportMethodDialogComponent } from '../../../library/export-method-dialog/export-method-dialog.component';
import { BaseComponent } from '../../../core/common/base/base.component';
import { UiNotificationService, SnackBarNotificationLevel } from '../../../core/services/notification/ui-notification-service';

@ -1,12 +1,14 @@
import {of as observableOf, Observable } from 'rxjs';
import { Component, OnInit, ViewChild } from '@angular/core';
import { FormBuilder, FormGroup, FormArray } from '@angular/forms';
import { MatStepper, MatDialog } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { MatStepper } from '@angular/material/stepper';
import { Router } from '@angular/router';
import { BaseComponent } from '../../core/common/base/base.component';
import { QuickWizardService } from '../../core/services/quick-wizard/quick-wizard.service';
import { DatasetCreateWizardModel } from './dataset-create-wizard.model';
import { IBreadCrumbComponent } from '../misc/breadcrumb/definition/IBreadCrumbComponent';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { BreadcrumbItem } from '../misc/breadcrumb/definition/breadcrumb-item';
import { SnackBarNotificationLevel, UiNotificationService } from '../../core/services/notification/ui-notification-service';
@ -22,14 +24,14 @@ import { ConfirmationDialogComponent } from '../../library/confirmation-dialog/c
})
export class DatasetCreateWizard extends BaseComponent implements OnInit, IBreadCrumbComponent {
breadCrumbs: Observable<BreadcrumbItem[]>;
@ViewChild(DatasetEditorWizardComponent) datasetEditorWizardComponent: DatasetEditorWizardComponent;
@ViewChild(DatasetEditorWizardComponent, { static: false }) datasetEditorWizardComponent: DatasetEditorWizardComponent;
isLinear = false;
isNew = true;
formGroup: FormGroup;
datasetCreateWizardModel: DatasetCreateWizardModel;
@ViewChild('stepper') stepper: MatStepper;
@ViewChild('stepper', { static: true }) stepper: MatStepper;
constructor(
private router: Router,
@ -46,7 +48,7 @@ export class DatasetCreateWizard extends BaseComponent implements OnInit, IBread
this.datasetCreateWizardModel = new DatasetCreateWizardModel();
this.formGroup = this.datasetCreateWizardModel.buildForm();
this.language.get('NAV-BAR.DATASET-DESCRIPTION-WIZARD').pipe(takeUntil(this._destroyed)).subscribe(x => {
this.breadCrumbs = Observable.of([
this.breadCrumbs = observableOf([
{
parentComponentName: 'Dashboard',
label: x,

@ -1,25 +1,23 @@
import { Component, OnInit, ViewChild, Input } from '@angular/core';
import { BaseComponent } from '../../../core/common/base/base.component';
import { IBreadCrumbComponent } from '../../misc/breadcrumb/definition/IBreadCrumbComponent';
import { Component, Input, OnInit } from '@angular/core';
import { FormArray, FormControl, FormGroup } from '@angular/forms';
import { MatStepper } from '@angular/material/stepper';
import { ActivatedRoute, Router } from '@angular/router';
import { Observable } from 'rxjs';
import { BreadcrumbItem } from '../../misc/breadcrumb/definition/breadcrumb-item';
import { MatStepper, MatSnackBar } from '@angular/material';
import { FormGroup, FormArray } from '@angular/forms';
import { DatasetProfileModel } from '../../../core/model/dataset/dataset-profile';
import { takeUntil } from 'rxjs/operators';
import { RequestItem } from '../../../core/query/request-item';
import { DmpCriteria } from '../../../core/query/dmp/dmp-criteria';
import { Params, ActivatedRoute, Router } from '@angular/router';
import { DatasetProfileCriteria } from '../../../core/query/dataset-profile/dataset-profile-criteria';
import { map, takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../core/common/base/base.component';
import { DmpStatus } from '../../../core/common/enum/dmp-status';
import { DataTableRequest } from '../../../core/model/data-table/data-table-request';
import { DatasetProfileModel } from '../../../core/model/dataset/dataset-profile';
import { DmpListingModel } from '../../../core/model/dmp/dmp-listing';
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
import { SingleAutoCompleteConfiguration } from '../../../library/auto-complete/single/single-auto-complete-configuration';
import { DatasetProfileCriteria } from '../../../core/query/dataset-profile/dataset-profile-criteria';
import { DmpCriteria } from '../../../core/query/dmp/dmp-criteria';
import { RequestItem } from '../../../core/query/request-item';
import { DatasetWizardService } from '../../../core/services/dataset-wizard/dataset-wizard.service';
import { TranslateService } from '@ngx-translate/core';
import { DmpService } from '../../../core/services/dmp/dmp.service';
import { FormControl } from '@angular/forms/src/model';
import { DmpStatus } from '../../../core/common/enum/dmp-status';
import { SingleAutoCompleteConfiguration } from '../../../library/auto-complete/single/single-auto-complete-configuration';
import { BreadcrumbItem } from '../../misc/breadcrumb/definition/breadcrumb-item';
import { IBreadCrumbComponent } from '../../misc/breadcrumb/definition/IBreadCrumbComponent';
@Component({
selector: 'dataset-dmp-selector-component',
@ -79,8 +77,8 @@ export class DatasetDmpSelector extends BaseComponent implements OnInit, IBreadC
dmpDataTableRequest.criteria.status = DmpStatus.Draft;
dmpDataTableRequest.criteria.like = query;
return this.dmpService.getPaged(dmpDataTableRequest, "autocomplete")
.map(y => y.data);
return this.dmpService.getPaged(dmpDataTableRequest, "autocomplete").pipe(
map(y => y.data));
}
loadDatasetProfiles() {

@ -1,5 +1,7 @@
import {map} from 'rxjs/operators';
import { Component } from "@angular/core";
import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material";
import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
import { SingleAutoCompleteConfiguration } from "../../../../library/auto-complete/single/single-auto-complete-configuration";
import { Observable } from "rxjs";
import { DataTableRequest } from "../../../../core/model/data-table/data-table-request";
@ -57,19 +59,19 @@ export class DatasetCopyDialogueComponent {
const dmpDataTableRequest: DataTableRequest<DmpCriteria> = new DataTableRequest(0, null, { fields: fields });
dmpDataTableRequest.criteria = new DmpCriteria();
dmpDataTableRequest.criteria.like = query;
return this.dmpService.getPaged(dmpDataTableRequest, "autocomplete").map(x => x.data);
return this.dmpService.getPaged(dmpDataTableRequest, "autocomplete").pipe(map(x => x.data));
}
datasetProfileValidate() {
return this.dmpService.getSingle(this.data.formControl.value.id).map(result => result as DmpModel)
.map(result => {
return this.dmpService.getSingle(this.data.formControl.value.id).pipe(map(result => result as DmpModel),
map(result => {
this.dmpModel = result
this.dmpModel.profiles.forEach((element) => {
if (element.id == this.data.datasetProfileId) {
this.data.datasetProfileExist = true;
}
})
});
}),);
}
getErrorMessage() {

@ -1,11 +1,15 @@
import {of as observableOf, Observable } from 'rxjs';
import {map, catchError, takeUntil } from 'rxjs/operators';
import { Component, OnInit, ViewChild } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms';
import { MatDialog, MatSnackBar, MatStepper } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { MatSnackBar } from '@angular/material/snack-bar';
import { MatStepper } from '@angular/material/stepper';
import { ActivatedRoute, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import * as FileSaver from 'file-saver';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
import { BaseComponent } from '../../../core/common/base/base.component';
import { DatasetStatus } from '../../../core/common/enum/dataset-status';
@ -40,7 +44,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
breadCrumbs: Observable<BreadcrumbItem[]>;
viewOnly = false;
@ViewChild('stepper') stepper: MatStepper;
@ViewChild('stepper', { static: false }) stepper: MatStepper;
editMode = false;
publicMode = false;
@ -109,7 +113,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
.subscribe(data => {
this.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data);
this.needsUpdate();
this.breadCrumbs = Observable.of([
this.breadCrumbs = observableOf([
{
parentComponentName: null,
label: this.datasetWizardModel.label,
@ -140,11 +144,11 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
error => {
this.uiNotificationService.snackBarNotification(this.language.instant('DATASET-WIZARD.MESSAGES.DATAESET-NOT-FOUND'), SnackBarNotificationLevel.Error);
this.router.navigate(['/plans']);
return Observable.of(null);
return observableOf(null);
});
} else if (dmpId != null) {
this.isNew = true;
this.dmpService.getSingle(dmpId).map(data => data as DmpModel)
this.dmpService.getSingle(dmpId).pipe(map(data => data as DmpModel))
.pipe(takeUntil(this._destroyed))
.subscribe(data => {
this.datasetWizardModel = new DatasetWizardEditorModel();
@ -158,7 +162,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
this.registerFormListeners();
// this.availableProfiles = data.profiles;
this.breadCrumbs = Observable.of([
this.breadCrumbs = observableOf([
{
parentComponentName: null,
label: this.language.instant('NAV-BAR.MY-DATASET-DESCRIPTIONS'),
@ -186,7 +190,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
this.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data);
this.formGroup = this.datasetWizardModel.buildForm();
this.formGroup.get('id').setValue(null);
this.dmpService.getSingle(newDmpId).map(data => data as DmpModel)
this.dmpService.getSingle(newDmpId).pipe(map(data => data as DmpModel))
.pipe(takeUntil(this._destroyed))
.subscribe(data => {
setTimeout(() => {
@ -194,7 +198,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
this.formGroup.get('dmp').setValue(this.datasetWizardModel.dmp);
this.loadDatasetProfiles();
this.breadCrumbs = Observable.of([
this.breadCrumbs = observableOf([
{
parentComponentName: null,
label: this.language.instant('NAV-BAR.MY-DATASET-DESCRIPTIONS'),
@ -226,12 +230,12 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
} else if (this.publicId != null) { // For Finalized -> Public Datasets
this.isNew = false;
this.datasetWizardService.getSinglePublic(this.publicId)
.pipe(takeUntil(this._destroyed))
.catch((error: any) => {
.pipe(takeUntil(this._destroyed)).pipe(
catchError((error: any) => {
this.uiNotificationService.snackBarNotification(error.error.message, SnackBarNotificationLevel.Error);
this.router.navigate(['/explore']);
return Observable.of(null);
})
return observableOf(null);
}))
.subscribe(data => {
if (data) {
this.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data);
@ -246,7 +250,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
const breadcrumbs = [];
breadcrumbs.push({ parentComponentName: null, label: this.language.instant('NAV-BAR.PUBLIC DATASETS'), url: '/explore' });
breadcrumbs.push({ parentComponentName: null, label: this.datasetWizardModel.label, url: '/datasets/publicEdit/' + this.datasetWizardModel.id });
this.breadCrumbs = Observable.of(breadcrumbs);
this.breadCrumbs = observableOf(breadcrumbs);
}
});
this.publicMode = true;
@ -256,7 +260,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
.subscribe(data => {
this.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data);
this.needsUpdate();
this.breadCrumbs = Observable.of([
this.breadCrumbs = observableOf([
{
parentComponentName: null,
label: this.language.instant('NAV-BAR.MY-DATASET-DESCRIPTIONS'),
@ -294,7 +298,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
//if (this.viewOnly) { this.formGroup.disable(); } // For future use, to make Dataset edit like DMP.
this.registerFormListeners();
this.dmpValueChanged(null);
this.breadCrumbs = Observable.of([
this.breadCrumbs = observableOf([
{
parentComponentName: null,
label: this.language.instant('DATASET-LISTING.ACTIONS.CREATE-NEW').toUpperCase(),
@ -349,7 +353,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
const dmpDataTableRequest: DataTableRequest<DmpCriteria> = new DataTableRequest(0, null, { fields: fields });
dmpDataTableRequest.criteria = new DmpCriteria();
dmpDataTableRequest.criteria.like = query;
return this.dmpService.getPaged(dmpDataTableRequest, "autocomplete").map(x => x.data);
return this.dmpService.getPaged(dmpDataTableRequest, "autocomplete").pipe(map(x => x.data));
}
loadDatasetProfiles() {

@ -1,6 +1,6 @@
import { Component, Input, OnInit } from '@angular/core';
import { FormArray, FormGroup } from '@angular/forms';
import { MatDialog } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { Router } from '@angular/router';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';

@ -1,6 +1,6 @@
import { Component, Inject, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../../../../core/common/base/base.component';
import { ExternalDataRepositoryService } from '../../../../../../core/services/external-sources/data-repository/extternal-data-repository.service';

@ -1,6 +1,6 @@
import { Component, Inject, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../../../../core/common/base/base.component';
import { ExternalDatasetService } from '../../../../../../core/services/external-sources/dataset/external-dataset.service';

@ -1,6 +1,6 @@
import { Component, Inject, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../../../../core/common/base/base.component';
import { ExternalRegistryService } from '../../../../../../core/services/external-sources/registry/external-registry.service';

@ -1,6 +1,6 @@
import { Component, Inject, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../../../../core/common/base/base.component';
import { ExternalServiceService } from '../../../../../../core/services/external-sources/service/external-service.service';

@ -1,39 +1,38 @@
import { Component, OnInit } from '@angular/core';
import { Component, Input, OnInit } from '@angular/core';
import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
import { MatDialog } from '@angular/material/dialog';
import { MatSnackBar } from '@angular/material/snack-bar';
import { Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { Observable } from 'rxjs';
import { map, takeUntil } from 'rxjs/operators';
import { ValidationErrorModel } from '../../../../common/forms/validation/error-model/validation-error-model';
import { DatasetStatus } from '../../../../core/common/enum/dataset-status';
import { DataTableData } from '../../../../core/model/data-table/data-table-data';
import { DataTableRequest } from '../../../../core/model/data-table/data-table-request';
import { DmpListingModel } from '../../../../core/model/dmp/dmp-listing';
import { ExternalSourceItemModel } from '../../../../core/model/external-sources/external-source-item';
import { DatasetProfileCriteria } from '../../../../core/query/dataset-profile/dataset-profile-criteria';
import { DatasetCriteria } from '../../../../core/query/dataset/dataset-criteria';
import { DmpCriteria } from '../../../../core/query/dmp/dmp-criteria';
import { GrantCriteria } from '../../../../core/query/grant/grant-criteria';
import { OrganisationCriteria } from '../../../../core/query/organisation/organisation-criteria';
import { RequestItem } from '../../../../core/query/request-item';
import { TagCriteria } from '../../../../core/query/tag/tag-criteria';
import { UserCriteria } from '../../../../core/query/user/user-criteria';
import { DatasetWizardService } from '../../../../core/services/dataset-wizard/dataset-wizard.service';
import { DatasetService } from '../../../../core/services/dataset/dataset.service';
import { DmpService } from '../../../../core/services/dmp/dmp.service';
import { ExternalSourcesService } from '../../../../core/services/external-sources/external-sources.service';
import { GrantService } from '../../../../core/services/grant/grant.service';
import { SnackBarNotificationLevel, UiNotificationService } from '../../../../core/services/notification/ui-notification-service';
import { OrganisationService } from '../../../../core/services/organisation/organisation.service';
import { UserService } from '../../../../core/services/user/user.service';
import { EnumUtils } from '../../../../core/services/utilities/enum-utils.service';
import { RequestItem } from '../../../../core/query/request-item';
import { MultipleAutoCompleteConfiguration } from '../../../../library/auto-complete/multiple/multiple-auto-complete-configuration';
import { BaseCriteriaComponent } from '../../../misc/criteria/base-criteria.component';
import { DmpCriteria } from '../../../../core/query/dmp/dmp-criteria';
import { DmpService } from '../../../../core/services/dmp/dmp.service';
import { DataTableRequest } from '../../../../core/model/data-table/data-table-request';
import { DataTableData } from '../../../../core/model/data-table/data-table-data';
import { DmpListingModel } from '../../../../core/model/dmp/dmp-listing';
import { Input } from '@angular/core';
import { MatDialog, MatSnackBar } from '@angular/material';
import { DatasetUploadDialogue } from './dataset-upload-dialogue/dataset-upload-dialogue.component';
import { takeUntil } from 'rxjs/operators';
import { reserveSlots } from '@angular/core/src/render3/instructions';
import { DatasetWizardService } from '../../../../core/services/dataset-wizard/dataset-wizard.service';
import { ViewChild } from '@angular/core';
import { UiNotificationService, SnackBarNotificationLevel } from '../../../../core/services/notification/ui-notification-service';
import { Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { FormGroup, FormBuilder, FormControl } from '@angular/forms';
import { MultipleAutoCompleteConfiguration } from '../../../../library/auto-complete/multiple/multiple-auto-complete-configuration';
import { OrganisationCriteria } from '../../../../core/query/organisation/organisation-criteria';
import { OrganisationService } from '../../../../core/services/organisation/organisation.service';
import { GrantCriteria } from '../../../../core/query/grant/grant-criteria';
import { GrantService } from '../../../../core/services/grant/grant.service';
import { UserCriteria } from '../../../../core/query/user/user-criteria';
import { UserService } from '../../../../core/services/user/user.service';
import { DatasetProfileCriteria } from '../../../../core/query/dataset-profile/dataset-profile-criteria';
import { DatasetService } from '../../../../core/services/dataset/dataset.service';
@Component({
selector: 'app-dataset-criteria-component',
@ -65,43 +64,43 @@ export class DatasetCriteriaComponent extends BaseCriteriaComponent implements O
tagsAutoCompleteConfiguration = {
filterFn: this.filterTags.bind(this),
initialItems: (excludedItems: any[]) => this.filterTags('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
initialItems: (excludedItems: any[]) => this.filterTags('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['name'],
titleFn: (item) => item['name']
};
datasetTemplateAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
filterFn: this.filterDatasetTemplate.bind(this),
initialItems: (excludedItems: any[]) => this.filterDatasetTemplate('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
initialItems: (excludedItems: any[]) => this.filterDatasetTemplate('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['label'],
titleFn: (item) => item['label'],
subtitleFn: (item) => item['description']
};
dmpAutoCompleteConfiguration = {
filterFn: (x, excluded) => this.filterDmps(x).map(x => x.data),
initialItems: (extraData) => this.filterDmps('').map(x => x.data),
filterFn: (x, excluded) => this.filterDmps(x).pipe(map(x => x.data)),
initialItems: (extraData) => this.filterDmps('').pipe(map(x => x.data)),
displayFn: (item) => item['label'],
titleFn: (item) => item['label']
};
collaboratorsAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
filterFn: this.filterCollaborators.bind(this),
initialItems: (excludedItems: any[]) => this.filterCollaborators('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
initialItems: (excludedItems: any[]) => this.filterCollaborators('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['name'],
titleFn: (item) => item['name']
};
grantAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
filterFn: this.filterGrant.bind(this),
initialItems: (excludedItems: any[]) => this.filterGrant('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
initialItems: (excludedItems: any[]) => this.filterGrant('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['label'],
titleFn: (item) => item['label']
};
organisationAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
filterFn: this.filterOrganisations.bind(this),
initialItems: (excludedItems: any[]) => this.filterOrganisations('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
initialItems: (excludedItems: any[]) => this.filterOrganisations('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['name'],
titleFn: (item) => item['name']
}
@ -200,7 +199,7 @@ export class DatasetCriteriaComponent extends BaseCriteriaComponent implements O
const datasetTemplateRequestItem: DataTableRequest<DatasetProfileCriteria> = new DataTableRequest(0, null, { fields: fields });
datasetTemplateRequestItem.criteria = new DatasetProfileCriteria();
datasetTemplateRequestItem.criteria.like = query;
return this.datasetService.getDatasetProfilesUsedPaged(datasetTemplateRequestItem).map(x => x.data);
return this.datasetService.getDatasetProfilesUsedPaged(datasetTemplateRequestItem).pipe(map(x => x.data));
}
filterDmps(value: string): Observable<DataTableData<DmpListingModel>> {
@ -218,7 +217,7 @@ export class DatasetCriteriaComponent extends BaseCriteriaComponent implements O
const grantRequestItem: DataTableRequest<GrantCriteria> = new DataTableRequest(0, null, { fields: fields });
grantRequestItem.criteria = new GrantCriteria();
grantRequestItem.criteria.like = query;
return this.grantService.getPaged(grantRequestItem, "autocomplete").map(x => x.data);
return this.grantService.getPaged(grantRequestItem, "autocomplete").pipe(map(x => x.data));
}
filterOrganisations(value: string) {
@ -227,7 +226,7 @@ export class DatasetCriteriaComponent extends BaseCriteriaComponent implements O
const dataTableRequest: DataTableRequest<OrganisationCriteria> = new DataTableRequest(0, null, { fields: fields });
dataTableRequest.criteria = new OrganisationCriteria();
dataTableRequest.criteria.labelLike = value;
return this.organisationService.searchInternalOrganisations(dataTableRequest).map(x => x.data);
return this.organisationService.searchInternalOrganisations(dataTableRequest).pipe(map(x => x.data));
}
filterCollaborators(query: string) {
@ -236,7 +235,7 @@ export class DatasetCriteriaComponent extends BaseCriteriaComponent implements O
const collaboratorsRequestItem: DataTableRequest<UserCriteria> = new DataTableRequest(0, null, { fields: fields });
collaboratorsRequestItem.criteria = new UserCriteria();
collaboratorsRequestItem.criteria.collaboratorLike = query;
return this.userService.getCollaboratorsPaged(collaboratorsRequestItem).map(x => x.data);
return this.userService.getCollaboratorsPaged(collaboratorsRequestItem).pipe(map(x => x.data));
}
fileImport(event) {
@ -256,8 +255,8 @@ export class DatasetCriteriaComponent extends BaseCriteriaComponent implements O
this.datasetWizardService.uploadXml(result.fileList, result.datasetTitle, result.dmpId, result.datasetProfileId)
.pipe(takeUntil(this._destroyed))
.subscribe(
complete => this.onCallbackSuccess(),
error => this.onCallbackError(error)
complete => this.onCallbackSuccess(),
error => this.onCallbackError(error)
);
}
})

@ -1,5 +1,7 @@
import {map, takeUntil } from 'rxjs/operators';
import { Component, Inject, OnInit } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { Observable } from 'rxjs';
import { DataTableData } from '../../../../../core/model/data-table/data-table-data';
import { DmpListingModel } from '../../../../../core/model/dmp/dmp-listing';
@ -10,7 +12,6 @@ import { ValidationErrorModel } from '../../../../../common/forms/validation/err
import { BaseCriteriaComponent } from '../../../../misc/criteria/base-criteria.component';
import { DmpModel } from '../../../../../core/model/dmp/dmp';
import { DatasetProfileModel } from '../../../../../core/model/dataset/dataset-profile';
import { takeUntil } from 'rxjs/operators';
import { DatasetWizardService } from '../../../../../core/services/dataset-wizard/dataset-wizard.service';
import { RequestItem } from '../../../../../core/query/request-item';
import { DatasetProfileCriteria } from '../../../../../core/query/dataset-profile/dataset-profile-criteria';
@ -31,8 +32,8 @@ export class DatasetUploadDialogue extends BaseCriteriaComponent implements OnIn
availableProfiles: DatasetProfileModel[] = [];
dmpAutoCompleteConfiguration = {
filterFn: (x, excluded) => this.filterDmps(x).map(x => x.data),
initialItems: (extraData) => this.filterDmps('').map(x => x.data),
filterFn: (x, excluded) => this.filterDmps(x).pipe(map(x => x.data)),
initialItems: (extraData) => this.filterDmps('').pipe(map(x => x.data)),
displayFn: (item) => item['label'],
titleFn: (item) => item['label']
};

@ -1,7 +1,9 @@
import {of as observableOf, Observable } from 'rxjs';
import { Component, OnInit, ViewChild } from '@angular/core';
import { MatPaginator, MatSort, PageEvent } from '@angular/material';
import { MatPaginator, PageEvent } from '@angular/material/paginator';
import { MatSort } from '@angular/material/sort';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../core/common/base/base.component';
import { DataTableRequest } from '../../../core/model/data-table/data-table-request';
@ -22,9 +24,9 @@ import { DatasetStatus } from '../../../core/common/enum/dataset-status';
})
export class DatasetListingComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
@ViewChild(MatPaginator) _paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
@ViewChild(DatasetCriteriaComponent) criteria: DatasetCriteriaComponent;
@ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator;
@ViewChild(MatSort, { static: false }) sort: MatSort;
@ViewChild(DatasetCriteriaComponent, { static: true }) criteria: DatasetCriteriaComponent;
breadCrumbs: Observable<BreadcrumbItem[]>;
@ -60,7 +62,7 @@ export class DatasetListingComponent extends BaseComponent implements OnInit, IB
this.criteria.setCriteria(this.getDefaultCriteria(dmp));
this.refresh();
this.criteria.setRefreshCallback((resetPages) => this.refresh(resetPages));
this.breadCrumbs = Observable.of([{
this.breadCrumbs = observableOf([{
parentComponentName: 'DmpEditorComponent',
label: dmp.label,
url: '/plans/edit/' + this.dmpId
@ -72,7 +74,7 @@ export class DatasetListingComponent extends BaseComponent implements OnInit, IB
this.criteria.setCriteria(this.getDefaultCriteria());
this.refresh();
this.criteria.setRefreshCallback((resetPages) => this.refresh(resetPages));
this.breadCrumbs = Observable.of([{
this.breadCrumbs = observableOf([{
parentComponentName: null,
label: this.language.instant('NAV-BAR.MY-DATASET-DESCRIPTIONS'),
url: "/datasets"

@ -1,13 +1,15 @@
import {of as observableOf, Observable } from 'rxjs';
import {map, takeUntil } from 'rxjs/operators';
import { Component, OnInit } from '@angular/core';
import { DmpWizardEditorModel } from '../wizard/dmp-wizard-editor.model';
import { FormGroup } from '@angular/forms';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../core/common/base/base.component';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { DmpModel } from '../../../core/model/dmp/dmp';
import { TranslateService } from '@ngx-translate/core';
import { DmpService } from '../../../core/services/dmp/dmp.service';
import { Observable } from 'rxjs';
import { BreadcrumbItem } from '../../misc/breadcrumb/definition/breadcrumb-item';
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
import { UiNotificationService, SnackBarNotificationLevel } from '../../../core/services/notification/ui-notification-service';
@ -48,7 +50,7 @@ export class DmpCloneComponent extends BaseComponent implements OnInit {
.pipe(takeUntil(this._destroyed))
.subscribe((params: Params) => {
this.itemId = params['id'];
this.dmpService.getSingle(this.itemId).map(data => data as DmpModel)
this.dmpService.getSingle(this.itemId).pipe(map(data => data as DmpModel))
.pipe(takeUntil(this._destroyed))
.subscribe(data => {
this.dmp = new DmpWizardEditorModel();
@ -72,7 +74,7 @@ export class DmpCloneComponent extends BaseComponent implements OnInit {
const breadCrumbs = [];
breadCrumbs.push({ parentComponentName: null, label: this.language.instant('NAV-BAR.MY-DMPS'), url: "/plans" });
breadCrumbs.push({ parentComponentName: 'DmpListingComponent', label: this.dmp.label, url: '/plans/clone/' + this.dmp.id });
this.breadCrumbs = Observable.of(breadCrumbs);
this.breadCrumbs = observableOf(breadCrumbs);
});
});
}

@ -1,6 +1,6 @@
import { Component, Inject, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../../core/common/base/base.component';
import { ExternalResearcherService } from '../../../../core/services/external-sources/researcher/external-researcher.service';

@ -1,6 +1,6 @@
import { Component, Inject, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../../core/common/base/base.component';
import { DatasetProfileModel } from '../../../../core/model/dataset/dataset-profile';

@ -1,11 +1,14 @@
import {of as observableOf, Observable } from 'rxjs';
import {map, takeUntil } from 'rxjs/operators';
import { Component, OnInit, ViewContainerRef } from '@angular/core';
import { FormGroup, FormControl, FormArray, AbstractControl } from '@angular/forms';
import { MatDialog, MatSnackBar } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { MatSnackBar } from '@angular/material/snack-bar';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import * as FileSaver from 'file-saver';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
import { BaseComponent } from '../../../core/common/base/base.component';
import { DmpStatus } from '../../../core/common/enum/dmp-status';
@ -102,7 +105,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
if (itemId != null) {
this.isNew = false;
if (tabToNav == "datasetDescriptions") this.selectedTab = 2
this.dmpService.getSingle(itemId).map(data => data as DmpModel)
this.dmpService.getSingle(itemId).pipe(map(data => data as DmpModel))
.pipe(takeUntil(this._destroyed))
.subscribe(async data => {
this.dmp = new DmpEditorModel();
@ -131,7 +134,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
// notFoundResolver: [await this.grantService.getSingle(this.dmp.grant.id).map(x => ({ label: x.label, url: '/grants/edit/' + x.id }) as BreadcrumbItem).toPromise()]
}
);
this.breadCrumbs = Observable.of(breadCrumbs);
this.breadCrumbs = observableOf(breadCrumbs);
}
this.associatedUsers = data.associatedUsers;
this.people = data.users;
@ -139,7 +142,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
} else if (publicId != null) {
this.isNew = false;
this.isPublic = true;
this.dmpService.getSinglePublic(publicId).map(data => data as DmpModel)
this.dmpService.getSinglePublic(publicId).pipe(map(data => data as DmpModel))
.pipe(takeUntil(this._destroyed))
.subscribe(async data => {
this.dmp = new DmpEditorModel();
@ -154,7 +157,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
const breadcrumbs = [];
breadcrumbs.push({ parentComponentName: null, label: this.language.instant('NAV-BAR.PUBLIC-DMPS').toUpperCase(), url: '/plans' });
breadcrumbs.push({ parentComponentName: null, label: this.dmp.label, url: '/plans/publicEdit/' + this.dmp.id });
this.breadCrumbs = Observable.of(breadcrumbs);
this.breadCrumbs = observableOf(breadcrumbs);
// this.breadCrumbs = Observable.of([
// {
// parentComponentName: 'DmpListingComponent',
@ -175,7 +178,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
this.registerFormEventsForNewItem();
if (this.isAuthenticated) {
this.language.get('NAV-BAR.MY-DMPS').pipe(takeUntil(this._destroyed)).subscribe(x => {
this.breadCrumbs = Observable.of([
this.breadCrumbs = observableOf([
{
parentComponentName: null,
label: x,
@ -205,7 +208,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
}
registerFormEventsForNewItem() {
this.breadCrumbs = Observable.of([
this.breadCrumbs = observableOf([
{
parentComponentName: 'DmpListingComponent',
label: this.language.instant('NAV-BAR.MY-DMPS'),
@ -218,7 +221,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
let fields: Array<string> = new Array();
var request = new DataTableRequest<DmpProfileCriteria>(0, 10, { fields: fields });
request.criteria = new DmpProfileCriteria();
return this.dmpProfileService.getPaged(request).map(x => x.data);
return this.dmpProfileService.getPaged(request).pipe(map(x => x.data));
}
// searchGrant(query: string) {

@ -1,5 +1,5 @@
import { Component, Inject, OnInit } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { Router } from '@angular/router';
import { BaseComponent } from '../../../../core/common/base/base.component';
import { DatasetStatus } from '../../../../core/common/enum/dataset-status';

@ -1,8 +1,9 @@
import {map, takeUntil } from 'rxjs/operators';
import { Component, Input, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatDialog } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../../core/common/base/base.component';
import { DataTableRequest } from '../../../../core/model/data-table/data-table-request';
import { DatasetProfileModel } from '../../../../core/model/dataset/dataset-profile';
@ -72,7 +73,7 @@ export class GeneralTabComponent extends BaseComponent implements OnInit {
this.profilesAutoCompleteConfiguration = {
filterFn: this.filterProfiles.bind(this),
initialItems: (excludedItems: any[]) => this.filterProfiles('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
initialItems: (excludedItems: any[]) => this.filterProfiles('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['label'],
titleFn: (item) => item['label'],
subtitleFn: (item) => item['description']
@ -80,7 +81,7 @@ export class GeneralTabComponent extends BaseComponent implements OnInit {
this.organisationsAutoCompleteConfiguration = {
filterFn: this.filterOrganisations.bind(this),
initialItems: (excludedItems: any[]) => this.filterOrganisations('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
initialItems: (excludedItems: any[]) => this.filterOrganisations('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['name'],
titleFn: (item) => item['name'],
subtitleFn: (item) => item ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item['tag'] : this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.NO-SOURCE')
@ -88,7 +89,7 @@ export class GeneralTabComponent extends BaseComponent implements OnInit {
this.researchersAutoCompleteConfiguration = {
filterFn: this.filterResearchers.bind(this),
initialItems: (excludedItems: any[]) => this.filterResearchers('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
initialItems: (excludedItems: any[]) => this.filterResearchers('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['name'],
titleFn: (item) => item['name'],
subtitleFn: (item) => item ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item['tag'] : this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.NO-SOURCE')
@ -118,7 +119,7 @@ export class GeneralTabComponent extends BaseComponent implements OnInit {
let fields: Array<string> = new Array();
var request = new DataTableRequest<DmpProfileCriteria>(0, 10, { fields: fields });
request.criteria = new DmpProfileCriteria();
return this.dmpProfileService.getPaged(request).map(x => x.data);
return this.dmpProfileService.getPaged(request).pipe(map(x => x.data));
}
// onCallbackSuccess(): void {

@ -1,6 +1,6 @@
import { Component, Input, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatDialog } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { TranslateService } from '@ngx-translate/core';
import { Principal } from '../../../../core/model/auth/Principal';
import { UserInfoListingModel } from '../../../../core/model/user/user-info-listing';

@ -1,10 +1,12 @@
import {map, takeUntil } from 'rxjs/operators';
import { COMMA, ENTER } from '@angular/cdk/keycodes';
import { Component, Inject, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatChipInputEvent, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatChipInputEvent } from '@angular/material/chips';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { ActivatedRoute, Router } from '@angular/router';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../core/common/base/base.component';
import { DmpInvitation } from '../../../core/model/dmp/invitation/dmp-invitation';
import { DmpInvitationUser } from '../../../core/model/dmp/invitation/dmp-invitation-user';
@ -36,7 +38,7 @@ export class DmpInvitationDialogComponent extends BaseComponent implements OnIni
usersAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
filterFn: this.filterUsers.bind(this),
initialItems: (excludedItems: any[]) => this.filterUsers('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
initialItems: (excludedItems: any[]) => this.filterUsers('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item.name,
titleFn: (item) => item.name
};

@ -1,8 +1,9 @@
import {map, takeUntil } from 'rxjs/operators';
import { Component, Input, OnInit } from '@angular/core';
import { FormBuilder, FormControl } from '@angular/forms';
import { MatDialog } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { TranslateService } from '@ngx-translate/core';
import { takeUntil } from 'rxjs/operators';
import { ValidationErrorModel } from '../../../../common/forms/validation/error-model/validation-error-model';
import { DataTableRequest } from '../../../../core/model/data-table/data-table-request';
import { GrantListingModel } from '../../../../core/model/grant/grant-listing';
@ -46,14 +47,14 @@ export class DmpCriteriaComponent extends BaseCriteriaComponent implements OnIni
collaboratorsAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
filterFn: this.filterCollaborators.bind(this),
initialItems: (excludedItems: any[]) => this.filterCollaborators('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
initialItems: (excludedItems: any[]) => this.filterCollaborators('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['name'],
titleFn: (item) => item['name']
};
datasetTemplateAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
filterFn: this.filterDatasetTemplate.bind(this),
initialItems: (excludedItems: any[]) => this.filterDatasetTemplate('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
initialItems: (excludedItems: any[]) => this.filterDatasetTemplate('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['label'],
titleFn: (item) => item['label'],
subtitleFn: (item) => item['description']
@ -61,14 +62,14 @@ export class DmpCriteriaComponent extends BaseCriteriaComponent implements OnIni
grantAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
filterFn: this.filterGrant.bind(this),
initialItems: (excludedItems: any[]) => this.filterGrant('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
initialItems: (excludedItems: any[]) => this.filterGrant('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['label'],
titleFn: (item) => item['label']
};
organisationAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
filterFn: this.filterOrganisations.bind(this),
initialItems: (excludedItems: any[]) => this.filterOrganisations('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
initialItems: (excludedItems: any[]) => this.filterOrganisations('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['name'],
titleFn: (item) => item['name']
}
@ -140,7 +141,7 @@ export class DmpCriteriaComponent extends BaseCriteriaComponent implements OnIni
const grantRequestItem: DataTableRequest<GrantCriteria> = new DataTableRequest(0, null, { fields: fields });
grantRequestItem.criteria = new GrantCriteria();
grantRequestItem.criteria.like = query;
return this.grantService.getPaged(grantRequestItem, "autocomplete").map(x => x.data);
return this.grantService.getPaged(grantRequestItem, "autocomplete").pipe(map(x => x.data));
}
filterOrganisations(value: string) {
@ -151,7 +152,7 @@ export class DmpCriteriaComponent extends BaseCriteriaComponent implements OnIni
dataTableRequest.criteria = new OrganisationCriteria();
dataTableRequest.criteria.labelLike = value;
return this.organisationService.searchInternalOrganisations(dataTableRequest).map(x => x.data);
return this.organisationService.searchInternalOrganisations(dataTableRequest).pipe(map(x => x.data));
}
filterCollaborators(query: string) {
@ -160,7 +161,7 @@ export class DmpCriteriaComponent extends BaseCriteriaComponent implements OnIni
const collaboratorsRequestItem: DataTableRequest<UserCriteria> = new DataTableRequest(0, null, { fields: fields });
collaboratorsRequestItem.criteria = new UserCriteria();
collaboratorsRequestItem.criteria.collaboratorLike = query;
return this.userService.getCollaboratorsPaged(collaboratorsRequestItem).map(x => x.data);
return this.userService.getCollaboratorsPaged(collaboratorsRequestItem).pipe(map(x => x.data));
}
filterDatasetTemplate(query: string) {
@ -169,7 +170,7 @@ export class DmpCriteriaComponent extends BaseCriteriaComponent implements OnIni
const datasetTemplateRequestItem: DataTableRequest<DatasetProfileCriteria> = new DataTableRequest(0, null, { fields: fields });
datasetTemplateRequestItem.criteria = new DatasetProfileCriteria();
datasetTemplateRequestItem.criteria.like = query;
return this.dmpService.getDatasetProfilesUsedPaged(datasetTemplateRequestItem).map(x => x.data);
return this.dmpService.getDatasetProfilesUsedPaged(datasetTemplateRequestItem).pipe(map(x => x.data));
}
fileSave(event) {

@ -1,5 +1,5 @@
import { Component, Inject } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { DmpService } from '../../../../../core/services/dmp/dmp.service';
@Component({

@ -1,7 +1,10 @@
import {of as observableOf, Observable } from 'rxjs';
import { Component, OnInit, ViewChild } from '@angular/core';
import { MatDialog, MatPaginator, MatSort } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { MatPaginator } from '@angular/material/paginator';
import { MatSort } from '@angular/material/sort';
import { ActivatedRoute, Router } from '@angular/router';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../core/common/base/base.component';
import { DataTableRequest } from '../../../core/model/data-table/data-table-request';
@ -23,11 +26,11 @@ import { TranslateService } from '@ngx-translate/core';
})
export class DmpListingComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
@ViewChild(MatPaginator) _paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
@ViewChild(DmpCriteriaComponent) criteria: DmpCriteriaComponent;
@ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator;
@ViewChild(MatSort, { static: false }) sort: MatSort;
@ViewChild(DmpCriteriaComponent, { static: true }) criteria: DmpCriteriaComponent;
breadCrumbs: Observable<BreadcrumbItem[]> = Observable.of([{ parentComponentName: null, label: 'DMPs', url: "/plans" }]);
breadCrumbs: Observable<BreadcrumbItem[]> = observableOf([{ parentComponentName: null, label: 'DMPs', url: "/plans" }]);
itemId: string;
grantId: string;
showGrant: boolean;
@ -78,7 +81,7 @@ export class DmpListingComponent extends BaseComponent implements OnInit, IBread
// else
this.language.get('NAV-BAR.MY-DMPS').pipe(takeUntil(this._destroyed)).subscribe(x => {
this.breadCrumbs = Observable.of([
this.breadCrumbs = observableOf([
{
parentComponentName: null,
label: x,

@ -1,6 +1,6 @@
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { DmpListingModel } from '../../../../core/model/dmp/dmp-listing';
import { MatDialog } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { DmpInvitationDialogComponent } from '../../invitation/dmp-invitation.component';
import { Router, ActivatedRoute } from '@angular/router';
import { GrantListingModel } from '../../../../core/model/grant/grant-listing';

@ -1,9 +1,10 @@
import {of as observableOf, Observable } from 'rxjs';
import { Component, OnInit } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import * as FileSaver from 'file-saver';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../core/common/base/base.component';
import { DatasetStatus } from '../../../core/common/enum/dataset-status';
@ -33,7 +34,7 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit {
isFinalized = false;
isPublicView = true;
hasPublishButton: boolean = true;
breadCrumbs: Observable<BreadcrumbItem[]> = Observable.of();
breadCrumbs: Observable<BreadcrumbItem[]> = observableOf();
constructor(
private route: ActivatedRoute,
@ -65,7 +66,7 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit {
const breadCrumbs = [];
breadCrumbs.push({ parentComponentName: null, label: this.language.instant('NAV-BAR.MY-DMPS'), url: "/plans" });
breadCrumbs.push({ parentComponentName: 'DmpListingComponent', label: this.dmp.label, url: '/plans/overview/' + this.dmp.id });
this.breadCrumbs = Observable.of(breadCrumbs);
this.breadCrumbs = observableOf(breadCrumbs);
})
}
else if (publicId != null) {
@ -79,7 +80,7 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit {
const breadCrumbs = [];
breadCrumbs.push({ parentComponentName: null, label: this.language.instant('NAV-BAR.PUBLIC-DMPS'), url: "/explore-plans" });
breadCrumbs.push({ parentComponentName: 'DmpListingComponent', label: this.dmp.label, url: '/plans/publicOverview/' + this.dmp.id });
this.breadCrumbs = Observable.of(breadCrumbs);
this.breadCrumbs = observableOf(breadCrumbs);
});
}
});

@ -1,10 +1,12 @@
import {of as observableOf, Observable } from 'rxjs';
import {map, takeUntil } from 'rxjs/operators';
import { Component, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatSnackBar } from '@angular/material';
import { MatSnackBar } from '@angular/material/snack-bar';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
import { BaseComponent } from '../../../core/common/base/base.component';
import { DmpModel } from '../../../core/model/dmp/dmp';
@ -46,7 +48,7 @@ export class DmpWizardComponent extends BaseComponent implements OnInit, IBreadC
.pipe(takeUntil(this._destroyed))
.subscribe((params: Params) => {
this.itemId = params['id'];
this.dmpService.getSingle(this.itemId).map(data => data as DmpModel)
this.dmpService.getSingle(this.itemId).pipe(map(data => data as DmpModel))
.pipe(takeUntil(this._destroyed))
.subscribe(data => {
this.dmp = new DmpWizardEditorModel();
@ -68,7 +70,7 @@ export class DmpWizardComponent extends BaseComponent implements OnInit, IBreadC
const breadCrumbs = [];
breadCrumbs.push({ parentComponentName: null, label: this.language.instant('NAV-BAR.MY-DMPS'), url: "/plans" });
breadCrumbs.push({ parentComponentName: 'DmpListingComponent', label: this.dmp.label, url: '/plans/clone/' + this.dmp.id });
this.breadCrumbs = Observable.of(breadCrumbs);
this.breadCrumbs = observableOf(breadCrumbs);
});
});
}

@ -1,10 +1,11 @@
import {map, takeUntil } from 'rxjs/operators';
import { Component, Input, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatSnackBar } from '@angular/material';
import { MatSnackBar } from '@angular/material/snack-bar';
import { ActivatedRoute, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../../core/common/base/base.component';
import { DatasetProfileModel } from '../../../../core/model/dataset/dataset-profile';
import { ExternalSourceItemModel } from '../../../../core/model/external-sources/external-source-item';
@ -72,21 +73,21 @@ export class DmpWizardEditorComponent extends BaseComponent implements OnInit {
this.profilesAutoCompleteConfiguration = {
filterFn: this.filterProfiles.bind(this),
initialItems: (excludedItems: any[]) => this.filterProfiles('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
initialItems: (excludedItems: any[]) => this.filterProfiles('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['label'],
titleFn: (item) => item['label']
};
this.organisationsAutoCompleteConfiguration = {
filterFn: this.filterOrganisations.bind(this),
initialItems: (excludedItems: any[]) => this.filterOrganisations('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
initialItems: (excludedItems: any[]) => this.filterOrganisations('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['name'],
titleFn: (item) => item['name']
};
this.researchersAutoCompleteConfiguration = {
filterFn: this.filterResearchers.bind(this),
initialItems: (excludedItems: any[]) => this.filterResearchers('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
initialItems: (excludedItems: any[]) => this.filterResearchers('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['name'],
titleFn: (item) => item['name']
};

@ -1,7 +1,9 @@
import { SelectionModel } from '@angular/cdk/collections';
import { Component, Input, OnInit, ViewChild } from '@angular/core';
import { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';
import { MatPaginator, MatSnackBar, MatSort } from '@angular/material';
import { MatPaginator } from '@angular/material/paginator';
import { MatSnackBar } from '@angular/material/snack-bar';
import { MatSort } from '@angular/material/sort';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { takeUntil } from 'rxjs/operators';
@ -20,9 +22,9 @@ import { DatasetCriteriaComponent } from '../../../dataset/listing/criteria/data
})
export class DmpWizardDatasetListingComponent extends BaseComponent implements OnInit {
@ViewChild(MatPaginator) _paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
@ViewChild(DatasetCriteriaComponent) criteria: DatasetCriteriaComponent;
@ViewChild(MatPaginator, { static: false }) _paginator: MatPaginator;
@ViewChild(MatSort, { static: false }) sort: MatSort;
@ViewChild(DatasetCriteriaComponent, { static: false }) criteria: DatasetCriteriaComponent;
titlePrefix: String;

@ -1,5 +1,8 @@
import {of as observableOf, Observable } from 'rxjs';
import { Component, OnInit, ViewChild, ɵConsole } from '@angular/core';
import { MatPaginator, MatSort } from '@angular/material';
import { MatPaginator } from '@angular/material/paginator';
import { MatSort } from '@angular/material/sort';
import { Router, ActivatedRoute, Params } from '@angular/router';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../core/common/base/base.component';
@ -9,7 +12,6 @@ import { ExploreDatasetCriteriaModel } from '../../core/query/explore-dataset/ex
import { DatasetService } from '../../core/services/dataset/dataset.service';
import { IBreadCrumbComponent } from '../misc/breadcrumb/definition/IBreadCrumbComponent';
import { BreadcrumbItem } from '../misc/breadcrumb/definition/breadcrumb-item';
import { Observable } from 'rxjs';
import { TranslateService } from '@ngx-translate/core';
import { DmpService } from '../../core/services/dmp/dmp.service';
import { DatasetCriteriaComponent } from '../dataset/listing/criteria/dataset-criteria.component';
@ -24,8 +26,8 @@ import { DatasetCriteria } from '../../core/query/dataset/dataset-criteria';
})
export class ExploreDatasetListingComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
@ViewChild(MatPaginator) _paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
@ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator;
@ViewChild(MatSort, { static: false }) sort: MatSort;
totalCount: number;
listingItems: DatasetListingModel[] = [];
@ -78,7 +80,7 @@ export class ExploreDatasetListingComponent extends BaseComponent implements OnI
label: this.language.instant('NAV-BAR.PUBLIC DATASETS'),
url: "/explore"
})
this.breadCrumbs = Observable.of(breadCrumbs);
this.breadCrumbs = observableOf(breadCrumbs);
}
refresh(resetPages = false) {

@ -1,9 +1,11 @@
import {of as observableOf, Observable } from 'rxjs';
import {distinctUntilChanged, debounceTime, takeUntil } from 'rxjs/operators';
import { SelectionModel } from '@angular/cdk/collections';
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
import { FormControl } from '@angular/forms';
import { MatListOption, MatSelectionList } from '@angular/material';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { MatListOption, MatSelectionList } from '@angular/material/list';
import { BaseComponent } from '../../../../core/common/base/base.component';
@Component({
@ -26,7 +28,7 @@ export class ExploreDatasetFilterItemComponent extends BaseComponent implements
filterOptions: (value) => Observable<any[]>;
@Input()
options: Observable<any[]> = Observable.of([]);
options: Observable<any[]> = observableOf([]);
@Input()
displayTitleFunc: (value) => string;
@ -44,14 +46,14 @@ export class ExploreDatasetFilterItemComponent extends BaseComponent implements
private selectedOptions: any[] = [];
@ViewChild('optionsList') selectionList: MatSelectionList;
@ViewChild('optionsList', { static: true }) selectionList: MatSelectionList;
constructor() { super(); }
ngOnInit(): void {
if (!this.multipleSelect) { this.selectionList.selectedOptions = new SelectionModel<MatListOption>(this.multipleSelect); }
this.optionSearchControl.valueChanges.debounceTime(this.requestDelay)
.distinctUntilChanged()
this.optionSearchControl.valueChanges.pipe(debounceTime(this.requestDelay),
distinctUntilChanged(),)
.pipe(takeUntil(this._destroyed))
.subscribe(x => { if (this.filterOptions) { this.options = this.filterOptions(x); } });
}

@ -1,8 +1,11 @@
import {of as observableOf, Observable } from 'rxjs';
import {map, takeUntil } from 'rxjs/operators';
import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
import { MatAccordion } from '@angular/material';
import { MatAccordion } from '@angular/material/expansion';
import { ActivatedRoute, Params } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { Observable } from 'rxjs';
import { BaseComponent } from '../../../core/common/base/base.component';
import { GrantStateType } from '../../../core/common/enum/grant-state-type';
import { DatasetProfileModel } from '../../../core/model/dataset/dataset-profile';
@ -28,7 +31,6 @@ import { ExploreDmpCriteriaModel } from '../../../core/query/explore-dmp/explore
import { DmpModel } from '../../../core/model/dmp/dmp';
import { BaseCriteriaComponent } from '../../misc/criteria/base-criteria.component';
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
import { takeUntil } from 'rxjs/operators';
@Component({
selector: 'app-explore-dataset-filters-component',
@ -49,7 +51,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
grantOptions: Observable<GrantListingModel[]>;
grantStateOptions: Observable<any[]>;
filteringOrganisationsAsync = false;
@ViewChild('facetAccordion') accordion: MatAccordion;
@ViewChild('facetAccordion', { static: false }) accordion: MatAccordion;
displayGrantStateValue = (option) => option['value'];
displayGrantStateLabel = (option) => option['label'];
@ -65,14 +67,14 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
tagsAutoCompleteConfiguration = {
filterFn: this.filterTags.bind(this),
initialItems: (excludedItems: any[]) => this.filterTags('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
initialItems: (excludedItems: any[]) => this.filterTags('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['name'],
titleFn: (item) => item['name']
};
dmpAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
filterFn: (x, excluded) => this.filterDmps(x).map(x => x.data),
initialItems: (extraData) => this.filterDmps('').map(x => x.data),
filterFn: (x, excluded) => this.filterDmps(x).pipe(map(x => x.data)),
initialItems: (extraData) => this.filterDmps('').pipe(map(x => x.data)),
displayFn: (item) => item['label'],
titleFn: (item) => item['label']
};
@ -80,8 +82,8 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
grantAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
filterFn: this.filterGrant.bind(this),
initialItems: (excludedItems: any[]) =>
this.filterGrant('')
.map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
this.filterGrant('').pipe(
map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['label'],
titleFn: (item) => item['label']
}
@ -89,8 +91,8 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
profileAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
filterFn: this.filterProfile.bind(this),
initialItems: (excludedItems: any[]) =>
this.getProfiles()
.map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
this.getProfiles().pipe(
map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['label'],
titleFn: (item) => item['label']
};
@ -98,8 +100,8 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
organizationAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
filterFn: this.filterOrganisation.bind(this),
initialItems: (excludedItems: any[]) =>
this.getOrganisations()
.map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
this.getOrganisations().pipe(
map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['name'],
titleFn: (item) => item['name']
}
@ -117,7 +119,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
ngOnInit() {
setTimeout(x => {
this.grantStateOptions = Observable.of(
this.grantStateOptions = observableOf(
[
{ label: this.languageService.instant('FACET-SEARCH.GRANT-STATUS.OPTIONS.INACTIVE'), value: GrantStateType.Finished },
{ label: this.languageService.instant('FACET-SEARCH.GRANT-STATUS.OPTIONS.ACTIVE'), value: GrantStateType.OnGoing },
@ -135,7 +137,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
this.facetCriteria.grantStatus = event.value;
if (event.value === 'null') {
this.facetCriteria.grantStatus = null;
this.grants = Observable.of([]);
this.grants = observableOf([]);
this.facetCriteria.grants = [];
}
// if (event.option.selected) {
@ -151,7 +153,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
dataTableRequest.criteria.grantStateType = this.facetCriteria.grantStatus;
dataTableRequest.criteria['length'] = 10;
this.grants = this.grantService.getPublicPaged(dataTableRequest).map(x => x.data);
this.grants = this.grantService.getPublicPaged(dataTableRequest).pipe(map(x => x.data));
this.facetCriteria.grants = [];
}
this.facetCriteriaChange.emit(this.facetCriteria);
@ -199,7 +201,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
const dataTableRequest: DataTableRequest<OrganisationCriteria> = new DataTableRequest(0, null, { fields: fields });
dataTableRequest.criteria = new OrganisationCriteria();
dataTableRequest.criteria.labelLike = '';
return this.organisationService.searchPublicOrganisations(dataTableRequest).map(x => x.data);
return this.organisationService.searchPublicOrganisations(dataTableRequest).pipe(map(x => x.data));
}
public dmpOrganisationChanged(event: any) {
@ -226,7 +228,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
dataTableRequest.criteria = grantCriteria;
//const dataTableRequest: RequestItem<GrantCriteria> = { criteria: grantCriteria };
//return this.grantService.getPaged(dataTableRequest, "autocomplete").map(x => x.data);
return this.grantService.getPublicPaged(dataTableRequest).map(x => x.data);
return this.grantService.getPublicPaged(dataTableRequest).pipe(map(x => x.data));
}
public dmpOrganisationSearch(value: string): Observable<ExternalSourceItemModel[]> {
@ -331,7 +333,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
const grantRequestItem: DataTableRequest<GrantCriteria> = new DataTableRequest(0, null, { fields: fields });
grantRequestItem.criteria = new GrantCriteria();
grantRequestItem.criteria.like = query;
return this.grantService.getPublicPaged(grantRequestItem).map(x => x.data);
return this.grantService.getPublicPaged(grantRequestItem).pipe(map(x => x.data));
}
filterProfile(query: string) {
@ -341,7 +343,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
profileRequestItem.criteria = new ExploreDatasetCriteriaModel();
profileRequestItem.criteria.like = query;
return this.dmpService.getPublicPaged(profileRequestItem, "listing").map(x => x.data);
return this.dmpService.getPublicPaged(profileRequestItem, "listing").pipe(map(x => x.data));
}
filterOrganisation(value: string) {
@ -352,6 +354,6 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
dataTableRequest.criteria = new OrganisationCriteria();
dataTableRequest.criteria.labelLike = value;
return this.organisationService.searchPublicOrganisations(dataTableRequest).map(x => x.data);
return this.organisationService.searchPublicOrganisations(dataTableRequest).pipe(map(x => x.data));
}
}

@ -1,9 +1,11 @@
import {of as observableOf, Observable } from 'rxjs';
import {distinctUntilChanged, debounceTime, takeUntil } from 'rxjs/operators';
import { SelectionModel } from '@angular/cdk/collections';
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
import { FormControl } from '@angular/forms';
import { MatListOption, MatSelectionList } from '@angular/material';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { MatListOption, MatSelectionList } from '@angular/material/list';
import { BaseComponent } from '../../../../core/common/base/base.component';
@Component({
@ -21,7 +23,7 @@ export class ExploreDmpFilterItemComponent extends BaseComponent implements OnIn
@Input()
filterOptions: (value) => Observable<any[]>;
@Input()
options: Observable<any[]> = Observable.of([]);
options: Observable<any[]> = observableOf([]);
@Input()
displayTitleFunc: (value) => string;
@Input()
@ -35,14 +37,14 @@ export class ExploreDmpFilterItemComponent extends BaseComponent implements OnIn
optionSearchControl = new FormControl('');
private selectedOptions: any[] = [];
@ViewChild('optionsList') selectionList: MatSelectionList;
@ViewChild('optionsList', { static: true }) selectionList: MatSelectionList;
constructor() { super(); }
ngOnInit(): void {
if (!this.multipleSelect) { this.selectionList.selectedOptions = new SelectionModel<MatListOption>(this.multipleSelect); }
this.optionSearchControl.valueChanges.debounceTime(this.requestDelay)
.distinctUntilChanged()
this.optionSearchControl.valueChanges.pipe(debounceTime(this.requestDelay),
distinctUntilChanged(),)
.pipe(takeUntil(this._destroyed))
.subscribe(x => { if (this.filterOptions) { this.options = this.filterOptions(x); } });
}

@ -1,10 +1,14 @@
import {of as observableOf, Observable } from 'rxjs';
import {map, takeUntil } from 'rxjs/operators';
import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild } from "@angular/core";
import { FormBuilder, FormControl, FormGroup } from "@angular/forms";
import { MatAccordion, fadeInItems, MatGridTileHeaderCssMatStyler } from "@angular/material";
import { MatAccordion } from "@angular/material/expansion";
import { MatGridTileHeaderCssMatStyler } from "@angular/material/grid-list";
import { fadeInItems } from "@angular/material/menu";
import { ActivatedRoute } from "@angular/router";
import { TranslateService } from "@ngx-translate/core";
import { Observable } from "rxjs";
import { takeUntil } from "rxjs/operators";
import { ValidationErrorModel } from "../../../common/forms/validation/error-model/validation-error-model";
import { GrantStateType } from '../../../core/common/enum/grant-state-type';
import { DataTableRequest } from "../../../core/model/data-table/data-table-request";
@ -50,7 +54,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
Active: string;
Inactive: string;
@ViewChild('facetAccordion') accordion: MatAccordion;
@ViewChild('facetAccordion', { static: false }) accordion: MatAccordion;
displayGrantStateValue = (option) => option['value'];
displayGrantStateLabel = (option) => option['label'];
@ -67,8 +71,8 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
profileAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
filterFn: this.filterProfile.bind(this),
initialItems: (excludedItems: any[]) =>
this.getProfiles()
.map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
this.getProfiles().pipe(
map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['label'],
titleFn: (item) => item['label']
};
@ -76,8 +80,8 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
organizationAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
filterFn: this.filterOrganisation.bind(this),
initialItems: (excludedItems: any[]) =>
this.getOrganisations()
.map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
this.getOrganisations().pipe(
map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['name'],
titleFn: (item) => item['name']
}
@ -85,8 +89,8 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
grantAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
filterFn: this.filterGrant.bind(this),
initialItems: (excludedItems: any[]) =>
this.filterGrant('')
.map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
this.filterGrant('').pipe(
map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => item['label'],
titleFn: (item) => item['label']
}
@ -111,7 +115,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
ngOnInit() {
setTimeout(x => {
this.grantStateOptions = Observable.of(
this.grantStateOptions = observableOf(
[
{ label: this.languageService.instant('FACET-SEARCH.GRANT-STATUS.OPTIONS.INACTIVE'), value: GrantStateType.Finished },
{ label: this.languageService.instant('FACET-SEARCH.GRANT-STATUS.OPTIONS.ACTIVE'), value: GrantStateType.OnGoing },
@ -120,7 +124,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
this.profiles = this.datasetProfileService.getDatasetProfiles();
const fields: Array<string> = new Array<string>();
fields.push('asc');
this.dmpOrganisations = this.organisationService.searchPublicOrganisations(new DataTableRequest<OrganisationCriteria>(0, null, { fields: fields })).map(x => x.data);
this.dmpOrganisations = this.organisationService.searchPublicOrganisations(new DataTableRequest<OrganisationCriteria>(0, null, { fields: fields })).pipe(map(x => x.data));
}
ngAfterViewInit(): void {
@ -150,7 +154,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
const dataTableRequest: DataTableRequest<GrantCriteria> = new DataTableRequest(0, null, { fields: fields });
dataTableRequest.criteria = grantCriteria;
return this.grantService.getPublicPaged(dataTableRequest).map(x => x.data);
return this.grantService.getPublicPaged(dataTableRequest).pipe(map(x => x.data));
}
grantStatusChanged(event) {
@ -160,7 +164,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
// if (!event.source.checked) {
if (event.value === 'null') {
this.facetCriteria.grantStatus = null;
this.grants = Observable.of([]);
this.grants = observableOf([]);
this.facetCriteria.grants = [];
}
// if (event.checked) {
@ -174,7 +178,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
dataTableRequest.criteria.grantStateType = this.facetCriteria.grantStatus;
dataTableRequest.criteria['length'] = 10;
this.grants = this.grantService.getPublicPaged(dataTableRequest).map(x => x.data);
this.grants = this.grantService.getPublicPaged(dataTableRequest).pipe(map(x => x.data));
this.facetCriteria.grants = [];
}
this.facetCriteriaChange.emit(this.facetCriteria);
@ -274,7 +278,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
const dataTableRequest: DataTableRequest<OrganisationCriteria> = new DataTableRequest(0, null, { fields: fields });
dataTableRequest.criteria = new OrganisationCriteria();
dataTableRequest.criteria.labelLike = value;
return this.organisationService.searchPublicOrganisations(dataTableRequest).map(x => x.data);
return this.organisationService.searchPublicOrganisations(dataTableRequest).pipe(map(x => x.data));
}
removeOrganisation(organisation) {
@ -292,7 +296,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
const dataTableRequest: DataTableRequest<OrganisationCriteria> = new DataTableRequest(0, null, { fields: fields });
dataTableRequest.criteria = new OrganisationCriteria();
dataTableRequest.criteria.labelLike = '';
return this.organisationService.searchPublicOrganisations(dataTableRequest).map(x => x.data);
return this.organisationService.searchPublicOrganisations(dataTableRequest).pipe(map(x => x.data));
}
filterGrant(query: string) {
@ -301,7 +305,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
const grantRequestItem: DataTableRequest<GrantCriteria> = new DataTableRequest(0, null, { fields: fields });
grantRequestItem.criteria = new GrantCriteria();
grantRequestItem.criteria.like = query;
return this.grantService.getPublicPaged(grantRequestItem).map(x => x.data);
return this.grantService.getPublicPaged(grantRequestItem).pipe(map(x => x.data));
}
filterProfile(query: string) {
@ -311,7 +315,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
profileRequestItem.criteria = new ExploreDatasetCriteriaModel();
profileRequestItem.criteria.like = query;
return this.dmpService.getPublicPaged(profileRequestItem, "listing").map(x => x.data);
return this.dmpService.getPublicPaged(profileRequestItem, "listing").pipe(map(x => x.data));
}
filterOrganisation(value: string) {
@ -322,7 +326,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
dataTableRequest.criteria = new OrganisationCriteria();
dataTableRequest.criteria.labelLike = value;
return this.organisationService.searchPublicOrganisations(dataTableRequest).map(x => x.data);
return this.organisationService.searchPublicOrganisations(dataTableRequest).pipe(map(x => x.data));
}
displayLabel(value) {

@ -1,5 +1,8 @@
import {of as observableOf, Observable } from 'rxjs';
import { Component, OnInit, ViewChild } from "@angular/core";
import { MatPaginator, MatSort } from "@angular/material";
import { MatPaginator } from "@angular/material/paginator";
import { MatSort } from "@angular/material/sort";
import { Router, ActivatedRoute } from "@angular/router";
import { takeUntil } from "rxjs/operators";
import { BaseComponent } from "../../core/common/base/base.component";
@ -7,7 +10,6 @@ import { DataTableRequest } from "../../core/model/data-table/data-table-request
import { DmpListingModel } from "../../core/model/dmp/dmp-listing";
import { ExploreDmpCriteriaModel } from "../../core/query/explore-dmp/explore-dmp-criteria";
import { DmpService } from "../../core/services/dmp/dmp.service";
import { Observable } from "rxjs";
import { IBreadCrumbComponent } from "../misc/breadcrumb/definition/IBreadCrumbComponent";
import { BreadcrumbItem } from "../misc/breadcrumb/definition/breadcrumb-item";
import { TranslateService } from "@ngx-translate/core";
@ -19,8 +21,8 @@ import { TranslateService } from "@ngx-translate/core";
})
export class ExploreDmpListingComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
@ViewChild(MatPaginator) _paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
@ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator;
@ViewChild(MatSort, { static: false }) sort: MatSort;
exploreDmpCriteriaModel: ExploreDmpCriteriaModel;
titlePrefix: string;
@ -46,7 +48,7 @@ export class ExploreDmpListingComponent extends BaseComponent implements OnInit,
label: this.language.instant('NAV-BAR.PUBLIC-DMPS'),
url: "/explore-plans"
})
this.breadCrumbs = Observable.of(breadCrumbs);
this.breadCrumbs = observableOf(breadCrumbs);
}
refresh() {

@ -1,10 +1,13 @@
import {of as observableOf, Observable } from 'rxjs';
import {map, takeUntil } from 'rxjs/operators';
import { Component, OnInit } from '@angular/core';
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
import { MatDialog, MatSnackBar } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { MatSnackBar } from '@angular/material/snack-bar';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { environment } from '../../../../environments/environment';
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
import { BaseComponent } from '../../../core/common/base/base.component';
@ -26,7 +29,7 @@ import { SnackBarNotificationLevel, UiNotificationService } from '../../../core/
})
export class GrantEditorComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
breadCrumbs: Observable<BreadcrumbItem[]> = Observable.of([]);
breadCrumbs: Observable<BreadcrumbItem[]> = observableOf([]);
isNew = true;
grant: GrantEditorModel;
formGroup: FormGroup = null;
@ -55,7 +58,7 @@ export class GrantEditorComponent extends BaseComponent implements OnInit, IBrea
if (itemId != null) {
this.isNew = false;
this.grantService.getSingle(itemId).map(data => data as GrantListingModel)
this.grantService.getSingle(itemId).pipe(map(data => data as GrantListingModel))
.pipe(takeUntil(this._destroyed))
.subscribe(data => {
this.grant = new GrantEditorModel().fromModel(data);
@ -71,11 +74,11 @@ export class GrantEditorComponent extends BaseComponent implements OnInit, IBrea
label: this.grant.label,
url: '/grants/edit/' + this.grant.id
});
this.breadCrumbs = Observable.of(breadCrumbs);
this.breadCrumbs = observableOf(breadCrumbs);
});
} else {
this.language.get('QUICKWIZARD.CREATE-ADD.CREATE.QUICKWIZARD_CREATE.ACTIONS.CREATE-NEW-GRANT').pipe(takeUntil(this._destroyed)).subscribe(x => {
this.breadCrumbs = Observable.of([
this.breadCrumbs = observableOf([
{
parentComponentName: null,
label: this.language.instant('NAV-BAR.GRANTS').toUpperCase(),

@ -5,7 +5,7 @@ import { ValidationErrorModel } from '../../../../common/forms/validation/error-
import { GrantStateType } from '../../../../core/common/enum/grant-state-type';
import { GrantCriteria } from '../../../../core/query/grant/grant-criteria';
import { BaseCriteriaComponent } from '../../../misc/criteria/base-criteria.component';
import { ErrorStateMatcher } from '@angular/material';
import { ErrorStateMatcher } from '@angular/material/core';
@Component({
selector: 'app-grant-criteria-component',

@ -1,7 +1,9 @@
import {of as observableOf, Observable } from 'rxjs';
import { Component, OnInit, ViewChild } from '@angular/core';
import { MatPaginator, MatSort } from '@angular/material';
import { MatPaginator } from '@angular/material/paginator';
import { MatSort } from '@angular/material/sort';
import { Router, ActivatedRoute, Params } from '@angular/router';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../core/common/base/base.component';
import { DataTableRequest } from '../../../core/model/data-table/data-table-request';
@ -20,9 +22,9 @@ import { TranslateService } from '@ngx-translate/core';
})
export class GrantListingComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
@ViewChild(MatPaginator) _paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
@ViewChild(GrantCriteriaComponent) criteria: GrantCriteriaComponent;
@ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator;
@ViewChild(MatSort, { static: false }) sort: MatSort;
@ViewChild(GrantCriteriaComponent, { static: true }) criteria: GrantCriteriaComponent;
breadCrumbs: Observable<BreadcrumbItem[]>;
totalCount: number;
@ -43,7 +45,7 @@ export class GrantListingComponent extends BaseComponent implements OnInit, IBre
this.refresh();
this.criteria.setRefreshCallback((resetPages) => this.refresh(resetPages));
this.breadCrumbs = Observable.of([{
this.breadCrumbs = observableOf([{
parentComponentName: null,
label: this.language.instant('NAV-BAR.GRANTS').toUpperCase(),
url: '/grants'

@ -1,6 +1,9 @@
import {of as observableOf, Observable } from 'rxjs';
import {filter, mergeMap, distinctUntilChanged, map} from 'rxjs/operators';
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
import { Observable } from 'rxjs';
import { BreadcrumbItem } from './definition/breadcrumb-item';
import { BreadCrumbResolverService } from './service/breadcrumb.service';
import { TranslateService } from '@ngx-translate/core';
@ -11,10 +14,10 @@ import { TranslateService } from '@ngx-translate/core';
styleUrls: ['./breadcrumb.component.scss']
})
export class BreadcrumbComponent implements OnInit {
breadcrumbs$ = this.router.events
.filter(event => event instanceof NavigationEnd)
.distinctUntilChanged()
.flatMap(event => this.buildBreadCrumb(this.activatedRoute.root));
breadcrumbs$ = this.router.events.pipe(
filter(event => event instanceof NavigationEnd),
distinctUntilChanged(),
mergeMap(event => this.buildBreadCrumb(this.activatedRoute.root)),);
constructor(
@ -30,15 +33,15 @@ export class BreadcrumbComponent implements OnInit {
buildBreadCrumb(route: ActivatedRoute): Observable<BreadcrumbItem[]> {
if (this.breadCrumbService.resolve(route)) {
return this.breadCrumbService.resolve(route).map(x => {
return this.breadCrumbService.resolve(route).pipe(map(x => {
x.unshift({
label: this.language.instant('NAV-BAR.HOME'),
url: '/home',
icon: 'dashboard'
}); return x;
});
}));
}
return Observable.of([]);
return observableOf([]);
}
navigate(url, params) {

@ -1,6 +1,7 @@
import {of as observableOf, Observable } from 'rxjs';
import { Injectable, NgZone } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { BaseService } from '../../../../core/common/base/base.service';
import { BreadcrumbItem } from '../definition/breadcrumb-item';
@ -11,7 +12,7 @@ export class BreadCrumbResolverService extends BaseService {
private activeComponents = [];
private parentComponents = [];
private breadCrumbs: Observable<BreadcrumbItem[]> = Observable.of([]);
private breadCrumbs: Observable<BreadcrumbItem[]> = observableOf([]);
constructor(
private router: Router,
private zone: NgZone
@ -25,7 +26,7 @@ export class BreadCrumbResolverService extends BaseService {
public clear() {
this.activeComponents.length = 0;
this.breadCrumbs = Observable.of([]);
this.breadCrumbs = observableOf([]);
}
public resolve(activatedRoute: ActivatedRoute): Observable<BreadcrumbItem[]> {
@ -34,7 +35,7 @@ export class BreadCrumbResolverService extends BaseService {
this.activeComponents.filter(x => routeComponents.indexOf(x.constructor.name) !== -1).forEach(x => {
if (x.hasOwnProperty('breadCrumbs')) {
const componentItems = this.resolveDependentComponents((<IBreadCrumbComponent>x).breadCrumbs, []);
this.breadCrumbs = Observable.of(componentItems);
this.breadCrumbs = observableOf(componentItems);
}
});
return this.breadCrumbs;

@ -1,6 +1,7 @@
import {map, takeUntil } from 'rxjs/operators';
import { Component, Input, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../../../core/common/base/base.component';
import { DatasetProfileComboBoxType } from '../../../../../core/common/enum/dataset-profile-combo-box-type';
import { DatasetProfileFieldViewStyle } from '../../../../../core/common/enum/dataset-profile-field-view-style';
@ -137,7 +138,7 @@ export class FormFieldComponent extends BaseComponent implements OnInit {
const datasetsAutocompleteRequestItem: DataTableRequest<DatasetCriteria> = new DataTableRequest(0, 25, { fields: fields });
datasetsAutocompleteRequestItem.criteria = new DatasetCriteria();
datasetsAutocompleteRequestItem.criteria.like = query;
return this.datasetService.getPaged(datasetsAutocompleteRequestItem).map(item => item.data);
return this.datasetService.getPaged(datasetsAutocompleteRequestItem).pipe(map(item => item.data));
}
searchDmps(query: string) {
@ -145,7 +146,7 @@ export class FormFieldComponent extends BaseComponent implements OnInit {
const dmpsAutocompleteRequestItem: DataTableRequest<DmpCriteria> = new DataTableRequest(0, 25, { fields: fields });
dmpsAutocompleteRequestItem.criteria = new DmpCriteria();
dmpsAutocompleteRequestItem.criteria.like = query;
return this.dmpService.getPaged(dmpsAutocompleteRequestItem).map(item => item.data);
return this.dmpService.getPaged(dmpsAutocompleteRequestItem).pipe(map(item => item.data));
}
makeAutocompleteConfiguration(myfunc: Function, title: string, subtitle?: string): void {

@ -1,8 +1,8 @@
import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core';
import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatStepper } from '@angular/material';
import { MatStepper } from '@angular/material/stepper';
import { ActivatedRoute, Router } from '@angular/router';
import 'rxjs/add/operator/switchMap';
import { takeUntil } from 'rxjs/operators';
import { Pair } from '../../../common/types/pair';
import { BaseComponent } from '../../../core/common/base/base.component';

@ -32,11 +32,11 @@ export class HelpContentComponent extends BaseComponent implements OnInit {
.pipe(takeUntil(this._destroyed))
.subscribe(event => {
if (event instanceof NavigationStart) {
this._helpContentService.getActivePageContent(event['url'])
.pipe(takeUntil(this._destroyed))
.subscribe(
pageContent => this.shiftThroughContent(pageContent),
error => this.handleError(<any>error));
// this._helpContentService.getActivePageContent(event['url'])
// .pipe(takeUntil(this._destroyed))
// .subscribe(
// pageContent => this.shiftThroughContent(pageContent),
// error => this.handleError(<any>error));
}
});
}

@ -1,9 +1,10 @@
import {mergeMap, distinctUntilChanged, debounceTime, takeUntil } from 'rxjs/operators';
import { Component, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
import { MatDialog } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { Router } from '@angular/router';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../core/common/base/base.component';
import { AppRole } from '../../../core/common/enum/app-role';
import { SearchBarItem } from '../../../core/model/dashboard/search-bar-item';
@ -59,9 +60,9 @@ export class NavigationComponent extends BaseComponent implements OnInit {
titleFn: (item) => item['label']
};
this.filteredOptions = this.searchControl.valueChanges.debounceTime(500).distinctUntilChanged().flatMap(x => {
this.filteredOptions = this.searchControl.valueChanges.pipe(debounceTime(500),distinctUntilChanged(),mergeMap(x => {
return this.searchBarService.search(x);
});
}),);
}
searchGrant(query: string) {

@ -1,6 +1,6 @@
import { Component, Inject, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { Router } from '@angular/router';
import { Principal } from '../../../../core/model/auth/Principal';
import { AuthService } from '../../../../core/services/auth/auth.service';

@ -1,3 +1,5 @@
import {mergeMap, distinctUntilChanged, debounceTime} from 'rxjs/operators';
import { Component, OnInit } from "@angular/core";
import { AuthService } from '../../../core/services/auth/auth.service';
import { FormControl } from "@angular/forms";
@ -25,9 +27,9 @@ export class SearchComponent implements OnInit {
constructor(private authentication: AuthService, private router: Router, private searchBarService: SearchBarService) {}
ngOnInit() {
this.filteredOptions = this.searchControl.valueChanges.debounceTime(500).distinctUntilChanged().flatMap(x => {
this.filteredOptions = this.searchControl.valueChanges.pipe(debounceTime(500),distinctUntilChanged(),mergeMap(x => {
return this.searchBarService.search(x);
});
}),);
}
public isAuthenticated(): boolean {

@ -4,7 +4,7 @@ import { GENERAL_ROUTES, DMP_ROUTES, DATASETS_ROUTES } from '../sidebar/sidebar.
import { Location, LocationStrategy, PathLocationStrategy } from '@angular/common';
import { Router } from '@angular/router';
import { AuthService } from '../../core/services/auth/auth.service';
import { MatDialog } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { UserDialogComponent } from '../misc/navigation/user-dialog/user-dialog.component';
import { AppRole } from '../../core/common/enum/app-role';
import { ProgressIndicationService } from '../../core/services/progress-indication/progress-indication-service';

@ -1,9 +1,10 @@
import {of as observableOf, Observable } from 'rxjs';
import { Component, Input, OnInit } from '@angular/core';
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
import { MatSnackBar } from '@angular/material';
import { MatSnackBar } from '@angular/material/snack-bar';
import { ActivatedRoute, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { Observable } from 'rxjs';
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
import { BaseComponent } from "../../../core/common/base/base.component";
import { DatasetProfileModel } from '../../../core/model/dataset/dataset-profile';
@ -24,7 +25,7 @@ import { DmpEditorWizardModel } from './dmp-editor-wizard-model';
})
export class DmpEditorWizardComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
breadCrumbs: Observable<BreadcrumbItem[]> = Observable.of([]);
breadCrumbs: Observable<BreadcrumbItem[]> = observableOf([]);
isNew = true;
dmp: DmpEditorWizardModel;
@ -65,7 +66,7 @@ export class DmpEditorWizardComponent extends BaseComponent implements OnInit, I
this.formGroup.get('label').setValue(this.language.instant('QUICKWIZARD.CREATE-ADD.CREATE.QUICKWIZARD_CREATE.SECOND-STEP.DMP-NAME') + this.dmpLabel);
this.formGroup.get('label').setValue(this.language.instant('QUICKWIZARD.CREATE-ADD.CREATE.QUICKWIZARD_CREATE.SECOND-STEP.DMP-NAME') + this.dmpLabel);
this.breadCrumbs = Observable.of([{
this.breadCrumbs = observableOf([{
parentComponentName: 'grant',
label: this.language.instant('NAV-BAR.DMP'),
url: '/quick-wizard/dmp'

@ -1,9 +1,10 @@
import {of as observableOf, Observable } from 'rxjs';
import { Component, Input, OnInit } from '@angular/core';
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
import { MatSnackBar } from '@angular/material';
import { MatSnackBar } from '@angular/material/snack-bar';
import { ActivatedRoute, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { Observable } from 'rxjs';
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
import { BaseComponent } from "../../../core/common/base/base.component";
import { GrantCriteria } from '../../../core/query/grant/grant-criteria';
@ -21,7 +22,7 @@ import { GrantEditorWizardModel } from './grant-editor-wizard-model';
styleUrls: ['./grant-editor-wizard.component.scss']
})
export class GrantEditorWizardComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
breadCrumbs: Observable<BreadcrumbItem[]> = Observable.of([]);
breadCrumbs: Observable<BreadcrumbItem[]> = observableOf([]);
isNew = false;
grant: GrantEditorWizardModel;
@ -42,7 +43,7 @@ export class GrantEditorWizardComponent extends BaseComponent implements OnInit,
}
ngOnInit() {
this.breadCrumbs = Observable.of([{
this.breadCrumbs = observableOf([{
parentComponentName: 'QuickCreate',
label: this.language.instant('NAV-BAR.GRANT'),
url: '/quick-wizard/grant'

@ -1,9 +1,12 @@
import {of as observableOf, Observable } from 'rxjs';
import { Component, OnInit, ViewChild } from '@angular/core';
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
import { MatDialog, MatSnackBar, MatStepper } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { MatSnackBar } from '@angular/material/snack-bar';
import { MatStepper } from '@angular/material/stepper';
import { ActivatedRoute, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { Observable } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
import { BaseComponent } from "../../../core/common/base/base.component";
@ -29,9 +32,9 @@ import { ProjectFormModel } from '../../dmp/editor/grant-tab/project-form-model'
})
export class QuickWizardEditorComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
breadCrumbs: Observable<BreadcrumbItem[]> = Observable.of([]);
@ViewChild('stepper') stepper: MatStepper;
@ViewChild(DatasetEditorWizardComponent) datasetEditorWizardComponent: DatasetEditorWizardComponent;
breadCrumbs: Observable<BreadcrumbItem[]> = observableOf([]);
@ViewChild('stepper', { static: true }) stepper: MatStepper;
@ViewChild(DatasetEditorWizardComponent, { static: false }) datasetEditorWizardComponent: DatasetEditorWizardComponent;
isNew = true;
quickWizard: QuickWizardEditorWizardModel;
allDatasets: DmpFinalizeDialogDataset[] = [];
@ -57,7 +60,7 @@ export class QuickWizardEditorComponent extends BaseComponent implements OnInit,
this.quickWizard.project = new ProjectFormModel();
this.formGroup = this.quickWizard.buildForm();
this.language.get('NAV-BAR.DMP-WIZARD').pipe(takeUntil(this._destroyed)).subscribe(x => {
this.breadCrumbs = Observable.of([
this.breadCrumbs = observableOf([
{
parentComponentName: 'Dashboard',
label: x,

@ -1,6 +1,6 @@
import { Component, Inject } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
@Component({
selector: 'app-faq-dialog',

@ -1,6 +1,6 @@
import { Component, Inject } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
@Component({
selector: 'app-glossary-dialog',

@ -1,6 +1,6 @@
import { Component, OnInit } from '@angular/core';
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
import { MatDialog } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { TranslateService } from '@ngx-translate/core';
import { takeUntil } from 'rxjs/operators';
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';

@ -1,5 +1,5 @@
import { Component, OnInit } from '@angular/core';
import { MatDialog } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { TranslateService } from '@ngx-translate/core';
import { AuthService } from '../../core/services/auth/auth.service';
import { UserDialogComponent } from '../misc/navigation/user-dialog/user-dialog.component';

@ -3,15 +3,15 @@ import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'
import { ActivatedRoute, Params, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import * as moment from 'moment-timezone';
import { takeUntil } from 'rxjs/operators';
import { Observable } from 'rxjs/Rx';
import { Observable, of } from 'rxjs';
import { map, takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../core/common/base/base.component';
import { CultureInfo } from '../../core/model/culture-info';
import { DmpModel } from '../../core/model/dmp/dmp';
import { UserListingModel } from '../../core/model/user/user-listing';
import { AuthService } from '../../core/services/auth/auth.service';
import { CultureService } from '../../core/services/culture/culture-service';
import { UserService } from '../../core/services/user/user.service';
import { DmpModel } from '../../core/model/dmp/dmp';
const availableLanguages: any[] = require('../../../assets/resources/language.json');
@ -47,7 +47,7 @@ export class UserProfileComponent extends BaseComponent implements OnInit, OnDes
.subscribe((params: Params) => {
this.currentUserId = this.authService.current().id;
const userId = !params['id'] ? 'me' : params['id'];
this.user = this.userService.getUser(userId).map(result => {
this.user = this.userService.getUser(userId).pipe(map(result => {
result['additionalinfo'] = JSON.parse(result['additionalinfo']);
this.formGroup = new FormBuilder().group({
language: new FormControl(result['additionalinfo']['language'] ? availableLanguages.filter(x => x.value === result['additionalinfo']['language']['value']).pop() : '', [Validators.required]),
@ -63,7 +63,7 @@ export class UserProfileComponent extends BaseComponent implements OnInit, OnDes
.subscribe(x => { if (x) { this.cultures = this._filterCulture(x); } });
this.formGroup.disable();
return result;
});
}));
});
}
@ -91,18 +91,18 @@ export class UserProfileComponent extends BaseComponent implements OnInit, OnDes
private _filterTimezone(value: string): Observable<any[]> {
if (value && typeof value === 'string') {
const filterValue = value.toLowerCase();
return Observable.of(moment.tz.names().filter(option => option.toLowerCase().includes(filterValue)));
return of(moment.tz.names().filter(option => option.toLowerCase().includes(filterValue)));
} else {
return Observable.of(moment.tz.names());
return of(moment.tz.names());
}
}
private _filterCulture(value: string): Observable<any[]> {
if (value && typeof value === 'string') {
const filterValue = value.toLowerCase();
return Observable.of(this.cultureService.getCultureValues().filter(option => option.displayName.toLowerCase().includes(filterValue)));
return of(this.cultureService.getCultureValues().filter(option => option.displayName.toLowerCase().includes(filterValue)));
} else {
return Observable.of(this.cultureService.getCultureValues());
return of(this.cultureService.getCultureValues());
}
}
@ -132,7 +132,7 @@ export class UserProfileComponent extends BaseComponent implements OnInit, OnDes
this.authService.me()
.pipe(takeUntil(this._destroyed))
.subscribe(result => this.router.navigate(['/profile']));
// .subscribe(result => window.location.reload());
// .subscribe(result => window.location.reload());
},
error => {
console.log(error);

@ -11,36 +11,20 @@
* automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
* Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
*
* Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html
* Learn more in https://angular.io/guide/browser-support
*/
/***************************************************************************************************
* BROWSER POLYFILLS
*/
* BROWSER POLYFILLS
*/
/** IE9, IE10 and IE11 requires all of the following polyfills. **/
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es7/array'; //for array.includes
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';
import 'core-js/es7/array';
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
//import 'classlist.js'; // Run `npm install --save classlist.js`.
/** Evergreen browsers require these. **/
import 'core-js/es6/reflect';
import 'core-js/es7/reflect';
/**

@ -3,8 +3,6 @@
"compilerOptions": {
"outDir": "../out-tsc/spec",
"baseUrl": "./",
"module": "commonjs",
"target": "es5",
"types": [
"jasmine",
"node"

@ -1,7 +1,9 @@
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"downlevelIteration": true,
"importHelpers": true,
"target": "es2015",
"module": "esnext",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,

@ -136,12 +136,12 @@
"app",
"kebab-case"
],
"use-input-property-decorator": true,
"use-output-property-decorator": true,
"use-host-property-decorator": true,
"no-inputs-metadata-property": true,
"no-outputs-metadata-property": true,
"no-host-metadata-property": true,
"no-input-rename": true,
"no-output-rename": true,
"use-life-cycle-interface": true,
"use-lifecycle-interface": true,
"use-pipe-transform-interface": true,
"component-class-suffix": true,
"directive-class-suffix": true

Loading…
Cancel
Save