diff --git a/landingPages/dataProvider/dataProvider.component.ts b/landingPages/dataProvider/dataProvider.component.ts index 70751b2d..b5ed9e75 100644 --- a/landingPages/dataProvider/dataProvider.component.ts +++ b/landingPages/dataProvider/dataProvider.component.ts @@ -186,8 +186,8 @@ export class DataProviderComponent { this.stickyHeader = false; this.updateDescription(""); - if(data["pv"]) { - this.prevPath = data["pv"]; + if(data["return_path"]) { + this.prevPath = data["return_path"] + (data["search_params"] ? ("?"+data["search_params"]) : ""); } if((typeof document !== 'undefined') && document.referrer) { this.referrer = document.referrer; @@ -845,7 +845,11 @@ export class DataProviderComponent { public addEoscPrevInParams(obj) { if(properties.adminToolsPortalType == "eosc" && this.prevPath) { - return this.routerHelper.addQueryParam("pv", this.prevPath, obj); + let splitted: string[] = this.prevPath.split("?"); + obj = this.routerHelper.addQueryParam("return_path", splitted[0], obj); + if(splitted.length > 0) { + obj = this.routerHelper.addQueryParam("search_params", splitted[1], obj); + } } return obj; } diff --git a/landingPages/dataProvider/relatedDatasourcesTab.component.ts b/landingPages/dataProvider/relatedDatasourcesTab.component.ts index 1ed36512..c8b1b25d 100644 --- a/landingPages/dataProvider/relatedDatasourcesTab.component.ts +++ b/landingPages/dataProvider/relatedDatasourcesTab.component.ts @@ -141,7 +141,11 @@ export class RelatedDatasourcesTabComponent { public addEoscPrevInParams(obj) { if(properties.adminToolsPortalType == "eosc" && this.prevPath) { - return this.routerHelper.addQueryParam("pv", this.prevPath, obj); + let splitted: string[] = this.prevPath.split("?"); + obj = this.routerHelper.addQueryParam("return_path", splitted[0], obj); + if(splitted.length > 0) { + obj = this.routerHelper.addQueryParam("search_params", splitted[1], obj); + } } return obj; } diff --git a/landingPages/landing-utils/availableOn.component.ts b/landingPages/landing-utils/availableOn.component.ts index dc7f0052..6c97de66 100644 --- a/landingPages/landing-utils/availableOn.component.ts +++ b/landingPages/landing-utils/availableOn.component.ts @@ -128,7 +128,11 @@ export class AvailableOnComponent { public addEoscPrevInParams(obj) { if(properties.adminToolsPortalType == "eosc" && this.prevPath) { - return this.routerHelper.addQueryParam("pv", this.prevPath, obj); + let splitted: string[] = this.prevPath.split("?"); + obj = this.routerHelper.addQueryParam("return_path", splitted[0], obj); + if(splitted.length > 0) { + obj = this.routerHelper.addQueryParam("search_params", splitted[1], obj); + } } return obj; } diff --git a/landingPages/landing-utils/fundedBy.component.ts b/landingPages/landing-utils/fundedBy.component.ts index 5f0e3cea..2938557d 100644 --- a/landingPages/landing-utils/fundedBy.component.ts +++ b/landingPages/landing-utils/fundedBy.component.ts @@ -110,7 +110,11 @@ export class FundedByComponent { public addEoscPrevInParams(obj) { if(properties.adminToolsPortalType == "eosc" && this.prevPath) { - return this.routerHelper.addQueryParam("pv", this.prevPath, obj); + let splitted: string[] = this.prevPath.split("?"); + obj = this.routerHelper.addQueryParam("return_path", splitted[0], obj); + if(splitted.length > 0) { + obj = this.routerHelper.addQueryParam("search_params", splitted[1], obj); + } } return obj; } diff --git a/landingPages/landing-utils/metrics/metrics.component.ts b/landingPages/landing-utils/metrics/metrics.component.ts index 61b0dfdf..4d7004c0 100644 --- a/landingPages/landing-utils/metrics/metrics.component.ts +++ b/landingPages/landing-utils/metrics/metrics.component.ts @@ -8,6 +8,7 @@ import {EnvProperties} from '../../../utils/properties/env-properties'; import {ClickEvent} from "../../../utils/click/click-outside-or-esc.directive"; import {NumberUtils} from "../../../utils/number-utils.class"; import {OpenaireEntities} from "../../../utils/properties/searchFields"; +import {StringUtils} from "../../../utils/string-utils.class"; @Component({ selector: 'metrics', @@ -77,7 +78,7 @@ import {OpenaireEntities} from "../../../utils/properties/searchFields"; - + {{metrics.infos.get(key).name}} @@ -313,4 +314,16 @@ export class MetricsComponent { let formatted = NumberUtils.roundNumber(+num); return formatted.number + formatted.size; } + + public getEoscParams() { + let params = ""; + if(this.prevPath) { + let splitted: string[] = this.prevPath.split("?"); + params = "&return_path="+StringUtils.URIEncode(splitted[0]); + if(splitted.length > 0) { + params += "&search_params="+StringUtils.URIEncode(splitted[1]); + } + } + return params; + } } diff --git a/landingPages/landing-utils/parsingFunctions.class.ts b/landingPages/landing-utils/parsingFunctions.class.ts index 23592e3f..ef502b3b 100644 --- a/landingPages/landing-utils/parsingFunctions.class.ts +++ b/landingPages/landing-utils/parsingFunctions.class.ts @@ -9,10 +9,11 @@ import {StringUtils} from "../../utils/string-utils.class"; }) export class ParsingFunctions { public eoscSubjects = [ - {label: 'EOSC::Jupyter Notebook', link: 'https://' + (properties.environment != 'production'?'beta.':'') + 'marketplace.eosc-portal.eu/services?tag=EOSC%3A%3AJupyter+Notebook', value: 'Jupyter Notebook'}, - {label: 'EOSC::RO-crate', link: 'https://' + (properties.environment != 'production'?'beta.':'') + 'marketplace.eosc-portal.eu/datasources/eosc.psnc.6f0470e3bb9203ec3a7553f3a72a7a1f?q=ROHub', value: 'RO-crate'}, - {label: 'EOSC::Galaxy Workflow', link: 'https://' + (properties.environment != 'production'?'beta.':'') + 'marketplace.eosc-portal.eu/services?tag=EOSC%3A%3AGalaxy+Workflow', value: 'Galaxy Workflow'}, - {label: 'EOSC::Twitter Data', link: 'https://' + (properties.environment != 'production'?'beta.':'') + 'marketplace.eosc-portal.eu/services?tag=EOSC%3A%3ATwitter+Data', value: 'Twitter Data'} + {label: 'EOSC::Jupyter Notebook', link: 'https://' + (properties.environment != 'production'?'beta.':'') + 'search.marketplace.eosc-portal.eu/search/service?q=*&fq=tag_list:"EOSC%5C:%5C:Jupyter%20Notebook"', value: 'Jupyter Notebook'}, + {label: 'EOSC::RO-crate', link: 'https://' + (properties.environment != 'production'?'beta.':'') + 'search.marketplace.eosc-portal.eu/search/data-source?q=*&fq=tag_list:%22eosc%5C:%5C:ro%5C-crate%22', value: 'RO-crate'}, + {label: 'EOSC::Galaxy Workflow', link: 'https://' + (properties.environment != 'production'?'beta.':'') + 'search.marketplace.eosc-portal.eu/search/service?q=*&fq=tag_list:%22eosc%5C:%5C:galaxy%20workflow%22', value: 'Galaxy Workflow'}, + {label: 'EOSC::Twitter Data', link: 'https://' + (properties.environment != 'production'?'beta.':'') + 'search.marketplace.eosc-portal.eu/search/service?q=*&fq=tag_list:%22EOSC%5C:%5C:Twitter%20Data%22', value: 'Twitter Data'}, + {label: 'EOSC::Data Cube', link: 'https://' + (properties.environment != 'production'?'beta.':'') + 'search.marketplace.eosc-portal.eu/search/service?q=*&fq=tag_list:%22EOSC%5C:%5C:Data%20Cube%22', value: 'Data Cube'} ] public notebookInSubjects: boolean = false; diff --git a/landingPages/organization/organization.component.ts b/landingPages/organization/organization.component.ts index 475f280b..75c242b4 100644 --- a/landingPages/organization/organization.component.ts +++ b/landingPages/organization/organization.component.ts @@ -170,8 +170,8 @@ export class OrganizationComponent { this.updateTitle("Organization"); this.updateDescription(""); - if(params["pv"]) { - this.prevPath = params["pv"]; + if(params["return_path"]) { + this.prevPath = params["return_path"] + (params["search_params"] ? ("?"+params["search_params"]) : ""); } if((typeof document !== 'undefined') && document.referrer) { this.referrer = document.referrer; diff --git a/landingPages/project/project.component.ts b/landingPages/project/project.component.ts index 34e7d6e9..a992f455 100644 --- a/landingPages/project/project.component.ts +++ b/landingPages/project/project.component.ts @@ -214,8 +214,8 @@ export class ProjectComponent { this.updateTitle(title); this.updateDescription(description); - if(params["pv"]) { - this.prevPath = params["pv"]; + if(params["return_path"]) { + this.prevPath = params["return_path"] + (params["search_params"] ? ("?"+params["search_params"]) : ""); } if((typeof document !== 'undefined') && document.referrer) { this.referrer = document.referrer; @@ -979,7 +979,11 @@ export class ProjectComponent { public addEoscPrevInParams(obj) { if(properties.adminToolsPortalType == "eosc" && this.prevPath) { - return this.routerHelper.addQueryParam("pv", this.prevPath, obj); + let splitted: string[] = this.prevPath.split("?"); + obj = this.routerHelper.addQueryParam("return_path", splitted[0], obj); + if(splitted.length > 0) { + obj = this.routerHelper.addQueryParam("search_params", splitted[1], obj); + } } return obj; } diff --git a/landingPages/result/resultLanding.component.ts b/landingPages/result/resultLanding.component.ts index 1ef770ad..1df4c97d 100644 --- a/landingPages/result/resultLanding.component.ts +++ b/landingPages/result/resultLanding.component.ts @@ -208,9 +208,8 @@ export class ResultLandingComponent { this.egiTransferModalOpen = true; } this.updateDescription(""); - - if(data["pv"]) { - this.prevPath = data["pv"]; + if(data["return_path"]) { + this.prevPath = data["return_path"] + (data["search_params"] ? ("?"+data["search_params"]) : ""); } if((typeof document !== 'undefined') && document.referrer) { this.referrer = document.referrer; @@ -723,7 +722,7 @@ export class ResultLandingComponent { } if(!this.identifier) { this._location.go(( pid ? (this.linkToLandingPage.split("?")[0] + "?pid=" + pid.id): - (this.linkToLandingPage + this.id)) + (this.prevPath ? ("&pv="+this.prevPath) : "")); + (this.linkToLandingPage + this.id)) + this.getEoscParams()); } // else { // this._location.go(this.linkToLandingPage.split("?")[0] + "?pid=" + this.identifier.id); @@ -924,9 +923,25 @@ export class ResultLandingComponent { this.descriptionModal.open(); } + public getEoscParams() { + let params = ""; + if(this.prevPath) { + let splitted: string[] = this.prevPath.split("?"); + params = "&return_path="+StringUtils.URIEncode(splitted[0]); + if(splitted.length > 0) { + params += "&search_params="+StringUtils.URIEncode(splitted[1]); + } + } + return params; + } + public addEoscPrevInParams(obj) { if(properties.adminToolsPortalType == "eosc" && this.prevPath) { - return this.routerHelper.addQueryParam("pv", this.prevPath, obj); + let splitted: string[] = this.prevPath.split("?"); + obj = this.routerHelper.addQueryParam("return_path", splitted[0], obj); + if(splitted.length > 0) { + obj = this.routerHelper.addQueryParam("search_params", splitted[1], obj); + } } return obj; } diff --git a/utils/result-preview/result-preview.component.ts b/utils/result-preview/result-preview.component.ts index bd9e2011..1ed5b5c7 100644 --- a/utils/result-preview/result-preview.component.ts +++ b/utils/result-preview/result-preview.component.ts @@ -180,7 +180,11 @@ export class ResultPreviewComponent implements OnInit, OnChanges { public addEoscPrevInParams(obj) { if(properties.adminToolsPortalType == "eosc" && this.prevPath) { - return this.routerHelper.addQueryParam("pv", this.prevPath, obj); + let splitted: string[] = this.prevPath.split("?"); + obj = this.routerHelper.addQueryParam("return_path", splitted[0], obj); + if(splitted.length > 0) { + obj = this.routerHelper.addQueryParam("search_params", splitted[1], obj); + } } return obj; }