diff --git a/backend/core/src/main/java/org/opencdmp/service/prefillingsource/PrefillingSourceServiceImpl.java b/backend/core/src/main/java/org/opencdmp/service/prefillingsource/PrefillingSourceServiceImpl.java
index 951a0c564..03daa3584 100644
--- a/backend/core/src/main/java/org/opencdmp/service/prefillingsource/PrefillingSourceServiceImpl.java
+++ b/backend/core/src/main/java/org/opencdmp/service/prefillingsource/PrefillingSourceServiceImpl.java
@@ -476,6 +476,7 @@ public class PrefillingSourceServiceImpl implements PrefillingSourceService {
Tag tag = new Tag();
tag.setLabel(tagString.trim());
descriptionTag.setTag(tag);
+ descriptionTag.setIsActive(IsActive.Active);
description.getDescriptionTags().add(descriptionTag);
}
}
diff --git a/backend/web/src/main/resources/config/permissions.yml b/backend/web/src/main/resources/config/permissions.yml
index 476f465f6..783899a01 100644
--- a/backend/web/src/main/resources/config/permissions.yml
+++ b/backend/web/src/main/resources/config/permissions.yml
@@ -403,12 +403,6 @@ permissions:
allowAuthenticated: false
# Dmp
BrowseDmp:
- roles:
- - TenantAdmin
- clients: [ ]
- allowAnonymous: false
- allowAuthenticated: false
- EditDmp:
roles:
- TenantAdmin
dmp:
@@ -420,7 +414,7 @@ permissions:
clients: [ ]
allowAnonymous: false
allowAuthenticated: false
- ReviewDmp:
+ EditDmp:
roles:
- TenantAdmin
dmp:
diff --git a/dmp-db-scema/updates/00.01.060_Insert_values.sql b/dmp-db-scema/updates/00.01.060_Insert_values.sql
index 446f06d39..e3a7e509c 100644
--- a/dmp-db-scema/updates/00.01.060_Insert_values.sql
+++ b/dmp-db-scema/updates/00.01.060_Insert_values.sql
@@ -16,8 +16,8 @@ BEGIN
INSERT INTO public."Language" VALUES ('110d2e49-1580-4ee3-b1df-84da966f97a8', 'pt', null, '2024-02-29 16:35:18.114652', '2024-02-29 16:35:18.114652', 1, 9, null);
INSERT INTO public."Language" VALUES ('3b865f61-a863-43de-98cd-da86fc3f5940', 'pl', null, '2024-02-29 16:35:18.114652', '2024-02-29 16:35:18.114652', 1, 10, null);
- INSERT INTO public."PrefillingSource" VALUES ('7a1ef5db-8833-45e1-85d8-476cea3d4f7a', 'OpenAIRE', 'openaire10falseapplication/jsonremote00$[''meta''][''pagination''][''page'',''pages'',''count'']{like}likereference_id
originalIdlabel
titledescription
descriptiontitle.content
[''title''][''content'']children.instance.license
[''children''][''instance''][''license'']subject.content
[''subject''][''content'']publisher
publisherlanguage.classid
[''language''][''classid'']issued.content
[''issued''][''content'']bestaccessright.classid
[''bestaccessright''][''classid'']pid.content
[''pid''][''content'']pid.classid
[''pid''][''classid'']$[''results''][*][''result''][''metadata''][''oaf:entity''][''oaf:result'']https://services.openaire.eu/search/v2/api/datasets/?q={like}&page={page}&size={pageSize}&format=jsontitle.content
rda.dataset.distribution.titlelabeldescription
rda.dataset.distribution.descriptiondescriptionchildren.instance.license
rda.dataset.distribution.license.license_refsubject.content
rda.dataset.keywordtagspublisher
rda.dataset.distribution.host.titlelanguage.classid
rda.dataset.metadata.languageissued.content
rda.dataset.issuedbestaccessright.classid
rda.dataset.distribution.data_accesspid.content
rda.dataset.dataset_idpid.content
rda.dataset.dataset_id.identifierpid.classid
rda.dataset.dataset_id.type', 1, '2024-02-28 09:12:41.051733', '2024-04-18 10:32:24.812946', NULL);
- INSERT INTO public."PrefillingSource" VALUES ('d79952bf-cfd9-4af4-b7b4-5a83d68890a5', 'Zenodo', 'zenodo search20falseapplication/jsonremote10$[''hits''][''total'']{like}likereference_id
idlabel
titledescription
description$[''hits''][''hits'']https://zenodo.org/api/records/?page={page}&size={pageSize}&q=title:"{like}" doi:"{like}" conceptdoi:"{like}"zenodo get10falseapplication/jsonremote0${like}likemetadata.title
[''metadata''][''title'']metadata.description
[''metadata''][''description'']metadata.license.id
[''metadata''][''license''][''id'']metadata.keywords
[''metadata''][''keywords'']metadata.filesize
[''metadata''][''files''][''size'']metadata.language
[''metadata''][''language'']metadata.dates.valid
[''metadata''][''dates''][''type'']metadata.license.created
[''metadata''][''license''][''created'']metadata.embargo_date
[''metadata''][''embargo_date'']metadata.publication_date
[''metadata''][''publication_date'']metadata.access_right
[''metadata''][''access_right'']files
[''files''][''key'']doi
doi$https://zenodo.org/api/records/{like}metadata.title
rda.dataset.distribution.titlelabelmetadata.description
rda.dataset.distribution.descriptiondescriptionmetadata.license.id
rda.dataset.distribution.license.license_refmetadata.keywords
rda.dataset.keywordtagsmetadata.filesize
rda.dataset.distribution.byte_sizemetadata.language
rda.dataset.metadata.languagemetadata.dates.valid
rda.dataset.distribution.available_untilmetadata.license.created
rda.dataset.distribution.license.start_datemetadata.embargo_date
rda.dataset.distribution.license.start_datemetadata.publication_date
rda.dataset.issuedmetadata.access_right
rda.dataset.distribution.data_accessfiles
rda.dataset.distribution.format^.*\.doi
rda.dataset.dataset_iddoi
rda.dataset.dataset_id.identifierZenodorda.dataset.distribution.host.titleMore than 99% uptime yearlyrda.dataset.distribution.host.availabilityCHrda.dataset.distribution.host.geo_locationAll files uploaded to Zenodo are stored in CERN’s EOS service in an 18 petabytes disk cluster.rda.dataset.distribution.host.storage_typedoirda.dataset.dataset_id.typehttps://schema.datacite.org/meta/kernel-4.4/rda.dataset.metadata.metadata_standard_id.identifierurlrda.dataset.metadata.metadata_standard_id.typeengrda.dataset.metadata.languageDataCite Metadata Schemarda.dataset.metadata.descriptionHourlyrda.dataset.distribution.host.backup_frequencyIncremental backuprda.dataset.distribution.host.backup_typeRepository hosted by Zenodorda.dataset.distribution.host.descriptionhttps://zenodo.orgrda.dataset.distribution.host.urldoirda.dataset.distribution.host.pid_system', 1, '2024-02-28 10:20:50.570055', '2024-04-17 07:11:52.483139', NULL);
+ INSERT INTO public."PrefillingSource" VALUES ('7a1ef5db-8833-45e1-85d8-476cea3d4f7a', 'OpenAIRE', 'openaire10falseapplication/jsonremote00$[''meta''][''pagination''][''page'',''pages'',''count'']{like}likereference_id
originalIdlabel
titledescription
descriptiontitle.content
[''title''][''content'']children.instance.license
[''children''][''instance''][''license'']subject.content
[''subject''][''content'']publisher
publisherlanguage.classid
[''language''][''classid'']issued.content
[''issued''][''content'']bestaccessright.classid
[''bestaccessright''][''classid'']pid.content
[''pid''][''content'']pid.classid
[''pid''][''classid'']$[''results''][*][''result''][''metadata''][''oaf:entity''][''oaf:result'']https://services.openaire.eu/search/v2/api/datasets/?q={like}&page={page}&size={pageSize}&format=jsontitle.content
rda.dataset.distribution.titlelabeldescription
rda.dataset.distribution.descriptiondescriptionchildren.instance.license
rda.dataset.distribution.license.license_refsubject.content
rda.dataset.keyworddescriptionTagspublisher
rda.dataset.distribution.host.titlelanguage.classid
rda.dataset.metadata.languageissued.content
rda.dataset.issuedbestaccessright.classid
rda.dataset.distribution.data_accesspid.content
rda.dataset.dataset_idpid.content
rda.dataset.dataset_id.identifierpid.classid
rda.dataset.dataset_id.type', 1, '2024-02-28 09:12:41.051733', '2024-04-30 11:38:57.583157', NULL);
+ INSERT INTO public."PrefillingSource" VALUES ('d79952bf-cfd9-4af4-b7b4-5a83d68890a5', 'Zenodo', 'zenodo search20falseapplication/jsonremote10$[''hits''][''total'']{like}likereference_id
idlabel
titledescription
description$[''hits''][''hits'']https://zenodo.org/api/records/?page={page}&size={pageSize}&q=title:"{like}" doi:"{like}" conceptdoi:"{like}"zenodo get10falseapplication/jsonremote0${like}likemetadata.title
[''metadata''][''title'']metadata.description
[''metadata''][''description'']metadata.license.id
[''metadata''][''license''][''id'']metadata.keywords
[''metadata''][''keywords'']metadata.filesize
[''metadata''][''files''][''size'']metadata.language
[''metadata''][''language'']metadata.dates.valid
[''metadata''][''dates''][''type'']metadata.license.created
[''metadata''][''license''][''created'']metadata.embargo_date
[''metadata''][''embargo_date'']metadata.publication_date
[''metadata''][''publication_date'']metadata.access_right
[''metadata''][''access_right'']files
[''files''][''key'']doi
doi$https://zenodo.org/api/records/{like}metadata.title
rda.dataset.distribution.titlelabelmetadata.description
rda.dataset.distribution.descriptiondescriptionmetadata.license.id
rda.dataset.distribution.license.license_refmetadata.keywords
rda.dataset.keyworddescriptionTagsmetadata.filesize
rda.dataset.distribution.byte_sizemetadata.language
rda.dataset.metadata.languagemetadata.dates.valid
rda.dataset.distribution.available_untilmetadata.license.created
rda.dataset.distribution.license.start_datemetadata.embargo_date
rda.dataset.distribution.license.start_datemetadata.publication_date
rda.dataset.issuedmetadata.access_right
rda.dataset.distribution.data_accessfiles
rda.dataset.distribution.format^.*\.doi
rda.dataset.dataset_iddoi
rda.dataset.dataset_id.identifierZenodorda.dataset.distribution.host.titleMore than 99% uptime yearlyrda.dataset.distribution.host.availabilityCHrda.dataset.distribution.host.geo_locationAll files uploaded to Zenodo are stored in CERN’s EOS service in an 18 petabytes disk cluster.rda.dataset.distribution.host.storage_typedoirda.dataset.dataset_id.typehttps://schema.datacite.org/meta/kernel-4.4/rda.dataset.metadata.metadata_standard_id.identifierurlrda.dataset.metadata.metadata_standard_id.typeengrda.dataset.metadata.languageDataCite Metadata Schemarda.dataset.metadata.descriptionHourlyrda.dataset.distribution.host.backup_frequencyIncremental backuprda.dataset.distribution.host.backup_typeRepository hosted by Zenodorda.dataset.distribution.host.descriptionhttps://zenodo.orgrda.dataset.distribution.host.urldoirda.dataset.distribution.host.pid_system', 1, '2024-02-28 10:20:50.570055', '2024-04-30 10:22:32.443123', NULL);
INSERT INTO public."ReferenceType" VALUES ('2baab1e8-561f-4c15-84c3-571b811c52f6', 'Licenses', 'licenses', 'opendefinition100falseapplication/vnd.api+json; charset=utf-8local10$[*]reference_id
idlabel
titledescription
maintaineruri
url$[*]https://licenses.opendefinition.org/licenses/groups/all.json', 1, '2023-11-16 16:24:12.162675', '2024-02-16 09:14:22.723311', NULL);
INSERT INTO public."ReferenceType" VALUES ('2beacaad-3223-43ad-ad99-1e5f21328e7b', 'Registries', 'registries', 'rda-metadata-schemes100falseapplication/json; charset=utf-8remote10$[''meta''][''pagination''][''page'',''pages'',''count'']{like}likereference_id
mscidlabel
titledescription
descriptionurl
uri$[''data''][''items''][*]https://rdamsc.bath.ac.uk/api2/m?q={like}&start=1&pageSize={pageSize}', 1, '2023-11-16 10:08:21.240804', '2024-02-16 09:16:50.456347', NULL);
diff --git a/dmp-frontend/src/app/core/common/enum/permission.enum.ts b/dmp-frontend/src/app/core/common/enum/permission.enum.ts
index c0e3a1c2f..07ef9f662 100644
--- a/dmp-frontend/src/app/core/common/enum/permission.enum.ts
+++ b/dmp-frontend/src/app/core/common/enum/permission.enum.ts
@@ -71,7 +71,6 @@ export enum AppPermission {
//Dmp
BrowseDmp = "BrowseDmp",
EditDmp = "EditDmp",
- ReviewDmp = "ReviewDmp",
NewDmp = "NewDmp",
DepositDmp = "DepositDmp",
DeleteDmp = "DeleteDmp",
diff --git a/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor.component.html b/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor.component.html
index 42c8a4757..c6d36e197 100644
--- a/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor.component.html
+++ b/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor.component.html
@@ -17,7 +17,7 @@
-
+
@@ -162,7 +162,7 @@
-
+
@@ -228,8 +228,8 @@
-
-
-
+
add
@@ -263,6 +263,7 @@
+ {{formGroup.get('properties').get('dmpBlueprintValues').get(field.id)?.get('reference')?.status }}
diff --git a/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor.component.ts b/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor.component.ts
index bead0e5fc..18de61f5c 100644
--- a/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor.component.ts
+++ b/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor.component.ts
@@ -224,7 +224,7 @@ export class DmpEditorComponent extends BaseEditor
implemen
.pipe(takeUntil(this._destroyed)).subscribe(
complete => {
this.permissionPerSection = complete,
- this.buildForm();
+ this.buildForm();
},
error => this.onCallbackError(error)
);
diff --git a/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor.model.ts b/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor.model.ts
index 7035e0a32..3203fce13 100644
--- a/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor.model.ts
+++ b/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor.model.ts
@@ -87,7 +87,8 @@ export class DmpEditorModel extends BaseEditorModel implements DmpPersist {
label: [{ value: this.label, disabled: disabled }, context.getValidation('label').validators],
status: [{ value: this.status, disabled: disabled }, context.getValidation('status').validators],
properties: this.properties.buildForm({
- rootPath: `properties.`
+ rootPath: `properties.`,
+ disabled: disabled
}),
users: this.formBuilder.array(
(this.users ?? []).map(
@@ -242,7 +243,8 @@ export class DmpPropertiesEditorModel implements DmpPropertiesPersist {
contacts: this.formBuilder.array(
(this.contacts ?? []).map(
(item, index) => item.buildForm({
- rootPath: `${rootPath}contacts[${index}].`
+ rootPath: `${rootPath}contacts[${index}].`,
+ disabled: disabled
})
), context.getValidation('contacts').validators
),
@@ -252,7 +254,8 @@ export class DmpPropertiesEditorModel implements DmpPropertiesPersist {
const dmpBlueprintValuesFormGroup = this.formBuilder.group({});
this.dmpBlueprintValues.forEach((value, key) => dmpBlueprintValuesFormGroup.addControl(key.toString(), value.buildForm({
- rootPath: `${rootPath}dmpBlueprintValues[${key}].`
+ rootPath: `${rootPath}dmpBlueprintValues[${key}].`,
+ disabled: disabled
})), context.getValidation('dmpBlueprintValues')
)
formGroup.addControl('dmpBlueprintValues', dmpBlueprintValuesFormGroup);
@@ -734,7 +737,7 @@ export class DmpDescriptionTemplateEditorModel implements DmpDescriptionTemplate
}
export class DmpFieldIndicator {
-
+
private _fieldControlNames;
get fieldControlNames(): string[] {
@@ -747,7 +750,7 @@ export class DmpFieldIndicator {
if (section.hasTemplates) {
this._fieldControlNames.push(`descriptionTemplates.${section.id}`);
} else {
- section.fields.forEach((field: FieldInSection) => {
+ section.fields.forEach((field: FieldInSection) => {
switch (field.category) {
case DmpBlueprintFieldCategory.System:
this.buildSystemField(field as SystemFieldInSection);
@@ -785,7 +788,7 @@ export class DmpFieldIndicator {
break;
}
}
-
+
buildReferenceTypeField(field: ReferenceTypeFieldInSection): void {
if (field.multipleSelect) {
this._fieldControlNames.push(`properties.dmpBlueprintValues.${field.id}.references`);
@@ -793,7 +796,7 @@ export class DmpFieldIndicator {
this._fieldControlNames.push(`properties.dmpBlueprintValues.${field.id}.reference`);
}
}
-
+
buildExtraField(field: ExtraFieldInSection): void {
this._fieldControlNames.push(`properties.dmpBlueprintValues.${field.id}.fieldValue`);
}
diff --git a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.html b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.html
index c41fbc125..b3404cd99 100644
--- a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.html
+++ b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.html
@@ -43,9 +43,9 @@
-
+
-
+
create
diff --git a/dmp-frontend/src/app/ui/external-fetcher/external-fetcher-source-editor.model.ts b/dmp-frontend/src/app/ui/external-fetcher/external-fetcher-source-editor.model.ts
index 3ee6be608..2113ffdec 100644
--- a/dmp-frontend/src/app/ui/external-fetcher/external-fetcher-source-editor.model.ts
+++ b/dmp-frontend/src/app/ui/external-fetcher/external-fetcher-source-editor.model.ts
@@ -313,7 +313,7 @@ export class ResultFieldsMappingConfigurationEditorModel implements ResultFields
}
return this.formBuilder.group({
- code: [{ value: this.code, disabled: true }, context.getValidation('code').validators],
+ code: [{ value: this.code, disabled: disabled }, context.getValidation('code').validators],
responsePath: [{ value: this.responsePath, disabled: disabled }, context.getValidation('responsePath').validators],
});
}
@@ -722,7 +722,7 @@ export class StaticOptionEditorModel implements StaticOptionPersist {
}
return this.formBuilder.group({
- code: [{ value: this.code, disabled: true }, context.getValidation('code').validators],
+ code: [{ value: this.code, disabled: disabled }, context.getValidation('code').validators],
value: [{ value: this.value, disabled: disabled }, context.getValidation('value').validators],
});
}
diff --git a/dmp-frontend/src/app/ui/external-fetcher/external-fetcher-source.component.html b/dmp-frontend/src/app/ui/external-fetcher/external-fetcher-source.component.html
index cac29980f..de9579499 100644
--- a/dmp-frontend/src/app/ui/external-fetcher/external-fetcher-source.component.html
+++ b/dmp-frontend/src/app/ui/external-fetcher/external-fetcher-source.component.html
@@ -141,7 +141,7 @@
{{'EXTERNAL-FETCHER-SOURCE-EDITOR.FIELDS.CODE' | translate}}
-
+
{{field.get('code').getError('backendError').message}}
{{'GENERAL.VALIDATION.REQUIRED' | translate}}
@@ -372,7 +372,7 @@
{{'EXTERNAL-FETCHER-SOURCE-EDITOR.FIELDS.CODE' | translate}}
-
+
{{option.get('code').getError('backendError').message}}
{{'GENERAL.VALIDATION.REQUIRED' | translate}}
diff --git a/dmp-frontend/src/app/ui/tag/tags-field/tags-field.component.ts b/dmp-frontend/src/app/ui/tag/tags-field/tags-field.component.ts
index c9bf5bd8f..cfb0d4f41 100644
--- a/dmp-frontend/src/app/ui/tag/tags-field/tags-field.component.ts
+++ b/dmp-frontend/src/app/ui/tag/tags-field/tags-field.component.ts
@@ -1,5 +1,5 @@
import { COMMA, ENTER } from '@angular/cdk/keycodes';
-import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';
+import { Component, ElementRef, Input, OnInit, SimpleChanges, ViewChild } from '@angular/core';
import { UntypedFormControl } from '@angular/forms';
import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
import { MatChipInputEvent } from '@angular/material/chips';
@@ -30,8 +30,15 @@ export class TagsComponent extends BaseComponent implements OnInit {
) {
super();
}
+ ngOnChanges(changes: SimpleChanges) {
+ if(changes['form']) this.applyTags();
+ }
ngOnInit(): void {
+ this.applyTags();
+ }
+
+ applyTags(){
this.tags = this.form.value || [];
this.filteredTags = this.form.valueChanges.pipe(
startWith(null),