no message
This commit is contained in:
parent
eab18999ec
commit
a6e79e3551
|
@ -27,7 +27,8 @@ const appRoutes: Routes = [
|
|||
{ path: 'dmp/:id', component: DataManagementPlanEditorComponent, canActivate: [AuthGuard] },
|
||||
{ path: 'dmps/new', component: DataManagementPlanEditorComponent, canActivate: [AuthGuard] },
|
||||
{ path: 'datasets', component: DatasetListingComponent, canActivate: [AuthGuard] },
|
||||
{ path: 'dataset/new', component: DatasetWizardComponent, canActivate: [AuthGuard] },
|
||||
//{ path: 'dataset/new', component: DatasetWizardComponent, canActivate: [AuthGuard] },
|
||||
{ path: 'dataset/new/:dmpId', component: DatasetWizardComponent, canActivate: [AuthGuard] },
|
||||
{ path: 'dataset/:id', component: DatasetWizardComponent, canActivate: [AuthGuard] },
|
||||
{ path: 'datasets/new', component: DatasetWizardComponent, canActivate: [AuthGuard] },
|
||||
{ path: 'invitation/:id', component: InvitationAcceptedComponent},
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
export const HostConfiguration = {
|
||||
Server: 'http://localhost:4200/',
|
||||
Server: 'http://192.168.32.73:8080/',
|
||||
App: 'http://localhost:4200/'
|
||||
//CASHost: 'https://login-devel.uoa.gr/login',
|
||||
//Service: 'http://elkefinman/login'
|
||||
|
|
|
@ -1,33 +1,97 @@
|
|||
<div class="data-management-plan-editor">
|
||||
<div class="dataset-wizard">
|
||||
<mat-horizontal-stepper [linear]="isLinear">
|
||||
<mat-step [stepControl]="formGroup">
|
||||
<form *ngIf="formGroup" [formGroup]="formGroup">
|
||||
<ng-template matStepLabel>{{'DATASET-WIZARD.FIRST-STEP.TITLE' | translate}}</ng-template>
|
||||
<auto-complete class="mat-form-field-full-width" placeholder="{{'DATASET-WIZARD.FIRST-STEP.DMP' | translate}}" [configuration]="dmpAutoCompleteConfiguration"
|
||||
<!-- <auto-complete class="mat-form-field-full-width" placeholder="{{'DATASET-WIZARD.FIRST-STEP.DMP' | translate}}" [configuration]="dmpAutoCompleteConfiguration"
|
||||
titleKey="label" [control]="formGroup.get('dmp')" [required]="true">
|
||||
</auto-complete>
|
||||
<auto-complete class="mat-form-field-full-width" placeholder="{{'DATASET-WIZARD.FIRST-STEP.PROFILE' | translate}}" [configuration]="datasetProfileAutoCompleteConfiguration"
|
||||
</auto-complete> -->
|
||||
<!-- <auto-complete class="mat-form-field-full-width" placeholder="{{'DATASET-WIZARD.FIRST-STEP.PROFILE' | translate}}" [configuration]="datasetProfileAutoCompleteConfiguration"
|
||||
titleKey="label" [control]="formGroup.get('profile')" [required]="true" [disabled]="!formGroup.get('dmp').value">
|
||||
</auto-complete>
|
||||
<div>
|
||||
<button matStepperNext mat-raised-button color="primary">{{'DATASET-WIZARD.ACTIONS.NEXT' | translate}}</button>
|
||||
</auto-complete> -->
|
||||
<mat-form-field>
|
||||
<mat-select placeholder=" {{'DATASET-WIZARD.FIRST-STEP.PROFILE'| translate}}" formControlName="profile">
|
||||
<mat-option *ngFor="let profile of availableProfiles" [value]="profile">
|
||||
{{profile.label}}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
<mat-error *ngIf="baseErrorModel?.status">{{baseErrorModel['Criteria.status']}}</mat-error>
|
||||
</mat-form-field>
|
||||
<app-dataset-editor-component [formGroup]="formGroup"></app-dataset-editor-component>
|
||||
<div class="navigation-buttons-container">
|
||||
<button matStepperNext mat-raised-button style="float:right;" color="primary">{{'DATASET-WIZARD.ACTIONS.NEXT' | translate}}</button>
|
||||
</div>
|
||||
</form>
|
||||
</mat-step>
|
||||
<mat-step [stepControl]="formGroup">
|
||||
<form *ngIf="formGroup" [formGroup]="formGroup">
|
||||
<ng-template matStepLabel>{{'DATASET-WIZARD.SECOND-STEP.TITLE' | translate}}</ng-template>
|
||||
<app-dataset-editor-component [formGroup]="formGroup"></app-dataset-editor-component>
|
||||
<div>
|
||||
<td-chips color="accent" [items]="filtereddataRepositories" formControlName="dataRepositories" placeholder="{{'DATASET-EDITOR.FIELDS.DATAREPOSITORIES' | translate}}"
|
||||
(inputChange)="filterdataRepositories($event)" requireMatch>
|
||||
<ng-template td-chip let-chip="chip">
|
||||
<div class="tc-grey-100 bgc-teal-700" td-chip-avatar>{{chip.name.substring(0, 1).toUpperCase()}}</div>
|
||||
{{chip.name}}
|
||||
</ng-template>
|
||||
<ng-template td-autocomplete-option let-option="option">
|
||||
<div layout="row" layout-align="start center">
|
||||
{{option.name}}
|
||||
</div>
|
||||
</ng-template>
|
||||
<mat-progress-bar [style.height.px]="2" *ngIf="filtereddataRepositoriesAsync" mode="indeterminate"></mat-progress-bar>
|
||||
</td-chips>
|
||||
|
||||
<td-chips color="accent" [items]="filteredRegistries" formControlName="registries" placeholder="{{'DATASET-EDITOR.FIELDS.REGISTRIES' | translate}}"
|
||||
(inputChange)="filterRegistries($event)" requireMatch>
|
||||
<ng-template td-chip let-chip="chip">
|
||||
<div class="tc-grey-100 bgc-teal-700" td-chip-avatar>{{chip.label.substring(0, 1).toUpperCase()}}</div>
|
||||
{{chip.name}}
|
||||
</ng-template>
|
||||
<ng-template td-autocomplete-option let-option="option">
|
||||
<div layout="row" layout-align="start center">
|
||||
{{option.name}}
|
||||
</div>
|
||||
</ng-template>
|
||||
<mat-progress-bar [style.height.px]="2" *ngIf="filteredRegistriesAsync" mode="indeterminate"></mat-progress-bar>
|
||||
</td-chips>
|
||||
|
||||
<td-chips color="accent" [items]="filteredServices" formControlName="services" placeholder="{{'DATASET-EDITOR.FIELDS.SERVICES' | translate}}"
|
||||
(inputChange)="filterServices($event)" requireMatch>
|
||||
<ng-template td-chip let-chip="chip">
|
||||
<div class="tc-grey-100 bgc-teal-700" td-chip-avatar>{{chip.label.substring(0, 1).toUpperCase()}}</div>
|
||||
{{chip.name}}
|
||||
</ng-template>
|
||||
<ng-template td-autocomplete-option let-option="option">
|
||||
<div layout="row" layout-align="start center">
|
||||
{{option.name}}
|
||||
</div>
|
||||
</ng-template>
|
||||
<mat-progress-bar [style.height.px]="2" *ngIf="filteringServicesAsync" mode="indeterminate"></mat-progress-bar>
|
||||
</td-chips>
|
||||
|
||||
<td-chips color="accent" [items]="filteredExternalDatasets" formControlName="externalDatasets" placeholder="{{'DATASET-EDITOR.FIELDS.EXTERNAL-DATASETS' | translate}}"
|
||||
(inputChange)="filterExternalDatasets($event)" requireMatch>
|
||||
<ng-template td-chip let-chip="chip">
|
||||
<div class="tc-grey-100 bgc-teal-700" td-chip-avatar>{{chip.label.substring(0, 1).toUpperCase()}}</div>
|
||||
{{chip.name}}
|
||||
</ng-template>
|
||||
<ng-template td-autocomplete-option let-option="option">
|
||||
<div layout="row" layout-align="start center">
|
||||
{{option.name}}
|
||||
</div>
|
||||
</ng-template>
|
||||
<mat-progress-bar [style.height.px]="2" *ngIf="filteringExternalDatasetsAsync" mode="indeterminate"></mat-progress-bar>
|
||||
</td-chips>
|
||||
|
||||
<div class="navigation-buttons-container">
|
||||
<button matStepperPrevious mat-raised-button color="primary">{{'DATASET-WIZARD.ACTIONS.BACK' | translate}}</button>
|
||||
<button matStepperNext mat-raised-button color="primary" (click)="formSubmit()">{{'DATASET-WIZARD.ACTIONS.NEXT' | translate}}</button>
|
||||
<button matStepperNext mat-raised-button color="primary" style="float:right;" (click)="formSubmit()">{{'DATASET-WIZARD.ACTIONS.NEXT' | translate}}</button>
|
||||
</div>
|
||||
</form>
|
||||
</mat-step>
|
||||
<mat-step>
|
||||
<ng-template matStepLabel>{{'DATASET-WIZARD.THIRD-STEP.TITLE' | translate}}</ng-template>
|
||||
<dynamic-form class="mat-form-field-full-width" *ngIf="datasetWizardModel && datasetWizardModel.id" [dataModel]="datasetWizardModel"></dynamic-form>
|
||||
<div>
|
||||
<dynamic-form class="full-width" *ngIf="datasetWizardModel && datasetWizardModel.id" [dataModel]="datasetWizardModel"></dynamic-form>
|
||||
<div class="navigation-buttons-container">
|
||||
<button style="margin-top:10px;" matStepperPrevious mat-raised-button color="primary">{{'DATASET-WIZARD.ACTIONS.BACK' | translate}}</button>
|
||||
</div>
|
||||
</mat-step>
|
||||
|
|
|
@ -10,15 +10,23 @@
|
|||
background: rgba(0, 0, 0, 0.32);
|
||||
}
|
||||
|
||||
.data-management-plan-editor {
|
||||
.mat-form-field-full-width{
|
||||
.dataset-wizard {
|
||||
.full-width {
|
||||
width: 100%;
|
||||
}
|
||||
mat-form-field {
|
||||
width: 100%;
|
||||
padding: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
td-chips {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.navigation-buttons-container {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.mat-card {
|
||||
margin: 16px 0;
|
||||
}
|
||||
|
|
|
@ -17,21 +17,37 @@ import { Observable } from "rxjs/Observable";
|
|||
import { RequestItem } from "../models/criteria/RequestItem";
|
||||
import { MatPaginator, MatSort, MatSnackBar } from "@angular/material";
|
||||
import { SnackBarNotificationComponent } from "../shared/components/notificaiton/snack-bar-notification.component";
|
||||
import { ExternalSourcesItemModel } from '@app/models/external-sources/ExternalSourcesItemModel';
|
||||
import { ExternalSourcesService } from '@app/services/external-sources/external-sources.service';
|
||||
import { DatasetProfileModel } from '@app/models/datasetprofile/DatasetProfileModel';
|
||||
|
||||
@Component({
|
||||
selector: 'app-dataset-wizard-component',
|
||||
templateUrl: 'dataset-wizard.component.html',
|
||||
styleUrls: ['./dataset-wizard.component.scss'],
|
||||
providers: [DatasetWizardService],
|
||||
providers: [DatasetWizardService, ExternalSourcesService, DataManagementPlanService],
|
||||
encapsulation: ViewEncapsulation.None
|
||||
})
|
||||
export class DatasetWizardComponent implements AfterViewInit {
|
||||
|
||||
dmpAutoCompleteConfiguration: AutoCompleteConfiguration;
|
||||
datasetProfileAutoCompleteConfiguration: AutoCompleteConfiguration;
|
||||
//dmpAutoCompleteConfiguration: AutoCompleteConfiguration;
|
||||
//datasetProfileAutoCompleteConfiguration: AutoCompleteConfiguration;
|
||||
datasetWizardModel: DatasetWizardModel;
|
||||
isNew = true;
|
||||
formGroup: FormGroup;
|
||||
|
||||
availableProfiles: DatasetProfileModel[] = [];
|
||||
|
||||
filtereddataRepositoriesAsync: boolean = false;
|
||||
filteredRegistriesAsync: boolean = false;
|
||||
filteredServicesAsync: boolean = false;
|
||||
filteredExternalDatasetsAsync: boolean = false;
|
||||
|
||||
filtereddataRepositories: ExternalSourcesItemModel[];
|
||||
filteredRegistries: ExternalSourcesItemModel[];
|
||||
filteredServices: ExternalSourcesItemModel[];
|
||||
filteredExternalDatasets: ExternalSourcesItemModel[];
|
||||
|
||||
constructor(
|
||||
private datasetWizardService: DatasetWizardService,
|
||||
private formBuilder: FormBuilder,
|
||||
|
@ -40,6 +56,8 @@ export class DatasetWizardComponent implements AfterViewInit {
|
|||
public snackBar: MatSnackBar,
|
||||
public router: Router,
|
||||
public language: TranslateService,
|
||||
public externalSourcesService: ExternalSourcesService,
|
||||
public dataManagementPlanService: DataManagementPlanService
|
||||
) {
|
||||
|
||||
}
|
||||
|
@ -51,40 +69,65 @@ export class DatasetWizardComponent implements AfterViewInit {
|
|||
ngOnInit() {
|
||||
let dmpRequestItem: RequestItem<DataManagementPlanCriteria> = new RequestItem();
|
||||
dmpRequestItem.criteria = new DataManagementPlanCriteria();
|
||||
this.dmpAutoCompleteConfiguration = new AutoCompleteConfiguration(this.datasetWizardService.userDmps.bind(this.datasetWizardService), dmpRequestItem);
|
||||
//this.dmpAutoCompleteConfiguration = new AutoCompleteConfiguration(this.datasetWizardService.userDmps.bind(this.datasetWizardService), dmpRequestItem);
|
||||
|
||||
|
||||
let datasetProfileRequestItem: RequestItem<DatasetProfileCriteria> = new RequestItem();
|
||||
datasetProfileRequestItem.criteria = new DatasetProfileCriteria();
|
||||
this.route.params.subscribe((params: Params) => {
|
||||
const itemId = params['id'];
|
||||
const dmpId = params['dmpId'];
|
||||
if (itemId != null) {
|
||||
this.isNew = false;
|
||||
this.datasetWizardService.getSingle(itemId).map(data => data as DatasetWizardModel)
|
||||
.subscribe(data => {
|
||||
this.datasetWizardModel = JsonSerializer.fromJSONObject(data, DatasetWizardModel);
|
||||
this.formGroup = this.datasetWizardModel.buildForm();
|
||||
this.datasetProfileAutoCompleteConfiguration = new AutoCompleteConfiguration(this.datasetWizardService.getAvailableProfiles.bind(this.datasetWizardService), datasetProfileRequestItem);
|
||||
this.formGroup.get("dmp").valueChanges.subscribe(change => {
|
||||
this.formGroup.get('profile').setValue(null, { emitEvent: false });
|
||||
this.datasetProfileAutoCompleteConfiguration.requestItem.criteria.id = change.id
|
||||
//this.datasetProfileAutoCompleteConfiguration = new AutoCompleteConfiguration(this.datasetWizardService.getAvailableProfiles.bind(this.datasetWizardService), datasetProfileRequestItem);
|
||||
// this.formGroup.get("dmp").valueChanges.subscribe(change => {
|
||||
// this.formGroup.get('profile').setValue(null, { emitEvent: false });
|
||||
// //this.datasetProfileAutoCompleteConfiguration.requestItem.criteria.id = change.id
|
||||
// });
|
||||
});
|
||||
} else if (dmpId != null) {
|
||||
this.isNew = true;
|
||||
this.dataManagementPlanService.getSingle(dmpId).map(data => data as DataManagementPlanModel)
|
||||
.subscribe(data => {
|
||||
this.datasetWizardModel = new DatasetWizardModel();
|
||||
setTimeout(() => {
|
||||
this.formGroup = this.datasetWizardModel.buildForm();
|
||||
this.datasetWizardModel.dmp = data;
|
||||
this.loadDatasetProfiles();
|
||||
//this.datasetProfileAutoCompleteConfiguration = new AutoCompleteConfiguration(this.datasetWizardService.getAvailableProfiles.bind(this.datasetWizardService), datasetProfileRequestItem);
|
||||
// this.formGroup.get("dmp").valueChanges.subscribe(change => {
|
||||
// this.formGroup.get('profile').setValue(null, { emitEvent: false });
|
||||
// //this.datasetProfileAutoCompleteConfiguration.requestItem.criteria.id = change.id
|
||||
// });
|
||||
});
|
||||
|
||||
// this.datasetWizardModel = JsonSerializer.fromJSONObject(data, DatasetWizardModel);
|
||||
// this.formGroup = this.datasetWizardModel.buildForm();
|
||||
//this.datasetProfileAutoCompleteConfiguration = new AutoCompleteConfiguration(this.datasetWizardService.getAvailableProfiles.bind(this.datasetWizardService), datasetProfileRequestItem);
|
||||
// this.formGroup.get("dmp").valueChanges.subscribe(change => {
|
||||
// this.formGroup.get('profile').setValue(null, { emitEvent: false });
|
||||
|
||||
// //this.datasetProfileAutoCompleteConfiguration.requestItem.criteria.id = change.id
|
||||
// });
|
||||
});
|
||||
} else {
|
||||
this.datasetWizardModel = new DatasetWizardModel();
|
||||
setTimeout(() => {
|
||||
this.formGroup = this.datasetWizardModel.buildForm();
|
||||
this.datasetProfileAutoCompleteConfiguration = new AutoCompleteConfiguration(this.datasetWizardService.getAvailableProfiles.bind(this.datasetWizardService), datasetProfileRequestItem);
|
||||
this.formGroup.get("dmp").valueChanges.subscribe(change => {
|
||||
this.formGroup.get('profile').setValue(null, { emitEvent: false });
|
||||
this.datasetProfileAutoCompleteConfiguration.requestItem.criteria.id = change.id
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
loadDatasetProfiles() {
|
||||
let datasetProfileRequestItem: RequestItem<DatasetProfileCriteria> = new RequestItem();
|
||||
datasetProfileRequestItem.criteria = new DatasetProfileCriteria();
|
||||
datasetProfileRequestItem.criteria.id = this.datasetWizardModel.dmp.id;
|
||||
this.datasetWizardService.getAvailableProfiles(datasetProfileRequestItem).subscribe(items => {
|
||||
this.availableProfiles = items;
|
||||
});
|
||||
}
|
||||
ngAfterViewInit() {
|
||||
// this.route.params.subscribe((params: Params) => {
|
||||
// const itemId = params['id'];
|
||||
|
@ -154,4 +197,76 @@ export class DatasetWizardComponent implements AfterViewInit {
|
|||
})
|
||||
}
|
||||
|
||||
filterdataRepositories(value: string): void {
|
||||
|
||||
this.filtereddataRepositories = undefined;
|
||||
if (value) {
|
||||
this.filtereddataRepositoriesAsync = true;
|
||||
|
||||
this.externalSourcesService.searchDMPOrganizations(value).subscribe(items => {
|
||||
this.filtereddataRepositories = items;
|
||||
this.filtereddataRepositoriesAsync = false;
|
||||
|
||||
// this.filteredOrganisations = items.filter((filteredObj: any) => {
|
||||
// return this.objectsModel ? this.objectsModel.indexOf(filteredObj) < 0 : true;
|
||||
// });
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
filterRegistries(value: string): void {
|
||||
|
||||
this.filteredRegistries = undefined;
|
||||
if (value) {
|
||||
this.filteredRegistriesAsync = true;
|
||||
|
||||
this.externalSourcesService.searchDMPResearchers(value).subscribe(items => {
|
||||
this.filteredRegistries = items;
|
||||
this.filteredRegistriesAsync = false;
|
||||
|
||||
// this.filteredOrganisations = items.filter((filteredObj: any) => {
|
||||
// return this.objectsModel ? this.objectsModel.indexOf(filteredObj) < 0 : true;
|
||||
// });
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
filterServices(value: string): void {
|
||||
|
||||
this.filteredServices = undefined;
|
||||
if (value) {
|
||||
this.filteredServicesAsync = true;
|
||||
|
||||
this.externalSourcesService.searchDatasetService(value).subscribe(items => {
|
||||
this.filteredServices = items;
|
||||
this.filteredServicesAsync = false;
|
||||
|
||||
// this.filteredOrganisations = items.filter((filteredObj: any) => {
|
||||
// return this.objectsModel ? this.objectsModel.indexOf(filteredObj) < 0 : true;
|
||||
// });
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
filterExternalDatasets(value: string): void {
|
||||
|
||||
this.filteredExternalDatasets = undefined;
|
||||
if (value) {
|
||||
this.filteredExternalDatasetsAsync = true;
|
||||
|
||||
this.externalSourcesService.searchDatasetSExternalDatasetservice(value).subscribe(items => {
|
||||
this.filteredExternalDatasets = items;
|
||||
this.filteredExternalDatasetsAsync = false;
|
||||
|
||||
// this.filteredOrganisations = items.filter((filteredObj: any) => {
|
||||
// return this.objectsModel ? this.objectsModel.indexOf(filteredObj) < 0 : true;
|
||||
// });
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
<div class="project-editor">
|
||||
<form *ngIf="formGroup" (ngSubmit)="formSubmit()" [formGroup]="formGroup">
|
||||
<mat-card>
|
||||
<!-- <mat-card>
|
||||
<mat-card-title *ngIf="isNew">{{'DATASET-EDITOR.TITLE.NEW' | translate}}</mat-card-title>
|
||||
<mat-card-title *ngIf="!isNew">{{'DATASET-EDITOR.TITLE.EDIT' | translate}} {{dataset.label}}</mat-card-title>
|
||||
<mat-card-content>
|
||||
<mat-card-content> -->
|
||||
|
||||
<mat-form-field class="full-width">
|
||||
<input matInput placeholder="{{'DATASET-EDITOR.FIELDS.NAME' | translate}}" type="text" name="label" formControlName="label"
|
||||
|
@ -50,7 +50,7 @@
|
|||
<mat-error *ngIf="formGroup.get('description').errors?.required">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<td-chips color="accent" [items]="filtereddataRepositories" formControlName="dataRepositories" placeholder="{{'DATASET-EDITOR.FIELDS.DATAREPOSITORIES' | translate}}"
|
||||
<!-- <td-chips color="accent" [items]="filtereddataRepositories" formControlName="dataRepositories" placeholder="{{'DATASET-EDITOR.FIELDS.DATAREPOSITORIES' | translate}}"
|
||||
(inputChange)="filterdataRepositories($event)" requireMatch>
|
||||
<ng-template td-chip let-chip="chip">
|
||||
<div class="tc-grey-100 bgc-teal-700" td-chip-avatar>{{chip.name.substring(0, 1).toUpperCase()}}</div>
|
||||
|
@ -90,10 +90,10 @@
|
|||
</div>
|
||||
</ng-template>
|
||||
<mat-progress-bar [style.height.px]="2" *ngIf="filteringResearchersAsync" mode="indeterminate"></mat-progress-bar>
|
||||
</td-chips>
|
||||
</td-chips> -->
|
||||
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
<!-- </mat-card-content>
|
||||
</mat-card> -->
|
||||
</form>
|
||||
<!-- <div *ngIf="formGroup"> {{ formGroup.value | json }}</div> -->
|
||||
</div>
|
|
@ -28,13 +28,13 @@ export class DatasetEditorComponent implements AfterViewInit {
|
|||
dataset: DatasetModel;
|
||||
@Input() formGroup: FormGroup = null;
|
||||
|
||||
filtereddataRepositoriesAsync: boolean = false;
|
||||
filteredRegistriesAsync: boolean = false;
|
||||
filteredServicesAsync: boolean = false;
|
||||
// filtereddataRepositoriesAsync: boolean = false;
|
||||
// filteredRegistriesAsync: boolean = false;
|
||||
// filteredServicesAsync: boolean = false;
|
||||
|
||||
filtereddataRepositories: ExternalSourcesItemModel[];
|
||||
filteredRegistries: ExternalSourcesItemModel[];
|
||||
filteredServices: ExternalSourcesItemModel[];
|
||||
// filtereddataRepositories: ExternalSourcesItemModel[];
|
||||
// filteredRegistries: ExternalSourcesItemModel[];
|
||||
// filteredServices: ExternalSourcesItemModel[];
|
||||
|
||||
constructor(
|
||||
private datasetService: DatasetService,
|
||||
|
@ -72,57 +72,57 @@ export class DatasetEditorComponent implements AfterViewInit {
|
|||
this.router.navigate(['/datasets']);
|
||||
}
|
||||
|
||||
filterdataRepositories(value: string): void {
|
||||
// filterdataRepositories(value: string): void {
|
||||
|
||||
this.filtereddataRepositories = undefined;
|
||||
if (value) {
|
||||
this.filtereddataRepositoriesAsync = true;
|
||||
// this.filtereddataRepositories = undefined;
|
||||
// if (value) {
|
||||
// this.filtereddataRepositoriesAsync = true;
|
||||
|
||||
this.externalSourcesService.searchDMPOrganizations(value).subscribe(items => {
|
||||
this.filtereddataRepositories = items;
|
||||
this.filtereddataRepositoriesAsync = false;
|
||||
// this.externalSourcesService.searchDMPOrganizations(value).subscribe(items => {
|
||||
// this.filtereddataRepositories = items;
|
||||
// this.filtereddataRepositoriesAsync = false;
|
||||
|
||||
// this.filteredOrganisations = items.filter((filteredObj: any) => {
|
||||
// return this.objectsModel ? this.objectsModel.indexOf(filteredObj) < 0 : true;
|
||||
// });
|
||||
// // this.filteredOrganisations = items.filter((filteredObj: any) => {
|
||||
// // return this.objectsModel ? this.objectsModel.indexOf(filteredObj) < 0 : true;
|
||||
// // });
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
filterRegistries(value: string): void {
|
||||
// filterRegistries(value: string): void {
|
||||
|
||||
this.filteredRegistries = undefined;
|
||||
if (value) {
|
||||
this.filteredRegistriesAsync = true;
|
||||
// this.filteredRegistries = undefined;
|
||||
// if (value) {
|
||||
// this.filteredRegistriesAsync = true;
|
||||
|
||||
this.externalSourcesService.searchDMPResearchers(value).subscribe(items => {
|
||||
this.filteredRegistries = items;
|
||||
this.filteredRegistriesAsync = false;
|
||||
// this.externalSourcesService.searchDMPResearchers(value).subscribe(items => {
|
||||
// this.filteredRegistries = items;
|
||||
// this.filteredRegistriesAsync = false;
|
||||
|
||||
// this.filteredOrganisations = items.filter((filteredObj: any) => {
|
||||
// return this.objectsModel ? this.objectsModel.indexOf(filteredObj) < 0 : true;
|
||||
// });
|
||||
// // this.filteredOrganisations = items.filter((filteredObj: any) => {
|
||||
// // return this.objectsModel ? this.objectsModel.indexOf(filteredObj) < 0 : true;
|
||||
// // });
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
filterServices(value: string): void {
|
||||
// filterServices(value: string): void {
|
||||
|
||||
this.filteredServices = undefined;
|
||||
if (value) {
|
||||
this.filteredServicesAsync = true;
|
||||
// this.filteredServices = undefined;
|
||||
// if (value) {
|
||||
// this.filteredServicesAsync = true;
|
||||
|
||||
this.externalSourcesService.searchDatasetService(value).subscribe(items => {
|
||||
this.filteredServices = items;
|
||||
this.filteredServicesAsync = false;
|
||||
// this.externalSourcesService.searchDatasetService(value).subscribe(items => {
|
||||
// this.filteredServices = items;
|
||||
// this.filteredServicesAsync = false;
|
||||
|
||||
// this.filteredOrganisations = items.filter((filteredObj: any) => {
|
||||
// return this.objectsModel ? this.objectsModel.indexOf(filteredObj) < 0 : true;
|
||||
// });
|
||||
// // this.filteredOrganisations = items.filter((filteredObj: any) => {
|
||||
// // return this.objectsModel ? this.objectsModel.indexOf(filteredObj) < 0 : true;
|
||||
// // });
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
}
|
|
@ -51,6 +51,8 @@
|
|||
<mat-menu #actionsMenu="matMenu">
|
||||
<button mat-menu-item (click)="rowClick(row.id)"><mat-icon>mode_edit</mat-icon>{{'DMP-LISTING.ACTIONS.EDIT' | translate}}</button>
|
||||
<button mat-menu-item (click)="openShareDialog(row.id,row.label)"><mat-icon>insert_invitation</mat-icon>{{'DMP-LISTING.ACTIONS.INVITE' | translate}}</button>
|
||||
<button mat-menu-item (click)="addDataset(row.id)"><mat-icon>insert_invitation</mat-icon>{{'DMP-LISTING.ACTIONS.ADD-DATASET' | translate}}</button>
|
||||
<button mat-menu-item (click)="showDatasets(row.id)"><mat-icon>insert_invitation</mat-icon>{{'DMP-LISTING.ACTIONS.DATASETS' | translate}}</button>
|
||||
</mat-menu>
|
||||
<button mat-icon-button [matMenuTriggerFor]="actionsMenu">
|
||||
<mat-icon>more_vert</mat-icon>
|
||||
|
|
|
@ -53,6 +53,14 @@ export class DataManagementPlanListingComponent implements OnInit {
|
|||
this.router.navigate(['/dmp/' + rowId]);
|
||||
}
|
||||
|
||||
addDataset(rowId: String) {
|
||||
this.router.navigate(['/dataset/new/' + rowId]);
|
||||
}
|
||||
|
||||
showDatasets(rowId: String) {
|
||||
this.router.navigate(['/dataset/new/' + rowId]);
|
||||
}
|
||||
|
||||
getDefaultCriteria(): DataManagementPlanCriteria {
|
||||
const defaultCriteria = new DataManagementPlanCriteria();
|
||||
return defaultCriteria;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { BaseCriteria } from '../BaseCriteria';
|
||||
export class DatasetProfileCriteria extends BaseCriteria{
|
||||
public id:string;
|
||||
}
|
||||
export class DatasetProfileCriteria extends BaseCriteria {
|
||||
public id: String;
|
||||
}
|
||||
|
|
|
@ -6,10 +6,12 @@ import { Serializable } from "../Serializable";
|
|||
|
||||
export class DatasetProfileModel implements Serializable<DatasetProfileModel> {
|
||||
public id: String;
|
||||
public label: String;
|
||||
public errorModel: BaseErrorModel = new BaseErrorModel();
|
||||
|
||||
fromJSONObject(item: any): DatasetProfileModel {
|
||||
this.id = item.id;
|
||||
this.label = item.label;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ import { ServiceModel } from "../services/ServiceModel";
|
|||
import { JsonSerializer } from "../../utilities/JsonSerializer";
|
||||
import { RegisterModel } from "../registers/RegisterModel";
|
||||
import { DataRepositoryModel } from "../dataRepositories/DataRepositoryModel";
|
||||
import { ExternalDatasetModel } from '@app/models/external-dataset/ExternalDatasetModel';
|
||||
|
||||
export class DatasetWizardModel implements Serializable<DatasetWizardModel> {
|
||||
public id: String;
|
||||
|
@ -22,7 +23,8 @@ export class DatasetWizardModel implements Serializable<DatasetWizardModel> {
|
|||
public services: ServiceModel[] = [];
|
||||
public registries: RegisterModel[] = [];
|
||||
public dataRepositories: DataRepositoryModel[] = [];
|
||||
public dmp:DataManagementPlanModel = new DataManagementPlanModel();
|
||||
public externalDatasets: ExternalDatasetModel[] = [];
|
||||
public dmp: DataManagementPlanModel = new DataManagementPlanModel();
|
||||
public datasetProfileDefinition = new DatasetProfileDefinitionModel();
|
||||
public errorModel: BaseErrorModel = new BaseErrorModel();
|
||||
|
||||
|
@ -36,7 +38,7 @@ export class DatasetWizardModel implements Serializable<DatasetWizardModel> {
|
|||
this.services = JsonSerializer.fromJSONArray(item.services, ServiceModel);
|
||||
this.registries = JsonSerializer.fromJSONArray(item.registries, RegisterModel);
|
||||
this.dataRepositories = JsonSerializer.fromJSONArray(item.dataRepositories, DataRepositoryModel);
|
||||
this.dmp = JsonSerializer.fromJSONObject(item.dmp, DataManagementPlanModel);
|
||||
this.dmp = JsonSerializer.fromJSONObject(item.dmp, DataManagementPlanModel);
|
||||
this.profile = JsonSerializer.fromJSONObject(item.profile, DatasetWizardModel);
|
||||
this.datasetProfileDefinition = JsonSerializer.fromJSONObject(item.datasetProfileDefinition, DatasetProfileDefinitionModel);
|
||||
return this;
|
||||
|
@ -53,10 +55,11 @@ export class DatasetWizardModel implements Serializable<DatasetWizardModel> {
|
|||
services: [{ value: this.services, disabled: disabled }, context.getValidation('services').validators],
|
||||
registries: [{ value: this.registries, disabled: disabled }, context.getValidation('registries').validators],
|
||||
dataRepositories: [{ value: this.dataRepositories, disabled: disabled }, context.getValidation('dataRepositories').validators],
|
||||
externalDatasets: [{ value: this.externalDatasets, disabled: disabled }, context.getValidation('externalDatasets').validators],
|
||||
dmp: [{ value: this.dmp, disabled: disabled }, context.getValidation('dmp').validators],
|
||||
profile: [{ value: this.profile, disabled: disabled }, context.getValidation('profile').validators],
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
return formGroup;
|
||||
}
|
||||
|
||||
|
@ -65,11 +68,12 @@ export class DatasetWizardModel implements Serializable<DatasetWizardModel> {
|
|||
baseContext.validation.push({ key: 'label', validators: [Validators.required, BackendErrorValidator(this.errorModel, 'label')] });
|
||||
baseContext.validation.push({ key: 'profile', validators: [Validators.required, BackendErrorValidator(this.errorModel, 'profile')] });
|
||||
baseContext.validation.push({ key: 'uri', validators: [Validators.required, BackendErrorValidator(this.errorModel, 'uri')] });
|
||||
baseContext.validation.push({ key: 'status', validators: [ BackendErrorValidator(this.errorModel, 'status')] });
|
||||
baseContext.validation.push({ key: 'status', validators: [BackendErrorValidator(this.errorModel, 'status')] });
|
||||
baseContext.validation.push({ key: 'description', validators: [Validators.required, BackendErrorValidator(this.errorModel, 'description')] });
|
||||
baseContext.validation.push({ key: 'services', validators: [ BackendErrorValidator(this.errorModel, 'services')] });
|
||||
baseContext.validation.push({ key: 'registries', validators: [ BackendErrorValidator(this.errorModel, 'registries')] });
|
||||
baseContext.validation.push({ key: 'services', validators: [BackendErrorValidator(this.errorModel, 'services')] });
|
||||
baseContext.validation.push({ key: 'registries', validators: [BackendErrorValidator(this.errorModel, 'registries')] });
|
||||
baseContext.validation.push({ key: 'dataRepositories', validators: [BackendErrorValidator(this.errorModel, 'dataRepositories')] });
|
||||
baseContext.validation.push({ key: 'externalDatasets', validators: [BackendErrorValidator(this.errorModel, 'externalDatasets')] });
|
||||
baseContext.validation.push({ key: 'dmp', validators: [BackendErrorValidator(this.errorModel, 'dmp')] }); //TODO
|
||||
return baseContext;
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import { Observable } from 'rxjs/Observable';
|
|||
import { DataManagementPlanModel } from '../../models/data-managemnt-plans/DataManagementPlanModel';
|
||||
import { DataManagementPlanCriteria } from '../../models/criteria/data-management-plan/DataManagementPlanCriteria';
|
||||
import { RequestItem } from '../../models/criteria/RequestItem';
|
||||
import { DatasetProfileModel } from '@app/models/datasetprofile/DatasetProfileModel';
|
||||
|
||||
|
||||
@Injectable()
|
||||
|
@ -30,8 +31,8 @@ export class DatasetWizardService {
|
|||
return this.http.post<DataManagementPlanModel[]>(this.actionUrl + 'userDmps', criteria, { headers: this.headers });
|
||||
}
|
||||
|
||||
public getAvailableProfiles(criteria: RequestItem<DatasetProfileCriteria>): Observable<DataManagementPlanModel[]> {
|
||||
return this.http.post<DataManagementPlanModel[]>(this.actionUrl + 'getAvailableProfiles/', criteria, { headers: this.headers });
|
||||
public getAvailableProfiles(criteria: RequestItem<DatasetProfileCriteria>): Observable<DatasetProfileModel[]> {
|
||||
return this.http.post<DatasetProfileModel[]>(this.actionUrl + 'getAvailableProfiles/', criteria, { headers: this.headers });
|
||||
}
|
||||
|
||||
public getSingle(id:String): Observable<DatasetWizardModel> {
|
||||
|
|
|
@ -34,6 +34,10 @@ export class ExternalSourcesService {
|
|||
return this.http.get<ExternalSourcesItemModel[]>(this.actionUrl + "services" + "?query=" + like, { headers: this.headers });
|
||||
}
|
||||
|
||||
public searchDatasetSExternalDatasetservice(like: string): Observable<ExternalSourcesItemModel[]> {
|
||||
return this.http.get<ExternalSourcesItemModel[]>(this.actionUrl + "datasets" + "?query=" + like, { headers: this.headers });
|
||||
}
|
||||
|
||||
public searchDMPResearchers(like: string): Observable<ExternalSourcesItemModel[]> {
|
||||
return this.http.get<ExternalSourcesItemModel[]>(this.actionUrl + "researchers" + "?query=" + like, { headers: this.headers });
|
||||
}
|
||||
|
|
|
@ -46,17 +46,19 @@
|
|||
},
|
||||
"ACTIONS":{
|
||||
"EDIT":"Edit",
|
||||
"INVITE":"Invite"
|
||||
"INVITE":"Invite",
|
||||
"ADD-DATASET":"Add Dataset",
|
||||
"DATASETS":"Datasets"
|
||||
}
|
||||
},
|
||||
"DATASET-WIZARD": {
|
||||
"FIRST-STEP": {
|
||||
"TITLE": "Plan Information",
|
||||
"TITLE": "Dataset Information",
|
||||
"DMP": "Data Management Plan",
|
||||
"PROFILE": "Profile"
|
||||
"PROFILE": "Dataset Profile"
|
||||
},
|
||||
"SECOND-STEP": {
|
||||
"TITLE": "Dataset Information"
|
||||
"TITLE": "External Sources"
|
||||
},
|
||||
"THIRD-STEP": {
|
||||
"TITLE": "Definition"
|
||||
|
@ -150,7 +152,8 @@
|
|||
"URI": "Uri",
|
||||
"DATAREPOSITORIES": "Data Repositories",
|
||||
"REGISTRIES": "Registries",
|
||||
"SERVICES": "Services"
|
||||
"SERVICES": "Services",
|
||||
"EXTERNAL-DATASETS": "External Datasets"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"SAVE": "Save",
|
||||
|
|
Loading…
Reference in New Issue