Adds funder on Dmp model and removes it form Grant model and adds funder criteria on grant input autocomplete
This commit is contained in:
parent
535ca2ed5a
commit
93cb23b870
|
@ -15,7 +15,7 @@ export interface GrantListingModel {
|
|||
endDate?: Date;
|
||||
description?: String;
|
||||
contentUrl?: string;
|
||||
funder?: FunderModel;
|
||||
funderId?: string;
|
||||
files?: ContentFile[];
|
||||
dmps?: UrlListingItem[];
|
||||
}
|
||||
|
|
|
@ -4,5 +4,6 @@ import { BaseCriteria } from "../base-criteria";
|
|||
export class GrantCriteria extends BaseCriteria {
|
||||
public periodStart: Date;
|
||||
public periodEnd: Date;
|
||||
public funderReference: String;
|
||||
public grantStateType: GrantStateType;
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
<mat-icon class="mr-2">work_outline</mat-icon>
|
||||
{{ 'DMP-LISTING.COLUMNS.GRANT' | translate }}
|
||||
</ng-template>
|
||||
<app-grant-tab [formGroup]="formGroup.get('grant')" [projectFormGroup]="formGroup.get('project')" [isNew]="isNew" [isFinalized]="isFinalized"></app-grant-tab>
|
||||
<app-grant-tab [formGroup]="formGroup.get('grant')" [projectFormGroup]="formGroup.get('project')" [funderFormGroup]="formGroup.get('funder')" [isNew]="isNew" [isFinalized]="isFinalized"></app-grant-tab>
|
||||
</mat-tab>
|
||||
<mat-tab *ngIf="!isNew">
|
||||
<ng-template mat-tab-label>
|
||||
|
|
|
@ -111,7 +111,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
|
|||
this.dmp = new DmpEditorModel();
|
||||
this.dmp.grant = new GrantTabModel();
|
||||
this.dmp.project = new ProjectFormModel();
|
||||
this.dmp.grant.funder = new FunderFormModel();
|
||||
this.dmp.funder = new FunderFormModel();
|
||||
this.dmp.fromModel(data);
|
||||
this.formGroup = this.dmp.buildForm();
|
||||
//this.registerFormEventsForDmpProfile(this.dmp.definition);
|
||||
|
@ -148,7 +148,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
|
|||
this.dmp = new DmpEditorModel();
|
||||
this.dmp.grant = new GrantTabModel();
|
||||
this.dmp.project = new ProjectFormModel();
|
||||
this.dmp.grant.funder = new FunderFormModel();
|
||||
this.dmp.funder = new FunderFormModel();
|
||||
this.dmp.fromModel(data);
|
||||
this.formGroup = this.dmp.buildForm();
|
||||
//this.registerFormEventsForDmpProfile(this.dmp.definition);
|
||||
|
@ -173,7 +173,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
|
|||
this.dmp = new DmpEditorModel();
|
||||
this.dmp.grant = new GrantTabModel();
|
||||
this.dmp.project = new ProjectFormModel();
|
||||
this.dmp.grant.funder = new FunderFormModel();
|
||||
this.dmp.funder = new FunderFormModel();
|
||||
this.formGroup = this.dmp.buildForm();
|
||||
this.registerFormEventsForNewItem();
|
||||
if (this.isAuthenticated) {
|
||||
|
|
|
@ -8,7 +8,6 @@ import { DmpModel } from "../../../core/model/dmp/dmp";
|
|||
import { DmpDynamicField } from "../../../core/model/dmp/dmp-dynamic-field";
|
||||
import { DmpDynamicFieldDependency } from "../../../core/model/dmp/dmp-dynamic-field-dependency";
|
||||
import { OrganizationModel } from "../../../core/model/organisation/organization";
|
||||
import { GrantListingModel } from "../../../core/model/grant/grant-listing";
|
||||
import { ResearcherModel } from "../../../core/model/researcher/researcher";
|
||||
import { UserModel } from "../../../core/model/user/user";
|
||||
import { ValidJsonValidator } from "../../../library/auto-complete/auto-complete-custom-validator";
|
||||
|
@ -34,7 +33,7 @@ export class DmpEditorModel {
|
|||
public description: String;
|
||||
public grant: GrantTabModel;
|
||||
public project: ProjectFormModel;
|
||||
// public funder: FunderFormModel;
|
||||
public funder: FunderFormModel;
|
||||
public organisations: OrganizationModel[] = [];
|
||||
public researchers: ResearcherModel[] = [];
|
||||
public profiles: DmpProfile[] = [];
|
||||
|
@ -57,7 +56,7 @@ export class DmpEditorModel {
|
|||
this.description = item.description;
|
||||
this.grant.fromModel(item.grant);
|
||||
this.project.fromModel(item.project);
|
||||
// this.funder.fromModel(item.funder);
|
||||
this.funder.fromModel(item.funder);
|
||||
this.organisations = item.organisations;
|
||||
this.researchers = item.researchers;
|
||||
this.profiles = item.profiles;
|
||||
|
@ -84,7 +83,7 @@ export class DmpEditorModel {
|
|||
description: [{ value: this.description, disabled: disabled }],
|
||||
grant: this.grant.buildForm(),
|
||||
project: this.project.buildForm(),
|
||||
// funder: this.funder.buildForm(),
|
||||
funder: this.funder.buildForm(),
|
||||
organisations: [{ value: this.organisations, disabled: disabled }, context.getValidation('organisations').validators],
|
||||
researchers: [{ value: this.researchers, disabled: disabled }, context.getValidation('researchers').validators],
|
||||
profiles: [{ value: this.profiles, disabled: disabled }, context.getValidation('profiles').validators],
|
||||
|
@ -121,7 +120,7 @@ export class DmpEditorModel {
|
|||
baseContext.validation.push({ key: 'description', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'description')] });
|
||||
baseContext.validation.push({ key: 'grant', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'grant')] });
|
||||
baseContext.validation.push({ key: 'project', validators: [BackendErrorValidator(this.validationErrorModel, 'project')] });
|
||||
// baseContext.validation.push({ key: 'funder', validators: [BackendErrorValidator(this.validationErrorModel, 'funder')] });
|
||||
baseContext.validation.push({ key: 'funder', validators: [BackendErrorValidator(this.validationErrorModel, 'funder')] });
|
||||
baseContext.validation.push({ key: 'organisations', validators: [BackendErrorValidator(this.validationErrorModel, 'organisations')] });
|
||||
baseContext.validation.push({ key: 'researchers', validators: [BackendErrorValidator(this.validationErrorModel, 'researchers')] });
|
||||
baseContext.validation.push({ key: 'profiles', validators: [Validators.required, ValidJsonValidator, BackendErrorValidator(this.validationErrorModel, 'profiles')] });
|
||||
|
|
|
@ -12,13 +12,12 @@ export class GrantTabModel {
|
|||
public label?: string;
|
||||
public status: Status = Status.Active;
|
||||
public description: String;
|
||||
public funder: FunderFormModel;
|
||||
public existGrant: GrantListingModel;
|
||||
public funderId: String;
|
||||
public validationErrorModel: ValidationErrorModel = new ValidationErrorModel();
|
||||
|
||||
|
||||
fromModel(item: GrantListingModel): GrantTabModel {
|
||||
this.funder.fromModel(item.funder);
|
||||
this.existGrant = item;
|
||||
return this;
|
||||
}
|
||||
|
@ -31,8 +30,8 @@ export class GrantTabModel {
|
|||
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],
|
||||
funder: this.funder.buildForm(),
|
||||
existGrant: [{ value: this.existGrant, disabled: disabled }, context.getValidation('existGrant').validators],
|
||||
funderId: [{ value: this.funderId, disabled: disabled }, context.getValidation('funderId').validators],
|
||||
});
|
||||
return formGroup;
|
||||
}
|
||||
|
@ -43,8 +42,8 @@ export class GrantTabModel {
|
|||
baseContext.validation.push({ key: 'label', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'label')] });
|
||||
baseContext.validation.push({ key: 'status', validators: [] });
|
||||
baseContext.validation.push({ key: 'description', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'description')] });
|
||||
baseContext.validation.push({ key: 'funder', validators: [BackendErrorValidator(this.validationErrorModel, 'funder')] });
|
||||
baseContext.validation.push({ key: 'existGrant', validators: [Validators.required, ValidJsonValidator, BackendErrorValidator(this.validationErrorModel, 'existGrant')] });
|
||||
baseContext.validation.push({ key: 'funderId', validators: [ValidJsonValidator, BackendErrorValidator(this.validationErrorModel, 'funderId')] });
|
||||
return baseContext;
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<div class="row">
|
||||
<div class="col-6 pb-2 pl-4 pt-4" *ngIf="!isCreateNewFunder">
|
||||
<mat-form-field>
|
||||
<app-single-auto-complete [formControl]="formGroup.get('funder').get('existFunder')" placeholder="{{'DMP-EDITOR.FIELDS.FUNDER' | translate}}" [configuration]="funderAutoCompleteConfiguration">
|
||||
<app-single-auto-complete [formControl]="funderFormGroup.get('existFunder')" placeholder="{{'DMP-EDITOR.FIELDS.FUNDER' | translate}}" [configuration]="funderAutoCompleteConfiguration">
|
||||
</app-single-auto-complete>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
@ -13,10 +13,10 @@
|
|||
<!-- Create New Funder -->
|
||||
<div class="col-6 pl-4 pt-4" *ngIf="isCreateNewFunder">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="{{'QUICKWIZARD.CREATE-ADD.CREATE.QUICKWIZARD_CREATE.FIRST-STEP.FIELDS.FUNDER-LABEL' | translate}}" type="text" name="label" [formControl]="formGroup.get('funder').get('label')" required>
|
||||
<mat-error *ngIf="formGroup.get('funder').get('label').hasError('backendError')">
|
||||
{{formGroup.get('funder').get('label').getError('backendError').message}}</mat-error>
|
||||
<mat-error *ngIf="formGroup.get('funder').get('label').hasError('required')">
|
||||
<input matInput placeholder="{{'QUICKWIZARD.CREATE-ADD.CREATE.QUICKWIZARD_CREATE.FIRST-STEP.FIELDS.FUNDER-LABEL' | translate}}" type="text" name="label" [formControl]="funderFormGroup.get('label')" required>
|
||||
<mat-error *ngIf="funderFormGroup.get('label').hasError('backendError')">
|
||||
{{funderFormGroup.get('label').getError('backendError').message}}</mat-error>
|
||||
<mat-error *ngIf="funderFormGroup.get('label').hasError('required')">
|
||||
{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
|
|
@ -20,7 +20,7 @@ export class GrantTabComponent implements OnInit {
|
|||
|
||||
@Input() formGroup: FormGroup;
|
||||
@Input() projectFormGroup: FormGroup;
|
||||
// @Input() funderFormGroup: FormGroup;
|
||||
@Input() funderFormGroup: FormGroup;
|
||||
@Input() isNew: boolean;
|
||||
@Input() isFinalized: boolean;
|
||||
isCreateNew = false;
|
||||
|
@ -67,7 +67,7 @@ export class GrantTabComponent implements OnInit {
|
|||
|
||||
this.isCreateNew = (this.formGroup.get('label').value != null && this.formGroup.get('label').value.length > 0);
|
||||
this.isCreateNewProject = (this.projectFormGroup.get('label').value != null && this.projectFormGroup.get('label').value.length > 0);
|
||||
this.isCreateNewFunder = (this.formGroup.get('funder').get('label').value != null && this.formGroup.get('funder').get('label').value.length > 0);
|
||||
this.isCreateNewFunder = (this.funderFormGroup.get('label').value != null && this.funderFormGroup.get('label').value.length > 0);
|
||||
this.setValidators();
|
||||
this.setProjectValidators();
|
||||
this.setFunderValidators();
|
||||
|
@ -77,12 +77,15 @@ export class GrantTabComponent implements OnInit {
|
|||
const grantRequestItem: RequestItem<GrantCriteria> = new RequestItem();
|
||||
grantRequestItem.criteria = new GrantCriteria();
|
||||
grantRequestItem.criteria.like = query;
|
||||
if (this.funderFormGroup.value.existFunder.reference) {
|
||||
grantRequestItem.criteria.funderReference = this.funderFormGroup.value.existFunder.reference;
|
||||
} else { grantRequestItem.criteria.funderReference = ''}
|
||||
return this.grantService.getWithExternal(grantRequestItem);
|
||||
}
|
||||
|
||||
searchProject(query: string) {
|
||||
const projectRequestItem: RequestItem<GrantCriteria> = new RequestItem();
|
||||
projectRequestItem.criteria = new GrantCriteria();
|
||||
const projectRequestItem: RequestItem<ProjectCriteria> = new RequestItem();
|
||||
projectRequestItem.criteria = new ProjectCriteria();
|
||||
projectRequestItem.criteria.like = query;
|
||||
return this.projectService.getWithExternal(projectRequestItem);
|
||||
}
|
||||
|
@ -149,16 +152,16 @@ export class GrantTabComponent implements OnInit {
|
|||
|
||||
setFunderValidators() {
|
||||
if (this.isCreateNewFunder) {
|
||||
this.formGroup.get('funder').get('existFunder').disable();
|
||||
this.formGroup.get('funder').get('label').enable();
|
||||
this.funderFormGroup.get('existFunder').disable();
|
||||
this.funderFormGroup.get('label').enable();
|
||||
} else if (this.isFinalized) {
|
||||
this.formGroup.get('funder').get('existFunder').disable();
|
||||
this.formGroup.get('funder').get('label').disable();
|
||||
this.funderFormGroup.get('existFunder').disable();
|
||||
this.funderFormGroup.get('label').disable();
|
||||
}
|
||||
else {
|
||||
this.formGroup.get('funder').enable();
|
||||
this.formGroup.get('funder').get('label').disable();
|
||||
this.formGroup.get('funder').get('label').reset();
|
||||
this.funderFormGroup.enable();
|
||||
this.funderFormGroup.get('label').disable();
|
||||
this.funderFormGroup.get('label').reset();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue