[plugins-functionality | WIP]
This commit is contained in:
parent
0137e57583
commit
2b1de70ce0
|
@ -1,837 +1,14 @@
|
|||
<div>
|
||||
<ng-template #tab_content
|
||||
let-resultType="resultType" let-fetch="fetch" let-searchLinkToAdvancedPage="searchLinkToAdvancedPage"
|
||||
let-params="params" let-type="type" let-typeName="typeName">
|
||||
<div class="uk-grid uk-margin-remove">
|
||||
<div class="uk-width-expand uk-padding uk-padding-remove-horizontal">
|
||||
<search-tab [fetch]="fetch" [resultType]="resultType" [params]="params"
|
||||
[searchLinkToAdvancedPage]="searchLinkToAdvancedPage" [properties]="properties">
|
||||
</search-tab>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #analytics_tab_content
|
||||
let-type="type" let-typeName="typeName">
|
||||
<div *ngIf="analyticsActiveTab == type && isEntityEnabled(type)
|
||||
&& statistics.statisticsSum && statistics.statisticsDisplay && statistics.statisticsSum[type].total>0
|
||||
&& (statistics.statisticsDisplay.entities[type].numbers.map['total']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities[type].numbers.map['project']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities[type].numbers.map['open']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities[type].numbers.map['closed']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities[type].numbers.map['embargo']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities[type].numbers.map['restricted']['showInMonitor']
|
||||
|| (statistics.allowedEntitiesMode['showInMonitor'] && statistics.statisticsSum
|
||||
&& statistics.allowedChartsMode['showInMonitor'] && statistics.statisticsSum[type]
|
||||
&& statistics.allowedChartsMode['showInMonitor'][type] && statistics.statisticsSum[type].total > 0
|
||||
&& statistics.allowedChartsMode['showInMonitor'][type].length > 0) )">
|
||||
<div class="tab-header uk-margin-bottom">
|
||||
{{typeName}}
|
||||
</div>
|
||||
<ng-container *ngTemplateOutlet="stats; context: {
|
||||
entity: type, entityName: typeName,
|
||||
statisticsSum:statistics.statisticsSum, statisticsDisplay:statistics.statisticsDisplay,
|
||||
allowedEntities: statistics.allowedEntitiesMode['showInMonitor'],
|
||||
allowedCharts:statistics.allowedChartsMode['showInMonitor'],
|
||||
showChartTitle: statistics.chartTitlesMode['showInMonitor'],
|
||||
chartsInfoMap:statistics.chartsInfoMap, showIn:'showInMonitor'}">
|
||||
</ng-container>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #stats let-entity="entity" let-entityName="entityName" let-statisticsSum="statisticsSum"
|
||||
let-statisticsDisplay="statisticsDisplay" let-allowedEntities="allowedEntities"
|
||||
let-allowedCharts="allowedCharts" let-chartsInfoMap="chartsInfoMap"
|
||||
let-showChartTitle="showChartTitle"
|
||||
let-showIn="showIn">
|
||||
<div *ngIf=" showIn == 'showInMonitor' && allowedCharts && allowedCharts[entity] && allowedCharts[entity].length == 0 &&
|
||||
!statisticsDisplay.entities[entity].numbers.map['total'][showIn] && !statisticsDisplay.entities[entity].numbers.map['project'][showIn] &&
|
||||
!statisticsDisplay.entities[entity].numbers.map['open'][showIn] && !statisticsDisplay.entities[entity].numbers.map['closed'][showIn] &&
|
||||
!statisticsDisplay.entities[entity].numbers.map['embargo'][showIn] && !statisticsDisplay.entities[entity].numbers.map['restricted'][showIn]"
|
||||
class="uk-alert uk-alert-primary">
|
||||
No graphs available
|
||||
</div>
|
||||
<div *ngIf="statisticsSum && statisticsDisplay && statisticsSum[entity].total > 0"
|
||||
[class]="'uk-grid uk-grid-small uk-grid-match ' + (showIn == 'showInMonitor' ? ' uk-child-width-1-3@s uk-child-width-1-6@m' : ' uk-child-width-1-1@s uk-child-width-1-3@m')"
|
||||
uk-grid>
|
||||
<div *ngIf="statisticsDisplay.entities[entity].numbers.map['total'][showIn]">
|
||||
<div class="uk-card uk-card-default uk-padding-small">
|
||||
<div class="uk-h4 uk-text-bold">
|
||||
{{statisticsSum[entity].total|number}}
|
||||
</div>
|
||||
<div>
|
||||
Total
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="statisticsDisplay.entities[entity].numbers.map['project'][showIn] && statisticsSum[entity].projects">
|
||||
<div class="uk-card uk-card-default uk-padding-small">
|
||||
<div class="uk-h4 uk-text-bold">
|
||||
{{statisticsSum[entity].projects|number}}
|
||||
</div>
|
||||
<div>
|
||||
Total linked projects
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="statisticsDisplay.entities[entity].numbers.map['open'][showIn] && statisticsSum[entity].open_access">
|
||||
<div class="uk-card uk-card-default uk-padding-small">
|
||||
<div class="uk-h4 uk-text-bold">
|
||||
{{statisticsSum[entity].open_access|number}}
|
||||
</div>
|
||||
<div>
|
||||
Open access
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="statisticsDisplay.entities[entity].numbers.map['closed'][showIn] && statisticsSum[entity].closed_access">
|
||||
<div class="uk-card uk-card-default uk-padding-small">
|
||||
<div class="uk-h4 uk-text-bold">
|
||||
{{statisticsSum[entity].closed_access|number}}
|
||||
</div>
|
||||
<div>
|
||||
Closed access
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="statisticsDisplay.entities[entity].numbers.map['embargo'][showIn] && statisticsSum[entity].embargo">
|
||||
<div class="uk-card uk-card-default uk-padding-small">
|
||||
<div class="uk-h4 uk-text-bold">
|
||||
{{statisticsSum[entity].embargo|number}}
|
||||
</div>
|
||||
<div>
|
||||
Embargoed
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="statisticsDisplay.entities[entity].numbers.map['restricted'][showIn] && statisticsSum[entity].restricted">
|
||||
<div class="uk-card uk-card-default uk-padding-small">
|
||||
<div class="uk-h4 uk-text-bold">
|
||||
{{statisticsSum[entity].restricted|number}}
|
||||
</div>
|
||||
<div>
|
||||
Restricted
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="allowedEntities &&
|
||||
statisticsSum && allowedCharts && statisticsSum[entity] &&
|
||||
allowedCharts[entity] && statisticsSum[entity].total>0 &&
|
||||
allowedCharts[entity].length>0">
|
||||
<div *ngIf="showIn == 'showInDashboard'">
|
||||
<div>
|
||||
<div class="uk-position-relative">
|
||||
<ul class="uk-list">
|
||||
<li *ngFor="let chart of allowedCharts[entity]">
|
||||
<div class="iframeContainer uk-height-medium uk-margin-medium-top uk-card uk-card-default uk-card-body">
|
||||
<div *ngIf="showChartTitle[chart]">
|
||||
{{chartsInfoMap[chart].title}}
|
||||
</div>
|
||||
<iframe [src]=chartsInfoMap[chart].url scrolling="no"></iframe>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="showIn == 'showInMonitor'" class="uk-grid uk-child-width-1-2@l uk-child-width-1-1@m ">
|
||||
<div *ngFor="let chart of allowedCharts[entity]" class="uk-clearfix uk-margin-bottom">
|
||||
<div class="iframeContainer uk-height-large uk-margin-medium-top uk-card uk-card-default uk-card-body">
|
||||
<div *ngIf="showChartTitle[chart]">
|
||||
{{chartsInfoMap[chart].title}}
|
||||
</div>
|
||||
<iframe [src]=chartsInfoMap[chart].url scrolling="no"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<div *ngIf="portal && community && !isPrivate()" >
|
||||
<div *ngIf="portal && community" class="generalSearchForm heroBackground"> <!-- this div will have the
|
||||
customized color or image -->
|
||||
<div class="uk-container uk-container-large uk-flex uk-flex-center">
|
||||
<div class="uk-width-2-3@m uk-width-1-2@l uk-margin-large-top uk-margin-large-bottom">
|
||||
<h1 *ngIf="community.title" class="uk-text-center uk-h2 uk-margin-remove">
|
||||
{{community.shortTitle}}
|
||||
</h1>
|
||||
<div *ngIf="community.shortTitle && community.title != community.shortTitle"
|
||||
class="uk-text-center uk-margin-top">
|
||||
{{community.title}}
|
||||
</div>
|
||||
<!-- <div [class.uk-invisible]="disableSelect" class="uk-margin-medium-top">-->
|
||||
<!-- <advanced-search-input #advanced (searchEmitter)="goTo(true)">-->
|
||||
<!-- <entities-selection [simpleView]="true" currentEntity="result" [selectedEntity]="selectedEntity" [customFilter]="customFilter"-->
|
||||
<!-- (selectionChange)="entityChanged($event);advanced.focusNext(input, $event)" (disableSelectEmitter)="disableSelectChange($event)"-->
|
||||
<!-- [onChangeNavigate]="false"></entities-selection>-->
|
||||
<!-- <div input #input placeholder="Scholary works" [searchable]="true" [hint]="'Search in OpenAIRE'" [(value)]="keyword"></div>-->
|
||||
<!-- </advanced-search-input>-->
|
||||
<!-- <div *ngIf="selectedEntity === 'result' && input.focused" (click)="$event.stopPropagation();advanced.focusNext(input, $event)" class="uk-dropdown uk-display-block uk-margin-small-top uk-width-auto">-->
|
||||
<!-- <div class="uk-padding-small">-->
|
||||
<!-- <quick-selections [resultTypes]="resultTypes" [quickFilter]="resultsQuickFilter"></quick-selections>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<div [class.uk-invisible]="disableSelect" class="uk-margin-medium-top">
|
||||
<advanced-search-input #advanced (searchEmitter)="goTo(true)">
|
||||
<entities-selection class="uk-width-1-3" [simpleView]="true" currentEntity="result" [selectedEntity]="selectedEntity" [customFilter]="customFilter"
|
||||
(selectionChange)="entityChanged($event);advanced.focusNext(input, $event)" (disableSelectEmitter)="disableSelectChange($event)"
|
||||
[onChangeNavigate]="false"></entities-selection>
|
||||
<div input #input class="uk-width-expand" placeholder="Scholary works" [searchable]="true" [hint]="'Search in OpenAIRE'" [(value)]="keyword"></div>
|
||||
</advanced-search-input>
|
||||
<div *ngIf="selectedEntity === 'result' && input.focused" (click)="$event.stopPropagation();advanced.focusNext(input, $event)" class="uk-dropdown uk-display-block uk-margin-small-top uk-width-auto" uk-dropdown="mode: click">
|
||||
<div class="uk-padding-small">
|
||||
<quick-selections [resultTypes]="resultTypes" [quickFilter]="resultsQuickFilter"></quick-selections>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div *ngIf="portal && community" class=" uk-container uk-container-large uk-section uk-section-small">
|
||||
<div *ngIf="communityId" >
|
||||
<div>
|
||||
<div class="main-tabs-div">
|
||||
<!-- <ng-template #summary_tab>
|
||||
<div *ngIf="community" class="uk-grid uk-margin-remove">
|
||||
<div class="uk-width-expand uk-padding uk-inline">
|
||||
<div *ngIf="community.description" class="uk-margin-bottom ">
|
||||
<div [innerHTML]="community.description | safeHtml"></div>
|
||||
</div>
|
||||
|
||||
<div *ngIf="isRouteEnabled('/curators')" class="uk-margin-small-bottom">
|
||||
<curators [longView]="false"></curators>
|
||||
</div>
|
||||
<div [class]="community.date || subscribers ? 'uk-margin-small-bottom' : ''">
|
||||
<span *ngIf="community.date" class="uk-margin-right">
|
||||
<span
|
||||
class="lowOpacityColor uk-text-meta">Created: </span> {{community.date | date:'dd-MMM-yyyy'}}
|
||||
</span>
|
||||
<span>
|
||||
<subscribe *ngIf="communityId" [communityId]="communityId" showNumbers=true
|
||||
(countSubscribersEvent)="countSubscribersEvent($event)"></subscribe>
|
||||
</span>
|
||||
</div>
|
||||
<div [class]="((projectTotal && projectTotal > 0 && isEntityEnabled('project') && isRouteEnabled(searchLinkToProjects)) ||
|
||||
(contentProviderTotal && contentProviderTotal > 0 && isEntityEnabled('datasource') && isRouteEnabled(searchLinkToDataProviders)))
|
||||
? 'uk-margin-small-bottom' : ''">
|
||||
<span
|
||||
*ngIf="projectTotal && projectTotal > 0 && isEntityEnabled('project') && isRouteEnabled(searchLinkToProjects)">
|
||||
<span class="uk-text-meta">Projects: </span>
|
||||
<a class="uk-margin-auto-vertical uk-margin-auto portal-link" [queryParams]=params
|
||||
routerLinkActive="router-link-active"
|
||||
[routerLink]="searchLinkToProjects">{{projectTotal|number}}
|
||||
</a>
|
||||
</span>
|
||||
<span
|
||||
*ngIf="contentProviderTotal && contentProviderTotal > 0 && isEntityEnabled('datasource') && isRouteEnabled(searchLinkToDataProviders)"
|
||||
[class]="'uk-display-inline-block '+((projectTotal && projectTotal > 0 && isEntityEnabled('project') && isRouteEnabled(searchLinkToProjects)) ? 'uk-margin-left' : '')">
|
||||
<span class="uk-text-meta">Content Providers: </span>
|
||||
<a class="uk-margin-auto-vertical uk-margin-auto portal-link" [queryParams]=params
|
||||
routerLinkActive="router-link-active"
|
||||
[routerLink]="searchLinkToDataProviders">{{contentProviderTotal|number}}
|
||||
</a>
|
||||
</span>
|
||||
<span *ngIf="projectsCalculated && contentProvidersCalculated &&
|
||||
((projectTotal && projectTotal > 0 && isEntityEnabled('project') && isRouteEnabled(searchLinkToProjects))
|
||||
|| (contentProviderTotal && contentProviderTotal > 0 && isEntityEnabled('datasource') && isRouteEnabled(searchLinkToDataProviders)))"
|
||||
class="uk-icon uk-text-meta uk-margin-small-left"
|
||||
title="{{buildProjectsAndContentProvidesTooltip()}}"
|
||||
uk-tooltip="pos:bottom-right; delay:10; cls: community-page-tooltip uk-width-medium">
|
||||
<svg width="15" height="15" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="question"
|
||||
ratio="1">
|
||||
<circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle>
|
||||
<circle cx="10.44" cy="14.42" r="1.05"></circle>
|
||||
<path fill="none" stroke="#000" stroke-width="1.2"
|
||||
d="M8.17,7.79 C8.17,4.75 12.72,4.73 12.72,7.72 C12.72,8.67 11.81,9.15 11.23,9.75 C10.75,10.24 10.51,10.73 10.45,11.4 C10.44,11.53 10.43,11.64 10.43,11.75"></path>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
*ngIf="(zenodoCommunityIdS.length + ((masterZenodoCommunity) ? 1 : 0) > 0) && isRouteEnabled(shareInZenodoPage)"
|
||||
class="">
|
||||
<span class="lowOpacityColor uk-text-meta">Linked to</span>
|
||||
<a class="portal-link uk-margin-small-left uk-margin-small-right" [queryParams]=params
|
||||
routerLinkActive="router-link-active" [routerLink]="shareInZenodoPage">
|
||||
<span>{{zenodoCommunityIdS.length + ((masterZenodoCommunity) ? 1 : 0)}}</span>
|
||||
</a>
|
||||
<span class="lowOpacityColor uk-text-meta">Zenodo Communities</span>
|
||||
<span class="uk-icon uk-text-meta uk-margin-small-left"
|
||||
title="{{buildZenodoCommunitiesTooltip()}}"
|
||||
uk-tooltip="pos:bottom-right; delay:10; cls: community-page-tooltip uk-width-medium">
|
||||
<svg width="15" height="15" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="question"
|
||||
ratio="1">
|
||||
<circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle>
|
||||
<circle cx="10.44" cy="14.42" r="1.05"></circle>
|
||||
<path fill="none" stroke="#000" stroke-width="1.2"
|
||||
d="M8.17,7.79 C8.17,4.75 12.72,4.73 12.72,7.72 C12.72,8.67 11.81,9.15 11.23,9.75 C10.75,10.24 10.51,10.73 10.45,11.4 C10.44,11.53 10.43,11.64 10.43,11.75"></path>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="isRouteEnabled('/subjects') && community.subjects && community.subjects.length > 0"
|
||||
class="uk-width-1-3@m uk-padding right-column uk-inline">
|
||||
<div class="uk-margin-bottom">
|
||||
<div class="uk-text-meta uk-margin-small-bottom">Subjects</div>
|
||||
<span *ngFor="let subject of community.subjects.slice(0,20) let i=index">
|
||||
<span *ngIf="subject != ''">
|
||||
<a class="portal-link"
|
||||
[queryParams]="{f0:'resultsubject',fv0:createParams(subject)}"
|
||||
routerLinkActive="router-link-active" [routerLink]="searchLinkToAdvancedResults">
|
||||
<span>{{subject}}</span>
|
||||
</a>
|
||||
<span *ngIf="i < community.subjects.length-1 && i != 19">, </span>
|
||||
</span>
|
||||
</span>
|
||||
<div
|
||||
class="uk-margin-top uk-animation-fade uk-padding uk-padding-remove-top uk-position-bottom-right">
|
||||
<a class="portal-link" routerLinkActive="router-link-active" [routerLink]="'/subjects'">
|
||||
View all
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template #publications_tab>
|
||||
<ng-container *ngTemplateOutlet="tab_content; context: {
|
||||
resultType: 'publication', fetch: fetchPublications,
|
||||
searchLinkToAdvancedPage: properties.searchLinkToAdvancedResults,
|
||||
params: getParamsForSearchLink('publications'),
|
||||
type: 'publication', typeName: 'publication',
|
||||
showImpactFactors:(community.communityId == 'elixir-gr' || community.communityId == 'inspired-ris' )}">
|
||||
</ng-container>
|
||||
</ng-template>
|
||||
<ng-template #datasets_tab>
|
||||
<ng-container *ngTemplateOutlet="tab_content; context: {
|
||||
resultType: 'dataset', fetch: fetchDatasets,
|
||||
searchLinkToAdvancedPage: properties.searchLinkToAdvancedResults,
|
||||
params: getParamsForSearchLink('datasets'),
|
||||
type: 'dataset', typeName: 'research data',
|
||||
showImpactFactors:(community.communityId == 'elixir-gr' || community.communityId == 'inspired-ris')}">
|
||||
</ng-container>
|
||||
</ng-template>
|
||||
<ng-template #software_tab>
|
||||
<ng-container *ngTemplateOutlet="tab_content; context: {
|
||||
resultType: 'software', fetch: fetchSoftware,
|
||||
searchLinkToAdvancedPage: properties.searchLinkToAdvancedResults,
|
||||
params: getParamsForSearchLink('software'),
|
||||
type: 'software', typeName: 'software',
|
||||
showImpactFactors:(community.communityId == 'elixir-gr' || community.communityId == 'inspired-ris')}">
|
||||
</ng-container>
|
||||
</ng-template>
|
||||
<ng-template #other_tab>
|
||||
<ng-container *ngTemplateOutlet="tab_content; context: {
|
||||
resultType: 'other', fetch: fetchOrps,
|
||||
searchLinkToAdvancedPage: properties.searchLinkToAdvancedResults,
|
||||
params: getParamsForSearchLink('other'),
|
||||
type: 'orp', typeName: 'other products',
|
||||
showImpactFactors:(community.communityId == 'elixir-gr' || community.communityId == 'inspired-ris')}">
|
||||
</ng-container>
|
||||
</ng-template>
|
||||
<ng-template #analytics_tab>
|
||||
<div *ngIf="statistics && statistics.statisticsDisplay && statistics.statisticsDisplay.isActive"
|
||||
class="content-overflow uk-overflow-auto">
|
||||
<div *ngIf="statistics && activeTab=='analytics'" class="uk-width-expand uk-padding">
|
||||
|
||||
<div class="uk-text-center">
|
||||
<button *ngIf="isEntityEnabled('publication')
|
||||
&& statistics.statisticsSum && statistics.statisticsDisplay && statistics.statisticsSum['publication'].total>0
|
||||
&& statistics.statisticsSum && statistics.statisticsDisplay && statistics.statisticsSum['publication'].total>0
|
||||
&&
|
||||
( statistics.statisticsDisplay.entities['publication'].numbers.map['total']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['publication'].numbers.map['project']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['publication'].numbers.map['open']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['publication'].numbers.map['closed']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['publication'].numbers.map['embargo']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['publication'].numbers.map['restricted']['showInMonitor']
|
||||
|| ( statistics.allowedEntitiesMode['showInMonitor'] && statistics.statisticsSum
|
||||
&& statistics.allowedChartsMode['showInMonitor'] && statistics.statisticsSum['publication']
|
||||
&& statistics.allowedChartsMode['showInMonitor']['publication'] && statistics.statisticsSum['publication'].total > 0
|
||||
&& statistics.allowedChartsMode['showInMonitor']['publication'].length > 0))"
|
||||
[class]="(analyticsActiveTab == 'publication' ? 'active ' : '')+' publicationAnalytics uk-icon uk-icon-button uk-margin-right'"
|
||||
uk-tooltip="title: Publications" (click)="analyticsActiveTab = 'publication'">
|
||||
<img src="assets/connect-assets/home/entities/publication.svg">
|
||||
</button>
|
||||
<button *ngIf="isEntityEnabled('dataset')
|
||||
&& statistics.statisticsSum && statistics.statisticsDisplay && statistics.statisticsSum['dataset'].total>0
|
||||
&&
|
||||
( statistics.statisticsDisplay.entities['dataset'].numbers.map['total']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['dataset'].numbers.map['project']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['dataset'].numbers.map['open']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['dataset'].numbers.map['closed']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['dataset'].numbers.map['embargo']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['dataset'].numbers.map['restricted']['showInMonitor']
|
||||
|| ( statistics.allowedEntitiesMode['showInMonitor'] && statistics.statisticsSum
|
||||
&& statistics.allowedChartsMode['showInMonitor'] && statistics.statisticsSum['dataset']
|
||||
&& statistics.allowedChartsMode['showInMonitor']['dataset'] && statistics.statisticsSum['dataset'].total > 0
|
||||
&& statistics.allowedChartsMode['showInMonitor']['dataset'].length > 0))"
|
||||
[class]="(analyticsActiveTab == 'dataset' ? 'active ' : '')+' datasetAnalytics uk-icon uk-icon-button uk-margin-right'"
|
||||
uk-tooltip="title: Research Data" (click)="analyticsActiveTab = 'dataset'">
|
||||
<img src="assets/connect-assets/home/entities/dataset.svg">
|
||||
</button>
|
||||
<button *ngIf="isEntityEnabled('software')
|
||||
&& statistics.statisticsSum && statistics.statisticsDisplay && statistics.statisticsSum['software'].total>0
|
||||
&&
|
||||
( statistics.statisticsDisplay.entities['software'].numbers.map['total']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['software'].numbers.map['project']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['software'].numbers.map['open']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['software'].numbers.map['closed']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['software'].numbers.map['embargo']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['software'].numbers.map['restricted']['showInMonitor']
|
||||
|| ( statistics.allowedEntitiesMode['showInMonitor'] && statistics.statisticsSum
|
||||
&& statistics.allowedChartsMode['showInMonitor'] && statistics.statisticsSum['software']
|
||||
&& statistics.allowedChartsMode['showInMonitor']['software'] && statistics.statisticsSum['software'].total > 0
|
||||
&& statistics.allowedChartsMode['showInMonitor']['software'].length > 0))"
|
||||
[class]="(analyticsActiveTab == 'software' ? 'active ' : '')+' softwareAnalytics uk-icon uk-icon-button uk-margin-right'"
|
||||
uk-tooltip="title: Software" (click)="analyticsActiveTab = 'software'">
|
||||
<img src="assets/connect-assets/home/entities/software.svg">
|
||||
</button>
|
||||
<button *ngIf="isEntityEnabled('orp')
|
||||
&& statistics.statisticsSum && statistics.statisticsDisplay && statistics.statisticsSum['orp'].total>0
|
||||
&&
|
||||
( statistics.statisticsDisplay.entities['orp'].numbers.map['total']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['orp'].numbers.map['project']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['orp'].numbers.map['open']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['orp'].numbers.map['closed']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['orp'].numbers.map['embargo']['showInMonitor']
|
||||
|| statistics.statisticsDisplay.entities['orp'].numbers.map['restricted']['showInMonitor']
|
||||
|| ( statistics.allowedEntitiesMode['showInMonitor'] && statistics.statisticsSum
|
||||
&& statistics.allowedChartsMode['showInMonitor'] && statistics.statisticsSum['orp']
|
||||
&& statistics.allowedChartsMode['showInMonitor']['orp'] && statistics.statisticsSum['orp'].total > 0
|
||||
&& statistics.allowedChartsMode['showInMonitor']['orp'].length > 0))"
|
||||
[class]="(analyticsActiveTab == 'orp' ? 'active ' : '')+' otherAnalytics uk-icon uk-icon-button'"
|
||||
uk-tooltip="title: Other Research Products" (click)="analyticsActiveTab = 'orp'">
|
||||
<img src="assets/connect-assets/home/entities/other.svg">
|
||||
</button>
|
||||
</div>
|
||||
<hr>
|
||||
<ng-container *ngTemplateOutlet="analytics_tab_content; context: {
|
||||
type: 'publication', typeName: 'publications'}">
|
||||
</ng-container>
|
||||
<ng-container *ngTemplateOutlet="analytics_tab_content; context: {
|
||||
type: 'dataset', typeName: 'research data'}">
|
||||
</ng-container>
|
||||
<ng-container *ngTemplateOutlet="analytics_tab_content; context: {
|
||||
type: 'software', typeName: 'software'}">
|
||||
</ng-container>
|
||||
<ng-container *ngTemplateOutlet="analytics_tab_content; context: {
|
||||
type: 'orp', typeName: 'other products'}">
|
||||
</ng-container>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template #enermaps_tab>
|
||||
<div class="uk-grid uk-margin-remove">
|
||||
<div class="uk-width-expand uk-padding">
|
||||
<search-tab [fetch]="fetchFeaturedDatasets" [resultType]="'dataset'"
|
||||
[properties]="properties" customTitle="Featured Datasets"
|
||||
[showImpactFactors]="false" [showEnermaps]="true">
|
||||
<div class="uk-margin-top uk-margin-bottom uk-text-meta">
|
||||
<div>Here are listed some of the most important energy datasets as selected by energy experts.</div>
|
||||
<div>
|
||||
Check them if you want to easily explore and visualize the European energy landscape,
|
||||
using only well-known datasets which you can trust.
|
||||
</div>
|
||||
</div>
|
||||
</search-tab>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template #mapping_tab>
|
||||
<div *ngIf="activeTab == 'mapping'">
|
||||
<div
|
||||
class="uk-margin-left tab-header uk-margin uk-margin-top ">
|
||||
Browse OpenAIRE Research Graph through a map of the main concepts linked to Coronavirus
|
||||
</div>
|
||||
<div class="uk-padding">
|
||||
<iframe src="https://openaire.opscidia.com/?iframe=true&keyword=covid19&mapping_size=4"
|
||||
title="Opscidia Ontology mapping" class="uk-width-1-1" style="height:700px"></iframe>
|
||||
<span
|
||||
class=" uk-text-baseline uk-text-meta uk-text-left ">Powered by <a
|
||||
href="http://www.opscidia.com/" target="_blank" class="">Opscidia</a> and <a
|
||||
href="https://graph.openaire.eu/" target="_blank" class="">OpenAIRE Research Graph</a> </span>
|
||||
<span class="uk-text-right uk-float-right uk-text-baseline uk-text-meta"> Visit <a
|
||||
class=" uk-margin-right uk-margin-small-top"
|
||||
href="https://openaire.opscidia.com/?iframe=true&keyword=covid19&mapping_size=4" target="_blank" >
|
||||
Opscidia Tool
|
||||
</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template #twitter_tab *ngIf="properties.environment == 'development'">
|
||||
<div>
|
||||
<div>
|
||||
<a href="https://twitter.com/{{ communityInfo.twitterAccount }}?ref_src=twsrc%5Etfw" class="twitter-timeline" data-height="900">
|
||||
Tweets by {{ communityInfo.twitterAccount }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template> -->
|
||||
|
||||
<div id="mytabs" class="uk-grid uk-margin-remove-left uk-position-relative">
|
||||
<div class="uk-margin-medium-right uk-margin-top uk uk-padding-remove uk-width-expand">
|
||||
<div class="uk-width-1-1" uk-slider="finite: true">
|
||||
<div class="uk-position-relative " >
|
||||
<div class="uk-slider-container ">
|
||||
<ul class=" uk-slider-items " style="flex-wrap: nowrap !important;" >
|
||||
<li (click)="onSelectActiveTab('summary')">
|
||||
<ul class="uk-tab">
|
||||
<li [class.uk-active]="activeTab == 'summary'">
|
||||
<a class="uk-width-1-1 uk-height-1-1 uk-flex uk-flex-center">
|
||||
Summary
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li *ngIf="fetchPublications.searchUtils.totalResults > 0 && isEntityEnabled('publication')"
|
||||
(click)="onSelectActiveTab('publications')">
|
||||
<ul class="uk-tab">
|
||||
<li [class.uk-active]="activeTab == 'publication'">
|
||||
<a class="uk-width-1-1 uk-height-1-1 uk-flex uk-flex-center">
|
||||
{{openaireEntities.PUBLICATIONS}} ({{fetchPublications.searchUtils.totalResults | number}})
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li *ngIf="fetchDatasets.searchUtils.totalResults > 0 && isEntityEnabled('dataset')"
|
||||
(click)="onSelectActiveTab('datasets')">
|
||||
<ul class="uk-tab">
|
||||
<li [class.uk-active]="activeTab == 'dataset'">
|
||||
<a class="uk-width-1-1 uk-height-1-1 uk-flex uk-flex-center">
|
||||
{{openaireEntities.DATASETS}} ({{fetchDatasets.searchUtils.totalResults | number}})
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li *ngIf="fetchSoftware.searchUtils.totalResults > 0 && isEntityEnabled('software')"
|
||||
(click)="onSelectActiveTab('software')">
|
||||
<ul class="uk-tab">
|
||||
<li [class.uk-active]="activeTab == 'software'">
|
||||
<a class="uk-width-1-1 uk-height-1-1 uk-flex uk-flex-center">
|
||||
{{openaireEntities.SOFTWARE}} ({{fetchSoftware.searchUtils.totalResults | number}})
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li *ngIf="fetchOrps.searchUtils.totalResults > 0 && isEntityEnabled('orp')"
|
||||
(click)="onSelectActiveTab('other')">
|
||||
<ul class="uk-tab">
|
||||
<li [class.uk-active]="activeTab == 'orp'">
|
||||
<a class="uk-width-1-1 uk-height-1-1 uk-flex uk-flex-center">
|
||||
{{openaireEntities.OTHER}} ({{fetchOrps.searchUtils.totalResults | number}})
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li *ngIf="properties.environment == 'development' && portal.twitterAccount"
|
||||
(click)="onSelectActiveTab('twitter')">
|
||||
<ul class="uk-tab">
|
||||
<li [class.uk-active]="activeTab == 'twitter'">
|
||||
<a class="uk-width-1-1 uk-height-1-1 uk-flex uk-flex-center">
|
||||
Twitter
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="">
|
||||
<a class="uk-position-center-left uk-blur-background" uk-slider-item="previous"><span uk-icon="chevron-left"></span></a>
|
||||
<a class="uk-position-center-right uk-blur-background" uk-slider-item="next"><span uk-icon="chevron-right"></span></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-padding-small uk-padding-remove-bottom uk-padding-remove-right">
|
||||
<ul class="uk-tab uk-height-1-1">
|
||||
<li *ngIf="properties.environment != 'production' && communityId == 'covid-19'" (click)="onSelectActiveTab('mapping')" [class.uk-active]="activeTab == 'mapping'">
|
||||
<a class="uk-width-1-1 uk-height-1-1 uk-flex uk-flex-center featuredTab">
|
||||
Ontology Mapping
|
||||
</a>
|
||||
</li>
|
||||
<li
|
||||
*ngIf="communityId == 'enermaps' && fetchFeaturedDatasets.searchUtils.totalResults > 0 && isEntityEnabled('dataset')"
|
||||
(click)="onSelectActiveTab('enermaps')" [class.uk-active]="activeTab == 'enermaps'">
|
||||
<a class="uk-width-1-1 uk-height-1-1 uk-flex uk-flex-center featuredTab">
|
||||
Featured Datasets ({{fetchFeaturedDatasets.searchUtils.totalResults | number}})
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div *ngIf="activeTab == 'summary'">
|
||||
<div *ngIf="community" class="uk-grid uk-grid-divider uk-padding uk-padding-remove-horizontal" uk-grid>
|
||||
<div class="uk-width-expand">
|
||||
<div *ngIf="community.description" class="uk-margin-bottom ">
|
||||
<div [innerHTML]="community.description | safeHtml">
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-card uk-card-default uk-padding-small">
|
||||
<div *ngIf="isRouteEnabled('/curators')" class="uk-margin-bottom">
|
||||
<curators [longView]="false"></curators>
|
||||
</div>
|
||||
<div class="uk-grid uk-grid-divider uk-child-width-1-2@m" uk-grid>
|
||||
<div>
|
||||
<div *ngIf="community.date" class="uk-margin-small-bottom">
|
||||
<span class="uk-text-meta">Created: </span> {{community.date | date:'dd-MMM-yyyy'}}
|
||||
</div>
|
||||
<div [class]="projectTotal && projectTotal > 0 && isEntityEnabled('project') && isRouteEnabled(searchLinkToProjects) ? 'uk-margin-small-bottom' : ''">
|
||||
<span *ngIf="projectTotal && projectTotal > 0 && isEntityEnabled('project') && isRouteEnabled(searchLinkToProjects)">
|
||||
<span class="uk-text-meta">Projects: </span>
|
||||
<a [queryParams]=params
|
||||
routerLinkActive="router-link-active"
|
||||
[routerLink]="searchLinkToProjects">{{projectTotal|number}}
|
||||
</a>
|
||||
<a *ngIf="projectsCalculated && (projectTotal && projectTotal > 0 && isEntityEnabled('project') && isRouteEnabled(searchLinkToProjects))"
|
||||
[title]="buildProjectsTooltip()"
|
||||
[attr.uk-tooltip]="'pos: bottom-right; delay: 10;'"
|
||||
class="uk-link-reset uk-display-inline-block uk-margin-small-left">
|
||||
<svg width="15" height="15" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="question" ratio="1">
|
||||
<circle fill="none" stroke="#8E8E8E" stroke-width="1.1" cx="10" cy="10" r="9"></circle>
|
||||
<circle fill="none" stroke="#8E8E8E" cx="10.44" cy="14.42" r="1.05"></circle>
|
||||
<path fill="none" stroke="#8E8E8E" stroke-width="1.2"
|
||||
d="M8.17,7.79 C8.17,4.75 12.72,4.73 12.72,7.72 C12.72,8.67 11.81,9.15 11.23,9.75 C10.75,10.24 10.51,10.73 10.45,11.4 C10.44,11.53 10.43,11.64 10.43,11.75"></path>
|
||||
</svg>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
<div *ngIf="(zenodoCommunityIdS.length + ((masterZenodoCommunity) ? 1 : 0) > 0) && isRouteEnabled(shareInZenodoPage)">
|
||||
<span class="uk-text-meta">Linked Zenodo Communities: </span>
|
||||
<a [queryParams]=params
|
||||
routerLinkActive="router-link-active" [routerLink]="shareInZenodoPage">
|
||||
<span>{{zenodoCommunityIdS.length + ((masterZenodoCommunity) ? 1 : 0)}}</span>
|
||||
</a>
|
||||
<a [title]="buildZenodoCommunitiesTooltip()"
|
||||
[attr.uk-tooltip]="'pos: bottom-right; delay: 10;'"
|
||||
class="uk-link-reset uk-display-inline-block uk-margin-small-left">
|
||||
<svg width="15" height="15" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="question" ratio="1">
|
||||
<circle fill="none" stroke="#8E8E8E" stroke-width="1.1" cx="10" cy="10" r="9"></circle>
|
||||
<circle fill="none" stroke="#8E8E8E" cx="10.44" cy="14.42" r="1.05"></circle>
|
||||
<path fill="none" stroke="#8E8E8E" stroke-width="1.2"
|
||||
d="M8.17,7.79 C8.17,4.75 12.72,4.73 12.72,7.72 C12.72,8.67 11.81,9.15 11.23,9.75 C10.75,10.24 10.51,10.73 10.45,11.4 C10.44,11.53 10.43,11.64 10.43,11.75"></path>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div [class]="community.date || subscribers ? 'uk-margin-small-bottom' : ''">
|
||||
<span>
|
||||
<subscribe *ngIf="communityId" [communityId]="communityId" showNumbers=true
|
||||
(countSubscribersEvent)="countSubscribersEvent($event)">
|
||||
</subscribe>
|
||||
</span>
|
||||
</div>
|
||||
<div [class]="contentProviderTotal && contentProviderTotal > 0 && isEntityEnabled('datasource') && isRouteEnabled(searchLinkToDataProviders) ? 'uk-margin-small-bottom' : ''">
|
||||
<span *ngIf="contentProviderTotal && contentProviderTotal > 0 && isEntityEnabled('datasource') && isRouteEnabled(searchLinkToDataProviders)">
|
||||
<span class="uk-text-meta">Content Providers: </span>
|
||||
<a [queryParams]=params
|
||||
routerLinkActive="router-link-active"
|
||||
[routerLink]="searchLinkToDataProviders">{{contentProviderTotal|number}}
|
||||
</a>
|
||||
<a *ngIf="contentProvidersCalculated && (contentProviderTotal && contentProviderTotal > 0 && isEntityEnabled('datasource') && isRouteEnabled(searchLinkToDataProviders))"
|
||||
[title]="buildContentProvidersTooltip()"
|
||||
[attr.uk-tooltip]="'pos: bottom-right; delay: 10;'"
|
||||
class="uk-link-reset uk-display-inline-block uk-margin-small-left">
|
||||
<svg width="15" height="15" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="question" ratio="1">
|
||||
<circle fill="none" stroke="#8E8E8E" stroke-width="1.1" cx="10" cy="10" r="9"></circle>
|
||||
<circle fill="none" stroke="#8E8E8E" cx="10.44" cy="14.42" r="1.05"></circle>
|
||||
<path fill="none" stroke="#8E8E8E" stroke-width="1.2"
|
||||
d="M8.17,7.79 C8.17,4.75 12.72,4.73 12.72,7.72 C12.72,8.67 11.81,9.15 11.23,9.75 C10.75,10.24 10.51,10.73 10.45,11.4 C10.44,11.53 10.43,11.64 10.43,11.75"></path>
|
||||
</svg>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="isRouteEnabled('/subjects') && displayedAllSubjects && displayedAllSubjects.length > 0" class="uk-width-1-3@m">
|
||||
<div>
|
||||
<div class="uk-text-meta uk-margin-small-bottom">Subjects</div>
|
||||
<span *ngFor="let item of displayedAllSubjects.slice(0,20) let i=index">
|
||||
<span *ngIf="item.value != ''">
|
||||
<a class="portal-link"
|
||||
[queryParams]="{f0:item.type,fv0:createParams(item.value)}"
|
||||
routerLinkActive="router-link-active" [routerLink]="searchLinkToAdvancedResults">
|
||||
<span>{{item.value}}</span>
|
||||
</a>
|
||||
<span *ngIf="i < displayedAllSubjects.length-1 && i != 19">, </span>
|
||||
</span>
|
||||
</span>
|
||||
<div class="uk-animation-fade uk-margin-top">
|
||||
<a class="uk-display-inline-block uk-text-uppercase uk-button uk-button-text" routerLinkActive="router-link-active" [routerLink]="'/subjects'">
|
||||
View all
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="activeTab == 'publication' && fetchPublications.searchUtils.totalResults > 0 && isEntityEnabled('publication')">
|
||||
<ng-container *ngTemplateOutlet="tab_content; context: {
|
||||
resultType: 'publication', fetch: fetchPublications,
|
||||
searchLinkToAdvancedPage: properties.searchLinkToAdvancedResults,
|
||||
params: getParamsForSearchLink('publications'),
|
||||
type: 'publication', typeName: 'publication'}">
|
||||
</ng-container>
|
||||
</div>
|
||||
<div *ngIf="activeTab == 'dataset' && fetchDatasets.searchUtils.totalResults > 0 && isEntityEnabled('dataset')">
|
||||
<ng-container *ngTemplateOutlet="tab_content; context: {
|
||||
resultType: 'dataset', fetch: fetchDatasets,
|
||||
searchLinkToAdvancedPage: properties.searchLinkToAdvancedResults,
|
||||
params: getParamsForSearchLink('datasets'),
|
||||
type: 'dataset', typeName: 'research data'}">
|
||||
</ng-container>
|
||||
</div>
|
||||
<div *ngIf="activeTab == 'software' && fetchSoftware.searchUtils.totalResults > 0 && isEntityEnabled('software')">
|
||||
<ng-container *ngTemplateOutlet="tab_content; context: {
|
||||
resultType: 'software', fetch: fetchSoftware,
|
||||
searchLinkToAdvancedPage: properties.searchLinkToAdvancedResults,
|
||||
params: getParamsForSearchLink('software'),
|
||||
type: 'software', typeName: 'software'}">
|
||||
</ng-container>
|
||||
</div>
|
||||
<div *ngIf="activeTab == 'orp' && fetchOrps.searchUtils.totalResults > 0 && isEntityEnabled('orp')">
|
||||
<ng-container *ngTemplateOutlet="tab_content; context: {
|
||||
resultType: 'other', fetch: fetchOrps,
|
||||
searchLinkToAdvancedPage: properties.searchLinkToAdvancedResults,
|
||||
params: getParamsForSearchLink('other'),
|
||||
type: 'orp', typeName: 'other products'}">
|
||||
</ng-container>
|
||||
</div>
|
||||
<div *ngIf="activeTab == 'twitter' && properties.environment == 'development' && portal.twitterAccount">
|
||||
<div>
|
||||
<div>
|
||||
<a href="https://twitter.com/{{ portal.twitterAccount }}?ref_src=twsrc%5Etfw" class="twitter-timeline" data-height="900">
|
||||
Tweets by {{portal.twitterAccount}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="activeTab == 'mapping' && properties.environment != 'production' && communityId == 'covid-19'"
|
||||
class="uk-padding uk-padding-remove-horizontal">
|
||||
<div>
|
||||
Browse OpenAIRE Research Graph through a map of the main concepts linked to Coronavirus
|
||||
</div>
|
||||
<div class="uk-margin-medium-top">
|
||||
<iframe src="https://openaire.opscidia.com/?iframe=true&keyword=covid19&mapping_size=4"
|
||||
title="Opscidia Ontology mapping" class="uk-width-1-1" style="height:700px"></iframe>
|
||||
<span class=" uk-text-baseline uk-text-meta uk-text-left ">
|
||||
Powered by
|
||||
<a href="http://www.opscidia.com/" target="_blank" class="">Opscidia</a> and
|
||||
<a href="https://graph.openaire.eu/" target="_blank" class="">OpenAIRE Research Graph</a>
|
||||
</span>
|
||||
<span class="uk-text-right uk-float-right uk-text-baseline uk-text-meta"> Visit
|
||||
<a class="uk-margin-right uk-margin-small-top" href="https://openaire.opscidia.com/?iframe=true&keyword=covid19&mapping_size=4" target="_blank">
|
||||
Opscidia Tool
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
*ngIf="activeTab == 'enermaps' && communityId == 'enermaps' && fetchFeaturedDatasets.searchUtils.totalResults > 0 && isEntityEnabled('dataset')">
|
||||
<div class="uk-grid uk-margin-remove">
|
||||
<div class="uk-width-expand uk-padding uk-padding-remove-horizontal">
|
||||
<div class="uk-flex uk-flex-between uk-flex-middle uk-margin-bottom" >
|
||||
<div class="uk-text-meta uk-text-large uk-text-uppercase">
|
||||
<span>Featured Datasets</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-margin-top uk-margin-medium-bottom uk-text-meta">
|
||||
<div>Here are listed some of the most important energy datasets as selected by energy experts.</div>
|
||||
<div>
|
||||
Check them if you want to easily explore and visualize the European energy landscape,
|
||||
using only well-known datasets which you can trust.
|
||||
</div>
|
||||
</div>
|
||||
<no-load-paging *ngIf="fetchFeaturedDatasets && fetchFeaturedDatasets.searchUtils.totalResults > size" [type]="'Featured Datasets'"
|
||||
(pageChange)="updatePage($event)"
|
||||
[page]="fetchFeaturedDatasets.searchUtils.page" [pageSize]="size"
|
||||
[totalResults]="fetchFeaturedDatasets.searchUtils.totalResults" >
|
||||
</no-load-paging>
|
||||
<search-result [properties]="properties"
|
||||
[results]="fetchFeaturedDatasets.results"
|
||||
[status]="fetchFeaturedDatasets.searchUtils.status"
|
||||
[type]="'dataset'" [showEnermaps]="true" >
|
||||
</search-result>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<ng-container *ngIf="showLoading">
|
||||
<div class="uk-container uk-container-large uk-section">
|
||||
<loading></loading>
|
||||
</div>
|
||||
|
||||
<!-- <ng-container *ngIf="communityId == 'enermaps'">
|
||||
<div class="uk-section uk-container uk-container-large tm-middle">
|
||||
<div class="uk-margin-large-bottom">
|
||||
<h2 class="uk-margin-top uk-text-center">
|
||||
About Enermaps
|
||||
</h2>
|
||||
<div class="uk-padding uk-grid uk-child-width-1-1@s uk-child-width-1-2@m uk-child-width-1-4@l uk-grid-large uk-margin-medium-top" uk-grid>
|
||||
<div class="uk-flex uk-flex-column uk-flex-middle">
|
||||
<div class="icon-wrapper uk-flex uk-flex-center uk-flex-middle">
|
||||
<img src="assets/connect-assets/home/website.svg">
|
||||
</div>
|
||||
<div class="uk-margin-medium-top">
|
||||
<a href="https://enermaps.eu/" target="_blank" class="uk-button uk-button-text uk-text-bolder custom-text">Project Website</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-flex uk-flex-column uk-flex-middle">
|
||||
<div class="icon-wrapper uk-flex uk-flex-center uk-flex-middle">
|
||||
<img src="assets/connect-assets/home/map.svg">
|
||||
</div>
|
||||
<div class="uk-margin-medium-top">
|
||||
<a href="https://lab.idiap.ch/enermaps/" target="_blank" class="uk-button uk-button-text uk-text-bolder custom-text">Open Data Management Tool</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-flex uk-flex-column uk-flex-middle">
|
||||
<div class="icon-wrapper uk-flex uk-flex-center uk-flex-middle">
|
||||
<img src="assets/connect-assets/home/wiki.svg">
|
||||
</div>
|
||||
<div class="uk-margin-medium-top">
|
||||
<a href="https://enermaps-wiki.herokuapp.com/" target="_blank" class="uk-button uk-button-text uk-text-bolder custom-text">Wiki</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-flex uk-flex-column uk-flex-middle">
|
||||
<div class="icon-wrapper uk-flex uk-flex-center uk-flex-middle">
|
||||
<img src="assets/connect-assets/home/training.svg">
|
||||
</div>
|
||||
<div class="uk-margin-medium-top">
|
||||
<a href="https://www.youtube.com/watch?v=fHBeaKWS8Ss&list=PLhwt57nEFA8n295WJq_ickGCIBYHDcjm3&ab_channel=REVOLVE" target="_blank" class="uk-button uk-button-text uk-text-bolder custom-text">Training</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ng-container> -->
|
||||
|
||||
<div *ngIf="communityId && portal && isRouteEnabled('/organizations')"
|
||||
class="uk-container uk-container-large">
|
||||
<affiliations [longView]="false" [getAffiliationsFromAPI]="true" [communityFirstPage]="true"></affiliations>
|
||||
</div>
|
||||
|
||||
<div *ngIf="(communityId == null || communityId == '' ) && !portal"
|
||||
class="uk-section tm-middle uk-container uk-margin-large-top ">
|
||||
<div class="uk-container uk-margin-bottom uk-grid">
|
||||
<div class="uk-width-expand uk-padding-remove">
|
||||
<article class="uk-article ">
|
||||
<div class="uk-child-width-1-6@l uk-child-width-1-6@m uk-child-width-1-3@s uk-text-center uk-alert uk-alert-primary">
|
||||
No community chosen
|
||||
</div>
|
||||
<div *ngIf="communityId">
|
||||
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<error *ngIf="portal && community && isPrivate()" [page]="community.status == 'manager'?'-1':null">
|
||||
</error>
|
||||
</div>
|
||||
</ng-container>
|
||||
<ng-container *ngIf="!showLoading">
|
||||
<ng-container *ngFor="let pluginGroup of pluginsByPlacement.get('top') ; let i=index">
|
||||
<ng-container *ngIf="(pluginGroup.template.portalSpecific.length == 0 || pluginGroup.template.portalSpecific.indexOf(community.communityId) != -1 ) &&
|
||||
(pluginGroup.template.plan == 'starter'|| pluginGroup.template.plan == community.plan )">
|
||||
<plugin-wrapper [pluginTemplate]="pluginGroup.template" [plugin]="pluginGroup.plugin"
|
||||
[pluginObject]="pluginGroup.plugin.object"></plugin-wrapper>
|
||||
</ng-container>
|
||||
</ng-container>
|
||||
</ng-container>
|
||||
|
|
|
@ -24,123 +24,31 @@ import {properties} from "../../environments/environment";
|
|||
import {ConnectHelper} from "../openaireLibrary/connect/connectHelper";
|
||||
import {Filter} from "../openaireLibrary/searchPages/searchUtils/searchHelperClasses.class";
|
||||
import {OpenaireEntities} from '../openaireLibrary/utils/properties/searchFields';
|
||||
import {PluginsService} from "../openaireLibrary/services/plugins.service";
|
||||
import {PluginTemplate} from "../openaireLibrary/utils/entities/adminTool/pluginTemplate";
|
||||
import {Plugin} from "../openaireLibrary/utils/entities/adminTool/plugin";
|
||||
import {PluginUtils} from "../openaireLibrary/dashboard/plugins/utils/pluginUtils";
|
||||
|
||||
@Component({
|
||||
selector: 'community',
|
||||
templateUrl: 'community.component.html',
|
||||
styles: [
|
||||
`
|
||||
#mytabs .uk-tab::before {
|
||||
border-bottom: none;
|
||||
}
|
||||
#mytabs::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
border-bottom: 1px solid #eaeaea;
|
||||
}
|
||||
`
|
||||
]
|
||||
|
||||
})
|
||||
|
||||
export class CommunityComponent {
|
||||
public url: string = null;
|
||||
|
||||
public projectTotal = null;
|
||||
public contentProviderTotal = null;
|
||||
|
||||
public projectsCalculated: boolean = false;
|
||||
public contentProvidersCalculated: boolean = false;
|
||||
|
||||
params: any = {};
|
||||
properties: EnvProperties = properties;
|
||||
|
||||
public errorCodes: ErrorCodes = new ErrorCodes();
|
||||
// Request results of each tab only the one time (first time tab is clicked)
|
||||
private reloadPublications: boolean = true;
|
||||
private reloadDatasets: boolean = true;
|
||||
private reloadSoftware: boolean = true;
|
||||
private reloadOrps: boolean = true;
|
||||
private reloadFeaturedDatasets: boolean = true;
|
||||
|
||||
// Variables for publications, research data, projects, content providers, related content providers tabs
|
||||
public fetchPublications: FetchResearchResults;
|
||||
public fetchDatasets: FetchResearchResults;
|
||||
public fetchSoftware: FetchResearchResults;
|
||||
public fetchOrps: FetchResearchResults;
|
||||
public fetchFeaturedDatasets: FetchResearchResults;
|
||||
public searchNumber: number = 5;
|
||||
|
||||
@Input() communityId = null;
|
||||
public community = null;
|
||||
|
||||
public portal = null;
|
||||
|
||||
public showLoading: boolean = true;
|
||||
masterZenodoCommunity = null;
|
||||
zenodoCommunityIdS = [];
|
||||
showAllDescription = false;
|
||||
public thresholdDescription: number = 500;
|
||||
public descriptionDiff: number = 100;
|
||||
|
||||
page = 1;
|
||||
size = 5;
|
||||
|
||||
subscribers: number = 0;
|
||||
|
||||
subs: Subscription[] = [];
|
||||
|
||||
displayedAllSubjects = [];
|
||||
displayedSubjects = [];
|
||||
displayedSdg = [];
|
||||
displayedFos = [];
|
||||
|
||||
@ViewChild(StatisticsForDashboardComponent) statistics: StatisticsForDashboardComponent = null;
|
||||
public activeTab = "summary";
|
||||
public show: string = 'overview';
|
||||
public analyticsActiveTab: string = "";
|
||||
public analyticsChecked: boolean = false;
|
||||
|
||||
searchLinkToResults: string = null;
|
||||
|
||||
searchLinkToProjects: string = null;
|
||||
searchLinkToDataProviders: string = null;
|
||||
searchLinkToAdvancedResults: string = null;
|
||||
shareInZenodoPage: string = null;
|
||||
public routerHelper: RouterHelper = new RouterHelper();
|
||||
subscriptions: Subscription[] = [];
|
||||
private user: User;
|
||||
selectedEntity = 'result';
|
||||
selectedEntitySimpleUrl;
|
||||
selectedEntityAdvancedUrl;
|
||||
resultTypes: Filter = {
|
||||
values: [],
|
||||
filterId: "type",
|
||||
countSelectedValues: 0,
|
||||
filterType: 'checkbox',
|
||||
originalFilterId: "",
|
||||
valueIsExact: true,
|
||||
title: "Type",
|
||||
filterOperator: "or"
|
||||
};
|
||||
showPublications: boolean = false;
|
||||
showDatasets: boolean = false;
|
||||
showSoftware: boolean = false;
|
||||
showOrp: boolean = false;
|
||||
showProjects: boolean = false;
|
||||
showDataProviders: boolean = false;
|
||||
keyword: string = "";
|
||||
customFilter;
|
||||
placeholderText = "Search by title, author, abstract, DOI, orcid... ";
|
||||
resultsQuickFilter: { filter: Filter, selected: boolean, filterId: string, value: string } = {
|
||||
filter: null,
|
||||
selected: true,
|
||||
filterId: "resultbestaccessright",
|
||||
value: "Open Access"
|
||||
};
|
||||
disableSelect: boolean = true;
|
||||
openaireEntities= OpenaireEntities;
|
||||
public showLoading = true;
|
||||
pluginTemplates: PluginTemplate[] = [];
|
||||
plugins: Plugin[] = [];
|
||||
public pluginsByPlacement: Map<string,{plugin:Plugin, template:PluginTemplate}[]> = new Map();
|
||||
public pluginUtils = new PluginUtils();
|
||||
|
||||
constructor(
|
||||
private element: ElementRef,
|
||||
|
@ -152,15 +60,10 @@ export class CommunityComponent {
|
|||
private _piwikService: PiwikService,
|
||||
private config: ConfigurationService,
|
||||
private _communityService: CommunityService,
|
||||
private _searchCommunityDataprovidersService: SearchCommunityDataprovidersService,
|
||||
private _searchCommunityProjectsService: SearchCommunityProjectsService,
|
||||
private _searchResearchResultsService: SearchResearchResultsService,
|
||||
private _zenodoCommunitieService: ZenodoCommunitiesService,
|
||||
|
||||
private seoService: SEOService,
|
||||
private userManagementService: UserManagementService,
|
||||
private _renderer2: Renderer2,
|
||||
private cdr: ChangeDetectorRef,
|
||||
@Inject(DOCUMENT) private _document: Document) {
|
||||
private _pluginsService:PluginsService) {
|
||||
|
||||
var description = "OpenAIRE - Connect, Community Dashboard, research community";
|
||||
var title = "OpenAIRE - Connect";
|
||||
|
@ -169,500 +72,71 @@ export class CommunityComponent {
|
|||
this._meta.updateTag({content: title}, "property='og:title'");
|
||||
this._title.setTitle(title);
|
||||
|
||||
this.fetchPublications = new FetchResearchResults(this._searchResearchResultsService);
|
||||
this.fetchDatasets = new FetchResearchResults(this._searchResearchResultsService);
|
||||
this.fetchSoftware = new FetchResearchResults(this._searchResearchResultsService);
|
||||
this.fetchOrps = new FetchResearchResults(this._searchResearchResultsService);
|
||||
this.fetchFeaturedDatasets = new FetchResearchResults(this._searchResearchResultsService);
|
||||
|
||||
}
|
||||
|
||||
public ngOnInit() {
|
||||
this.searchLinkToResults = this.properties.searchLinkToResults;
|
||||
this.searchLinkToProjects = this.properties.searchLinkToProjects;
|
||||
this.searchLinkToDataProviders = this.properties.searchLinkToDataProviders;
|
||||
this.searchLinkToAdvancedResults = this.properties.searchLinkToAdvancedResults;
|
||||
this.shareInZenodoPage = this.properties.shareInZenodoPage;
|
||||
this.url = properties.domain + properties.baseLink + this._router.url;
|
||||
this.url = properties.domain + properties.baseLink + this._router.url;
|
||||
this.seoService.createLinkForCanonicalURL(this.url, false);
|
||||
this._meta.updateTag({content: this.url}, "property='og:url'");
|
||||
this.subs.push(this.userManagementService.getUserInfo().subscribe(user => {
|
||||
this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => {
|
||||
this.user = user;
|
||||
}));
|
||||
this.customFilter = new SearchCustomFilter("Community", "communityId", this.communityId, "");
|
||||
this.subs.push(this._communityService.getCommunityAsObservable().subscribe(
|
||||
this.subscriptions.push(this._communityService.getCommunityAsObservable().subscribe(
|
||||
community => {
|
||||
this.community = community;
|
||||
if(community && !ConnectHelper.isPrivate(community, this.user)) {
|
||||
this.displayedSubjects = community.subjects;
|
||||
this.displayedSdg = community.sdg;
|
||||
this.displayedFos = community.fos;
|
||||
this.displayedSubjects.forEach(element => {
|
||||
this.displayedAllSubjects.push({value: element, type: 'resultsubject'});
|
||||
});
|
||||
this.displayedSdg.forEach(element => {
|
||||
this.displayedAllSubjects.push({value: element, type: 'sdg'});
|
||||
});
|
||||
this.displayedFos.forEach(element => {
|
||||
this.displayedAllSubjects.push({value: element, type: 'fos'});
|
||||
});
|
||||
if (community.description != null && (community.description.length - this.thresholdDescription <= this.descriptionDiff)) {
|
||||
this.thresholdDescription = community.description.length;
|
||||
}
|
||||
|
||||
if (this.properties.environment == "development") {
|
||||
this.params = {communityId: community.communityId};
|
||||
}
|
||||
this._meta.updateTag({content: community.description}, "name='description'");
|
||||
this._meta.updateTag({content: community.description}, "property='og:description'");
|
||||
this._meta.updateTag({content: community.title}, "property='og:title'");
|
||||
this._title.setTitle(community.title);
|
||||
this.subs.push(this._piwikService.trackView(this.properties, community.title).subscribe());
|
||||
if (this.community.zenodoCommunity) {
|
||||
this.subs.push(this._zenodoCommunitieService.getZenodoCommunityById(this.properties, this.community.zenodoCommunity).subscribe(
|
||||
result => {
|
||||
this.masterZenodoCommunity = result;
|
||||
},
|
||||
error => {
|
||||
this.handleError("Error getting Master Zenodo community with id: " + this.community.zenodoCommunity, error);
|
||||
}
|
||||
));
|
||||
}
|
||||
this.zenodoCommunityIdS = this.community.otherZenodoCommunities;
|
||||
this.subscriptions.push(this._piwikService.trackView(this.properties, community.title).subscribe());
|
||||
this.getPagePlugins();
|
||||
|
||||
}
|
||||
}));
|
||||
|
||||
this.countResearchResults("publication");
|
||||
this.countResearchResults("dataset");
|
||||
this.countResearchResults("software");
|
||||
this.countResearchResults("other");
|
||||
if(this.communityId == "enermaps"){
|
||||
this.countResearchResults("dataset", "enermaps::selection" );
|
||||
}
|
||||
}
|
||||
|
||||
getPagePlugins() {
|
||||
this.showLoading = true;
|
||||
this.subscriptions.push(this._pluginsService.getPluginTemplatesByPage(this.properties.adminToolsAPIURL, this.community.communityId, "60be1e6832035404d85fdd7e").subscribe(
|
||||
templates => {
|
||||
this.pluginTemplates = templates;
|
||||
|
||||
this.subscriptions.push(this._pluginsService.getPluginsByPage(this.properties.adminToolsAPIURL, this.community.communityId, "60be1e6832035404d85fdd7e").subscribe(
|
||||
plugins => {
|
||||
this.plugins = plugins;
|
||||
this.pluginsByPlacement = new Map();
|
||||
for(let pos of this.pluginUtils.placementsOptions){
|
||||
this.pluginsByPlacement.set(pos.value,[]);
|
||||
}
|
||||
let self = this;
|
||||
this.pluginTemplates.forEach(_ => {
|
||||
let plugin:Plugin = null;
|
||||
for(let pl of plugins){
|
||||
if (pl.templateId == _._id){
|
||||
plugin = pl;
|
||||
}
|
||||
}
|
||||
if(!plugin){
|
||||
plugin = new Plugin("", "",_);
|
||||
this.plugins.push(plugin);
|
||||
}
|
||||
plugin.object = PluginUtils.initializeObjectAndCompare(_.code,plugin.object)
|
||||
this.pluginsByPlacement.get(plugin.placement).push({plugin: plugin, template: _ });
|
||||
});
|
||||
for(let placement of this.pluginUtils.placementsOptions){
|
||||
this.pluginsByPlacement.get(placement.value).sort(function (a, b) {
|
||||
return a.plugin.order - b.plugin.order;
|
||||
})
|
||||
}
|
||||
console.log(this.pluginsByPlacement.get('top'))
|
||||
this.showLoading = false;
|
||||
},
|
||||
error => {}));
|
||||
|
||||
this.subs.push(this._searchCommunityProjectsService.countTotalProjects(this.properties, this.communityId).subscribe(
|
||||
projectTotal => {
|
||||
this.projectTotal = projectTotal;
|
||||
},
|
||||
error => {
|
||||
this.handleError("Error getting number of projects for community with id: " + this.communityId, error);
|
||||
},
|
||||
() => {
|
||||
this.projectsCalculated = true;
|
||||
}
|
||||
));
|
||||
|
||||
this.subs.push(this._searchCommunityDataprovidersService.countTotalDataproviders(this.properties, this.communityId).subscribe(
|
||||
contentProviderTotal => {
|
||||
this.contentProviderTotal = contentProviderTotal;
|
||||
//console.log(contentProviderTotal);
|
||||
},
|
||||
error => {
|
||||
this.handleError("Error getting number of content providers for community with id: " + this.communityId, error);
|
||||
},
|
||||
() => {
|
||||
this.contentProvidersCalculated = true;
|
||||
}
|
||||
));
|
||||
this.subs.push(this.config.portalAsObservable.subscribe(
|
||||
res => {
|
||||
this.portal = res;
|
||||
|
||||
// loading twitter widget script conditionally
|
||||
if (properties.environment == "development") {
|
||||
if (this.portal && this.portal.twitterAccount) {
|
||||
let script = this._renderer2.createElement('script');
|
||||
script.charset = "utf-8";
|
||||
script.src = "https://platform.twitter.com/widgets.js";
|
||||
this._renderer2.appendChild(this._document.body, script);
|
||||
}
|
||||
}
|
||||
},
|
||||
error => {
|
||||
//console.log(error)
|
||||
this.handleError("Error getting community with id: " + this.communityId, error);
|
||||
}
|
||||
));
|
||||
this.subs.push(this.config.portalAsObservable.subscribe(data => {
|
||||
if (data) {
|
||||
var showEntity = {};
|
||||
for (var i = 0; i < data['entities'].length; i++) {
|
||||
showEntity["" + data['entities'][i]["pid"] + ""] = data['entities'][i]["isEnabled"];
|
||||
}
|
||||
this.showPublications = !!showEntity["publication"];
|
||||
this.showDatasets = !!showEntity["dataset"];
|
||||
this.showSoftware = !!showEntity["software"];
|
||||
this.showOrp = !!showEntity["orp"];
|
||||
this.showProjects = !!showEntity["project"];
|
||||
this.showDataProviders = !!showEntity["datasource"];
|
||||
this.resultTypes.values = [];
|
||||
if (this.showPublications) {
|
||||
this.resultTypes.values.push({
|
||||
name: this.openaireEntities.PUBLICATIONS,
|
||||
id: "publications",
|
||||
selected: false,
|
||||
number: 0
|
||||
});
|
||||
}
|
||||
if (this.showDatasets) {
|
||||
this.resultTypes.values.push({
|
||||
name: this.openaireEntities.DATASETS,
|
||||
id: "datasets",
|
||||
selected: false,
|
||||
number: 0
|
||||
});
|
||||
}
|
||||
if (this.showSoftware) {
|
||||
this.resultTypes.values.push({
|
||||
name: this.openaireEntities.SOFTWARE,
|
||||
id: "software",
|
||||
selected: false,
|
||||
number: 0
|
||||
});
|
||||
}
|
||||
if (this.showOrp) {
|
||||
this.resultTypes.values.push({name: this.openaireEntities.OTHER, id: "other", selected: false, number: 0});
|
||||
}
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
private searchPublications(page: number, size: number) {
|
||||
this.setActiveTab("publication");
|
||||
|
||||
if (this.reloadPublications &&
|
||||
(this.fetchPublications.searchUtils.status == this.errorCodes.LOADING ||
|
||||
(this.fetchPublications.searchUtils.status == this.errorCodes.DONE && this.fetchPublications.searchUtils.totalResults > 0)
|
||||
)
|
||||
) {
|
||||
this.fetchPublications.getResultsForCommunity("publication", this.communityId, page, size, this.properties);
|
||||
}
|
||||
this.reloadPublications = false;
|
||||
}
|
||||
|
||||
private searchDatasets(page: number, size: number) {
|
||||
this.setActiveTab("dataset");
|
||||
|
||||
if (this.reloadDatasets &&
|
||||
(this.fetchDatasets.searchUtils.status == this.errorCodes.LOADING ||
|
||||
(this.fetchDatasets.searchUtils.status == this.errorCodes.DONE && this.fetchDatasets.searchUtils.totalResults > 0)
|
||||
)
|
||||
) {
|
||||
this.fetchDatasets.getResultsForCommunity("dataset", this.communityId, page, size, this.properties);
|
||||
}
|
||||
this.reloadDatasets = false;
|
||||
}
|
||||
|
||||
private searchSoftware(page: number, size: number) {
|
||||
this.setActiveTab("software");
|
||||
|
||||
if (this.reloadSoftware &&
|
||||
(this.fetchSoftware.searchUtils.status == this.errorCodes.LOADING ||
|
||||
(this.fetchSoftware.searchUtils.status == this.errorCodes.DONE && this.fetchSoftware.searchUtils.totalResults > 0)
|
||||
)
|
||||
) {
|
||||
this.fetchSoftware.getResultsForCommunity("software", this.communityId, page, size, this.properties);
|
||||
}
|
||||
this.reloadSoftware = false;
|
||||
}
|
||||
|
||||
private searchOrps(page: number, size: number) {
|
||||
this.setActiveTab("other");
|
||||
|
||||
if (this.reloadOrps &&
|
||||
(this.fetchOrps.searchUtils.status == this.errorCodes.LOADING ||
|
||||
(this.fetchOrps.searchUtils.status == this.errorCodes.DONE && this.fetchOrps.searchUtils.totalResults > 0)
|
||||
)
|
||||
) {
|
||||
this.fetchOrps.getResultsForCommunity("other", this.communityId, page, size, this.properties);
|
||||
}
|
||||
this.reloadOrps = false;
|
||||
}
|
||||
private searchFeaturedDatasets(page: number, size: number) {
|
||||
this.setActiveTab("enermaps");
|
||||
if (this.reloadFeaturedDatasets &&
|
||||
(this.fetchFeaturedDatasets.searchUtils.status == this.errorCodes.LOADING ||
|
||||
(this.fetchFeaturedDatasets.searchUtils.status == this.errorCodes.DONE && this.fetchFeaturedDatasets.searchUtils.totalResults > 0)
|
||||
)
|
||||
) {
|
||||
this.fetchFeaturedDatasets.getAllResultsForCommunity("dataset", this.communityId, page, size, this.properties, "enermaps::selection");
|
||||
}
|
||||
this.reloadFeaturedDatasets = false;
|
||||
}
|
||||
|
||||
private countResearchResults(resultType: string, contextId = null) {
|
||||
let fetch: FetchResearchResults;
|
||||
|
||||
if (resultType == "publication") {
|
||||
fetch = this.fetchPublications;
|
||||
} else if (resultType == "dataset" && !contextId) {
|
||||
fetch = this.fetchDatasets;
|
||||
} else if (resultType == "software") {
|
||||
fetch = this.fetchSoftware;
|
||||
} else if (resultType == "other") {
|
||||
fetch = this.fetchOrps;
|
||||
} else if (resultType == "dataset" && contextId) {
|
||||
fetch = this.fetchFeaturedDatasets;
|
||||
this.fetchFeaturedDatasets.getAllResultsForCommunity("dataset", this.communityId, 0, 0, this.properties, contextId);
|
||||
return;
|
||||
}
|
||||
fetch.getNumForCommunity(resultType, this.communityId, this.properties, contextId);
|
||||
}
|
||||
|
||||
public ngOnDestroy() {
|
||||
for (let sub of this.subs) {
|
||||
sub.unsubscribe();
|
||||
}
|
||||
this.fetchPublications.clearSubscriptions();
|
||||
this.fetchDatasets.clearSubscriptions();
|
||||
this.fetchOrps.clearSubscriptions();
|
||||
this.fetchSoftware.clearSubscriptions();
|
||||
this.fetchFeaturedDatasets.clearSubscriptions();
|
||||
}
|
||||
|
||||
isEntityEnabled(entity: string) {
|
||||
return this.portal.entities.some(x => x['pid'] == entity && x['isEnabled'] === true);
|
||||
}
|
||||
|
||||
isRouteEnabled(route: string) {
|
||||
return this.portal.pages.some(x => x['route'] == route && x['isEnabled'] === true);
|
||||
}
|
||||
|
||||
showInvite() {
|
||||
return this.isManager();
|
||||
}
|
||||
|
||||
isManager() {
|
||||
if (!this.user) {
|
||||
return false;
|
||||
}
|
||||
var email = this.user.email;
|
||||
var index = -1;
|
||||
if (email && this.community != null && this.community.managers != null) {
|
||||
index = this.community.managers.indexOf(email);
|
||||
}
|
||||
return Session.isPortalAdministrator(this.user) || Session.isCommunityCurator(this.user) || index != -1;
|
||||
}
|
||||
|
||||
private handleError(message: string, error) {
|
||||
console.error("Community (component): " + message, error);
|
||||
}
|
||||
|
||||
getSearchPlaceHolder() {
|
||||
var entities = [];
|
||||
if (this.isEntityEnabled("publication")) {
|
||||
entities.push("publications");
|
||||
}
|
||||
if (this.isEntityEnabled("dataset")) {
|
||||
entities.push("research data");
|
||||
}
|
||||
if (this.isEntityEnabled("software")) {
|
||||
entities.push("software");
|
||||
}
|
||||
if (this.isEntityEnabled("orp")) {
|
||||
entities.push("other research products");
|
||||
}
|
||||
return "Search" + ((entities.length > 0) ? (" for " + entities.join(', ') + "...") : "");
|
||||
}
|
||||
|
||||
countOtherGraphs() {
|
||||
var count = 0;
|
||||
if (this.statistics && this.statistics.allowedEntities) {
|
||||
for (var entity of this.statistics.allowedEntities) {
|
||||
if (this.statistics.statisticsSum[entity].total > 0 && this.statistics.allowedCharts[entity].length > 0 && this.activeTab != entity) {
|
||||
count += this.statistics.allowedCharts[entity].length;
|
||||
}
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
createParams(param) {
|
||||
return StringUtils.URIEncode(param);
|
||||
}
|
||||
|
||||
private setActiveTab(entityType: string) {
|
||||
if (entityType == "other") {
|
||||
this.activeTab = "orp";
|
||||
} else {
|
||||
this.activeTab = entityType;
|
||||
}
|
||||
}
|
||||
|
||||
public getParamsForSearchLink(type: string = "") {
|
||||
if (type) {
|
||||
return this.routerHelper.createQueryParams(['type', 'qf', 'sortBy'], [type, 'false', 'resultdateofacceptance,descending']);
|
||||
} else {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
private getEntityName(entityType: string, plural: boolean, full: boolean): string {
|
||||
if (entityType == "publication") {
|
||||
return "publication" + (plural ? "s" : "");
|
||||
} else if (entityType == "dataset") {
|
||||
return (full ? "research data" : ("dataset" + (plural ? "s" : "")));
|
||||
} else if (entityType == "software") {
|
||||
return "software";
|
||||
} else if (entityType == "other") {
|
||||
return (full ? ("other research product" + (plural ? "s" : "")) : "other");
|
||||
}
|
||||
}
|
||||
|
||||
public buildProjectsTooltip(): string {
|
||||
let tooltipContent: string = "<div>";
|
||||
|
||||
if (this.projectTotal != null && this.projectTotal > 0 && this.isEntityEnabled('project') && this.isRouteEnabled(this.searchLinkToProjects)) {
|
||||
tooltipContent += "<span class='uk-text-bold'>Projects</span>";
|
||||
}
|
||||
|
||||
tooltipContent += " have been selected as relevant for your community by the gateway curators.";
|
||||
tooltipContent += "</div>";
|
||||
|
||||
return tooltipContent;
|
||||
}
|
||||
|
||||
public buildContentProvidersTooltip(): string {
|
||||
let tooltipContent: string = "<div>";
|
||||
|
||||
if (this.contentProviderTotal != null && this.contentProviderTotal > 0 && this.isEntityEnabled('datasource') && this.isRouteEnabled(this.searchLinkToDataProviders)) {
|
||||
tooltipContent += "<span class='uk-text-bold'>Content Providers</span>";
|
||||
}
|
||||
|
||||
tooltipContent += " have been selected as relevant for your community by the gateway curators.";
|
||||
tooltipContent += "</div>";
|
||||
|
||||
return tooltipContent;
|
||||
}
|
||||
|
||||
public buildZenodoCommunitiesTooltip(): string {
|
||||
let tooltipContent: string = "<div>";
|
||||
|
||||
tooltipContent += "<span class='uk-text-bold'>Zenodo</span> is a catch-all repository for OpenAIRE.";
|
||||
tooltipContent += "<div class='uk-margin-small-top'>A <span class='uk-text-bold'>Zenodo Community</span> is created and curated by Zenodo users.</div>";
|
||||
tooltipContent += "</div>";
|
||||
|
||||
return tooltipContent;
|
||||
}
|
||||
|
||||
entityChanged($event) {
|
||||
this.selectedEntity = $event.entity;
|
||||
this.selectedEntitySimpleUrl = $event.simpleUrl;
|
||||
this.selectedEntityAdvancedUrl = $event.advancedUrl;
|
||||
if (this.selectedEntity == 'result') {
|
||||
this.placeholderText = "Search by title, author, abstract, DOI, orcid... ";
|
||||
} else if (this.selectedEntity == 'project') {
|
||||
this.placeholderText = "Search by project title, grant id, funder...";
|
||||
} else if (this.selectedEntity == 'dataprovider') {
|
||||
this.placeholderText = "Search by name...";
|
||||
} else {
|
||||
this.placeholderText = "Search community content";
|
||||
}
|
||||
}
|
||||
|
||||
goTo(simple: boolean) {
|
||||
let url = (simple) ? this.selectedEntitySimpleUrl : this.selectedEntityAdvancedUrl;
|
||||
let parameterNames = [];
|
||||
let parameterValues = [];
|
||||
|
||||
if (this.selectedEntity == "result" && this.resultsQuickFilter && this.resultsQuickFilter.selected) {
|
||||
parameterNames.push(this.resultsQuickFilter.filterId);
|
||||
parameterValues.push('"'+ encodeURIComponent(this.resultsQuickFilter.value)+'"');
|
||||
}
|
||||
|
||||
if (this.keyword.length > 0) {
|
||||
parameterNames.push("fv0");
|
||||
parameterValues.push(this.keyword);
|
||||
parameterNames.push("f0");
|
||||
parameterValues.push("q");
|
||||
}
|
||||
this._router.navigate([url], {queryParams: this.routerHelper.createQueryParams(parameterNames, parameterValues)});
|
||||
}
|
||||
|
||||
public countSubscribersEvent($event) {
|
||||
this.subscribers = $event.value;
|
||||
}
|
||||
|
||||
public checkStatistics(type: string) {
|
||||
return !!(this.isEntityEnabled(type)
|
||||
&& this.statistics && this.statistics.statisticsDisplay && this.statistics.statisticsDisplay.isActive
|
||||
&& this.statistics.statisticsSum && this.statistics.statisticsSum[type] && this.statistics.statisticsSum[type].total > 0
|
||||
&&
|
||||
(this.statistics.statisticsDisplay.entities[type].numbers.map['total']['showInMonitor']
|
||||
|| this.statistics.statisticsDisplay.entities[type].numbers.map['project']['showInMonitor']
|
||||
|| this.statistics.statisticsDisplay.entities[type].numbers.map['open']['showInMonitor']
|
||||
|| this.statistics.statisticsDisplay.entities[type].numbers.map['closed']['showInMonitor']
|
||||
|| this.statistics.statisticsDisplay.entities[type].numbers.map['embargo']['showInMonitor']
|
||||
|| this.statistics.statisticsDisplay.entities[type].numbers.map['restricted']['showInMonitor']
|
||||
|| (this.statistics.allowedEntitiesMode['showInMonitor']
|
||||
&& this.statistics.allowedChartsMode['showInMonitor'][type]
|
||||
&& this.statistics.allowedChartsMode['showInMonitor'][type].length > 0)));
|
||||
}
|
||||
|
||||
public initializeAnalyticsActiveTab() {
|
||||
if (!this.analyticsChecked) {
|
||||
if (this.checkStatistics("publication")) {
|
||||
this.analyticsActiveTab = "publication";
|
||||
} else if (this.checkStatistics("dataset")) {
|
||||
this.analyticsActiveTab = "dataset";
|
||||
} else if (this.checkStatistics("software")) {
|
||||
this.analyticsActiveTab = "software";
|
||||
} else if (this.checkStatistics("orp")) {
|
||||
this.analyticsActiveTab = "orp";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public showAnalyticsTab() {
|
||||
this.initializeAnalyticsActiveTab();
|
||||
return this.analyticsActiveTab;
|
||||
}
|
||||
|
||||
public onSelectActiveTab(activeTabId) {
|
||||
if (this.activeTab != "activaTabId") { // tab really changed
|
||||
if (activeTabId == 'summary') {
|
||||
this.activeTab = 'summary';
|
||||
} else if (activeTabId == 'publications') {
|
||||
this.show = 'overview';
|
||||
this.searchPublications(1, this.searchNumber);
|
||||
} else if (activeTabId == 'datasets') {
|
||||
this.show = 'overview';
|
||||
this.searchDatasets(1, this.searchNumber);
|
||||
} else if (activeTabId == 'software') {
|
||||
this.show = 'overview';
|
||||
this.searchSoftware(1, this.searchNumber);
|
||||
} else if (activeTabId == 'other') {
|
||||
this.show = 'overview';
|
||||
this.searchOrps(1, this.searchNumber);
|
||||
} else if (activeTabId == 'analytics') {
|
||||
this.show = 'analysis';
|
||||
this.activeTab = 'analytics';
|
||||
this.analyticsChecked = true;
|
||||
} else if (activeTabId == 'mapping') {
|
||||
this.show = 'mapping';
|
||||
this.activeTab = 'mapping';
|
||||
} else if (activeTabId == 'enermaps') {
|
||||
this.show = 'enermaps';
|
||||
this.activeTab = 'enermaps';
|
||||
this.searchFeaturedDatasets(1, this.fetchFeaturedDatasets.searchUtils.totalResults);
|
||||
} else if (activeTabId == 'twitter') {
|
||||
this.show = 'twitter';
|
||||
this.activeTab = 'twitter';
|
||||
}
|
||||
}
|
||||
}
|
||||
isPrivate(){
|
||||
return ConnectHelper.isPrivate(this.community, this.user);
|
||||
}
|
||||
|
||||
disableSelectChange(event: boolean) {
|
||||
this.disableSelect = event;
|
||||
this.cdr.detectChanges();
|
||||
}
|
||||
|
||||
public updatePage(event) {
|
||||
this.page = event.value;
|
||||
this.fetchFeaturedDatasets.searchUtils.page = event.value;
|
||||
this.fetchFeaturedDatasets.results = this.fetchFeaturedDatasets.allResults.slice((this.page - 1) * this.searchNumber, this.page * this.searchNumber) ;
|
||||
error => {}));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,6 +42,8 @@ import {IconsModule} from '../openaireLibrary/utils/icons/icons.module';
|
|||
import {NoLoadPaging} from '../openaireLibrary/searchPages/searchUtils/no-load-paging.module';
|
||||
import {NumberRoundModule} from '../openaireLibrary/utils/pipes/number-round.module';
|
||||
import {PluginsService} from '../openaireLibrary/services/plugins.service';
|
||||
import {PluginWrapperModule} from "../openaireLibrary/dashboard/plugins/wrapper/plugin-wrapper.module";
|
||||
import {LoadingModule} from "../openaireLibrary/utils/loading/loading.module";
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
|
@ -51,7 +53,7 @@ import {PluginsService} from '../openaireLibrary/services/plugins.service';
|
|||
SearchResearchResultsServiceModule, SearchResultsModule, CuratorsModule, AffiliationsModule,
|
||||
SEOServiceModule, MatSelectModule, EntitiesSelectionModule,
|
||||
TabsModule, SearchTabModule, ErrorMessagesModule, SafeHtmlPipeModule, ErrorModule,
|
||||
AdvancedSearchInputModule, InputModule, QuickSelectionsModule, IconsModule, NoLoadPaging, NumberRoundModule
|
||||
AdvancedSearchInputModule, InputModule, QuickSelectionsModule, IconsModule, NoLoadPaging, NumberRoundModule, PluginWrapperModule, LoadingModule
|
||||
],
|
||||
declarations: [
|
||||
CommunityComponent
|
||||
|
|
|
@ -163,7 +163,7 @@ export class OpenaireSearchDataprovidersComponent {
|
|||
this.searchUtils.totalResults = results.length;
|
||||
this.results = results.slice((this.searchUtils.page - 1) * this.searchUtils.size, this.searchUtils.page *this.searchUtils.size );
|
||||
this.searchUtils.status = this.results.length == 0 ? this.errorCodes.NONE: this.errorCodes.DONE;
|
||||
this.searchPage.buildPageURLParameters(this.filters, [], false);
|
||||
this.searchPage.buildPageURLParameters(this.filters, [], [], false);
|
||||
this.disableForms = false;
|
||||
this.enableSearchView = true;
|
||||
}
|
||||
|
|
|
@ -61,3 +61,9 @@
|
|||
.hook-inverse();
|
||||
}
|
||||
|
||||
//services slider
|
||||
@slider-nav-item-background-active: white;
|
||||
@slider-nav-item-action-background: rgba(255, 255, 255, 0.5);
|
||||
slider-container slider-nav-item when (@hero-fonts-mode = light) {
|
||||
.hook-inverse
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue