[Explore & Library | new-theme]: Dataprovider landing page redesign.
1. environments/: Added "fairSharingURL" and "eoscMarketplaceURL". 2. env-properties.ts: Added properties: fairSharingURL?: string, eoscMarketplaceURL?: string 3. searchFields.ts: In OpenaireEntities added type names also in singular. 4. statisticsTab.component.ts: Use type names from OpenaireEntities. 5. relatedDatasourcesTab.component.ts: Updated paging and align of columns according to mocks | Use type names from OpenaireEntities. 6. dataProvider.module.ts: Added iconsService.registerIcons([graph]). 7. dataProviderInfo.ts: a. "description" type changed from string to string[] b. #7718: Added field provenance: Map<string, {"url": string[]}>; c. export class DataproviderProvenance with "provenance" field with info foreach provenance type. 8. dataProvider.service.ts: Updated parsing for description and originalId (provenanve) (#7718). 9. dataProvider.component: Redesign of datasource landing page.
This commit is contained in:
parent
d054922efa
commit
9e413e7a2b
|
@ -1,23 +1,83 @@
|
|||
<div id="tm-main" class="landing uk-section uk-padding-remove-top tm-middle">
|
||||
<div *ngIf="!showFeedback" uk-grid>
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first ">
|
||||
<div class="landing uk-section uk-padding-remove tm-middle">
|
||||
<div class="tm-main">
|
||||
<div *ngIf="errorMessage.length > 0 || showLoading" class="landing-background-default-color">
|
||||
<div *ngIf="errorMessage.length > 0" class="uk-alert uk-alert-danger uk-margin-large-top"
|
||||
role="alert">{{errorMessage}}</div>
|
||||
<div *ngIf="showLoading" class="uk-position-center">
|
||||
<loading></loading>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="datasource" class="uk-container uk-container-large uk-margin-medium-top datasource">
|
||||
<div *ngIf="warningMessage.length > 0" class="uk-alert uk-alert-warning uk-margin-large-top"
|
||||
role="alert">{{warningMessage}}</div>
|
||||
<div *ngIf="errorMessage.length > 0" class="uk-alert uk-alert-danger uk-margin-large-top"
|
||||
role="alert">{{errorMessage}}</div>
|
||||
<div [style.display]="showLoading ? 'inline' : 'none'"
|
||||
class="uk-animation-fade uk-margin-large-top uk-width-1-1" role="alert"><span
|
||||
class="loading-gif uk-align-center"></span></div>
|
||||
<helper *ngIf="pageContents && pageContents['top'] && pageContents['top'].length > 0"
|
||||
[texts]="pageContents['top']"></helper>
|
||||
<div *ngIf="dataProviderInfo != null" class="uk-grid uk-margin-remove-left uk-margin-large-bottom">
|
||||
<div class="uk-width-2-3@m uk-width-1-1@s uk-margin-bottom uk-padding uk-padding-remove-left uk-padding-remove-vertical">
|
||||
<schema2jsonld *ngIf="dataProviderInfo" [data]=dataProviderInfo
|
||||
<div *ngIf="dataProviderInfo" class="dataprovider">
|
||||
<div *ngIf="!showFeedback" class="uk-grid">
|
||||
|
||||
<!-- left box - actions -->
|
||||
<div class="landing-left-sidebar-width landing-left-sidebar-border landing-background-light-color">
|
||||
<div class="uk-flex uk-flex-column uk-flex-between uk-flex-center landing-sidebar-height uk-sticky"
|
||||
uk-sticky="bottom: true" [attr.offset]="offset">
|
||||
<div class="uk-align-center uk-text-center uk-margin-medium-top uk-flex uk-flex-column uk-flex-between">
|
||||
<ng-container *ngIf="dataProviderInfo && hasMetrics">
|
||||
<metrics [pageViews]="pageViews"
|
||||
[id]="datasourceId" [entityType]="'datasources'" [entity]="'Datasource'"
|
||||
[viewsFrameUrl]="viewsFrameUrl" [downloadsFrameUrl]="downloadsFrameUrl"
|
||||
(metricsResults)="metricsResults($event)" [properties]=properties>
|
||||
</metrics>
|
||||
</ng-container>
|
||||
</div>
|
||||
<div class="uk-margin-large-bottom uk-align-center">
|
||||
<div class="uk-text-meta">Actions</div>
|
||||
<ul class="uk-list">
|
||||
<!-- Share -->
|
||||
<li class="uk-text-center">
|
||||
<a (click)="openAddThisModal()"
|
||||
[title]="'Share this '+openaireEntities.PROJECT+' in your social networks'"
|
||||
[attr.uk-tooltip]="'pos: right; cls: uk-active landing-action-tooltip landing-action-tooltip-portal uk-text-small uk-padding-small'">
|
||||
<span class="uk-icon-button uk-icon landing-action-button landing-action-button-portal">
|
||||
<icon name="share" visuallyHidden="share"></icon>
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- center box-->
|
||||
<div *ngIf="dataProviderInfo" class="uk-width-expand uk-padding-remove uk-margin-large-left uk-margin-large-right landing-background-default-color">
|
||||
<ng-template #graph_and_feedback_template>
|
||||
<div class="uk-flex uk-margin-small-top uk-margin-small-bottom">
|
||||
<!-- Last Index Info-->
|
||||
<div class="uk-width-2-3@m uk-width-1-2 graph">
|
||||
<icon name="graph" customClass="uk-text-primary"></icon>
|
||||
<span class="uk-margin-small-left uk-text-baseline uk-text-meta">
|
||||
Powered by <a href="https://graph.openaire.eu" target="_blank" class="uk-text-primary">OpenAIRE Research Graph</a>
|
||||
</span>
|
||||
<span *ngIf="indexUpdateDate" class="uk-text-baseline uk-text-meta">
|
||||
. Last update of records in OpenAIRE: {{indexUpdateDate | date: 'MMM dd, yyyy'}}
|
||||
</span>
|
||||
</div>
|
||||
<!--Feedback-->
|
||||
<div class="uk-width-expand uk-text-right">
|
||||
<span class="uk-text-meta uk-text-xsmall">Anything wrong?</span>
|
||||
<a (click)="showFeedback = true; scroll()" class="uk-text-xsmall"> Report an Issue</a>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<div #graph_and_feedback id="graph_and_feedback" class="uk-text-xsmall uk-visible@m"
|
||||
uk-sticky="bottom: true;" [attr.offset]="graph_offset">
|
||||
<ng-container *ngTemplateOutlet="graph_and_feedback_template"></ng-container>
|
||||
</div>
|
||||
|
||||
<div class="uk-margin-medium-top">
|
||||
<!-- schema.org-->
|
||||
<schema2jsonld [data]=dataProviderInfo
|
||||
[URL]="properties.domain+ properties.baseLink +properties.searchLinkToDataProvider +datasourceId"
|
||||
type="datasource"
|
||||
[otherURL]="(dataProviderInfo.openDoarId)?(properties.openDoarURL+dataProviderInfo.openDoarId):((dataProviderInfo.r3DataId)?properties.r3DataURL+dataProviderInfo.r3DataId:null)"></schema2jsonld>
|
||||
<helper *ngIf="pageContents && pageContents['top'] && pageContents['top'].length > 0"
|
||||
[texts]="pageContents['top']"></helper>
|
||||
|
||||
<landing-header [properties]="properties" [title]="dataProviderInfo.title.name"
|
||||
[subTitle]="(dataProviderInfo.officialName
|
||||
&& dataProviderInfo.title.name !== dataProviderInfo.officialName)?dataProviderInfo.officialName:null"
|
||||
|
@ -25,379 +85,334 @@
|
|||
</landing-header>
|
||||
|
||||
<!-- Web Page -->
|
||||
<div class="uk-margin-top uk-margin-bottom">
|
||||
<div *ngIf="dataProviderInfo.title && dataProviderInfo.title.url">
|
||||
<span class="uk-text-muted">Web page: </span>
|
||||
<a [href]="dataProviderInfo.title.url" target="_blank">
|
||||
<span>{{dataProviderInfo.title.url}}</span>
|
||||
<span class="custom-external custom-icon space"></span>
|
||||
</a>
|
||||
</div>
|
||||
<!-- Labels -->
|
||||
<div class="uk-margin-small-top">
|
||||
<span *ngIf="dataProviderInfo.compatibility" class="uk-label custom-label label-compatibility uk-text-truncate"
|
||||
title="Compatibility">
|
||||
<a *ngIf="!dataProviderInfo.compatibility.name && dataProviderInfo.compatibility.id"
|
||||
<div *ngIf="dataProviderInfo.title && dataProviderInfo.title.url"
|
||||
class="uk-margin-bottom uk-text-small">
|
||||
<span class="uk-text-meta">Web page: </span>
|
||||
<a [href]="dataProviderInfo.title.url" target="_blank"
|
||||
class="uk-button uk-button-text uk-text-lowercase uk-text-normal custom-external">
|
||||
{{dataProviderInfo.title.url}}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Labels -->
|
||||
<div class="uk-margin-bottom">
|
||||
<ng-container *ngIf="dataProviderInfo.compatibility">
|
||||
<span class="uk-label uk-text-truncate" title="Compatibility">
|
||||
<a *ngIf="dataProviderInfo.compatibility.id"
|
||||
[queryParams]="{datasourceId: dataProviderInfo.compatibility.id}" routerLinkActive="router-link-active"
|
||||
[routerLink]="properties.searchLinkToDataProvider.split('?')[0]">
|
||||
{{dataProviderInfo.compatibility.info}}
|
||||
<ng-container *ngIf="dataProviderInfo.compatibility.name">{{dataProviderInfo.compatibility.name}}</ng-container>
|
||||
</a>
|
||||
<span *ngIf="dataProviderInfo.compatibility.name || !dataProviderInfo.compatibility.id">
|
||||
<span *ngIf="!dataProviderInfo.compatibility.id">
|
||||
{{dataProviderInfo.compatibility.info}}
|
||||
</span>
|
||||
<a *ngIf="dataProviderInfo.compatibility.name && dataProviderInfo.compatibility.id"
|
||||
[queryParams]="{datasourceId: dataProviderInfo.compatibility.id}" routerLinkActive="router-link-active"
|
||||
[routerLink]="properties.searchLinkToDataProvider.split('?')[0]">
|
||||
{{dataProviderInfo.compatibility.name}}
|
||||
</a>
|
||||
<!-- <a *ngIf="dataProviderInfo.compatibility.name && dataProviderInfo.compatibility.id"-->
|
||||
<!-- [queryParams]="{datasourceId: dataProviderInfo.compatibility.id}" routerLinkActive="router-link-active"-->
|
||||
<!-- [routerLink]="properties.searchLinkToDataProvider.split('?')[0]">-->
|
||||
<!-- {{dataProviderInfo.compatibility.info}} {{dataProviderInfo.compatibility.name}}-->
|
||||
<!-- </a>-->
|
||||
<span *ngIf="dataProviderInfo.compatibility.name && !dataProviderInfo.compatibility.id">
|
||||
{{dataProviderInfo.compatibility.name}}
|
||||
</span>
|
||||
</span>{{" "}}
|
||||
<span *ngIf="dataProviderInfo.aggregationStatus && dataProviderInfo.aggregationStatus.fulltexts && dataProviderInfo.aggregationStatus.fulltexts > 0"
|
||||
class="uk-label custom-label label-dataprovider ">OpenAIRE Text Mining
|
||||
</span>{{" "}}
|
||||
<span *ngIf="dataProviderInfo.countries &&
|
||||
removeUnknown(dataProviderInfo.countries).length > 0">
|
||||
<ng-container *ngFor="let country of removeUnknown(dataProviderInfo.countries)">
|
||||
<span class="uk-label custom-label label-country" title="Country">{{country}}</span>
|
||||
{{' '}}
|
||||
</ng-container>
|
||||
</span>
|
||||
</div>
|
||||
</span> 
|
||||
</ng-container>
|
||||
<ng-container *ngIf="dataProviderInfo.aggregationStatus && dataProviderInfo.aggregationStatus.fulltexts && dataProviderInfo.aggregationStatus.fulltexts > 0"
|
||||
class="uk-label uk-text-truncate">
|
||||
<span>OpenAIRE Text Mining</span> 
|
||||
</ng-container>
|
||||
<ng-container *ngIf="dataProviderInfo.countries && removeUnknown(dataProviderInfo.countries).length > 0">
|
||||
<ng-container *ngFor="let country of removeUnknown(dataProviderInfo.countries)">
|
||||
<span class="uk-label custom-label label-country" title="Country">{{country}}</span> 
|
||||
</ng-container>
|
||||
</ng-container>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="uk-width-1-3@m uk-width-1-1@s uk-padding-remove">
|
||||
<ul class="user-actions uk-list uk-card uk-card-default uk-padding">
|
||||
<li><addThis></addThis></li>
|
||||
<!-- Metrics -->
|
||||
<li *ngIf="hasMetrics" class="uk-margin-medium-top">
|
||||
<div class="uk-text-center uk-flex uk-flex-middle uk-flex-center">
|
||||
<div [class.uk-hidden]="!(totalViews || totalDownloads || pageViews)">
|
||||
<metrics [pageViews]="pageViews"
|
||||
[id]="datasourceId" [entityType]="'datasources'" [entity]="'Content Provider'"
|
||||
[viewsFrameUrl]="viewsFrameUrl" [downloadsFrameUrl]="downloadsFrameUrl"
|
||||
(metricsResults)="metricsResults($event)" [properties]=properties>
|
||||
</metrics>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="dataProviderInfo != null">
|
||||
|
||||
<div id="main-tabs-div" uk-sticky="offset: 0; animation: uk-animation-slide-top;"
|
||||
<div id="main-tabs-div"
|
||||
uk-sticky="bottom: true; media: @m" [attr.offset]="offset"
|
||||
cls-active="active">
|
||||
<div class="uk-padding uk-margin-large-top">
|
||||
<showTitle *ngIf="stickyHeader" [titleName]="dataProviderInfo.title.name" classNames="uk-margin-remove-bottom"></showTitle>
|
||||
</div>
|
||||
<my-tabs (selectedActiveTab)="onSelectActiveTab($event)" [(isSticky)]="stickyHeader">
|
||||
|
||||
<my-tab
|
||||
[tabTitle]="'Summary'" [tabId]="'summary'" [active]="true">
|
||||
|
||||
</my-tab>
|
||||
<my-tab *ngIf="fetchProjects.searchUtils.totalResults > 0"
|
||||
[tabTitle]="'Projects'" [tabNumber]="fetchProjects.searchUtils.totalResults"
|
||||
[tabId]="'projects'" >
|
||||
</my-tab>
|
||||
<my-tab *ngIf="fetchDataproviders.searchUtils.totalResults > 0"
|
||||
[tabTitle]="'Content Providers'" [tabNumber]="fetchDataproviders.searchUtils.totalResults"
|
||||
[tabId]="'datasources'" >
|
||||
</my-tab>
|
||||
|
||||
<my-tab *ngIf="fetchPublications.searchUtils.totalResults > 0"
|
||||
[tabTitle]="'Publications'" [tabNumber]="fetchPublications.searchUtils.totalResults"
|
||||
[tabId]="'publications'" >
|
||||
|
||||
</my-tab>
|
||||
<my-tab *ngIf="fetchDatasets.searchUtils.totalResults > 0"
|
||||
[tabTitle]="'Research Data'" [tabNumber]="fetchDatasets.searchUtils.totalResults"
|
||||
[tabId]="'datasets'" >
|
||||
</my-tab>
|
||||
<my-tab *ngIf="fetchSoftware.searchUtils.totalResults > 0"
|
||||
[tabTitle]="'Software'" [tabNumber]="fetchSoftware.searchUtils.totalResults"
|
||||
[tabId]="'software'">
|
||||
</my-tab>
|
||||
<my-tab *ngIf="fetchOrps.searchUtils.totalResults > 0"
|
||||
[tabTitle]="'Other Research'" [tabNumber]="fetchOrps.searchUtils.totalResults"
|
||||
[tabId]="'other'">
|
||||
|
||||
</my-tab>
|
||||
<my-tab *ngIf="(fetchPublications.searchUtils.totalResults > 0 || fetchDatasets.searchUtils.totalResults > 0
|
||||
<div class="uk-padding uk-padding-remove-horizontal uk-padding-remove-bottom">
|
||||
<showTitle *ngIf="stickyHeader" [titleName]="dataProviderInfo.title.name" classNames="uk-margin-remove-bottom" class="uk-visible@m"></showTitle>
|
||||
<my-tabs (selectedActiveTab)="onSelectActiveTab($event)" [offsetForSticky]="offset" [(isSticky)]="stickyHeader">
|
||||
<my-tab [tabTitle]="'Summary'" [tabId]="'summary'" [active]="true"></my-tab>
|
||||
<my-tab *ngIf="fetchProjects.searchUtils.totalResults > 0"
|
||||
[tabTitle]="'Projects'" [tabNumber]="fetchProjects.searchUtils.totalResults"
|
||||
[tabId]="'projects'">
|
||||
</my-tab>
|
||||
<my-tab *ngIf="fetchDataproviders.searchUtils.totalResults > 0"
|
||||
[tabTitle]="'Content Providers'" [tabNumber]="fetchDataproviders.searchUtils.totalResults"
|
||||
[tabId]="'datasources'">
|
||||
</my-tab>
|
||||
<my-tab *ngIf="fetchPublications.searchUtils.totalResults > 0"
|
||||
[tabTitle]="'Publications'" [tabNumber]="fetchPublications.searchUtils.totalResults"
|
||||
[tabId]="'publications'">
|
||||
</my-tab>
|
||||
<my-tab *ngIf="fetchDatasets.searchUtils.totalResults > 0"
|
||||
[tabTitle]="'Research Data'" [tabNumber]="fetchDatasets.searchUtils.totalResults"
|
||||
[tabId]="'datasets'">
|
||||
</my-tab>
|
||||
<my-tab *ngIf="fetchSoftware.searchUtils.totalResults > 0"
|
||||
[tabTitle]="'Software'" [tabNumber]="fetchSoftware.searchUtils.totalResults"
|
||||
[tabId]="'software'">
|
||||
</my-tab>
|
||||
<my-tab *ngIf="fetchOrps.searchUtils.totalResults > 0"
|
||||
[tabTitle]="'Other Research'" [tabNumber]="fetchOrps.searchUtils.totalResults"
|
||||
[tabId]="'other'">
|
||||
</my-tab>
|
||||
<my-tab *ngIf="(fetchPublications.searchUtils.totalResults > 0 || fetchDatasets.searchUtils.totalResults > 0
|
||||
|| fetchSoftware.searchUtils.totalResults > 0 || fetchOrps.searchUtils.totalResults > 0)"
|
||||
[tabTitle]="'Related Content Providers'" [tabId]="'relatedDatasources'"
|
||||
>
|
||||
</my-tab>
|
||||
<my-tab *ngIf="(fetchPublications.searchUtils.totalResults > 0 || fetchDatasets.searchUtils.totalResults > 0
|
||||
[tabTitle]="'Related Content Providers'" [tabId]="'relatedDatasources'">
|
||||
</my-tab>
|
||||
<my-tab *ngIf="(fetchPublications.searchUtils.totalResults > 0 || fetchDatasets.searchUtils.totalResults > 0
|
||||
|| fetchSoftware.searchUtils.totalResults > 0 || fetchOrps.searchUtils.totalResults > 0)"
|
||||
[tabTitle]="'Statistics'" customClass="statistics" [tabId]="'statistics'" [active]="false"
|
||||
>
|
||||
</my-tab>
|
||||
</my-tabs>
|
||||
|
||||
|
||||
[tabTitle]="'Statistics'" customClass="statistics" [tabId]="'statistics'" [active]="false">
|
||||
</my-tab>
|
||||
</my-tabs>
|
||||
</div>
|
||||
</div>
|
||||
<div id="landing-sections">
|
||||
<!--Summary-->
|
||||
<div id="summary" class="uk-grid uk-margin-remove landing-section">
|
||||
<div *ngIf="hasPrimaryInfo || (!aggregationStatusIsInitialized || hasAggregationStatusInfo)"
|
||||
class="uk-width-expand uk-padding uk-inline">
|
||||
<!-- Description -->
|
||||
<div *ngIf="dataProviderInfo.description" class="uk-margin-medium-bottom">
|
||||
<div class="uk-text-muted">Description</div>
|
||||
<div class="uk-text-justify uk-height-max-medium uk-overflow-auto">
|
||||
<span>{{dataProviderInfo.description.substring(0, showNumDescription)}}</span>
|
||||
<span *ngIf="showNumDescription == thresholdDescription &&
|
||||
dataProviderInfo.description.length > thresholdDescription">...</span>
|
||||
</div>
|
||||
<div *ngIf="showNumDescription == thresholdDescription &&
|
||||
dataProviderInfo.description.length > thresholdDescription" class="uk-text-right">
|
||||
<a (click)="showNumDescription = dataProviderInfo.description.length;">
|
||||
Read more
|
||||
</a>
|
||||
</div>
|
||||
<div *ngIf="dataProviderInfo.description && showNumDescription > thresholdDescription"
|
||||
class="uk-text-right">
|
||||
<a (click)="showNumDescription = thresholdDescription;">
|
||||
Read less
|
||||
</a>
|
||||
|
||||
<div id="landing-sections" class="uk-text-small">
|
||||
<div id="summary" class="landing-section landing-section-height-auto">
|
||||
<div class="uk-card uk-card-default card-tab uk-grid uk-margin-remove-left uk-margin-medium-top uk-margin-medium-bottom">
|
||||
<div *ngIf="!(hasPrimaryInfo || (!aggregationStatusIsInitialized || hasAggregationStatusInfo)) && !hasSecondaryInfo"
|
||||
class="uk-width-expand uk-height-small uk-flex uk-flex-center uk-flex-middle">
|
||||
<div class="uk-animation-fade uk-text-meta uk-text-large">
|
||||
No summary information available
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="hasPrimaryInfo || (!aggregationStatusIsInitialized || hasAggregationStatusInfo)"
|
||||
class="uk-width-expand uk-padding uk-inline">
|
||||
<!-- Description -->
|
||||
<div *ngIf="dataProviderInfo.description && dataProviderInfo.description.length > 0"
|
||||
class="uk-margin-medium-bottom">
|
||||
<div class="uk-text-justify ">
|
||||
<div class="uk-text-meta uk-margin-small-bottom">Description</div>
|
||||
<div class=" uk-height-max-medium uk-overflow-auto">
|
||||
<div *ngFor="let description of dataProviderInfo.description" class="uk-margin-small-bottom "
|
||||
[innerHtml]="description"></div>
|
||||
</div>
|
||||
|
||||
<ul *ngIf="hasJournalInfo" class="uk-list uk-margin-medium-bottom uk-margin-remove-top">
|
||||
<showPublisher [journal]="dataProviderInfo.journal" [properties]="properties"></showPublisher>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul *ngIf="hasJournalInfo" class="uk-list uk-margin-medium-bottom uk-margin-remove-top">
|
||||
<showPublisher [journal]="dataProviderInfo.journal" [properties]="properties"></showPublisher>
|
||||
</ul>
|
||||
|
||||
<div *ngIf="hasAggregationStatusInfo || dataProviderInfo.fundedContent"
|
||||
class="uk-margin-medium-bottom uk-animation-fade uk-animation-fast">
|
||||
<span *ngIf="dataProviderInfo.aggregationStatus?.fulltexts && dataProviderInfo.aggregationStatus?.fulltexts != -1"
|
||||
class="uk-margin-right">
|
||||
<div class="uk-text-meta uk-margin-small-bottom">Collected full-texts</div>
|
||||
{{dataProviderInfo.aggregationStatus.fulltexts | number}}
|
||||
</span>
|
||||
<span *ngIf="dataProviderInfo.fundedContent && dataProviderInfo.fundedContent > 0"
|
||||
class="uk-display-inline-block">
|
||||
<div class="uk-text-meta uk-margin-small-bottom">Results with funding information</div>
|
||||
{{dataProviderInfo.fundedContent | number}}
|
||||
</span>
|
||||
</div>
|
||||
<div *ngIf="!aggregationStatusIsInitialized || !dataProviderInfo.fundedContent"
|
||||
class="uk-animation-fade uk-margin-top uk-width-1-1" role="alert">
|
||||
<span class="loading-gif uk-align-center"></span>
|
||||
</div>
|
||||
|
||||
<div *ngIf="dataProviderInfo.countries != undefined && dataProviderInfo.countries.length > 0"
|
||||
class="uk-margin-medium-bottom">
|
||||
<div class="uk-text-meta uk-margin-small-bottom">Countries</div>
|
||||
{{dataProviderInfo.countries.join(", ")}}
|
||||
</div>
|
||||
|
||||
<!-- Subjects -->
|
||||
<div *ngIf="dataProviderInfo.subjects && dataProviderInfo.subjects.length > 0"
|
||||
class="uk-margin-medium-bottom uk-margin-bottom">
|
||||
<div class="uk-height-max-medium uk-overflow-auto">
|
||||
<div class="uk-text-meta uk-margin-small-bottom">Subjects </div>
|
||||
<!-- <span *ngFor="let subject of dataProviderInfo.subjects.slice(0, showNumSubjects) let i=index">-->
|
||||
<!-- <span>{{subject}}</span>-->
|
||||
<!-- <span *ngIf="(i < dataProviderInfo.subjects.length-1)">, </span>-->
|
||||
<!-- </span>-->
|
||||
<!-- <span *ngIf="showNumSubjects == thresholdSubjects && dataProviderInfo.organizations.length > thresholdSubjects"> ... </span>-->
|
||||
<span>{{dataProviderInfo.subjects.slice(0, lessBtnSubjects ? dataProviderInfo.subjects.length : thresholdSubjects).join(", ")}}</span>
|
||||
<span *ngIf="dataProviderInfo.subjects.length > thresholdSubjects && !lessBtnSubjects"> ... </span>
|
||||
</div>
|
||||
<!-- <div *ngIf="showNumSubjects == thresholdSubjects && dataProviderInfo.organizations.length > thresholdSubjects"-->
|
||||
<!-- class="uk-width-1-1 uk-text-right">-->
|
||||
<!-- <a (click)="showNumSubjects = dataProviderInfo.subjects.length;">-->
|
||||
<!-- View all {{dataProviderInfo.subjects.length | number}} subjects-->
|
||||
<!-- </a>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div *ngIf="showNumSubjects > thresholdSubjects" class="uk-width-1-1 uk-text-right">-->
|
||||
<!-- <a (click)="showNumSubjects = thresholdSubjects;">View less subjects</a>-->
|
||||
<!-- </div>-->
|
||||
<div *ngIf="dataProviderInfo.subjects.length > thresholdSubjects && !lessBtnSubjects"
|
||||
class="uk-width-1-1 uk-text-right">
|
||||
<a (click)="viewAllSubjectsClick();">
|
||||
View all {{dataProviderInfo.subjects.length | number}} subjects
|
||||
</a>
|
||||
</div>
|
||||
<div *ngIf="viewAllSubjects && lessBtnSubjects" class="uk-width-1-1 uk-text-right">
|
||||
<a (click)="viewAllSubjects = !viewAllSubjects; lessBtnSubjects=false;">View less subjects</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div *ngIf="hasAggregationStatusInfo || dataProviderInfo.fundedContent"
|
||||
class="uk-margin-medium-bottom uk-animation-fade uk-animation-fast">
|
||||
<span *ngIf="dataProviderInfo.aggregationStatus?.fulltexts && dataProviderInfo.aggregationStatus?.fulltexts != -1"
|
||||
class="uk-margin-right">
|
||||
<span class="uk-text-muted">Collected full-texts: </span>
|
||||
{{dataProviderInfo.aggregationStatus.fulltexts | number}}
|
||||
</span>
|
||||
<span *ngIf="dataProviderInfo.fundedContent && dataProviderInfo.fundedContent > 0"
|
||||
class="uk-display-inline-block">
|
||||
<span class="uk-text-muted">Results with funding information: </span>
|
||||
{{dataProviderInfo.fundedContent | number}}
|
||||
</span>
|
||||
<!-- <span *ngIf="dataProviderInfo.aggregationStatus.lastUpdateDate"-->
|
||||
<!-- class="uk-display-inline-block">-->
|
||||
<!-- <span class="uk-text-muted">Latest data aggregation: </span>-->
|
||||
<!-- {{dataProviderInfo.aggregationStatus.lastUpdateDate | date}}-->
|
||||
<!-- </span>-->
|
||||
</div>
|
||||
<div *ngIf="!aggregationStatusIsInitialized || !dataProviderInfo.fundedContent"
|
||||
class="uk-animation-fade uk-margin-top uk-width-1-1" role="alert">
|
||||
<span class="loading-gif uk-align-center"></span>
|
||||
</div>
|
||||
|
||||
<div *ngIf="dataProviderInfo.countries != undefined && dataProviderInfo.countries.length > 0"
|
||||
class="uk-margin-medium-bottom">
|
||||
<span class="uk-text-muted">Countries:</span>
|
||||
{{dataProviderInfo.countries.join(", ")}}
|
||||
</div>
|
||||
|
||||
<!-- Subjects -->
|
||||
<div *ngIf="dataProviderInfo.subjects && dataProviderInfo.subjects.length > 0"
|
||||
class="uk-margin-medium-bottom uk-margin-bottom">
|
||||
<div class="uk-height-max-medium uk-overflow-auto">
|
||||
<div class="uk-text-muted">Subjects </div>
|
||||
<span *ngFor="let subject of dataProviderInfo.subjects.slice(0, showNumSubjects) let i=index">
|
||||
<span>{{subject}}</span>
|
||||
<span *ngIf="(i < dataProviderInfo.subjects.length-1)">, </span>
|
||||
</span>
|
||||
<span *ngIf="showNumSubjects == thresholdSubjects && dataProviderInfo.organizations.length > thresholdSubjects"> ... </span>
|
||||
</div>
|
||||
<div *ngIf="showNumSubjects == thresholdSubjects && dataProviderInfo.organizations.length > thresholdSubjects"
|
||||
class="uk-width-1-1 uk-text-right">
|
||||
<a (click)="showNumSubjects = dataProviderInfo.subjects.length;">
|
||||
View all {{dataProviderInfo.subjects.length | number}} subjects
|
||||
</a>
|
||||
</div>
|
||||
<div *ngIf="showNumSubjects > thresholdSubjects" class="uk-width-1-1 uk-text-right">
|
||||
<a (click)="showNumSubjects = thresholdSubjects;">View less subjects</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div *ngIf="hasSecondaryInfo"
|
||||
[class]="'uk-padding uk-inline ' + (hasPrimaryInfo?'uk-width-1-3@m right-column': 'uk-width-expand')">
|
||||
<div *ngIf="dataProviderInfo.oaiPmhURL || dataProviderInfo.openDoarId || dataProviderInfo.r3DataId"
|
||||
class="uk-margin-medium-bottom">
|
||||
<div *ngIf="dataProviderInfo.oaiPmhURL">
|
||||
<span class="uk-text-muted">OAI-PMH: </span>
|
||||
<a target="_blank" href="{{dataProviderInfo.oaiPmhURL}}">
|
||||
{{dataProviderInfo.oaiPmhURL}}
|
||||
<span class="custom-external custom-icon space"></span>
|
||||
</a>
|
||||
</div>
|
||||
<div *ngIf="dataProviderInfo.openDoarId" class="uk-display-inline-block">
|
||||
<span class="uk-text-muted">Detailed information @ </span>
|
||||
<a target="_blank" href="{{properties.openDoarURL+dataProviderInfo.openDoarId}}">
|
||||
OpenDOAR
|
||||
<span class="custom-external custom-icon space"></span>
|
||||
</a>
|
||||
</div>
|
||||
<span *ngIf="dataProviderInfo.r3DataId" class="uk-display-inline-block">
|
||||
<span class="uk-text-muted">Detailed information @ </span>
|
||||
<a target="_blank" href="{{properties.r3DataURL+dataProviderInfo.r3DataId}}">
|
||||
re3data.org
|
||||
<span class="custom-external custom-icon space"></span>
|
||||
<div *ngIf="hasSecondaryInfo"
|
||||
[class]="'uk-inline uk-padding uk-padding-remove-horizontal ' + (hasPrimaryInfo?'uk-width-1-3@m': 'uk-width-expand')">
|
||||
<div class="uk-padding uk-padding-remove-vertical uk-height-1-1">
|
||||
<div *ngIf="dataProviderInfo.oaiPmhURL || dataProviderInfo.provenance?.size > 0"
|
||||
class="uk-margin-medium-bottom">
|
||||
<div *ngIf="dataProviderInfo.oaiPmhURL" class="uk-margin-medium-bottom">
|
||||
<div class="uk-text-meta uk-margin-small-bottom">OAI-PMH</div>
|
||||
<a target="_blank" href="{{dataProviderInfo.oaiPmhURL}}" class="custom-external">
|
||||
{{dataProviderInfo.oaiPmhURL}}
|
||||
</a>
|
||||
</div>
|
||||
<div *ngIf="dataProviderInfo.provenance?.size > 0" class="uk-display-inline-block">
|
||||
<div class="uk-text-meta uk-margin-small-bottom">Detailed information @ </div>
|
||||
<span *ngFor="let provenance of getKeys(dataProviderInfo.provenance); let i=index">
|
||||
<a *ngIf="dataProviderInfo.provenance.get(provenance).url.length == 1" class="custom-external uk-link-text"
|
||||
target="_blank" href="{{dataProviderInfo.provenance.get(provenance).url}}">
|
||||
{{provenance}}
|
||||
</a>
|
||||
<ng-container *ngIf="dataProviderInfo.provenance.get(provenance).url.length > 1">
|
||||
<span class="custom-external">{{provenance}}</span>
|
||||
<ng-container *ngFor="let url of dataProviderInfo.provenance.get(provenance).url; let i=index">
|
||||
[<a target="_blank" href="{{url}}">{{i}}</a>]
|
||||
</ng-container>
|
||||
</ng-container>
|
||||
<span *ngIf="i < dataProviderInfo.provenance.size-1">, </span>
|
||||
</span>
|
||||
</div>
|
||||
<!-- Organizations -->
|
||||
<!-- <div class="uk-text-muted uk-text-small">Organizations</div>-->
|
||||
<!-- <div class="uk-height-max-medium uk-overflow-auto">-->
|
||||
<div *ngIf="dataProviderInfo.organizations && dataProviderInfo.organizations.length > 0"
|
||||
class="uk-margin-medium-bottom">
|
||||
<div class="uk-height-max-medium uk-overflow-auto">
|
||||
<span class="uk-text-muted">Organizations: </span>
|
||||
<span *ngFor="let organization of dataProviderInfo.organizations.slice(0, showNumOrganizations) let i=index"
|
||||
[attr.uk-tooltip]="organization.acronym && organization.name ? 'pos:right; delay:10' : 'cls: uk-invisible'"
|
||||
[title]="organization.name">
|
||||
<a *ngIf="organization.id"
|
||||
[queryParams]="{organizationId: organization.id}" routerLinkActive="router-link-active"
|
||||
[routerLink]="properties.searchLinkToOrganization.split('?')[0]">
|
||||
<u>{{(organization.acronym) ? organization.acronym : ''}}</u>
|
||||
<u>{{(!organization.acronym && organization.name) ? organization.name : ''}}</u>
|
||||
</a>
|
||||
<span *ngIf="!organization.id">
|
||||
<span *ngIf="organization.acronym">{{organization.acronym}}</span>
|
||||
<span *ngIf="!organization.acronym && organization.name">{{organization.name}}</span>
|
||||
<span *ngIf="(i < dataProviderInfo.organizations.length-1)">,</span>
|
||||
</span>
|
||||
<span *ngIf="(i < dataProviderInfo.organizations.length-1)">, </span>
|
||||
</span>
|
||||
<span *ngIf="showNumOrganizations == thresholdOrganizations && dataProviderInfo.organizations.length > thresholdOrganizations"> ... </span>
|
||||
</div>
|
||||
<!-- <span *ngIf="dataProviderInfo.r3DataId" class="uk-display-inline-block">-->
|
||||
<!-- <span class="uk-text-meta">Detailed information @ </span>-->
|
||||
<!-- <a target="_blank" href="{{properties.r3DataURL+dataProviderInfo.r3DataId}}">-->
|
||||
<!-- re3data.org-->
|
||||
<!-- <span class="custom-external custom-icon space"></span>-->
|
||||
<!-- </a>-->
|
||||
<!-- </span>-->
|
||||
</div>
|
||||
<!-- Organizations -->
|
||||
<!-- <div class="uk-text-muted uk-text-small">Organizations</div>-->
|
||||
<!-- <div class="uk-height-max-medium uk-overflow-auto">-->
|
||||
<div *ngIf="dataProviderInfo.organizations && dataProviderInfo.organizations.length > 0"
|
||||
class="uk-margin-medium-bottom">
|
||||
<!-- <div class="uk-height-max-medium uk-overflow-auto">-->
|
||||
<div class="uk-text-meta uk-margin-small-bottom">{{openaireEntities.ORGANIZATIONS}}</div>
|
||||
<ng-container *ngTemplateOutlet="organizations_template; context: { threshold: lessBtnOrganizations ? dataProviderInfo.organizations.length : thresholdOrganizations }"></ng-container>
|
||||
<!-- <span *ngIf="showNumOrganizations == thresholdOrganizations && dataProviderInfo.organizations.length > thresholdOrganizations"> ... </span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div *ngIf="showNumOrganizations == thresholdOrganizations && dataProviderInfo.organizations.length > thresholdOrganizations"-->
|
||||
<!-- class="uk-width-1-1 uk-text-right">-->
|
||||
<!-- <a (click)="showNumOrganizations = dataProviderInfo.organizations.length;">-->
|
||||
<!-- View all {{dataProviderInfo.organizations.length | number}} organizations-->
|
||||
<!-- </a>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div *ngIf="showNumOrganizations > thresholdOrganizations" class="uk-width-1-1 uk-text-right">-->
|
||||
<!-- <a (click)="showNumOrganizations = thresholdOrganizations;">View less organizations</a>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<div *ngIf="dataProviderInfo.organizations.length > thresholdOrganizations && !lessBtnOrganizations"
|
||||
class="uk-width-1-1 uk-text-right">
|
||||
<a (click)="viewAllOrganizationsClick();">
|
||||
View all {{dataProviderInfo.organizations.length | number}} organizations
|
||||
</a>
|
||||
</div>
|
||||
<div *ngIf="viewAllOrganizations && lessBtnOrganizations" class="uk-width-1-1 uk-text-right">
|
||||
<a (click)="viewAllOrganizations = !viewAllOrganizations; lessBtnOrganizations=false;">View less organizations</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="showNumOrganizations == thresholdOrganizations && dataProviderInfo.organizations.length > thresholdOrganizations"
|
||||
class="uk-width-1-1 uk-text-right">
|
||||
<a (click)="showNumOrganizations = dataProviderInfo.organizations.length;">
|
||||
View all {{dataProviderInfo.organizations.length | number}} organizations
|
||||
</a>
|
||||
</div>
|
||||
<div *ngIf="showNumOrganizations > thresholdOrganizations" class="uk-width-1-1 uk-text-right">
|
||||
<a (click)="showNumOrganizations = thresholdOrganizations;">View less organizations</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="!hasPrimaryInfo && (aggregationStatusIsInitialized && !hasAggregationStatusInfo) && !hasSecondaryInfo" class="uk-width-expand uk-padding">
|
||||
<div class="uk-animation-fade uk-alert uk-alert-primary" role="alert">
|
||||
No summary information available
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--Projects-->
|
||||
<ng-container *ngIf="fetchProjects.searchUtils.totalResults > 0">
|
||||
<div id="projects" class="uk-grid uk-margin-remove landing-section">
|
||||
<div class="uk-width-expand uk-padding">
|
||||
|
||||
<!-- Projects-->
|
||||
<ng-container *ngIf="fetchProjects.searchUtils.totalResults > 0">
|
||||
<div id="projects" class="landing-section uk-padding uk-padding-remove-horizontal">
|
||||
<search-tab [fetch]="fetchProjects" resultType="project"
|
||||
[params]="getParamsForSearchLink()"
|
||||
[searchLinkToAdvancedPage]="properties.searchLinkToAdvancedProjects"
|
||||
[properties]="properties">
|
||||
</search-tab>
|
||||
</div>
|
||||
<!-- <div class="uk-width-1-3@m uk-padding right-column"></div>-->
|
||||
</div>
|
||||
</ng-container>
|
||||
<!--Content Providers-->
|
||||
<ng-container *ngIf="fetchDataproviders.searchUtils.totalResults > 0">
|
||||
<div id="datasources" class="uk-grid uk-margin-remove landing-section">
|
||||
<div class="uk-width-expand uk-padding">
|
||||
</ng-container>
|
||||
<!-- Content Providers -->
|
||||
<ng-container *ngIf="fetchDataproviders.searchUtils.totalResults > 0">
|
||||
<div id="datasources" class="landing-section uk-padding uk-padding-remove-horizontal">
|
||||
<search-tab [fetch]="fetchDataproviders" resultType="dataprovider"
|
||||
[params]="getParamsForSearchLink()"
|
||||
[searchLinkToAdvancedPage]="properties.searchLinkToAdvancedDataProviders"
|
||||
[properties]="properties">
|
||||
</search-tab>
|
||||
</div>
|
||||
<!-- <div class="uk-width-1-3@m uk-padding right-column"></div>-->
|
||||
</div>
|
||||
</ng-container>
|
||||
|
||||
<!--Publications-->
|
||||
<ng-container *ngIf="fetchPublications.searchUtils.totalResults > 0">
|
||||
<div id="publications" class="uk-grid uk-margin-remove landing-section">
|
||||
<div class="uk-width-expand uk-padding">
|
||||
</ng-container>
|
||||
<!--Publications-->
|
||||
<ng-container *ngIf="fetchPublications.searchUtils.totalResults > 0">
|
||||
<div id="publications" class="landing-section uk-padding uk-padding-remove-horizontal">
|
||||
<search-tab [fetch]="fetchPublications" resultType="publication"
|
||||
[params]="getParamsForSearchLink('publications')"
|
||||
[searchLinkToAdvancedPage]="properties.searchLinkToAdvancedResults"
|
||||
[properties]="properties">
|
||||
</search-tab>
|
||||
</div>
|
||||
<!-- <div class="uk-width-1-3@m uk-padding right-column"></div>-->
|
||||
</div>
|
||||
</ng-container>
|
||||
<!--Research Data-->
|
||||
<ng-container *ngIf="fetchDatasets.searchUtils.totalResults > 0">
|
||||
<div id="datasets" class="uk-grid uk-margin-remove landing-section">
|
||||
<div class="uk-width-expand uk-padding">
|
||||
</ng-container>
|
||||
<!--Research Data-->
|
||||
<ng-container *ngIf="fetchDatasets.searchUtils.totalResults > 0">
|
||||
<div id="datasets" class="landing-section uk-padding uk-padding-remove-horizontal">
|
||||
<search-tab [fetch]="fetchDatasets" resultType="dataset"
|
||||
[params]="getParamsForSearchLink('datasets')"
|
||||
[searchLinkToAdvancedPage]="properties.searchLinkToAdvancedResults"
|
||||
[properties]="properties">
|
||||
</search-tab>
|
||||
</div>
|
||||
<!-- <div class="uk-width-1-3@m uk-padding right-column"></div>-->
|
||||
</div>
|
||||
</ng-container>
|
||||
<!--Software-->
|
||||
<ng-container *ngIf="fetchSoftware.searchUtils.totalResults > 0">
|
||||
<div id="software" class="uk-grid uk-margin-remove landing-section">
|
||||
<div class="uk-width-expand uk-padding">
|
||||
</ng-container>
|
||||
<!--Software-->
|
||||
<ng-container *ngIf="fetchSoftware.searchUtils.totalResults > 0">
|
||||
<div id="software" class="landing-section uk-padding uk-padding-remove-horizontal">
|
||||
<search-tab [fetch]="fetchSoftware" resultType="software"
|
||||
[params]="getParamsForSearchLink('software')"
|
||||
[searchLinkToAdvancedPage]="properties.searchLinkToAdvancedResults"
|
||||
[properties]="properties">
|
||||
</search-tab>
|
||||
</div>
|
||||
<!-- <div class="uk-width-1-3@m uk-padding right-column"></div>-->
|
||||
</div>
|
||||
</ng-container>
|
||||
<!--Other-->
|
||||
<ng-container *ngIf="fetchOrps.searchUtils.totalResults > 0">
|
||||
<div id="other" class="uk-grid uk-margin-remove landing-section">
|
||||
<div class="uk-width-expand uk-padding">
|
||||
</ng-container>
|
||||
<!--Other-->
|
||||
<ng-container *ngIf="fetchOrps.searchUtils.totalResults > 0">
|
||||
<div id="other" class="landing-section uk-padding uk-padding-remove-horizontal">
|
||||
<search-tab [fetch]="fetchOrps" resultType="other"
|
||||
[params]="getParamsForSearchLink('other')"
|
||||
[searchLinkToAdvancedPage]="properties.searchLinkToAdvancedResults"
|
||||
[properties]="properties">
|
||||
</search-tab>
|
||||
</div>
|
||||
<!-- <div class="uk-width-1-3@m uk-padding right-column"></div>-->
|
||||
</div>
|
||||
</ng-container>
|
||||
<!--Related Content Providers-->
|
||||
<ng-container *ngIf="(fetchPublications.searchUtils.totalResults > 0 || fetchDatasets.searchUtils.totalResults > 0
|
||||
</ng-container>
|
||||
<!--Related Content Providers-->
|
||||
<ng-container *ngIf="(fetchPublications.searchUtils.totalResults > 0 || fetchDatasets.searchUtils.totalResults > 0
|
||||
|| fetchSoftware.searchUtils.totalResults > 0 || fetchOrps.searchUtils.totalResults > 0)">
|
||||
<div id="relatedDatasources" class="uk-grid uk-margin-remove landing-section">
|
||||
<div class="uk-width-expand uk-padding">
|
||||
<div id="relatedDatasources" class="landing-section uk-padding uk-padding-remove-horizontal">
|
||||
<relatedDatasourcesTab
|
||||
[dataproviderId]="datasourceId"
|
||||
[results]="dataProviderInfo.relatedDatasources"
|
||||
[loading]="loadingRelatedDatasources"
|
||||
[fetchResults]="fetchAggregatorsResults"
|
||||
[collectedFromName]="dataProviderInfo.title.name"
|
||||
[properties]=properties
|
||||
[modal]="relatedDatasourcesModal">
|
||||
[dataproviderId]="datasourceId"
|
||||
[results]="dataProviderInfo.relatedDatasources"
|
||||
[loading]="loadingRelatedDatasources"
|
||||
[fetchResults]="fetchAggregatorsResults"
|
||||
[collectedFromName]="dataProviderInfo.title.name"
|
||||
[properties]=properties
|
||||
[modal]="relatedDatasourcesModal">
|
||||
</relatedDatasourcesTab>
|
||||
</div>
|
||||
</div>
|
||||
</ng-container>
|
||||
<!--Statistics-->
|
||||
<ng-container *ngIf="(fetchPublications.searchUtils.totalResults > 0 || fetchDatasets.searchUtils.totalResults > 0
|
||||
</ng-container>
|
||||
<!--Statistics-->
|
||||
<ng-container *ngIf="(fetchPublications.searchUtils.totalResults > 0 || fetchDatasets.searchUtils.totalResults > 0
|
||||
|| fetchSoftware.searchUtils.totalResults > 0 || fetchOrps.searchUtils.totalResults > 0)">
|
||||
|
||||
<div id="statistics" class="uk-width-expand uk-padding landing-section">
|
||||
<errorMessages [status]="[fetchPublications.searchUtils.status, fetchDatasets.searchUtils.status,
|
||||
fetchSoftware.searchUtils.status, fetchOrps.searchUtils.status]"
|
||||
[type]="'statistics'" tab_error_class=true></errorMessages>
|
||||
|
||||
<div
|
||||
*ngIf="statsClicked &&
|
||||
<div id="statistics" class="landing-section uk-padding uk-padding-remove-horizontal">
|
||||
<div class="uk-text-meta uk-text-large uk-text-uppercase uk-margin-medium-bottom">Statistics</div>
|
||||
<errorMessages [status]="[fetchPublications.searchUtils.status, fetchDatasets.searchUtils.status,
|
||||
fetchSoftware.searchUtils.status, fetchOrps.searchUtils.status]"
|
||||
[type]="'statistics'" tab_error_class=true></errorMessages>
|
||||
<div *ngIf="statsClicked &&
|
||||
(fetchPublications.searchUtils.status == errorCodes.DONE || fetchDatasets.searchUtils.status == errorCodes.DONE
|
||||
|| fetchSoftware.searchUtils.status == errorCodes.DONE || fetchOrps.searchUtils.status == errorCodes.DONE)">
|
||||
<statisticsTab [fetchPublications]="fetchPublications" [fetchDatasets]="fetchDatasets"
|
||||
|
@ -406,32 +421,46 @@
|
|||
</statisticsTab>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</ng-container>
|
||||
</div>
|
||||
<div class="uk-margin-small-top uk-flex">
|
||||
<!-- Last Index Info-->
|
||||
<div class="uk-width-2-3@m uk-width-1-2">
|
||||
<img src="assets/common-assets/graph.svg" style="opacity: 0.4; width:20px; height:22px" loading="lazy"
|
||||
alt="graph">
|
||||
<span class="uk-margin-small-left uk-text-baseline uk-text-muted">Powered by <a href="https://graph.openaire.eu" class="graph-color">OpenAIRE Research Graph</a></span>
|
||||
<span *ngIf="indexUpdateDate" class="uk-text-baseline uk-text-muted">
|
||||
. Last update of records in OpenAIRE: {{indexUpdateDate | date: 'MMM dd, yyyy'}}
|
||||
</span>
|
||||
</div>
|
||||
<!--Feedback-->
|
||||
<div class="uk-width-expand uk-text-right">
|
||||
<span class="uk-text-muted">Any information missing or wrong?</span>
|
||||
<a (click)="showFeedback = true; scroll()" class="portal-link space">Report an Issue</a>
|
||||
</div>
|
||||
</ng-container>
|
||||
</div>
|
||||
</div>
|
||||
<helper *ngIf="pageContents && pageContents['bottom'] && pageContents['bottom'].length > 0"
|
||||
[texts]="pageContents['bottom']"></helper>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<feedback *ngIf="dataProviderInfo && properties.reCaptchaSiteKey" [dataProviderInfo]="dataProviderInfo"
|
||||
[properties]="properties" [entityType]="'content provider'" [fields]="feedbackFields"
|
||||
[(showForm)]="showFeedback"></feedback>
|
||||
</div>
|
||||
|
||||
<feedback *ngIf="dataProviderInfo && properties.reCaptchaSiteKey" [dataProviderInfo]="dataProviderInfo"
|
||||
[properties]="properties" [entityType]="openaireEntities.DATASOURCE" [fields]="feedbackFields"
|
||||
[(showForm)]="showFeedback"></feedback>
|
||||
|
||||
<modal-alert *ngIf="dataProviderInfo" #addThisModal classBody="uk-flex uk-flex-center uk-flex-middle">
|
||||
<addThis></addThis>
|
||||
</modal-alert>
|
||||
|
||||
<modal-alert *ngIf="dataProviderInfo && dataProviderInfo.organizations" #organizationsModal>
|
||||
<ng-container *ngTemplateOutlet="organizations_template; context: { threshold: dataProviderInfo.organizations.length}"></ng-container>
|
||||
</modal-alert>
|
||||
|
||||
<ng-template #organizations_template let-threshold="threshold">
|
||||
<span *ngFor="let organization of dataProviderInfo.organizations.slice(0, threshold); let i=index" class="uk-text-small"
|
||||
[attr.uk-tooltip]="organization.acronym && organization.name ? 'pos:right; delay:10' : 'cls: uk-invisible'"
|
||||
[title]="organization.name">
|
||||
<a *ngIf="organization.id" class="uk-link-text"
|
||||
[queryParams]="{organizationId: organization.id}" routerLinkActive="router-link-active"
|
||||
[routerLink]="properties.searchLinkToOrganization.split('?')[0]">
|
||||
{{(organization.acronym) ? organization.acronym : ''}}
|
||||
{{(!organization.acronym && organization.name) ? organization.name : ''}}
|
||||
</a>
|
||||
<span *ngIf="!organization.id">
|
||||
<span *ngIf="organization.acronym">{{organization.acronym}}</span>
|
||||
<span *ngIf="!organization.acronym && organization.name">{{organization.name}}</span>
|
||||
<span *ngIf="(i < dataProviderInfo.organizations.length-1)">,</span>
|
||||
</span>
|
||||
<span *ngIf="(i < dataProviderInfo.organizations.length-1)">, </span>
|
||||
</span>
|
||||
<span *ngIf="dataProviderInfo.organizations.length > threshold"> ... </span>
|
||||
</ng-template>
|
||||
|
||||
<modal-alert *ngIf="dataProviderInfo && dataProviderInfo.subjects" #subjectsModal>
|
||||
<span>{{dataProviderInfo.subjects.join(", ")}}</span>
|
||||
</modal-alert>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import {Component, Input, ViewChild} from '@angular/core';
|
||||
import {ChangeDetectorRef, Component, Input, ViewChild} from '@angular/core';
|
||||
import {ActivatedRoute, Router} from '@angular/router';
|
||||
import {Meta, Title} from '@angular/platform-browser';
|
||||
|
||||
|
@ -27,6 +27,7 @@ import {IndexInfoService} from "../../utils/indexInfo.service";
|
|||
import {properties} from "../../../../environments/environment";
|
||||
import {Subscriber} from "rxjs";
|
||||
import {TabComponent} from "../../utils/tabs/tab.component";
|
||||
import {OpenaireEntities} from "../../utils/properties/searchFields";
|
||||
|
||||
|
||||
@Component({
|
||||
|
@ -59,6 +60,7 @@ export class DataProviderComponent {
|
|||
|
||||
@ViewChild('statisticsModal') statisticsModal;
|
||||
@ViewChild('relatedDatasourcesModal') relatedDatasourcesModal;
|
||||
@ViewChild('addThisModal') addThisModal
|
||||
|
||||
// Variables for publications, research data, projects, content providers, related content providers tabs
|
||||
public fetchPublications: FetchResearchResults;
|
||||
|
@ -96,12 +98,18 @@ export class DataProviderComponent {
|
|||
private reloadRelatedDatasources: boolean = true;
|
||||
|
||||
// Organizations variables for view more/less functionality
|
||||
public viewAllOrganizations: boolean = false;
|
||||
public lessBtnOrganizations: boolean = false;
|
||||
public thresholdOrganizations: number = 20;
|
||||
public showNumOrganizations: number = 20;
|
||||
@ViewChild('organizationsModal') organizationsModal;
|
||||
|
||||
|
||||
// Subjects variables for view more/less functionality
|
||||
public viewAllSubjects: boolean = false;
|
||||
public lessBtnSubjects: boolean = false;
|
||||
public thresholdSubjects: number = 20;
|
||||
public showNumSubjects: number = 20;
|
||||
@ViewChild('subjectsModal') subjectsModal;
|
||||
|
||||
|
||||
// Description variables for view more/less functionality
|
||||
public thresholdDescription: number = 670;
|
||||
|
@ -111,9 +119,15 @@ export class DataProviderComponent {
|
|||
public showFeedback: boolean = false;
|
||||
public feedbackFields: string [] = ['Name', 'Organizations', 'Country', 'Other'];
|
||||
|
||||
public offset: number;
|
||||
public stickyHeader: boolean = false;
|
||||
public graph_offset: number = 0;
|
||||
@ViewChild("graph_and_feedback") graph_and_feedback;
|
||||
|
||||
subscriptions = [];
|
||||
properties: EnvProperties = properties;
|
||||
stickyHeader: boolean = false;
|
||||
public openaireEntities = OpenaireEntities;
|
||||
|
||||
constructor(private _dataproviderService: DataProviderService,
|
||||
private _piwikService: PiwikService,
|
||||
private route: ActivatedRoute,
|
||||
|
@ -167,6 +181,21 @@ export class DataProviderComponent {
|
|||
}));
|
||||
}
|
||||
|
||||
ngAfterViewInit() {
|
||||
if (typeof document !== 'undefined') {
|
||||
this.offset = Number.parseInt(getComputedStyle(document.documentElement).getPropertyValue('--navbar-height'));
|
||||
}
|
||||
}
|
||||
|
||||
ngAfterContentChecked() {
|
||||
if(this.graph_and_feedback && window) {
|
||||
this.graph_offset = this.calcGraphOffset();
|
||||
}
|
||||
}
|
||||
calcGraphOffset() {
|
||||
return window.innerHeight-this.graph_and_feedback.nativeElement.offsetHeight;
|
||||
}
|
||||
|
||||
public initializeValues() {
|
||||
this._numberOfTabs = 0;
|
||||
this.tabsAreInitialized = false;
|
||||
|
@ -241,7 +270,8 @@ export class DataProviderComponent {
|
|||
}
|
||||
this.showTabs = true;
|
||||
this.updateTitle(this.dataProviderInfo.title.name?this.dataProviderInfo.title.name:this.dataProviderInfo.officialName);
|
||||
this.updateDescription(this.dataProviderInfo.description?this.dataProviderInfo.description: "Content provider, " + (this.dataProviderInfo.title.name?this.dataProviderInfo.title.name:this.dataProviderInfo.officialName));
|
||||
// this.updateDescription(this.dataProviderInfo.description?this.dataProviderInfo.description: "Content provider, " + (this.dataProviderInfo.title.name?this.dataProviderInfo.title.name:this.dataProviderInfo.officialName));
|
||||
this.updateDescription((this.dataProviderInfo.description && this.dataProviderInfo.description[0] ? (this.dataProviderInfo.description[0].substr(0,157) + (this.dataProviderInfo.description[0].substr(0,157).length == 157?"...":"")) : (this.dataProviderInfo.title.name?this.dataProviderInfo.title.name:this.dataProviderInfo.officialName)));
|
||||
if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) {
|
||||
this.subscriptions.push(this._piwikService.trackView(this.properties, this.dataProviderInfo.title.name, this.piwikSiteId).subscribe());
|
||||
}
|
||||
|
@ -301,8 +331,11 @@ export class DataProviderComponent {
|
|||
}
|
||||
|
||||
private updateDescription(description: string) {
|
||||
this._meta.updateTag({content: description.substring(0, 160)}, "name='description'");
|
||||
this._meta.updateTag({content: description.substring(0, 160)}, "property='og:description'");
|
||||
// this._meta.updateTag({content: description.substring(0, 160)}, "name='description'");
|
||||
// this._meta.updateTag({content: description.substring(0, 160)}, "property='og:description'");
|
||||
|
||||
this._meta.updateTag({content: description}, "name='description'");
|
||||
this._meta.updateTag({content: description}, "property='og:description'");
|
||||
}
|
||||
|
||||
private updateTitle(title: string) {
|
||||
|
@ -546,7 +579,7 @@ export class DataProviderComponent {
|
|||
}
|
||||
|
||||
public get hasMetrics(): boolean {
|
||||
return !(this.totalViews && this.totalDownloads && this.pageViews) || this.totalViews > 0 || this.totalDownloads > 0 || this.pageViews > 0;
|
||||
return !(this.totalViews != null && this.totalDownloads != null && this.pageViews != null) || this.totalViews > 0 || this.totalDownloads > 0 || this.pageViews > 0;
|
||||
}
|
||||
|
||||
public openStatistics() {
|
||||
|
@ -565,6 +598,45 @@ export class DataProviderComponent {
|
|||
this.relatedDatasourcesModal.open();
|
||||
}
|
||||
|
||||
public openAddThisModal() {
|
||||
this.addThisModal.cancelButton = false;
|
||||
this.addThisModal.okButton = false;
|
||||
this.addThisModal.alertTitle = "Share this project in your social networks";
|
||||
this.addThisModal.open();
|
||||
}
|
||||
|
||||
public viewAllOrganizationsClick() {
|
||||
this.viewAllOrganizations = true;
|
||||
if(this.dataProviderInfo.organizations.length <= this.thresholdOrganizations*2) {
|
||||
this.lessBtnOrganizations = true;
|
||||
} else {
|
||||
this.openOrganizationsModal();
|
||||
}
|
||||
}
|
||||
|
||||
public openOrganizationsModal() {
|
||||
this.organizationsModal.cancelButton = false;
|
||||
this.organizationsModal.okButton = false;
|
||||
this.organizationsModal.alertTitle = "Organizations";
|
||||
this.organizationsModal.open();
|
||||
}
|
||||
|
||||
public viewAllSubjectsClick() {
|
||||
this.viewAllSubjects = true;
|
||||
if(this.dataProviderInfo.subjects.length <= this.thresholdSubjects*2) {
|
||||
this.lessBtnSubjects = true;
|
||||
} else {
|
||||
this.openSubjectsModal();
|
||||
}
|
||||
}
|
||||
|
||||
public openSubjectsModal() {
|
||||
this.subjectsModal.cancelButton = false;
|
||||
this.subjectsModal.okButton = false;
|
||||
this.subjectsModal.alertTitle = "Subjects";
|
||||
this.subjectsModal.open();
|
||||
}
|
||||
|
||||
public scroll() {
|
||||
HelperFunctions.scroll();
|
||||
}
|
||||
|
@ -650,7 +722,7 @@ export class DataProviderComponent {
|
|||
|
||||
public get hasPrimaryInfo(): boolean {
|
||||
return !!this.dataProviderInfo && (
|
||||
!!this.dataProviderInfo.description ||
|
||||
(!!this.dataProviderInfo.description && this.dataProviderInfo.description.length > 0) ||
|
||||
this.hasJournalInfo ||
|
||||
//this.hasAggregationStatusInfo ||
|
||||
!!this.dataProviderInfo.countries ||
|
||||
|
@ -660,8 +732,11 @@ export class DataProviderComponent {
|
|||
public get hasSecondaryInfo(): boolean {
|
||||
return !!this.dataProviderInfo && (
|
||||
(!!this.dataProviderInfo.organizations && this.dataProviderInfo.organizations.length > 0)
|
||||
|| !!this.dataProviderInfo.oaiPmhURL || !!this.dataProviderInfo.openDoarId || !!this.dataProviderInfo.r3DataId
|
||||
|| !!this.dataProviderInfo.oaiPmhURL || (this.dataProviderInfo.provenance && this.dataProviderInfo.provenance.size > 0)
|
||||
);
|
||||
}
|
||||
|
||||
public getKeys( map) {
|
||||
return Array.from(map.keys());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,6 +36,11 @@ import {NoLoadPaging} from "../../searchPages/searchUtils/no-load-paging.module"
|
|||
import {FeedbackModule} from "../feedback/feedback.module";
|
||||
import {TabsModule} from "../../utils/tabs/tabs.module";
|
||||
import {SearchTabModule} from "../../utils/tabs/contents/search-tab.module";
|
||||
import {LoadingModule} from "../../utils/loading/loading.module";
|
||||
import {IconsModule} from "../../utils/icons/icons.module";
|
||||
import {IconsService} from "../../utils/icons/icons.service";
|
||||
import {graph} from "../../utils/icons/icons";
|
||||
import {LoadingModalModule} from "../../utils/modal/loadingModal.module";
|
||||
|
||||
@NgModule({
|
||||
imports:
|
||||
|
@ -44,7 +49,7 @@ import {SearchTabModule} from "../../utils/tabs/contents/search-tab.module";
|
|||
DataProvidersServiceModule, ProjectsServiceModule, SearchResearchResultsServiceModule,
|
||||
PagingModule, Schema2jsonldModule, SEOServiceModule, ShowPublisherModule, HelperModule,
|
||||
LandingHeaderModule, AlertModalModule, NoLoadPaging, FeedbackModule,
|
||||
TabsModule, SearchTabModule
|
||||
TabsModule, SearchTabModule, LoadingModule, IconsModule, LoadingModalModule
|
||||
],
|
||||
declarations:
|
||||
[PublicationsTabComponent, DatasetsTabComponent, StatisticsTabComponent, ProjectsTabComponent, DatasourcesTabComponent, OrganizationsTabComponent,
|
||||
|
@ -57,4 +62,8 @@ import {SearchTabModule} from "../../utils/tabs/contents/search-tab.module";
|
|||
]
|
||||
|
||||
})
|
||||
export class DataProviderModule { }
|
||||
export class DataProviderModule {
|
||||
constructor(private iconsService: IconsService) {
|
||||
this.iconsService.registerIcons([graph])
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,17 +1,21 @@
|
|||
import {Injectable} from '@angular/core';
|
||||
import {HttpClient, HttpErrorResponse, HttpHeaders} from "@angular/common/http";
|
||||
import {throwError} from 'rxjs';
|
||||
import {DataProviderInfo} from '../../utils/entities/dataProviderInfo';
|
||||
import {DataProviderInfo, DataproviderProvenance} from '../../utils/entities/dataProviderInfo';
|
||||
import{EnvProperties} from '../../utils/properties/env-properties';
|
||||
import {map} from "rxjs/operators";
|
||||
import {ParsingFunctions} from "../landing-utils/parsingFunctions.class";
|
||||
|
||||
|
||||
@Injectable()
|
||||
export class DataProviderService {
|
||||
|
||||
constructor(private http: HttpClient ) {}
|
||||
constructor(private http: HttpClient ) {
|
||||
this.parsingFunctions = new ParsingFunctions();
|
||||
}
|
||||
|
||||
dataProviderInfo: DataProviderInfo;
|
||||
public parsingFunctions: ParsingFunctions;
|
||||
|
||||
getDataproviderInfo (id: string, properties:EnvProperties):any {
|
||||
let url = properties.searchAPIURLLAst + 'datasources/' +id +"?format=json";
|
||||
|
@ -110,23 +114,47 @@ export class DataProviderService {
|
|||
|
||||
var pattern = /.{12}::.+/;
|
||||
var originalIds =(data[0].originalId)?data[0].originalId:"";
|
||||
if(originalIds) {
|
||||
let provenances = new DataproviderProvenance().provenance;
|
||||
this.dataProviderInfo.provenance = new Map<string, { "url": string[], "name" }>();
|
||||
|
||||
let length = Array.isArray(originalIds) ? originalIds.length : 1;
|
||||
const idRegex = RegExp('[^'+'::'+']*$');
|
||||
|
||||
for(let i=0; i<length; i++) {
|
||||
var originalId = Array.isArray(originalIds) ? originalIds[i] : originalIds;
|
||||
var matched = originalId.match(pattern);
|
||||
let length = Array.isArray(originalIds) ? originalIds.length : 1;
|
||||
|
||||
if(matched && originalId && originalId != ""){
|
||||
if(originalId.indexOf("opendoar____::") != -1){
|
||||
this.dataProviderInfo.openDoarId = originalId.split("opendoar____::")[1];
|
||||
}else if (originalId.indexOf("re3data_____::") != -1){
|
||||
this.dataProviderInfo.r3DataId = originalId.split("re3data_____::")[1];
|
||||
for (let i = 0; i < length; i++) {
|
||||
var originalId = Array.isArray(originalIds) ? originalIds[i] : originalIds;
|
||||
var matched = originalId.match(pattern);
|
||||
|
||||
if (matched && originalId && originalId != "") {
|
||||
// if (originalId.indexOf("opendoar____::") != -1) {
|
||||
// this.dataProviderInfo.openDoarId = originalId.split("opendoar____::")[1];
|
||||
// } else if (originalId.indexOf("re3data_____::") != -1) {
|
||||
// this.dataProviderInfo.r3DataId = originalId.split("re3data_____::")[1];
|
||||
// }
|
||||
|
||||
let prefix = originalId.substr(0, 14);
|
||||
if(provenances.has(prefix)) {
|
||||
let provenance = provenances.get(prefix);
|
||||
if(this.dataProviderInfo.provenance.has(provenance.name)) {
|
||||
this.dataProviderInfo.provenance.get(provenance.name).url.push(provenance.urlPrefix + idRegex.exec(originalId)[0]);
|
||||
} else {
|
||||
this.dataProviderInfo.provenance.set(provenance.name, {"url": [provenance.urlPrefix + idRegex.exec(originalId)[0]]})
|
||||
}
|
||||
|
||||
// var replace = "/[^"+"::"+"]*$/";
|
||||
// var re = new RegExp(replace,"g");
|
||||
//
|
||||
// console.log(re.exec(originalId)[0]);
|
||||
|
||||
}
|
||||
this.dataProviderInfo.originalId = originalId;
|
||||
}
|
||||
this.dataProviderInfo.originalId = originalId;
|
||||
}
|
||||
}
|
||||
|
||||
console.log(this.dataProviderInfo.provenance);
|
||||
|
||||
this.dataProviderInfo.subjects = [];
|
||||
length = Array.isArray(data[0]['subjects']) ? data[0]['subjects'].length : 1;
|
||||
for(let i=0; i<length; i++) {
|
||||
|
@ -136,11 +164,12 @@ export class DataProviderService {
|
|||
}
|
||||
}
|
||||
|
||||
if(!Array.isArray(data[0]['description'])) {
|
||||
this.dataProviderInfo.description = (data[0]['description']) ? String(data[0]['description']) : "";
|
||||
} else {
|
||||
this.dataProviderInfo.description = (data[0]['description'][0]) ? String(data[0]['description'][0]) : "";
|
||||
}
|
||||
// if(!Array.isArray(data[0]['description'])) {
|
||||
// this.dataProviderInfo.description = (data[0]['description']) ? String(data[0]['description']) : "";
|
||||
// } else {
|
||||
// this.dataProviderInfo.description = (data[0]['description'][0]) ? String(data[0]['description'][0]) : "";
|
||||
// }
|
||||
this.dataProviderInfo.description = this.parsingFunctions.parseDescription(data[0] && data[0].description?data[0].description:[]);
|
||||
}
|
||||
|
||||
if(data[1] != null) {
|
||||
|
|
|
@ -7,32 +7,31 @@ import { RouterHelper } from '../../utils/routerHelper.class';
|
|||
import { EnvProperties } from '../../utils/properties/env-properties';
|
||||
import {AlertModal} from "../../utils/modal/alert";
|
||||
import {properties} from "../../../../environments/environment";
|
||||
import {OpenaireEntities} from "../../utils/properties/searchFields";
|
||||
|
||||
@Component({
|
||||
selector: 'relatedDatasourcesTab',
|
||||
template: `
|
||||
<errorMessages [status]="[fetchResults.searchUtils.status]"
|
||||
[type]="'related content providers'" tab_error_class=true>
|
||||
[type]="'related '+openaireEntities.DATASOURCES" tab_error_class=true>
|
||||
</errorMessages>
|
||||
|
||||
<div *ngIf="fetchResults.searchUtils.status == errorCodes.DONE && !loading">
|
||||
<div class="uk-text-muted uk-text-small uk-margin-bottom">
|
||||
*Only top 100 content providers that host research outcomes which are also available via the Federated Research Data Repository are shown.
|
||||
<div *ngIf="fetchResults.searchUtils.status == errorCodes.DONE && !loading" class="uk-text-small">
|
||||
<div class="uk-text-meta uk-margin-medium-bottom">
|
||||
*Only top 100 {{openaireEntities.DATASOURCES}} that host {{openaireEntities.RESULTS}} which are also available via the Federated Research Data Repository are shown.
|
||||
</div>
|
||||
<no-load-paging *ngIf="results.length >pageSize"
|
||||
[type]="'content providers'"
|
||||
(pageChange)="updatePage($event)"
|
||||
[page]="page" [pageSize]="pageSize"
|
||||
[totalResults]="results.length">
|
||||
</no-load-paging>
|
||||
<results-and-pages *ngIf="results.length >pageSize" [type]="openaireEntities.DATASOURCES"
|
||||
[page]="page" [pageSize]="pageSize"
|
||||
[totalResults]="results.length">
|
||||
</results-and-pages>
|
||||
|
||||
<table class="uk-table uk-table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="uk-text-center">Content Provider Name</th>
|
||||
<th>{{openaireEntities.DATASOURCE}}</th>
|
||||
<th *ngIf="fetchResults.results.length > 0 || fetchResults.searchUtils.status == errorCodes.ERROR"
|
||||
class="uk-text-center">
|
||||
Number of Research Outcomes
|
||||
{{openaireEntities.RESULTS}} in Explore
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
@ -40,7 +39,7 @@ import {properties} from "../../../../environments/environment";
|
|||
<ng-container *ngIf="results">
|
||||
<ng-container *ngFor="let result of results; let i=index">
|
||||
<tr *ngIf="i>=(page-1)*pageSize && i<page*pageSize">
|
||||
<td class="uk-text-center">
|
||||
<td>
|
||||
<a [queryParams]="{datasourceId: result.id}" routerLinkActive="router-link-active" [routerLink]="dataProviderUrl"
|
||||
(click)="onLinkClick()">
|
||||
{{result.name}}
|
||||
|
@ -59,12 +58,12 @@ import {properties} from "../../../../environments/environment";
|
|||
</ng-container>
|
||||
</tbody>
|
||||
</table>
|
||||
<no-load-paging *ngIf="results.length >pageSize"
|
||||
[type]="'content providers'"
|
||||
<paging-no-load *ngIf="results.length >pageSize"
|
||||
(pageChange)="updatePage($event)"
|
||||
[page]="page" [pageSize]="pageSize"
|
||||
[currentPage]="page"
|
||||
[size]="pageSize"
|
||||
[totalResults]="results.length">
|
||||
</no-load-paging>
|
||||
</paging-no-load>
|
||||
</div>
|
||||
`
|
||||
})
|
||||
|
@ -93,7 +92,9 @@ export class RelatedDatasourcesTabComponent {
|
|||
public pageSize: number = 10;
|
||||
public dataProviderUrl;
|
||||
|
||||
constructor () {}
|
||||
public openaireEntities = OpenaireEntities;
|
||||
|
||||
constructor () {}
|
||||
|
||||
ngOnInit() {
|
||||
this.dataProviderUrl = properties.searchLinkToDataProvider.split('?')[0];
|
||||
|
|
|
@ -6,6 +6,7 @@ import {EnvProperties} from '../../utils/properties/env-properties';
|
|||
import {StringUtils} from "../../utils/string-utils.class";
|
||||
import {Subscriber} from "rxjs";
|
||||
import {properties} from "../../../../environments/environment";
|
||||
import {OpenaireEntities} from "../../utils/properties/searchFields";
|
||||
|
||||
@Component({
|
||||
selector: 'statisticsTab',
|
||||
|
@ -13,42 +14,46 @@ import {properties} from "../../../../environments/environment";
|
|||
<errorMessages [status]="[fetchPublications.searchUtils.status, fetchDatasets.searchUtils.status,
|
||||
fetchSoftware.searchUtils.status, fetchOther.searchUtils.status]"
|
||||
[type]="'statistics'" tab_error_class=true></errorMessages>
|
||||
|
||||
<!-- <ng-container *ngIf="(fetchPublications.searchUtils.status == errorCodes.DONE -->
|
||||
<!-- || fetchDatasets.searchUtils.status == errorCodes.DONE-->
|
||||
<!-- || fetchSoftware.searchUtils.status == errorCodes.DONE-->
|
||||
<!-- || fetchOther.searchUtils.status == errorCodes.DONE)">-->
|
||||
<div *ngIf="fetchPublications.searchUtils.totalResults > 0 || (fetchDatasets.searchUtils.totalResults > 0 ||
|
||||
fetchSoftware.searchUtils.totalResults > 0 || fetchOther.searchUtils.totalResults > 0)"
|
||||
class="uk-grid uk-child-width-1-1 uk-child-width-1-2@m">
|
||||
<div class="uk-padding uk-padding-remove-top">
|
||||
<div *ngIf=" properties && !properties.useNewStatistisTool" class="uk-text-center uk-text-large">Produced research outcomes per year</div>
|
||||
<i-frame [url]=docsTimelineUrl ></i-frame>
|
||||
<div class="uk-card uk-card-default uk-card-body">
|
||||
<div *ngIf=" properties && !properties.useNewStatistisTool" class="uk-text-center uk-text-large">Produced {{openaireEntities.RESULTS}} per year</div>
|
||||
<i-frame [url]=docsTimelineUrl ></i-frame>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-padding uk-padding-remove-top">
|
||||
<div *ngIf=" properties && !properties.useNewStatistisTool" class="uk-text-center uk-text-large">Research outcomes Types</div>
|
||||
<i-frame [url]=docsTypesUrl ></i-frame>
|
||||
<div class="uk-card uk-card-default uk-card-body">
|
||||
<div *ngIf=" properties && !properties.useNewStatistisTool" class="uk-text-center uk-text-large">{{openaireEntities.RESULTS}} Types</div>
|
||||
<i-frame [url]=docsTypesUrl ></i-frame>
|
||||
</div>
|
||||
</div>
|
||||
<!-- </ng-container>-->
|
||||
|
||||
<!-- <div *ngIf="fetchPublications.searchUtils.totalResults > 0 || (fetchDatasets.searchUtils.totalResults > 0-->
|
||||
<!-- || fetchSoftware.searchUtils.totalResults > 0 || fetchOther.searchUtils.totalResults > 0)"-->
|
||||
<div
|
||||
class="uk-padding uk-padding-remove-top">
|
||||
<div *ngIf=" properties && !properties.useNewStatistisTool" class="uk-text-center uk-text-large">Research outcomes per funder</div>
|
||||
<i-frame [url]=docsFunderUrl ></i-frame>
|
||||
<div class="uk-padding uk-padding-remove-top">
|
||||
<div class="uk-card uk-card-default uk-card-body">
|
||||
<div *ngIf=" properties && !properties.useNewStatistisTool" class="uk-text-center uk-text-large">{{openaireEntities.RESULTS}} per funder</div>
|
||||
<i-frame [url]=docsFunderUrl ></i-frame>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div *ngIf="fetchPublications.searchUtils.totalResults > 0 "
|
||||
class="uk-padding uk-padding-remove-top">
|
||||
<div *ngIf=" properties && !properties.useNewStatistisTool" class="uk-text-center uk-text-large">Projects with most Publications</div>
|
||||
<i-frame [url]=pubsProjectsUrl ></i-frame>
|
||||
<div class="uk-card uk-card-default uk-card-body">
|
||||
<div *ngIf=" properties && !properties.useNewStatistisTool" class="uk-text-center uk-text-large">{{openaireEntities.PROJECTS}} with most {{openaireEntities.PUBLICATIONS}}</div>
|
||||
<i-frame [url]=pubsProjectsUrl ></i-frame>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div *ngIf="(fetchDatasets.searchUtils.totalResults > 0)"
|
||||
class="uk-padding uk-padding-remove-top">
|
||||
<div *ngIf=" properties && !properties.useNewStatistisTool" class="uk-text-center uk-text-large">Projects with most Research Data</div>
|
||||
<i-frame [url]=dataProjectsUrl></i-frame>
|
||||
<div class="uk-card uk-card-default uk-card-body">
|
||||
<div *ngIf=" properties && !properties.useNewStatistisTool" class="uk-text-center uk-text-large">{{openaireEntities.PROJECTS}} with most {{openaireEntities.DATASETS}}</div>
|
||||
<i-frame [url]=dataProjectsUrl></i-frame>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -69,6 +74,7 @@ export class StatisticsTabComponent {
|
|||
private pubsProjectsUrl:string;
|
||||
public errorCodes:ErrorCodes = new ErrorCodes();
|
||||
properties:EnvProperties;
|
||||
public openaireEntities = OpenaireEntities;
|
||||
sub;
|
||||
constructor (private route: ActivatedRoute) {}
|
||||
|
||||
|
@ -78,21 +84,21 @@ export class StatisticsTabComponent {
|
|||
|
||||
if (this.properties.useNewStatistisTool) {
|
||||
this.docsTimelineUrl = this.properties.statisticsFrameNewAPIURL +
|
||||
'chart?json='+StringUtils.URIEncode('{"library":"HighCharts","chartDescription":{"queries":[{"name":"Research outcomes","type":"column","query":{"name":"dtsrcYear","parameters":["'+this.datasourceId+'"]}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Produced research outcomes per year"},"subtitle":{},"yAxis":{"title":{"text":"Research outcomes"}},"xAxis":{"title":{"text":"Year"}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}');
|
||||
'chart?json='+StringUtils.URIEncode('{"library":"HighCharts","chartDescription":{"queries":[{"name":"'+this.openaireEntities.RESULTS+'","type":"column","query":{"name":"dtsrcYear","parameters":["'+this.datasourceId+'"]}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Produced '+this.openaireEntities.RESULTS+' per year"},"subtitle":{},"yAxis":{"title":{"text":"'+this.openaireEntities.RESULTS+'"}},"xAxis":{"title":{"text":"Year"}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}');
|
||||
this.docsTypesUrl = this.properties.statisticsFrameNewAPIURL +
|
||||
'chart?json='+StringUtils.URIEncode('{"library":"HighCharts","chartDescription":{"queries":[{"name":"Research outcomes ","type":"pie","query":{"name":"dtsrcPubs","parameters":["'+this.datasourceId+'"]}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Research outcomes types"},"subtitle":{},"yAxis":{"title":{"text":"Publications"}},"xAxis":{"title":{}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":true}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}');
|
||||
'chart?json='+StringUtils.URIEncode('{"library":"HighCharts","chartDescription":{"queries":[{"name":"'+this.openaireEntities.RESULTS+'","type":"pie","query":{"name":"dtsrcPubs","parameters":["'+this.datasourceId+'"]}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"'+this.openaireEntities.RESULTS+' types"},"subtitle":{},"yAxis":{"title":{"text":"Publications"}},"xAxis":{"title":{}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":true}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}');
|
||||
this.docsFunderUrl = this.properties.statisticsFrameNewAPIURL +
|
||||
'chart?json='+StringUtils.URIEncode('{"library":"HighCharts","chartDescription":{"queries":[{"name":"Research outcomes","type":"pie","query":{"name":"dtsrcPubsFund","parameters":["'+this.datasourceId+'"]}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Research outcomes per funder"},"subtitle":{},"yAxis":{"title":{}},"xAxis":{"title":{}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":true}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}');
|
||||
'chart?json='+StringUtils.URIEncode('{"library":"HighCharts","chartDescription":{"queries":[{"name":"'+this.openaireEntities.RESULTS+'","type":"pie","query":{"name":"dtsrcPubsFund","parameters":["'+this.datasourceId+'"]}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"'+this.openaireEntities.RESULTS+' per funder"},"subtitle":{},"yAxis":{"title":{}},"xAxis":{"title":{}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":true}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}');
|
||||
this.pubsProjectsUrl = this.properties.statisticsFrameNewAPIURL +
|
||||
'chart?json='+StringUtils.URIEncode('{"library":"HighCharts","chartDescription":{"queries":[{"name":"Publications","type":"bar","query":{"name":"dtsrcProjPubs","parameters":["'+this.datasourceId+'"]}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":" Projects with most publications"},"subtitle":{},"yAxis":{"title":{"text":"Publications"}},"xAxis":{"title":{"text":"Project"}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}');
|
||||
'chart?json='+StringUtils.URIEncode('{"library":"HighCharts","chartDescription":{"queries":[{"name":"'+this.openaireEntities.PUBLICATIONS+'","type":"bar","query":{"name":"dtsrcProjPubs","parameters":["'+this.datasourceId+'"]}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":" '+this.openaireEntities.PROJECTS+' with most '+this.openaireEntities.PUBLICATIONS+'"},"subtitle":{},"yAxis":{"title":{"text":"'+this.openaireEntities.PUBLICATIONS+'"}},"xAxis":{"title":{"text":"'+this.openaireEntities.PROJECT+'"}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}');
|
||||
this.dataProjectsUrl = this.properties.statisticsFrameNewAPIURL +
|
||||
'chart?json='+StringUtils.URIEncode('{"library":"HighCharts","chartDescription":{"queries":[{"name":"Research data","type":"bar","query":{"name":"dtsrcProjData","parameters":["'+this.datasourceId+'"]}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Projects with most research data"},"subtitle":{},"yAxis":{"title":{"text":"Research data"}},"xAxis":{"title":{"text":"Project"}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}');
|
||||
'chart?json='+StringUtils.URIEncode('{"library":"HighCharts","chartDescription":{"queries":[{"name":"'+this.openaireEntities.DATASETS+'","type":"bar","query":{"name":"dtsrcProjData","parameters":["'+this.datasourceId+'"]}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"'+this.openaireEntities.PROJECTS+' with most '+this.openaireEntities.DATASETS+'"},"subtitle":{},"yAxis":{"title":{"text":"'+this.openaireEntities.DATASETS+'"}},"xAxis":{"title":{"text":"'+this.openaireEntities.PROJECT+'"}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}');
|
||||
} else {
|
||||
this.docsTimelineUrl = this.properties.statisticsFrameAPIURL + 'chart.php?com=query&persistent=false&data={"query":"dtsrcYear","dtsrcName":"' + this.datasourceId + '","table": "result", "fields": [{"fld": "number", "agg": "count", "type": "line", "yaxis":1, "c":true}], "xaxis":{"name": "year", "agg": "avg"}, "group": "", "color": "", "type": "chart", "size":80, "sort": "xaxis", "xStyle":{"r": -30, "s": "6", "l": "-", "ft": "-", "wt": "-"}, "yaxisheaders": [""], "fieldsheaders": ["Research Outcomes"], "in": [{"f":0, "text": "Yearly"}], "filters": [{"name":"year","max":"2016","min":"1997"},{"name": "result_datasources-datasource-name", "values":[""], "to": "-1"}],"having": [], "incfilters": [], "inchaving": [], "title": "", "subtitle": "", "xaxistitle": "Year"}&w=90%&h=90%';
|
||||
this.docsTypesUrl = this.properties.statisticsFrameAPIURL + 'chart.php?com=query&persistent=false&data={"query":"dtsrcPubs","dtsrcName":"' + this.datasourceId + '", "table": "result", "fields": [{"fld": "number", "agg": "count", "type": "pie", "yaxis":1, "c":false}], "xaxis":{"name": "result_classifications-type", "agg": "avg"}, "group": "", "color": "", "type": "chart", "size":30, "sort": "xaxis", "xStyle":{"r": "-", "s": "-", "l": "-", "ft": "-", "wt": "-"}, "yaxisheaders": [""], "fieldsheaders": ["Research Outcomes"], "in": [], "filters": [{"name": "result_datasources-datasource-name", "values": [""], "to": "-1"}], "having": [], "incfilters": [], "inchaving": [], "title": "", "subtitle": "", "xaxistitle": ""}&w=90%&h=90%';
|
||||
this.docsFunderUrl = this.properties.statisticsFrameAPIURL + 'chart.php?com=query&persistent=false&data={"query":"dtsrcPubsFund","dtsrcName":"' + this.datasourceId + '", "table": "result", "fields": [{"fld": "number", "agg": "count", "type": "pie", "yaxis":1, "c":false}], "xaxis":{"name": "result_classifications-type", "agg": "avg"}, "group": "", "color": "", "type": "chart", "size":30, "sort": "xaxis", "xStyle":{"r": "-", "s": "-", "l": "-", "ft": "-", "wt": "-"}, "yaxisheaders": [""], "fieldsheaders": ["Research Outcomes"], "in": [], "filters": [{"name": "result_datasources-datasource-name", "values": [""], "to": "-1"}], "having": [], "incfilters": [], "inchaving": [], "title": "", "subtitle": "", "xaxistitle": ""}&w=90%&h=90%';
|
||||
this.dataProjectsUrl = this.properties.statisticsFrameAPIURL + 'chart.php?com=query&persistent=false&data={"query":"dtsrcProjData","dtsrcName":"' + this.datasourceId + '", "table": "result", "fields": [{"fld": "number", "agg": "count", "type": "bar", "yaxis":1, "c":false}], "xaxis":{"name": "result_classifications-type", "agg": "avg"}, "group": "", "color": "", "type": "chart", "size":30, "sort": "xaxis", "xStyle":{"r": "-", "s": "-", "l": "-", "ft": "-", "wt": "-"}, "yaxisheaders": [""], "fieldsheaders": ["Research Data"], "in": [], "filters": [{"name": "result_datasources-datasource-name", "values": [""], "to": "-1"}], "having": [], "incfilters": [], "inchaving": [], "title": "", "subtitle": "", "xaxistitle": ""}&w=90%&h=90%';
|
||||
this.pubsProjectsUrl = this.properties.statisticsFrameAPIURL + 'chart.php?com=query&persistent=false&data={"query":"dtsrcProjPubs","dtsrcName":"' + this.datasourceId + '", "table": "result", "fields": [{"fld": "number", "agg": "count", "type": "bar", "yaxis":1, "c":false}], "xaxis":{"name": "result_classifications-type", "agg": "avg"}, "group": "", "color": "", "type": "chart", "size":30, "sort": "xaxis", "xStyle":{"r": "-", "s": "-", "l": "-", "ft": "-", "wt": "-"}, "yaxisheaders": [""], "fieldsheaders": ["Publications"], "in": [], "filters": [{"name": "result_datasources-datasource-name", "values": [""], "to": "-1"}], "having": [], "incfilters": [], "inchaving": [], "title": "", "subtitle": "", "xaxistitle": ""}&w=90%&h=90%';
|
||||
this.docsTimelineUrl = this.properties.statisticsFrameAPIURL + 'chart.php?com=query&persistent=false&data={"query":"dtsrcYear","dtsrcName":"' + this.datasourceId + '","table": "result", "fields": [{"fld": "number", "agg": "count", "type": "line", "yaxis":1, "c":true}], "xaxis":{"name": "year", "agg": "avg"}, "group": "", "color": "", "type": "chart", "size":80, "sort": "xaxis", "xStyle":{"r": -30, "s": "6", "l": "-", "ft": "-", "wt": "-"}, "yaxisheaders": [""], "fieldsheaders": ["'+this.openaireEntities.RESULTS+'"], "in": [{"f":0, "text": "Yearly"}], "filters": [{"name":"year","max":"2016","min":"1997"},{"name": "result_datasources-datasource-name", "values":[""], "to": "-1"}],"having": [], "incfilters": [], "inchaving": [], "title": "", "subtitle": "", "xaxistitle": "Year"}&w=90%&h=90%';
|
||||
this.docsTypesUrl = this.properties.statisticsFrameAPIURL + 'chart.php?com=query&persistent=false&data={"query":"dtsrcPubs","dtsrcName":"' + this.datasourceId + '", "table": "result", "fields": [{"fld": "number", "agg": "count", "type": "pie", "yaxis":1, "c":false}], "xaxis":{"name": "result_classifications-type", "agg": "avg"}, "group": "", "color": "", "type": "chart", "size":30, "sort": "xaxis", "xStyle":{"r": "-", "s": "-", "l": "-", "ft": "-", "wt": "-"}, "yaxisheaders": [""], "fieldsheaders": ["'+this.openaireEntities.RESULTS+'"], "in": [], "filters": [{"name": "result_datasources-datasource-name", "values": [""], "to": "-1"}], "having": [], "incfilters": [], "inchaving": [], "title": "", "subtitle": "", "xaxistitle": ""}&w=90%&h=90%';
|
||||
this.docsFunderUrl = this.properties.statisticsFrameAPIURL + 'chart.php?com=query&persistent=false&data={"query":"dtsrcPubsFund","dtsrcName":"' + this.datasourceId + '", "table": "result", "fields": [{"fld": "number", "agg": "count", "type": "pie", "yaxis":1, "c":false}], "xaxis":{"name": "result_classifications-type", "agg": "avg"}, "group": "", "color": "", "type": "chart", "size":30, "sort": "xaxis", "xStyle":{"r": "-", "s": "-", "l": "-", "ft": "-", "wt": "-"}, "yaxisheaders": [""], "fieldsheaders": ["'+this.openaireEntities.RESULTS+'"], "in": [], "filters": [{"name": "result_datasources-datasource-name", "values": [""], "to": "-1"}], "having": [], "incfilters": [], "inchaving": [], "title": "", "subtitle": "", "xaxistitle": ""}&w=90%&h=90%';
|
||||
this.dataProjectsUrl = this.properties.statisticsFrameAPIURL + 'chart.php?com=query&persistent=false&data={"query":"dtsrcProjData","dtsrcName":"' + this.datasourceId + '", "table": "result", "fields": [{"fld": "number", "agg": "count", "type": "bar", "yaxis":1, "c":false}], "xaxis":{"name": "result_classifications-type", "agg": "avg"}, "group": "", "color": "", "type": "chart", "size":30, "sort": "xaxis", "xStyle":{"r": "-", "s": "-", "l": "-", "ft": "-", "wt": "-"}, "yaxisheaders": [""], "fieldsheaders": ["'+this.openaireEntities.DATASETS+'"], "in": [], "filters": [{"name": "result_datasources-datasource-name", "values": [""], "to": "-1"}], "having": [], "incfilters": [], "inchaving": [], "title": "", "subtitle": "", "xaxistitle": ""}&w=90%&h=90%';
|
||||
this.pubsProjectsUrl = this.properties.statisticsFrameAPIURL + 'chart.php?com=query&persistent=false&data={"query":"dtsrcProjPubs","dtsrcName":"' + this.datasourceId + '", "table": "result", "fields": [{"fld": "number", "agg": "count", "type": "bar", "yaxis":1, "c":false}], "xaxis":{"name": "result_classifications-type", "agg": "avg"}, "group": "", "color": "", "type": "chart", "size":30, "sort": "xaxis", "xStyle":{"r": "-", "s": "-", "l": "-", "ft": "-", "wt": "-"}, "yaxisheaders": [""], "fieldsheaders": ["'+this.openaireEntities.PUBLICATIONS+'"], "in": [], "filters": [{"name": "result_datasources-datasource-name", "values": [""], "to": "-1"}], "having": [], "incfilters": [], "inchaving": [], "title": "", "subtitle": "", "xaxistitle": ""}&w=90%&h=90%';
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,3 +1,17 @@
|
|||
import {properties} from "../../../../environments/environment";
|
||||
|
||||
export class DataproviderProvenance {
|
||||
provenance: Map<string, {"urlPrefix": string, "name": string}>;
|
||||
|
||||
constructor() {
|
||||
this.provenance = new Map();
|
||||
this.provenance.set("opendoar____::", {"urlPrefix": properties.openDoarURL, "name": "OpenDOAR"});//, "idRegexPrefix": ""});
|
||||
this.provenance.set("re3data_____::", {"urlPrefix": properties.r3DataURL, "name": "re3data.org"});
|
||||
this.provenance.set("fairsharing_::", {"urlPrefix": properties.fairSharingURL, "name": "FAIRsharing"});
|
||||
this.provenance.set("eosc________::", {"urlPrefix": properties.eoscMarketplaceURL, "name": "EOSC Service Catalogue"});
|
||||
}
|
||||
}
|
||||
|
||||
export class DataProviderInfo {
|
||||
title: { "name": string, "url": string };
|
||||
officialName: string;
|
||||
|
@ -7,10 +21,11 @@ export class DataProviderInfo {
|
|||
oaiPmhURL: string;
|
||||
openDoarId: string;
|
||||
r3DataId: string;
|
||||
provenance: Map<string, {"url": string[]}>;
|
||||
originalId: string;
|
||||
countries: string[];
|
||||
journal: {"journal": "", "issn": string, "lissn": string, "eissn": string};
|
||||
description: string;
|
||||
description: string[] = [];
|
||||
subjects: string[];
|
||||
|
||||
fundedContent: string; // search query
|
||||
|
|
|
@ -43,6 +43,8 @@ export interface EnvProperties {
|
|||
cordisURL?: string;
|
||||
openDoarURL?: string;
|
||||
r3DataURL?: string;
|
||||
fairSharingURL?: string,
|
||||
eoscMarketplaceURL?: string,
|
||||
sherpaURL?: string;
|
||||
sherpaURLSuffix?: string;
|
||||
zenodo?: string;
|
||||
|
|
|
@ -776,5 +776,15 @@ export enum OpenaireEntities {
|
|||
PROJECTS = "Projects",
|
||||
ORGANIZATIONS = "Organizations",
|
||||
DATASOURCES = "Datasources",
|
||||
COMMUNITIES = "Research communities"
|
||||
COMMUNITIES = "Research communities",
|
||||
|
||||
RESULT = "Research product",
|
||||
PUBLICATION = "Publication",
|
||||
DATASET = "Research data",
|
||||
SOFTWARE_SINGULAR = "Research software",
|
||||
OTHER_SINGULAR = "Other research product",
|
||||
PROJECT = "Project",
|
||||
ORGANIZATION = "Organization",
|
||||
DATASOURCE = "Datasource",
|
||||
COMMUNITY = "Research community"
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue