Fixes save new dataset

This commit is contained in:
apapachristou 2020-08-25 18:34:28 +03:00
parent 15d2958c95
commit 404632a337
4 changed files with 36 additions and 6 deletions

View File

@ -32,6 +32,7 @@ import { DmpListingModel } from '@app/core/model/dmp/dmp-listing';
export class DatasetInfoComponent extends BaseComponent implements OnInit {
@Input() formGroup: FormGroup = null;
// @Input() datasetFormGroup: FormGroup = null;
@Input() isUserOwner: boolean;
@Input() dmp: DmpEditorModel;
@Input() isPublic: boolean;
@ -84,7 +85,7 @@ export class DatasetInfoComponent extends BaseComponent implements OnInit {
this.formGroup.get('extraProperties').get('publicDate').patchValue(new Date());
}
// this.datasetFormGroup.get('dmp').valueChanges.pipe(takeUntil(this._destroyed))
this.formGroup.get('datasets')['controls'][0].get('dmp').valueChanges.pipe(takeUntil(this._destroyed))
.subscribe(x => {
// this.registerFormListeners();

View File

@ -46,6 +46,7 @@ import { SingleAutoCompleteConfiguration } from '@app/library/auto-complete/sing
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';
import { DatasetWizardService } from '@app/core/services/dataset-wizard/dataset-wizard.service';
@Component({
selector: 'app-dmp-editor-component',
@ -67,6 +68,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
dmp: DmpEditorModel;
formGroup: FormGroup = null;
// datasetFormGroup: FormGroup;
formGroupRawValue: any;
datasetId: string = null;
datasets = new FormArray([]);
@ -88,6 +90,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
constructor(
private dmpProfileService: DmpProfileService,
private datasetWizardService: DatasetWizardService,
private dmpService: DmpService,
private route: ActivatedRoute,
private router: Router,
@ -269,6 +272,7 @@ 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();
// this.datasetFormGroup = datasetWizardEditorModel.buildForm();
// datasetWizardEditorModel.datasetProfileDefinition = new DatasetDescriptionFormEditorModel();
this.dmp.datasets.push(datasetWizardEditorModel);
@ -392,11 +396,20 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
formSubmit(showAddDatasetDialog?: boolean): void {
this.formService.touchAllFormFields(this.formGroup);
if (!this.isFormValid()) {
this.showValidationErrorsDialog();
return;
if (this.isNewDataset) {
if (!this.isDatasetFormValid) {
this.showValidationErrorsDialog();
return;
}
this.onDatasetSubmit();
}
else {
if (!this.isFormValid()) {
this.showValidationErrorsDialog();
return;
}
this.onSubmit(showAddDatasetDialog);
}
this.onSubmit(showAddDatasetDialog);
}
public isFormValid() {
@ -406,6 +419,10 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
// (this.formGroup.get('grant').get('label').valid || this.formGroup.get('grant').get('existGrant').valid);
}
public isDatasetFormValid() {
return this.formGroup.get('datasets')['controls'][0].valid;
}
private showValidationErrorsDialog(projectOnly?: boolean) {
const dialogRef = this.dialog.open(FormValidationErrorsDialogComponent, {
disableClose: true,
@ -449,6 +466,17 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
}
onDatasetSubmit(): void {
this.datasetWizardService.createDataset(this.formGroup.get('datasets')['controls'][0].getRawValue())
.pipe(takeUntil(this._destroyed))
.subscribe(
data => {
this.onCallbackSuccess(this.formGroup.get('datasets')['controls'][0].get('id').value);
},
error => this.onCallbackError(error)
);
}
onCallbackSuccess(id?: String, datasetId?: string): void {
this.uiNotificationService.snackBarNotification(this.isNew ? this.language.instant('GENERAL.SNACK-BAR.SUCCESSFUL-CREATION') : this.language.instant('GENERAL.SNACK-BAR.SUCCESSFUL-UPDATE'), SnackBarNotificationLevel.Success);
if (id != null) {

View File

@ -17,6 +17,7 @@
{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
</mat-form-field>
<mat-form-field *ngIf="isNewDataset">
<!-- <app-single-auto-complete [required]="true" [formControl]="this.datasetFormGroup.get('dmp')" placeholder="{{'DATASET-EDITOR.FIELDS.SELECT-DMP' | translate}}" [configuration]="dmpAutoCompleteConfiguration"></app-single-auto-complete> -->
<app-single-auto-complete [required]="true" [formControl]="this.formGroup.get('datasets')['controls'][0].get('dmp')" placeholder="{{'DATASET-EDITOR.FIELDS.SELECT-DMP' | translate}}" [configuration]="dmpAutoCompleteConfiguration"></app-single-auto-complete>
<!-- <app-single-auto-complete [required]="true" [formControl]="formGroup" placeholder="{{'DATASET-EDITOR.FIELDS.SELECT-DMP' | translate}}" [configuration]="dmpAutoCompleteConfiguration">
</app-single-auto-complete> -->

View File

@ -27,6 +27,7 @@ import { DmpService } from '@app/core/services/dmp/dmp.service';
export class MainInfoComponent extends BaseComponent implements OnInit {
@Input() formGroup: FormGroup = null;
// @Input() datasetFormGroup: FormGroup;
@Input() isNewVersion: boolean;
@Input() isNewDataset: boolean;
@Input() isUserOwner: boolean;
@ -83,7 +84,6 @@ 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();