minor fixes dmp blueprints and Dmps.
This commit is contained in:
parent
51cc5f4fd9
commit
129dbd163a
|
@ -74,7 +74,7 @@ public class DmpBlueprintBuilder extends BaseBuilder<DmpBlueprint, DmpBlueprintE
|
||||||
DefinitionEntity definition = this.xmlHandlingService.xmlSerializableFromXmlSafe(DefinitionEntity.class, d.getDefinition());
|
DefinitionEntity definition = this.xmlHandlingService.xmlSerializableFromXmlSafe(DefinitionEntity.class, d.getDefinition());
|
||||||
m.setDefinition(this.builderFactory.builder(DefinitionBuilder.class).authorize(this.authorize).build(definitionFields, definition));
|
m.setDefinition(this.builderFactory.builder(DefinitionBuilder.class).authorize(this.authorize).build(definitionFields, definition));
|
||||||
}
|
}
|
||||||
if (!dmpExternalReferenceMap.isEmpty() && dmpExternalReferenceMap != null && dmpExternalReferenceMap.containsKey(d.getId())) m.setDmpExternalReferences(dmpExternalReferenceMap.get(d.getId()));
|
if (dmpExternalReferenceMap != null && !dmpExternalReferenceMap.isEmpty() && dmpExternalReferenceMap.containsKey(d.getId())) m.setDmpExternalReferences(dmpExternalReferenceMap.get(d.getId()));
|
||||||
models.add(m);
|
models.add(m);
|
||||||
models.add(m);
|
models.add(m);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package eu.eudat.model.builder.dmpblueprintdefinition;
|
package eu.eudat.model.builder.dmpblueprintdefinition;
|
||||||
|
|
||||||
import eu.eudat.commons.types.dmpblueprint.ExtraFieldEntity;
|
import eu.eudat.commons.types.dmpblueprint.SystemFieldEntity;
|
||||||
import eu.eudat.convention.ConventionService;
|
import eu.eudat.convention.ConventionService;
|
||||||
import eu.eudat.model.dmpblueprintdefinition.ExtraField;
|
import eu.eudat.model.dmpblueprintdefinition.SystemField;
|
||||||
import gr.cite.tools.fieldset.FieldSet;
|
import gr.cite.tools.fieldset.FieldSet;
|
||||||
import gr.cite.tools.logging.LoggerService;
|
import gr.cite.tools.logging.LoggerService;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
||||||
public class SystemFieldBuilder extends FieldBuilder<ExtraField, ExtraFieldEntity> {
|
public class SystemFieldBuilder extends FieldBuilder<SystemField, SystemFieldEntity> {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public SystemFieldBuilder(
|
public SystemFieldBuilder(
|
||||||
|
@ -21,12 +21,12 @@ public class SystemFieldBuilder extends FieldBuilder<ExtraField, ExtraFieldEntit
|
||||||
super(conventionService, new LoggerService(LoggerFactory.getLogger(SystemFieldBuilder.class)));
|
super(conventionService, new LoggerService(LoggerFactory.getLogger(SystemFieldBuilder.class)));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ExtraField getInstance() {
|
protected SystemField getInstance() {
|
||||||
return new ExtraField();
|
return new SystemField();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ExtraField buildChild(FieldSet fields, ExtraFieldEntity data, ExtraField model) {
|
protected SystemField buildChild(FieldSet fields, SystemFieldEntity data, SystemField model) {
|
||||||
if (fields.hasField(this.asIndexer(ExtraField._type))) model.setType(data.getType());
|
if (fields.hasField(this.asIndexer(SystemField._type))) model.setType(data.getType());
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<div class="row multiple-auto-complete" ngForm>
|
<div class="row multiple-auto-complete" ngForm>
|
||||||
<mat-chip-list #chipList ngDefaultControl style="width: 100% !important;">
|
<mat-chip-grid #chipList ngDefaultControl style="width: 100% !important;">
|
||||||
<ng-container *ngIf="value as values">
|
<ng-container *ngIf="value as values">
|
||||||
<mat-chip *ngFor="let value of values" [disabled]="disabled" [selectable]="selectable" [removable]="removable" [ngClass]="computeClass(value)">
|
<mat-chip *ngFor="let value of values" [disabled]="disabled" [selectable]="selectable" [removable]="removable" [ngClass]="computeClass(value)">
|
||||||
<ng-container *ngIf="_selectedItems.get(stringify(value)) as selectedItem">
|
<ng-container *ngIf="_selectedItems.get(stringify(value)) as selectedItem">
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
<input matInput #autocompleteInput class="col" [name]="id" autocomplete="nope" #autocompleteTrigger="matAutocompleteTrigger" [placeholder]="placeholder" [matAutocomplete]="autocomplete" [value]="inputValue" (keyup)="onKeyUp($event)" (keydown)="onKeyDown($event)" [disabled]="disabled" (focus)="_onInputFocus()" (blur)="onBlur($event)" [matChipInputFor]="chipList" [matChipInputSeparatorKeyCodes]="separatorKeysCodes" [matChipInputAddOnBlur]="autoSelectFirstOptionOnBlur" (matChipInputTokenEnd)="_addItem($event)"> -->
|
<input matInput #autocompleteInput class="col" [name]="id" autocomplete="nope" #autocompleteTrigger="matAutocompleteTrigger" [placeholder]="placeholder" [matAutocomplete]="autocomplete" [value]="inputValue" (keyup)="onKeyUp($event)" (keydown)="onKeyDown($event)" [disabled]="disabled" (focus)="_onInputFocus()" (blur)="onBlur($event)" [matChipInputFor]="chipList" [matChipInputSeparatorKeyCodes]="separatorKeysCodes" [matChipInputAddOnBlur]="autoSelectFirstOptionOnBlur" (matChipInputTokenEnd)="_addItem($event)"> -->
|
||||||
<mat-icon *ngIf="!disabled" class="align-arrow-right" matSuffix>arrow_drop_down</mat-icon>
|
<mat-icon *ngIf="!disabled" class="align-arrow-right" matSuffix>arrow_drop_down</mat-icon>
|
||||||
<div style="height: 0 !important; width: 100% !important; visibility: hidden !important;" matAutocompleteOrigin #origin="matAutocompleteOrigin"></div>
|
<div style="height: 0 !important; width: 100% !important; visibility: hidden !important;" matAutocompleteOrigin #origin="matAutocompleteOrigin"></div>
|
||||||
</mat-chip-list>
|
</mat-chip-grid>
|
||||||
|
|
||||||
<mat-autocomplete #autocomplete="matAutocomplete" [displayWith]="_displayFn.bind(this)" (optionSelected)="_optionSelected($event)">
|
<mat-autocomplete #autocomplete="matAutocomplete" [displayWith]="_displayFn.bind(this)" (optionSelected)="_optionSelected($event)">
|
||||||
<span *ngIf="_groupedItems">
|
<span *ngIf="_groupedItems">
|
||||||
|
|
|
@ -33,6 +33,56 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- First Step -->
|
||||||
|
<div class="row" id="editor-form" *ngIf="this.step === 0 && this.isNew">
|
||||||
|
<div class="col-12 blueprint-section">
|
||||||
|
<div class="row">
|
||||||
|
<div class="heading2 col-12">{{'DMP-EDITOR.FIELDS.NAME' | translate}} *</div>
|
||||||
|
<div class="col-12">
|
||||||
|
<mat-form-field class="w-100">
|
||||||
|
<mat-label>{{'DMP-EDITOR.FIELDS.NAME' | translate}}</mat-label>
|
||||||
|
<input matInput type="text" name="label" [formControl]="formGroup.get('label')" required>
|
||||||
|
<!-- <mat-error *ngIf="formGroup.get('label').hasError('backendError')">
|
||||||
|
{{formGroup.get('label').getError('backendError').message}}</mat-error>
|
||||||
|
<mat-error *ngIf="formGroup.get('label').hasError('required')">
|
||||||
|
{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error> -->
|
||||||
|
</mat-form-field>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="heading2 col-12">{{'DMP-EDITOR.FIELDS.DESCRIPTION' | translate}} *</div>
|
||||||
|
<rich-text-editor-component [parentFormGroup]="formGroup" [controlName]="'description'" placeholder="{{'DMP-EDITOR.PLACEHOLDER.DESCRIPTION' | translate}}" [required]="true">
|
||||||
|
</rich-text-editor-component>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dmp-blueprint-form" style="margin-top: 3%;">
|
||||||
|
<div class="heading2">{{'DMP-EDITOR.FIELDS.BLUEPRINT' | translate}} *</div>
|
||||||
|
<mat-form-field class="w-100">
|
||||||
|
<mat-label>{{'DMP-EDITOR.FIELDS.BLUEPRINT' | translate}}</mat-label>
|
||||||
|
<app-single-auto-complete [required]="false" [formControl]="formGroup.get('profile')" placeholder="{{'DMP-EDITOR.PLACEHOLDER.BLUEPRINT' | translate}}" [configuration]="dmpBlueprintService.singleAutocompleteConfiguration">
|
||||||
|
</app-single-auto-complete>
|
||||||
|
</mat-form-field>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-5">
|
||||||
|
<button mat-button class="action-btn" [disabled]="selectedDmpBlueprintDefinition == null" (click)="selectBlueprint()">{{'DMP-EDITOR.STEPPER.NEXT' | translate}}</button>
|
||||||
|
</div>
|
||||||
|
<div class="col-7" *ngIf="formGroup.get('profile').value == null || (formGroup.get('profile').value && formGroup.get('profile').value.id !== defaultBlueprintId)">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-6">
|
||||||
|
<p>{{'DMP-EDITOR.ACTIONS.OR-CONTINUE-WITH' | translate}}</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<button mat-button class="action-btn" style="float: right;" (click)="selectDefaultBlueprint()">{{'DMP-EDITOR.ACTIONS.DEFAULT-BLUEPRINT' | translate}}</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-auto dmp-stepper" *ngIf="this.step != 0">
|
<div class="col-auto dmp-stepper" *ngIf="this.step != 0">
|
||||||
<div class="stepper-title">DMP Blueprint</div>
|
<div class="stepper-title">DMP Blueprint</div>
|
||||||
|
@ -73,58 +123,15 @@
|
||||||
</div>
|
</div>
|
||||||
<!-- <div *ngIf="this.step >= 3 && hasProfile() && !isFinalized" mat-raised-button type="button" class="col-auto stepper-btn add-dataset-btn ml-auto" (click)="addDataset()" target="_blank"> -->
|
<!-- <div *ngIf="this.step >= 3 && hasProfile() && !isFinalized" mat-raised-button type="button" class="col-auto stepper-btn add-dataset-btn ml-auto" (click)="addDataset()" target="_blank"> -->
|
||||||
<!-- <button [disabled]="saving" *ngIf="this.step >= this.maxStep && !isFinalized" mat-raised-button type="button" class="col-auto stepper-btn add-dataset-btn ml-auto" (click)="addDataset(i)" target="_blank"> -->
|
<!-- <button [disabled]="saving" *ngIf="this.step >= this.maxStep && !isFinalized" mat-raised-button type="button" class="col-auto stepper-btn add-dataset-btn ml-auto" (click)="addDataset(i)" target="_blank"> -->
|
||||||
<!-- <mat-icon>add</mat-icon> -->
|
<!-- <mat-icon>add</mat-icon> -->
|
||||||
<!-- {{'DMP-EDITOR.ACTIONS.SAVE' | translate}} & {{'DMP-LISTING.ACTIONS.ADD-DESCRIPTION-FOR-SECTION' | translate}}
|
<!-- {{'DMP-EDITOR.ACTIONS.SAVE' | translate}} & {{'DMP-LISTING.ACTIONS.ADD-DESCRIPTION-FOR-SECTION' | translate}}
|
||||||
</button> -->
|
</button> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="col-auto pr-0" *ngIf="this.step !== 0">
|
<div class="col-auto pr-0" *ngIf="this.step !== 0">
|
||||||
<app-form-progress-indication class="col-12" *ngIf="formGroup && !formGroup.disabled && !lockStatus" [formGroup]="formGroup" [isDmpEditor]="true"></app-form-progress-indication>
|
<app-form-progress-indication class="col-12" *ngIf="formGroup && !formGroup.disabled && !lockStatus" [formGroup]="formGroup" [isDmpEditor]="true"></app-form-progress-indication>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-auto formForStep0" id="editor-form" *ngIf="this.step === 0 && this.isNew">
|
|
||||||
<div class="col-12 blueprint-section" [hidden]="this.step !== 0">
|
|
||||||
<div class="input-form">
|
|
||||||
<div class="heading2">0.1 Title of DMP *</div>
|
|
||||||
<mat-form-field>
|
|
||||||
<mat-label>Title</mat-label>
|
|
||||||
<input matInput type="text" name="label" [formControl]="formGroup.get('label')" required>
|
|
||||||
<!-- <mat-error *ngIf="formGroup.get('label').hasError('backendError')">
|
|
||||||
{{formGroup.get('label').getError('backendError').message}}</mat-error>
|
|
||||||
<mat-error *ngIf="formGroup.get('label').hasError('required')">
|
|
||||||
{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error> -->
|
|
||||||
</mat-form-field>
|
|
||||||
</div>
|
|
||||||
<div class="input-form">
|
|
||||||
<div class="heading2">0.2 Description of DMP *</div>
|
|
||||||
<rich-text-editor-component [parentFormGroup]="formGroup" [controlName]="'description'"
|
|
||||||
[placeholder]="'Fill with description'" [required]="true">
|
|
||||||
</rich-text-editor-component>
|
|
||||||
</div>
|
|
||||||
<div class="dmp-blueprint-form" style="margin-top: 3%;">
|
|
||||||
<div class="heading2">0.3 Blueprint of DMP *</div>
|
|
||||||
<mat-form-field>
|
|
||||||
<mat-label>Select blueprint</mat-label>
|
|
||||||
<app-single-auto-complete [required]="false" [formControl]="formGroup.get('profile')" placeholder="Select blueprint" [configuration]="dmpBlueprintService.singleAutocompleteConfiguration">
|
|
||||||
</app-single-auto-complete>
|
|
||||||
</mat-form-field>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-5">
|
|
||||||
<button mat-button class="action-btn" [disabled]="selectedDmpBlueprintDefinition == null" (click)="selectBlueprint()">Next</button>
|
|
||||||
</div>
|
|
||||||
<div class="col-7" *ngIf="formGroup.get('profile').value == null || (formGroup.get('profile').value && formGroup.get('profile').value.id !== defaultBlueprintId)">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-6">
|
|
||||||
<p>or continue with</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-6">
|
|
||||||
<button mat-button class="action-btn" style="float: right;" (click)="selectDefaultBlueprint()">Default Blueprint</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-auto form" id="editor-form" *ngIf="this.step !== 0">
|
<div class="col-auto form" id="editor-form" *ngIf="this.step !== 0">
|
||||||
<div *ngIf="selectedDmpBlueprintDefinition">
|
<div *ngIf="selectedDmpBlueprintDefinition">
|
||||||
<div *ngFor="let section of selectedDmpBlueprintDefinition.sections; let i=index">
|
<div *ngFor="let section of selectedDmpBlueprintDefinition.sections; let i=index">
|
||||||
|
@ -139,8 +146,8 @@
|
||||||
<div class="heading">{{i + 1}}.{{j + 1}} {{field.label}}<span *ngIf="field.required">*</span></div>
|
<div class="heading">{{i + 1}}.{{j + 1}} {{field.label}}<span *ngIf="field.required">*</span></div>
|
||||||
<div *ngIf="field.description != null && field.description.length > 0" class="hint">{{field.description}}</div>
|
<div *ngIf="field.description != null && field.description.length > 0" class="hint">{{field.description}}</div>
|
||||||
<div class="input-form">
|
<div class="input-form">
|
||||||
<div *ngIf="field.category === 'SYSTEM'">
|
<div *ngIf="field.category === dmpBlueprintSectionFieldCategory.SYSTEM">
|
||||||
<div *ngIf="field.type == 0">
|
<div *ngIf="field.systemFieldType == dmpBlueprintSystemFieldType.TEXT">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<input matInput placeholder="{{'DMP-EDITOR.FIELDS.NAME' | translate}}" type="text" name="label" [formControl]="formGroup.get('label')" required>
|
<input matInput placeholder="{{'DMP-EDITOR.FIELDS.NAME' | translate}}" type="text" name="label" [formControl]="formGroup.get('label')" required>
|
||||||
<mat-error *ngIf="formGroup.get('label').hasError('backendError')">
|
<mat-error *ngIf="formGroup.get('label').hasError('backendError')">
|
||||||
|
@ -149,12 +156,11 @@
|
||||||
{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="field.type == 1">
|
<div *ngIf="field.systemFieldType == dmpBlueprintSystemFieldType.HTML_TEXT">
|
||||||
<rich-text-editor-component [parentFormGroup]="formGroup" [controlName]="'description'"
|
<rich-text-editor-component [parentFormGroup]="formGroup" [controlName]="'description'" [placeholder]="'DMP-EDITOR.PLACEHOLDER.DESCRIPTION'" [required]="field.required">
|
||||||
[placeholder]="'DMP-EDITOR.PLACEHOLDER.DESCRIPTION'" [required]="field.required">
|
|
||||||
</rich-text-editor-component>
|
</rich-text-editor-component>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="field.type == 2">
|
<div *ngIf="field.systemFieldType == dmpBlueprintSystemFieldType.RESEARCHERS">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>{{'DMP-EDITOR.PLACEHOLDER.RESEARCHERS' | translate}}</mat-label>
|
<mat-label>{{'DMP-EDITOR.PLACEHOLDER.RESEARCHERS' | translate}}</mat-label>
|
||||||
<app-multiple-auto-complete [formControl]="formGroup.get('researchers')" [configuration]="researchersAutoCompleteConfiguration">
|
<app-multiple-auto-complete [formControl]="formGroup.get('researchers')" [configuration]="researchersAutoCompleteConfiguration">
|
||||||
|
@ -172,7 +178,7 @@
|
||||||
<span *ngIf="!formGroup.get('researchers').disabled" class="insert-manually" (click)="addResearcher($event)">{{'DMP-EDITOR.ACTIONS.INSERT-MANUALLY' | translate}}</span>
|
<span *ngIf="!formGroup.get('researchers').disabled" class="insert-manually" (click)="addResearcher($event)">{{'DMP-EDITOR.ACTIONS.INSERT-MANUALLY' | translate}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="field.type == 3">
|
<div *ngIf="field.systemFieldType == dmpBlueprintSystemFieldType.ORGANIZATIONS">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>{{'DMP-EDITOR.PLACEHOLDER.ORGANIZATION' | translate}}</mat-label>
|
<mat-label>{{'DMP-EDITOR.PLACEHOLDER.ORGANIZATION' | translate}}</mat-label>
|
||||||
<app-multiple-auto-complete [formControl]="formGroup.get('organisations')" [configuration]="organisationsAutoCompleteConfiguration">
|
<app-multiple-auto-complete [formControl]="formGroup.get('organisations')" [configuration]="organisationsAutoCompleteConfiguration">
|
||||||
|
@ -189,7 +195,7 @@
|
||||||
<span *ngIf="!cantAddOrganizations()" class="insert-manually" (click)="addOrganization($event)">{{'DMP-EDITOR.ACTIONS.INSERT-MANUALLY' | translate}}</span>
|
<span *ngIf="!cantAddOrganizations()" class="insert-manually" (click)="addOrganization($event)">{{'DMP-EDITOR.ACTIONS.INSERT-MANUALLY' | translate}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="field.type == 4">
|
<div *ngIf="field.systemFieldType == dmpBlueprintSystemFieldType.LANGUAGE">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-select [formControl]="formGroup.get('extraProperties').get('language')" placeholder="{{'DMP-EDITOR.FIELDS.LANGUAGE' | translate}}" required>
|
<mat-select [formControl]="formGroup.get('extraProperties').get('language')" placeholder="{{'DMP-EDITOR.FIELDS.LANGUAGE' | translate}}" required>
|
||||||
<mat-option *ngFor="let lang of getLanguageInfos()" [value]="lang.code">
|
<mat-option *ngFor="let lang of getLanguageInfos()" [value]="lang.code">
|
||||||
|
@ -202,7 +208,7 @@
|
||||||
{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="field.type == 5">
|
<div *ngIf="field.systemFieldType == dmpBlueprintSystemFieldType.CONTACT">
|
||||||
<div class="contact-form">
|
<div class="contact-form">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-select [formControl]="formGroup.get('extraProperties').get('contact')" placeholder="{{'DMP-EDITOR.FIELDS.CONTACT' | translate}}">
|
<mat-select [formControl]="formGroup.get('extraProperties').get('contact')" placeholder="{{'DMP-EDITOR.FIELDS.CONTACT' | translate}}">
|
||||||
|
@ -217,16 +223,16 @@
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="field.type == 6">
|
<div *ngIf="field.systemFieldType == dmpBlueprintSystemFieldType.FUNDER">
|
||||||
<funding-info [formGroup]="formGroup" [grantformGroup]="formGroup.get('grant')" [projectFormGroup]="formGroup.get('project')" [funderFormGroup]="formGroup.get('funder')" [isFinalized]="isFinalized" [isNew]="isNew" [isUserOwner]="isUserOwner" [isRequired]="field.required" [type]="1" (onFormChanged)="formChanged()"></funding-info>
|
<funding-info [formGroup]="formGroup" [grantformGroup]="formGroup.get('grant')" [projectFormGroup]="formGroup.get('project')" [funderFormGroup]="formGroup.get('funder')" [isFinalized]="isFinalized" [isNew]="isNew" [isUserOwner]="isUserOwner" [isRequired]="field.required" [type]="1" (onFormChanged)="formChanged()"></funding-info>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="field.type == 7">
|
<div *ngIf="field.systemFieldType == dmpBlueprintSystemFieldType.GRANT">
|
||||||
<funding-info [formGroup]="formGroup" [grantformGroup]="formGroup.get('grant')" [projectFormGroup]="formGroup.get('project')" [funderFormGroup]="formGroup.get('funder')" [isFinalized]="isFinalized" [isNew]="isNew" [isUserOwner]="isUserOwner" [isRequired]="field.required" [type]="2" (onFormChanged)="formChanged()"></funding-info>
|
<funding-info [formGroup]="formGroup" [grantformGroup]="formGroup.get('grant')" [projectFormGroup]="formGroup.get('project')" [funderFormGroup]="formGroup.get('funder')" [isFinalized]="isFinalized" [isNew]="isNew" [isUserOwner]="isUserOwner" [isRequired]="field.required" [type]="2" (onFormChanged)="formChanged()"></funding-info>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="field.type == 8">
|
<div *ngIf="field.systemFieldType == dmpBlueprintSystemFieldType.PROJECT">
|
||||||
<funding-info [formGroup]="formGroup" [grantformGroup]="formGroup.get('grant')" [projectFormGroup]="formGroup.get('project')" [funderFormGroup]="formGroup.get('funder')" [isFinalized]="isFinalized" [isNew]="isNew" [isUserOwner]="isUserOwner" [isRequired]="field.required" [type]="3" (onFormChanged)="formChanged()"></funding-info>
|
<funding-info [formGroup]="formGroup" [grantformGroup]="formGroup.get('grant')" [projectFormGroup]="formGroup.get('project')" [funderFormGroup]="formGroup.get('funder')" [isFinalized]="isFinalized" [isNew]="isNew" [isUserOwner]="isUserOwner" [isRequired]="field.required" [type]="3" (onFormChanged)="formChanged()"></funding-info>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="field.type == 9">
|
<div *ngIf="field.systemFieldType == dmpBlueprintSystemFieldType.LICENSE">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<app-single-auto-complete [formControl]="formGroup.get('extraProperties').get('license')" placeholder="{{'DMP-EDITOR.FIELDS.LICENSE' | translate}}" [configuration]="licenseAutoCompleteConfiguration">
|
<app-single-auto-complete [formControl]="formGroup.get('extraProperties').get('license')" placeholder="{{'DMP-EDITOR.FIELDS.LICENSE' | translate}}" [configuration]="licenseAutoCompleteConfiguration">
|
||||||
</app-single-auto-complete>
|
</app-single-auto-complete>
|
||||||
|
@ -236,7 +242,7 @@
|
||||||
{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="field.type == 10">
|
<div *ngIf="field.systemFieldType == dmpBlueprintSystemFieldType.ACCESS_RIGHTS">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-select [formControl]="formGroup.get('extraProperties').get('visible')" placeholder="{{'DMP-EDITOR.FIELDS.VISIBILITY' | translate}}">
|
<mat-select [formControl]="formGroup.get('extraProperties').get('visible')" placeholder="{{'DMP-EDITOR.FIELDS.VISIBILITY' | translate}}">
|
||||||
<mat-option *ngFor="let vis of visibles" [value]="vis.value">
|
<mat-option *ngFor="let vis of visibles" [value]="vis.value">
|
||||||
|
@ -249,7 +255,7 @@
|
||||||
{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div *ngIf="field.type == 'DESCRIPTION_TEMPLATES'">
|
<!-- <div *ngIf="field.systemFieldType == 'DESCRIPTION_TEMPLATES'">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>{{'DMP-EDITOR.FIELDS.SELECT-TEMPLATE' | translate}}</mat-label>
|
<mat-label>{{'DMP-EDITOR.FIELDS.SELECT-TEMPLATE' | translate}}</mat-label>
|
||||||
<app-multiple-auto-complete placeholder="{{'DMP-EDITOR.FIELDS.SELECT-TEMPLATE' | translate}}" [hidePlaceholder]="true" required='true' [formControl]="formGroup.get('profiles')" [configuration]="profilesAutoCompleteConfiguration" (optionRemoved)="onRemoveTemplate($event)" (optionActionClicked)="onPreviewTemplate($event)" (optionSelected)="onOptionSelected()">
|
<app-multiple-auto-complete placeholder="{{'DMP-EDITOR.FIELDS.SELECT-TEMPLATE' | translate}}" [hidePlaceholder]="true" required='true' [formControl]="formGroup.get('profiles')" [configuration]="profilesAutoCompleteConfiguration" (optionRemoved)="onRemoveTemplate($event)" (optionActionClicked)="onPreviewTemplate($event)" (optionSelected)="onOptionSelected()">
|
||||||
|
@ -267,31 +273,30 @@
|
||||||
</div>
|
</div>
|
||||||
</div> -->
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="field.category === 'EXTRA'">
|
<div *ngIf="field.category === dmpBlueprintSectionFieldCategory.EXTRA">
|
||||||
<div *ngIf="field.type === extraFieldTypesEnum.TEXT">
|
<div *ngIf="field.dataType === dmpBlueprintExtraFieldDataType.TEXT">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<input matInput placeholder="{{field.placeholder}}" type="text" name="value" [formControl]="formGroup.get('extraFields').get(getExtraFieldIndex(field.id)).get('value')" [required]="field.required">
|
<input matInput placeholder="{{field.placeholder}}" type="text" name="value" [formControl]="formGroup.get('extraFields').get(getExtraFieldIndex(field.id)).get('value')" [required]="field.required">
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="field.type === extraFieldTypesEnum.RICH_TEXT">
|
<div *ngIf="field.dataType === dmpBlueprintExtraFieldDataType.RICH_TEXT">
|
||||||
<ng-container formArrayName="extraFields">
|
<ng-container formArrayName="extraFields">
|
||||||
<ng-container *ngFor="let control of extraFieldsArray().controls; let extraFieldIndex = index;">
|
<ng-container *ngFor="let control of extraFieldsArray().controls; let extraFieldIndex = index;">
|
||||||
<ng-container [formGroupName]="extraFieldIndex">
|
<ng-container [formGroupName]="extraFieldIndex">
|
||||||
<ng-container *ngIf="control.get('id').value === field.id">
|
<ng-container *ngIf="control.get('id').value === field.id">
|
||||||
<rich-text-editor-component [parentFormGroup]="control" [controlName]="'value'"
|
<rich-text-editor-component [parentFormGroup]="control" [controlName]="'value'" [placeholder]="field.placeholder" [required]="field.required">
|
||||||
[placeholder]="field.placeholder" [required]="field.required">
|
|
||||||
</rich-text-editor-component>
|
</rich-text-editor-component>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="field.type === extraFieldTypesEnum.DATE">
|
<div *ngIf="field.dataType === dmpBlueprintExtraFieldDataType.DATE">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<input matInput placeholder="{{field.placeholder}}" type="date" name="value" [formControl]="formGroup.get('extraFields').get(getExtraFieldIndex(field.id)).get('value')" [required]="field.required">
|
<input matInput placeholder="{{field.placeholder}}" type="date" name="value" [formControl]="formGroup.get('extraFields').get(getExtraFieldIndex(field.id)).get('value')" [required]="field.required">
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="field.type === extraFieldTypesEnum.NUMBER">
|
<div *ngIf="field.dataType === dmpBlueprintExtraFieldDataType.NUMBER">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<input matInput placeholder="{{field.placeholder}}" type="number" name="value" [formControl]="formGroup.get('extraFields').get(getExtraFieldIndex(field.id)).get('value')" [required]="field.required">
|
<input matInput placeholder="{{field.placeholder}}" type="number" name="value" [formControl]="formGroup.get('extraFields').get(getExtraFieldIndex(field.id)).get('value')" [required]="field.required">
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
@ -342,6 +347,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -56,6 +56,7 @@ import { ExtraPropertiesFormModel } from '../editor/general-tab/extra-properties
|
||||||
import { FunderFormModel } from '../editor/grant-tab/funder-form-model';
|
import { FunderFormModel } from '../editor/grant-tab/funder-form-model';
|
||||||
import { GrantTabModel } from '../editor/grant-tab/grant-tab-model';
|
import { GrantTabModel } from '../editor/grant-tab/grant-tab-model';
|
||||||
import { ProjectFormModel } from '../editor/grant-tab/project-form-model';
|
import { ProjectFormModel } from '../editor/grant-tab/project-form-model';
|
||||||
|
import { DmpBlueprintSectionFieldCategory } from '@app/core/common/enum/dmp-blueprint-section-field-category';
|
||||||
|
|
||||||
interface Visible {
|
interface Visible {
|
||||||
value: boolean;
|
value: boolean;
|
||||||
|
@ -86,6 +87,7 @@ export class DmpEditorBlueprintComponent extends CheckDeactivateBaseComponent im
|
||||||
isCreateNew = false;
|
isCreateNew = false;
|
||||||
isCreateNewProject = false;
|
isCreateNewProject = false;
|
||||||
isCreateNewFunder = false;
|
isCreateNewFunder = false;
|
||||||
|
|
||||||
|
|
||||||
dmp: DmpEditorModel;
|
dmp: DmpEditorModel;
|
||||||
dmpSectionIndex: number = 0;
|
dmpSectionIndex: number = 0;
|
||||||
|
@ -110,8 +112,6 @@ export class DmpEditorBlueprintComponent extends CheckDeactivateBaseComponent im
|
||||||
|
|
||||||
sectionTemplates: Array<Array<DatasetProfileModel>> = new Array<Array<DatasetProfileModel>>();
|
sectionTemplates: Array<Array<DatasetProfileModel>> = new Array<Array<DatasetProfileModel>>();
|
||||||
|
|
||||||
extraFieldTypesEnum = DmpBlueprintExtraFieldDataType;
|
|
||||||
|
|
||||||
private associates: UserModel[] = [];
|
private associates: UserModel[] = [];
|
||||||
|
|
||||||
visibles: Visible[] = [
|
visibles: Visible[] = [
|
||||||
|
@ -128,6 +128,16 @@ export class DmpEditorBlueprintComponent extends CheckDeactivateBaseComponent im
|
||||||
|
|
||||||
profilesAutoCompleteConfiguration: MultipleAutoCompleteConfiguration;
|
profilesAutoCompleteConfiguration: MultipleAutoCompleteConfiguration;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
dmpBlueprintSectionFieldCategory = DmpBlueprintSectionFieldCategory;
|
||||||
|
dmpBlueprintSystemFieldType = DmpBlueprintSystemFieldType;
|
||||||
|
//public dmpBlueprintSystemFieldTypeEnum = this.enumUtils.getEnumValues(DmpBlueprintSystemFieldType);
|
||||||
|
dmpBlueprintExtraFieldDataType = DmpBlueprintExtraFieldDataType;
|
||||||
|
//public dmpBlueprintExtraFieldDataTypeEnum = this.enumUtils.getEnumValues(DmpBlueprintExtraFieldDataType);
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private dmpBlueprintService: DmpBlueprintService,
|
private dmpBlueprintService: DmpBlueprintService,
|
||||||
private datasetService: DatasetService,
|
private datasetService: DatasetService,
|
||||||
|
@ -858,11 +868,11 @@ export class DmpEditorBlueprintComponent extends CheckDeactivateBaseComponent im
|
||||||
nameof<DmpBlueprint>(x => x.isActive)
|
nameof<DmpBlueprint>(x => x.isActive)
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
.pipe(map(data => data as DmpBlueprint), takeUntil(this._destroyed))
|
.pipe(map(data => data as DmpBlueprint), takeUntil(this._destroyed))
|
||||||
.subscribe(
|
.subscribe(
|
||||||
data => successFunction(data),
|
data => successFunction(data),
|
||||||
error => this.onCallbackError(error)
|
error => this.onCallbackError(error)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
registerFormEventsForDmpBlueprint(): void {
|
registerFormEventsForDmpBlueprint(): void {
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { RouterModule, Routes } from '@angular/router';
|
import { RouterModule, Routes } from '@angular/router';
|
||||||
|
import { AuthGuard } from '@app/core/auth-guard.service';
|
||||||
|
import { CanDeactivateGuard } from '@app/library/deactivate/can-deactivate.guard';
|
||||||
|
import { DmpCloneComponent } from './clone/dmp-clone.component';
|
||||||
|
import { DmpEditorBlueprintComponent } from './dmp-editor-blueprint/dmp-editor-blueprint.component';
|
||||||
import { DmpEditorComponent } from './editor/dmp-editor.component';
|
import { DmpEditorComponent } from './editor/dmp-editor.component';
|
||||||
import { InvitationAcceptedComponent } from './invitation/accepted/dmp-invitation-accepted.component';
|
import { InvitationAcceptedComponent } from './invitation/accepted/dmp-invitation-accepted.component';
|
||||||
import { DmpListingComponent } from './listing/dmp-listing.component';
|
import { DmpListingComponent } from './listing/dmp-listing.component';
|
||||||
import { DmpWizardComponent } from './wizard/dmp-wizard.component';
|
|
||||||
import { DmpOverviewComponent } from './overview/dmp-overview.component';
|
import { DmpOverviewComponent } from './overview/dmp-overview.component';
|
||||||
import { DmpCloneComponent } from './clone/dmp-clone.component';
|
|
||||||
import { AuthGuard } from '@app/core/auth-guard.service';
|
|
||||||
import { CanDeactivateGuard } from '@app/library/deactivate/can-deactivate.guard';
|
|
||||||
import { DmpEditorBlueprintComponent } from './dmp-editor-blueprint/dmp-editor-blueprint.component';
|
|
||||||
|
|
||||||
const routes: Routes = [
|
const routes: Routes = [
|
||||||
{
|
{
|
||||||
|
@ -40,7 +39,7 @@ const routes: Routes = [
|
||||||
breadcrumb: true,
|
breadcrumb: true,
|
||||||
title: 'GENERAL.TITLES.DMP-EDIT'
|
title: 'GENERAL.TITLES.DMP-EDIT'
|
||||||
},
|
},
|
||||||
canDeactivate:[CanDeactivateGuard]
|
canDeactivate: [CanDeactivateGuard]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'publicEdit/:publicId',
|
path: 'publicEdit/:publicId',
|
||||||
|
@ -49,7 +48,7 @@ const routes: Routes = [
|
||||||
breadcrumb: true,
|
breadcrumb: true,
|
||||||
title: 'GENERAL.TITLES.DMP-PUBLIC-EDIT'
|
title: 'GENERAL.TITLES.DMP-PUBLIC-EDIT'
|
||||||
},
|
},
|
||||||
canDeactivate:[CanDeactivateGuard]
|
canDeactivate: [CanDeactivateGuard]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'overview/:id',
|
path: 'overview/:id',
|
||||||
|
@ -83,7 +82,7 @@ const routes: Routes = [
|
||||||
breadcrumbs: 'new',
|
breadcrumbs: 'new',
|
||||||
title: 'GENERAL.TITLES.DMP-NEW'
|
title: 'GENERAL.TITLES.DMP-NEW'
|
||||||
},
|
},
|
||||||
canDeactivate:[CanDeactivateGuard]
|
canDeactivate: [CanDeactivateGuard]
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// path: 'new/dataset',
|
// path: 'new/dataset',
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
<div class="col-12 card">
|
<div class="col-12 card">
|
||||||
<!-- Title Field -->
|
<!-- Title Field -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
dgdfgdfgdf
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="heading">1.1 {{'DMP-EDITOR.FIELDS.NAME' | translate}}*</div>
|
<div class="heading">1.1 {{'DMP-EDITOR.FIELDS.NAME' | translate}}*</div>
|
||||||
<!-- <div class="hint">{{'DMP-EDITOR.MAIN-INFO.HINT' | translate}}</div> -->
|
<!-- <div class="hint">{{'DMP-EDITOR.MAIN-INFO.HINT' | translate}}</div> -->
|
||||||
|
|
|
@ -50,6 +50,7 @@
|
||||||
"value": "pl"
|
"value": "pl"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"defaultBlueprintId": "86635178-36a6-484f-9057-a934e4eeecd5",
|
||||||
"keycloak": {
|
"keycloak": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"address": null,
|
"address": null,
|
||||||
|
|
|
@ -1156,6 +1156,7 @@
|
||||||
"RELATED-GRANT": "Related Grant",
|
"RELATED-GRANT": "Related Grant",
|
||||||
"DESCRIPTION": "Description",
|
"DESCRIPTION": "Description",
|
||||||
"DESCRIPTION-HINT": "Briefly describe the context and purpose of the DMP",
|
"DESCRIPTION-HINT": "Briefly describe the context and purpose of the DMP",
|
||||||
|
"BLUEPRINT": "Blueprint",
|
||||||
"ORGANISATIONS": "Organizations",
|
"ORGANISATIONS": "Organizations",
|
||||||
"ORGANISATIONS-HINT": "Add here the names of the organizations contributing to the creation and revision of the DMPs",
|
"ORGANISATIONS-HINT": "Add here the names of the organizations contributing to the creation and revision of the DMPs",
|
||||||
"RESEARCHERS": "Researchers",
|
"RESEARCHERS": "Researchers",
|
||||||
|
@ -1189,6 +1190,8 @@
|
||||||
},
|
},
|
||||||
"ACTIONS": {
|
"ACTIONS": {
|
||||||
"GO-TO-GRANT": "Go To DMP Grant",
|
"GO-TO-GRANT": "Go To DMP Grant",
|
||||||
|
"DEFAULT-BLUEPRINT": "Default Blueprint",
|
||||||
|
"OR-CONTINUE-WITH": "or continue with",
|
||||||
"GO-TO-DATASETS": "Go To Datasets",
|
"GO-TO-DATASETS": "Go To Datasets",
|
||||||
"SAVE-CHANGES": "Save Changes",
|
"SAVE-CHANGES": "Save Changes",
|
||||||
"SAVE": "Save",
|
"SAVE": "Save",
|
||||||
|
@ -1206,6 +1209,7 @@
|
||||||
"PLACEHOLDER": {
|
"PLACEHOLDER": {
|
||||||
"DESCRIPTION": "Fill with description",
|
"DESCRIPTION": "Fill with description",
|
||||||
"ORGANIZATION": "Select organization",
|
"ORGANIZATION": "Select organization",
|
||||||
|
"BLUEPRINT": "Select Blueprint",
|
||||||
"AUTHORS": "Select authors",
|
"AUTHORS": "Select authors",
|
||||||
"RESEARCHERS": "Select researchers"
|
"RESEARCHERS": "Select researchers"
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue