openaire-library/landingPages/organization/organization.component.html

389 lines
22 KiB
HTML
Raw Normal View History

<div id="tm-main" class="landing uk-section uk-padding-remove-top tm-middle">
<div *ngIf="!showFeedback" class="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="uk-container uk-container-large uk-margin-medium-top organization">
<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="organizationInfo != null" class="uk-grid uk-margin-remove">
<div class="uk-width-2-3@m uk-width-1-1@s uk-padding uk-padding-remove-left uk-padding-remove-vertical uk-margin-bottom">
<schema2jsonld *ngIf="organizationInfo" [data]=organizationInfo
[URL]="properties.domain + properties.baseLink+this.properties.searchLinkToOrganization+organizationInfo.relcanId"
type="organization"></schema2jsonld>
<landing-header [properties]="properties" [title]="organizationInfo.title.name"
titleClass="uk-margin-remove-bottom"
[subTitle]="(organizationInfo.name
&& organizationInfo.title.name !== organizationInfo.name)?organizationInfo.name:null"
[entityType]="'organization'"></landing-header>
<div *ngIf="organizationInfo.deletedByInferenceIds">
<a (click)="openDeletedByInference()">View all {{organizationInfo.deletedByInferenceIds.length}}
versions</a>
</div>
<ul class="uk-list basic-info">
<!-- Web Page -->
<li *ngIf="organizationInfo.title && organizationInfo.title.url">
<span class="uk-text-muted">Web page: </span>
<a [href]="organizationInfo.title.url" target="_blank">
<span>{{organizationInfo.title.url}}</span>
<span class="custom-external custom-icon space"></span>
</a>
</li>
<!-- Country -->
<li *ngIf="organizationInfo.country && !organizationInfo.country.toLowerCase().includes('unknown')">
<span class="uk-text-muted">Country: </span>{{organizationInfo.country}}
</li>
</ul>
</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">
<!-- Share -->
<li>
<addThis></addThis>
</li>
<li>
<a class="uk-link-text uk-text-bold uk-text-uppercase" (click)="openDownloadReportModal()">
<span class="uk-icon-button uk-button-primary uk-icon">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"
data-svg="download"><polyline fill="none" stroke="#000"
points="14,10 9.5,14.5 5,10"></polyline><rect x="3" y="17"
width="13"
height="1"></rect><line
fill="none" stroke="#000" x1="9.5" y1="13.91" x2="9.5" y2="3"></line>
</svg>
</span>
<span class="uk-margin-small-left">Download content lists</span>
</a>
</li>
<li *ngIf="fetchProjects && fetchProjects.funders && fetchProjects.funders.length > 0">
<a class="uk-link-text uk-text-bold uk-text-uppercase" (click)="openDownloadFunderReportModal()">
<span class="uk-icon-button uk-button-primary uk-icon">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"
data-svg="download"><polyline fill="none" stroke="#000"
points="14,10 9.5,14.5 5,10"></polyline><rect x="3" y="17"
width="13"
height="1"></rect><line
fill="none" stroke="#000" x1="9.5" y1="13.91" x2="9.5" y2="3"></line>
</svg>
</span>
<span class="uk-margin-small-left">Download project lists</span>
</a>
</li>
</ul>
</div>
<div class="uk-padding-remove-left uk-width-1-1 uk-margin-large-top">
<!-- <ng-template #loadingBlock>-->
<!-- <div *ngIf="!tabsAreInitialized" class="uk-animation-fade uk-margin-top uk-width-1-1" role="alert">-->
<!-- <span class="loading-gif uk-align-center"></span>-->
<!-- </div>-->
<!-- </ng-template>-->
<!-- *ngIf="numberOfTabs > 0; else loadingBlock"-->
<div class="main-tabs-div">
<!--Tab Templates-->
<ng-template #projects_tab>
<div class="uk-grid uk-margin-remove">
<div class="uk-width-expand uk-padding">
<projectsInModal [fetchProjects]="fetchProjects"
[organizationId]="organizationId"
[properties]=properties>
</projectsInModal>
</div>
<!--<div class="uk-width-1-3@m uk-width-1-1 right-column uk-padding-remove"></div>-->
</div>
</ng-template>
<ng-template #data_providers_tab>
<div class="uk-grid uk-margin-remove">
<div class="uk-width-expand uk-padding">
<search-tab [fetch]="fetchDataproviders" resultType="dataprovider"
[params]="getParamsForSearchLink()"
[searchLinkToAdvancedPage]="properties.searchLinkToAdvancedDataProviders"
[properties]="properties">
</search-tab>
</div>
<!--<div class="uk-width-1-3@m uk-width-1-1 right-column uk-padding-remove"></div>-->
</div>
</ng-template>
<ng-template #publications_tab>
<div class="uk-grid uk-margin-remove">
<div class="uk-width-expand uk-padding">
<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-width-1-1 right-column uk-padding-remove"></div>-->
</div>
</ng-template>
<ng-template #datasets_tab>
<div class="uk-grid uk-margin-remove">
<div class="uk-width-expand uk-padding">
<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-width-1-1 right-column uk-padding-remove"></div>-->
</div>
</ng-template>
<ng-template #software_tab>
<div class="uk-grid uk-margin-remove">
<div class="uk-width-expand uk-padding">
<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-width-1-1 right-column uk-padding-remove"></div>-->
</div>
</ng-template>
<ng-template #other_tab>
<div class="uk-grid uk-margin-remove">
<div class="uk-width-expand uk-padding">
<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-width-1-1 right-column uk-padding-remove"></div>-->
</div>
</ng-template>
<!-- [class]="numberOfTabs > 2 ? 'uk-visible@m' : ''"-->
<my-tabs (selectedActiveTab)="onSelectActiveTab($event)">
<my-tab
[tabNumber]="fetchProjects.searchUtils.totalResults"
[tabTitle]="'Funding / Projects'"
[tabId]="'projects'" class="uk-active">
<ng-container *ngTemplateOutlet="projects_tab;"></ng-container>
</my-tab>
<!-- [class]="(firstTab === 'dataProviders')?'uk-active':''"-->
<my-tab *ngIf="fetchDataproviders && fetchDataproviders.searchUtils.totalResults > 0"
[tabNumber]="fetchDataproviders.searchUtils.totalResults"
[tabTitle]="'Content Providers'"
[tabId]="'dataProviders'">
<ng-container *ngTemplateOutlet="data_providers_tab;"></ng-container>
</my-tab>
<!-- [class]="(firstTab === 'publications')?'uk-active':''"-->
<my-tab *ngIf="fetchPublications && fetchPublications.searchUtils.totalResults > 0"
[tabNumber]="fetchPublications.searchUtils.totalResults"
[tabTitle]="'Publications'"
[tabId]="'publications'">
<ng-container *ngTemplateOutlet="publications_tab;"></ng-container>
</my-tab>
<!-- [class]="(firstTab === 'datasets')?'uk-active':''"-->
<my-tab *ngIf="fetchDatasets && fetchDatasets.searchUtils.totalResults > 0"
[tabNumber]="fetchDatasets.searchUtils.totalResults"
[tabTitle]="'Research Data'"
[tabId]="'datasets'">
<ng-container *ngTemplateOutlet="datasets_tab;"></ng-container>
</my-tab>
<!-- [class]="(firstTab === 'software')?'uk-active':''"-->
<my-tab *ngIf="fetchSoftware && fetchSoftware.searchUtils.totalResults > 0"
[tabNumber]="fetchSoftware.searchUtils.totalResults"
[tabTitle]="'Software'"
[tabId]="'software'">
<ng-container *ngTemplateOutlet="software_tab;"></ng-container>
</my-tab>
<!-- [class]="(firstTab === 'other')?'uk-active':''"-->
<my-tab *ngIf="fetchOrps && fetchOrps.searchUtils.totalResults > 0"
[tabNumber]="fetchOrps.searchUtils.totalResults"
[tabTitle]="'Other Research'"
[tabId]="'other'">
<ng-container *ngTemplateOutlet="other_tab;"></ng-container>
</my-tab>
</my-tabs>
<!-- *ngIf="numberOfTabs > 2" class="uk-hidden@m"-->
<my-small-tabs
(selectedActiveTab)="onSelectActiveTab($event)">
<!-- *ngIf="fetchProjects && fetchProjects.searchUtils.totalResults > 0"-->
<!-- [class]="(firstTab === 'projects')?'uk-active':''"-->
<my-tab
[tabNumber]="fetchProjects.searchUtils.totalResults"
[tabTitle]="'Funding / Projects'"
[tabId]="'projects'" class="uk-active">
<ng-container *ngTemplateOutlet="projects_tab;"></ng-container>
</my-tab>
<!-- [class]="(firstTab === 'dataProviders')?'uk-active':''"-->
<my-tab *ngIf="fetchDataproviders && fetchDataproviders.searchUtils.totalResults > 0"
[tabNumber]="fetchDataproviders.searchUtils.totalResults"
[tabTitle]="'Content Providers'"
[tabId]="'dataProviders'">
<ng-container *ngTemplateOutlet="data_providers_tab;"></ng-container>
</my-tab>
<!-- [class]="(firstTab === 'publications')?'uk-active':''"-->
<my-tab *ngIf="fetchPublications && fetchPublications.searchUtils.totalResults > 0"
[tabNumber]="fetchPublications.searchUtils.totalResults"
[tabTitle]="'Publications'"
[tabId]="'publications'">
<ng-container *ngTemplateOutlet="publications_tab;"></ng-container>
</my-tab>
<!-- [class]="(firstTab === 'datasets')?'uk-active':''"-->
<my-tab *ngIf="fetchDatasets && fetchDatasets.searchUtils.totalResults > 0"
[tabNumber]="fetchDatasets.searchUtils.totalResults"
[tabTitle]="'Research Data'"
[tabId]="'datasets'">
<ng-container *ngTemplateOutlet="datasets_tab;"></ng-container>
</my-tab>
<!-- [class]="(firstTab === 'software')?'uk-active':''"-->
<my-tab *ngIf="fetchSoftware && fetchSoftware.searchUtils.totalResults > 0"
[tabNumber]="fetchSoftware.searchUtils.totalResults"
[tabTitle]="'Software'"
[tabId]="'software'">
<ng-container *ngTemplateOutlet="software_tab;"></ng-container>
</my-tab>
<!-- [class]="(firstTab === 'other')?'uk-active':''"-->
<my-tab *ngIf="fetchOrps && fetchOrps.searchUtils.totalResults > 0"
[tabNumber]="fetchOrps.searchUtils.totalResults"
[tabTitle]="'Other Research'"
[tabId]="'other'">
<ng-container *ngTemplateOutlet="other_tab;"></ng-container>
</my-tab>
</my-small-tabs>
</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" loading="lazy">
<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>
[Trunk | Library]: 1. src/assets/common-assets/common/custom.css: Add 'font-display: swap;' in '@font-face' css rules - improve performance. 2. dataProvider.component.html & organizations.component.html & project.component.html & resultLanding.component.html: Add check if 'indexUpdateDate' is initialized. 3. dataProvider.component.ts & organization.component.ts & project.component.ts & resultLanding.component.ts: Initialize 'indexUpdateDate' and tabs counts only if "typeof document !== 'undefined'" (javascript is enabled) - improve performance. 4. resultLanding.component.ts: Get "provenanceActionVocabulary" and "altMetrics" only if "typeof document !== 'undefined'" (javascript is enabled) - improve performance. 5. organization.component.ts: [Bug fix] Get 'indexUpdateDate' from service (not properties) if available. 6. project.component.ts: [Bug fix] Call 'getProjectInfo()' only once (was called twice). 7. project.service.ts: [Bug fix] Add check for rels.rel.to.class=="hasParticipant" (when not array). 8. metrics.component.ts: Get metrics if "typeof document !== 'undefined'" (javascript is enabled) | Show charts only if user clicked on metrics badge | Do not set "width" for <i-frame> elements. 9. iframe.component.ts: Add case when only height is sent as input. 10. searchDataProviders.component.ts & searchOrganizations.component.ts: [Bug fix] Set "firstLoad" to false after getting results (was asking refine filters in paging too). 11. search-tab.component.ts: [Bug fix]: In method "getEntityName()" add cases when 'entityType == "project"' and 'entityType == "dataprovider"' and fix case when 'entityType == "result"'. 12. navigationBar.component.ts: [Bug fix] Do not initialize navbar inside route.queryParams subscription - !!! check it carefully when deployed in all portals !!! . git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-library/trunk/ng-openaire-library/src/app@58874 d315682c-612b-4755-9ff5-7f18f6832af3
2020-06-10 13:05:59 +02:00
<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>
</div>
</div>
</div>
</div>
<helper *ngIf="pageContents && pageContents['bottom'] && pageContents['bottom'].length > 0"
[texts]="pageContents['bottom']"></helper>
</div>
</div>
<feedback *ngIf="organizationInfo" [organizationInfo]="organizationInfo"
[properties]="properties" [entityType]="'organization'" [fields]="feedbackFields"
[showForm]="showFeedback" (show)="showFeedback = $event"></feedback>
</div>
<!-- Other versions -->
<modal-alert *ngIf="organizationInfo && organizationInfo.deletedByInferenceIds"
#AlertModalDeletedByInference classBody="uk-width-xxlarge uk-padding-remove-right">
<landing-header [properties]="properties" [title]="organizationInfo.title.name"
[subTitle]="(organizationInfo.name && organizationInfo.title.name !== organizationInfo.name)?organizationInfo.name:null"
titleClass="title-grey-background"
[entityType]="'organization'"></landing-header>
<div class="uk-margin-medium-top uk-margin-medium-right">
<organizationsDeletedByInference *ngIf="deleteByInferenceOpened"
[id]="organizationInfo.objIdentifier"
[ids]="organizationInfo.deletedByInferenceIds"
[modal]="AlertModalDeletedByInference"
[type]="'organizations'">
</organizationsDeletedByInference>
</div>
</modal-alert>
<!-- Download report -->
<modal-alert #downloadReportModal [classTitle]="'landing-modal-header uk-padding-small'"
[classBody]="'uk-padding-remove landing-modal'">
<div class="uk-padding">
<div class="uk-animation-slide-top-small">
<ul *ngIf="total > 0" class="uk-margin-remove-bottom uk-list">
<li [attr.uk-tooltip]="total > 0 ? 'cls: uk-invisible' : 'cls: uk-active'"
title="No report available">
<a [class]="total > 0 ? 'clickable' : 'uk-disabled uk-link-muted'"
(click)="downloadFile(getCSVAffiliated('results'), 'results' + '-report')">
<span uk-icon="download"></span>
<span class="uk-text-capitalize uk-margin-small-left">all research outcomes (CSV)</span>
</a>
</li>
<li [attr.uk-tooltip]="fetchPublications.searchUtils.totalResults > 0 ? 'cls: uk-invisible' : 'cls: uk-active'"
title="No report available">
<a [class]="fetchPublications.searchUtils.totalResults > 0 ? 'clickable' : 'uk-disabled uk-link-muted'"
(click)="downloadFile(getCSVAffiliated('publications'), 'publications' + '-report')">
<span uk-icon="download"></span>
<span class="uk-text-capitalize uk-margin-small-left">publications (CSV)</span>
</a>
</li>
<li [attr.uk-tooltip]="fetchDatasets.searchUtils.totalResults > 0 ? 'cls: uk-invisible' : 'cls: uk-active'"
title="No report available">
<a [class]="fetchDatasets.searchUtils.totalResults > 0 ? 'clickable' : 'uk-disabled uk-link-muted'"
(click)="downloadFile(getCSVAffiliated('datasets'), 'datasets' + '-report')">
<span uk-icon="download"></span>
<span class="uk-text-capitalize uk-margin-small-left">research data (CSV)</span>
</a>
</li>
<li [attr.uk-tooltip]="fetchSoftware.searchUtils.totalResults > 0 ? 'cls: uk-invisible' : 'cls: uk-active'"
title="No report available">
<a [class]="fetchSoftware.searchUtils.totalResults > 0 ? 'clickable' : 'uk-disabled uk-link-muted'"
(click)="downloadFile(getCSVAffiliated('software'), 'software' + '-report')">
<span uk-icon="download"></span>
<span class="uk-text-capitalize uk-margin-small-left">software (CSV)</span>
</a>
</li>
<li [attr.uk-tooltip]="fetchOrps.searchUtils.totalResults > 0 ? 'cls: uk-invisible' : 'cls: uk-active'"
title="No report available">
<a [class]="fetchOrps.searchUtils.totalResults > 0 ? 'clickable' : 'uk-disabled uk-link-muted'"
(click)="downloadFile(getCSVAffiliated('other'), 'other' + '-report')">
<span uk-icon="download"></span>
<span class="uk-text-capitalize uk-margin-small-left">other research products (CSV)</span>
</a>
</li>
</ul>
<div *ngIf="total == 0"
class="uk-text-muted">
No reports available
</div>
</div>
</div>
</modal-alert>
<!-- Download Funder report -->
<modal-alert #downloadFunderReportModal [classTitle]="'landing-modal-header uk-padding-small'"
[classBody]="'uk-padding-remove landing-modal'">
<div *ngIf="fetchProjects.funders && fetchProjects.funders.length > 0" class="uk-padding">
<div class="uk-animation-slide-top-small">
<div>
<mat-form-field class="matSelectionFormField uk-width-1-1">
<mat-label>Select a funder to download report</mat-label>
<mat-select [(value)]="funder"
[disableOptionCentering]="true"
class="matSelection" panelClass="matSelectionPanel">
<mat-option *ngFor="let element of fetchProjects.funders"
[value]="element">{{element.name}}
</mat-option>
</mat-select>
</mat-form-field>
</div>
<div *ngIf="funder && funder != ''"
class="uk-animation-slide-top-small uk-margin-top">
<ul class="uk-margin-remove-bottom uk-list">
<li>
<a class="clickable"
(click)="downloadFile(getFunderProjects(), funder.name + '-projects-report')">
<span uk-icon="download"></span>
<span class="uk-text-capitalize uk-margin-small-left">projects (CSV)</span>
</a>
</li>
<li *ngFor="let contentType of contentTypes">
<a class="clickable"
(click)="confirmOpenApplyAll(contentType[0])">
<span uk-icon="download"></span>
<span class="uk-text-capitalize uk-margin-small-left">{{contentType[1]}} (CSV)</span>
</a>
</li>
</ul>
</div>
</div>
</div>
</modal-alert>
<modal-loading></modal-loading>
<modal-alert #AlertModalApplyAll (alertOutput)="confirmCloseApplyAll()"></modal-alert>
<modal-alert #AlertModalCsvError></modal-alert>