Adds new field on Dataset Template that link back to Open DMP entities (Dataset Descriptions) (Issue #129).
This commit is contained in:
parent
81fb715a9d
commit
ff8ab5ad3e
|
@ -70,8 +70,8 @@ public class ModelBuilder {
|
|||
if (dataElement.getAttribute("type").equals("researchers")) {
|
||||
return (FieldData<U>) new ResearchersAutoCompleteData().fromData(data);
|
||||
}
|
||||
// } else if (dataElement.getAttribute("type").equals("wordlist"))
|
||||
// return (FieldData<U>) new WordListData().fromData(data);
|
||||
else if (dataElement.getAttribute("type").equals("datasets"))
|
||||
return (FieldData<U>) new DatasetsAutoCompleteData().fromData(data);
|
||||
}
|
||||
}
|
||||
if (type.equals("booleanDecision")) return (FieldData<U>) new BooleanDecisionData().fromData(data);
|
||||
|
@ -96,6 +96,9 @@ public class ModelBuilder {
|
|||
if (internalDmpEntitiesType.equals("researchers")) {
|
||||
return (FieldData<U>) new ResearchersAutoCompleteData().fromData(data);
|
||||
}
|
||||
else if (internalDmpEntitiesType.equals("datasets")) {
|
||||
return (FieldData<U>) new DatasetsAutoCompleteData().fromData(data);
|
||||
}
|
||||
}
|
||||
if (type.equals("booleanDecision")) return (FieldData<U>) new BooleanDecisionData().fromData(data);
|
||||
if (type.equals("radiobox")) return (FieldData<U>) new RadioBoxData().fromData(data);
|
||||
|
@ -105,6 +108,4 @@ public class ModelBuilder {
|
|||
if (type.equals("datePicker")) return (FieldData<U>) new DatePickerData().fromData(data);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
package eu.eudat.models.data.components.commons.datafield;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class DatasetsAutoCompleteData extends InternalDmpEntitiesData<DatasetsAutoCompleteData> {
|
||||
private Boolean multiAutoComplete;
|
||||
|
||||
public Boolean getMultiAutoComplete() {
|
||||
return multiAutoComplete;
|
||||
}
|
||||
public void setMultiAutoComplete(Boolean multiAutoComplete) {
|
||||
this.multiAutoComplete = multiAutoComplete;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Element toXml(Document doc) {
|
||||
Element root = super.toXml(doc);
|
||||
root.setAttribute("multiAutoComplete", this.multiAutoComplete.toString());
|
||||
|
||||
return root;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DatasetsAutoCompleteData fromXml(Element item) {
|
||||
super.fromXml(item);
|
||||
this.multiAutoComplete = Boolean.parseBoolean(item.getAttribute("multiAutoComplete"));
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DatasetsAutoCompleteData fromData(Object data) {
|
||||
super.fromData(data);
|
||||
if (data != null) {
|
||||
this.multiAutoComplete = (Boolean) ((Map<Boolean, Object>) data).get("multiAutoComplete");
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object toData() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> toMap(Element item) {
|
||||
HashMap dataMap = new HashMap();
|
||||
dataMap.put("label", item != null ? item.getAttribute("label") : "");
|
||||
dataMap.put("type", item != null ? item.getAttribute("type") : "researchers");
|
||||
|
||||
return dataMap;
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
export enum DatasetProfileInternalDmpEntitiesType {
|
||||
Researchers = "researchers",
|
||||
Dmps = "dmps",
|
||||
Dataset = "dataset"
|
||||
Datasets = "datasets"
|
||||
}
|
||||
|
|
|
@ -51,3 +51,8 @@ export interface ResearchersAutoCompleteFieldData extends FieldData {
|
|||
type: DatasetProfileInternalDmpEntitiesType;
|
||||
multiAutoComplete: boolean;
|
||||
}
|
||||
|
||||
export interface DatasetsAutoCompleteFieldData extends FieldData {
|
||||
type: DatasetProfileInternalDmpEntitiesType;
|
||||
multiAutoComplete: boolean;
|
||||
}
|
||||
|
|
|
@ -88,6 +88,7 @@ export class EnumUtils {
|
|||
toDatasetProfileInternalDmpEntitiesTypeString(status: DatasetProfileInternalDmpEntitiesType): string {
|
||||
switch (status) {
|
||||
case DatasetProfileInternalDmpEntitiesType.Researchers: return this.language.instant('TYPES.DATASET-PROFILE-INTERNAL-DMP-ENTITIES-TYPE.RESEARCHERS');
|
||||
case DatasetProfileInternalDmpEntitiesType.Datasets: return this.language.instant('TYPES.DATASET-PROFILE-INTERNAL-DMP-ENTITIES-TYPE.DATASETS');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
import { FieldDataEditorModel } from "./field-data-editor-model";
|
||||
import { DatasetProfileInternalDmpEntitiesType } from "../../../../../core/common/enum/dataset-profile-internal-dmp-entities-type";
|
||||
import { FieldDataOptionEditorModel } from "./field-data-option-editor-model";
|
||||
import { DatasetsAutoCompleteFieldData } from "../../../../../core/model/dataset-profile-definition/field-data/field-data";
|
||||
import { FormGroup } from "@angular/forms";
|
||||
|
||||
export class DatasetsAutoCompleteFieldDataEditorModel extends FieldDataEditorModel<DatasetsAutoCompleteFieldDataEditorModel> {
|
||||
public type: DatasetProfileInternalDmpEntitiesType = DatasetProfileInternalDmpEntitiesType.Datasets;
|
||||
public multiAutoComplete: boolean = false;
|
||||
public autoCompleteOptions: FieldDataOptionEditorModel = new FieldDataOptionEditorModel();
|
||||
|
||||
buildForm(disabled: boolean = false, skipDisable: Array<String> = []): FormGroup {
|
||||
const formGroup = this.formBuilder.group({
|
||||
label: [{ value: this.label, disabled: (disabled && !skipDisable.includes('DatasetsAutoCompleteFieldDataEditorModel.label')) }],
|
||||
type: [{ value: this.type, disabled: (disabled && !skipDisable.includes('DatasetsAutoCompleteFieldDataEditorModel.type')) }],
|
||||
multiAutoComplete: [{ value: this.multiAutoComplete, disabled: (disabled && !skipDisable.includes('DatasetsAutoCompleteFieldDataEditorModel.multiAutoComplete')) }]
|
||||
})
|
||||
return formGroup;
|
||||
}
|
||||
|
||||
fromModel(item: DatasetsAutoCompleteFieldData): DatasetsAutoCompleteFieldDataEditorModel {
|
||||
this.label = item.label;
|
||||
this.type = item.type;
|
||||
this.multiAutoComplete = item.multiAutoComplete;
|
||||
return this;
|
||||
}
|
||||
}
|
|
@ -7,7 +7,7 @@ import { ResearchersAutoCompleteFieldData } from "../../../../../core/model/data
|
|||
export class ResearchersAutoCompleteFieldDataEditorModel extends FieldDataEditorModel<ResearchersAutoCompleteFieldDataEditorModel> {
|
||||
|
||||
public type: DatasetProfileInternalDmpEntitiesType = DatasetProfileInternalDmpEntitiesType.Researchers;
|
||||
public multiAutoComplete: boolean;
|
||||
public multiAutoComplete: boolean = false;
|
||||
public autoCompleteOptions: FieldDataOptionEditorModel = new FieldDataOptionEditorModel();
|
||||
|
||||
buildForm(disabled: boolean = false, skipDisable: Array<String> = []): FormGroup {
|
||||
|
|
|
@ -16,6 +16,7 @@ import { VisibilityEditorModel } from './visibility-editor-model';
|
|||
import { DatasetProfileEditorDatePickerFieldComponent } from '../editor/components/field-type/datepicker/dataset-profile-editor-date-picker-field.component';
|
||||
import { DatePickerDataEditorModel } from './field-data/date-picker-data-editor-models';
|
||||
import { ResearchersAutoCompleteFieldDataEditorModel } from './field-data/researchers-auto-complete-field-data-editor-model';
|
||||
import { DatasetsAutoCompleteFieldDataEditorModel } from './field-data/datasets-autocomplete-field-data-editor-mode';
|
||||
|
||||
export class FieldEditorModel extends BaseFormModel {
|
||||
|
||||
|
@ -44,6 +45,7 @@ export class FieldEditorModel extends BaseFormModel {
|
|||
if (item.data.type === 'wordlist') { this.data = new WordListFieldDataEditorModel().fromModel(item.data); }
|
||||
} else if (this.viewStyle.renderStyle === 'internalDmpEntities') {
|
||||
if (item.data.type === 'researchers') { this.data = new ResearchersAutoCompleteFieldDataEditorModel().fromModel(item.data); }
|
||||
if (item.data.type === 'datasets') { this.data = new DatasetsAutoCompleteFieldDataEditorModel().fromModel(item.data); }
|
||||
} else {
|
||||
if (this.viewStyle.renderStyle === 'radiobox') { this.data = new RadioBoxFieldDataEditorModel().fromModel(item.data); }
|
||||
if (this.viewStyle.renderStyle === 'checkBox') { this.data = new CheckBoxFieldDataEditorModel().fromModel(item.data); }
|
||||
|
|
|
@ -25,6 +25,7 @@ import { DatasetProfileEditorDatePickerFieldComponent } from './editor/component
|
|||
import { DialodConfirmationUploadDatasetProfiles } from './listing/criteria/dialog-confirmation-upload-profile/dialog-confirmation-upload-profiles.component';
|
||||
import { DatasetProfileEditorInternalDmpEntitiesFieldComponent } from './editor/components/field-type/internal-dmp-entities/dataset-profile-editor-internal-dmp-entities-field.component';
|
||||
import { DatasetProfileEditorResearchersAutoCompleteFieldComponent } from './editor/components/field-type/researchers-auto-complete/dataset-profile-editor-researchers-auto-complete-field.component';
|
||||
import { DatasetProfileEditorDatasetsAutoCompleteFieldComponent } from './editor/components/field-type/datasets-auto-complete/dataset-profile-editor-datasets-autocomplete-field.component';
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
|
@ -55,7 +56,8 @@ import { DatasetProfileEditorResearchersAutoCompleteFieldComponent } from './edi
|
|||
DatasetProfileEditorDefaultValueComponent,
|
||||
DialodConfirmationUploadDatasetProfiles,
|
||||
DatasetProfileEditorInternalDmpEntitiesFieldComponent,
|
||||
DatasetProfileEditorResearchersAutoCompleteFieldComponent
|
||||
DatasetProfileEditorResearchersAutoCompleteFieldComponent,
|
||||
DatasetProfileEditorDatasetsAutoCompleteFieldComponent
|
||||
],
|
||||
entryComponents: [
|
||||
DialodConfirmationUploadDatasetProfiles
|
||||
|
|
|
@ -41,6 +41,9 @@
|
|||
<!-- InternalDmpEntities -->
|
||||
<mat-form-field class="col-md-12" *ngIf="viewStyle === viewStyleEnum.InternalDmpEntities && internalDmpEntitiesType === internalDmpEntitiesTypeEnum.Researchers">
|
||||
<input matInput type="text" [placeholder]="placeHolder" [formControl]="form" [required]="required">
|
||||
</mat-form-field>
|
||||
<mat-form-field class="col-md-12" *ngIf="viewStyle === viewStyleEnum.InternalDmpEntities && internalDmpEntitiesType === internalDmpEntitiesTypeEnum.Datasets">
|
||||
<input matInput type="text" [placeholder]="placeHolder" [formControl]="form" [required]="required">
|
||||
</mat-form-field>
|
||||
|
||||
<!-- FreeText -->
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
<div class="row" *ngIf="form.get('data')">
|
||||
|
||||
<h5 style="font-weight: bold" class="col-auto">{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-AUTOCOMPLETE-TITLE' | translate}}</h5>
|
||||
<mat-checkbox class="col-auto" [formControl]="this.form.get('data').get('multiAutoComplete')">
|
||||
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-MULTIPLE-AUTOCOMPLETE' | translate}}
|
||||
</mat-checkbox>
|
||||
|
||||
<mat-form-field class="col-12">
|
||||
<input matInput type="string" placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-DATASETS-PLACEHOLDER' | translate}}"
|
||||
[formControl]="form.get('data').get('label')">
|
||||
</mat-form-field>
|
||||
</div>
|
|
@ -0,0 +1,19 @@
|
|||
import { OnInit, Input, Component } from "@angular/core";
|
||||
import { FormGroup } from "@angular/forms";
|
||||
import { DatasetProfileInternalDmpEntitiesType } from "../../../../../../../core/common/enum/dataset-profile-internal-dmp-entities-type";
|
||||
import { DatasetsAutoCompleteFieldDataEditorModel } from "../../../../admin/field-data/datasets-autocomplete-field-data-editor-mode";
|
||||
|
||||
@Component({
|
||||
selector: 'app-dataset-profile-editor-datasets-autocomplete-field-component',
|
||||
styleUrls: ['./dataset-profile-editor-datasets-autocomplete-field.component.scss'],
|
||||
templateUrl: './dataset-profile-editor-datasets-autocomplete-field.component.html'
|
||||
})
|
||||
export class DatasetProfileEditorDatasetsAutoCompleteFieldComponent implements OnInit {
|
||||
|
||||
@Input() form: FormGroup;
|
||||
private data: DatasetsAutoCompleteFieldDataEditorModel = new DatasetsAutoCompleteFieldDataEditorModel();
|
||||
|
||||
ngOnInit() {
|
||||
this.data.type = DatasetProfileInternalDmpEntitiesType.Datasets;
|
||||
}
|
||||
}
|
|
@ -2,7 +2,9 @@
|
|||
<mat-form-field class="col-12">
|
||||
<mat-select placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.FIELD-INTERNAL-DMP-ENTITIES-TYPE' | translate}}" [formControl]="this.form.get('data').get('type')">
|
||||
<mat-option [value]="options.Researchers">{{enumUtils.toDatasetProfileInternalDmpEntitiesTypeString(options.Researchers)}}</mat-option>
|
||||
<mat-option [value]="options.Datasets">{{enumUtils.toDatasetProfileInternalDmpEntitiesTypeString(options.Datasets)}}</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<app-dataset-profile-editor-researchers-auto-complete-field-component *ngIf="this.form.get('data').get('type').value === options.Researchers" class="col-12" [form]="form"></app-dataset-profile-editor-researchers-auto-complete-field-component>
|
||||
<app-dataset-profile-editor-datasets-autocomplete-field-component *ngIf="this.form.get('data').get('type').value === options.Datasets" class="col-12" [form]="form"></app-dataset-profile-editor-datasets-autocomplete-field-component>
|
||||
</div>
|
||||
|
|
|
@ -5,6 +5,8 @@ import { FormGroup } from "@angular/forms";
|
|||
import { BaseComponent } from "../../../../../../../core/common/base/base.component";
|
||||
import { takeUntil } from "rxjs/operators";
|
||||
import { ResearchersAutoCompleteFieldDataEditorModel } from "../../../../admin/field-data/researchers-auto-complete-field-data-editor-model";
|
||||
import { DatasetsAutoCompleteFieldDataEditorModel } from "../../../../admin/field-data/datasets-autocomplete-field-data-editor-mode";
|
||||
|
||||
|
||||
@Component({
|
||||
selector: 'app-dataset-profile-internal-dmp-entities-field-component',
|
||||
|
@ -30,6 +32,8 @@ export class DatasetProfileEditorInternalDmpEntitiesFieldComponent extends BaseC
|
|||
if (this.form.get('data')) { this.form.removeControl('data'); }
|
||||
if (x === DatasetProfileInternalDmpEntitiesType.Researchers) {
|
||||
this.form.addControl('data', new ResearchersAutoCompleteFieldDataEditorModel().buildForm());
|
||||
} else if (x === DatasetProfileInternalDmpEntitiesType.Datasets) {
|
||||
this.form.addControl('data', new DatasetsAutoCompleteFieldDataEditorModel().buildForm());
|
||||
}
|
||||
this.setupListeners();
|
||||
})
|
||||
|
|
|
@ -30,7 +30,6 @@
|
|||
placeHolder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.DEFAULT-VALUE' | translate}}" [required]="defaulValueRequired(form.get('viewStyle').get('renderStyle').value)">
|
||||
</app-component-profile-editor-default-value-component>
|
||||
|
||||
|
||||
<mat-form-field class="col" *ngIf="!(defaulValueRequired(form.get('viewStyle').get('renderStyle').value))">
|
||||
<mat-select placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.VALIDATION' | translate}}" [formControl]="this.form.get('validations')"
|
||||
multiple>
|
||||
|
|
|
@ -59,6 +59,21 @@
|
|||
</div>
|
||||
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
|
||||
</mat-form-field>
|
||||
<mat-form-field class="col-md-12" *ngIf="form.get('data').value.type === this.datasetProfileInternalDmpEntitiesTypeEnum.Datasets">
|
||||
<div *ngIf="form.get('data').value.multiAutoComplete">
|
||||
<app-multiple-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
|
||||
[configuration]="multipleAutoCompleteConfiguration" (optionRemoved)="_optionRemove($event)">
|
||||
</app-multiple-auto-complete>
|
||||
</div>
|
||||
<div *ngIf="!(form.get('data').value.multiAutoComplete)">
|
||||
<app-single-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
|
||||
[configuration]="singleAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
|
||||
</app-single-auto-complete>
|
||||
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
|
||||
</mat-error>
|
||||
</div>
|
||||
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -14,6 +14,9 @@ import { DatasetProfileInternalDmpEntitiesType } from '../../../../../core/commo
|
|||
import { ResearcherCriteria } from '../../../../../core/query/researcher/researcher-criteria';
|
||||
import { ExternalSourcesService } from '../../../../../core/services/external-sources/external-sources.service';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { DatasetCriteria } from '../../../../../core/query/dataset/dataset-criteria';
|
||||
import { DatasetService } from '../../../../../core/services/dataset/dataset.service';
|
||||
import { DataTableRequest } from '../../../../../core/model/data-table/data-table-request';
|
||||
|
||||
@Component({
|
||||
selector: 'app-form-field',
|
||||
|
@ -40,7 +43,8 @@ export class FormFieldComponent extends BaseComponent implements OnInit {
|
|||
public visibilityRulesService: VisibilityRulesService,
|
||||
private datasetExternalAutocompleteService: DatasetExternalAutocompleteService,
|
||||
private externalSourcesService: ExternalSourcesService,
|
||||
public language: TranslateService,
|
||||
private language: TranslateService,
|
||||
private datasetService: DatasetService
|
||||
) { super(); }
|
||||
|
||||
ngOnInit() {
|
||||
|
@ -74,24 +78,10 @@ export class FormFieldComponent extends BaseComponent implements OnInit {
|
|||
|
||||
if (this.form.get('viewStyle').value.renderStyle === DatasetProfileFieldViewStyle.InternalDmpEntities) {
|
||||
if (this.form.get('data').value.type === DatasetProfileInternalDmpEntitiesType.Researchers) {
|
||||
if (!(this.form.controls['data'].value.multiAutoComplete)) {
|
||||
this.singleAutoCompleteConfiguration = {
|
||||
filterFn: this.searchResearchers.bind(this),
|
||||
initialItems: (extraData) => this.searchResearchers(''),
|
||||
displayFn: (item) => (item != null && item.length > 1) ? JSON.parse(item).name : item['name'],
|
||||
titleFn: (item) => item['name'],
|
||||
valueAssign: (item) => JSON.stringify(item)
|
||||
};
|
||||
}
|
||||
else {
|
||||
this.multipleAutoCompleteConfiguration = {
|
||||
filterFn: this.searchResearchers.bind(this),
|
||||
initialItems: (extraData) => this.searchResearchers(''),
|
||||
displayFn: (item) => item['name'],
|
||||
titleFn: (item) => item['name'],
|
||||
valueAssign: this._transformValue
|
||||
}
|
||||
}
|
||||
this.makeAutocompleteConfiguration(this.searchResearchers.bind(this), "name", "tag");
|
||||
}
|
||||
else if (this.form.get('data').value.type === DatasetProfileInternalDmpEntitiesType.Datasets) {
|
||||
this.makeAutocompleteConfiguration(this.searchDatasets.bind(this), "label");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -135,4 +125,35 @@ export class FormFieldComponent extends BaseComponent implements OnInit {
|
|||
reasearcherAutocompleteRequestItem.criteria.name = query;
|
||||
return this.externalSourcesService.searchDMPResearchers(reasearcherAutocompleteRequestItem);
|
||||
}
|
||||
|
||||
searchDatasets(query: string) {
|
||||
let fields: Array<string> = new Array();
|
||||
const datasetsAutocompleteRequestItem: DataTableRequest<DatasetCriteria> = new DataTableRequest(0, 25, { fields: fields });
|
||||
datasetsAutocompleteRequestItem.criteria = new DatasetCriteria();
|
||||
datasetsAutocompleteRequestItem.criteria.like = query;
|
||||
return this.datasetService.getPaged(datasetsAutocompleteRequestItem).map(item => item.data);
|
||||
}
|
||||
|
||||
makeAutocompleteConfiguration(myfunc: Function, title: string, subtitle?: string): void {
|
||||
if (!(this.form.controls['data'].value.multiAutoComplete)) {
|
||||
this.singleAutoCompleteConfiguration = {
|
||||
filterFn: myfunc.bind(this),
|
||||
initialItems: (extraData) => myfunc(''),
|
||||
displayFn: (item) => (item != null && item.length > 1) ? JSON.parse(item)[title] : item[title],
|
||||
titleFn: (item) => item[title],
|
||||
valueAssign: (item) => JSON.stringify(item),
|
||||
subtitleFn: (item) => item[subtitle]
|
||||
};
|
||||
}
|
||||
else {
|
||||
this.multipleAutoCompleteConfiguration = {
|
||||
filterFn: myfunc.bind(this),
|
||||
initialItems: (extraData) => myfunc(''),
|
||||
displayFn: (item) => item[title],
|
||||
titleFn: (item) => item[title],
|
||||
valueAssign: this._transformValue,
|
||||
subtitleFn: (item) => item[subtitle]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -207,6 +207,7 @@
|
|||
"FIELD-INTERNAL-DMP-ENTITIES-TYPE": "Type of Internal DMP Entity",
|
||||
"FIELD-RESEARCHERS-TITLE": "Researchers Autocomplete",
|
||||
"FIELD-RESEARCHERS-PLACEHOLDER": "Input Placeholder",
|
||||
"FIELD-DATASETS-PLACEHOLDER": "Input Placeholder",
|
||||
"FIELD-RADIO-BOX-TITLE": "Radio Box Data",
|
||||
"FIELD-RADIO-BOX-PLACEHOLDER": "Input Placeholder",
|
||||
"FIELD-RADIO-BOX-LABEL": "Label",
|
||||
|
|
Loading…
Reference in New Issue