diff --git a/dmp-frontend/src/app/ui/dashboard/dashboard.component.html b/dmp-frontend/src/app/ui/dashboard/dashboard.component.html index 364b36b23..54b091fdf 100644 --- a/dmp-frontend/src/app/ui/dashboard/dashboard.component.html +++ b/dmp-frontend/src/app/ui/dashboard/dashboard.component.html @@ -39,7 +39,7 @@ {{'DASHBOARD.DATASET-DESCRIPTIONS' | translate}} {{'DASHBOARD.DMP-ABOUT-END' | translate}}

- +
{{'DASHBOARD.LATEST-ACTIVITY' | translate}}
@@ -60,7 +60,7 @@
{{'DASHBOARD.EMPTY-LIST' | translate}}
-
diff --git a/dmp-frontend/src/app/ui/dataset/dataset.module.ts b/dmp-frontend/src/app/ui/dataset/dataset.module.ts index 88b25ca5a..07b9901c4 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset.module.ts +++ b/dmp-frontend/src/app/ui/dataset/dataset.module.ts @@ -25,6 +25,7 @@ import { AngularStickyThingsModule } from '@w11k/angular-sticky-things'; import { DatasetCopyDialogModule } from './dataset-wizard/dataset-copy-dialogue/dataset-copy-dialogue.module'; import { DatasetOverviewModule } from './overview/dataset-overview.module'; import { DatasetCriteriaDialogComponent } from './listing/criteria/dataset-criteria-dialogue/dataset-criteria-dialog.component'; +import { DmpEditorComponent } from '../dmp/editor/dmp-editor.component'; @NgModule({ imports: [ @@ -41,7 +42,7 @@ import { DatasetCriteriaDialogComponent } from './listing/criteria/dataset-crite DatasetRoutingModule, FormValidationErrorsDialogModule, DatasetCopyDialogModule, - DatasetOverviewModule + DatasetOverviewModule, ], declarations: [ DatasetListingComponent, @@ -55,7 +56,7 @@ import { DatasetCriteriaDialogComponent } from './listing/criteria/dataset-crite DatasetExternalServiceDialogEditorComponent, DatasetUploadDialogue, DatasetListingItemComponent, - DatasetCriteriaDialogComponent + DatasetCriteriaDialogComponent, ], entryComponents: [ DatasetExternalDataRepositoryDialogEditorComponent, diff --git a/dmp-frontend/src/app/ui/dataset/dataset.routing.ts b/dmp-frontend/src/app/ui/dataset/dataset.routing.ts index b024aa044..7d54ef8b6 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset.routing.ts +++ b/dmp-frontend/src/app/ui/dataset/dataset.routing.ts @@ -4,6 +4,7 @@ import { AuthGuard } from '../../core/auth-guard.service'; import { DatasetWizardComponent } from './dataset-wizard/dataset-wizard.component'; import { DatasetListingComponent } from './listing/dataset-listing.component'; import { DatasetOverviewComponent } from './overview/dataset-overview.component'; +import { DmpEditorComponent } from '../dmp/editor/dmp-editor.component'; const routes: Routes = [ { diff --git a/dmp-frontend/src/app/ui/dmp/dmp.routing.ts b/dmp-frontend/src/app/ui/dmp/dmp.routing.ts index 0665fe6a8..d949b28d5 100644 --- a/dmp-frontend/src/app/ui/dmp/dmp.routing.ts +++ b/dmp-frontend/src/app/ui/dmp/dmp.routing.ts @@ -80,6 +80,24 @@ const routes: Routes = [ title: 'GENERAL.TITLES.PLANS-NEW' } }, + { + path: 'new/dataset', + component: DmpEditorComponent, + canActivate: [AuthGuard], + data: { + breadcrumbs: 'new/dataset', + title: 'GENERAL.TITLES.DATASET-NEW' + } + }, + { + path: 'new/dataset/:dmpId', + component: DmpEditorComponent, + canActivate: [AuthGuard], + data: { + breadcrumbs: 'new/dataset', + title: 'GENERAL.TITLES.DATASET-NEW' + } + }, { path: 'new_version/:id', // component: DmpWizardComponent, diff --git a/dmp-frontend/src/app/ui/dmp/editor/dataset-editor-details/dataset-editor-details.component.ts b/dmp-frontend/src/app/ui/dmp/editor/dataset-editor-details/dataset-editor-details.component.ts index 43f07e96d..cb1b3f91c 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/dataset-editor-details/dataset-editor-details.component.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/dataset-editor-details/dataset-editor-details.component.ts @@ -92,6 +92,10 @@ export class DatasetEditorDetailsComponent extends BaseComponent implements OnIn if (this.formGroup.get('status').value === 1) { this.formGroup.disable(); } + + // console.log(this.formGroup); + // this.registerFormListeners(); + if (this.datasetId) { // never gets in here this.datasetWizardService.getSingle(this.datasetId) .pipe(takeUntil(this._destroyed)) @@ -183,6 +187,8 @@ export class DatasetEditorDetailsComponent extends BaseComponent implements OnIn this.formGroup.get('profile').valueChanges .pipe(takeUntil(this._destroyed)) .subscribe(x => { + // console.log('inhere'); + // console.log(this.formGroup.get('datasetProfileDefinition')); this.datasetProfileValueChanged(x); }); } diff --git a/dmp-frontend/src/app/ui/dmp/editor/dataset-info/dataset-info.component.html b/dmp-frontend/src/app/ui/dmp/editor/dataset-info/dataset-info.component.html index 9b3cea48f..198056599 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/dataset-info/dataset-info.component.html +++ b/dmp-frontend/src/app/ui/dmp/editor/dataset-info/dataset-info.component.html @@ -24,7 +24,7 @@ - + {{profile.label}} diff --git a/dmp-frontend/src/app/ui/dmp/editor/dataset-info/dataset-info.component.ts b/dmp-frontend/src/app/ui/dmp/editor/dataset-info/dataset-info.component.ts index c3441979f..72f13999f 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/dataset-info/dataset-info.component.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/dataset-info/dataset-info.component.ts @@ -20,6 +20,9 @@ import { DmpEditorModel } from '../dmp-editor.model'; import { Router } from '@angular/router'; import { RequestItem } from '@app/core/query/request-item'; import { DatasetWizardService } from '@app/core/services/dataset-wizard/dataset-wizard.service'; +import { DatasetDescriptionFormEditorModel } from '@app/ui/misc/dataset-description-form/dataset-description-form.model'; +import { DatasetWizardEditorModel } from '@app/ui/dataset/dataset-wizard/dataset-wizard-editor.model'; +import { DmpListingModel } from '@app/core/model/dmp/dmp-listing'; @Component({ selector: 'dataset-info', @@ -43,6 +46,8 @@ export class DatasetInfoComponent extends BaseComponent implements OnInit { selectedDmpProfileDefinition: DmpProfileDefinition; profilesAutoCompleteConfiguration: MultipleAutoCompleteConfiguration; + datasetProfileDefinitionModel: DatasetDescriptionFormEditorModel; + constructor( private language: TranslateService, private configurationService: ConfigurationService, @@ -79,11 +84,10 @@ export class DatasetInfoComponent extends BaseComponent implements OnInit { this.formGroup.get('extraProperties').get('publicDate').patchValue(new Date()); } - // this.loadDatasetProfiles(); - this.formGroup.valueChanges.pipe(takeUntil(this._destroyed)) .subscribe(x => { - console.log('value changes') + // this.registerFormListeners(); + this.loadDatasetProfiles(); this.profilesAutoCompleteConfiguration = { filterFn: this.filterProfiles.bind(this), initialItems: (excludedItems: any[]) => this.filterProfiles('').pipe(map(result => result.filter(resultItem => (excludedItems || []).map(x => x.id).indexOf(resultItem.id) === -1))), @@ -124,20 +128,16 @@ export class DatasetInfoComponent extends BaseComponent implements OnInit { } loadDatasetProfiles() { - console.log(this.formGroup); - console.log(this.dmp); const datasetProfileRequestItem: RequestItem = new RequestItem(); datasetProfileRequestItem.criteria = new DatasetProfileCriteria(); - console.log(this.formGroup.value.id); - datasetProfileRequestItem.criteria.id = this.formGroup.value.id; + datasetProfileRequestItem.criteria.id = this.formGroup.get('datasets')['controls'][0].get('dmp').value.id; if (datasetProfileRequestItem.criteria.id) { this.datasetWizardService.getAvailableProfiles(datasetProfileRequestItem) - .pipe(takeUntil(this._destroyed)) - .subscribe(items => { - this.availableProfiles = items; - }); + .pipe(takeUntil(this._destroyed)) + .subscribe(items => { + this.availableProfiles = items; + }); } - console.log(this.availableProfiles); } allAvailableProfiles(event: MouseEvent) { @@ -151,6 +151,50 @@ export class DatasetInfoComponent extends BaseComponent implements OnInit { return false; } + dmpValueChanged(dmp: DmpListingModel) { + if (dmp) { + this.formGroup.get('profile').enable(); + this.loadDatasetProfiles(); + } + else { + this.availableProfiles = []; + this.formGroup.get('profile').reset(); + this.formGroup.get('profile').disable(); + this.formGroup.removeControl('datasetProfileDefinition'); + } + } + + registerFormListeners() { + this.formGroup.get('datasets')['controls'][0].get('dmp').valueChanges + .pipe(takeUntil(this._destroyed)) + .subscribe(x => { + this.dmpValueChanged(x); + }); + this.formGroup.get('profile').valueChanges + .pipe(takeUntil(this._destroyed)) + .subscribe(x => { + this.datasetProfileValueChanged(x); + }); + } + + datasetProfileValueChanged(profiledId: string) { + if (profiledId && profiledId.length > 0) { + this.formGroup.removeControl('datasetProfileDefinition'); + this.getDefinition(); + } + } + + getDefinition() { + // if (this.formGroup.invalid) { setTimeout(() => this.stepper.selectedIndex = 0); return; } + this.datasetWizardService.getDefinition(this.formGroup.get('profile').value) + .pipe(takeUntil(this._destroyed)) + .subscribe(item => { + this.formGroup.get('datasets')['controls'][0].datasetProfileDefinition = new DatasetDescriptionFormEditorModel().fromModel(item); + this.datasetProfileDefinitionModel = this.formGroup.get('datasets')['controls'][0].datasetProfileDefinition; + this.formGroup.addControl('datasetProfileDefinition', this.datasetProfileDefinitionModel.buildForm()); + }); + } + addDataset(id: String) { this.router.navigate(['/datasets/new/' + id]); } diff --git a/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.html b/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.html index 36590dedc..ea77f7491 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.html +++ b/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.html @@ -73,7 +73,7 @@
  1. {{'DMP-EDITOR.STEPPER.MAIN-INFO' | translate}} (4)
  2. -
  3. {{'DMP-EDITOR.STEPPER.MAIN-INFO' | translate}} (1)
  4. +
  5. {{'DMP-EDITOR.STEPPER.MAIN-INFO' | translate}}
  6. {{'DMP-EDITOR.STEPPER.FUNDING-INFO' | translate}} (3)
  7. {{'DMP-EDITOR.STEPPER.DATASET-INFO' | translate}}
  8. @@ -84,7 +84,8 @@
    {{'DMP-EDITOR.STEPPER.DATASET' | translate}}
    check{{'TYPES.DATASET-STATUS.FINALISED' | translate}}
      -
    • {{ dataset.get('label').value }} (8)
    • +
    • {{ dataset.get('label').value }} (8)
    • +
    • {{ dataset.get('label').value }}
diff --git a/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.ts b/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.ts index 02dd03184..1613f1146 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.ts @@ -45,6 +45,7 @@ import { DatasetWizardEditorModel } from '@app/ui/dataset/dataset-wizard/dataset import { SingleAutoCompleteConfiguration } from '@app/library/auto-complete/single/single-auto-complete-configuration'; import { DmpListingModel } from '@app/core/model/dmp/dmp-listing'; import { DmpCriteria } from '@app/core/query/dmp/dmp-criteria'; +import { DatasetDescriptionFormEditorModel } from '@app/ui/misc/dataset-description-form/dataset-description-form.model'; @Component({ selector: 'app-dmp-editor-component', @@ -268,6 +269,8 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC this.dmp.extraProperties.visible = false; this.dmp.extraProperties.contact = this.authService.current().id; const datasetWizardEditorModel = new DatasetWizardEditorModel(); + + // datasetWizardEditorModel.datasetProfileDefinition = new DatasetDescriptionFormEditorModel(); this.dmp.datasets.push(datasetWizardEditorModel); this.formGroup = this.dmp.buildForm(); diff --git a/dmp-frontend/src/app/ui/dmp/editor/main-info/main-info.component.html b/dmp-frontend/src/app/ui/dmp/editor/main-info/main-info.component.html index 0d2d84188..f2cf3b18d 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/main-info/main-info.component.html +++ b/dmp-frontend/src/app/ui/dmp/editor/main-info/main-info.component.html @@ -17,7 +17,7 @@ {{'GENERAL.VALIDATION.REQUIRED' | translate}} - + diff --git a/dmp-frontend/src/app/ui/dmp/editor/main-info/main-info.component.ts b/dmp-frontend/src/app/ui/dmp/editor/main-info/main-info.component.ts index 4267d94a2..9e8f54f3a 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/main-info/main-info.component.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/main-info/main-info.component.ts @@ -1,6 +1,6 @@ import { BaseComponent } from '@common/base/base.component'; import { OnInit, Component, Input, Output, EventEmitter } from '@angular/core'; -import { FormGroup } from '@angular/forms'; +import { FormGroup, FormControl } from '@angular/forms'; import { TranslateService } from '@ngx-translate/core'; import { ConfigurationService } from '@app/core/services/configuration/configuration.service'; import { MultipleAutoCompleteConfiguration } from '@app/library/auto-complete/multiple/multiple-auto-complete-configuration'; @@ -33,6 +33,8 @@ export class MainInfoComponent extends BaseComponent implements OnInit { @Input() isClone: boolean; @Output() onFormChanged: EventEmitter = new EventEmitter(); + public formControl = new FormControl(); + organisationsAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = { filterFn: this.filterOrganisations.bind(this), initialItems: (excludedItems: any[]) => this.filterOrganisations('').pipe(map(result => result.filter(resultItem => (excludedItems || []).map(x => x.id).indexOf(resultItem.id) === -1))), @@ -81,6 +83,8 @@ export class MainInfoComponent extends BaseComponent implements OnInit { this.formGroup.get('extraProperties').get('publicDate').patchValue(new Date()); } + // this.formControl = this.formGroup.get('datasets')['controls'][0].get('dmp'); + this.formGroup.valueChanges.pipe(takeUntil(this._destroyed)) .subscribe(x => { this.onFormChanged.emit();