DMP Editor. Organizations identifier query params patch.
This commit is contained in:
parent
a155f2cbec
commit
b82398d97e
|
@ -2,4 +2,5 @@ import { BaseCriteria } from "../base-criteria";
|
||||||
|
|
||||||
export class OrganisationCriteria extends BaseCriteria {
|
export class OrganisationCriteria extends BaseCriteria {
|
||||||
public labelLike: string;
|
public labelLike: string;
|
||||||
|
public like?: string;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<input matInput formControlName="reference" [placeholder]="'DMP-EDITOR.MAIN-INFO.UNIQUE-IDENTIFIER' | translate" required>
|
<input matInput formControlName="reference" [placeholder]="'DMP-EDITOR.MAIN-INFO.UNIQUE-IDENTIFIER' | translate" required>
|
||||||
<mat-error *ngIf="formGroup.get('reference').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
<mat-error *ngIf="formGroup.get('reference').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||||
<i matSuffix class="fa fa-spinner fa-spin" *ngIf="formGroup.get('reference').pending !referenceExists"></i>
|
<i matSuffix class="fa fa-spinner fa-spin" *ngIf="formGroup.get('reference').pending !referenceExists"></i>
|
||||||
<mat-error *ngIf="formGroup.get('reference').hasError('organizationIdentifierExists')">{{'DMP-EDITOR.MAIN-INFO.ORGANISATION-IDENTIFIER-EXISTS' | translate}}</mat-error>
|
<mat-error *ngIf="formGroup.get('reference').hasError('organizationIdentifierExists')">{{'DMP-EDITOR.MAIN-INFO.ORGANISATION-IDENTIFIER-EXSTS' | translate}}</mat-error>
|
||||||
<mat-icon *ngIf="!formGroup.get('reference').pending && formGroup.get('reference').dirty && formGroup.get('reference').valid && !referenceExists" class="text-success" matSuffix>check</mat-icon>
|
<mat-icon *ngIf="!formGroup.get('reference').pending && formGroup.get('reference').dirty && formGroup.get('reference').valid && !referenceExists" class="text-success" matSuffix>check</mat-icon>
|
||||||
<mat-icon *ngIf="!formGroup.get('reference').pending && formGroup.get('reference').dirty && formGroup.get('reference').invalid || referenceExists" class="text-danger" matSuffix>clear</mat-icon>
|
<mat-icon *ngIf="!formGroup.get('reference').pending && formGroup.get('reference').dirty && formGroup.get('reference').invalid || referenceExists" class="text-danger" matSuffix>clear</mat-icon>
|
||||||
<small *ngIf="referenceExists" class="text-danger">{{'DMP-EDITOR.MAIN-INFO.IDENTIFIER-EXISTS-ORGANISATION-LIST' | translate}}</small>
|
<small *ngIf="referenceExists" class="text-danger">{{'DMP-EDITOR.MAIN-INFO.IDENTIFIER-EXISTS-ORGANISATION-LIST' | translate}}</small>
|
||||||
|
|
|
@ -29,6 +29,7 @@ export class AddOrganizationComponent extends BaseComponent implements OnInit {
|
||||||
private externalSourcesService: ExternalSourcesService,
|
private externalSourcesService: ExternalSourcesService,
|
||||||
private externalResearcherService: ExternalResearcherService,
|
private externalResearcherService: ExternalResearcherService,
|
||||||
public dialogRef: MatDialogRef<AddOrganizationComponent>,
|
public dialogRef: MatDialogRef<AddOrganizationComponent>,
|
||||||
|
private organizationService: OrganisationService,
|
||||||
@Inject(MAT_DIALOG_DATA) public data: any
|
@Inject(MAT_DIALOG_DATA) public data: any
|
||||||
) {
|
) {
|
||||||
super();
|
super();
|
||||||
|
@ -64,11 +65,11 @@ export class AddOrganizationComponent extends BaseComponent implements OnInit {
|
||||||
return (control: AbstractControl) :Observable<ValidationErrors | null> =>{
|
return (control: AbstractControl) :Observable<ValidationErrors | null> =>{
|
||||||
return control.valueChanges.pipe(
|
return control.valueChanges.pipe(
|
||||||
debounceTime(600),
|
debounceTime(600),
|
||||||
mergeMap(value=>this.externalSourcesService.searchDMPOrganizations('',this._REFERENCE_PREFIX +value)),
|
mergeMap(value=>this.organizationService.searchGeneralOrganisations({criteria:{labelLike:'', like: this._REFERENCE_PREFIX +value}})),
|
||||||
takeUntil(this._destroyed),
|
takeUntil(this._destroyed),
|
||||||
map((response)=>{
|
map((response)=>{
|
||||||
if(response && response.length){
|
if(response && response.length){
|
||||||
const internalOrganizations = (response as Array<any>).filter(organization=> organization.key === this._KEY);
|
const internalOrganizations = (response as Array<any>).filter(organization=> organization.key === this._KEY).filter(organization=> organization.reference === this._REFERENCE_PREFIX + control.value);
|
||||||
|
|
||||||
if(internalOrganizations && internalOrganizations.length){
|
if(internalOrganizations && internalOrganizations.length){
|
||||||
return {organizationIdentifierExists:true};
|
return {organizationIdentifierExists:true};
|
||||||
|
|
|
@ -53,6 +53,12 @@ export class FundingInfoComponent extends BaseComponent implements OnInit {
|
||||||
private readonly _GRANT_PREFIX = "dmp:";
|
private readonly _GRANT_PREFIX = "dmp:";
|
||||||
private readonly _PROJECT_PREFIX = "dmp:";
|
private readonly _PROJECT_PREFIX = "dmp:";
|
||||||
private readonly _KEY = "Internal";
|
private readonly _KEY = "Internal";
|
||||||
|
|
||||||
|
|
||||||
|
private initialFunderIdentifier:string;
|
||||||
|
private initialGrantIdentifier:string;
|
||||||
|
private initialProjectIdentifier:string;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private grantService: GrantService,
|
private grantService: GrantService,
|
||||||
private projectService: ProjectService,
|
private projectService: ProjectService,
|
||||||
|
@ -76,6 +82,11 @@ export class FundingInfoComponent extends BaseComponent implements OnInit {
|
||||||
|
|
||||||
this.configureAutoCompletes();
|
this.configureAutoCompletes();
|
||||||
|
|
||||||
|
|
||||||
|
this.initialFunderIdentifier = this.funderFormGroup.get('reference').value;
|
||||||
|
this.initialGrantIdentifier = this.grantformGroup.get('reference').value;
|
||||||
|
this.initialProjectIdentifier = this.projectFormGroup.get('reference').value;
|
||||||
|
|
||||||
this.initializeReferenceValidators();
|
this.initializeReferenceValidators();
|
||||||
|
|
||||||
this.isCreateNew = (this.grantformGroup.get('label').value != null && this.grantformGroup.get('label').value.length > 0);
|
this.isCreateNew = (this.grantformGroup.get('label').value != null && this.grantformGroup.get('label').value.length > 0);
|
||||||
|
@ -123,6 +134,9 @@ export class FundingInfoComponent extends BaseComponent implements OnInit {
|
||||||
)
|
)
|
||||||
.subscribe(error=>{
|
.subscribe(error=>{
|
||||||
this.isFunderPending = false;
|
this.isFunderPending = false;
|
||||||
|
if(this.initialFunderIdentifier === this.funderFormGroup.get('reference').value){
|
||||||
|
error = null;
|
||||||
|
}
|
||||||
this.funderFormGroup.get('reference').setErrors(error);
|
this.funderFormGroup.get('reference').setErrors(error);
|
||||||
if(!error && this.funderFormGroup.get('reference').validator){
|
if(!error && this.funderFormGroup.get('reference').validator){
|
||||||
const validator = this.funderFormGroup.get('reference').validator({} as AbstractControl);
|
const validator = this.funderFormGroup.get('reference').validator({} as AbstractControl);
|
||||||
|
@ -158,6 +172,9 @@ export class FundingInfoComponent extends BaseComponent implements OnInit {
|
||||||
)
|
)
|
||||||
.subscribe(error=>{
|
.subscribe(error=>{
|
||||||
this.isGrantPending = false;
|
this.isGrantPending = false;
|
||||||
|
if(this.initialGrantIdentifier === this.grantformGroup.get('reference').value){
|
||||||
|
error = null;
|
||||||
|
}
|
||||||
this.grantformGroup.get('reference').setErrors(error);
|
this.grantformGroup.get('reference').setErrors(error);
|
||||||
if(!error && this.grantformGroup.get('reference').validator){
|
if(!error && this.grantformGroup.get('reference').validator){
|
||||||
const validator = this.grantformGroup.get('reference').validator({} as AbstractControl);
|
const validator = this.grantformGroup.get('reference').validator({} as AbstractControl);
|
||||||
|
@ -192,6 +209,9 @@ export class FundingInfoComponent extends BaseComponent implements OnInit {
|
||||||
)
|
)
|
||||||
.subscribe(error=>{
|
.subscribe(error=>{
|
||||||
this.isProjectPending = false;
|
this.isProjectPending = false;
|
||||||
|
if(this.initialProjectIdentifier === this.projectFormGroup.get('reference').value){
|
||||||
|
error = null;
|
||||||
|
}
|
||||||
this.projectFormGroup.get('reference').setErrors(error);
|
this.projectFormGroup.get('reference').setErrors(error);
|
||||||
if(!error && this.projectFormGroup.get('reference').validator){
|
if(!error && this.projectFormGroup.get('reference').validator){
|
||||||
const validator = this.projectFormGroup.get('reference').validator({} as AbstractControl);
|
const validator = this.projectFormGroup.get('reference').validator({} as AbstractControl);
|
||||||
|
|
|
@ -147,7 +147,7 @@ export class MainInfoComponent extends BaseComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
filterOrganisations(value: string): Observable<ExternalSourceItemModel[]> {
|
filterOrganisations(value: string): Observable<ExternalSourceItemModel[]> {
|
||||||
return this.organizationService.searchGeneralOrganisations({ criteria: { labelLike: value, like: value } });
|
return this.organizationService.searchGeneralOrganisations({ criteria: { labelLike: value } });
|
||||||
}
|
}
|
||||||
|
|
||||||
cantAddOrganizations(): boolean {
|
cantAddOrganizations(): boolean {
|
||||||
|
|
Loading…
Reference in New Issue