From 8a8b58eeaaca3f304b57f54af9c02ba18ad83531 Mon Sep 17 00:00:00 2001 From: argirok Date: Thu, 9 May 2024 16:44:54 +0300 Subject: [PATCH] [develop | DONE ADDED] add direct linking for organizations --- claims/claim-utils/claimHelper.class.ts | 14 +++- claims/claim-utils/claims.properties.ts | 20 ++++++ .../displayClaims.component.html | 13 ++-- .../displayClaims/displayClaims.component.ts | 25 ++++--- .../claimEntityFormatter.component.ts | 8 ++- .../claimEntityFormatter.module.ts | 5 +- .../organizationTitleFormatter.component.ts | 18 +++++ claims/claim-utils/service/claims.service.ts | 10 ++- .../directLinking.component.html | 2 +- .../directLinking/directLinking.component.ts | 68 ++++++++++++++----- .../insertClaim/insertClaim.component.ts | 34 +++++++++- claims/linking/linkingGeneric.component.html | 15 ++-- claims/linking/linkingGeneric.component.ts | 6 +- .../selected/ClaimEntityTitle.component.ts | 6 ++ .../selected/metadataPreview.component.html | 21 +++--- .../selected/metadataPreview.component.ts | 2 + .../selected/metadataPreview.module.ts | 17 ++--- 17 files changed, 215 insertions(+), 69 deletions(-) create mode 100644 claims/claim-utils/claims.properties.ts create mode 100644 claims/claim-utils/entityFormatter/organizationTitleFormatter.component.ts diff --git a/claims/claim-utils/claimHelper.class.ts b/claims/claim-utils/claimHelper.class.ts index d3fb38f4..86239830 100644 --- a/claims/claim-utils/claimHelper.class.ts +++ b/claims/claim-utils/claimHelper.class.ts @@ -38,6 +38,12 @@ export class ClaimProject { public fundingLevel0: string; public url: string; } +export class ClaimOrganization { + public name: string; + // public shortName: string; + public url: string; + // public country: string; +} export class ClaimContext { public community: string; @@ -72,6 +78,7 @@ export class ClaimEntity { result: ClaimResult; project: ClaimProject; context: ClaimContext; + organization: ClaimOrganization; constructor() { this.warningMessages = []; @@ -117,7 +124,12 @@ export class ClaimDBContext { title: string; openaireId: string; } - +export class ClaimDBOrganization { + openaireId: string; + name: string; + shortName: string; + country: string; +} export class ClaimDBProject { openaireId: string; name: string; diff --git a/claims/claim-utils/claims.properties.ts b/claims/claim-utils/claims.properties.ts new file mode 100644 index 00000000..4e53a1ab --- /dev/null +++ b/claims/claim-utils/claims.properties.ts @@ -0,0 +1,20 @@ +export class ClaimsProperties{ + ALLOW_ORGANIZATION_LINKING:boolean = false; + INLINE_ENTITY = { + show: true, + guideText : null + } + BASKET ={ + source_title: "Source", + target_title: "Link source to" + } + METADATA_PREVIEW ={ + source_title: "Source", + target_title: "Link to", + edit_source_title: "Edit", + edit_target_title: "Edit", + edit_target_icon: "edit" + } + + +} diff --git a/claims/claim-utils/displayClaims/displayClaims.component.html b/claims/claim-utils/displayClaims/displayClaims.component.html index 94034a2e..8aa09cae 100644 --- a/claims/claim-utils/displayClaims/displayClaims.component.html +++ b/claims/claim-utils/displayClaims/displayClaims.component.html @@ -1,25 +1,27 @@
-
+
-
+
-
-
+
-
+
+
+ Mine +
@@ -43,6 +45,7 @@ type="select" [options]="sortOptions">
+
diff --git a/claims/claim-utils/displayClaims/displayClaims.component.ts b/claims/claim-utils/displayClaims/displayClaims.component.ts index 8fd1f4ee..9e9e4648 100644 --- a/claims/claim-utils/displayClaims/displayClaims.component.ts +++ b/claims/claim-utils/displayClaims/displayClaims.component.ts @@ -40,7 +40,7 @@ export class DisplayClaimsComponent implements OnInit, OnDestroy { page: number = 1; size: number = 50; keyword: string; // the keyword string to give to the request as parameter - types = ["All", "Project", "Context", "Result", "User"]; + types = ["All", "Project", "Context", "Result", "User", "Organization"]; loading: boolean = false; @Input() fetchBy: string; @Input() fetchId: string; @@ -53,6 +53,7 @@ export class DisplayClaimsComponent implements OnInit, OnDestroy { public filterForm: FormGroup; public entities: string[] = []; selected = []; + mine = false; allOptions: Option[] = [ {label: OpenaireEntities.PUBLICATIONS, value: "publication"}, @@ -133,6 +134,7 @@ export class DisplayClaimsComponent implements OnInit, OnDestroy { this.fetchId = this.fetchId ? this.fetchId : ''; } let page = (params['page'] === undefined) ? 1 : +params['page']; + this.mine = (params['mine'] == 'true' ? true:false); this.keyword = (params['keyword'] ? params['keyword'] : ""); this.filterForm.get('keyword').setValue(this.keyword); this.page = (page <= 0) ? 1 : page; @@ -186,6 +188,16 @@ export class DisplayClaimsComponent implements OnInit, OnDestroy { this.handleErrors(err, "Error getting claims for project with id: " + this.fetchId); } ); + } else if (this.fetchBy == "Organization") { + this.subResults = this._claimService.getClaimsByOrganization(this.size, this.page, this.fetchId, this.keyword, this.filterForm.get("sort").value.sort, this.filterForm.get("sort").value.descending, types, this.properties.claimsAPIURL, this.mine).subscribe( + data => { + this.manageAPIData(data); + this.loading = false; + }, + err => { + this.handleErrors(err, "Error getting claims for project with id: " + this.fetchId); + } + ); } else if (this.fetchBy == "User") { this.subResults = this._claimService.getClaimsByUser(this.size, this.page, this.fetchId, this.keyword, this.filterForm.get("sort").value.sort, this.filterForm.get("sort").value.descending, types, this.properties.claimsAPIURL).subscribe( data => { @@ -209,7 +221,7 @@ export class DisplayClaimsComponent implements OnInit, OnDestroy { } ); } else if (this.fetchBy == "Context") { - this.subResults = this._claimService.getClaimsBycontext(this.size, this.page, this.fetchId, this.keyword, this.filterForm.get("sort").value.sort, this.filterForm.get("sort").value.descending, types, this.properties.claimsAPIURL).subscribe( + this.subResults = this._claimService.getClaimsBycontext(this.size, this.page, this.fetchId, this.keyword, this.filterForm.get("sort").value.sort, this.filterForm.get("sort").value.descending, types, this.properties.claimsAPIURL, this.mine).subscribe( data => { this.manageAPIData(data); this.loading = false; @@ -220,7 +232,7 @@ export class DisplayClaimsComponent implements OnInit, OnDestroy { } ); } else { - this.subResults = this._claimService.getClaims(this.size, this.page, this.keyword, this.filterForm.get("sort").value.sort, this.filterForm.get("sort").value.descending, types, this.properties.claimsAPIURL).subscribe( + this.subResults = this._claimService.getClaims(this.size, this.page, this.keyword, this.filterForm.get("sort").value.sort, this.filterForm.get("sort").value.descending, types, this.properties.claimsAPIURL, this.mine).subscribe( data => { this.manageAPIData(data); this.loading = false; @@ -259,15 +271,8 @@ export class DisplayClaimsComponent implements OnInit, OnDestroy { types += (types.length > 0 ? ',' : '') + type; } params += (this.entities.length > 0) ? (params.length > 0 ? '&' : '') + "types=" + types : ""; - if (this.isAdmin) { - params += (this.fetchBy == 'All' ? "" : (params.length > 0 ? '&' : '') + "fetchBy=" + this.fetchBy); - params += (this.fetchId == '' ? "" : (params.length > 0 ? '&' : '') + "fetchId=" + this.fetchId); - } params += (this.filterForm.get("sort").value.sort == 'date' && this.filterForm.get("sort").value.descending ? "" : (params.length > 0 ? '&' : '') + "sort=" + this.filterForm.get("sort").value.sort + "-" + this.filterForm.get("sort").value.descending); params += (this.keyword == '' ? "" : (params.length > 0 ? '&' : '') + "keyword=" + this.keyword); - if (this.communityId != null) { - params += "&communityId=" + this.communityId; - } return params; } diff --git a/claims/claim-utils/entityFormatter/claimEntityFormatter.component.ts b/claims/claim-utils/entityFormatter/claimEntityFormatter.component.ts index 547e4c16..b1571d34 100644 --- a/claims/claim-utils/entityFormatter/claimEntityFormatter.component.ts +++ b/claims/claim-utils/entityFormatter/claimEntityFormatter.component.ts @@ -1,6 +1,6 @@ import {Component, Input} from '@angular/core'; import {EnvProperties} from '../../../utils/properties/env-properties'; -import {ClaimDBContext, ClaimDBProject, ClaimDBResult} from "../claimHelper.class"; +import {ClaimDBContext, ClaimDBOrganization, ClaimDBProject, ClaimDBResult} from "../claimHelper.class"; import {OpenaireEntities} from "../../../utils/properties/searchFields"; import {StringUtils} from "../../../utils/string-utils.class"; @@ -26,6 +26,10 @@ import {StringUtils} from "../../../utils/string-utils.class";
+
+ Link to: + +
Link to:
@@ -36,7 +40,7 @@ import {StringUtils} from "../../../utils/string-utils.class"; }) export class ClaimEntityFormatter { - @Input() entity: ClaimDBResult | ClaimDBContext | ClaimDBProject; + @Input() entity: ClaimDBResult | ClaimDBContext | ClaimDBProject | ClaimDBOrganization; @Input() type: string; @Input() properties: EnvProperties; @Input() externalPortalUrl: string = null; diff --git a/claims/claim-utils/entityFormatter/claimEntityFormatter.module.ts b/claims/claim-utils/entityFormatter/claimEntityFormatter.module.ts index 620c7f1b..a14f1e27 100644 --- a/claims/claim-utils/entityFormatter/claimEntityFormatter.module.ts +++ b/claims/claim-utils/entityFormatter/claimEntityFormatter.module.ts @@ -5,18 +5,19 @@ import { RouterModule } from '@angular/router'; import {ProjectTitleFormatter} from './projectTitleFormatter.component'; import {PublicationTitleFormatter} from './publicationTitleFormatter.component'; import {ClaimEntityFormatter} from './claimEntityFormatter.component'; +import {OrganizationTitleFormatterComponent} from "./organizationTitleFormatter.component"; @NgModule({ imports: [ CommonModule, RouterModule ], declarations: [ - ProjectTitleFormatter, PublicationTitleFormatter, ClaimEntityFormatter + ProjectTitleFormatter, PublicationTitleFormatter, ClaimEntityFormatter, OrganizationTitleFormatterComponent ], providers: [ ], exports: [ - ProjectTitleFormatter, PublicationTitleFormatter, ClaimEntityFormatter + ProjectTitleFormatter, PublicationTitleFormatter, ClaimEntityFormatter, OrganizationTitleFormatterComponent ] }) diff --git a/claims/claim-utils/entityFormatter/organizationTitleFormatter.component.ts b/claims/claim-utils/entityFormatter/organizationTitleFormatter.component.ts new file mode 100644 index 00000000..4160eac6 --- /dev/null +++ b/claims/claim-utils/entityFormatter/organizationTitleFormatter.component.ts @@ -0,0 +1,18 @@ +import {Component, Input} from '@angular/core'; + +@Component({ + selector: 'organization-title', + template: ` +
+

+ {{(organization.shortName ? ('[' + organization.shortName + '] ') : '')}}{{organization.name}} +

+
+ ` +}) + +export class OrganizationTitleFormatterComponent { + @Input() organization: any; + public url: string; + +} diff --git a/claims/claim-utils/service/claims.service.ts b/claims/claim-utils/service/claims.service.ts index d7d46218..54208d7b 100644 --- a/claims/claim-utils/service/claims.service.ts +++ b/claims/claim-utils/service/claims.service.ts @@ -12,8 +12,8 @@ export class ClaimsService { private getClaimRequest(size : number, page : number, url :string, fromCache:boolean):any { return this.http.get(url, CustomOptions.getAuthOptionsWithBody()); } - getClaims( size : number, page : number, keyword:string, sortby: string, descending: boolean, types: string, apiUrl:string):any { - let url = apiUrl +"claims"+"?offset="+(size*(page-1) + "&limit="+size)+"&keyword="+keyword+"&sortby="+sortby+"&descending="+descending+(types.length>0?"&"+types:types); + getClaims( size : number, page : number, keyword:string, sortby: string, descending: boolean, types: string, apiUrl:string, mine:boolean):any { + let url = apiUrl +"claims"+"?offset="+(size*(page-1) + "&limit="+size)+"&keyword="+keyword+"&sortby="+sortby+"&descending="+descending+(types.length>0?"&"+types:types) + (mine?"&mine=true":"") + (mine?"&mine=true":""); return this.getClaimRequest(size,page,url,true); } @@ -23,7 +23,7 @@ export class ClaimsService { return this.getClaimRequest(size,page,url,false); } - getClaimsBycontext( size : number, page : number, contextId:string, keyword:string, sortby: string, descending: boolean, types: string , apiUrl:string):any { + getClaimsBycontext( size : number, page : number, contextId:string, keyword:string, sortby: string, descending: boolean, types: string , apiUrl:string, mine:boolean):any { //console.info('ClaimsService: getClaims for context : '+contextId); let url = apiUrl +"contexts/"+contextId+"/claims"+"?offset="+(size*(page-1) + "&limit="+size)+"&keyword="+keyword+"&sortby="+sortby+"&descending="+descending+(types.length>0?"&"+types:types); return this.getClaimRequest(size,page,url,true); @@ -40,6 +40,10 @@ export class ClaimsService { let url = apiUrl +"projects/"+projectId+"/claims"+"?offset="+(size*(page-1) + "&limit="+size)+"&keyword="+keyword+"&sortby="+sortby+"&descending="+descending+(types.length>0?"&"+types:types); return this.getClaimRequest(size,page,url,true); } + getClaimsByOrganization( size : number, page : number, organizationId:string, keyword:string, sortby: string, descending: boolean, types: string, apiUrl:string, mine:boolean):any { + let url = apiUrl +"organizations/"+organizationId+"/claims"+"?offset="+(size*(page-1) + "&limit="+size)+"&keyword="+keyword+"&sortby="+sortby+"&descending="+descending+(types.length>0?"&"+types:types) + (mine?"&mine=true":""); + return this.getClaimRequest(size,page,url,true); + } deleteClaimById(claimId:string , apiUrl:string):any{ //console.warn('Trying to delete claim with id : '+claimId); diff --git a/claims/directLinking/directLinking.component.html b/claims/directLinking/directLinking.component.html index e05bc3a3..f34e2c57 100644 --- a/claims/directLinking/directLinking.component.html +++ b/claims/directLinking/directLinking.component.html @@ -1,6 +1,6 @@ + pageTitle="Direct Linking" [claimsProperties]="claimsProperties">
diff --git a/claims/directLinking/directLinking.component.ts b/claims/directLinking/directLinking.component.ts index 70d46032..b74beb83 100644 --- a/claims/directLinking/directLinking.component.ts +++ b/claims/directLinking/directLinking.component.ts @@ -1,7 +1,7 @@ import {Component, Input, ViewChild} from '@angular/core'; import {ActivatedRoute, Router} from '@angular/router'; import {EnvProperties} from '../../utils/properties/env-properties'; -import {ClaimEntity, ClaimProject, ShowOptions} from '../claim-utils/claimHelper.class'; +import {ClaimEntity, ClaimOrganization, ClaimProject, ShowOptions} from '../claim-utils/claimHelper.class'; import {EntitiesSearchService} from '../../utils/entitiesAutoComplete/entitySearch.service'; import {SearchResearchResultsService} from '../../services/searchResearchResults.service'; import {LinkingGenericComponent} from "../linking/linkingGeneric.component"; @@ -11,6 +11,7 @@ import {properties} from "../../../../environments/environment"; import {OpenaireEntities} from "../../utils/properties/searchFields"; import {StringUtils} from "../../utils/string-utils.class"; import {ClaimProjectsSearchFormComponent} from "../claim-utils/claimProjectSearchForm.component"; +import {ClaimsProperties} from "../claim-utils/claims.properties"; @Component({ @@ -24,18 +25,20 @@ export class DirectLinkingComponent { // linkType: string = "project"; // link type (selected in home page) : project, context, software, etc /* url Parameters for inline linking */ - id: string = null; //entity id + @Input() id: string = null; //entity id type: string = null; // entity type (publication or dataset) // linkTo: string = null; // entity type (project or context or entity) // linkToEntities: string[] = []; showOptions:ShowOptions = new ShowOptions(); - validEntityTypes = ["dataset", "publication", "software", "other", "project", "context"]; + validEntityTypes = ["dataset", "publication", "software", "other", "project", "context", "organization"]; sources: ClaimEntity[] = []; inlineEntity: ClaimEntity = null; validInput: boolean = null;//'true; properties: EnvProperties; @Input() communityId: string = null; localStoragePrefix: string = ""; + @Input() organizationClaim: boolean = false; + @Input() claimsProperties:ClaimsProperties; constructor(private _router: Router, private route: ActivatedRoute,private entitySearch:EntitiesSearchService, private _searchResearchResultsService: SearchResearchResultsService) {} subscriptions = []; @@ -48,11 +51,18 @@ export class DirectLinkingComponent { } ngOnInit() { this.properties = properties; - + /* if(!this.claimsProperties){ + this.claimsProperties = new ClaimsProperties(); + }*/ this.subscriptions.push(this.route.queryParams.subscribe(params => { - this.id = params['id']; - this.type = params['type']; - this.showOptions.linkTo = params['linkTo']; + if(this.organizationClaim){ + this.type = "organization"; + this.showOptions.linkTo = "result"; + }else { + this.id = params['id']; + this.type = params['type']; + this.showOptions.linkTo = params['linkTo']; + } if (this.type != null && this.showOptions.linkTo != null) { this.type = (this.validEntityTypes.indexOf(this.type) != -1) ? this.type : 'publication'; this.showOptions.linkTo = (this.validEntityTypes.indexOf(this.showOptions.linkTo) != -1 || this.showOptions.linkTo == "result") ? this.showOptions.linkTo : 'project'; @@ -68,6 +78,8 @@ export class DirectLinkingComponent { if (this.type == "project") { // this.linkType = "project"; this.getProjectById(this.id); + } else if (this.type == "organization") { + this.getOrganizationById(this.id); } else if (this.type == "publication") { this.getResearchResultById("publication", this.id); } else if (this.type == "dataset") { @@ -81,7 +93,7 @@ export class DirectLinkingComponent { } //set which entities it is allowed to link to. // add first the - if(this.type == "project"){ + if(this.type == "project" || this.type == "organization"){ this.showOptions.linkToEntities = ["result"]; this.showOptions.linkTo = "result"; }else{ @@ -95,24 +107,27 @@ export class DirectLinkingComponent { this.showOptions.linkToEntities = ["result","project","context" ]; } + } + + } else { + this.validInput = this.isValidInput(null); + } - } else { - this.validInput = this.isValidInput(null); + })); - } - - })); } isValidInput(result: ClaimEntity) { if (result == null) { return false; - } else if (this.type == "project" && this.showOptions.linkTo != "result") { + } else if (this.type == "organization" && !this.claimsProperties.ALLOW_ORGANIZATION_LINKING) { + return false; + } else if ((this.type == "project" || this.type == "organization") && this.showOptions.linkTo != "result") { return false; } else if (["dataset", "publication", "software", "other"].indexOf(this.type) != -1 && (["project", "context", "result"].indexOf(this.showOptions.linkTo) == -1)) { return false; - } else if (["project", "dataset", "publication", "software", "other"].indexOf(this.type) == -1) { + } else if (["project", "dataset", "publication", "software", "other", "organization"].indexOf(this.type) == -1) { return false; } else { return true; @@ -130,6 +145,17 @@ export class DirectLinkingComponent { this.handleError("Error getting project by id: " + id, err); })); } + getOrganizationById(id: string) { + this.subscriptions.push(this.entitySearch.fetchByType(id,"organization", this.properties).subscribe( + data => { + this.createClaimEntity(data, "organization"); + }, + err => { + this.validInput = this.isValidInput(null); + //console.log("An error occured") + this.handleError("Error getting project by id: " + id, err); + })); + } getResearchResultById(resultType: string, id: string) { this.subscriptions.push(this._searchResearchResultsService.searchById(resultType, id, this.properties).subscribe(data => { @@ -162,7 +188,17 @@ export class DirectLinkingComponent { entity.project.jurisdiction = project.jurisdiction; entity.project.startDate = project.startDate; this.inlineEntity = entity; - }else{ + }else if(type =="organization"){ + let organization = data[0]; + let entity:ClaimEntity = new ClaimEntity(); + entity.id = organization.id; + entity.type = "organization"; + entity.title = organization.label; + entity.organization = new ClaimOrganization(); + // entity.organization.url = properties.searchLinkToOrganization + entity.id; + entity.organization.name = organization.label; + this.inlineEntity = entity; + }else{ results = ClaimResultSearchFormComponent.openaire2ClaimResults(data, this.properties); } diff --git a/claims/linking/insertClaim/insertClaim.component.ts b/claims/linking/insertClaim/insertClaim.component.ts index 0cf983e5..4aebe5f3 100644 --- a/claims/linking/insertClaim/insertClaim.component.ts +++ b/claims/linking/insertClaim/insertClaim.component.ts @@ -176,7 +176,7 @@ export class ClaimInsertComponent { "id": entity.id, "record": ClaimInsertComponent.createDirectClaim(entity, this.sources, idSuffix) }); - } else if (this.inlineEntity) { + } else if (this.inlineEntity && this.inlineEntity.type != "organization") { directclaims.push({ "id": entity.id, "record": ClaimInsertComponent.createDirectClaim(entity, [this.inlineEntity], idSuffix) @@ -193,6 +193,8 @@ export class ClaimInsertComponent { claims.push(ClaimInsertComponent.createContextClaim(result, entity, user.email, dashboard, idSuffix)); } else if (entity.project) { claims.push(ClaimInsertComponent.createProjectClaim(result, entity, user.email, dashboard, idSuffix)); + /* } else if (entity.organization) { + claims.push(ClaimInsertComponent.createOrganizationClaim(result, entity, user.email, dashboard, idSuffix));*/ } this.infoToLog.push([ result.title?result.title: result.id, entity.title?entity.title:entity.id]); @@ -212,6 +214,10 @@ export class ClaimInsertComponent { if (entity.result) { claims.push(ClaimInsertComponent.createProjectClaim(entity, this.inlineEntity, user.email, dashboard, idSuffix)); } + } else if (this.inlineEntity.organization) { + if (entity.result) { + claims.push(ClaimInsertComponent.createOrganizationClaim(entity, this.inlineEntity, user.email, dashboard, idSuffix)); + } } } @@ -385,8 +391,13 @@ export class ClaimInsertComponent { localStorage.removeItem(this.localStoragePrefix + "results"); localStorage.removeItem(this.localStoragePrefix + "claimsJob"); localStorage.removeItem(this.localStoragePrefix + "feedRecordsJob"); - - this._router.navigate([this.properties.myClaimsLink], {queryParams: this.params}); + if(this.properties.myClaimsLink && this.properties.myClaimsLink.indexOf(".") == -1) { + this._router.navigate([this.properties.myClaimsLink], {queryParams: this.params}); + }else if(this.properties.myClaimsLink && this.properties.myClaimsLink.indexOf(".") != -1) { + this._router.navigate([this.properties.myClaimsLink], {relativeTo: this.route}); + }else{ + this._router.navigate(["/"]); + } } } @@ -426,6 +437,23 @@ export class ClaimInsertComponent { idSuffix : idSuffix }; } + private static createOrganizationClaim(resultEntity: ClaimEntity, organizationEntity: ClaimEntity, user: any, dashboard:string, idSuffix:string): ClaimRecord2Insert { + return { + claimedBy: user, + sourceId: organizationEntity.id, + sourceType: "organization", + sourceCollectedFrom: "openaire", + sourceAccessRights: "OPEN", + sourceEmbargoEndDate: "", + targetId: resultEntity.id, + targetType: resultEntity.type, + targetCollectedFrom: resultEntity.result.source, + targetAccessRights: resultEntity.result.accessRights, + targetEmbargoEndDate: ClaimInsertComponent.getEmbargoEndDate(resultEntity), + claimedInDashboard : dashboard, + idSuffix : idSuffix + }; + } private static createResultClaim(inlineResult: ClaimEntity, resultEntity: ClaimEntity, user: string, dashboard:string, idSuffix:string): ClaimRecord2Insert { diff --git a/claims/linking/linkingGeneric.component.html b/claims/linking/linkingGeneric.component.html index 16cb04bf..625d75d0 100644 --- a/claims/linking/linkingGeneric.component.html +++ b/claims/linking/linkingGeneric.component.html @@ -67,18 +67,19 @@ [results]="results" [sources]="sources" [localStoragePrefix]="localStoragePrefix" [inlineEntity]="inlineEntity" [showOptions]="showOptions" [properties]=properties [pageContents]="pageContents" - [defaultColors]="!communityId" [communityId]="communityId" + [defaultColors]="!communityId" [communityId]="communityId" [claimsProperties]="claimsProperties" >
-
+
-

Link source to

+

Link source to

+
{{claimsProperties.INLINE_ENTITY.guideText}}
-
-
Source
+
+
{{claimsProperties.BASKET.source_title}}
-

+

-
Link source to ({{(results.length) | number}})
+
{{claimsProperties.BASKET.target_title}} ({{(results.length) | number}})
diff --git a/claims/linking/linkingGeneric.component.ts b/claims/linking/linkingGeneric.component.ts index 31b76062..a7a18c6d 100644 --- a/claims/linking/linkingGeneric.component.ts +++ b/claims/linking/linkingGeneric.component.ts @@ -18,6 +18,7 @@ import {RouterHelper} from "../../utils/routerHelper.class"; import { Location } from '@angular/common'; import {LoginErrorCodes} from "../../login/utils/guardHelper.class"; import {UserManagementService} from "../../services/user-management.service"; +import {ClaimsProperties} from "../claim-utils/claims.properties"; @Component({ selector: 'linking-generic', @@ -49,7 +50,7 @@ export class LinkingGenericComponent { public pageContents = null; @Input() breadcrumbs: Breadcrumb[] = []; public routerHelper: RouterHelper = new RouterHelper(); - + @Input() claimsProperties:ClaimsProperties; constructor (private _router: Router, private route: ActivatedRoute, private entitySearch:EntitiesSearchService, private _meta: Meta, private _title: Title, private _piwikService:PiwikService, private seoService: SEOService, private helper: HelperService, private cdr: ChangeDetectorRef, @@ -58,6 +59,9 @@ export class LinkingGenericComponent { subscriptions = []; ngOnInit() { + /* if(!this.claimsProperties){ + this.claimsProperties = new ClaimsProperties(); + }*/ this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => { if (!user) { this.saveStateAndRedirectLogin(); diff --git a/claims/linking/selected/ClaimEntityTitle.component.ts b/claims/linking/selected/ClaimEntityTitle.component.ts index 12231e53..c432a266 100644 --- a/claims/linking/selected/ClaimEntityTitle.component.ts +++ b/claims/linking/selected/ClaimEntityTitle.component.ts @@ -12,6 +12,9 @@ import {ClaimEntity} from '../../claim-utils/claimHelper.class'; assignment_turned_in + + account_balance + people @@ -46,6 +49,9 @@ import {ClaimEntity} from '../../claim-utils/claimHelper.class'; + + {{sliceString(entity.title)}} + {{entity.context.community }} > {{entity.context.category}} > diff --git a/claims/linking/selected/metadataPreview.component.html b/claims/linking/selected/metadataPreview.component.html index a0723118..9a6dd093 100644 --- a/claims/linking/selected/metadataPreview.component.html +++ b/claims/linking/selected/metadataPreview.component.html @@ -6,15 +6,14 @@
-
+
-
+
- SOURCES ({{sources.length + (inlineEntity ? 1 : 0) | number}}) + {{claimsProperties.METADATA_PREVIEW.source_title}} ({{sources.length + (inlineEntity ? 1 : 0) | number}}) Edit - sources + uk-icon="pencil" class="uk-margin-xsmall-right">{{claimsProperties.METADATA_PREVIEW.edit_source_title}}
  • @@ -153,13 +152,15 @@
-
- LINK TO ({{results.length | number}}) +
+ {{claimsProperties.METADATA_PREVIEW.target_title}} ({{results.length | number}}) +
diff --git a/claims/linking/selected/metadataPreview.component.ts b/claims/linking/selected/metadataPreview.component.ts index 8aedd081..cd2ce799 100644 --- a/claims/linking/selected/metadataPreview.component.ts +++ b/claims/linking/selected/metadataPreview.component.ts @@ -4,6 +4,7 @@ import {ClaimEntity, ClaimsErrorMessage, Message, ShowOptions} from '../../claim import {EnvProperties} from "../../../utils/properties/env-properties"; import {Dates} from "../../../utils/string-utils.class"; import {HelperFunctions} from "../../../utils/HelperFunctions.class"; +import {ClaimsProperties} from "../../claim-utils/claims.properties"; @Component({ selector: 'metadata-preview', @@ -28,6 +29,7 @@ export class MetadataPreviewComponent { @ViewChild(AlertModal) alertApplyAll; @Input() localStoragePrefix: string = ""; @Input() communityId:string= null; + @Input() claimsProperties:ClaimsProperties; errors:ClaimsErrorMessage[] = []; warnings:Message[] = []; public commonAccessRights = "OPEN"; // for access rights- changes when user apply a change to every entity diff --git a/claims/linking/selected/metadataPreview.module.ts b/claims/linking/selected/metadataPreview.module.ts index 2c7fdb17..7e414381 100644 --- a/claims/linking/selected/metadataPreview.module.ts +++ b/claims/linking/selected/metadataPreview.module.ts @@ -11,16 +11,17 @@ import { MatInputModule } from '@angular/material/input'; import { MatSelectModule } from '@angular/material/select'; import {HelperModule} from "../../../utils/helper/helper.module"; import {SelectedPublicationsModule} from "./selectedResults.module"; +import {IconsModule} from "../../../utils/icons/icons.module"; @NgModule({ - imports: [ - SharedModule, - AlertModalModule, - ClaimEntitiesMetadataModule, - InsertClaimsModule, - MatDatepickerModule, MatNativeDateModule, MatFormFieldModule, MatInputModule, MatSelectModule, - HelperModule, SelectedPublicationsModule - ], + imports: [ + SharedModule, + AlertModalModule, + ClaimEntitiesMetadataModule, + InsertClaimsModule, + MatDatepickerModule, MatNativeDateModule, MatFormFieldModule, MatInputModule, MatSelectModule, + HelperModule, SelectedPublicationsModule, IconsModule + ], declarations: [MetadataPreviewComponent], exports:[MetadataPreviewComponent] })