diff --git a/src/app/workspace/resource/operations/create-link-resource/create-link-resource.component.ts b/src/app/workspace/resource/operations/create-link-resource/create-link-resource.component.ts index 8941d0c0bd..4e135b91d0 100644 --- a/src/app/workspace/resource/operations/create-link-resource/create-link-resource.component.ts +++ b/src/app/workspace/resource/operations/create-link-resource/create-link-resource.component.ts @@ -29,7 +29,7 @@ export class CreateLinkResourceComponent implements OnInit { @Input() resourceClassDef: string; @Input() currentOntoIri: string; - @Output() closeDialog: EventEmitter = new EventEmitter(); + @Output() closeDialog: EventEmitter = new EventEmitter(); @ViewChild('selectProps') selectPropertiesComponent: SelectPropertiesComponent; @@ -129,7 +129,7 @@ export class CreateLinkResourceComponent implements OnInit { this._dspApiConnection.v2.res.createResource(createResource).subscribe( (res: ReadResource) => { - this.closeDialog.emit(); + this.closeDialog.emit(res); }, (error: ApiResponseError) => { this._errorHandler.showMessage(error); diff --git a/src/app/workspace/resource/values/link-value/link-value.component.ts b/src/app/workspace/resource/values/link-value/link-value.component.ts index 026f5b7c2d..795f34c533 100644 --- a/src/app/workspace/resource/values/link-value/link-value.component.ts +++ b/src/app/workspace/resource/values/link-value/link-value.component.ts @@ -7,9 +7,11 @@ import { OnDestroy, OnInit, Output, - SimpleChanges + SimpleChanges, + ViewChild } from '@angular/core'; import { AbstractControl, FormBuilder, FormControl, FormGroup } from '@angular/forms'; +import { MatAutocompleteTrigger } from '@angular/material/autocomplete'; import { MatDialog, MatDialogConfig } from '@angular/material/dialog'; import { CreateLinkValue, @@ -49,9 +51,10 @@ export class LinkValueComponent extends BaseValueDirective implements OnInit, On @Input() currentOntoIri: string; @Output() referredResourceClicked: EventEmitter = new EventEmitter(); - @Output() referredResourceHovered: EventEmitter = new EventEmitter(); + @ViewChild(MatAutocompleteTrigger) autocomplete: MatAutocompleteTrigger; + resources: ReadResource[] = []; restrictToResourceClass: string; valueFormControl: FormControl; @@ -259,6 +262,16 @@ export class LinkValueComponent extends BaseValueDirective implements OnInit, On disableClose: true }; - this._dialog.open(DialogComponent, dialogConfig); + const dialogRef = this._dialog.open(DialogComponent, dialogConfig); + + dialogRef.afterClosed().subscribe((event: any) => { + const newResource = event as ReadResource; + + // set value of value form control to the newly created resource + this.form.controls.value.setValue(newResource); + + // hide the autocomplete results + this.autocomplete.closePanel(); + }); } }