diff --git a/claims/claim-utils/claimHelper.class.ts b/claims/claim-utils/claimHelper.class.ts
index 9b914ab5..74349800 100644
--- a/claims/claim-utils/claimHelper.class.ts
+++ b/claims/claim-utils/claimHelper.class.ts
@@ -92,6 +92,7 @@ export class ClaimRecord2Insert {
targetAccessRights: string;
targetEmbargoEndDate: string;
claimedInDashboard: string;
+ idSuffix:string;
constructor() {
diff --git a/claims/claim-utils/displayClaims/displayClaims.component.ts b/claims/claim-utils/displayClaims/displayClaims.component.ts
index 8f24cf4d..8fd1f4ee 100644
--- a/claims/claim-utils/displayClaims/displayClaims.component.ts
+++ b/claims/claim-utils/displayClaims/displayClaims.component.ts
@@ -364,7 +364,7 @@ export class DisplayClaimsComponent implements OnInit, OnDestroy {
if (claimDateStr < lastUpdateDateStr) {
return true;
} else {
- return claim.target.collectedFrom != "infrastruct_::openaire" && claim.indexed;
+ return claim.target.collectedFrom != "infrastruct_::openaire";
}
}
diff --git a/claims/claim-utils/service/searchDatacite.service.ts b/claims/claim-utils/service/searchDatacite.service.ts
index 4361462f..a6d9cc8b 100644
--- a/claims/claim-utils/service/searchDatacite.service.ts
+++ b/claims/claim-utils/service/searchDatacite.service.ts
@@ -58,22 +58,20 @@ export class SearchDataciteService {
entity.result.journal = null;
entity.result.DOI = item.attributes.doi;
entity.id = item.attributes.doi;
- entity.title = item.attributes.title;
+ entity.title = Array.isArray(item.attributes.titles) && item.attributes.titles[0].title?item.attributes.titles[0].title:null;
entity.result.url = properties.doiURL + item.attributes.doi;
entity.result.source = 'datacite';
entity.type = 'dataset';
- entity.result.date = item.attributes.published;
+ entity.result.date = item.attributes.publicationYear;
entity.result.accessRights = "OPEN";
- entity.result.publisher = item.attributes['container-title'];
+ entity.result.publisher = item.attributes['publisher'];
entity.result.journal = null;
entity.result.record = item;
- if (item.attributes.author) {
+ if (item.attributes.creators) {
entity.result.authors = [];
- for (let j = 0; j < item.attributes.author.length; j++) {
- const author = item.attributes.author[j];
- if(author.family || author.literal) {
- entity.result.authors.push((author.family) ? author.family + (author.given ? ', ' + author.given : '') : author.literal);
- }
+ for (let j = 0; j < item.attributes.creators.length; j++) {
+ const author = item.attributes.creators[j].name;
+ entity.result.authors.push(author);
}
}
results.push(entity);
diff --git a/claims/linking/insertClaim/insertClaim.component.ts b/claims/linking/insertClaim/insertClaim.component.ts
index d9314aeb..05615ba9 100644
--- a/claims/linking/insertClaim/insertClaim.component.ts
+++ b/claims/linking/insertClaim/insertClaim.component.ts
@@ -156,13 +156,14 @@ export class ClaimInsertComponent {
this.loading.open();
let claims: ClaimRecord2Insert[] = [];
let directclaims: DirectIndexRecord[] = [];
+ let idSuffix = (new Date()).getTime() + "";
let dashboard = this.properties.environment+"_"+this.properties.dashboard + (this.communityId?("_"+this.communityId):'');
for (let j = 0; j < this.sources.length; j++) { // if an external result -> direct insert in the index
const result: ClaimEntity = this.sources[j];
if (result.result && ["crossref", "datacite", "orcid"].indexOf(result.result.source) != -1) {
directclaims.push({
"id": result.id,
- "record": ClaimInsertComponent.createDirectClaim(result, this.results)
+ "record": ClaimInsertComponent.createDirectClaim(result, this.results, idSuffix)
});
}
}
@@ -173,12 +174,12 @@ export class ClaimInsertComponent {
if (this.sources.length > 0) {
directclaims.push({
"id": entity.id,
- "record": ClaimInsertComponent.createDirectClaim(entity, this.sources)
+ "record": ClaimInsertComponent.createDirectClaim(entity, this.sources, idSuffix)
});
} else if (this.inlineEntity) {
directclaims.push({
"id": entity.id,
- "record": ClaimInsertComponent.createDirectClaim(entity, [this.inlineEntity])
+ "record": ClaimInsertComponent.createDirectClaim(entity, [this.inlineEntity], idSuffix)
});
}
@@ -187,11 +188,11 @@ export class ClaimInsertComponent {
for (let j = 0; j < this.sources.length; j++) {
const result: ClaimEntity = this.sources[j]; // this is a research result
if (entity.result) {
- claims.push(ClaimInsertComponent.createResultClaim(result, entity, user.email, dashboard));
+ claims.push(ClaimInsertComponent.createResultClaim(result, entity, user.email, dashboard, idSuffix));
} else if (entity.context) {
- claims.push(ClaimInsertComponent.createContextClaim(result, entity, user.email, dashboard));
+ claims.push(ClaimInsertComponent.createContextClaim(result, entity, user.email, dashboard, idSuffix));
} else if (entity.project) {
- claims.push(ClaimInsertComponent.createProjectClaim(result, entity, user.email, dashboard));
+ claims.push(ClaimInsertComponent.createProjectClaim(result, entity, user.email, dashboard, idSuffix));
}
this.infoToLog.push([ result.title?result.title: result.id, entity.title?entity.title:entity.id]);
@@ -201,15 +202,15 @@ export class ClaimInsertComponent {
if (this.inlineEntity.result) {
if (entity.result) {
- claims.push(ClaimInsertComponent.createResultClaim(this.inlineEntity, entity, user.email, dashboard));
+ claims.push(ClaimInsertComponent.createResultClaim(this.inlineEntity, entity, user.email, dashboard, idSuffix));
} else if (entity.context) {
- claims.push(ClaimInsertComponent.createContextClaim(this.inlineEntity, entity, user.email, dashboard));
+ claims.push(ClaimInsertComponent.createContextClaim(this.inlineEntity, entity, user.email, dashboard, idSuffix));
} else if (entity.project) {
- claims.push(ClaimInsertComponent.createProjectClaim(this.inlineEntity, entity, user.email, dashboard));
+ claims.push(ClaimInsertComponent.createProjectClaim(this.inlineEntity, entity, user.email, dashboard, idSuffix));
}
} else if (this.inlineEntity.project) {
if (entity.result) {
- claims.push(ClaimInsertComponent.createProjectClaim(entity, this.inlineEntity, user.email, dashboard));
+ claims.push(ClaimInsertComponent.createProjectClaim(entity, this.inlineEntity, user.email, dashboard, idSuffix));
}
}
}
@@ -390,7 +391,7 @@ export class ClaimInsertComponent {
}
- private static createContextClaim(resultEntity: ClaimEntity, contextEntity: ClaimEntity, user: any, dashboard:string): ClaimRecord2Insert {
+ private static createContextClaim(resultEntity: ClaimEntity, contextEntity: ClaimEntity, user: any, dashboard:string, idSuffix:string): ClaimRecord2Insert {
return {
claimedBy: user,
sourceId: contextEntity.context.concept.id,
@@ -403,11 +404,12 @@ export class ClaimInsertComponent {
targetCollectedFrom: resultEntity.result.source,
targetAccessRights: resultEntity.result.accessRights,
targetEmbargoEndDate: ClaimInsertComponent.getEmbargoEndDate(resultEntity),
- claimedInDashboard : dashboard
+ claimedInDashboard : dashboard,
+ idSuffix : idSuffix
};
}
- private static createProjectClaim(resultEntity: ClaimEntity, projectEntity: ClaimEntity, user: any, dashboard:string): ClaimRecord2Insert {
+ private static createProjectClaim(resultEntity: ClaimEntity, projectEntity: ClaimEntity, user: any, dashboard:string, idSuffix:string): ClaimRecord2Insert {
return {
claimedBy: user,
sourceId: projectEntity.id,
@@ -420,11 +422,12 @@ export class ClaimInsertComponent {
targetCollectedFrom: resultEntity.result.source,
targetAccessRights: resultEntity.result.accessRights,
targetEmbargoEndDate: ClaimInsertComponent.getEmbargoEndDate(resultEntity),
- claimedInDashboard : dashboard
+ claimedInDashboard : dashboard,
+ idSuffix : idSuffix
};
}
- private static createResultClaim(inlineResult: ClaimEntity, resultEntity: ClaimEntity, user: string, dashboard:string): ClaimRecord2Insert {
+ private static createResultClaim(inlineResult: ClaimEntity, resultEntity: ClaimEntity, user: string, dashboard:string, idSuffix:string): ClaimRecord2Insert {
return {
claimedBy: user,
@@ -438,7 +441,9 @@ export class ClaimInsertComponent {
targetCollectedFrom: inlineResult.result.source,
targetAccessRights: inlineResult.result.accessRights,
targetEmbargoEndDate: ClaimInsertComponent.getEmbargoEndDate(inlineResult),
- claimedInDashboard : dashboard
+ claimedInDashboard : dashboard,
+ idSuffix : idSuffix
+
};
}
@@ -448,12 +453,13 @@ export class ClaimInsertComponent {
}
return ""
}
-
- static createDirectClaim(resultEntity: ClaimEntity, results: ClaimEntity[]) {
+ static createOpenAIREId(id, idSuffix:string):string {
+ return id.indexOf( "::" ) == -1 ? ("userclaim___::" + Md5.hashStr(id + idSuffix)):id;
+ }
+ static createDirectClaim(resultEntity: ClaimEntity, results: ClaimEntity[], idSuffix:string) {
let entity = {};
- const md5_id = Md5.hashStr(resultEntity.id);
- entity["originalId"] = "userclaim___::" + md5_id;
- entity["openaireId"] = "userclaim___::" + md5_id;
+ entity["originalId"] = this.createOpenAIREId(resultEntity.id, idSuffix);
+ entity["openaireId"] = this.createOpenAIREId(resultEntity.id, idSuffix);
entity["title"] = resultEntity.title;
entity["title"] = (Array.isArray(resultEntity.title) && resultEntity.title.length > 0) ? resultEntity.title[0] : resultEntity.title;
diff --git a/dashboard/menu/menu.component.ts b/dashboard/menu/menu.component.ts
index 11914b6c..abf77901 100644
--- a/dashboard/menu/menu.component.ts
+++ b/dashboard/menu/menu.component.ts
@@ -370,10 +370,8 @@ export class MenuComponent implements OnInit {
}
public valueChange() {
- this.elements.disable();
this.cdr.detectChanges();
this.elements.init();
- this.elements.enable();
}
public get displayMenuItems() {
diff --git a/dashboard/users/role-users/role-users.component.html b/dashboard/users/role-users/role-users.component.html
index 6fb1d94f..88befe57 100644
--- a/dashboard/users/role-users/role-users.component.html
+++ b/dashboard/users/role-users/role-users.component.html
@@ -8,26 +8,26 @@
+ [searchControl]="filterForm.get('active')" [expandable]="true" [placeholder]="'Search ' + stakeholderUtils.roles[role] + 's'" searchInputClass="outer">
-