diff --git a/monitor-admin/manageStakeholders/manageStakeholders-routing.module.ts b/monitor-admin/manageStakeholders/manageStakeholders-routing.module.ts new file mode 100644 index 00000000..03c01a41 --- /dev/null +++ b/monitor-admin/manageStakeholders/manageStakeholders-routing.module.ts @@ -0,0 +1,18 @@ +import {NgModule} from '@angular/core'; +import {RouterModule} from '@angular/router'; +import {PreviousRouteRecorder} from '../../utils/piwik/previousRouteRecorder.guard'; +import {ManageStakeholdersComponent} from "./manageStakeholders.component"; + +@NgModule({ + imports: [ + RouterModule.forChild([ + { + path: '', + component: ManageStakeholdersComponent, + canDeactivate: [PreviousRouteRecorder] + } + ]) + ] +}) +export class ManageStakeholdersRoutingModule { +} diff --git a/monitor-admin/manageStakeholders/manageStakeholders.component.html b/monitor-admin/manageStakeholders/manageStakeholders.component.html new file mode 100644 index 00000000..5b981cde --- /dev/null +++ b/monitor-admin/manageStakeholders/manageStakeholders.component.html @@ -0,0 +1,138 @@ +
+
+ +
+ + + + + +
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+

Profile Templates

+
+ + + +
+ +
+
+
+
+

+ No profiles to manage yet +

+
+
+

Profiles

