Adds Quick dataset create functionality.

This commit is contained in:
Diamantis Tziotzios 2019-03-05 12:20:10 +02:00
parent 74694c82b6
commit edbed239db
24 changed files with 468 additions and 25 deletions

View File

@ -12,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import eu.eudat.models.data.quickwizard.DatasetCreateWizardModel;
import javax.transaction.Transactional;
import javax.validation.Valid;
@ -58,4 +59,16 @@ public class QuickWizardController extends BaseController {
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<QuickWizardModel>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Created"));
}
@RequestMapping(method = RequestMethod.POST, value = {"/datasetcreate"}, consumes = "application/json", produces = "application/json")
public @ResponseBody
ResponseEntity<ResponseItem<DatasetCreateWizardModel>> addDatasetWizard(@RequestBody DatasetCreateWizardModel datasetCreateWizardModel, Principal principal) throws Exception{
for(DatasetDescriptionQuickWizardModel dataset : datasetCreateWizardModel.getDatasets().getDatasetsList()){
this.datasetManager.createOrUpdate(this.getApiContext(), dataset.toDataModel(datasetCreateWizardModel.getDmpMeta().getDmp(), datasetCreateWizardModel.getDmpMeta().getDatasetProfile().getId()), principal);
}
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DatasetCreateWizardModel>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Dataset added!"));
}
}

View File

@ -0,0 +1,19 @@
package eu.eudat.models.data.quickwizard;
import eu.eudat.data.entities.DMP;
public class DatasetCreateWizardModel {
private DmpCreateWizardModel dmpMeta;
private DatasetQuickWizardModel datasets;
public DmpCreateWizardModel getDmpMeta() { return dmpMeta; }
public void setDmpMeta(DmpCreateWizardModel dmpMeta) { this.dmpMeta = dmpMeta; }
public DatasetQuickWizardModel getDatasets() {
return datasets;
}
public void setDatasets(DatasetQuickWizardModel datasets) {
this.datasets = datasets;
}
}

View File

@ -0,0 +1,14 @@
package eu.eudat.models.data.quickwizard;
import java.util.UUID;
public class DatasetProfileCreateWizardModel {
private UUID id;
private String label;
public UUID getId() { return id; }
public void setId(UUID id) { this.id = id; }
public String getLabel() { return label; }
public void setLabel(String label) { this.label = label; }
}

View File

@ -0,0 +1,17 @@
package eu.eudat.models.data.quickwizard;
import eu.eudat.data.entities.DMP;
import eu.eudat.models.data.dmp.DataManagementPlan;
public class DmpCreateWizardModel {
private DatasetProfileCreateWizardModel datasetProfile;
private DataManagementPlan dmp;
public DatasetProfileCreateWizardModel getDatasetProfile() {return datasetProfile; }
public void setDatasetProfile(DatasetProfileCreateWizardModel datasetProfileCreateWizardModel) {
this.datasetProfile = datasetProfileCreateWizardModel;
}
public DataManagementPlan getDmp() { return dmp; }
public void setDmp(DataManagementPlan dmp) { this.dmp = dmp; }
}

View File

@ -11,6 +11,13 @@ const appRoutes: Routes = [
},
pathMatch: 'full'
},
{
path: 'datasetcreatewizard',
loadChildren: './ui/dataset-create-wizard/dataset-create-wizard.module#DatasetCreateWizardModule',
data: {
breadcrumb: true
}
},
{
path: 'explore',
loadChildren: './ui/explore-dataset/explore-dataset.module#ExploreDatasetModule',

View File

@ -19,7 +19,8 @@ import { BreadcrumbModule } from './ui/misc/breadcrumb/breadcrumb.module';
import { HelpContentModule } from './ui/misc/help-content/help-content.module';
import { NavigationModule } from './ui/misc/navigation/navigation.module';
import { LoginModule } from './ui/auth/login/login.module';
import { QuickWizardRoutingModule } from './ui/quick-wizard/quick-wizard.rooting';
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
import { DatasetCreateWizardModule } from './ui/dataset-create-wizard/dataset-create-wizard.module';
// AoT requires an exported function for factories
export function HttpLoaderFactory(http: HttpClient) {
@ -49,10 +50,13 @@ export function HttpLoaderFactory(http: HttpClient) {
NotificationModule,
NavigationModule,
BreadcrumbModule,
HelpContentModule
HelpContentModule,
ReactiveFormsModule,
FormsModule,
DatasetCreateWizardModule,
],
declarations: [
AppComponent
AppComponent,
],
providers: [
{

View File

@ -32,6 +32,7 @@ import { UserService } from './services/user/user.service';
import { CollectionUtils } from './services/utilities/collection-utils.service';
import { TypeUtils } from './services/utilities/type-utils.service';
import { QuickWizardService } from './services/quick-wizard/quick-wizard.service';
import { QuickDatasetCreateWizardService } from './services/dataset-create-wizard/quick-dataset-create-wizard.service';
//
//
// This is shared module that provides all the services. Its imported only once on the AppModule.
@ -83,7 +84,8 @@ export class CoreServiceModule {
UserService,
DmpInvitationService,
DatasetExternalAutocompleteService,
QuickWizardService
QuickWizardService,
QuickDatasetCreateWizardService
],
};
}

View File

@ -0,0 +1,42 @@
import { DmpModel } from "../dmp"
import { DatasetProfileModel } from "../../dataset/dataset-profile";
import { FormGroup } from "@angular/forms/src/model";
import { ValidationContext } from "../../../../common/forms/validation/validation-context";
import { Validators, FormBuilder } from "@angular/forms";
import { BackendErrorValidator } from "../../../../common/forms/validation/custom-validator";
import { ValidationErrorModel } from "../../../../common/forms/validation/error-model/validation-error-model";
export class DmpCreateWizardFormModel {
dmp: DmpModel;
datasetProfile: DatasetProfileModel;
public validationErrorModel: ValidationErrorModel = new ValidationErrorModel();
fromModel(item: DmpCreateWizardFormModel): DmpCreateWizardFormModel {
this.dmp = item.dmp;
this.datasetProfile = item.datasetProfile;
return this;
}
buildForm(context: ValidationContext = null): FormGroup{
if (context == null) { context = this.createValidationContext(); }
const formBuilder = new FormBuilder();
const formGroup = formBuilder.group({
dmp: [this.dmp, context.getValidation('dmp').validators],
datasetProfile: [this.datasetProfile, context.getValidation('datasetProfile').validators],
});
return formGroup;
}
createValidationContext(): ValidationContext {
const baseContext: ValidationContext = new ValidationContext();
baseContext.validation.push({ key: 'datasetProfile', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'datasetProfile')] });
baseContext.validation.push({ key: 'dmp', validators: [BackendErrorValidator(this.validationErrorModel, 'dmp')] });
return baseContext;
}
}

View File

@ -4,8 +4,7 @@ import { Observable } from 'rxjs';
import { environment } from '../../../../environments/environment';
import { QuickWizardEditorWizardModel } from '../../../ui/quick-wizard/quick-wizard-editor/quick-wizard-editor.model';
import { BaseHttpService } from '../http/base-http.service';
import { DatasetCreateWizardModel } from '../../../ui/dataset-create-wizard/dataset-create-wizard.model';
@Injectable()
export class QuickWizardService {
@ -16,11 +15,11 @@ export class QuickWizardService {
this.actionUrl = environment.Server + 'quick-wizard/';
}
createQuickWizard(quickWizard: QuickWizardEditorWizardModel): Observable<QuickWizardEditorWizardModel> {
return this.http.post<QuickWizardEditorWizardModel>(this.actionUrl, quickWizard, { headers: this.headers });
}
}
}
createQuickDatasetWizard(datasetCreateWizardModel: DatasetCreateWizardModel): Observable<DatasetCreateWizardModel> {
return this.http.post<DatasetCreateWizardModel>(this.actionUrl + '/datasetcreate', datasetCreateWizardModel, { headers: this.headers });
}
}

View File

@ -0,0 +1,33 @@
<div class="dataset-create-wizard">
<mat-horizontal-stepper linear #stepper>
<mat-step class="step-container" [stepControl]="formGroup.get('dmpMeta')">
<ng-template matStepLabel>{{'DATASET-CREATE-WIZARD.FIRST-STEP.TITLE'| translate}}</ng-template>
<form [formGroup]="formGroup.get('dmpMeta')">
<dataset-dmp-selector-component class="col-12" [formGroup]="formGroup.get('dmpMeta')"></dataset-dmp-selector-component>
</form>
<div class="col-12">
<div class="row">
<div class="col"></div>
<div>
<button matStepperNext mat-raised-button color="primary">{{'DATASET-CREATE-WIZARD.ACTIONS.NEXT'| translate}}</button>
</div>
</div>
</div>
</mat-step>
<mat-step [stepControl]="formGroup">
<ng-template matStepLabel>
{{'QUICKWIZARD.CREATE-ADD.CREATE.QUICKWIZARD_CREATE.THIRD-STEP.TITLE' | translate}}
</ng-template>
<div *ngIf="formGroup.get('datasets')">
<app-dataset-editor-wizard-component class="col-12" [formGroup]="formGroup" [datasetProfile]="formGroup.get('dmpMeta').get('datasetProfile')"
[datasetLabel]="formGroup.get('dmpMeta').get('dmp')">
</app-dataset-editor-wizard-component>
<!-- [profile]="formGroup.get('dmpMeta').get('profile')" [datasetLabel]="formGroup.get('dmpMeta').get('label')" -->
</div>
<div class="navigation-buttons-container">
<button matStepperPrevious mat-raised-button color="primary">{{'QUICKWIZARD.CREATE-ADD.CREATE.QUICKWIZARD_CREATE.ACTIONS.BACK' | translate}}</button>
<button style="float:right;" matStepperNext mat-raised-button (click)='save()' color="primary">{{'QUICKWIZARD.CREATE-ADD.CREATE.QUICKWIZARD_CREATE.ACTIONS.SAVE' | translate}}</button>
</div>
</mat-step>
</mat-horizontal-stepper>
</div>

View File

@ -0,0 +1,46 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { Observable } from 'rxjs';
import { MatStepper } from '@angular/material';
import { BaseComponent } from '../../core/common/base/base.component';
import { TranslateService } from '@ngx-translate/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { DatasetCreateWizardModel } from './dataset-create-wizard.model';
import { Router } from '@angular/router/src/router';
import { QuickWizardService } from '../../core/services/quick-wizard/quick-wizard.service';
@Component({
selector: 'dataset-create-wizard.component',
templateUrl: 'dataset-create-wizard.component.html',
styleUrls: ['./dataset-create-wizard.component.scss'],
})
export class DatasetCreateWizard extends BaseComponent implements OnInit {
isLinear = false;
formGroup: FormGroup;
router: Router;
datasetCreateWizardModel: DatasetCreateWizardModel;
@ViewChild('stepper') stepper: MatStepper;
constructor(
private formBuilder: FormBuilder,
public quickWizardService: QuickWizardService,
) {
super();
}
ngOnInit() {
this.datasetCreateWizardModel = new DatasetCreateWizardModel();
this.formGroup = this.datasetCreateWizardModel.buildForm();
}
save() {
this.submit();
}
submit() {
this.quickWizardService.createQuickDatasetWizard(this.formGroup.value)
.subscribe(data => {
this.router.navigateByUrl('');
})
}
}

View File

@ -0,0 +1,47 @@
import { DatasetDmpSelectorModel } from "./dmp-selector/dataset-dmp-selector.model";
import { DmpModel } from "../../core/model/dmp/dmp";
import { FormGroup, FormBuilder, Validators } from "@angular/forms";
import { DatasetProfileModel } from "../../core/model/dataset/dataset-profile";
import { ValidationContext } from "../../common/forms/validation/validation-context";
import { BackendErrorValidator } from "../../common/forms/validation/custom-validator";
import { ValidationErrorModel } from "../../common/forms/validation/error-model/validation-error-model";
import { DmpCreateWizardFormModel } from "../../core/model/dmp/dmp-create-wizard/dmp-create-wizard-form.model";
import { DatasetEditorWizardModel } from "../quick-wizard/dataset-editor/dataset-editor-wizard-model";
import { DatasetWizardEditorModel } from "../dataset/dataset-wizard/dataset-wizard-editor.model";
import { DmpEditorWizardModel } from "../quick-wizard/dmp-editor/dmp-editor-wizard-model";
export class DatasetCreateWizardModel {
public dmpMeta: DmpCreateWizardFormModel;
public datasets: DatasetEditorWizardModel;
public validationErrorModel: ValidationErrorModel = new ValidationErrorModel();
fromModelDmp(item: DmpCreateWizardFormModel): DatasetCreateWizardModel {
this.dmpMeta.fromModel(item);
return this;
}
fromModelDataset(item: DatasetWizardEditorModel[]): DatasetCreateWizardModel {
this.datasets.fromModel(item);
return this;
}
buildForm(context: ValidationContext = null): FormGroup {
if (context == null) { context = this.createValidationContext(); }
const formBuilder = new FormBuilder();
const formGroup = formBuilder.group({
dmpMeta: new DmpCreateWizardFormModel().buildForm(),
datasets: new DatasetEditorWizardModel().buildForm()
});
return formGroup;
}
createValidationContext(): ValidationContext {
const baseContext: ValidationContext = new ValidationContext();
baseContext.validation.push({ key: 'label', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'label')] });
baseContext.validation.push({ key: 'status', validators: [BackendErrorValidator(this.validationErrorModel, 'status')] });
return baseContext;
}
}

