angular update to version 8
This commit is contained in:
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'.
|
|
@ -12,52 +12,47 @@
|
||||||
},
|
},
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@angular/animations": "^6.1.7",
|
"@angular/animations": "^8.2.7",
|
||||||
"@angular/common": "^6.1.7",
|
"@angular/common": "^8.2.7",
|
||||||
"@angular/compiler": "^6.1.7",
|
"@angular/compiler": "^8.2.7",
|
||||||
"@angular/core": "^6.1.7",
|
"@angular/core": "^8.2.7",
|
||||||
"@angular/flex-layout": "6.0.0-beta.18",
|
"@angular/forms": "^8.2.7",
|
||||||
"@angular/forms": "^6.1.7",
|
"@angular/material-moment-adapter": "^8.2.0",
|
||||||
"@angular/material-moment-adapter": "^6.4.7",
|
"@angular/platform-browser": "^8.2.7",
|
||||||
"@angular/platform-browser": "^6.1.7",
|
"@ngx-translate/core": "^11.0.1",
|
||||||
"@ngx-translate/core": "^10.0.2",
|
"@ngx-translate/http-loader": "^4.0.0",
|
||||||
"@ngx-translate/http-loader": "^3.0.1",
|
"@swimlane/ngx-datatable": "^16.0.2",
|
||||||
"@swimlane/ngx-datatable": "^13.1.0",
|
"bootstrap": "^4.3.1",
|
||||||
"bootstrap": "^4.1.3",
|
|
||||||
"core-js": "^2.5.5",
|
"core-js": "^2.5.5",
|
||||||
"file-saver": "^2.0.0-rc.3",
|
"file-saver": "^2.0.2",
|
||||||
"moment": "^2.22.2",
|
"moment": "^2.24.0",
|
||||||
"moment-timezone": "^0.5.23",
|
"moment-timezone": "^0.5.26",
|
||||||
"ngx-cookie-service": "^1.0.10",
|
"ngx-cookie-service": "^2.2.0",
|
||||||
"rxjs": "^6.3.2",
|
"rxjs": "^6.3.2",
|
||||||
"rxjs-compat": "^6.3.2",
|
"tslib": "^1.10.0",
|
||||||
"web-animations-js": "^2.3.1",
|
"web-animations-js": "^2.3.2",
|
||||||
"zone.js": "^0.8.26"
|
"zone.js": "~0.9.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@angular-devkit/build-angular": "^0.8.5",
|
"@angular-devkit/build-angular": "~0.803.5",
|
||||||
"@angular/cdk": "^6.3.0",
|
"@angular/cdk": "^8.2.0",
|
||||||
"@angular/material": "^6.4.7",
|
"@angular/material": "^8.2.0",
|
||||||
"@angular/cli": "6.2.5",
|
"@angular/cli": "8.3.5",
|
||||||
"@angular/compiler-cli": "^6.1.10",
|
"@angular/compiler-cli": "^8.2.7",
|
||||||
"@angular/http": "^6.1.10",
|
"@angular/platform-browser-dynamic": "^8.2.7",
|
||||||
"@angular/platform-browser-dynamic": "^6.1.10",
|
"@angular/router": "^8.2.7",
|
||||||
"@angular/router": "^6.1.10",
|
"@angular/language-service": "^8.2.7",
|
||||||
"@angular/language-service": "^6.1.10",
|
"@types/facebook-js-sdk": "^3.3.0",
|
||||||
"@types/facebook-js-sdk": "^2.8.4",
|
"@types/file-saver": "^2.0.1",
|
||||||
"@types/file-saver": "^1.3.1",
|
"@types/gapi": "^0.0.39",
|
||||||
"@types/gapi": "^0.0.36",
|
"@types/gapi.auth2": "^0.0.50",
|
||||||
"@types/gapi.auth2": "^0.0.47",
|
"@types/jasmine": "~3.4.0",
|
||||||
"@types/jasmine": "~2.8.9",
|
"@types/jasminewd2": "~2.0.6",
|
||||||
"@types/jasminewd2": "~2.0.5",
|
"@types/moment-timezone": "^0.5.12",
|
||||||
"@types/moment-timezone": "^0.5.4",
|
|
||||||
"@types/node": "^10.11.7",
|
"@types/node": "^10.11.7",
|
||||||
"codelyzer": "~4.5.0",
|
"codelyzer": "^5.1.1",
|
||||||
"jasmine-core": "^3.2.1",
|
"ts-node": "~8.4.1",
|
||||||
"jasmine-spec-reporter": "^4.2.1",
|
"tslint": "~5.20.0",
|
||||||
"protractor": "~5.4.1",
|
"typescript": "3.5.3"
|
||||||
"ts-node": "~7.0.1",
|
|
||||||
"tslint": "~5.11.0",
|
|
||||||
"typescript": "2.9.1"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ const appRoutes: Routes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'datasetcreatewizard',
|
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: {
|
data: {
|
||||||
breadcrumb: true,
|
breadcrumb: true,
|
||||||
title: 'GENERAL.TITLES.DATASETCREATEWIZARD'
|
title: 'GENERAL.TITLES.DATASETCREATEWIZARD'
|
||||||
|
@ -22,7 +22,7 @@ const appRoutes: Routes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'explore',
|
path: 'explore',
|
||||||
loadChildren: './ui/explore-dataset/explore-dataset.module#ExploreDatasetModule',
|
loadChildren: () => import('./ui/explore-dataset/explore-dataset.module').then(m => m.ExploreDatasetModule),
|
||||||
data: {
|
data: {
|
||||||
breadcrumb: true,
|
breadcrumb: true,
|
||||||
title: 'GENERAL.TITLES.EXPLORE'
|
title: 'GENERAL.TITLES.EXPLORE'
|
||||||
|
@ -30,7 +30,7 @@ const appRoutes: Routes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'explore-plans',
|
path: 'explore-plans',
|
||||||
loadChildren: './ui/explore-dmp/explore-dmp.module#ExploreDmpModule',
|
loadChildren: () => import('./ui/explore-dmp/explore-dmp.module').then(m => m.ExploreDmpModule),
|
||||||
data: {
|
data: {
|
||||||
breadcrumb: true,
|
breadcrumb: true,
|
||||||
title: 'GENERAL.TITLES.EXPLORE-PLANS'
|
title: 'GENERAL.TITLES.EXPLORE-PLANS'
|
||||||
|
@ -38,7 +38,7 @@ const appRoutes: Routes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'datasets',
|
path: 'datasets',
|
||||||
loadChildren: './ui/dataset/dataset.module#DatasetModule',
|
loadChildren: () => import('./ui/dataset/dataset.module').then(m => m.DatasetModule),
|
||||||
data: {
|
data: {
|
||||||
breadcrumb: true,
|
breadcrumb: true,
|
||||||
title: 'GENERAL.TITLES.DATASETS'
|
title: 'GENERAL.TITLES.DATASETS'
|
||||||
|
@ -46,7 +46,7 @@ const appRoutes: Routes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'about',
|
path: 'about',
|
||||||
loadChildren: './ui/about/about.module#AboutModule',
|
loadChildren: () => import('./ui/about/about.module').then(m => m.AboutModule),
|
||||||
data: {
|
data: {
|
||||||
breadcrumb: true,
|
breadcrumb: true,
|
||||||
title: 'GENERAL.TITLES.ABOUT'
|
title: 'GENERAL.TITLES.ABOUT'
|
||||||
|
@ -54,7 +54,7 @@ const appRoutes: Routes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'grants',
|
path: 'grants',
|
||||||
loadChildren: './ui/grant/grant.module#GrantModule',
|
loadChildren: () => import('./ui/grant/grant.module').then(m => m.GrantModule),
|
||||||
data: {
|
data: {
|
||||||
breadcrumb: true,
|
breadcrumb: true,
|
||||||
title: 'GENERAL.TITLES.GRANTS'
|
title: 'GENERAL.TITLES.GRANTS'
|
||||||
|
@ -62,7 +62,7 @@ const appRoutes: Routes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'plans',
|
path: 'plans',
|
||||||
loadChildren: './ui/dmp/dmp.module#DmpModule',
|
loadChildren: () => import('./ui/dmp/dmp.module').then(m => m.DmpModule),
|
||||||
data: {
|
data: {
|
||||||
breadcrumb: true,
|
breadcrumb: true,
|
||||||
title: 'GENERAL.TITLES.PLANS'
|
title: 'GENERAL.TITLES.PLANS'
|
||||||
|
@ -70,7 +70,7 @@ const appRoutes: Routes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'dmp-profiles',
|
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: {
|
data: {
|
||||||
breadcrumb: true,
|
breadcrumb: true,
|
||||||
title: 'GENERAL.TITLES.DMP-PROFILES'
|
title: 'GENERAL.TITLES.DMP-PROFILES'
|
||||||
|
@ -78,7 +78,7 @@ const appRoutes: Routes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'quick-wizard',
|
path: 'quick-wizard',
|
||||||
loadChildren: './ui/quick-wizard/quick-wizard.module#OuickWizardModule',
|
loadChildren: () => import('./ui/quick-wizard/quick-wizard.module').then(m => m.OuickWizardModule),
|
||||||
data: {
|
data: {
|
||||||
breadcrumb: true,
|
breadcrumb: true,
|
||||||
title: "GENERAL.TITLES.QUICK-WIZARD"
|
title: "GENERAL.TITLES.QUICK-WIZARD"
|
||||||
|
@ -86,7 +86,7 @@ const appRoutes: Routes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'dataset-profiles',
|
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: {
|
data: {
|
||||||
breadcrumb: true,
|
breadcrumb: true,
|
||||||
title: 'GENERAL.TITLES.DATASET-PROFILES'
|
title: 'GENERAL.TITLES.DATASET-PROFILES'
|
||||||
|
@ -94,21 +94,21 @@ const appRoutes: Routes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'home',
|
path: 'home',
|
||||||
loadChildren: './ui/dashboard/dashboard.module#DashboardModule',
|
loadChildren: () => import('./ui/dashboard/dashboard.module').then(m => m.DashboardModule),
|
||||||
data: {
|
data: {
|
||||||
breadcrumb: true
|
breadcrumb: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'unauthorized',
|
path: 'unauthorized',
|
||||||
loadChildren: './ui/misc/unauthorized/unauthorized.module#UnauthorizedModule',
|
loadChildren: () => import('./ui/misc/unauthorized/unauthorized.module').then(m => m.UnauthorizedModule),
|
||||||
data: {
|
data: {
|
||||||
breadcrumb: true
|
breadcrumb: true
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'users',
|
path: 'users',
|
||||||
loadChildren: './ui/admin/user/user.module#UserModule',
|
loadChildren: () => import('./ui/admin/user/user.module').then(m => m.UserModule),
|
||||||
data: {
|
data: {
|
||||||
breadcrumb: true,
|
breadcrumb: true,
|
||||||
title: 'GENERAL.TITLES.USERS'
|
title: 'GENERAL.TITLES.USERS'
|
||||||
|
@ -116,7 +116,7 @@ const appRoutes: Routes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'profile',
|
path: 'profile',
|
||||||
loadChildren: './ui/user-profile/user-profile.module#UserProfileModule',
|
loadChildren: () => import('./ui/user-profile/user-profile.module').then(m => m.UserProfileModule),
|
||||||
data: {
|
data: {
|
||||||
breadcrumb: true,
|
breadcrumb: true,
|
||||||
title: 'GENERAL.TITLES.PROFILE'
|
title: 'GENERAL.TITLES.PROFILE'
|
||||||
|
@ -124,14 +124,14 @@ const appRoutes: Routes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'login/admin',
|
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: {
|
data: {
|
||||||
breadcrumb: true
|
breadcrumb: true
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'login',
|
path: 'login',
|
||||||
loadChildren: './ui/auth/login/login.module#LoginModule',
|
loadChildren: () => import('./ui/auth/login/login.module').then(m => m.LoginModule),
|
||||||
data: {
|
data: {
|
||||||
breadcrumb: true,
|
breadcrumb: true,
|
||||||
title: 'GENERAL.TITLES.LOGIN'
|
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 { Component, OnInit } from '@angular/core';
|
||||||
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
|
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { environment } from '../environments/environment';
|
import { environment } from '../environments/environment';
|
||||||
import { AuthService } from './core/services/auth/auth.service';
|
import { AuthService } from './core/services/auth/auth.service';
|
||||||
import { CultureService } from './core/services/culture/culture-service';
|
import { CultureService } from './core/services/culture/culture-service';
|
||||||
import { BreadCrumbResolverService } from './ui/misc/breadcrumb/service/breadcrumb.service';
|
import { BreadCrumbResolverService } from './ui/misc/breadcrumb/service/breadcrumb.service';
|
||||||
import { filter, map } from 'rxjs/operators';
|
|
||||||
import { Title } from '@angular/platform-browser';
|
import { Title } from '@angular/platform-browser';
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,7 +22,7 @@ declare var $: any;
|
||||||
})
|
})
|
||||||
export class AppComponent implements OnInit {
|
export class AppComponent implements OnInit {
|
||||||
|
|
||||||
hasBreadCrumb = Observable.of(false);
|
hasBreadCrumb = observableOf(false);
|
||||||
sideNavOpen = false;
|
sideNavOpen = false;
|
||||||
helpContentEnabled = environment.HelpService.Enabled;
|
helpContentEnabled = environment.HelpService.Enabled;
|
||||||
|
|
||||||
|
@ -46,12 +48,12 @@ export class AppComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.hasBreadCrumb = this.router.events
|
this.hasBreadCrumb = this.router.events.pipe(
|
||||||
.filter(event => event instanceof NavigationEnd)
|
filter(event => event instanceof NavigationEnd),
|
||||||
.map(() => this.route)
|
map(() => this.route),
|
||||||
.map(route => route.firstChild)
|
map(route => route.firstChild),
|
||||||
.switchMap(route => route.data)
|
switchMap(route => route.data),
|
||||||
.map(data => data['breadcrumb']);
|
map(data => data['breadcrumb']),);
|
||||||
|
|
||||||
const appTitle = this.titleService.getTitle();
|
const appTitle = this.titleService.getTitle();
|
||||||
this.router
|
this.router
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { OverlayModule } from '@angular/cdk/overlay';
|
import { OverlayModule } from '@angular/cdk/overlay';
|
||||||
import { HttpClient, HttpClientModule } from '@angular/common/http';
|
import { HttpClient, HttpClientModule } from '@angular/common/http';
|
||||||
import { LOCALE_ID, NgModule } from '@angular/core';
|
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 { MatMomentDateModule, MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';
|
||||||
import { BrowserModule, Title } from '@angular/platform-browser';
|
import { BrowserModule, Title } from '@angular/platform-browser';
|
||||||
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Inject, Injectable, Optional } from '@angular/core';
|
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 { MomentDateAdapter } from '@angular/material-moment-adapter';
|
||||||
import * as moment from 'moment';
|
import * as moment from 'moment';
|
||||||
import { Moment } from 'moment';
|
import { Moment } from 'moment';
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { HttpHandler, HttpHeaderResponse, HttpProgressEvent, HttpRequest, HttpResponse, HttpSentEvent, HttpUserEvent } from '@angular/common/http';
|
import { HttpHandler, HttpHeaderResponse, HttpProgressEvent, HttpRequest, HttpResponse, HttpSentEvent, HttpUserEvent } from '@angular/common/http';
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { MatSnackBar } from '@angular/material';
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { map } from 'rxjs/operators';
|
import { map } from 'rxjs/operators';
|
||||||
import { BaseInterceptor } from './base.interceptor';
|
import { BaseInterceptor } from './base.interceptor';
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
|
||||||
|
import {tap} from 'rxjs/operators';
|
||||||
import { Injectable } from "@angular/core";
|
import { Injectable } from "@angular/core";
|
||||||
import { BaseInterceptor } from "./base.interceptor";
|
import { BaseInterceptor } from "./base.interceptor";
|
||||||
import { InterceptorType } from "./interceptor-type";
|
import { InterceptorType } from "./interceptor-type";
|
||||||
|
@ -10,11 +12,11 @@ export class StatusCodeInterceptor extends BaseInterceptor {
|
||||||
|
|
||||||
type: InterceptorType;
|
type: InterceptorType;
|
||||||
interceptRequest(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent <any>> {
|
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) {
|
if (err.status === 480) {
|
||||||
this.router.navigate(['confirmation']);
|
this.router.navigate(['confirmation']);
|
||||||
}
|
}
|
||||||
});
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
|
|
@ -1,37 +1,35 @@
|
||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import {
|
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
||||||
MatButtonModule,
|
import { MatButtonModule } from '@angular/material/button';
|
||||||
MatToolbarModule,
|
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
||||||
MatIconModule,
|
import { MatCardModule } from '@angular/material/card';
|
||||||
MatCardModule,
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
||||||
MatGridListModule,
|
import { MatChipsModule } from '@angular/material/chips';
|
||||||
MatSnackBarModule,
|
import { MatOptionModule } from '@angular/material/core';
|
||||||
MatSidenavModule,
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
||||||
MatListModule,
|
import { MatDialogModule } from '@angular/material/dialog';
|
||||||
MatChipsModule,
|
import { MatExpansionModule } from '@angular/material/expansion';
|
||||||
MatFormFieldModule,
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
||||||
MatSelectModule,
|
import { MatGridListModule } from '@angular/material/grid-list';
|
||||||
MatOptionModule,
|
import { MatIconModule } from '@angular/material/icon';
|
||||||
MatInputModule,
|
import { MatInputModule } from '@angular/material/input';
|
||||||
MatExpansionModule,
|
import { MatListModule } from '@angular/material/list';
|
||||||
MatAutocompleteModule,
|
import { MatMenuModule } from '@angular/material/menu';
|
||||||
MatProgressSpinnerModule,
|
import { MatPaginatorModule } from '@angular/material/paginator';
|
||||||
MatTabsModule,
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
||||||
MatDialogModule,
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
||||||
MatMenuModule,
|
import { MatRadioModule } from '@angular/material/radio';
|
||||||
MatRadioModule,
|
import { MatSelectModule } from '@angular/material/select';
|
||||||
MatStepperModule,
|
import { MatSidenavModule } from '@angular/material/sidenav';
|
||||||
MatTooltipModule,
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
||||||
MatProgressBarModule,
|
import { MatSliderModule } from '@angular/material/slider';
|
||||||
MatCheckboxModule,
|
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
||||||
MatDatepickerModule,
|
import { MatSortModule } from '@angular/material/sort';
|
||||||
MatButtonToggleModule,
|
import { MatStepperModule } from '@angular/material/stepper';
|
||||||
MatSliderModule,
|
import { MatTableModule } from '@angular/material/table';
|
||||||
MatSlideToggleModule,
|
import { MatTabsModule } from '@angular/material/tabs';
|
||||||
MatTableModule,
|
import { MatToolbarModule } from '@angular/material/toolbar';
|
||||||
MatPaginatorModule,
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
||||||
MatSortModule,
|
|
||||||
} from '@angular/material';
|
|
||||||
import { CdkTableModule } from '@angular/cdk/table';
|
import { CdkTableModule } from '@angular/cdk/table';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import { DmpModel } from "../dmp"
|
import { FormBuilder, FormGroup, Validators } from "@angular/forms";
|
||||||
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 { BackendErrorValidator } from "../../../../common/forms/validation/custom-validator";
|
import { BackendErrorValidator } from "../../../../common/forms/validation/custom-validator";
|
||||||
import { ValidationErrorModel } from "../../../../common/forms/validation/error-model/validation-error-model";
|
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 {
|
export class DmpCreateWizardFormModel {
|
||||||
dmp: DmpModel;
|
dmp: DmpModel;
|
||||||
|
@ -37,6 +36,3 @@ export class DmpCreateWizardFormModel {
|
||||||
return baseContext;
|
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 { HttpClient, HttpHeaders } from '@angular/common/http';
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { MatSnackBar } from '@angular/material';
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
|
||||||
import { Observable } from 'rxjs/Rx';
|
|
||||||
import { environment } from '../../../../environments/environment';
|
import { environment } from '../../../../environments/environment';
|
||||||
import { SnackBarNotificationComponent } from '../../../library/notification/snack-bar/snack-bar-notification.component';
|
import { SnackBarNotificationComponent } from '../../../library/notification/snack-bar/snack-bar-notification.component';
|
||||||
import { BaseService } from '../../common/base/base.service';
|
import { BaseService } from '../../common/base/base.service';
|
||||||
|
@ -67,31 +69,31 @@ export class AuthService extends BaseService {
|
||||||
public login(loginInfo: LoginInfo): Observable<Principal> {
|
public login(loginInfo: LoginInfo): Observable<Principal> {
|
||||||
const url = this.actionUrl + 'externallogin';
|
const url = this.actionUrl + 'externallogin';
|
||||||
|
|
||||||
return this.http.post(url, loginInfo, { headers: this.headers })
|
return this.http.post(url, loginInfo, { headers: this.headers }).pipe(
|
||||||
.map((res: any) => {
|
map((res: any) => {
|
||||||
const principal = this.current(res.payload);
|
const principal = this.current(res.payload);
|
||||||
//this.loginContextSubject.next(true);
|
//this.loginContextSubject.next(true);
|
||||||
return principal;
|
return principal;
|
||||||
})
|
}),
|
||||||
.catch((error: any) => {
|
catchError((error: any) => {
|
||||||
//this.loginContextSubject.next(false);
|
//this.loginContextSubject.next(false);
|
||||||
return Observable.throw(error);
|
return observableThrowError(error);
|
||||||
});
|
}),);
|
||||||
}
|
}
|
||||||
|
|
||||||
public nativeLogin(credentials: Credential): Observable<Principal> {
|
public nativeLogin(credentials: Credential): Observable<Principal> {
|
||||||
const url = this.actionUrl + 'nativelogin';
|
const url = this.actionUrl + 'nativelogin';
|
||||||
|
|
||||||
return this.http.post(url, credentials, { headers: this.headers })
|
return this.http.post(url, credentials, { headers: this.headers }).pipe(
|
||||||
.map((res: any) => {
|
map((res: any) => {
|
||||||
const principal = this.current(res.payload);
|
const principal = this.current(res.payload);
|
||||||
//this.loginContextSubject.next(true);
|
//this.loginContextSubject.next(true);
|
||||||
return principal;
|
return principal;
|
||||||
})
|
}),
|
||||||
.catch((error: any) => {
|
catchError((error: any) => {
|
||||||
//this.loginContextSubject.next(false);
|
//this.loginContextSubject.next(false);
|
||||||
return Observable.throw(error);
|
return observableThrowError(error);
|
||||||
});
|
}),);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -116,22 +118,22 @@ export class AuthService extends BaseService {
|
||||||
const principal = this.current();
|
const principal = this.current();
|
||||||
if (!principal) {
|
if (!principal) {
|
||||||
this.clear();
|
this.clear();
|
||||||
return Observable.of<Principal>();
|
return observableOf<Principal>();
|
||||||
}
|
}
|
||||||
let headers = this.headers;
|
let headers = this.headers;
|
||||||
headers = headers.set('AuthToken', principal.token);
|
headers = headers.set('AuthToken', principal.token);
|
||||||
return this.http.post(url, null, { headers: headers })
|
return this.http.post(url, null, { headers: headers }).pipe(
|
||||||
.map((res: any) => {
|
map((res: any) => {
|
||||||
const princ = this.current(res.payload);
|
const princ = this.current(res.payload);
|
||||||
return princ;
|
return princ;
|
||||||
})
|
}),
|
||||||
.catch((error: any) => {
|
catchError((error: any) => {
|
||||||
//console.warn('could not retrieve me info:\n', error);
|
//console.warn('could not retrieve me info:\n', error);
|
||||||
this.clear();
|
this.clear();
|
||||||
const princ = this.current();
|
const princ = this.current();
|
||||||
this.router.navigate(['/login']);
|
this.router.navigate(['/login']);
|
||||||
return Observable.of<Principal>(princ);
|
return observableOf<Principal>(princ);
|
||||||
});
|
}),);
|
||||||
}
|
}
|
||||||
|
|
||||||
public onLogOutSuccess(logoutMessage: any) {
|
public onLogOutSuccess(logoutMessage: any) {
|
||||||
|
|
|
@ -2,17 +2,14 @@ import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { environment } from '../../../../environments/environment';
|
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 { DatasetProfileDefinitionModel } from '../../model/dataset-profile-definition/dataset-profile-definition';
|
||||||
import { DatasetProfileModel } from '../../model/dataset/dataset-profile';
|
import { DatasetProfileModel } from '../../model/dataset/dataset-profile';
|
||||||
import { DatasetWizardModel } from '../../model/dataset/dataset-wizard';
|
import { DatasetWizardModel } from '../../model/dataset/dataset-wizard';
|
||||||
import { DmpModel } from '../../model/dmp/dmp';
|
|
||||||
import { DatasetProfileCriteria } from '../../query/dataset-profile/dataset-profile-criteria';
|
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 { 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()
|
@Injectable()
|
||||||
export class DatasetWizardService {
|
export class DatasetWizardService {
|
||||||
|
@ -70,7 +67,7 @@ export class DatasetWizardService {
|
||||||
return this.http.get<DatasetWizardModel>(this.actionUrl + id + '/unlock', { headers: this.headers });
|
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();
|
const formData: FormData = new FormData();
|
||||||
if (fileList instanceof FileList) {
|
if (fileList instanceof FileList) {
|
||||||
for (let i = 0; i < fileList.length; i++) {
|
for (let i = 0; i < fileList.length; i++) {
|
||||||
|
|
|
@ -2,23 +2,22 @@ import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { environment } from '../../../../environments/environment';
|
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 { DynamicFieldGrantCriteria } from '../../../models/dynamic-field-grant/DynamicFieldGrantCriteria';
|
||||||
import { DataTableData } from '../../model/data-table/data-table-data';
|
import { DataTableData } from '../../model/data-table/data-table-data';
|
||||||
import { DataTableRequest } from '../../model/data-table/data-table-request';
|
import { DataTableRequest } from '../../model/data-table/data-table-request';
|
||||||
|
import { DatasetListingModel } from '../../model/dataset/dataset-listing';
|
||||||
import { DatasetProfileModel } from '../../model/dataset/dataset-profile';
|
import { DatasetProfileModel } from '../../model/dataset/dataset-profile';
|
||||||
|
import { DatasetsToBeFinalized } from '../../model/dataset/datasets-toBeFinalized';
|
||||||
import { DmpModel } from '../../model/dmp/dmp';
|
import { DmpModel } from '../../model/dmp/dmp';
|
||||||
import { DmpListingModel } from '../../model/dmp/dmp-listing';
|
import { DmpListingModel } from '../../model/dmp/dmp-listing';
|
||||||
|
import { DmpOverviewModel } from '../../model/dmp/dmp-overview';
|
||||||
import { DatasetProfileCriteria } from '../../query/dataset-profile/dataset-profile-criteria';
|
import { DatasetProfileCriteria } from '../../query/dataset-profile/dataset-profile-criteria';
|
||||||
import { DmpCriteria } from '../../query/dmp/dmp-criteria';
|
import { DmpCriteria } from '../../query/dmp/dmp-criteria';
|
||||||
|
import { ExploreDmpCriteriaModel } from '../../query/explore-dmp/explore-dmp-criteria';
|
||||||
import { RequestItem } from '../../query/request-item';
|
import { RequestItem } from '../../query/request-item';
|
||||||
import { BaseHttpService } from '../http/base-http.service';
|
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()
|
@Injectable()
|
||||||
export class DmpService {
|
export class DmpService {
|
||||||
|
@ -119,7 +118,7 @@ export class DmpService {
|
||||||
return this.httpClient.get(this.actionUrl + 'rda/' + id, { responseType: 'blob', observe: 'response' });
|
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();
|
const formData: FormData = new FormData();
|
||||||
if (fileList instanceof FileList) {
|
if (fileList instanceof FileList) {
|
||||||
for (let i = 0; i < fileList.length; i++) {
|
for (let i = 0; i < fileList.length; i++) {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
|
import { HttpHeaders } from '@angular/common/http';
|
||||||
import { Injectable } from "@angular/core";
|
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 { environment } from "../../../../environments/environment";
|
||||||
|
import { BaseHttpService } from "../http/base-http.service";
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class EmailConfirmationService {
|
export class EmailConfirmationService {
|
||||||
|
|
|
@ -1,55 +1,57 @@
|
||||||
|
import { HttpClient } from '@angular/common/http';
|
||||||
/**
|
/**
|
||||||
* Created by stefania on 7/17/17.
|
* Created by stefania on 7/17/17.
|
||||||
*/
|
*/
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { Http, Response } from '@angular/http';
|
import { Observable, throwError as observableThrowError } from 'rxjs';
|
||||||
import { Observable } from 'rxjs/Rx';
|
import { catchError, map } from 'rxjs/operators';
|
||||||
import { environment } from '../../../../environments/environment';
|
import { environment } from '../../../../environments/environment';
|
||||||
import { PageHelpContent } from '../../model/help-content/page-help-content';
|
import { PageHelpContent } from '../../model/help-content/page-help-content';
|
||||||
import { CachedContentItem } from './cached-content-item';
|
import { CachedContentItem } from './cached-content-item';
|
||||||
|
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class HelpContentService {
|
export class HelpContentService {
|
||||||
private _helpServiceUrl = environment.HelpService.Url;
|
private _helpServiceUrl = environment.HelpService.Url;
|
||||||
cache = new Map<String, CachedContentItem>();
|
cache = new Map<String, CachedContentItem>();
|
||||||
|
|
||||||
constructor(private http: Http) {
|
constructor(private http: HttpClient) {
|
||||||
}
|
}
|
||||||
|
|
||||||
getActivePageContent(route: string) {
|
// getActivePageContent(route: string) {
|
||||||
if (!this.cache.get(route) || !this.isValidCachedItem(route)) {
|
// if (!this.cache.get(route) || !this.isValidCachedItem(route)) {
|
||||||
return this.http.get(this._helpServiceUrl + '/page/route?q=' + route)
|
// return this.http.get(this._helpServiceUrl + '/page/route?q=' + route).pipe(
|
||||||
.map(res => {
|
// map((res: Response) => {
|
||||||
this.cache.set(route, { timestamp: Date.now(), content: <PageHelpContent>res.json() });
|
// this.cache.set(route, { timestamp: Date.now(), content: res.json() as PageHelpContent });
|
||||||
return res.json();
|
// return res.json();
|
||||||
})
|
// }),
|
||||||
.catch(this.handleError);
|
// catchError(this.handleError));
|
||||||
}
|
// }
|
||||||
return Observable.create(observer => observer.next(this.cache.get(route).content));
|
// return Observable.create(observer => observer.next(this.cache.get(route).content));
|
||||||
}
|
// }
|
||||||
private extractData(res: Response) {
|
// private extractData(res: Response) {
|
||||||
const body = res.json();
|
// const body = res.json();
|
||||||
return body.data || {};
|
// return body. || {};
|
||||||
}
|
// }
|
||||||
private handleError(error: Response | any) {
|
// private handleError(error: Response | any) {
|
||||||
// In a real world app, we might use a remote logging infrastructure
|
// // 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
|
// // We'd also dig deeper into the error to get a better message
|
||||||
let errMsg = '';
|
// let errMsg = '';
|
||||||
if (error instanceof Response) {
|
// if (error instanceof Response) {
|
||||||
const body = error.text() || '';
|
// const body = error.text() || '';
|
||||||
//const err = body.error || JSON.stringify(body);
|
// //const err = body.error || JSON.stringify(body);
|
||||||
errMsg = `${error.status} - ${error.statusText || ''} ${body}`;
|
// errMsg = `${error.status} - ${error.statusText || ''} ${body}`;
|
||||||
} else {
|
// } else {
|
||||||
errMsg = (error.message) ? error.message :
|
// errMsg = (error.message) ? error.message :
|
||||||
error.status ? `${error.status} - ${error.statusText}` : 'Server error';
|
// error.status ? `${error.status} - ${error.statusText}` : 'Server error';
|
||||||
console.error(errMsg); // log to console instead
|
// console.error(errMsg); // log to console instead
|
||||||
}
|
// }
|
||||||
return Observable.throw(errMsg);
|
// return observableThrowError(errMsg);
|
||||||
}
|
// }
|
||||||
|
|
||||||
isValidCachedItem(route) {
|
// isValidCachedItem(route) {
|
||||||
const cachedTimestamp = this.cache.get(route).timestamp;
|
// const cachedTimestamp = this.cache.get(route).timestamp;
|
||||||
const currentTimestamp = Date.now();
|
// const currentTimestamp = Date.now();
|
||||||
if (currentTimestamp - cachedTimestamp > 30000) { return false; } else { return true; }
|
// 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 { HttpClient } from '@angular/common/http';
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
|
@ -39,7 +41,7 @@ export class BaseHttpService {
|
||||||
}
|
}
|
||||||
|
|
||||||
private interceptRepsonse<T>(observable: Observable<Object>): Observable<T> {
|
private interceptRepsonse<T>(observable: Observable<Object>): Observable<T> {
|
||||||
return observable
|
return observable.pipe(
|
||||||
// .catch((errorResponse) => {
|
// .catch((errorResponse) => {
|
||||||
// if (errorResponse.status === 401) {
|
// if (errorResponse.status === 401) {
|
||||||
// this.snackBar.openFromComponent(SnackBarNotificationComponent, {
|
// this.snackBar.openFromComponent(SnackBarNotificationComponent, {
|
||||||
|
@ -69,7 +71,7 @@ export class BaseHttpService {
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// })
|
// })
|
||||||
.map(response => {
|
map(response => {
|
||||||
if (response instanceof Blob) { return response; }
|
if (response instanceof Blob) { return response; }
|
||||||
if (response['statusCode'] === ApiMessageCode.SUCCESS_MESSAGE) {
|
if (response['statusCode'] === ApiMessageCode.SUCCESS_MESSAGE) {
|
||||||
//throw new Error('Request failed');
|
//throw new Error('Request failed');
|
||||||
|
@ -83,6 +85,6 @@ export class BaseHttpService {
|
||||||
} else {
|
} else {
|
||||||
return response['payload'];
|
return response['payload'];
|
||||||
}
|
}
|
||||||
});
|
}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,9 @@ import { FocusMonitor } from '@angular/cdk/a11y';
|
||||||
import { COMMA, ENTER } from '@angular/cdk/keycodes';
|
import { COMMA, ENTER } from '@angular/cdk/keycodes';
|
||||||
import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Optional, Output, Self, ViewChild } from '@angular/core';
|
import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Optional, Output, Self, ViewChild } from '@angular/core';
|
||||||
import { ControlValueAccessor, NgControl } from '@angular/forms';
|
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 { Observable, of as observableOf, Subject } from 'rxjs';
|
||||||
import { debounceTime, distinctUntilChanged, map, mergeMap, startWith, tap } from 'rxjs/operators';
|
import { debounceTime, distinctUntilChanged, map, mergeMap, startWith, tap } from 'rxjs/operators';
|
||||||
import { AutoCompleteGroup } from '../auto-complete-group';
|
import { AutoCompleteGroup } from '../auto-complete-group';
|
||||||
|
@ -87,8 +89,8 @@ export class MultipleAutoCompleteComponent implements OnInit, MatFormFieldContro
|
||||||
}
|
}
|
||||||
private _selectedValue;
|
private _selectedValue;
|
||||||
|
|
||||||
@ViewChild('textInput') textInput: ElementRef;
|
@ViewChild('textInput', { static: true }) textInput: ElementRef;
|
||||||
@ViewChild(MatAutocompleteTrigger) autocomplete: MatAutocompleteTrigger;
|
@ViewChild(MatAutocompleteTrigger, { static: true }) autocomplete: MatAutocompleteTrigger;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private fm: FocusMonitor,
|
private fm: FocusMonitor,
|
||||||
|
|
|
@ -2,7 +2,8 @@ import { FocusMonitor } from '@angular/cdk/a11y';
|
||||||
import { COMMA, ENTER } from '@angular/cdk/keycodes';
|
import { COMMA, ENTER } from '@angular/cdk/keycodes';
|
||||||
import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Optional, Output, Self } from '@angular/core';
|
import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Optional, Output, Self } from '@angular/core';
|
||||||
import { ControlValueAccessor, NgControl } from '@angular/forms';
|
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 { Observable, of as observableOf, Subject } from 'rxjs';
|
||||||
import { debounceTime, distinctUntilChanged, map, mergeMap, startWith, tap } from 'rxjs/operators';
|
import { debounceTime, distinctUntilChanged, map, mergeMap, startWith, tap } from 'rxjs/operators';
|
||||||
import { AutoCompleteGroup } from '../auto-complete-group';
|
import { AutoCompleteGroup } from '../auto-complete-group';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Component, Inject } from '@angular/core';
|
import { Component, Inject } from '@angular/core';
|
||||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
|
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-confirmation-dialog',
|
selector: 'app-confirmation-dialog',
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Component, Inject } from '@angular/core';
|
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';
|
import { FormGroup } from '@angular/forms';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Component, OnInit, Inject } from '@angular/core';
|
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({
|
@Component({
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import { Component, OnInit } from '@angular/core';
|
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 { takeUntil } from 'rxjs/operators';
|
||||||
import { BaseComponent } from '../../core/common/base/base.component';
|
import { BaseComponent } from '../../core/common/base/base.component';
|
||||||
import { UiNotificationService, UiNotificationType, PopupNotification, SnackBarNotification, SnackBarNotificationLevel } from '../../core/services/notification/ui-notification-service';
|
import { UiNotificationService, UiNotificationType, PopupNotification, SnackBarNotification, SnackBarNotificationLevel } from '../../core/services/notification/ui-notification-service';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Component, Inject } from '@angular/core';
|
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';
|
import { PopupNotification } from '../../../core/services/notification/ui-notification-service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Component, Inject } from '@angular/core';
|
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';
|
import { SnackBarNotification } from '../../../core/services/notification/ui-notification-service';
|
||||||
|
|
||||||
@Component({
|
@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 { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
import { FormArray, FormControl, FormGroup } from '@angular/forms';
|
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 { ActivatedRoute, ParamMap, Router } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { map, takeUntil } from 'rxjs/operators';
|
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 { DatasetProfileEnum } from '../../../../core/common/enum/dataset-profile';
|
||||||
import * as FileSaver from 'file-saver';
|
import * as FileSaver from 'file-saver';
|
||||||
import { BreadcrumbItem } from '../../../misc/breadcrumb/definition/breadcrumb-item';
|
import { BreadcrumbItem } from '../../../misc/breadcrumb/definition/breadcrumb-item';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { DatasetStatus } from '../../../../core/common/enum/dataset-status';
|
import { DatasetStatus } from '../../../../core/common/enum/dataset-status';
|
||||||
//import * as data from 'src/assets/resources/skipDisable.json';
|
//import * as data from 'src/assets/resources/skipDisable.json';
|
||||||
|
|
||||||
|
@ -42,7 +44,7 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn
|
||||||
newVersionId: string;
|
newVersionId: string;
|
||||||
dataWizardModel: DatasetWizardModel;
|
dataWizardModel: DatasetWizardModel;
|
||||||
breadCrumbs: Observable<BreadcrumbItem[]>;
|
breadCrumbs: Observable<BreadcrumbItem[]>;
|
||||||
@ViewChild('stepper') stepper: MatHorizontalStepper;
|
@ViewChild('stepper', { static: false }) stepper: MatHorizontalStepper;
|
||||||
viewOnly = false;
|
viewOnly = false;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
@ -88,7 +90,7 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn
|
||||||
},
|
},
|
||||||
error => this.onCallbackError(error)
|
error => this.onCallbackError(error)
|
||||||
);
|
);
|
||||||
this.breadCrumbs = Observable.of([{
|
this.breadCrumbs = observableOf([{
|
||||||
parentComponentName: 'DatasetProfileListingComponent',
|
parentComponentName: 'DatasetProfileListingComponent',
|
||||||
label: this.language.instant('NAV-BAR.TEMPLATE'),
|
label: this.language.instant('NAV-BAR.TEMPLATE'),
|
||||||
url: '/dataset-profiles/' + this.datasetProfileId
|
url: '/dataset-profiles/' + this.datasetProfileId
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { MatDialog } from '@angular/material';
|
import { MatDialog } from '@angular/material/dialog';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
import { takeUntil } from 'rxjs/operators';
|
||||||
import { ValidationErrorModel } from '../../../../../common/forms/validation/error-model/validation-error-model';
|
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';
|
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 { DataSource } from '@angular/cdk/table';
|
||||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
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 { ActivatedRoute, Params, Router } from '@angular/router';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { takeUntil } from 'rxjs/operators';
|
|
||||||
import { BaseComponent } from '../../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../../core/common/base/base.component';
|
||||||
import { DataTableRequest } from '../../../../core/model/data-table/data-table-request';
|
import { DataTableRequest } from '../../../../core/model/data-table/data-table-request';
|
||||||
import { DatasetListingModel } from '../../../../core/model/dataset/dataset-listing';
|
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 {
|
export class DatasetProfileListingComponent extends BaseComponent implements OnInit {
|
||||||
|
|
||||||
@ViewChild(MatPaginator) _paginator: MatPaginator;
|
@ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator;
|
||||||
@ViewChild(MatSort) sort: MatSort;
|
@ViewChild(MatSort, { static: true }) sort: MatSort;
|
||||||
@ViewChild(DatasetProfileCriteriaComponent) criteria: DatasetProfileCriteriaComponent;
|
@ViewChild(DatasetProfileCriteriaComponent, { static: true }) criteria: DatasetProfileCriteriaComponent;
|
||||||
|
|
||||||
breadCrumbs: Observable<BreadcrumbItem[]>;
|
breadCrumbs: Observable<BreadcrumbItem[]>;
|
||||||
dataSource: DatasetDataSource | null;
|
dataSource: DatasetDataSource | null;
|
||||||
|
@ -70,7 +73,7 @@ export class DatasetProfileListingComponent extends BaseComponent implements OnI
|
||||||
this.criteria.setCriteria(this.getDefaultCriteria());
|
this.criteria.setCriteria(this.getDefaultCriteria());
|
||||||
this.refresh();
|
this.refresh();
|
||||||
this.criteria.setRefreshCallback(() => this.refresh());
|
this.criteria.setRefreshCallback(() => this.refresh());
|
||||||
this.breadCrumbs = Observable.of([{
|
this.breadCrumbs = observableOf([{
|
||||||
parentComponentName: null,
|
parentComponentName: null,
|
||||||
label: this.language.instant('NAV-BAR.DATASET-TEMPLATES'),
|
label: this.language.instant('NAV-BAR.DATASET-TEMPLATES'),
|
||||||
url: '/dataset-profiles'
|
url: '/dataset-profiles'
|
||||||
|
@ -80,7 +83,7 @@ export class DatasetProfileListingComponent extends BaseComponent implements OnI
|
||||||
}
|
}
|
||||||
|
|
||||||
setDmpTitle(dmpId: String) {
|
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))
|
.pipe(takeUntil(this._destroyed))
|
||||||
.subscribe(data => {
|
.subscribe(data => {
|
||||||
this.titlePrefix = data.label;
|
this.titlePrefix = data.label;
|
||||||
|
@ -140,9 +143,9 @@ export class DatasetDataSource extends DataSource<DatasetListingModel> {
|
||||||
//this._sort.matSortChange
|
//this._sort.matSortChange
|
||||||
];
|
];
|
||||||
|
|
||||||
return Observable.merge(...displayDataChanges)
|
return observableMerge(...displayDataChanges).pipe(
|
||||||
.startWith(null)
|
startWith(null),
|
||||||
.switchMap(() => {
|
switchMap(() => {
|
||||||
const startIndex = this._paginator.pageIndex * this._paginator.pageSize;
|
const startIndex = this._paginator.pageIndex * this._paginator.pageSize;
|
||||||
let fields: Array<string> = new Array();
|
let fields: Array<string> = new Array();
|
||||||
if (this._sort.active) { fields = this._sort.direction === 'asc' ? ['+' + this._sort.active] : ['-' + this._sort.active]; }
|
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;
|
request.criteria.allVersions = true;
|
||||||
}
|
}
|
||||||
return this._service.getPaged(request);
|
return this._service.getPaged(request);
|
||||||
})
|
}),
|
||||||
/*.catch((error: any) => {
|
/*.catch((error: any) => {
|
||||||
this._snackBar.openFromComponent(SnackBarNotificationComponent, {
|
this._snackBar.openFromComponent(SnackBarNotificationComponent, {
|
||||||
data: { message: 'GENERAL.SNACK-BAR.FORMS-BAD-REQUEST', language: this._languageService },
|
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);
|
//this._criteria.criteria.onCallbackError(error);
|
||||||
return Observable.of(null);
|
return Observable.of(null);
|
||||||
})*/
|
})*/
|
||||||
.map(result => {
|
map(result => {
|
||||||
return result;
|
return result;
|
||||||
})
|
}),
|
||||||
.map(result => {
|
map(result => {
|
||||||
if (!result) { return []; }
|
if (!result) { return []; }
|
||||||
if (this._paginator.pageIndex === 0) { this.totalCount = result.totalCount; }
|
if (this._paginator.pageIndex === 0) { this.totalCount = result.totalCount; }
|
||||||
return result.data;
|
return result.data;
|
||||||
});
|
}),);
|
||||||
}
|
}
|
||||||
|
|
||||||
disconnect() {
|
disconnect() {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component, Inject, OnInit } from '@angular/core';
|
import { Component, Inject, OnInit } from '@angular/core';
|
||||||
import { FormGroup } from '@angular/forms';
|
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 { takeUntil } from 'rxjs/operators';
|
||||||
import { BaseComponent } from '../../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../../core/common/base/base.component';
|
||||||
import { DatasetProfileService } from '../../../../core/services/dataset-profile/dataset-profile.service';
|
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 { AfterViewInit, Component, OnInit } from '@angular/core';
|
||||||
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
|
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
|
||||||
import { ActivatedRoute, Params, Router } from '@angular/router';
|
import { ActivatedRoute, Params, Router } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import * as FileSaver from 'file-saver';
|
import * as FileSaver from 'file-saver';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
|
||||||
import { environment } from '../../../../../environments/environment';
|
import { environment } from '../../../../../environments/environment';
|
||||||
import { ValidationErrorModel } from '../../../../common/forms/validation/error-model/validation-error-model';
|
import { ValidationErrorModel } from '../../../../common/forms/validation/error-model/validation-error-model';
|
||||||
import { BaseComponent } from '../../../../core/common/base/base.component';
|
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 { EnumUtils } from '../../../../core/services/utilities/enum-utils.service';
|
||||||
import { DmpProfileEditorModel, DmpProfileFieldEditorModel } from './dmp-profile-editor.model';
|
import { DmpProfileEditorModel, DmpProfileFieldEditorModel } from './dmp-profile-editor.model';
|
||||||
import { BreadcrumbItem } from '../../../misc/breadcrumb/definition/breadcrumb-item';
|
import { BreadcrumbItem } from '../../../misc/breadcrumb/definition/breadcrumb-item';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { DmpProfileExternalAutoCompleteFieldDataEditorModel } from './external-autocomplete/dmp-profile-external-autocomplete-field-editor.model';
|
import { DmpProfileExternalAutoCompleteFieldDataEditorModel } from './external-autocomplete/dmp-profile-external-autocomplete-field-editor.model';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
@ -53,7 +55,7 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie
|
||||||
|
|
||||||
if (this.dmpProfileId != null) {
|
if (this.dmpProfileId != null) {
|
||||||
this.isNew = false;
|
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))
|
.pipe(takeUntil(this._destroyed))
|
||||||
.subscribe(data => {
|
.subscribe(data => {
|
||||||
this.dmpProfileModel = new DmpProfileEditorModel().fromModel(data);
|
this.dmpProfileModel = new DmpProfileEditorModel().fromModel(data);
|
||||||
|
@ -62,7 +64,7 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie
|
||||||
this.formGroup.disable();
|
this.formGroup.disable();
|
||||||
this.viewOnly = true
|
this.viewOnly = true
|
||||||
}
|
}
|
||||||
this.breadCrumbs = Observable.of([{
|
this.breadCrumbs = observableOf([{
|
||||||
parentComponentName: 'DmpProfileListingComponent',
|
parentComponentName: 'DmpProfileListingComponent',
|
||||||
label: this.language.instant('NAV-BAR.TEMPLATE'),
|
label: this.language.instant('NAV-BAR.TEMPLATE'),
|
||||||
url: '/dmp-profiles/' + this.dmpProfileId
|
url: '/dmp-profiles/' + this.dmpProfileId
|
||||||
|
@ -74,7 +76,7 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie
|
||||||
this.formGroup = this.dmpProfileModel.buildForm();
|
this.formGroup = this.dmpProfileModel.buildForm();
|
||||||
this.addField();
|
this.addField();
|
||||||
});
|
});
|
||||||
this.breadCrumbs = Observable.of([{
|
this.breadCrumbs = observableOf([{
|
||||||
parentComponentName: 'DmpProfileListingComponent',
|
parentComponentName: 'DmpProfileListingComponent',
|
||||||
label: this.language.instant('NAV-BAR.TEMPLATE'),
|
label: this.language.instant('NAV-BAR.TEMPLATE'),
|
||||||
url: '/dmp-profiles/' + this.dmpProfileId
|
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';
|
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 { DmpProfileCriteria } from '../../../../../core/query/dmp/dmp-profile-criteria';
|
||||||
import { BaseCriteriaComponent } from '../../../../misc/criteria/base-criteria.component';
|
import { BaseCriteriaComponent } from '../../../../misc/criteria/base-criteria.component';
|
||||||
import { DialodConfirmationUploadDmpProfiles } from './dialog-confirmation-upload-profile/dialog-confirmation-upload-profiles.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 { TranslateService } from '@ngx-translate/core';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
import { takeUntil } from 'rxjs/operators';
|
||||||
import { DmpProfileService } from '../../../../../core/services/dmp/dmp-profile.service';
|
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 { DataSource } from '@angular/cdk/table';
|
||||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
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 { ActivatedRoute, Params, Router } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { takeUntil } from 'rxjs/operators';
|
|
||||||
import { BaseComponent } from '../../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../../core/common/base/base.component';
|
||||||
import { DmpProfileListing } from '../../../../core/model/dmp-profile/dmp-profile-listing';
|
import { DmpProfileListing } from '../../../../core/model/dmp-profile/dmp-profile-listing';
|
||||||
import { DmpProfileCriteria } from '../../../../core/query/dmp/dmp-profile-criteria';
|
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 {
|
export class DmpProfileListingComponent extends BaseComponent implements OnInit {
|
||||||
|
|
||||||
@ViewChild(MatPaginator) _paginator: MatPaginator;
|
@ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator;
|
||||||
@ViewChild(MatSort) sort: MatSort;
|
@ViewChild(MatSort, { static: true }) sort: MatSort;
|
||||||
@ViewChild(DmpProfileCriteriaComponent) criteria: DmpProfileCriteriaComponent;
|
@ViewChild(DmpProfileCriteriaComponent, { static: true }) criteria: DmpProfileCriteriaComponent;
|
||||||
|
|
||||||
dataSource: DatasetDataSource | null;
|
dataSource: DatasetDataSource | null;
|
||||||
displayedColumns: String[] = ['label', 'status', 'created'];
|
displayedColumns: String[] = ['label', 'status', 'created'];
|
||||||
|
@ -54,7 +58,7 @@ export class DmpProfileListingComponent extends BaseComponent implements OnInit
|
||||||
this.criteria.setCriteria(this.getDefaultCriteria());
|
this.criteria.setCriteria(this.getDefaultCriteria());
|
||||||
this.refresh();
|
this.refresh();
|
||||||
this.criteria.setRefreshCallback(() => this.refresh());
|
this.criteria.setRefreshCallback(() => this.refresh());
|
||||||
this.breadCrumbs = Observable.of([{
|
this.breadCrumbs = observableOf([{
|
||||||
parentComponentName: null,
|
parentComponentName: null,
|
||||||
label: this.languageService.instant('NAV-BAR.DMP-TEMPLATES'),
|
label: this.languageService.instant('NAV-BAR.DMP-TEMPLATES'),
|
||||||
url: '/dmp-profiles'
|
url: '/dmp-profiles'
|
||||||
|
@ -101,16 +105,16 @@ export class DatasetDataSource extends DataSource<DmpProfileListing> {
|
||||||
//this._sort.matSortChange
|
//this._sort.matSortChange
|
||||||
];
|
];
|
||||||
|
|
||||||
return Observable.merge(...displayDataChanges)
|
return observableMerge(...displayDataChanges).pipe(
|
||||||
.startWith(null)
|
startWith(null),
|
||||||
.switchMap(() => {
|
switchMap(() => {
|
||||||
const startIndex = this._paginator.pageIndex * this._paginator.pageSize;
|
const startIndex = this._paginator.pageIndex * this._paginator.pageSize;
|
||||||
let fields: Array<string> = new Array();
|
let fields: Array<string> = new Array();
|
||||||
if (this._sort.active) { fields = this._sort.direction === 'asc' ? ['+' + this._sort.active] : ['-' + this._sort.active]; }
|
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 });
|
const request = new DataTableRequest<DmpProfileCriteria>(startIndex, this._paginator.pageSize, { fields: fields });
|
||||||
request.criteria = this._criteria.criteria;
|
request.criteria = this._criteria.criteria;
|
||||||
return this._service.getPaged(request);
|
return this._service.getPaged(request);
|
||||||
})
|
}),
|
||||||
/*.catch((error: any) => {
|
/*.catch((error: any) => {
|
||||||
this._snackBar.openFromComponent(SnackBarNotificationComponent, {
|
this._snackBar.openFromComponent(SnackBarNotificationComponent, {
|
||||||
data: { message: 'GENERAL.SNACK-BAR.FORMS-BAD-REQUEST', language: this._languageService },
|
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);
|
//this._criteria.criteria.onCallbackError(error);
|
||||||
return Observable.of(null);
|
return Observable.of(null);
|
||||||
})*/
|
})*/
|
||||||
.map(result => {
|
map(result => {
|
||||||
return result;
|
return result;
|
||||||
})
|
}),
|
||||||
.map(result => {
|
map(result => {
|
||||||
if (!result) { return []; }
|
if (!result) { return []; }
|
||||||
if (this._paginator.pageIndex === 0) { this.totalCount = result.totalCount; }
|
if (this._paginator.pageIndex === 0) { this.totalCount = result.totalCount; }
|
||||||
return result.data;
|
return result.data;
|
||||||
});
|
}),);
|
||||||
}
|
}
|
||||||
|
|
||||||
disconnect() {
|
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 { DataSource } from '@angular/cdk/table';
|
||||||
import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';
|
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 { TranslateService } from '@ngx-translate/core';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { UserListingModel } from '../../../../core/model/user/user-listing';
|
import { UserListingModel } from '../../../../core/model/user/user-listing';
|
||||||
import { UserCriteria } from '../../../../core/query/user/user-criteria';
|
import { UserCriteria } from '../../../../core/query/user/user-criteria';
|
||||||
import { UserService } from '../../../../core/services/user/user.service';
|
import { UserService } from '../../../../core/services/user/user.service';
|
||||||
|
@ -41,28 +46,28 @@ export class UsersDataSource extends DataSource<UserListingModel> {
|
||||||
// this._paginator.pageIndex = 0;
|
// this._paginator.pageIndex = 0;
|
||||||
//})
|
//})
|
||||||
|
|
||||||
return Observable.merge(...displayDataChanges)
|
return observableMerge(...displayDataChanges).pipe(
|
||||||
.startWith(null)
|
startWith(null),
|
||||||
.switchMap(() => {
|
switchMap(() => {
|
||||||
const startIndex = this._paginator.pageIndex * this._paginator.pageSize;
|
const startIndex = this._paginator.pageIndex * this._paginator.pageSize;
|
||||||
let fields: Array<string> = new Array();
|
let fields: Array<string> = new Array();
|
||||||
if (this._sort.active) { fields = this._sort.direction === 'asc' ? ['+' + this._sort.active] : ['-' + this._sort.active]; }
|
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 });
|
const request = new DataTableRequest<UserCriteria>(startIndex, this._paginator.pageSize, { fields: fields });
|
||||||
request.criteria = this._criteria.getFormData();
|
request.criteria = this._criteria.getFormData();
|
||||||
return this._service.getPaged(request);
|
return this._service.getPaged(request);
|
||||||
})
|
}),
|
||||||
.catch((error: any) => {
|
catchError((error: any) => {
|
||||||
this._snackBar.openFromComponent(SnackBarNotificationComponent, {
|
this._snackBar.openFromComponent(SnackBarNotificationComponent, {
|
||||||
data: { message: 'GENERAL.SNACK-BAR.FORMS-BAD-REQUEST', language: this._languageService },
|
data: { message: 'GENERAL.SNACK-BAR.FORMS-BAD-REQUEST', language: this._languageService },
|
||||||
duration: 3000,
|
duration: 3000,
|
||||||
});
|
});
|
||||||
this._criteria.onCallbackError(error);
|
this._criteria.onCallbackError(error);
|
||||||
return Observable.of(null);
|
return observableOf(null);
|
||||||
})
|
}),
|
||||||
.map(result => {
|
map(result => {
|
||||||
return result;
|
return result;
|
||||||
})
|
}),
|
||||||
.map(result => {
|
map(result => {
|
||||||
if (!result) { return []; }
|
if (!result) { return []; }
|
||||||
if (this._paginator.pageIndex === 0) { this.totalCount = result.totalCount; }
|
if (this._paginator.pageIndex === 0) { this.totalCount = result.totalCount; }
|
||||||
//result.data.forEach((element: any) => {
|
//result.data.forEach((element: any) => {
|
||||||
|
@ -75,7 +80,7 @@ export class UsersDataSource extends DataSource<UserListingModel> {
|
||||||
// element.roles = roles;
|
// element.roles = roles;
|
||||||
//});
|
//});
|
||||||
return result.data;
|
return result.data;
|
||||||
});
|
}),);
|
||||||
}
|
}
|
||||||
|
|
||||||
disconnect() {
|
disconnect() {
|
||||||
|
@ -90,9 +95,9 @@ export class UsersDataSource extends DataSource<UserListingModel> {
|
||||||
})
|
})
|
||||||
export class UserListingComponent implements OnInit, AfterViewInit {
|
export class UserListingComponent implements OnInit, AfterViewInit {
|
||||||
|
|
||||||
@ViewChild(MatPaginator) _paginator: MatPaginator;
|
@ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator;
|
||||||
@ViewChild(MatSort) sort: MatSort;
|
@ViewChild(MatSort, { static: true }) sort: MatSort;
|
||||||
@ViewChild(UserCriteriaComponent) criteria: UserCriteriaComponent;
|
@ViewChild(UserCriteriaComponent, { static: true }) criteria: UserCriteriaComponent;
|
||||||
|
|
||||||
breadCrumbs: Observable<BreadcrumbItem[]>;
|
breadCrumbs: Observable<BreadcrumbItem[]>;
|
||||||
dataSource: UsersDataSource | null;
|
dataSource: UsersDataSource | null;
|
||||||
|
@ -107,7 +112,7 @@ export class UserListingComponent implements OnInit, AfterViewInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.breadCrumbs = Observable.of([{
|
this.breadCrumbs = observableOf([{
|
||||||
parentComponentName: null,
|
parentComponentName: null,
|
||||||
label: this.languageService.instant('NAV-BAR.USERS-BREADCRUMB'),
|
label: this.languageService.instant('NAV-BAR.USERS-BREADCRUMB'),
|
||||||
url: "/users"
|
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 { Component, OnInit } from '@angular/core';
|
||||||
import { FormControl } from '@angular/forms';
|
import { FormControl } from '@angular/forms';
|
||||||
import { Router, ActivatedRoute, Params } from '@angular/router';
|
import { Router, ActivatedRoute, Params } from '@angular/router';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
|
||||||
import { BaseComponent } from '../../core/common/base/base.component';
|
import { BaseComponent } from '../../core/common/base/base.component';
|
||||||
import { RecentActivityType } from '../../core/common/enum/recent-activity-type';
|
import { RecentActivityType } from '../../core/common/enum/recent-activity-type';
|
||||||
import { DashboardStatisticsModel } from '../../core/model/dashboard/dashboard-statistics-model';
|
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 { ExploreDatasetCriteriaModel } from '../../core/query/explore-dataset/explore-dataset-criteria';
|
||||||
import { BreadcrumbItem } from '../misc/breadcrumb/definition/breadcrumb-item';
|
import { BreadcrumbItem } from '../misc/breadcrumb/definition/breadcrumb-item';
|
||||||
import { IBreadCrumbComponent } from '../misc/breadcrumb/definition/IBreadCrumbComponent';
|
import { IBreadCrumbComponent } from '../misc/breadcrumb/definition/IBreadCrumbComponent';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-dashboard',
|
selector: 'app-dashboard',
|
||||||
|
@ -90,7 +92,7 @@ export class DashboardComponent extends BaseComponent implements OnInit, IBreadC
|
||||||
// };
|
// };
|
||||||
|
|
||||||
const breadCrumbs = [];
|
const breadCrumbs = [];
|
||||||
this.breadCrumbs = Observable.of(breadCrumbs);
|
this.breadCrumbs = observableOf(breadCrumbs);
|
||||||
|
|
||||||
if (!this.isAuthenticated()) {
|
if (!this.isAuthenticated()) {
|
||||||
this.dashboardService.getStatistics()
|
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);
|
return this.searchBarService.search(x);
|
||||||
});
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
public isAuthenticated(): boolean {
|
public isAuthenticated(): boolean {
|
||||||
|
|
|
@ -2,7 +2,7 @@ import { BaseComponent } from "../../../core/common/base/base.component";
|
||||||
import { OnInit, Component } from "@angular/core";
|
import { OnInit, Component } from "@angular/core";
|
||||||
import { Router, ActivatedRoute } from "@angular/router";
|
import { Router, ActivatedRoute } from "@angular/router";
|
||||||
import { TranslateService } from "@ngx-translate/core";
|
import { TranslateService } from "@ngx-translate/core";
|
||||||
import { MatSnackBar } from "@angular/material";
|
import { MatSnackBar } from "@angular/material/snack-bar";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-quick-wizard-create-add-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 { Principal } from '../../../core/model/auth/Principal';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { ConfirmationDialogComponent } from '../../../library/confirmation-dialog/confirmation-dialog.component';
|
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 { ExportMethodDialogComponent } from '../../../library/export-method-dialog/export-method-dialog.component';
|
||||||
import { BaseComponent } from '../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../core/common/base/base.component';
|
||||||
import { UiNotificationService, SnackBarNotificationLevel } from '../../../core/services/notification/ui-notification-service';
|
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 { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
import { FormBuilder, FormGroup, FormArray } from '@angular/forms';
|
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 { Router } from '@angular/router';
|
||||||
import { BaseComponent } from '../../core/common/base/base.component';
|
import { BaseComponent } from '../../core/common/base/base.component';
|
||||||
import { QuickWizardService } from '../../core/services/quick-wizard/quick-wizard.service';
|
import { QuickWizardService } from '../../core/services/quick-wizard/quick-wizard.service';
|
||||||
import { DatasetCreateWizardModel } from './dataset-create-wizard.model';
|
import { DatasetCreateWizardModel } from './dataset-create-wizard.model';
|
||||||
import { IBreadCrumbComponent } from '../misc/breadcrumb/definition/IBreadCrumbComponent';
|
import { IBreadCrumbComponent } from '../misc/breadcrumb/definition/IBreadCrumbComponent';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { takeUntil } from 'rxjs/operators';
|
import { takeUntil } from 'rxjs/operators';
|
||||||
import { BreadcrumbItem } from '../misc/breadcrumb/definition/breadcrumb-item';
|
import { BreadcrumbItem } from '../misc/breadcrumb/definition/breadcrumb-item';
|
||||||
import { SnackBarNotificationLevel, UiNotificationService } from '../../core/services/notification/ui-notification-service';
|
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 {
|
export class DatasetCreateWizard extends BaseComponent implements OnInit, IBreadCrumbComponent {
|
||||||
breadCrumbs: Observable<BreadcrumbItem[]>;
|
breadCrumbs: Observable<BreadcrumbItem[]>;
|
||||||
@ViewChild(DatasetEditorWizardComponent) datasetEditorWizardComponent: DatasetEditorWizardComponent;
|
@ViewChild(DatasetEditorWizardComponent, { static: false }) datasetEditorWizardComponent: DatasetEditorWizardComponent;
|
||||||
isLinear = false;
|
isLinear = false;
|
||||||
isNew = true;
|
isNew = true;
|
||||||
formGroup: FormGroup;
|
formGroup: FormGroup;
|
||||||
|
|
||||||
|
|
||||||
datasetCreateWizardModel: DatasetCreateWizardModel;
|
datasetCreateWizardModel: DatasetCreateWizardModel;
|
||||||
@ViewChild('stepper') stepper: MatStepper;
|
@ViewChild('stepper', { static: true }) stepper: MatStepper;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private router: Router,
|
private router: Router,
|
||||||
|
@ -46,7 +48,7 @@ export class DatasetCreateWizard extends BaseComponent implements OnInit, IBread
|
||||||
this.datasetCreateWizardModel = new DatasetCreateWizardModel();
|
this.datasetCreateWizardModel = new DatasetCreateWizardModel();
|
||||||
this.formGroup = this.datasetCreateWizardModel.buildForm();
|
this.formGroup = this.datasetCreateWizardModel.buildForm();
|
||||||
this.language.get('NAV-BAR.DATASET-DESCRIPTION-WIZARD').pipe(takeUntil(this._destroyed)).subscribe(x => {
|
this.language.get('NAV-BAR.DATASET-DESCRIPTION-WIZARD').pipe(takeUntil(this._destroyed)).subscribe(x => {
|
||||||
this.breadCrumbs = Observable.of([
|
this.breadCrumbs = observableOf([
|
||||||
{
|
{
|
||||||
parentComponentName: 'Dashboard',
|
parentComponentName: 'Dashboard',
|
||||||
label: x,
|
label: x,
|
||||||
|
|
|
@ -1,25 +1,23 @@
|
||||||
import { Component, OnInit, ViewChild, Input } from '@angular/core';
|
|
||||||
import { BaseComponent } from '../../../core/common/base/base.component';
|
import { Component, Input, OnInit } from '@angular/core';
|
||||||
import { IBreadCrumbComponent } from '../../misc/breadcrumb/definition/IBreadCrumbComponent';
|
import { FormArray, FormControl, FormGroup } from '@angular/forms';
|
||||||
|
import { MatStepper } from '@angular/material/stepper';
|
||||||
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { BreadcrumbItem } from '../../misc/breadcrumb/definition/breadcrumb-item';
|
import { map, takeUntil } from 'rxjs/operators';
|
||||||
import { MatStepper, MatSnackBar } from '@angular/material';
|
import { BaseComponent } from '../../../core/common/base/base.component';
|
||||||
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 { DataTableRequest } from '../../../core/model/data-table/data-table-request';
|
|
||||||
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 { 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 { 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 { 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 { DmpService } from '../../../core/services/dmp/dmp.service';
|
||||||
|
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({
|
@Component({
|
||||||
selector: 'dataset-dmp-selector-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.status = DmpStatus.Draft;
|
||||||
dmpDataTableRequest.criteria.like = query;
|
dmpDataTableRequest.criteria.like = query;
|
||||||
|
|
||||||
return this.dmpService.getPaged(dmpDataTableRequest, "autocomplete")
|
return this.dmpService.getPaged(dmpDataTableRequest, "autocomplete").pipe(
|
||||||
.map(y => y.data);
|
map(y => y.data));
|
||||||
}
|
}
|
||||||
|
|
||||||
loadDatasetProfiles() {
|
loadDatasetProfiles() {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
|
|
||||||
|
import {map} from 'rxjs/operators';
|
||||||
import { Component } from "@angular/core";
|
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 { SingleAutoCompleteConfiguration } from "../../../../library/auto-complete/single/single-auto-complete-configuration";
|
||||||
import { Observable } from "rxjs";
|
import { Observable } from "rxjs";
|
||||||
import { DataTableRequest } from "../../../../core/model/data-table/data-table-request";
|
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 });
|
const dmpDataTableRequest: DataTableRequest<DmpCriteria> = new DataTableRequest(0, null, { fields: fields });
|
||||||
dmpDataTableRequest.criteria = new DmpCriteria();
|
dmpDataTableRequest.criteria = new DmpCriteria();
|
||||||
dmpDataTableRequest.criteria.like = query;
|
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() {
|
datasetProfileValidate() {
|
||||||
return this.dmpService.getSingle(this.data.formControl.value.id).map(result => result as DmpModel)
|
return this.dmpService.getSingle(this.data.formControl.value.id).pipe(map(result => result as DmpModel),
|
||||||
.map(result => {
|
map(result => {
|
||||||
this.dmpModel = result
|
this.dmpModel = result
|
||||||
this.dmpModel.profiles.forEach((element) => {
|
this.dmpModel.profiles.forEach((element) => {
|
||||||
if (element.id == this.data.datasetProfileId) {
|
if (element.id == this.data.datasetProfileId) {
|
||||||
this.data.datasetProfileExist = true;
|
this.data.datasetProfileExist = true;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
});
|
}),);
|
||||||
}
|
}
|
||||||
|
|
||||||
getErrorMessage() {
|
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 { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
import { FormControl, FormGroup } from '@angular/forms';
|
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 { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import * as FileSaver from 'file-saver';
|
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 { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
|
||||||
import { BaseComponent } from '../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../core/common/base/base.component';
|
||||||
import { DatasetStatus } from '../../../core/common/enum/dataset-status';
|
import { DatasetStatus } from '../../../core/common/enum/dataset-status';
|
||||||
|
@ -40,7 +44,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
|
||||||
|
|
||||||
breadCrumbs: Observable<BreadcrumbItem[]>;
|
breadCrumbs: Observable<BreadcrumbItem[]>;
|
||||||
viewOnly = false;
|
viewOnly = false;
|
||||||
@ViewChild('stepper') stepper: MatStepper;
|
@ViewChild('stepper', { static: false }) stepper: MatStepper;
|
||||||
editMode = false;
|
editMode = false;
|
||||||
publicMode = false;
|
publicMode = false;
|
||||||
|
|
||||||
|
@ -109,7 +113,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
|
||||||
.subscribe(data => {
|
.subscribe(data => {
|
||||||
this.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data);
|
this.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data);
|
||||||
this.needsUpdate();
|
this.needsUpdate();
|
||||||
this.breadCrumbs = Observable.of([
|
this.breadCrumbs = observableOf([
|
||||||
{
|
{
|
||||||
parentComponentName: null,
|
parentComponentName: null,
|
||||||
label: this.datasetWizardModel.label,
|
label: this.datasetWizardModel.label,
|
||||||
|
@ -140,11 +144,11 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
|
||||||
error => {
|
error => {
|
||||||
this.uiNotificationService.snackBarNotification(this.language.instant('DATASET-WIZARD.MESSAGES.DATAESET-NOT-FOUND'), SnackBarNotificationLevel.Error);
|
this.uiNotificationService.snackBarNotification(this.language.instant('DATASET-WIZARD.MESSAGES.DATAESET-NOT-FOUND'), SnackBarNotificationLevel.Error);
|
||||||
this.router.navigate(['/plans']);
|
this.router.navigate(['/plans']);
|
||||||
return Observable.of(null);
|
return observableOf(null);
|
||||||
});
|
});
|
||||||
} else if (dmpId != null) {
|
} else if (dmpId != null) {
|
||||||
this.isNew = true;
|
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))
|
.pipe(takeUntil(this._destroyed))
|
||||||
.subscribe(data => {
|
.subscribe(data => {
|
||||||
this.datasetWizardModel = new DatasetWizardEditorModel();
|
this.datasetWizardModel = new DatasetWizardEditorModel();
|
||||||
|
@ -158,7 +162,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
|
||||||
this.registerFormListeners();
|
this.registerFormListeners();
|
||||||
// this.availableProfiles = data.profiles;
|
// this.availableProfiles = data.profiles;
|
||||||
|
|
||||||
this.breadCrumbs = Observable.of([
|
this.breadCrumbs = observableOf([
|
||||||
{
|
{
|
||||||
parentComponentName: null,
|
parentComponentName: null,
|
||||||
label: this.language.instant('NAV-BAR.MY-DATASET-DESCRIPTIONS'),
|
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.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data);
|
||||||
this.formGroup = this.datasetWizardModel.buildForm();
|
this.formGroup = this.datasetWizardModel.buildForm();
|
||||||
this.formGroup.get('id').setValue(null);
|
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))
|
.pipe(takeUntil(this._destroyed))
|
||||||
.subscribe(data => {
|
.subscribe(data => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
@ -194,7 +198,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
|
||||||
this.formGroup.get('dmp').setValue(this.datasetWizardModel.dmp);
|
this.formGroup.get('dmp').setValue(this.datasetWizardModel.dmp);
|
||||||
|
|
||||||
this.loadDatasetProfiles();
|
this.loadDatasetProfiles();
|
||||||
this.breadCrumbs = Observable.of([
|
this.breadCrumbs = observableOf([
|
||||||
{
|
{
|
||||||
parentComponentName: null,
|
parentComponentName: null,
|
||||||
label: this.language.instant('NAV-BAR.MY-DATASET-DESCRIPTIONS'),
|
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
|
} else if (this.publicId != null) { // For Finalized -> Public Datasets
|
||||||
this.isNew = false;
|
this.isNew = false;
|
||||||
this.datasetWizardService.getSinglePublic(this.publicId)
|
this.datasetWizardService.getSinglePublic(this.publicId)
|
||||||
.pipe(takeUntil(this._destroyed))
|
.pipe(takeUntil(this._destroyed)).pipe(
|
||||||
.catch((error: any) => {
|
catchError((error: any) => {
|
||||||
this.uiNotificationService.snackBarNotification(error.error.message, SnackBarNotificationLevel.Error);
|
this.uiNotificationService.snackBarNotification(error.error.message, SnackBarNotificationLevel.Error);
|
||||||
this.router.navigate(['/explore']);
|
this.router.navigate(['/explore']);
|
||||||
return Observable.of(null);
|
return observableOf(null);
|
||||||
})
|
}))
|
||||||
.subscribe(data => {
|
.subscribe(data => {
|
||||||
if (data) {
|
if (data) {
|
||||||
this.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data);
|
this.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data);
|
||||||
|
@ -246,7 +250,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
|
||||||
const breadcrumbs = [];
|
const breadcrumbs = [];
|
||||||
breadcrumbs.push({ parentComponentName: null, label: this.language.instant('NAV-BAR.PUBLIC DATASETS'), url: '/explore' });
|
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 });
|
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;
|
this.publicMode = true;
|
||||||
|
@ -256,7 +260,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
|
||||||
.subscribe(data => {
|
.subscribe(data => {
|
||||||
this.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data);
|
this.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data);
|
||||||
this.needsUpdate();
|
this.needsUpdate();
|
||||||
this.breadCrumbs = Observable.of([
|
this.breadCrumbs = observableOf([
|
||||||
{
|
{
|
||||||
parentComponentName: null,
|
parentComponentName: null,
|
||||||
label: this.language.instant('NAV-BAR.MY-DATASET-DESCRIPTIONS'),
|
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.
|
//if (this.viewOnly) { this.formGroup.disable(); } // For future use, to make Dataset edit like DMP.
|
||||||
this.registerFormListeners();
|
this.registerFormListeners();
|
||||||
this.dmpValueChanged(null);
|
this.dmpValueChanged(null);
|
||||||
this.breadCrumbs = Observable.of([
|
this.breadCrumbs = observableOf([
|
||||||
{
|
{
|
||||||
parentComponentName: null,
|
parentComponentName: null,
|
||||||
label: this.language.instant('DATASET-LISTING.ACTIONS.CREATE-NEW').toUpperCase(),
|
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 });
|
const dmpDataTableRequest: DataTableRequest<DmpCriteria> = new DataTableRequest(0, null, { fields: fields });
|
||||||
dmpDataTableRequest.criteria = new DmpCriteria();
|
dmpDataTableRequest.criteria = new DmpCriteria();
|
||||||
dmpDataTableRequest.criteria.like = query;
|
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() {
|
loadDatasetProfiles() {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component, Input, OnInit } from '@angular/core';
|
import { Component, Input, OnInit } from '@angular/core';
|
||||||
import { FormArray, FormGroup } from '@angular/forms';
|
import { FormArray, FormGroup } from '@angular/forms';
|
||||||
import { MatDialog } from '@angular/material';
|
import { MatDialog } from '@angular/material/dialog';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
import { takeUntil } from 'rxjs/operators';
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component, Inject, OnInit } from '@angular/core';
|
import { Component, Inject, OnInit } from '@angular/core';
|
||||||
import { FormGroup } from '@angular/forms';
|
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 { takeUntil } from 'rxjs/operators';
|
||||||
import { BaseComponent } from '../../../../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../../../../core/common/base/base.component';
|
||||||
import { ExternalDataRepositoryService } from '../../../../../../core/services/external-sources/data-repository/extternal-data-repository.service';
|
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 { Component, Inject, OnInit } from '@angular/core';
|
||||||
import { FormGroup } from '@angular/forms';
|
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 { takeUntil } from 'rxjs/operators';
|
||||||
import { BaseComponent } from '../../../../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../../../../core/common/base/base.component';
|
||||||
import { ExternalDatasetService } from '../../../../../../core/services/external-sources/dataset/external-dataset.service';
|
import { ExternalDatasetService } from '../../../../../../core/services/external-sources/dataset/external-dataset.service';
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component, Inject, OnInit } from '@angular/core';
|
import { Component, Inject, OnInit } from '@angular/core';
|
||||||
import { FormGroup } from '@angular/forms';
|
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 { takeUntil } from 'rxjs/operators';
|
||||||
import { BaseComponent } from '../../../../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../../../../core/common/base/base.component';
|
||||||
import { ExternalRegistryService } from '../../../../../../core/services/external-sources/registry/external-registry.service';
|
import { ExternalRegistryService } from '../../../../../../core/services/external-sources/registry/external-registry.service';
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component, Inject, OnInit } from '@angular/core';
|
import { Component, Inject, OnInit } from '@angular/core';
|
||||||
import { FormGroup } from '@angular/forms';
|
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 { takeUntil } from 'rxjs/operators';
|
||||||
import { BaseComponent } from '../../../../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../../../../core/common/base/base.component';
|
||||||
import { ExternalServiceService } from '../../../../../../core/services/external-sources/service/external-service.service';
|
import { ExternalServiceService } from '../../../../../../core/services/external-sources/service/external-service.service';
|
||||||
|
|
|
@ -1,39 +1,38 @@
|
||||||
import { Component, OnInit } from '@angular/core';
|
|
||||||
import { Observable } from 'rxjs';
|
import { Component, Input, OnInit } from '@angular/core';
|
||||||
import { ValidationErrorModel } from '../../../../common/forms/validation/error-model/validation-error-model';
|
import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
|
||||||
import { DatasetStatus } from '../../../../core/common/enum/dataset-status';
|
import { MatDialog } from '@angular/material/dialog';
|
||||||
import { ExternalSourceItemModel } from '../../../../core/model/external-sources/external-source-item';
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||||
import { DatasetCriteria } from '../../../../core/query/dataset/dataset-criteria';
|
|
||||||
import { TagCriteria } from '../../../../core/query/tag/tag-criteria';
|
|
||||||
import { ExternalSourcesService } from '../../../../core/services/external-sources/external-sources.service';
|
|
||||||
import { EnumUtils } from '../../../../core/services/utilities/enum-utils.service';
|
|
||||||
import { RequestItem } from '../../../../core/query/request-item';
|
|
||||||
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 { Router } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { FormGroup, FormBuilder, FormControl } from '@angular/forms';
|
import { Observable } from 'rxjs';
|
||||||
import { MultipleAutoCompleteConfiguration } from '../../../../library/auto-complete/multiple/multiple-auto-complete-configuration';
|
import { map, takeUntil } from 'rxjs/operators';
|
||||||
import { OrganisationCriteria } from '../../../../core/query/organisation/organisation-criteria';
|
import { ValidationErrorModel } from '../../../../common/forms/validation/error-model/validation-error-model';
|
||||||
import { OrganisationService } from '../../../../core/services/organisation/organisation.service';
|
import { DatasetStatus } from '../../../../core/common/enum/dataset-status';
|
||||||
import { GrantCriteria } from '../../../../core/query/grant/grant-criteria';
|
import { DataTableData } from '../../../../core/model/data-table/data-table-data';
|
||||||
import { GrantService } from '../../../../core/services/grant/grant.service';
|
import { DataTableRequest } from '../../../../core/model/data-table/data-table-request';
|
||||||
import { UserCriteria } from '../../../../core/query/user/user-criteria';
|
import { DmpListingModel } from '../../../../core/model/dmp/dmp-listing';
|
||||||
import { UserService } from '../../../../core/services/user/user.service';
|
import { ExternalSourceItemModel } from '../../../../core/model/external-sources/external-source-item';
|
||||||
import { DatasetProfileCriteria } from '../../../../core/query/dataset-profile/dataset-profile-criteria';
|
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 { 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 { MultipleAutoCompleteConfiguration } from '../../../../library/auto-complete/multiple/multiple-auto-complete-configuration';
|
||||||
|
import { BaseCriteriaComponent } from '../../../misc/criteria/base-criteria.component';
|
||||||
|
import { DatasetUploadDialogue } from './dataset-upload-dialogue/dataset-upload-dialogue.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-dataset-criteria-component',
|
selector: 'app-dataset-criteria-component',
|
||||||
|
@ -65,43 +64,43 @@ export class DatasetCriteriaComponent extends BaseCriteriaComponent implements O
|
||||||
|
|
||||||
tagsAutoCompleteConfiguration = {
|
tagsAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterTags.bind(this),
|
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'],
|
displayFn: (item) => item['name'],
|
||||||
titleFn: (item) => item['name']
|
titleFn: (item) => item['name']
|
||||||
};
|
};
|
||||||
|
|
||||||
datasetTemplateAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
datasetTemplateAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterDatasetTemplate.bind(this),
|
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'],
|
displayFn: (item) => item['label'],
|
||||||
titleFn: (item) => item['label'],
|
titleFn: (item) => item['label'],
|
||||||
subtitleFn: (item) => item['description']
|
subtitleFn: (item) => item['description']
|
||||||
};
|
};
|
||||||
|
|
||||||
dmpAutoCompleteConfiguration = {
|
dmpAutoCompleteConfiguration = {
|
||||||
filterFn: (x, excluded) => this.filterDmps(x).map(x => x.data),
|
filterFn: (x, excluded) => this.filterDmps(x).pipe(map(x => x.data)),
|
||||||
initialItems: (extraData) => this.filterDmps('').map(x => x.data),
|
initialItems: (extraData) => this.filterDmps('').pipe(map(x => x.data)),
|
||||||
displayFn: (item) => item['label'],
|
displayFn: (item) => item['label'],
|
||||||
titleFn: (item) => item['label']
|
titleFn: (item) => item['label']
|
||||||
};
|
};
|
||||||
|
|
||||||
collaboratorsAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
collaboratorsAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterCollaborators.bind(this),
|
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'],
|
displayFn: (item) => item['name'],
|
||||||
titleFn: (item) => item['name']
|
titleFn: (item) => item['name']
|
||||||
};
|
};
|
||||||
|
|
||||||
grantAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
grantAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterGrant.bind(this),
|
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'],
|
displayFn: (item) => item['label'],
|
||||||
titleFn: (item) => item['label']
|
titleFn: (item) => item['label']
|
||||||
};
|
};
|
||||||
|
|
||||||
organisationAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
organisationAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterOrganisations.bind(this),
|
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'],
|
displayFn: (item) => item['name'],
|
||||||
titleFn: (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 });
|
const datasetTemplateRequestItem: DataTableRequest<DatasetProfileCriteria> = new DataTableRequest(0, null, { fields: fields });
|
||||||
datasetTemplateRequestItem.criteria = new DatasetProfileCriteria();
|
datasetTemplateRequestItem.criteria = new DatasetProfileCriteria();
|
||||||
datasetTemplateRequestItem.criteria.like = query;
|
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>> {
|
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 });
|
const grantRequestItem: DataTableRequest<GrantCriteria> = new DataTableRequest(0, null, { fields: fields });
|
||||||
grantRequestItem.criteria = new GrantCriteria();
|
grantRequestItem.criteria = new GrantCriteria();
|
||||||
grantRequestItem.criteria.like = query;
|
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) {
|
filterOrganisations(value: string) {
|
||||||
|
@ -227,7 +226,7 @@ export class DatasetCriteriaComponent extends BaseCriteriaComponent implements O
|
||||||
const dataTableRequest: DataTableRequest<OrganisationCriteria> = new DataTableRequest(0, null, { fields: fields });
|
const dataTableRequest: DataTableRequest<OrganisationCriteria> = new DataTableRequest(0, null, { fields: fields });
|
||||||
dataTableRequest.criteria = new OrganisationCriteria();
|
dataTableRequest.criteria = new OrganisationCriteria();
|
||||||
dataTableRequest.criteria.labelLike = value;
|
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) {
|
filterCollaborators(query: string) {
|
||||||
|
@ -236,7 +235,7 @@ export class DatasetCriteriaComponent extends BaseCriteriaComponent implements O
|
||||||
const collaboratorsRequestItem: DataTableRequest<UserCriteria> = new DataTableRequest(0, null, { fields: fields });
|
const collaboratorsRequestItem: DataTableRequest<UserCriteria> = new DataTableRequest(0, null, { fields: fields });
|
||||||
collaboratorsRequestItem.criteria = new UserCriteria();
|
collaboratorsRequestItem.criteria = new UserCriteria();
|
||||||
collaboratorsRequestItem.criteria.collaboratorLike = query;
|
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) {
|
fileImport(event) {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
|
|
||||||
|
import {map, takeUntil } from 'rxjs/operators';
|
||||||
import { Component, Inject, OnInit } from '@angular/core';
|
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 { Observable } from 'rxjs';
|
||||||
import { DataTableData } from '../../../../../core/model/data-table/data-table-data';
|
import { DataTableData } from '../../../../../core/model/data-table/data-table-data';
|
||||||
import { DmpListingModel } from '../../../../../core/model/dmp/dmp-listing';
|
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 { BaseCriteriaComponent } from '../../../../misc/criteria/base-criteria.component';
|
||||||
import { DmpModel } from '../../../../../core/model/dmp/dmp';
|
import { DmpModel } from '../../../../../core/model/dmp/dmp';
|
||||||
import { DatasetProfileModel } from '../../../../../core/model/dataset/dataset-profile';
|
import { DatasetProfileModel } from '../../../../../core/model/dataset/dataset-profile';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
|
||||||
import { DatasetWizardService } from '../../../../../core/services/dataset-wizard/dataset-wizard.service';
|
import { DatasetWizardService } from '../../../../../core/services/dataset-wizard/dataset-wizard.service';
|
||||||
import { RequestItem } from '../../../../../core/query/request-item';
|
import { RequestItem } from '../../../../../core/query/request-item';
|
||||||
import { DatasetProfileCriteria } from '../../../../../core/query/dataset-profile/dataset-profile-criteria';
|
import { DatasetProfileCriteria } from '../../../../../core/query/dataset-profile/dataset-profile-criteria';
|
||||||
|
@ -31,8 +32,8 @@ export class DatasetUploadDialogue extends BaseCriteriaComponent implements OnIn
|
||||||
availableProfiles: DatasetProfileModel[] = [];
|
availableProfiles: DatasetProfileModel[] = [];
|
||||||
|
|
||||||
dmpAutoCompleteConfiguration = {
|
dmpAutoCompleteConfiguration = {
|
||||||
filterFn: (x, excluded) => this.filterDmps(x).map(x => x.data),
|
filterFn: (x, excluded) => this.filterDmps(x).pipe(map(x => x.data)),
|
||||||
initialItems: (extraData) => this.filterDmps('').map(x => x.data),
|
initialItems: (extraData) => this.filterDmps('').pipe(map(x => x.data)),
|
||||||
displayFn: (item) => item['label'],
|
displayFn: (item) => item['label'],
|
||||||
titleFn: (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 { 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 { ActivatedRoute, Params, Router } from '@angular/router';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { takeUntil } from 'rxjs/operators';
|
import { takeUntil } from 'rxjs/operators';
|
||||||
import { BaseComponent } from '../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../core/common/base/base.component';
|
||||||
import { DataTableRequest } from '../../../core/model/data-table/data-table-request';
|
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 {
|
export class DatasetListingComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
|
||||||
|
|
||||||
@ViewChild(MatPaginator) _paginator: MatPaginator;
|
@ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator;
|
||||||
@ViewChild(MatSort) sort: MatSort;
|
@ViewChild(MatSort, { static: false }) sort: MatSort;
|
||||||
@ViewChild(DatasetCriteriaComponent) criteria: DatasetCriteriaComponent;
|
@ViewChild(DatasetCriteriaComponent, { static: true }) criteria: DatasetCriteriaComponent;
|
||||||
|
|
||||||
breadCrumbs: Observable<BreadcrumbItem[]>;
|
breadCrumbs: Observable<BreadcrumbItem[]>;
|
||||||
|
|
||||||
|
@ -60,7 +62,7 @@ export class DatasetListingComponent extends BaseComponent implements OnInit, IB
|
||||||
this.criteria.setCriteria(this.getDefaultCriteria(dmp));
|
this.criteria.setCriteria(this.getDefaultCriteria(dmp));
|
||||||
this.refresh();
|
this.refresh();
|
||||||
this.criteria.setRefreshCallback((resetPages) => this.refresh(resetPages));
|
this.criteria.setRefreshCallback((resetPages) => this.refresh(resetPages));
|
||||||
this.breadCrumbs = Observable.of([{
|
this.breadCrumbs = observableOf([{
|
||||||
parentComponentName: 'DmpEditorComponent',
|
parentComponentName: 'DmpEditorComponent',
|
||||||
label: dmp.label,
|
label: dmp.label,
|
||||||
url: '/plans/edit/' + this.dmpId
|
url: '/plans/edit/' + this.dmpId
|
||||||
|
@ -72,7 +74,7 @@ export class DatasetListingComponent extends BaseComponent implements OnInit, IB
|
||||||
this.criteria.setCriteria(this.getDefaultCriteria());
|
this.criteria.setCriteria(this.getDefaultCriteria());
|
||||||
this.refresh();
|
this.refresh();
|
||||||
this.criteria.setRefreshCallback((resetPages) => this.refresh(resetPages));
|
this.criteria.setRefreshCallback((resetPages) => this.refresh(resetPages));
|
||||||
this.breadCrumbs = Observable.of([{
|
this.breadCrumbs = observableOf([{
|
||||||
parentComponentName: null,
|
parentComponentName: null,
|
||||||
label: this.language.instant('NAV-BAR.MY-DATASET-DESCRIPTIONS'),
|
label: this.language.instant('NAV-BAR.MY-DATASET-DESCRIPTIONS'),
|
||||||
url: "/datasets"
|
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 { Component, OnInit } from '@angular/core';
|
||||||
import { DmpWizardEditorModel } from '../wizard/dmp-wizard-editor.model';
|
import { DmpWizardEditorModel } from '../wizard/dmp-wizard-editor.model';
|
||||||
import { FormGroup } from '@angular/forms';
|
import { FormGroup } from '@angular/forms';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
|
||||||
import { BaseComponent } from '../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../core/common/base/base.component';
|
||||||
import { ActivatedRoute, Params, Router } from '@angular/router';
|
import { ActivatedRoute, Params, Router } from '@angular/router';
|
||||||
import { DmpModel } from '../../../core/model/dmp/dmp';
|
import { DmpModel } from '../../../core/model/dmp/dmp';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { DmpService } from '../../../core/services/dmp/dmp.service';
|
import { DmpService } from '../../../core/services/dmp/dmp.service';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { BreadcrumbItem } from '../../misc/breadcrumb/definition/breadcrumb-item';
|
import { BreadcrumbItem } from '../../misc/breadcrumb/definition/breadcrumb-item';
|
||||||
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
|
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
|
||||||
import { UiNotificationService, SnackBarNotificationLevel } from '../../../core/services/notification/ui-notification-service';
|
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))
|
.pipe(takeUntil(this._destroyed))
|
||||||
.subscribe((params: Params) => {
|
.subscribe((params: Params) => {
|
||||||
this.itemId = params['id'];
|
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))
|
.pipe(takeUntil(this._destroyed))
|
||||||
.subscribe(data => {
|
.subscribe(data => {
|
||||||
this.dmp = new DmpWizardEditorModel();
|
this.dmp = new DmpWizardEditorModel();
|
||||||
|
@ -72,7 +74,7 @@ export class DmpCloneComponent extends BaseComponent implements OnInit {
|
||||||
const breadCrumbs = [];
|
const breadCrumbs = [];
|
||||||
breadCrumbs.push({ parentComponentName: null, label: this.language.instant('NAV-BAR.MY-DMPS'), url: "/plans" });
|
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 });
|
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 { Component, Inject, OnInit } from '@angular/core';
|
||||||
import { FormGroup } from '@angular/forms';
|
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 { takeUntil } from 'rxjs/operators';
|
||||||
import { BaseComponent } from '../../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../../core/common/base/base.component';
|
||||||
import { ExternalResearcherService } from '../../../../core/services/external-sources/researcher/external-researcher.service';
|
import { ExternalResearcherService } from '../../../../core/services/external-sources/researcher/external-researcher.service';
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component, Inject, OnInit } from '@angular/core';
|
import { Component, Inject, OnInit } from '@angular/core';
|
||||||
import { FormGroup } from '@angular/forms';
|
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 { takeUntil } from 'rxjs/operators';
|
||||||
import { BaseComponent } from '../../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../../core/common/base/base.component';
|
||||||
import { DatasetProfileModel } from '../../../../core/model/dataset/dataset-profile';
|
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 { Component, OnInit, ViewContainerRef } from '@angular/core';
|
||||||
import { FormGroup, FormControl, FormArray, AbstractControl } from '@angular/forms';
|
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 { ActivatedRoute, Params, Router } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import * as FileSaver from 'file-saver';
|
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 { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
|
||||||
import { BaseComponent } from '../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../core/common/base/base.component';
|
||||||
import { DmpStatus } from '../../../core/common/enum/dmp-status';
|
import { DmpStatus } from '../../../core/common/enum/dmp-status';
|
||||||
|
@ -102,7 +105,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
|
||||||
if (itemId != null) {
|
if (itemId != null) {
|
||||||
this.isNew = false;
|
this.isNew = false;
|
||||||
if (tabToNav == "datasetDescriptions") this.selectedTab = 2
|
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))
|
.pipe(takeUntil(this._destroyed))
|
||||||
.subscribe(async data => {
|
.subscribe(async data => {
|
||||||
this.dmp = new DmpEditorModel();
|
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()]
|
// 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.associatedUsers = data.associatedUsers;
|
||||||
this.people = data.users;
|
this.people = data.users;
|
||||||
|
@ -139,7 +142,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
|
||||||
} else if (publicId != null) {
|
} else if (publicId != null) {
|
||||||
this.isNew = false;
|
this.isNew = false;
|
||||||
this.isPublic = true;
|
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))
|
.pipe(takeUntil(this._destroyed))
|
||||||
.subscribe(async data => {
|
.subscribe(async data => {
|
||||||
this.dmp = new DmpEditorModel();
|
this.dmp = new DmpEditorModel();
|
||||||
|
@ -154,7 +157,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
|
||||||
const breadcrumbs = [];
|
const breadcrumbs = [];
|
||||||
breadcrumbs.push({ parentComponentName: null, label: this.language.instant('NAV-BAR.PUBLIC-DMPS').toUpperCase(), url: '/plans' });
|
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 });
|
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([
|
// this.breadCrumbs = Observable.of([
|
||||||
// {
|
// {
|
||||||
// parentComponentName: 'DmpListingComponent',
|
// parentComponentName: 'DmpListingComponent',
|
||||||
|
@ -175,7 +178,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
|
||||||
this.registerFormEventsForNewItem();
|
this.registerFormEventsForNewItem();
|
||||||
if (this.isAuthenticated) {
|
if (this.isAuthenticated) {
|
||||||
this.language.get('NAV-BAR.MY-DMPS').pipe(takeUntil(this._destroyed)).subscribe(x => {
|
this.language.get('NAV-BAR.MY-DMPS').pipe(takeUntil(this._destroyed)).subscribe(x => {
|
||||||
this.breadCrumbs = Observable.of([
|
this.breadCrumbs = observableOf([
|
||||||
{
|
{
|
||||||
parentComponentName: null,
|
parentComponentName: null,
|
||||||
label: x,
|
label: x,
|
||||||
|
@ -205,7 +208,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
|
||||||
}
|
}
|
||||||
|
|
||||||
registerFormEventsForNewItem() {
|
registerFormEventsForNewItem() {
|
||||||
this.breadCrumbs = Observable.of([
|
this.breadCrumbs = observableOf([
|
||||||
{
|
{
|
||||||
parentComponentName: 'DmpListingComponent',
|
parentComponentName: 'DmpListingComponent',
|
||||||
label: this.language.instant('NAV-BAR.MY-DMPS'),
|
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();
|
let fields: Array<string> = new Array();
|
||||||
var request = new DataTableRequest<DmpProfileCriteria>(0, 10, { fields: fields });
|
var request = new DataTableRequest<DmpProfileCriteria>(0, 10, { fields: fields });
|
||||||
request.criteria = new DmpProfileCriteria();
|
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) {
|
// searchGrant(query: string) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Component, Inject, OnInit } from '@angular/core';
|
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 { Router } from '@angular/router';
|
||||||
import { BaseComponent } from '../../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../../core/common/base/base.component';
|
||||||
import { DatasetStatus } from '../../../../core/common/enum/dataset-status';
|
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 { Component, Input, OnInit } from '@angular/core';
|
||||||
import { FormGroup } from '@angular/forms';
|
import { FormGroup } from '@angular/forms';
|
||||||
import { MatDialog } from '@angular/material';
|
import { MatDialog } from '@angular/material/dialog';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
|
||||||
import { BaseComponent } from '../../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../../core/common/base/base.component';
|
||||||
import { DataTableRequest } from '../../../../core/model/data-table/data-table-request';
|
import { DataTableRequest } from '../../../../core/model/data-table/data-table-request';
|
||||||
import { DatasetProfileModel } from '../../../../core/model/dataset/dataset-profile';
|
import { DatasetProfileModel } from '../../../../core/model/dataset/dataset-profile';
|
||||||
|
@ -72,7 +73,7 @@ export class GeneralTabComponent extends BaseComponent implements OnInit {
|
||||||
|
|
||||||
this.profilesAutoCompleteConfiguration = {
|
this.profilesAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterProfiles.bind(this),
|
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'],
|
displayFn: (item) => item['label'],
|
||||||
titleFn: (item) => item['label'],
|
titleFn: (item) => item['label'],
|
||||||
subtitleFn: (item) => item['description']
|
subtitleFn: (item) => item['description']
|
||||||
|
@ -80,7 +81,7 @@ export class GeneralTabComponent extends BaseComponent implements OnInit {
|
||||||
|
|
||||||
this.organisationsAutoCompleteConfiguration = {
|
this.organisationsAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterOrganisations.bind(this),
|
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'],
|
displayFn: (item) => item['name'],
|
||||||
titleFn: (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')
|
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 = {
|
this.researchersAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterResearchers.bind(this),
|
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'],
|
displayFn: (item) => item['name'],
|
||||||
titleFn: (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')
|
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();
|
let fields: Array<string> = new Array();
|
||||||
var request = new DataTableRequest<DmpProfileCriteria>(0, 10, { fields: fields });
|
var request = new DataTableRequest<DmpProfileCriteria>(0, 10, { fields: fields });
|
||||||
request.criteria = new DmpProfileCriteria();
|
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 {
|
// onCallbackSuccess(): void {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component, Input, OnInit } from '@angular/core';
|
import { Component, Input, OnInit } from '@angular/core';
|
||||||
import { FormGroup } from '@angular/forms';
|
import { FormGroup } from '@angular/forms';
|
||||||
import { MatDialog } from '@angular/material';
|
import { MatDialog } from '@angular/material/dialog';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { Principal } from '../../../../core/model/auth/Principal';
|
import { Principal } from '../../../../core/model/auth/Principal';
|
||||||
import { UserInfoListingModel } from '../../../../core/model/user/user-info-listing';
|
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 { COMMA, ENTER } from '@angular/cdk/keycodes';
|
||||||
import { Component, Inject, OnInit } from '@angular/core';
|
import { Component, Inject, OnInit } from '@angular/core';
|
||||||
import { FormGroup } from '@angular/forms';
|
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 { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
|
||||||
import { BaseComponent } from '../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../core/common/base/base.component';
|
||||||
import { DmpInvitation } from '../../../core/model/dmp/invitation/dmp-invitation';
|
import { DmpInvitation } from '../../../core/model/dmp/invitation/dmp-invitation';
|
||||||
import { DmpInvitationUser } from '../../../core/model/dmp/invitation/dmp-invitation-user';
|
import { DmpInvitationUser } from '../../../core/model/dmp/invitation/dmp-invitation-user';
|
||||||
|
@ -36,7 +38,7 @@ export class DmpInvitationDialogComponent extends BaseComponent implements OnIni
|
||||||
|
|
||||||
usersAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
usersAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterUsers.bind(this),
|
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,
|
displayFn: (item) => item.name,
|
||||||
titleFn: (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 { Component, Input, OnInit } from '@angular/core';
|
||||||
import { FormBuilder, FormControl } from '@angular/forms';
|
import { FormBuilder, FormControl } from '@angular/forms';
|
||||||
import { MatDialog } from '@angular/material';
|
import { MatDialog } from '@angular/material/dialog';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
|
||||||
import { ValidationErrorModel } from '../../../../common/forms/validation/error-model/validation-error-model';
|
import { ValidationErrorModel } from '../../../../common/forms/validation/error-model/validation-error-model';
|
||||||
import { DataTableRequest } from '../../../../core/model/data-table/data-table-request';
|
import { DataTableRequest } from '../../../../core/model/data-table/data-table-request';
|
||||||
import { GrantListingModel } from '../../../../core/model/grant/grant-listing';
|
import { GrantListingModel } from '../../../../core/model/grant/grant-listing';
|
||||||
|
@ -46,14 +47,14 @@ export class DmpCriteriaComponent extends BaseCriteriaComponent implements OnIni
|
||||||
|
|
||||||
collaboratorsAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
collaboratorsAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterCollaborators.bind(this),
|
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'],
|
displayFn: (item) => item['name'],
|
||||||
titleFn: (item) => item['name']
|
titleFn: (item) => item['name']
|
||||||
};
|
};
|
||||||
|
|
||||||
datasetTemplateAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
datasetTemplateAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterDatasetTemplate.bind(this),
|
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'],
|
displayFn: (item) => item['label'],
|
||||||
titleFn: (item) => item['label'],
|
titleFn: (item) => item['label'],
|
||||||
subtitleFn: (item) => item['description']
|
subtitleFn: (item) => item['description']
|
||||||
|
@ -61,14 +62,14 @@ export class DmpCriteriaComponent extends BaseCriteriaComponent implements OnIni
|
||||||
|
|
||||||
grantAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
grantAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterGrant.bind(this),
|
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'],
|
displayFn: (item) => item['label'],
|
||||||
titleFn: (item) => item['label']
|
titleFn: (item) => item['label']
|
||||||
};
|
};
|
||||||
|
|
||||||
organisationAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
organisationAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterOrganisations.bind(this),
|
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'],
|
displayFn: (item) => item['name'],
|
||||||
titleFn: (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 });
|
const grantRequestItem: DataTableRequest<GrantCriteria> = new DataTableRequest(0, null, { fields: fields });
|
||||||
grantRequestItem.criteria = new GrantCriteria();
|
grantRequestItem.criteria = new GrantCriteria();
|
||||||
grantRequestItem.criteria.like = query;
|
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) {
|
filterOrganisations(value: string) {
|
||||||
|
@ -151,7 +152,7 @@ export class DmpCriteriaComponent extends BaseCriteriaComponent implements OnIni
|
||||||
dataTableRequest.criteria = new OrganisationCriteria();
|
dataTableRequest.criteria = new OrganisationCriteria();
|
||||||
dataTableRequest.criteria.labelLike = value;
|
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) {
|
filterCollaborators(query: string) {
|
||||||
|
@ -160,7 +161,7 @@ export class DmpCriteriaComponent extends BaseCriteriaComponent implements OnIni
|
||||||
const collaboratorsRequestItem: DataTableRequest<UserCriteria> = new DataTableRequest(0, null, { fields: fields });
|
const collaboratorsRequestItem: DataTableRequest<UserCriteria> = new DataTableRequest(0, null, { fields: fields });
|
||||||
collaboratorsRequestItem.criteria = new UserCriteria();
|
collaboratorsRequestItem.criteria = new UserCriteria();
|
||||||
collaboratorsRequestItem.criteria.collaboratorLike = query;
|
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) {
|
filterDatasetTemplate(query: string) {
|
||||||
|
@ -169,7 +170,7 @@ export class DmpCriteriaComponent extends BaseCriteriaComponent implements OnIni
|
||||||
const datasetTemplateRequestItem: DataTableRequest<DatasetProfileCriteria> = new DataTableRequest(0, null, { fields: fields });
|
const datasetTemplateRequestItem: DataTableRequest<DatasetProfileCriteria> = new DataTableRequest(0, null, { fields: fields });
|
||||||
datasetTemplateRequestItem.criteria = new DatasetProfileCriteria();
|
datasetTemplateRequestItem.criteria = new DatasetProfileCriteria();
|
||||||
datasetTemplateRequestItem.criteria.like = query;
|
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) {
|
fileSave(event) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Component, Inject } from '@angular/core';
|
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';
|
import { DmpService } from '../../../../../core/services/dmp/dmp.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
|
|
||||||
|
import {of as observableOf, Observable } from 'rxjs';
|
||||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
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 { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { takeUntil } from 'rxjs/operators';
|
import { takeUntil } from 'rxjs/operators';
|
||||||
import { BaseComponent } from '../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../core/common/base/base.component';
|
||||||
import { DataTableRequest } from '../../../core/model/data-table/data-table-request';
|
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 {
|
export class DmpListingComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
|
||||||
|
|
||||||
@ViewChild(MatPaginator) _paginator: MatPaginator;
|
@ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator;
|
||||||
@ViewChild(MatSort) sort: MatSort;
|
@ViewChild(MatSort, { static: false }) sort: MatSort;
|
||||||
@ViewChild(DmpCriteriaComponent) criteria: DmpCriteriaComponent;
|
@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;
|
itemId: string;
|
||||||
grantId: string;
|
grantId: string;
|
||||||
showGrant: boolean;
|
showGrant: boolean;
|
||||||
|
@ -78,7 +81,7 @@ export class DmpListingComponent extends BaseComponent implements OnInit, IBread
|
||||||
// else
|
// else
|
||||||
|
|
||||||
this.language.get('NAV-BAR.MY-DMPS').pipe(takeUntil(this._destroyed)).subscribe(x => {
|
this.language.get('NAV-BAR.MY-DMPS').pipe(takeUntil(this._destroyed)).subscribe(x => {
|
||||||
this.breadCrumbs = Observable.of([
|
this.breadCrumbs = observableOf([
|
||||||
{
|
{
|
||||||
parentComponentName: null,
|
parentComponentName: null,
|
||||||
label: x,
|
label: x,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
||||||
import { DmpListingModel } from '../../../../core/model/dmp/dmp-listing';
|
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 { DmpInvitationDialogComponent } from '../../invitation/dmp-invitation.component';
|
||||||
import { Router, ActivatedRoute } from '@angular/router';
|
import { Router, ActivatedRoute } from '@angular/router';
|
||||||
import { GrantListingModel } from '../../../../core/model/grant/grant-listing';
|
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 { Component, OnInit } from '@angular/core';
|
||||||
import { MatDialog } from '@angular/material/dialog';
|
import { MatDialog } from '@angular/material/dialog';
|
||||||
import { ActivatedRoute, Params, Router } from '@angular/router';
|
import { ActivatedRoute, Params, Router } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import * as FileSaver from 'file-saver';
|
import * as FileSaver from 'file-saver';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { takeUntil } from 'rxjs/operators';
|
import { takeUntil } from 'rxjs/operators';
|
||||||
import { BaseComponent } from '../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../core/common/base/base.component';
|
||||||
import { DatasetStatus } from '../../../core/common/enum/dataset-status';
|
import { DatasetStatus } from '../../../core/common/enum/dataset-status';
|
||||||
|
@ -33,7 +34,7 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit {
|
||||||
isFinalized = false;
|
isFinalized = false;
|
||||||
isPublicView = true;
|
isPublicView = true;
|
||||||
hasPublishButton: boolean = true;
|
hasPublishButton: boolean = true;
|
||||||
breadCrumbs: Observable<BreadcrumbItem[]> = Observable.of();
|
breadCrumbs: Observable<BreadcrumbItem[]> = observableOf();
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private route: ActivatedRoute,
|
private route: ActivatedRoute,
|
||||||
|
@ -65,7 +66,7 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit {
|
||||||
const breadCrumbs = [];
|
const breadCrumbs = [];
|
||||||
breadCrumbs.push({ parentComponentName: null, label: this.language.instant('NAV-BAR.MY-DMPS'), url: "/plans" });
|
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 });
|
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) {
|
else if (publicId != null) {
|
||||||
|
@ -79,7 +80,7 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit {
|
||||||
const breadCrumbs = [];
|
const breadCrumbs = [];
|
||||||
breadCrumbs.push({ parentComponentName: null, label: this.language.instant('NAV-BAR.PUBLIC-DMPS'), url: "/explore-plans" });
|
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 });
|
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 { Component, OnInit } from '@angular/core';
|
||||||
import { FormGroup } from '@angular/forms';
|
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 { ActivatedRoute, Params, Router } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
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 { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
|
||||||
import { BaseComponent } from '../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../core/common/base/base.component';
|
||||||
import { DmpModel } from '../../../core/model/dmp/dmp';
|
import { DmpModel } from '../../../core/model/dmp/dmp';
|
||||||
|
@ -46,7 +48,7 @@ export class DmpWizardComponent extends BaseComponent implements OnInit, IBreadC
|
||||||
.pipe(takeUntil(this._destroyed))
|
.pipe(takeUntil(this._destroyed))
|
||||||
.subscribe((params: Params) => {
|
.subscribe((params: Params) => {
|
||||||
this.itemId = params['id'];
|
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))
|
.pipe(takeUntil(this._destroyed))
|
||||||
.subscribe(data => {
|
.subscribe(data => {
|
||||||
this.dmp = new DmpWizardEditorModel();
|
this.dmp = new DmpWizardEditorModel();
|
||||||
|
@ -68,7 +70,7 @@ export class DmpWizardComponent extends BaseComponent implements OnInit, IBreadC
|
||||||
const breadCrumbs = [];
|
const breadCrumbs = [];
|
||||||
breadCrumbs.push({ parentComponentName: null, label: this.language.instant('NAV-BAR.MY-DMPS'), url: "/plans" });
|
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 });
|
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 { Component, Input, OnInit } from '@angular/core';
|
||||||
import { FormGroup } from '@angular/forms';
|
import { FormGroup } from '@angular/forms';
|
||||||
import { MatSnackBar } from '@angular/material';
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
|
||||||
import { BaseComponent } from '../../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../../core/common/base/base.component';
|
||||||
import { DatasetProfileModel } from '../../../../core/model/dataset/dataset-profile';
|
import { DatasetProfileModel } from '../../../../core/model/dataset/dataset-profile';
|
||||||
import { ExternalSourceItemModel } from '../../../../core/model/external-sources/external-source-item';
|
import { ExternalSourceItemModel } from '../../../../core/model/external-sources/external-source-item';
|
||||||
|
@ -72,21 +73,21 @@ export class DmpWizardEditorComponent extends BaseComponent implements OnInit {
|
||||||
|
|
||||||
this.profilesAutoCompleteConfiguration = {
|
this.profilesAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterProfiles.bind(this),
|
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'],
|
displayFn: (item) => item['label'],
|
||||||
titleFn: (item) => item['label']
|
titleFn: (item) => item['label']
|
||||||
};
|
};
|
||||||
|
|
||||||
this.organisationsAutoCompleteConfiguration = {
|
this.organisationsAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterOrganisations.bind(this),
|
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'],
|
displayFn: (item) => item['name'],
|
||||||
titleFn: (item) => item['name']
|
titleFn: (item) => item['name']
|
||||||
};
|
};
|
||||||
|
|
||||||
this.researchersAutoCompleteConfiguration = {
|
this.researchersAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterResearchers.bind(this),
|
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'],
|
displayFn: (item) => item['name'],
|
||||||
titleFn: (item) => item['name']
|
titleFn: (item) => item['name']
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
import { SelectionModel } from '@angular/cdk/collections';
|
import { SelectionModel } from '@angular/cdk/collections';
|
||||||
import { Component, Input, OnInit, ViewChild } from '@angular/core';
|
import { Component, Input, OnInit, ViewChild } from '@angular/core';
|
||||||
import { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';
|
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 { ActivatedRoute, Params, Router } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
import { takeUntil } from 'rxjs/operators';
|
||||||
|
@ -20,9 +22,9 @@ import { DatasetCriteriaComponent } from '../../../dataset/listing/criteria/data
|
||||||
})
|
})
|
||||||
export class DmpWizardDatasetListingComponent extends BaseComponent implements OnInit {
|
export class DmpWizardDatasetListingComponent extends BaseComponent implements OnInit {
|
||||||
|
|
||||||
@ViewChild(MatPaginator) _paginator: MatPaginator;
|
@ViewChild(MatPaginator, { static: false }) _paginator: MatPaginator;
|
||||||
@ViewChild(MatSort) sort: MatSort;
|
@ViewChild(MatSort, { static: false }) sort: MatSort;
|
||||||
@ViewChild(DatasetCriteriaComponent) criteria: DatasetCriteriaComponent;
|
@ViewChild(DatasetCriteriaComponent, { static: false }) criteria: DatasetCriteriaComponent;
|
||||||
|
|
||||||
|
|
||||||
titlePrefix: String;
|
titlePrefix: String;
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
|
|
||||||
|
import {of as observableOf, Observable } from 'rxjs';
|
||||||
import { Component, OnInit, ViewChild, ɵConsole } from '@angular/core';
|
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 { Router, ActivatedRoute, Params } from '@angular/router';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
import { takeUntil } from 'rxjs/operators';
|
||||||
import { BaseComponent } from '../../core/common/base/base.component';
|
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 { DatasetService } from '../../core/services/dataset/dataset.service';
|
||||||
import { IBreadCrumbComponent } from '../misc/breadcrumb/definition/IBreadCrumbComponent';
|
import { IBreadCrumbComponent } from '../misc/breadcrumb/definition/IBreadCrumbComponent';
|
||||||
import { BreadcrumbItem } from '../misc/breadcrumb/definition/breadcrumb-item';
|
import { BreadcrumbItem } from '../misc/breadcrumb/definition/breadcrumb-item';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { DmpService } from '../../core/services/dmp/dmp.service';
|
import { DmpService } from '../../core/services/dmp/dmp.service';
|
||||||
import { DatasetCriteriaComponent } from '../dataset/listing/criteria/dataset-criteria.component';
|
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 {
|
export class ExploreDatasetListingComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
|
||||||
|
|
||||||
@ViewChild(MatPaginator) _paginator: MatPaginator;
|
@ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator;
|
||||||
@ViewChild(MatSort) sort: MatSort;
|
@ViewChild(MatSort, { static: false }) sort: MatSort;
|
||||||
|
|
||||||
totalCount: number;
|
totalCount: number;
|
||||||
listingItems: DatasetListingModel[] = [];
|
listingItems: DatasetListingModel[] = [];
|
||||||
|
@ -78,7 +80,7 @@ export class ExploreDatasetListingComponent extends BaseComponent implements OnI
|
||||||
label: this.language.instant('NAV-BAR.PUBLIC DATASETS'),
|
label: this.language.instant('NAV-BAR.PUBLIC DATASETS'),
|
||||||
url: "/explore"
|
url: "/explore"
|
||||||
})
|
})
|
||||||
this.breadCrumbs = Observable.of(breadCrumbs);
|
this.breadCrumbs = observableOf(breadCrumbs);
|
||||||
}
|
}
|
||||||
|
|
||||||
refresh(resetPages = false) {
|
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 { SelectionModel } from '@angular/cdk/collections';
|
||||||
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
|
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
|
||||||
import { FormControl } from '@angular/forms';
|
import { FormControl } from '@angular/forms';
|
||||||
import { MatListOption, MatSelectionList } from '@angular/material';
|
import { MatListOption, MatSelectionList } from '@angular/material/list';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { takeUntil } from 'rxjs/operators';
|
|
||||||
import { BaseComponent } from '../../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../../core/common/base/base.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
@ -26,7 +28,7 @@ export class ExploreDatasetFilterItemComponent extends BaseComponent implements
|
||||||
filterOptions: (value) => Observable<any[]>;
|
filterOptions: (value) => Observable<any[]>;
|
||||||
|
|
||||||
@Input()
|
@Input()
|
||||||
options: Observable<any[]> = Observable.of([]);
|
options: Observable<any[]> = observableOf([]);
|
||||||
|
|
||||||
@Input()
|
@Input()
|
||||||
displayTitleFunc: (value) => string;
|
displayTitleFunc: (value) => string;
|
||||||
|
@ -44,14 +46,14 @@ export class ExploreDatasetFilterItemComponent extends BaseComponent implements
|
||||||
|
|
||||||
private selectedOptions: any[] = [];
|
private selectedOptions: any[] = [];
|
||||||
|
|
||||||
@ViewChild('optionsList') selectionList: MatSelectionList;
|
@ViewChild('optionsList', { static: true }) selectionList: MatSelectionList;
|
||||||
|
|
||||||
constructor() { super(); }
|
constructor() { super(); }
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
if (!this.multipleSelect) { this.selectionList.selectedOptions = new SelectionModel<MatListOption>(this.multipleSelect); }
|
if (!this.multipleSelect) { this.selectionList.selectedOptions = new SelectionModel<MatListOption>(this.multipleSelect); }
|
||||||
this.optionSearchControl.valueChanges.debounceTime(this.requestDelay)
|
this.optionSearchControl.valueChanges.pipe(debounceTime(this.requestDelay),
|
||||||
.distinctUntilChanged()
|
distinctUntilChanged(),)
|
||||||
.pipe(takeUntil(this._destroyed))
|
.pipe(takeUntil(this._destroyed))
|
||||||
.subscribe(x => { if (this.filterOptions) { this.options = this.filterOptions(x); } });
|
.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 { 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 { ActivatedRoute, Params } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { BaseComponent } from '../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../core/common/base/base.component';
|
||||||
import { GrantStateType } from '../../../core/common/enum/grant-state-type';
|
import { GrantStateType } from '../../../core/common/enum/grant-state-type';
|
||||||
import { DatasetProfileModel } from '../../../core/model/dataset/dataset-profile';
|
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 { DmpModel } from '../../../core/model/dmp/dmp';
|
||||||
import { BaseCriteriaComponent } from '../../misc/criteria/base-criteria.component';
|
import { BaseCriteriaComponent } from '../../misc/criteria/base-criteria.component';
|
||||||
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
|
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-explore-dataset-filters-component',
|
selector: 'app-explore-dataset-filters-component',
|
||||||
|
@ -49,7 +51,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
|
||||||
grantOptions: Observable<GrantListingModel[]>;
|
grantOptions: Observable<GrantListingModel[]>;
|
||||||
grantStateOptions: Observable<any[]>;
|
grantStateOptions: Observable<any[]>;
|
||||||
filteringOrganisationsAsync = false;
|
filteringOrganisationsAsync = false;
|
||||||
@ViewChild('facetAccordion') accordion: MatAccordion;
|
@ViewChild('facetAccordion', { static: false }) accordion: MatAccordion;
|
||||||
|
|
||||||
displayGrantStateValue = (option) => option['value'];
|
displayGrantStateValue = (option) => option['value'];
|
||||||
displayGrantStateLabel = (option) => option['label'];
|
displayGrantStateLabel = (option) => option['label'];
|
||||||
|
@ -65,14 +67,14 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
|
||||||
|
|
||||||
tagsAutoCompleteConfiguration = {
|
tagsAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterTags.bind(this),
|
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'],
|
displayFn: (item) => item['name'],
|
||||||
titleFn: (item) => item['name']
|
titleFn: (item) => item['name']
|
||||||
};
|
};
|
||||||
|
|
||||||
dmpAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
dmpAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
||||||
filterFn: (x, excluded) => this.filterDmps(x).map(x => x.data),
|
filterFn: (x, excluded) => this.filterDmps(x).pipe(map(x => x.data)),
|
||||||
initialItems: (extraData) => this.filterDmps('').map(x => x.data),
|
initialItems: (extraData) => this.filterDmps('').pipe(map(x => x.data)),
|
||||||
displayFn: (item) => item['label'],
|
displayFn: (item) => item['label'],
|
||||||
titleFn: (item) => item['label']
|
titleFn: (item) => item['label']
|
||||||
};
|
};
|
||||||
|
@ -80,8 +82,8 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
|
||||||
grantAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
grantAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterGrant.bind(this),
|
filterFn: this.filterGrant.bind(this),
|
||||||
initialItems: (excludedItems: any[]) =>
|
initialItems: (excludedItems: any[]) =>
|
||||||
this.filterGrant('')
|
this.filterGrant('').pipe(
|
||||||
.map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
|
map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
|
||||||
displayFn: (item) => item['label'],
|
displayFn: (item) => item['label'],
|
||||||
titleFn: (item) => item['label']
|
titleFn: (item) => item['label']
|
||||||
}
|
}
|
||||||
|
@ -89,8 +91,8 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
|
||||||
profileAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
profileAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterProfile.bind(this),
|
filterFn: this.filterProfile.bind(this),
|
||||||
initialItems: (excludedItems: any[]) =>
|
initialItems: (excludedItems: any[]) =>
|
||||||
this.getProfiles()
|
this.getProfiles().pipe(
|
||||||
.map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
|
map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
|
||||||
displayFn: (item) => item['label'],
|
displayFn: (item) => item['label'],
|
||||||
titleFn: (item) => item['label']
|
titleFn: (item) => item['label']
|
||||||
};
|
};
|
||||||
|
@ -98,8 +100,8 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
|
||||||
organizationAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
organizationAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterOrganisation.bind(this),
|
filterFn: this.filterOrganisation.bind(this),
|
||||||
initialItems: (excludedItems: any[]) =>
|
initialItems: (excludedItems: any[]) =>
|
||||||
this.getOrganisations()
|
this.getOrganisations().pipe(
|
||||||
.map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
|
map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
|
||||||
displayFn: (item) => item['name'],
|
displayFn: (item) => item['name'],
|
||||||
titleFn: (item) => item['name']
|
titleFn: (item) => item['name']
|
||||||
}
|
}
|
||||||
|
@ -117,7 +119,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
setTimeout(x => {
|
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.INACTIVE'), value: GrantStateType.Finished },
|
||||||
{ label: this.languageService.instant('FACET-SEARCH.GRANT-STATUS.OPTIONS.ACTIVE'), value: GrantStateType.OnGoing },
|
{ 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;
|
this.facetCriteria.grantStatus = event.value;
|
||||||
if (event.value === 'null') {
|
if (event.value === 'null') {
|
||||||
this.facetCriteria.grantStatus = null;
|
this.facetCriteria.grantStatus = null;
|
||||||
this.grants = Observable.of([]);
|
this.grants = observableOf([]);
|
||||||
this.facetCriteria.grants = [];
|
this.facetCriteria.grants = [];
|
||||||
}
|
}
|
||||||
// if (event.option.selected) {
|
// if (event.option.selected) {
|
||||||
|
@ -151,7 +153,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
|
||||||
dataTableRequest.criteria.grantStateType = this.facetCriteria.grantStatus;
|
dataTableRequest.criteria.grantStateType = this.facetCriteria.grantStatus;
|
||||||
dataTableRequest.criteria['length'] = 10;
|
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.facetCriteria.grants = [];
|
||||||
}
|
}
|
||||||
this.facetCriteriaChange.emit(this.facetCriteria);
|
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 });
|
const dataTableRequest: DataTableRequest<OrganisationCriteria> = new DataTableRequest(0, null, { fields: fields });
|
||||||
dataTableRequest.criteria = new OrganisationCriteria();
|
dataTableRequest.criteria = new OrganisationCriteria();
|
||||||
dataTableRequest.criteria.labelLike = '';
|
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) {
|
public dmpOrganisationChanged(event: any) {
|
||||||
|
@ -226,7 +228,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
|
||||||
dataTableRequest.criteria = grantCriteria;
|
dataTableRequest.criteria = grantCriteria;
|
||||||
//const dataTableRequest: RequestItem<GrantCriteria> = { criteria: grantCriteria };
|
//const dataTableRequest: RequestItem<GrantCriteria> = { criteria: grantCriteria };
|
||||||
//return this.grantService.getPaged(dataTableRequest, "autocomplete").map(x => x.data);
|
//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[]> {
|
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 });
|
const grantRequestItem: DataTableRequest<GrantCriteria> = new DataTableRequest(0, null, { fields: fields });
|
||||||
grantRequestItem.criteria = new GrantCriteria();
|
grantRequestItem.criteria = new GrantCriteria();
|
||||||
grantRequestItem.criteria.like = query;
|
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) {
|
filterProfile(query: string) {
|
||||||
|
@ -341,7 +343,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
|
||||||
profileRequestItem.criteria = new ExploreDatasetCriteriaModel();
|
profileRequestItem.criteria = new ExploreDatasetCriteriaModel();
|
||||||
profileRequestItem.criteria.like = query;
|
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) {
|
filterOrganisation(value: string) {
|
||||||
|
@ -352,6 +354,6 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI
|
||||||
dataTableRequest.criteria = new OrganisationCriteria();
|
dataTableRequest.criteria = new OrganisationCriteria();
|
||||||
dataTableRequest.criteria.labelLike = value;
|
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 { SelectionModel } from '@angular/cdk/collections';
|
||||||
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
|
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
|
||||||
import { FormControl } from '@angular/forms';
|
import { FormControl } from '@angular/forms';
|
||||||
import { MatListOption, MatSelectionList } from '@angular/material';
|
import { MatListOption, MatSelectionList } from '@angular/material/list';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { takeUntil } from 'rxjs/operators';
|
|
||||||
import { BaseComponent } from '../../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../../core/common/base/base.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
@ -21,7 +23,7 @@ export class ExploreDmpFilterItemComponent extends BaseComponent implements OnIn
|
||||||
@Input()
|
@Input()
|
||||||
filterOptions: (value) => Observable<any[]>;
|
filterOptions: (value) => Observable<any[]>;
|
||||||
@Input()
|
@Input()
|
||||||
options: Observable<any[]> = Observable.of([]);
|
options: Observable<any[]> = observableOf([]);
|
||||||
@Input()
|
@Input()
|
||||||
displayTitleFunc: (value) => string;
|
displayTitleFunc: (value) => string;
|
||||||
@Input()
|
@Input()
|
||||||
|
@ -35,14 +37,14 @@ export class ExploreDmpFilterItemComponent extends BaseComponent implements OnIn
|
||||||
optionSearchControl = new FormControl('');
|
optionSearchControl = new FormControl('');
|
||||||
private selectedOptions: any[] = [];
|
private selectedOptions: any[] = [];
|
||||||
|
|
||||||
@ViewChild('optionsList') selectionList: MatSelectionList;
|
@ViewChild('optionsList', { static: true }) selectionList: MatSelectionList;
|
||||||
|
|
||||||
constructor() { super(); }
|
constructor() { super(); }
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
if (!this.multipleSelect) { this.selectionList.selectedOptions = new SelectionModel<MatListOption>(this.multipleSelect); }
|
if (!this.multipleSelect) { this.selectionList.selectedOptions = new SelectionModel<MatListOption>(this.multipleSelect); }
|
||||||
this.optionSearchControl.valueChanges.debounceTime(this.requestDelay)
|
this.optionSearchControl.valueChanges.pipe(debounceTime(this.requestDelay),
|
||||||
.distinctUntilChanged()
|
distinctUntilChanged(),)
|
||||||
.pipe(takeUntil(this._destroyed))
|
.pipe(takeUntil(this._destroyed))
|
||||||
.subscribe(x => { if (this.filterOptions) { this.options = this.filterOptions(x); } });
|
.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 { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild } from "@angular/core";
|
||||||
import { FormBuilder, FormControl, FormGroup } from "@angular/forms";
|
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 { ActivatedRoute } from "@angular/router";
|
||||||
import { TranslateService } from "@ngx-translate/core";
|
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 { ValidationErrorModel } from "../../../common/forms/validation/error-model/validation-error-model";
|
||||||
import { GrantStateType } from '../../../core/common/enum/grant-state-type';
|
import { GrantStateType } from '../../../core/common/enum/grant-state-type';
|
||||||
import { DataTableRequest } from "../../../core/model/data-table/data-table-request";
|
import { DataTableRequest } from "../../../core/model/data-table/data-table-request";
|
||||||
|
@ -50,7 +54,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
|
||||||
Active: string;
|
Active: string;
|
||||||
Inactive: string;
|
Inactive: string;
|
||||||
|
|
||||||
@ViewChild('facetAccordion') accordion: MatAccordion;
|
@ViewChild('facetAccordion', { static: false }) accordion: MatAccordion;
|
||||||
|
|
||||||
displayGrantStateValue = (option) => option['value'];
|
displayGrantStateValue = (option) => option['value'];
|
||||||
displayGrantStateLabel = (option) => option['label'];
|
displayGrantStateLabel = (option) => option['label'];
|
||||||
|
@ -67,8 +71,8 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
|
||||||
profileAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
profileAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterProfile.bind(this),
|
filterFn: this.filterProfile.bind(this),
|
||||||
initialItems: (excludedItems: any[]) =>
|
initialItems: (excludedItems: any[]) =>
|
||||||
this.getProfiles()
|
this.getProfiles().pipe(
|
||||||
.map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
|
map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
|
||||||
displayFn: (item) => item['label'],
|
displayFn: (item) => item['label'],
|
||||||
titleFn: (item) => item['label']
|
titleFn: (item) => item['label']
|
||||||
};
|
};
|
||||||
|
@ -76,8 +80,8 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
|
||||||
organizationAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
organizationAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterOrganisation.bind(this),
|
filterFn: this.filterOrganisation.bind(this),
|
||||||
initialItems: (excludedItems: any[]) =>
|
initialItems: (excludedItems: any[]) =>
|
||||||
this.getOrganisations()
|
this.getOrganisations().pipe(
|
||||||
.map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
|
map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
|
||||||
displayFn: (item) => item['name'],
|
displayFn: (item) => item['name'],
|
||||||
titleFn: (item) => item['name']
|
titleFn: (item) => item['name']
|
||||||
}
|
}
|
||||||
|
@ -85,8 +89,8 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
|
||||||
grantAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
grantAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
|
||||||
filterFn: this.filterGrant.bind(this),
|
filterFn: this.filterGrant.bind(this),
|
||||||
initialItems: (excludedItems: any[]) =>
|
initialItems: (excludedItems: any[]) =>
|
||||||
this.filterGrant('')
|
this.filterGrant('').pipe(
|
||||||
.map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)),
|
map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))),
|
||||||
displayFn: (item) => item['label'],
|
displayFn: (item) => item['label'],
|
||||||
titleFn: (item) => item['label']
|
titleFn: (item) => item['label']
|
||||||
}
|
}
|
||||||
|
@ -111,7 +115,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
setTimeout(x => {
|
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.INACTIVE'), value: GrantStateType.Finished },
|
||||||
{ label: this.languageService.instant('FACET-SEARCH.GRANT-STATUS.OPTIONS.ACTIVE'), value: GrantStateType.OnGoing },
|
{ 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();
|
this.profiles = this.datasetProfileService.getDatasetProfiles();
|
||||||
const fields: Array<string> = new Array<string>();
|
const fields: Array<string> = new Array<string>();
|
||||||
fields.push('asc');
|
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 {
|
ngAfterViewInit(): void {
|
||||||
|
@ -150,7 +154,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
|
||||||
|
|
||||||
const dataTableRequest: DataTableRequest<GrantCriteria> = new DataTableRequest(0, null, { fields: fields });
|
const dataTableRequest: DataTableRequest<GrantCriteria> = new DataTableRequest(0, null, { fields: fields });
|
||||||
dataTableRequest.criteria = grantCriteria;
|
dataTableRequest.criteria = grantCriteria;
|
||||||
return this.grantService.getPublicPaged(dataTableRequest).map(x => x.data);
|
return this.grantService.getPublicPaged(dataTableRequest).pipe(map(x => x.data));
|
||||||
}
|
}
|
||||||
|
|
||||||
grantStatusChanged(event) {
|
grantStatusChanged(event) {
|
||||||
|
@ -160,7 +164,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
|
||||||
// if (!event.source.checked) {
|
// if (!event.source.checked) {
|
||||||
if (event.value === 'null') {
|
if (event.value === 'null') {
|
||||||
this.facetCriteria.grantStatus = null;
|
this.facetCriteria.grantStatus = null;
|
||||||
this.grants = Observable.of([]);
|
this.grants = observableOf([]);
|
||||||
this.facetCriteria.grants = [];
|
this.facetCriteria.grants = [];
|
||||||
}
|
}
|
||||||
// if (event.checked) {
|
// if (event.checked) {
|
||||||
|
@ -174,7 +178,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
|
||||||
dataTableRequest.criteria.grantStateType = this.facetCriteria.grantStatus;
|
dataTableRequest.criteria.grantStateType = this.facetCriteria.grantStatus;
|
||||||
dataTableRequest.criteria['length'] = 10;
|
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.facetCriteria.grants = [];
|
||||||
}
|
}
|
||||||
this.facetCriteriaChange.emit(this.facetCriteria);
|
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 });
|
const dataTableRequest: DataTableRequest<OrganisationCriteria> = new DataTableRequest(0, null, { fields: fields });
|
||||||
dataTableRequest.criteria = new OrganisationCriteria();
|
dataTableRequest.criteria = new OrganisationCriteria();
|
||||||
dataTableRequest.criteria.labelLike = value;
|
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) {
|
removeOrganisation(organisation) {
|
||||||
|
@ -292,7 +296,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
|
||||||
const dataTableRequest: DataTableRequest<OrganisationCriteria> = new DataTableRequest(0, null, { fields: fields });
|
const dataTableRequest: DataTableRequest<OrganisationCriteria> = new DataTableRequest(0, null, { fields: fields });
|
||||||
dataTableRequest.criteria = new OrganisationCriteria();
|
dataTableRequest.criteria = new OrganisationCriteria();
|
||||||
dataTableRequest.criteria.labelLike = '';
|
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) {
|
filterGrant(query: string) {
|
||||||
|
@ -301,7 +305,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
|
||||||
const grantRequestItem: DataTableRequest<GrantCriteria> = new DataTableRequest(0, null, { fields: fields });
|
const grantRequestItem: DataTableRequest<GrantCriteria> = new DataTableRequest(0, null, { fields: fields });
|
||||||
grantRequestItem.criteria = new GrantCriteria();
|
grantRequestItem.criteria = new GrantCriteria();
|
||||||
grantRequestItem.criteria.like = query;
|
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) {
|
filterProfile(query: string) {
|
||||||
|
@ -311,7 +315,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
|
||||||
profileRequestItem.criteria = new ExploreDatasetCriteriaModel();
|
profileRequestItem.criteria = new ExploreDatasetCriteriaModel();
|
||||||
profileRequestItem.criteria.like = query;
|
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) {
|
filterOrganisation(value: string) {
|
||||||
|
@ -322,7 +326,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
|
||||||
dataTableRequest.criteria = new OrganisationCriteria();
|
dataTableRequest.criteria = new OrganisationCriteria();
|
||||||
dataTableRequest.criteria.labelLike = value;
|
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) {
|
displayLabel(value) {
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
|
|
||||||
|
import {of as observableOf, Observable } from 'rxjs';
|
||||||
import { Component, OnInit, ViewChild } from "@angular/core";
|
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 { Router, ActivatedRoute } from "@angular/router";
|
||||||
import { takeUntil } from "rxjs/operators";
|
import { takeUntil } from "rxjs/operators";
|
||||||
import { BaseComponent } from "../../core/common/base/base.component";
|
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 { DmpListingModel } from "../../core/model/dmp/dmp-listing";
|
||||||
import { ExploreDmpCriteriaModel } from "../../core/query/explore-dmp/explore-dmp-criteria";
|
import { ExploreDmpCriteriaModel } from "../../core/query/explore-dmp/explore-dmp-criteria";
|
||||||
import { DmpService } from "../../core/services/dmp/dmp.service";
|
import { DmpService } from "../../core/services/dmp/dmp.service";
|
||||||
import { Observable } from "rxjs";
|
|
||||||
import { IBreadCrumbComponent } from "../misc/breadcrumb/definition/IBreadCrumbComponent";
|
import { IBreadCrumbComponent } from "../misc/breadcrumb/definition/IBreadCrumbComponent";
|
||||||
import { BreadcrumbItem } from "../misc/breadcrumb/definition/breadcrumb-item";
|
import { BreadcrumbItem } from "../misc/breadcrumb/definition/breadcrumb-item";
|
||||||
import { TranslateService } from "@ngx-translate/core";
|
import { TranslateService } from "@ngx-translate/core";
|
||||||
|
@ -19,8 +21,8 @@ import { TranslateService } from "@ngx-translate/core";
|
||||||
})
|
})
|
||||||
export class ExploreDmpListingComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
|
export class ExploreDmpListingComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
|
||||||
|
|
||||||
@ViewChild(MatPaginator) _paginator: MatPaginator;
|
@ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator;
|
||||||
@ViewChild(MatSort) sort: MatSort;
|
@ViewChild(MatSort, { static: false }) sort: MatSort;
|
||||||
|
|
||||||
exploreDmpCriteriaModel: ExploreDmpCriteriaModel;
|
exploreDmpCriteriaModel: ExploreDmpCriteriaModel;
|
||||||
titlePrefix: string;
|
titlePrefix: string;
|
||||||
|
@ -46,7 +48,7 @@ export class ExploreDmpListingComponent extends BaseComponent implements OnInit,
|
||||||
label: this.language.instant('NAV-BAR.PUBLIC-DMPS'),
|
label: this.language.instant('NAV-BAR.PUBLIC-DMPS'),
|
||||||
url: "/explore-plans"
|
url: "/explore-plans"
|
||||||
})
|
})
|
||||||
this.breadCrumbs = Observable.of(breadCrumbs);
|
this.breadCrumbs = observableOf(breadCrumbs);
|
||||||
}
|
}
|
||||||
|
|
||||||
refresh() {
|
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 { Component, OnInit } from '@angular/core';
|
||||||
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
|
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 { ActivatedRoute, Params, Router } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { takeUntil } from 'rxjs/operators';
|
|
||||||
import { environment } from '../../../../environments/environment';
|
import { environment } from '../../../../environments/environment';
|
||||||
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
|
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
|
||||||
import { BaseComponent } from '../../../core/common/base/base.component';
|
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 {
|
export class GrantEditorComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
|
||||||
|
|
||||||
breadCrumbs: Observable<BreadcrumbItem[]> = Observable.of([]);
|
breadCrumbs: Observable<BreadcrumbItem[]> = observableOf([]);
|
||||||
isNew = true;
|
isNew = true;
|
||||||
grant: GrantEditorModel;
|
grant: GrantEditorModel;
|
||||||
formGroup: FormGroup = null;
|
formGroup: FormGroup = null;
|
||||||
|
@ -55,7 +58,7 @@ export class GrantEditorComponent extends BaseComponent implements OnInit, IBrea
|
||||||
|
|
||||||
if (itemId != null) {
|
if (itemId != null) {
|
||||||
this.isNew = false;
|
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))
|
.pipe(takeUntil(this._destroyed))
|
||||||
.subscribe(data => {
|
.subscribe(data => {
|
||||||
this.grant = new GrantEditorModel().fromModel(data);
|
this.grant = new GrantEditorModel().fromModel(data);
|
||||||
|
@ -71,11 +74,11 @@ export class GrantEditorComponent extends BaseComponent implements OnInit, IBrea
|
||||||
label: this.grant.label,
|
label: this.grant.label,
|
||||||
url: '/grants/edit/' + this.grant.id
|
url: '/grants/edit/' + this.grant.id
|
||||||
});
|
});
|
||||||
this.breadCrumbs = Observable.of(breadCrumbs);
|
this.breadCrumbs = observableOf(breadCrumbs);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
this.language.get('QUICKWIZARD.CREATE-ADD.CREATE.QUICKWIZARD_CREATE.ACTIONS.CREATE-NEW-GRANT').pipe(takeUntil(this._destroyed)).subscribe(x => {
|
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,
|
parentComponentName: null,
|
||||||
label: this.language.instant('NAV-BAR.GRANTS').toUpperCase(),
|
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 { GrantStateType } from '../../../../core/common/enum/grant-state-type';
|
||||||
import { GrantCriteria } from '../../../../core/query/grant/grant-criteria';
|
import { GrantCriteria } from '../../../../core/query/grant/grant-criteria';
|
||||||
import { BaseCriteriaComponent } from '../../../misc/criteria/base-criteria.component';
|
import { BaseCriteriaComponent } from '../../../misc/criteria/base-criteria.component';
|
||||||
import { ErrorStateMatcher } from '@angular/material';
|
import { ErrorStateMatcher } from '@angular/material/core';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-grant-criteria-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 { 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 { Router, ActivatedRoute, Params } from '@angular/router';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { takeUntil } from 'rxjs/operators';
|
import { takeUntil } from 'rxjs/operators';
|
||||||
import { BaseComponent } from '../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../core/common/base/base.component';
|
||||||
import { DataTableRequest } from '../../../core/model/data-table/data-table-request';
|
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 {
|
export class GrantListingComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
|
||||||
|
|
||||||
@ViewChild(MatPaginator) _paginator: MatPaginator;
|
@ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator;
|
||||||
@ViewChild(MatSort) sort: MatSort;
|
@ViewChild(MatSort, { static: false }) sort: MatSort;
|
||||||
@ViewChild(GrantCriteriaComponent) criteria: GrantCriteriaComponent;
|
@ViewChild(GrantCriteriaComponent, { static: true }) criteria: GrantCriteriaComponent;
|
||||||
|
|
||||||
breadCrumbs: Observable<BreadcrumbItem[]>;
|
breadCrumbs: Observable<BreadcrumbItem[]>;
|
||||||
totalCount: number;
|
totalCount: number;
|
||||||
|
@ -43,7 +45,7 @@ export class GrantListingComponent extends BaseComponent implements OnInit, IBre
|
||||||
this.refresh();
|
this.refresh();
|
||||||
this.criteria.setRefreshCallback((resetPages) => this.refresh(resetPages));
|
this.criteria.setRefreshCallback((resetPages) => this.refresh(resetPages));
|
||||||
|
|
||||||
this.breadCrumbs = Observable.of([{
|
this.breadCrumbs = observableOf([{
|
||||||
parentComponentName: null,
|
parentComponentName: null,
|
||||||
label: this.language.instant('NAV-BAR.GRANTS').toUpperCase(),
|
label: this.language.instant('NAV-BAR.GRANTS').toUpperCase(),
|
||||||
url: '/grants'
|
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 { Component, OnInit } from '@angular/core';
|
||||||
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
|
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { BreadcrumbItem } from './definition/breadcrumb-item';
|
import { BreadcrumbItem } from './definition/breadcrumb-item';
|
||||||
import { BreadCrumbResolverService } from './service/breadcrumb.service';
|
import { BreadCrumbResolverService } from './service/breadcrumb.service';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
@ -11,10 +14,10 @@ import { TranslateService } from '@ngx-translate/core';
|
||||||
styleUrls: ['./breadcrumb.component.scss']
|
styleUrls: ['./breadcrumb.component.scss']
|
||||||
})
|
})
|
||||||
export class BreadcrumbComponent implements OnInit {
|
export class BreadcrumbComponent implements OnInit {
|
||||||
breadcrumbs$ = this.router.events
|
breadcrumbs$ = this.router.events.pipe(
|
||||||
.filter(event => event instanceof NavigationEnd)
|
filter(event => event instanceof NavigationEnd),
|
||||||
.distinctUntilChanged()
|
distinctUntilChanged(),
|
||||||
.flatMap(event => this.buildBreadCrumb(this.activatedRoute.root));
|
mergeMap(event => this.buildBreadCrumb(this.activatedRoute.root)),);
|
||||||
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
@ -30,15 +33,15 @@ export class BreadcrumbComponent implements OnInit {
|
||||||
|
|
||||||
buildBreadCrumb(route: ActivatedRoute): Observable<BreadcrumbItem[]> {
|
buildBreadCrumb(route: ActivatedRoute): Observable<BreadcrumbItem[]> {
|
||||||
if (this.breadCrumbService.resolve(route)) {
|
if (this.breadCrumbService.resolve(route)) {
|
||||||
return this.breadCrumbService.resolve(route).map(x => {
|
return this.breadCrumbService.resolve(route).pipe(map(x => {
|
||||||
x.unshift({
|
x.unshift({
|
||||||
label: this.language.instant('NAV-BAR.HOME'),
|
label: this.language.instant('NAV-BAR.HOME'),
|
||||||
url: '/home',
|
url: '/home',
|
||||||
icon: 'dashboard'
|
icon: 'dashboard'
|
||||||
}); return x;
|
}); return x;
|
||||||
});
|
}));
|
||||||
}
|
}
|
||||||
return Observable.of([]);
|
return observableOf([]);
|
||||||
}
|
}
|
||||||
|
|
||||||
navigate(url, params) {
|
navigate(url, params) {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
|
|
||||||
|
import {of as observableOf, Observable } from 'rxjs';
|
||||||
import { Injectable, NgZone } from '@angular/core';
|
import { Injectable, NgZone } from '@angular/core';
|
||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { takeUntil } from 'rxjs/operators';
|
import { takeUntil } from 'rxjs/operators';
|
||||||
import { BaseService } from '../../../../core/common/base/base.service';
|
import { BaseService } from '../../../../core/common/base/base.service';
|
||||||
import { BreadcrumbItem } from '../definition/breadcrumb-item';
|
import { BreadcrumbItem } from '../definition/breadcrumb-item';
|
||||||
|
@ -11,7 +12,7 @@ export class BreadCrumbResolverService extends BaseService {
|
||||||
|
|
||||||
private activeComponents = [];
|
private activeComponents = [];
|
||||||
private parentComponents = [];
|
private parentComponents = [];
|
||||||
private breadCrumbs: Observable<BreadcrumbItem[]> = Observable.of([]);
|
private breadCrumbs: Observable<BreadcrumbItem[]> = observableOf([]);
|
||||||
constructor(
|
constructor(
|
||||||
private router: Router,
|
private router: Router,
|
||||||
private zone: NgZone
|
private zone: NgZone
|
||||||
|
@ -25,7 +26,7 @@ export class BreadCrumbResolverService extends BaseService {
|
||||||
|
|
||||||
public clear() {
|
public clear() {
|
||||||
this.activeComponents.length = 0;
|
this.activeComponents.length = 0;
|
||||||
this.breadCrumbs = Observable.of([]);
|
this.breadCrumbs = observableOf([]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public resolve(activatedRoute: ActivatedRoute): Observable<BreadcrumbItem[]> {
|
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 => {
|
this.activeComponents.filter(x => routeComponents.indexOf(x.constructor.name) !== -1).forEach(x => {
|
||||||
if (x.hasOwnProperty('breadCrumbs')) {
|
if (x.hasOwnProperty('breadCrumbs')) {
|
||||||
const componentItems = this.resolveDependentComponents((<IBreadCrumbComponent>x).breadCrumbs, []);
|
const componentItems = this.resolveDependentComponents((<IBreadCrumbComponent>x).breadCrumbs, []);
|
||||||
this.breadCrumbs = Observable.of(componentItems);
|
this.breadCrumbs = observableOf(componentItems);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return this.breadCrumbs;
|
return this.breadCrumbs;
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
|
|
||||||
|
import {map, takeUntil } from 'rxjs/operators';
|
||||||
import { Component, Input, OnInit } from '@angular/core';
|
import { Component, Input, OnInit } from '@angular/core';
|
||||||
import { FormGroup } from '@angular/forms';
|
import { FormGroup } from '@angular/forms';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
|
||||||
import { BaseComponent } from '../../../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../../../core/common/base/base.component';
|
||||||
import { DatasetProfileComboBoxType } from '../../../../../core/common/enum/dataset-profile-combo-box-type';
|
import { DatasetProfileComboBoxType } from '../../../../../core/common/enum/dataset-profile-combo-box-type';
|
||||||
import { DatasetProfileFieldViewStyle } from '../../../../../core/common/enum/dataset-profile-field-view-style';
|
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 });
|
const datasetsAutocompleteRequestItem: DataTableRequest<DatasetCriteria> = new DataTableRequest(0, 25, { fields: fields });
|
||||||
datasetsAutocompleteRequestItem.criteria = new DatasetCriteria();
|
datasetsAutocompleteRequestItem.criteria = new DatasetCriteria();
|
||||||
datasetsAutocompleteRequestItem.criteria.like = query;
|
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) {
|
searchDmps(query: string) {
|
||||||
|
@ -145,7 +146,7 @@ export class FormFieldComponent extends BaseComponent implements OnInit {
|
||||||
const dmpsAutocompleteRequestItem: DataTableRequest<DmpCriteria> = new DataTableRequest(0, 25, { fields: fields });
|
const dmpsAutocompleteRequestItem: DataTableRequest<DmpCriteria> = new DataTableRequest(0, 25, { fields: fields });
|
||||||
dmpsAutocompleteRequestItem.criteria = new DmpCriteria();
|
dmpsAutocompleteRequestItem.criteria = new DmpCriteria();
|
||||||
dmpsAutocompleteRequestItem.criteria.like = query;
|
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 {
|
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 { FormGroup } from '@angular/forms';
|
||||||
import { MatStepper } from '@angular/material';
|
import { MatStepper } from '@angular/material/stepper';
|
||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import 'rxjs/add/operator/switchMap';
|
|
||||||
import { takeUntil } from 'rxjs/operators';
|
import { takeUntil } from 'rxjs/operators';
|
||||||
import { Pair } from '../../../common/types/pair';
|
import { Pair } from '../../../common/types/pair';
|
||||||
import { BaseComponent } from '../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../core/common/base/base.component';
|
||||||
|
|
|
@ -32,11 +32,11 @@ export class HelpContentComponent extends BaseComponent implements OnInit {
|
||||||
.pipe(takeUntil(this._destroyed))
|
.pipe(takeUntil(this._destroyed))
|
||||||
.subscribe(event => {
|
.subscribe(event => {
|
||||||
if (event instanceof NavigationStart) {
|
if (event instanceof NavigationStart) {
|
||||||
this._helpContentService.getActivePageContent(event['url'])
|
// this._helpContentService.getActivePageContent(event['url'])
|
||||||
.pipe(takeUntil(this._destroyed))
|
// .pipe(takeUntil(this._destroyed))
|
||||||
.subscribe(
|
// .subscribe(
|
||||||
pageContent => this.shiftThroughContent(pageContent),
|
// pageContent => this.shiftThroughContent(pageContent),
|
||||||
error => this.handleError(<any>error));
|
// error => this.handleError(<any>error));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
|
|
||||||
|
import {mergeMap, distinctUntilChanged, debounceTime, takeUntil } from 'rxjs/operators';
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { FormControl } from '@angular/forms';
|
import { FormControl } from '@angular/forms';
|
||||||
import { MatDialog } from '@angular/material';
|
import { MatDialog } from '@angular/material/dialog';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
|
||||||
import { BaseComponent } from '../../../core/common/base/base.component';
|
import { BaseComponent } from '../../../core/common/base/base.component';
|
||||||
import { AppRole } from '../../../core/common/enum/app-role';
|
import { AppRole } from '../../../core/common/enum/app-role';
|
||||||
import { SearchBarItem } from '../../../core/model/dashboard/search-bar-item';
|
import { SearchBarItem } from '../../../core/model/dashboard/search-bar-item';
|
||||||
|
@ -59,9 +60,9 @@ export class NavigationComponent extends BaseComponent implements OnInit {
|
||||||
titleFn: (item) => item['label']
|
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);
|
return this.searchBarService.search(x);
|
||||||
});
|
}),);
|
||||||
}
|
}
|
||||||
|
|
||||||
searchGrant(query: string) {
|
searchGrant(query: string) {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component, Inject, OnInit } from '@angular/core';
|
import { Component, Inject, OnInit } from '@angular/core';
|
||||||
import { FormGroup } from '@angular/forms';
|
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 { Router } from '@angular/router';
|
||||||
import { Principal } from '../../../../core/model/auth/Principal';
|
import { Principal } from '../../../../core/model/auth/Principal';
|
||||||
import { AuthService } from '../../../../core/services/auth/auth.service';
|
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 { Component, OnInit } from "@angular/core";
|
||||||
import { AuthService } from '../../../core/services/auth/auth.service';
|
import { AuthService } from '../../../core/services/auth/auth.service';
|
||||||
import { FormControl } from "@angular/forms";
|
import { FormControl } from "@angular/forms";
|
||||||
|
@ -25,9 +27,9 @@ export class SearchComponent implements OnInit {
|
||||||
constructor(private authentication: AuthService, private router: Router, private searchBarService: SearchBarService) {}
|
constructor(private authentication: AuthService, private router: Router, private searchBarService: SearchBarService) {}
|
||||||
|
|
||||||
ngOnInit() {
|
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);
|
return this.searchBarService.search(x);
|
||||||
});
|
}),);
|
||||||
}
|
}
|
||||||
|
|
||||||
public isAuthenticated(): boolean {
|
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 { Location, LocationStrategy, PathLocationStrategy } from '@angular/common';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { AuthService } from '../../core/services/auth/auth.service';
|
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 { UserDialogComponent } from '../misc/navigation/user-dialog/user-dialog.component';
|
||||||
import { AppRole } from '../../core/common/enum/app-role';
|
import { AppRole } from '../../core/common/enum/app-role';
|
||||||
import { ProgressIndicationService } from '../../core/services/progress-indication/progress-indication-service';
|
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 { Component, Input, OnInit } from '@angular/core';
|
||||||
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
|
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 { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
|
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
|
||||||
import { BaseComponent } from "../../../core/common/base/base.component";
|
import { BaseComponent } from "../../../core/common/base/base.component";
|
||||||
import { DatasetProfileModel } from '../../../core/model/dataset/dataset-profile';
|
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 {
|
export class DmpEditorWizardComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
|
||||||
|
|
||||||
breadCrumbs: Observable<BreadcrumbItem[]> = Observable.of([]);
|
breadCrumbs: Observable<BreadcrumbItem[]> = observableOf([]);
|
||||||
|
|
||||||
isNew = true;
|
isNew = true;
|
||||||
dmp: DmpEditorWizardModel;
|
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.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',
|
parentComponentName: 'grant',
|
||||||
label: this.language.instant('NAV-BAR.DMP'),
|
label: this.language.instant('NAV-BAR.DMP'),
|
||||||
url: '/quick-wizard/dmp'
|
url: '/quick-wizard/dmp'
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
|
|
||||||
|
import {of as observableOf, Observable } from 'rxjs';
|
||||||
import { Component, Input, OnInit } from '@angular/core';
|
import { Component, Input, OnInit } from '@angular/core';
|
||||||
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
|
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 { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
|
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
|
||||||
import { BaseComponent } from "../../../core/common/base/base.component";
|
import { BaseComponent } from "../../../core/common/base/base.component";
|
||||||
import { GrantCriteria } from '../../../core/query/grant/grant-criteria';
|
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']
|
styleUrls: ['./grant-editor-wizard.component.scss']
|
||||||
})
|
})
|
||||||
export class GrantEditorWizardComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
|
export class GrantEditorWizardComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
|
||||||
breadCrumbs: Observable<BreadcrumbItem[]> = Observable.of([]);
|
breadCrumbs: Observable<BreadcrumbItem[]> = observableOf([]);
|
||||||
|
|
||||||
isNew = false;
|
isNew = false;
|
||||||
grant: GrantEditorWizardModel;
|
grant: GrantEditorWizardModel;
|
||||||
|
@ -42,7 +43,7 @@ export class GrantEditorWizardComponent extends BaseComponent implements OnInit,
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.breadCrumbs = Observable.of([{
|
this.breadCrumbs = observableOf([{
|
||||||
parentComponentName: 'QuickCreate',
|
parentComponentName: 'QuickCreate',
|
||||||
label: this.language.instant('NAV-BAR.GRANT'),
|
label: this.language.instant('NAV-BAR.GRANT'),
|
||||||
url: '/quick-wizard/grant'
|
url: '/quick-wizard/grant'
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
|
|
||||||
|
import {of as observableOf, Observable } from 'rxjs';
|
||||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
|
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 { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { takeUntil } from 'rxjs/operators';
|
import { takeUntil } from 'rxjs/operators';
|
||||||
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
|
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
|
||||||
import { BaseComponent } from "../../../core/common/base/base.component";
|
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 {
|
export class QuickWizardEditorComponent extends BaseComponent implements OnInit, IBreadCrumbComponent {
|
||||||
|
|
||||||
breadCrumbs: Observable<BreadcrumbItem[]> = Observable.of([]);
|
breadCrumbs: Observable<BreadcrumbItem[]> = observableOf([]);
|
||||||
@ViewChild('stepper') stepper: MatStepper;
|
@ViewChild('stepper', { static: true }) stepper: MatStepper;
|
||||||
@ViewChild(DatasetEditorWizardComponent) datasetEditorWizardComponent: DatasetEditorWizardComponent;
|
@ViewChild(DatasetEditorWizardComponent, { static: false }) datasetEditorWizardComponent: DatasetEditorWizardComponent;
|
||||||
isNew = true;
|
isNew = true;
|
||||||
quickWizard: QuickWizardEditorWizardModel;
|
quickWizard: QuickWizardEditorWizardModel;
|
||||||
allDatasets: DmpFinalizeDialogDataset[] = [];
|
allDatasets: DmpFinalizeDialogDataset[] = [];
|
||||||
|
@ -57,7 +60,7 @@ export class QuickWizardEditorComponent extends BaseComponent implements OnInit,
|
||||||
this.quickWizard.project = new ProjectFormModel();
|
this.quickWizard.project = new ProjectFormModel();
|
||||||
this.formGroup = this.quickWizard.buildForm();
|
this.formGroup = this.quickWizard.buildForm();
|
||||||
this.language.get('NAV-BAR.DMP-WIZARD').pipe(takeUntil(this._destroyed)).subscribe(x => {
|
this.language.get('NAV-BAR.DMP-WIZARD').pipe(takeUntil(this._destroyed)).subscribe(x => {
|
||||||
this.breadCrumbs = Observable.of([
|
this.breadCrumbs = observableOf([
|
||||||
{
|
{
|
||||||
parentComponentName: 'Dashboard',
|
parentComponentName: 'Dashboard',
|
||||||
label: x,
|
label: x,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component, Inject } from '@angular/core';
|
import { Component, Inject } from '@angular/core';
|
||||||
import { FormGroup } from '@angular/forms';
|
import { FormGroup } from '@angular/forms';
|
||||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
|
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-faq-dialog',
|
selector: 'app-faq-dialog',
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component, Inject } from '@angular/core';
|
import { Component, Inject } from '@angular/core';
|
||||||
import { FormGroup } from '@angular/forms';
|
import { FormGroup } from '@angular/forms';
|
||||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
|
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-glossary-dialog',
|
selector: 'app-glossary-dialog',
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
|
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 { TranslateService } from '@ngx-translate/core';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
import { takeUntil } from 'rxjs/operators';
|
||||||
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
|
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { MatDialog } from '@angular/material';
|
import { MatDialog } from '@angular/material/dialog';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { AuthService } from '../../core/services/auth/auth.service';
|
import { AuthService } from '../../core/services/auth/auth.service';
|
||||||
import { UserDialogComponent } from '../misc/navigation/user-dialog/user-dialog.component';
|
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 { ActivatedRoute, Params, Router } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import * as moment from 'moment-timezone';
|
import * as moment from 'moment-timezone';
|
||||||
import { takeUntil } from 'rxjs/operators';
|
import { Observable, of } from 'rxjs';
|
||||||
import { Observable } from 'rxjs/Rx';
|
import { map, takeUntil } from 'rxjs/operators';
|
||||||
import { BaseComponent } from '../../core/common/base/base.component';
|
import { BaseComponent } from '../../core/common/base/base.component';
|
||||||
import { CultureInfo } from '../../core/model/culture-info';
|
import { CultureInfo } from '../../core/model/culture-info';
|
||||||
|
import { DmpModel } from '../../core/model/dmp/dmp';
|
||||||
import { UserListingModel } from '../../core/model/user/user-listing';
|
import { UserListingModel } from '../../core/model/user/user-listing';
|
||||||
import { AuthService } from '../../core/services/auth/auth.service';
|
import { AuthService } from '../../core/services/auth/auth.service';
|
||||||
import { CultureService } from '../../core/services/culture/culture-service';
|
import { CultureService } from '../../core/services/culture/culture-service';
|
||||||
import { UserService } from '../../core/services/user/user.service';
|
import { UserService } from '../../core/services/user/user.service';
|
||||||
import { DmpModel } from '../../core/model/dmp/dmp';
|
|
||||||
|
|
||||||
const availableLanguages: any[] = require('../../../assets/resources/language.json');
|
const availableLanguages: any[] = require('../../../assets/resources/language.json');
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ export class UserProfileComponent extends BaseComponent implements OnInit, OnDes
|
||||||
.subscribe((params: Params) => {
|
.subscribe((params: Params) => {
|
||||||
this.currentUserId = this.authService.current().id;
|
this.currentUserId = this.authService.current().id;
|
||||||
const userId = !params['id'] ? 'me' : params['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']);
|
result['additionalinfo'] = JSON.parse(result['additionalinfo']);
|
||||||
this.formGroup = new FormBuilder().group({
|
this.formGroup = new FormBuilder().group({
|
||||||
language: new FormControl(result['additionalinfo']['language'] ? availableLanguages.filter(x => x.value === result['additionalinfo']['language']['value']).pop() : '', [Validators.required]),
|
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); } });
|
.subscribe(x => { if (x) { this.cultures = this._filterCulture(x); } });
|
||||||
this.formGroup.disable();
|
this.formGroup.disable();
|
||||||
return result;
|
return result;
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -91,18 +91,18 @@ export class UserProfileComponent extends BaseComponent implements OnInit, OnDes
|
||||||
private _filterTimezone(value: string): Observable<any[]> {
|
private _filterTimezone(value: string): Observable<any[]> {
|
||||||
if (value && typeof value === 'string') {
|
if (value && typeof value === 'string') {
|
||||||
const filterValue = value.toLowerCase();
|
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 {
|
} else {
|
||||||
return Observable.of(moment.tz.names());
|
return of(moment.tz.names());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private _filterCulture(value: string): Observable<any[]> {
|
private _filterCulture(value: string): Observable<any[]> {
|
||||||
if (value && typeof value === 'string') {
|
if (value && typeof value === 'string') {
|
||||||
const filterValue = value.toLowerCase();
|
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 {
|
} else {
|
||||||
return Observable.of(this.cultureService.getCultureValues());
|
return of(this.cultureService.getCultureValues());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,36 +11,20 @@
|
||||||
* automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
|
* automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
|
||||||
* Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
|
* 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/es7/array';
|
||||||
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';
|
|
||||||
|
|
||||||
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
|
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
|
||||||
//import 'classlist.js'; // Run `npm install --save classlist.js`.
|
//import 'classlist.js'; // Run `npm install --save classlist.js`.
|
||||||
|
|
||||||
/** Evergreen browsers require these. **/
|
/** Evergreen browsers require these. **/
|
||||||
import 'core-js/es6/reflect';
|
import 'core-js/es6/reflect';
|
||||||
import 'core-js/es7/reflect';
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -3,8 +3,6 @@
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"outDir": "../out-tsc/spec",
|
"outDir": "../out-tsc/spec",
|
||||||
"baseUrl": "./",
|
"baseUrl": "./",
|
||||||
"module": "commonjs",
|
|
||||||
"target": "es5",
|
|
||||||
"types": [
|
"types": [
|
||||||
"jasmine",
|
"jasmine",
|
||||||
"node"
|
"node"
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
{
|
{
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"target": "es5",
|
"downlevelIteration": true,
|
||||||
"module": "commonjs",
|
"importHelpers": true,
|
||||||
|
"target": "es2015",
|
||||||
|
"module": "esnext",
|
||||||
"moduleResolution": "node",
|
"moduleResolution": "node",
|
||||||
"sourceMap": true,
|
"sourceMap": true,
|
||||||
"emitDecoratorMetadata": true,
|
"emitDecoratorMetadata": true,
|
||||||
|
|
|
@ -136,12 +136,12 @@
|
||||||
"app",
|
"app",
|
||||||
"kebab-case"
|
"kebab-case"
|
||||||
],
|
],
|
||||||
"use-input-property-decorator": true,
|
"no-inputs-metadata-property": true,
|
||||||
"use-output-property-decorator": true,
|
"no-outputs-metadata-property": true,
|
||||||
"use-host-property-decorator": true,
|
"no-host-metadata-property": true,
|
||||||
"no-input-rename": true,
|
"no-input-rename": true,
|
||||||
"no-output-rename": true,
|
"no-output-rename": true,
|
||||||
"use-life-cycle-interface": true,
|
"use-lifecycle-interface": true,
|
||||||
"use-pipe-transform-interface": true,
|
"use-pipe-transform-interface": true,
|
||||||
"component-class-suffix": true,
|
"component-class-suffix": true,
|
||||||
"directive-class-suffix": true
|
"directive-class-suffix": true
|
||||||
|
|
Loading…
Reference in New Issue