+
+ + + +
+ +
+
+
+
+
+
+
+ + +
+ +
+
+ + +
+
+ {{text}} +
+
+ + + +
+
+
+
+ +
+ +
+
+ +
+
+ +
+ +
+
+ This stakeholder will permanently be deleted. Are you sure you want to proceed? +
+
diff --git a/monitor-admin/manageStakeholders/manageStakeholders.component.less b/monitor-admin/manageStakeholders/manageStakeholders.component.less new file mode 100644 index 00000000..ee701579 --- /dev/null +++ b/monitor-admin/manageStakeholders/manageStakeholders.component.less @@ -0,0 +1,23 @@ +@import (reference) "~src/assets/openaire-theme/less/color.less"; + +.setType(@color) { + border-bottom: 4px solid fade(@color, 30%); + + & .type { + color: @color; + } +} + +.uk-card { + &.funder { + .setType(@funder-color); + } + + &.ri { + .setType(@ri-color); + } + + &.organization { + .setType(@organization-color); + } +} diff --git a/monitor-admin/manageStakeholders/manageStakeholders.component.ts b/monitor-admin/manageStakeholders/manageStakeholders.component.ts new file mode 100644 index 00000000..5e637b3e --- /dev/null +++ b/monitor-admin/manageStakeholders/manageStakeholders.component.ts @@ -0,0 +1,311 @@ +import {Component, OnDestroy, OnInit, ViewChild} from "@angular/core"; +import {StakeholderService} from "../../monitor/services/stakeholder.service"; +import {EnvProperties} from "../../utils/properties/env-properties"; +import {Stakeholder, StakeholderEntities, Visibility} from "../../monitor/entities/stakeholder"; +import {Subscriber, zip} from "rxjs"; +import {StakeholderUtils} from "../utils/indicator-utils"; +import {UntypedFormBuilder, UntypedFormGroup} from "@angular/forms"; +import {AlertModal} from "../../utils/modal/alert"; +import {Option} from "../../sharedComponents/input/input.component"; +import {Title} from "@angular/platform-browser"; +import {UserManagementService} from "../../services/user-management.service"; +import {Session} from "../../login/utils/helper.class"; +import {EditStakeholderComponent} from "../general/edit-stakeholder/edit-stakeholder.component"; +import {properties} from "src/environments/environment"; +import {ActivatedRoute} from "@angular/router"; +import {CacheIndicatorsService} from "../utils/cache-indicators/cache-indicators.service"; +import {NotificationHandler} from "../../utils/notification-handler"; + +type Tab = 'all' | 'templates'| 'profiles'; + +declare var UIkit; + +@Component({ + selector: 'home', + templateUrl: "./manageStakeholders.component.html", + styleUrls: ["./manageStakeholders.component.less"] +}) +export class ManageStakeholdersComponent implements OnInit, OnDestroy { + + public properties: EnvProperties; + public loading: boolean = true; + public deleteLoading: boolean = false; + public stakeholderUtils: StakeholderUtils = new StakeholderUtils(); + public defaultStakeholders: Stakeholder[]; + public stakeholders: Stakeholder[]; + public alias: string[]; + public stakeholder: Stakeholder; + public index: number; + public user = null; + public tab: Tab = 'all'; + /** + * Filtered Stakeholders + */ + public displayDefaultStakeholders: Stakeholder[]; + public displayStakeholders: Stakeholder[]; + /** + * Top filters + */ + public filters: UntypedFormGroup; + public all: Option = { + value: 'all', + label: 'All' + }; + + public callback: Function; + + /** + * Grid or List View + */ + private subscriptions: any[] = []; + @ViewChild('editStakeholderModal', { static: true }) editStakeholderModal: AlertModal; + @ViewChild('deleteStakeholderModal', { static: true }) deleteStakeholderModal: AlertModal; + @ViewChild('editStakeholderComponent', { static: true }) editStakeholderComponent: EditStakeholderComponent; + + constructor(private stakeholderService: StakeholderService, + private cacheIndicatorsService: CacheIndicatorsService, + private userManagementService: UserManagementService, + private route: ActivatedRoute, + private title: Title, + private fb: UntypedFormBuilder) { + } + + ngOnInit(): void { + this.buildFilters(); + this.properties = properties; + this.title.setTitle('Manage profiles'); + this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => { + this.user = user; + })); + let data = zip( + this.stakeholderService.getDefaultStakeholders(this.properties.monitorServiceAPIURL), + this.stakeholderService.getMyStakeholders(this.properties.monitorServiceAPIURL), + this.stakeholderService.getAlias(this.properties.monitorServiceAPIURL) + ); + this.subscriptions.push(data.subscribe(res => { + this.defaultStakeholders = res[0]; + this.stakeholders = res[1]; + this.displayDefaultStakeholders = res[0]; + this.displayStakeholders = res[1]; + this.alias = res[2]; + this.loading = false; + }, error => { + this.loading = false; + })); + } + + ngOnDestroy(): void { + this.subscriptions.forEach(value => { + if (value instanceof Subscriber) { + value.unsubscribe(); + } else if (value instanceof Function) { + value(); + } + }); + } + + hide(element: any) { + UIkit.dropdown(element).hide(); + } + + + private buildFilters() { + this.filters = this.fb.group({ + status: this.fb.control('all'), + keyword: this.fb.control('') + }); + this.subscriptions.push(this.filters.get('status').valueChanges.subscribe(value => { + this.onStatusChange(value); + })); + this.subscriptions.push(this.filters.get('keyword').valueChanges.subscribe(value => { + this.onKeywordChange(value); + })); + } + + onStatusChange(value) { + this.displayDefaultStakeholders = this.filterStatus(this.defaultStakeholders, value); + this.displayStakeholders = this.filterStatus(this.stakeholders, value); + } + + onKeywordChange(value) { + this.displayDefaultStakeholders = this.filterByKeyword(this.defaultStakeholders, value); + this.displayStakeholders = this.filterByKeyword(this.stakeholders, value); + } + + private filterStatus(stakeholders: Stakeholder[], value): Stakeholder[] { + if (value === 'all') { + return stakeholders; + } else { + return stakeholders.filter(stakeholder => stakeholder.visibility == value); + } + } + + private filterByKeyword(stakeholders: Stakeholder[], value): Stakeholder[] { + if (!value) { + return stakeholders; + } else { + return stakeholders.filter(stakeholder => + stakeholder.name && stakeholder.name.toLowerCase().includes(value.toLowerCase()) || + stakeholder.type && stakeholder.type.toLowerCase().includes(value.toLowerCase()) || + stakeholder.index_id && stakeholder.index_id.toLowerCase().includes(value.toLowerCase()) || + stakeholder.index_shortName && stakeholder.index_shortName.toLowerCase().includes(value.toLowerCase()) || + stakeholder.index_name && stakeholder.index_name.toLowerCase().includes(value.toLowerCase()) + ); + } + } + + public editStakeholder(stakeholder: Stakeholder = null, isDefault: boolean = false) { + if (isDefault) { + this.index = (stakeholder) ? this.defaultStakeholders.findIndex(value => value._id === stakeholder._id) : -1; + } else { + this.index = (stakeholder) ? this.stakeholders.findIndex(value => value._id === stakeholder._id) : -1; + } + if (!stakeholder) { + this.stakeholder = new Stakeholder(null, null, null, + null, null, null, null, null); + } else { + this.stakeholder = stakeholder; + } + this.editStakeholderComponent.init(this.stakeholder, this.alias, this.defaultStakeholders, isDefault, this.index === -1); + if (this.index !== -1) { + this.callback = (stakeholder: Stakeholder) => { + let index: number; + if (stakeholder.defaultId == null) { + index = this.alias.findIndex(value => value == this.defaultStakeholders[this.index].alias); + this.defaultStakeholders[this.index] = stakeholder; + } else { + index = this.alias.findIndex(value => value == this.stakeholders[this.index].alias); + this.stakeholders[this.index] = stakeholder; + } + if(index != -1) { + this.alias[index] = stakeholder.alias; + } + this.editStakeholderModal.cancel(); + }; + this.editStakeholderModal.alertTitle = 'Edit ' + this.stakeholder.name; + this.editStakeholderModal.okButtonText = 'Save Changes'; + } else { + this.callback = (stakeholder: Stakeholder) => { + if (stakeholder.defaultId === null) { + this.defaultStakeholders.push(stakeholder); + } else { + this.stakeholders.push(stakeholder); + } + this.alias.push(stakeholder.alias); + this.editStakeholderModal.cancel(); + }; + this.editStakeholderModal.alertTitle = 'Create a new ' + (isDefault?'Default ':'') + 'Profile'; + this.editStakeholderModal.okButtonText = 'Create'; + } + this.editStakeholderModal.cancelButtonText = 'Cancel'; + this.editStakeholderModal.okButtonLeft = false; + this.editStakeholderModal.alertMessage = false; + this.editStakeholderModal.stayOpen = true; + this.editStakeholderModal.open(); + } + + public createReport(stakeholder: Stakeholder) { + this.cacheIndicatorsService.createReport(stakeholder.alias).subscribe(report => { + NotificationHandler.rise('A caching process for ' + stakeholder.name + ' has been started.' ) + }, error => { + console.log(error); + NotificationHandler.rise(error.message(), 'danger'); + }); + } + + public deleteStakeholderOpen(stakeholder: Stakeholder) { + this.stakeholder = stakeholder; + this.deleteStakeholderModal.alertTitle = 'Delete ' + this.stakeholder.index_name; + this.deleteStakeholderModal.cancelButtonText = 'No'; + this.deleteStakeholderModal.okButtonText = 'Yes'; + this.deleteStakeholderModal.alertMessage = false; + this.deleteStakeholderModal.stayOpen = true; + this.deleteStakeholderModal.open(); + } + + public deleteStakeholder() { + this.deleteLoading = true; + if (!this.stakeholder.defaultId) { + this.index = (this.stakeholder) ? this.defaultStakeholders.findIndex(value => value._id === this.stakeholder._id) : -1; + } else { + this.index = (this.stakeholder) ? this.stakeholders.findIndex(value => value._id === this.stakeholder._id) : -1; + } + this.subscriptions.push(this.stakeholderService.deleteElement(this.properties.monitorServiceAPIURL, [this.stakeholder._id]).subscribe(() => { + UIkit.notification(this.stakeholder.name+ ' has been successfully deleted', { + status: 'success', + timeout: 6000, + pos: 'bottom-right' + }); + if (!this.stakeholder.defaultId) { + this.defaultStakeholders.splice(this.index, 1); + } else { + this.stakeholders.splice(this.index, 1); + } + this.alias = this.alias.filter(item => item !== this.stakeholder.alias); + this.deleteLoading = false; + this.deleteStakeholderModal.cancel(); + }, error => { + UIkit.notification('An error has occurred. Please try again later', { + status: 'danger', + timeout: 6000, + pos: 'bottom-right' + }); + this.deleteLoading = false; + this.deleteStakeholderModal.cancel(); + })); + } + + changeStakeholderStatus(stakeholder: Stakeholder, visibility: Visibility) { + let path = [ + stakeholder._id + ]; + this.subscriptions.push(this.stakeholderService.changeVisibility(this.properties.monitorServiceAPIURL, path, visibility).subscribe(returnedElement => { + stakeholder.visibility = returnedElement.visibility; + UIkit.notification(stakeholder.name+ '\'s status has been successfully changed to ' + stakeholder.visibility.toLowerCase(), { + status: 'success', + timeout: 6000, + pos: 'bottom-right' + }); + }, error => { + UIkit.notification('An error has occurred. Please try again later', { + status: 'danger', + timeout: 6000, + pos: 'bottom-right' + }); + })); + } + + public isManager(): boolean { + return this.isCurator() || (Session.isKindOfMonitorManager(this.user)); + } + + public isProfileManager(stakeholder: Stakeholder): boolean { + return this.isCurator() || (Session.isManager(stakeholder.type, stakeholder.alias, this.user)); + } + + public isCurator(): boolean { + return this.isAdmin() || Session.isMonitorCurator(this.user); + } + + public isAdmin(): boolean { + return Session.isPortalAdministrator(this.user); + } + + get typesAsString() { + return this.stakeholderUtils.types.slice(0, this.stakeholderUtils.types.length - 1).map(type => type.label).join(', ') + + ' or ' + this.stakeholderUtils.types[this.stakeholderUtils.types.length - 1].label + } + + private isTab(tab: Tab): boolean { + switch (tab) { + case "all": + return true; + case "profiles": + return true; + case "templates": + return true; + default: + return false; + } + } +} diff --git a/monitor-admin/manageStakeholders/manageStakeholders.module.ts b/monitor-admin/manageStakeholders/manageStakeholders.module.ts new file mode 100644 index 00000000..41847068 --- /dev/null +++ b/monitor-admin/manageStakeholders/manageStakeholders.module.ts @@ -0,0 +1,50 @@ +import {NgModule} from "@angular/core"; +import {ManageStakeholdersComponent} from "./manageStakeholders.component"; +import {ManageStakeholdersRoutingModule} from "./manageStakeholders-routing.module"; +import {PreviousRouteRecorder} from "../../utils/piwik/previousRouteRecorder.guard"; +import {CommonModule} from "@angular/common"; +import {RouterModule} from "@angular/router"; +import {InputModule} from "../../sharedComponents/input/input.module"; +import {LoadingModule} from "../../utils/loading/loading.module"; +import {AlertModalModule} from "../../utils/modal/alertModal.module"; +import {ReactiveFormsModule} from "@angular/forms"; +import {IconsModule} from "../../utils/icons/icons.module"; +import {IconsService} from "../../utils/icons/icons.service"; +import {earth, incognito, restricted} from "../../utils/icons/icons"; +import {PageContentModule} from "../../dashboard/sharedComponents/page-content/page-content.module"; +import {LogoUrlPipeModule} from "../../utils/pipes/logoUrlPipe.module"; +import {SearchInputModule} from "../../sharedComponents/search-input/search-input.module"; +import { + SidebarMobileToggleModule +} from "../../dashboard/sharedComponents/sidebar/sidebar-mobile-toggle/sidebar-mobile-toggle.module"; +import {SliderTabsModule} from "../../sharedComponents/tabs/slider-tabs.module"; +import {EditStakeholderModule} from "../general/edit-stakeholder/edit-stakeholder.module"; + +@NgModule({ + declarations: [ManageStakeholdersComponent], + imports: [ + ManageStakeholdersRoutingModule, + CommonModule, + RouterModule, + InputModule, + LoadingModule, + AlertModalModule, + ReactiveFormsModule, + EditStakeholderModule, + IconsModule, + PageContentModule, + LogoUrlPipeModule, + SearchInputModule, + SidebarMobileToggleModule, + SliderTabsModule + ], + providers: [ + PreviousRouteRecorder, + ], + exports: [ManageStakeholdersComponent] +}) +export class ManageStakeholdersModule { + constructor(private iconsService: IconsService) { + this.iconsService.registerIcons([earth, incognito, restricted]); + } +} diff --git a/monitor/entities/stakeholder.ts b/monitor/entities/stakeholder.ts index d4e36d76..460144d4 100644 --- a/monitor/entities/stakeholder.ts +++ b/monitor/entities/stakeholder.ts @@ -315,6 +315,6 @@ export enum StakeholderEntities { export let stakeholderTypes: Option[] = [ {value: 'funder', label: StakeholderEntities.FUNDER}, {value: 'ri', label: StakeholderEntities.RI}, - {value: 'project', label: StakeholderEntities.PROJECT}, - {value: 'organization', label: StakeholderEntities.ORGANIZATION} + {value: 'organization', label: StakeholderEntities.ORGANIZATION}, + {value: 'project', label: StakeholderEntities.PROJECT} ]; diff --git a/utils/properties/env-properties.ts b/utils/properties/env-properties.ts index 65931eaa..9f6b6db8 100644 --- a/utils/properties/env-properties.ts +++ b/utils/properties/env-properties.ts @@ -1,3 +1,4 @@ + export type Environment = "development" | "test" | "beta" | "production"; export type Dashboard = "explore" | "connect" | "monitor" | "aggregator" | "eosc" | "developers" | "faircore4eosc"; export type PortalType = "explore" | "connect" | "community" | "monitor" | "funder" | "ri" | "project" | "organization" | "aggregator" | "eosc" | "faircore4eosc"; @@ -14,16 +15,15 @@ export interface EnvProperties { showAddThis?: boolean; showContent?: boolean; enableEoscDataTransfer?:boolean; - framesAPIURL?: string; - statisticsFrameAPIURL?: string; + statisticsFrameAPIURL?: string; //delete? statisticsFrameNewAPIURL?: string; bipFrameAPIURL?: string; - useNewStatistisTool?: boolean; + useNewStatistisTool?: boolean; //delete? useOldStatisticsSchema?: boolean; monitorStatsFrameUrl?:string; disableFrameLoad?:boolean statisticsAPIURL?: string; - impactFactorsAPIURL?: string; + impactFactorsAPIURL?: string; //??? enermapsURL?: string; claimsAPIURL?: string; searchAPIURLLAst?: string; @@ -51,11 +51,6 @@ export interface EnvProperties { sherpaURLSuffix?: string; zenodo?: string; zenodoCommunities?: string; - openAccess?: string; - openAccessRepo?: string; - fp7Guidlines?: string; - h2020Guidlines?: string; - ercGuidlines?: string; helpdesk?: string; helpdeskEmail?: string; utilsService?: string; @@ -66,6 +61,7 @@ export interface EnvProperties { registryUrl?: string; logoutUrl?: string; userInfoUrl?: string; + clientManagementUrl?: string, developersApiUrl?: string, cookieDomain?: string; feedbackmail?: string; @@ -135,10 +131,10 @@ export interface EnvProperties { reCaptchaSiteKey?: string; // contact us recipients admins?: string[]; - lastIndexUpdate?: string; + lastIndexUpdate?: string; //delete? indexInfoAPI?: string; altMetricsAPIURL?: string; - b2noteAPIURL?: string; + b2noteAPIURL?: string; //delete? adminPortalURL?: string; sushiliteURL?: string; notificationsAPIURL?: string; @@ -151,3 +147,29 @@ export interface EnvProperties { eoscDataTransferDestinations?; hasMachineCache?: boolean; } + +export function checkPropertyValues(properties:EnvProperties){ + let keys = Object.keys(properties); + let Warn = 0; + // console.debug( "Environment: " +properties.environment ) + for(let attribute of keys){ + + // console.debug(attribute + ": " +properties[attribute] + " " ) + if (properties.environment == "production" && typeof properties[attribute] == 'string' && (properties[attribute].indexOf("beta.") != -1 || properties[attribute].indexOf("uoa.di.gr") != -1)) { + console.warn("shouldn't be prod? " + attribute + ": " + properties[attribute]); + Warn++; + } + if (properties.environment != "production" && typeof properties[attribute] == 'string' && properties[attribute].indexOf("https://services.") != -1) { + console.warn("should be prod? " + attribute + ": " + properties[attribute]); + Warn++; + } + if (properties.environment != "development" && typeof properties[attribute] == 'string' && properties[attribute].indexOf("uoa.di.gr") != -1) { + console.warn("should be in dev? " + attribute + ": " + properties[attribute]); + Warn++; + } + + } + /*if(Warn > 0){ + alert("check properties: " + Warn) + }*/ +} diff --git a/utils/properties/environments/environment.ts b/utils/properties/environments/environment.ts index 6faf2d7f..07f2264a 100644 --- a/utils/properties/environments/environment.ts +++ b/utils/properties/environments/environment.ts @@ -1,45 +1,274 @@ import {EnvProperties} from "../env-properties"; export let common: EnvProperties = { + + bipFrameAPIURL: "https://bip.imsi.athenarc.gr/api/impact-chart?id=", + useNewStatistisTool: true, + openCitationsAPIURL: "https://services.openaire.eu/opencitations/getCitations?id=", + searchCrossrefAPIURL: "https://api.crossref.org/works", + searchDataciteAPIURL: "https://api.datacite.org/works", + searchOrcidURL: "https://pub.orcid.org/v2.1/", + orcidURL: "https://orcid.org/", + orcidAPIURL: "https://services.openaire.eu/uoa-orcid-service/", + orcidTokenURL : "https://orcid.org/oauth/authorize?", + orcidClientId: "APP-IN0O56SBVVTB7NN4", + doiURL: "https://doi.org/", + pmcURL: "http://europepmc.org/articles/", + pmidURL: "https://www.ncbi.nlm.nih.gov/pubmed/", + handleURL: "http://hdl.handle.net/", + cordisURL: "http://cordis.europa.eu/projects/", + openDoarURL: "http://v2.sherpa.ac.uk/id/repository/", + r3DataURL: "http://service.re3data.org/repository/", swhURL: "https://archive.softwareheritage.org/", - // searchCrossrefAPIURL: "https://api.crossref.org/works", - // searchDataciteAPIURL: "https://api.datacite.org/works", - // searchOrcidURL: "https://pub.orcid.org/v2.1/", - // orcidURL: "https://orcid.org/", - // doiURL: "https://doi.org/", - // pmcURL: "http://europepmc.org/articles/", - // pmidURL: "https://www.ncbi.nlm.nih.gov/pubmed/", - // handleURL: "http://hdl.handle.net/", - // cordisURL: "http://cordis.europa.eu/projects/", - // openDoarURL: "http://v2.sherpa.ac.uk/id/repository/", - // r3DataURL: "http://service.re3data.org/repository/", - // fairSharingURL: "https://fairsharing.org/", - // sherpaURL: "http://sherpa.ac.uk/romeo/issn/", - // sherpaURLSuffix: "/", - // zenodo: "https://zenodo.org/", - // openAccess: "https://www.openaire.eu/support/faq#article-id-234", - // openAccessRepo: "https://www.openaire.eu/support/faq#article-id-310", - // fp7Guidlines: "https://www.openaire.eu/open-access-in-fp7-seventh-research-framework-programme", - // h2020Guidlines: "https://www.openaire.eu/oa-publications/h2020/open-access-in-horizon-2020", - // ercGuidlines: "http://erc.europa.eu/sites/default/files/document/file/ERC_Open_Access_Guidelines-revised_2014.pdf", + fairSharingURL: "https://fairsharing.org/", + eoscMarketplaceURL: "https://marketplace.eosc-portal.eu/services/", + sherpaURL: "http://sherpa.ac.uk/romeo/issn/", + sherpaURLSuffix: "/", + zenodo: "https://zenodo.org/", + helpdesk: "https://www.openaire.eu/support/helpdesk", + helpdeskEmail: "helpdesk@openaire.eu", + piwikBaseUrl: "https://analytics.openaire.eu/piwik.php?idsite=", + cookieDomain: ".openaire.eu", + feedbackmail: "feedback@openaire.eu", + csvLimit: 2000, + pagingLimit: 20, + resultsPerPage: 10, + baseLink : "", + searchLinkToResult: "/search/result?id=", + searchLinkToPublication: "/search/publication?articleId=", + searchLinkToProject: "/search/project?projectId=", + searchLinkToDataProvider: "/search/dataprovider?datasourceId=", + searchLinkToDataset: "/search/dataset?datasetId=", + searchLinkToSoftwareLanding: "/search/software?softwareId=", + searchLinkToOrp: "/search/other?orpId=", + searchLinkToOrganization: "/search/organization?organizationId=", + searchLinkToAll: "/search/find/", + searchLinkToPublications: "/search/find/publications", + searchLinkToDataProviders: "/search/find/dataproviders", + searchLinkToProjects: "/search/find/projects", + searchLinkToDatasets: "/search/find/datasets", + searchLinkToSoftware: "/search/find/software", + searchLinkToOrps: "/search/find/other", + searchLinkToOrganizations: "/search/find/organizations", + searchLinkToCompatibleDataProviders: "/search/content-providers", + searchLinkToEntityRegistriesDataProviders: "/search/entity-registries", + searchLinkToJournals: "/search/journals", + searchLinkToResults: "/search/find/research-outcomes", + searchLinkToAdvancedPublications: "/search/advanced/publications", + searchLinkToAdvancedProjects: "/search/advanced/projects", + searchLinkToAdvancedDatasets: "/search/advanced/datasets", + searchLinkToAdvancedSoftware: "/search/advanced/software", + searchLinkToAdvancedOrps: "/search/advanced/other", + searchLinkToAdvancedDataProviders: "/search/advanced/dataproviders", + searchLinkToAdvancedOrganizations: "/search/advanced/organizations", + searchLinkToAdvancedResults: "/search/advanced/research-outcomes", + errorLink: '/error', + showLastIndexInformationLink: true, + lastIndexUpdate: "2020-06-15", + depositLearnHowPage: "/participate/deposit/learn-how", + depositSearchPage: "/participate/deposit/search", + altMetricsAPIURL: "https://api.altmetric.com/v1/doi/", + reCaptchaSiteKey: "6LezhVIUAAAAAOb4nHDd87sckLhMXFDcHuKyS76P", + admins: ['feedback@openaire.eu'], + b2noteAPIURL: 'https://b2note.eudat.eu/', + myOrcidLinksPage: "/my-orcid-links", + footerGrantText: "OpenAIRE has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541 and 101017452", + + //connect + enermapsURL:"https://lab.idiap.ch/enermaps", + zenodoCommunities: 'https://zenodo.org/api/communities/', + shareInZenodoPage: '/participate/deposit/zenodo', + afterLoginRedirectLink: '/myCommunities', + searchLinkToCommunities: '/search/find/communities', + + + } export let commonDev: EnvProperties = { - // searchAPIURLLAst: "http://beta.services.openaire.eu/search/v2/api/", - // searchResourcesAPIURL: "https://beta.services.openaire.eu/search/v2/api/resources", + environment: "development", + statisticsAPIURL: "http://vatopedi.di.uoa.gr:8080/stats/", + statisticsFrameAPIURL: "https://beta.openaire.eu/stats/", + statisticsFrameNewAPIURL: "https://stats.madgik.di.uoa.gr/stats-api/", + claimsAPIURL: "http://scoobydoo.di.uoa.gr:8880/dnet-claims-service-2.0.0-SNAPSHOT/rest/claimsService/", + searchAPIURLLAst: "http://beta.services.openaire.eu/search/v2/api/", + searchResourcesAPIURL: "https://beta.services.openaire.eu/search/v2/api/resources", + + openCitationsAPIURL: "https://services.openaire.eu/opencitations/getCitations?id=", + csvAPIURL: "https://beta.services.openaire.eu/search/v2/api/reports", + orcidAPIURL: "http://duffy.di.uoa.gr:19480/uoa-orcid-service/", + orcidTokenURL : "https://sandbox.orcid.org/oauth/authorize?", + orcidClientId: "APP-A5M3KTX6NCN67L91", + utilsService: "http://dl170.madgik.di.uoa.gr:8000", + vocabulariesAPI: "https://dev-openaire.d4science.org/provision/mvc/vocabularies/", + loginUrl: "http://mpagasas.di.uoa.gr:19080/login-service/openid_connect_login", + userInfoUrl: "http://mpagasas.di.uoa.gr:19080/login-service/userInfo", + logoutUrl: "http://mpagasas.di.uoa.gr:19080/login-service/openid_logout", + cookieDomain: ".di.uoa.gr", + feedbackmail: "kostis30fylloy@gmail.com", + cacheUrl: "http://dl170.madgik.di.uoa.gr:3000/get?url=", + monitorServiceAPIURL: "http://duffy.di.uoa.gr:19380/uoa-monitor-service", + adminToolsAPIURL: "http://duffy.di.uoa.gr:19280/uoa-admin-tools/", + datasourcesAPI: "https://beta.services.openaire.eu/openaire/ds/api/", + contextsAPI: "https://dev-openaire.d4science.org/openaire/context", + communityAPI: "https://dev-openaire.d4science.org/openaire/community/", + lastIndexInformationLink: "https://www.openaire.eu/aggregation-and-content-provision-workflows", + widgetLink: "https://beta.openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId=", + claimsInformationLink: "https://www.openaire.eu/linking-beta", + indexInfoAPI: "https://beta.services.openaire.eu/openaire/info/", + admins: ['kostis30fylloy@gmail.com', 'alexandros.martzios@athenarc.gr', 'kgalouni@di.uoa.gr'], + adminPortalURL: "https://beta.admin.connect.openaire.eu", + //connect + communitiesAPI: 'https://dev-openaire.d4science.org/openaire/community/communities', + registryUrl: 'http://mpagasas.di.uoa.gr:8080/dnet-openaire-users-1.0.0-SNAPSHOT/api/registry/', + + //admin + miningBackendURL: 'https://beta.services.openaire.eu/interactive-mining', + feedbackmailForMissingEntities: 'feedback@openaire.eu', + connectPortalUrl: 'http://scoobydoo.di.uoa.gr:4200', } export let commonTest: EnvProperties = { - // searchAPIURLLAst: "https://services.openaire.eu/shadowSearch/v2/api/", - // searchResourcesAPIURL: "https://services.openaire.eu/shadowSearch/v2/api/resources", + environment: "test", + statisticsAPIURL: "https://beta.services.openaire.eu/stats-api/", + statisticsFrameAPIURL: "https://www.openaire.eu/stats/", + statisticsFrameNewAPIURL: "https://services.openaire.eu/stats-tool/", + claimsAPIURL: "https://services.openaire.eu/claims-new/rest/claimsService/", + searchAPIURLLAst: "https://services.openaire.eu/shadowSearch/v2/api/", + searchResourcesAPIURL: "https://services.openaire.eu/shadowSearch/v2/api/resources", + csvAPIURL: "https://services.openaire.eu/search/v2/api/reports", + utilsService: "https://explore.openaire.eu/utils-service", + vocabulariesAPI: "https://services.openaire.eu/provision/mvc/vocabularies/", + loginUrl: " https://services.openaire.eu/login-service/openid_connect_login", + userInfoUrl: " https://services.openaire.eu/login-service/userInfo", + logoutUrl: "https://services.openaire.eu/login-service/openid_logout", + cacheUrl: "https://explore.openaire.eu/cache/get?url=", + datasourcesAPI: "https://services.openaire.eu/openaire/ds/api/", + monitorServiceAPIURL: "https://services.openaire.eu/uoa-monitor-service", + adminToolsAPIURL: "https://services.openaire.eu/uoa-admin-tools/", + contextsAPI: "https://services.openaire.eu/openaire/context", + communityAPI: "https://services.openaire.eu/openaire/community/", + lastIndexInformationLink: "https://www.openaire.eu/aggregation-and-content-provision-workflows", + widgetLink: "https://www.openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId=", + claimsInformationLink: "https://www.openaire.eu/linking", + indexInfoAPI: "https://services.openaire.eu/openaire/info/", + adminPortalURL: "https://admin.connect.openaire.eu", + baseOpenaireLink: 'https://explore.openaire.eu', + + + } export let commonBeta: EnvProperties = { - // searchAPIURLLAst: "http://beta.services.openaire.eu/search/v2/api/", - // searchResourcesAPIURL: "https://beta.services.openaire.eu/search/v2/api/resources", + environment: "beta", + statisticsAPIURL: "https://beta.services.openaire.eu/stats-api/", + statisticsFrameAPIURL: "https://beta.openaire.eu/stats/", + statisticsFrameNewAPIURL: "https://beta.services.openaire.eu/stats-tool/", + claimsAPIURL: "https://beta.services.openaire.eu/claims-new/rest/claimsService/", + searchAPIURLLAst: "https://beta.services.openaire.eu/search/v2/api/", + searchResourcesAPIURL: "https://beta.services.openaire.eu/search/v2/api/resources", + csvAPIURL: "https://beta.services.openaire.eu/search/v2/api/reports", + utilsService: "https://demo.openaire.eu/utils-service", + vocabulariesAPI: "https://beta.services.openaire.eu/provision/mvc/vocabularies/", + loginUrl: "https://beta.services.openaire.eu/login-service/openid_connect_login", + userInfoUrl: "https://beta.services.openaire.eu/login-service/userInfo", + logoutUrl: "https://beta.services.openaire.eu/login-service/openid_logout", + cacheUrl: "https://demo.openaire.eu/cache/get?url=", + datasourcesAPI: "https://beta.services.openaire.eu/openaire/ds/api/", + monitorServiceAPIURL: "https://beta.services.openaire.eu/uoa-monitor-service", + adminToolsAPIURL: "https://beta.services.openaire.eu/uoa-admin-tools/", + contextsAPI: "https://beta.services.openaire.eu/openaire/context", + communityAPI: "https://beta.services.openaire.eu/openaire/community/", + lastIndexInformationLink: "https://beta.openaire.eu/aggregation-and-content-provision-workflows", + widgetLink: "https://beta.openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId=", + claimsInformationLink: "https://beta.openaire.eu/linking", + indexInfoAPI: "https://beta.services.openaire.eu/openaire/info/", + adminPortalURL: "https://beta.admin.connect.openaire.eu", + baseOpenaireLink: 'https://beta.explore.openaire.eu', + + //connect + communitiesAPI: "https://beta.services.openaire.eu/openaire/community/communities", + registryUrl: 'https://beta.services.openaire.eu/uoa-user-management/api/registry/', + //admin + miningBackendURL: 'https://beta.services.openaire.eu/interactive-mining', + feedbackmailForMissingEntities: 'feedback@openaire.eu', + deleteCacheUrl: 'https://demo.openaire.eu/cache/clear', + deleteBrowserCacheUrl: 'https://beta.services.openaire.eu/uoa-admin-tools/cache', + connectPortalUrl: 'https://beta.connect.openaire.eu', + } export let commonProd: EnvProperties = { - // searchAPIURLLAst: "https://services.openaire.eu/search/v2/api/", - // searchResourcesAPIURL: "https://services.openaire.eu/search/v2/api/resources", -} \ No newline at end of file + environment: "production", + statisticsAPIURL: "https://beta.services.openaire.eu/stats-api/", + statisticsFrameAPIURL: "https://www.openaire.eu/stats/", + statisticsFrameNewAPIURL: "https://services.openaire.eu/stats-tool/", + claimsAPIURL: "https://services.openaire.eu/claims-new/rest/claimsService/", + searchAPIURLLAst: "https://services.openaire.eu/search/v2/api/", + searchResourcesAPIURL: "https://services.openaire.eu/search/v2/api/resources", + csvAPIURL: "https://services.openaire.eu/search/v2/api/reports", + utilsService: "https://explore.openaire.eu/utils-service", + vocabulariesAPI: "https://services.openaire.eu/provision/mvc/vocabularies/", + loginUrl: " https://services.openaire.eu/login-service/openid_connect_login", + userInfoUrl: " https://services.openaire.eu/login-service/userInfo", + logoutUrl: "https://services.openaire.eu/login-service/openid_logout", + cacheUrl: "https://explore.openaire.eu/cache/get?url=", + datasourcesAPI: "https://services.openaire.eu/openaire/ds/api/", + monitorServiceAPIURL: "https://services.openaire.eu/uoa-monitor-service", + adminToolsAPIURL: "https://services.openaire.eu/uoa-admin-tools/", + contextsAPI: "https://services.openaire.eu/openaire/context", + communityAPI: "https://services.openaire.eu/openaire/community/", + lastIndexInformationLink: "https://www.openaire.eu/aggregation-and-content-provision-workflows", + widgetLink: "https://www.openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId=", + claimsInformationLink: "https://www.openaire.eu/linking", + indexInfoAPI: "https://services.openaire.eu/openaire/info/", + adminPortalURL: "https://admin.connect.openaire.eu", + baseOpenaireLink: 'https://explore.openaire.eu', + + //connect + communitiesAPI: "https://services.openaire.eu/openaire/community/communities", + + //admin + registryUrl: 'https://services.openaire.eu/uoa-user-management/api/registry/', + miningBackendURL: 'https://beta.services.openaire.eu/interactive-mining', + feedbackmailForMissingEntities: 'feedback@openaire.eu', + deleteCacheUrl: 'https://explore.openaire.eu/cache/clear', + deleteBrowserCacheUrl: 'https://services.openaire.eu/uoa-admin-tools/cache', + connectPortalUrl: 'https://connect.openaire.eu', +} + + +/* +* + +Properties to check + +* not in explore + +* isDashboard +showContent + +enableEoscDataTransfer + + +developersApiUrl?: string, + +useHelpTexts?:boolean; + + + searchLinkToStakeholders?: string; + +searchLinkToAdvancedServices?: string; + + +sushiliteURL?: string; + +notificationsAPIURL?: string; + + +egiNotebookLink?: string; + +eoscDataTransferAPI?; + eoscDataTransferLoginUrl?; + eoscDataTransferDestinations?; +* */