diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java index 674dcc30e..fd5caae87 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java @@ -145,7 +145,7 @@ public class RemoteFetcher { public Integer findEntries(ExternalUrlCriteria externalUrlCriteria, String key) throws NoURLFound, HugeResultSet { List urlConfigs = key != null && !key.isEmpty() ? configLoader.getExternalUrls().getValidations().getUrls().stream().filter(item -> item.getKey().equals(key)).collect(Collectors.toList()) - : configLoader.getExternalUrls().getLicenses().getUrls(); + : configLoader.getExternalUrls().getValidations().getUrls(); FetchStrategy fetchStrategy = configLoader.getExternalUrls().getLicenses().getFetchMode(); List> data = this.getAll(urlConfigs, fetchStrategy, externalUrlCriteria); return data.size(); diff --git a/dmp-backend/web/src/main/resources/externalUrls/ExternalUrls.xml b/dmp-backend/web/src/main/resources/externalUrls/ExternalUrls.xml index 6c3eddf5c..da5ed7f65 100644 --- a/dmp-backend/web/src/main/resources/externalUrls/ExternalUrls.xml +++ b/dmp-backend/web/src/main/resources/externalUrls/ExternalUrls.xml @@ -969,11 +969,14 @@ External https://sandbox.zenodo.org/api/records/?page={page}&size={pageSize}&q={like} 1 - application/vnd.zenodo.v1+json; charset=utf-8 + application/json - $['hits']['hits'][*] + $[*] 'conceptrecid' + 'conceptdoi' + 'doi' + 'created' $['hits']['total'] diff --git a/dmp-frontend/src/app/core/services/external-sources/external-sources.service.ts b/dmp-frontend/src/app/core/services/external-sources/external-sources.service.ts index d2ab71653..724233ea3 100644 --- a/dmp-frontend/src/app/core/services/external-sources/external-sources.service.ts +++ b/dmp-frontend/src/app/core/services/external-sources/external-sources.service.ts @@ -77,7 +77,7 @@ export class ExternalSourcesService { } public validateIdentifier(like: string, type: string): Observable { - return this.http.get(this.actionUrl + 'validation?query=' + like, '&type=' + type); + return this.http.get(this.actionUrl + 'validation?query=' + like + '&type=' + type, { headers: this.headers }); } } diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.html b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.html index 61611ef16..5dda9d7bc 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.html +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/components/field/dataset-profile-editor-field.component.html @@ -26,6 +26,7 @@ {{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Organizations)}} {{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.DatasetIdentifier)}} {{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Currency)}} + {{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.Validation)}} {{'GENERAL.VALIDATION.REQUIRED' | translate}} diff --git a/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.html b/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.html index 4632b73b0..80c93039c 100644 --- a/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.html +++ b/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.html @@ -264,11 +264,15 @@ {{'GENERAL.VALIDATION.REQUIRED' | translate}} - - +
+ {{'GENERAL.VALIDATION.REQUIRED' | translate}} - +
+
+ + {{validationIcon}} +
diff --git a/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.scss b/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.scss index 39710e400..648535b09 100644 --- a/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.scss +++ b/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.scss @@ -10,6 +10,14 @@ .text-area { box-sizing: content-box; } + + .success { + color: green; + } + + .fail { + color: red; + } } ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline { diff --git a/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.ts b/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.ts index 5f6419b86..3a7b4171e 100644 --- a/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.ts +++ b/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.ts @@ -70,6 +70,8 @@ export class FormFieldComponent extends BaseComponent implements OnInit { datasetIdInitialized: boolean = false; + validationIcon; + readonly datasetIdTypes: any[] = [ { name: 'Handle', value: 'handle' }, { name: 'DOI', value: 'doi' }, @@ -225,6 +227,12 @@ export class FormFieldComponent extends BaseComponent implements OnInit { valueAssign: (item) => typeof (item) == 'string' ? item : JSON.stringify(item) }; break; + case DatasetProfileFieldViewStyle.Validation: + const value1 = this.form.get('value').value; + this.form.removeControl('value'); + this.form.addControl('value', new DatasetIdModel(value1).buildForm()); + //this.datasetIdInitialized = true; + break; } if (this.form.get('viewStyle').value.renderStyle === DatasetProfileFieldViewStyle.InternalDmpEntities) { @@ -429,9 +437,9 @@ export class FormFieldComponent extends BaseComponent implements OnInit { validateId() { const identifier = this.getDatasetIdControl('identifier').value; const type = this.getDatasetIdControl('type').value; - + this.validationIcon= 'loading'; this.externalSourcesService.validateIdentifier(identifier, type).pipe(takeUntil(this._destroyed)).subscribe(result => { - console.log(result); + this.validationIcon = result === true ? 'done' : 'clear'; }); } diff --git a/dmp-frontend/src/assets/i18n/en.json b/dmp-frontend/src/assets/i18n/en.json index 01ae2a5cf..2aeec65ad 100644 --- a/dmp-frontend/src/assets/i18n/en.json +++ b/dmp-frontend/src/assets/i18n/en.json @@ -1161,6 +1161,9 @@ "DATASETS": "Datasets", "EXTERNAL-SOURCE-HINT": "List of values provided by external source(s)" }, + "DATASET-PROFILE-VALIDATOR": { + "ACTION": "Validate" + }, "RECENT-ACTIVITY-ORDER": { "CREATED": "Created", "LABEL": "Label",