View File

@ -0,0 +1,41 @@
import { NgModule } from '@angular/core';
import { DatasetCreateWizard } from './dataset-create-wizard.component';
import { DatasetCreateWizardRoutingModule } from './dataset-create-wizard.routing';
import { CommonUiModule } from '../../common/ui/common-ui.module';
import { CommonFormsModule } from '../../common/forms/common-forms.module';
import { AutoCompleteModule } from '../../library/auto-complete/auto-complete.module';
import { DatasetDmpSelector } from './dmp-selector/dataset-dmp-selector.component';
import { FormattingModule } from '../../core/formatting.module';
import { DatasetEditorWizardComponent } from '../quick-wizard/dataset-editor/dataset-editor-wizard.component';
//import { DatasetDescriptionFormComponent } from '../misc/dataset-description-form/dataset-description-form.component';
//import { FormProgressIndicationComponent } from '../misc/dataset-description-form/components/form-progress-indication/form-progress-indication.component';
import { UrlListingModule } from '../../library/url-listing/url-listing.module';
import { ConfirmationDialogModule } from '../../library/confirmation-dialog/confirmation-dialog.module';
import { DatasetDescriptionFormModule } from '../misc/dataset-description-form/dataset-description-form.module';
import { QuickWizardRoutingModule } from '../quick-wizard/quick-wizard.rooting';
import { OuickWizardModule } from '../quick-wizard/quick-wizard.module';
import { CoreServiceModule } from '../../core/core-service.module';
@NgModule({
imports: [
DatasetCreateWizardRoutingModule,
CommonUiModule,
CommonFormsModule,
AutoCompleteModule,
FormattingModule,
UrlListingModule,
ConfirmationDialogModule,
QuickWizardRoutingModule,
DatasetDescriptionFormModule,
OuickWizardModule,
],
declarations: [
DatasetCreateWizard,
DatasetDmpSelector,
],
entryComponents: [
]
})
export class DatasetCreateWizardModule { }

View File

@ -0,0 +1,27 @@
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { DatasetCreateWizard } from './dataset-create-wizard.component';
import { DatasetDmpSelector } from './dmp-selector/dataset-dmp-selector.component';
const routes: Routes = [
{
path: '',
component: DatasetCreateWizard,
data: {
breadcrumb: true
},
},
{
path: '',
component: DatasetDmpSelector,
data: {
breadcrumb: true
},
},
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class DatasetCreateWizardRoutingModule { }

View File

@ -0,0 +1,14 @@
<div class="dataset-dmp-selector" [formGroup]="formGroup" *ngIf="formGroup">
<mat-form-field class="col-md-6">
<app-single-auto-complete [required]="true" [formControl]="formGroup.get('dmp')" placeholder="{{'DATASET-EDITOR.FIELDS.DMP' | translate}}"
[configuration]="dmpAutoCompleteConfiguration">
</app-single-auto-complete>
</mat-form-field>
<mat-form-field class="col-md-6">
<mat-select placeholder=" {{'DATASET-WIZARD.FIRST-STEP.PROFILE'| translate}}" [required]="true" formControlName="datasetProfile">
<mat-option *ngFor="let datasetProfile of availableProfiles" [value]="datasetProfile">
{{datasetProfile.label}}
</mat-option>
</mat-select>
</mat-form-field>
</div>

View File

@ -0,0 +1,89 @@
import { Component, OnInit, ViewChild, Input } from '@angular/core';
import { BaseComponent } from '../../../core/common/base/base.component';
import { IBreadCrumbComponent } from '../../misc/breadcrumb/definition/IBreadCrumbComponent';
import { Observable } from 'rxjs';
import { BreadcrumbItem } from '../../misc/breadcrumb/definition/breadcrumb-item';
import { MatStepper, MatSnackBar } from '@angular/material';
import { FormGroup } 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';
@Component({
selector: 'dataset-dmp-selector-component',
templateUrl: 'dataset-dmp-selector.component.html',
styleUrls: ['./dataset-dmp-selector.component.scss'],
})
export class DatasetDmpSelector extends BaseComponent implements OnInit, IBreadCrumbComponent {
breadCrumbs: Observable<BreadcrumbItem[]>;
dmpAutoCompleteConfiguration: SingleAutoCompleteConfiguration;
@Input() formGroup: FormGroup;
formControl: FormControl;
availableProfiles: DatasetProfileModel[] = [];
constructor(
private router: Router,
private route: ActivatedRoute,
public dmpService: DmpService,
private datasetWizardService: DatasetWizardService,
) {
super();
}
ngOnInit() {
this.dmpAutoCompleteConfiguration = {
filterFn: this.searchDmp.bind(this),
initialItems: (extraData) => this.searchDmp(''),
displayFn: (item) => item['label'],
titleFn: (item) => item['label'],
};
this.formGroup.get('dmp').valueChanges
.pipe(takeUntil(this._destroyed))
.subscribe(x => {
if (x) { this.loadDatasetProfiles(); }
else {
this.availableProfiles = [];
this.formGroup.get('datasetProfile').reset();
}
});
}
searchDmp(query: string): Observable<DmpListingModel[]> {
const fields: Array<string> = new Array<string>();
fields.push('asc');
const dmpDataTableRequest: DataTableRequest<DmpCriteria> = new DataTableRequest(0, null, { fields: fields });
dmpDataTableRequest.criteria = new DmpCriteria();
dmpDataTableRequest.criteria.like = query;
//const dmpListingModel =
return this.dmpService.getPaged(dmpDataTableRequest, "autocomplete")
.map(x => x.data);
}
loadDatasetProfiles() {
const datasetProfileRequestItem: RequestItem<DatasetProfileCriteria> = new RequestItem();
datasetProfileRequestItem.criteria = new DatasetProfileCriteria();
datasetProfileRequestItem.criteria.id = this.formGroup.get('dmp').value.id;
if (datasetProfileRequestItem.criteria.id) {
this.datasetWizardService.getAvailableProfiles(datasetProfileRequestItem)
.pipe(takeUntil(this._destroyed))
.subscribe(items => {
this.availableProfiles = items;
});
}
}
}

View File

@ -0,0 +1,7 @@
import { DmpModel } from "../../../core/model/dmp/dmp";
import { DatasetProfileModel } from "../../../core/model/dataset/dataset-profile";
export class DatasetDmpSelectorModel{
label?: string;
status?: number;
}

View File

@ -6,13 +6,14 @@ import { ValidationContext } from "../../../common/forms/validation/validation-c
import { FormBuilder, FormGroup, Validators } from "@angular/forms";
import { BackendErrorValidator } from "../../../common/forms/validation/custom-validator";
import { ValidJsonValidator } from "../../../library/auto-complete/auto-complete-custom-validator";
import { DatasetProfileModel } from "../../../core/model/dataset/dataset-profile";
export class DmpEditorWizardModel {
public id: string;
public label: string;
public status: Status = Status.Active;
public description: String;
public profile: DmpProfile;
public datasetProfile: DatasetProfileModel;
public definition: DmpProfileDefinition;
public validationErrorModel: ValidationErrorModel = new ValidationErrorModel();
@ -21,7 +22,7 @@ export class DmpEditorWizardModel {
this.label = item.label;
this.status = item.status;
this.description = item.description;
this.profile = item.profiles[0];
this.datasetProfile = item.profiles[0];
return this;
}
@ -32,7 +33,7 @@ export class DmpEditorWizardModel {
label: [{ value: this.label, disabled: disabled }, context.getValidation('label').validators],
status: [{ value: this.status, disabled: disabled }, context.getValidation('status').validators],
description: [{ value: this.description, disabled: disabled }, context.getValidation('description').validators],
profile: [{ value: this.profile, disabled: disabled }, context.getValidation('profile').validators],
datasetProfile: [{ value: this.datasetProfile, disabled: disabled }, context.getValidation('datasetProfile').validators],
});
return formGroup;
}
@ -43,7 +44,7 @@ export class DmpEditorWizardModel {
baseContext.validation.push({ key: 'label', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'label')] });
baseContext.validation.push({ key: 'status', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'status')] });
baseContext.validation.push({ key: 'description', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'description')] });
baseContext.validation.push({ key: 'profile', validators: [Validators.required, ValidJsonValidator, BackendErrorValidator(this.validationErrorModel, 'profile')] });
baseContext.validation.push({ key: 'datasetProfile', validators: [Validators.required, ValidJsonValidator, BackendErrorValidator(this.validationErrorModel, 'datasetProfile')] });
return baseContext;
}
}

View File

@ -27,13 +27,13 @@
translate}}</mat-error>
</mat-form-field>
<mat-form-field class="col-12">
<app-single-auto-complete [required]='true' [formControl]="formGroup.get('profile')"
<app-single-auto-complete [required]='true' [formControl]="formGroup.get('datasetProfile')"
placeholder="{{'QUICKWIZARD.CREATE-ADD.CREATE.QUICKWIZARD_CREATE.SECOND-STEP.FIELDS.PROFILE' | translate}}"
[configuration]="profilesAutoCompleteConfiguration">
</app-single-auto-complete>
<mat-error *ngIf="formGroup.get('profile').hasError('backendError')">
{{formGroup.get('profile').getError('backendError').message}}</mat-error>
<mat-error *ngIf="formGroup.get('profile').hasError('required')">
<mat-error *ngIf="formGroup.get('datasetProfile').hasError('backendError')">
{{formGroup.get('datasetProfile').getError('backendError').message}}</mat-error>
<mat-error *ngIf="formGroup.get('datasetProfile').hasError('required')">
{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
</mat-form-field>
<!-- <mat-form-field class="col-md-6">
@ -64,4 +64,4 @@
</mat-card-content>
</mat-card>
</form>
</div>
</div>

View File

@ -45,7 +45,7 @@
<div *ngIf="formGroup.get('datasets')">
<!-- <div *ngIf="this.isActiveStep(3)" class="row"> -->
<app-dataset-editor-wizard-component class="col-12" [formGroup]="formGroup"
[profile]="formGroup.get('dmp').get('profile')"
[datasetProfile]="formGroup.get('dmp').get('datasetProfile')"
[datasetLabel]="formGroup.get('dmp').get('label')">
</app-dataset-editor-wizard-component>
<!-- <app-dataset-description-form class="col-12" *ngIf="formGroup && datasetWizardModel && datasetWizardModel.datasetProfileDefinition"
@ -67,4 +67,4 @@
</mat-horizontal-stepper>
</div>
</form>
</div>
</div>

View File

@ -20,13 +20,16 @@ import { DatasetDescriptionFormModule } from '../misc/dataset-description-form/d
AutoCompleteModule,
ConfirmationDialogModule,
QuickWizardRoutingModule,
DatasetDescriptionFormModule
DatasetDescriptionFormModule,
],
declarations: [
ProjectEditorWizardComponent,
DmpEditorWizardComponent,
QuickWizardEditorComponent,
DatasetEditorWizardComponent
],
exports: [
DatasetEditorWizardComponent,
]
})
export class OuickWizardModule { }
export class OuickWizardModule { }

View File

@ -215,6 +215,14 @@
"DOWNLOAD-PDF": "Download PDF"
}
},
"DMP-UPLOAD": {
"TITLE": "Upload Data Managment Plan via XML",
"UPLOAD-BUTTON": "Upload",
"ACTIONS": {
"IMPORT": "Import",
"CANCEL": "Cancel"
}
},
"DATASET-WIZARD": {
"TITLE": {
"NEW": "New Dataset Description"
@ -452,6 +460,16 @@
"DELETE": "Delete"
}
},
"DATASET-CREATE-WIZARD": {
"ACTIONS": {
"NEXT": "Next",
"BACK": "Back",
"SAVE": "Save"
},
"FIRST-STEP": {
"TITLE": "DMP Information"
}
},
"INVITATION-EDITOR": {
"TITLE": "Send Invitations for ",
"AUTOCOMPLETE-USER": "User",
@ -690,4 +708,4 @@
}
}
}
}
}