Loading Message when building CSV files (project & organization landing page) | confirmation message before building publications CSV in organization landing page | Organization landing page: Publications CSV: no query for publications of a specific project when size of its publications = 0 | Lazy routing in 'View all' links | Remove href from tabs in landing pages & add class uk-animation-fade in tabs' content | fix how commas are displayed (no spaces between comma and previous word) in organizations and projects lists

git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-portal/trunk@46357 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
konstantina.galouni 2017-03-20 11:45:45 +00:00
parent 88c3173d54
commit e458388b66
27 changed files with 667 additions and 249 deletions

View File

@ -3,6 +3,7 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { DepositComponent } from './deposit.component';
import { DepositResultComponent } from './depositResult.component';
@ -15,6 +16,7 @@ import {SearchResultsModule } from '../searchPages/searchUtils/searchResults.mod
@NgModule({
imports: [
CommonModule, FormsModule,
RouterModule,
EntitiesAutocompleteModule,
DataProvidersServiceModule,
OrganizationServiceModule,

View File

@ -8,6 +8,8 @@ import { SearchDataprovidersService } from '../services/searchDataproviders.serv
import {OrganizationService} from '../services/organization.service';
import {RouterHelper} from '../utils/routerHelper.class';
@Component({
selector: 'deposit-result',
template: `
@ -38,7 +40,16 @@ import {OrganizationService} from '../services/organization.service';
<div *ngIf="fetchDataproviders.searchUtils.totalResults > 0">
<p>Please use the information/contacts shown below to deposit your {{requestFor}}.</p>
<!--showDataProviders [dataProviders]=dataProviders></showDataProviders-->
<div class = "uk-text-right" *ngIf = "fetchDataproviders.searchUtils.totalResults > 10" ><a [href] = "linkToSearchDataproviders" >View all {{fetchDataproviders.searchUtils.totalResults}} results <i class="uk-icon-angle-double-right"></i></a></div>
<div class = "uk-text-right" *ngIf = "fetchDataproviders.searchUtils.totalResults > 10">
<!--a [href] = "linkToSearchDataproviders">
View all {{fetchDataproviders.searchUtils.totalResults}} results <i class="uk-icon-angle-double-right"></i>
</a-->
<a [queryParams]="routerHelper.createQueryParams(['organizationId', 'or'], [organizationId, 'and'])"
routerLinkActive="router-link-active" [routerLink]="linkToSearchDataproviders">
View all {{fetchDataproviders.searchUtils.totalResults}} results <i class="uk-icon-angle-double-right"></i>
</a>
</div>
<search-result [(results)]="fetchDataproviders.results"
[(status)]= "fetchDataproviders.searchUtils.status"
type="dataprovider" urlParam="datasourceId">
@ -91,6 +102,7 @@ export class DepositResultComponent {
sub: any;
subDataproviders: any;
public routerHelper:RouterHelper = new RouterHelper();
public fetchDataproviders : FetchDataproviders;
public linkToSearchDataproviders = "";
public zenodo: string;

View File

@ -16,7 +16,12 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
<a href="mailto:feedback@openaire.eu">Let us know how we are doing!</a>
</p>
<div class = "uk-text-right" *ngIf = "fetchDatasets.searchUtils.totalResults > 10" ><a [href] = "linkToSearchDatasets" >View all {{fetchDatasets.searchUtils.totalResults}} results</a></div>
<div class = "uk-text-right" *ngIf = "fetchDatasets.searchUtils.totalResults > 10" >
<a [queryParams]="paramsForSearchLink"
routerLinkActive="router-link-active" [routerLink]="linkToSearchDatasets">
View all {{fetchDatasets.searchUtils.totalResults}} results
</a>
</div>
<search-result [(results)]="fetchDatasets.results"
[(status)]= "fetchDatasets.searchUtils.status"
type="dataset" urlParam="datasetId">
@ -26,14 +31,14 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
})
export class DatasetsTabComponent {
@Input() paramsForSearchLink: string = "";
@Input() paramsForSearchLink = {};
@Input() fetchDatasets : FetchDatasets;
public linkToSearchDatasets = "";
constructor () {}
ngOnInit() {
this.linkToSearchDatasets = OpenaireProperties.getLinkToAdvancedSearchDatasets()+this.paramsForSearchLink;
this.linkToSearchDatasets = OpenaireProperties.getLinkToAdvancedSearchDatasets();
}
ngOnDestroy() {}

View File

@ -16,7 +16,12 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
<a href="mailto:feedback@openaire.eu">Let us know how we are doing!</a>
</p>
<div class = "uk-text-right" *ngIf = "fetchDataproviders.searchUtils.totalResults > 10" ><a [href] = "linkToSearchDataproviders" >View all {{fetchDataproviders.searchUtils.totalResults}} results</a></div>
<div class = "uk-text-right" *ngIf = "fetchDataproviders.searchUtils.totalResults > 10">
<a [queryParams]="paramsForSearchLink"
routerLinkActive="router-link-active" [routerLink]="linkToSearchDataproviders">
View all {{fetchDataproviders.searchUtils.totalResults}} results
</a>
</div>
<search-result [(results)]="fetchDataproviders.results"
[(status)]= "fetchDataproviders.status"
type="dataprovider" urlParam="datasourceId"
@ -28,7 +33,7 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
export class DatasourcesTabComponent {
@Input() paramsForSearchLink: string = "";
@Input() paramsForSearchLink = {};
@Input() fetchDataproviders : FetchDataproviders;
public linkToSearchDataproviders = "";
@ -36,7 +41,7 @@ export class DatasourcesTabComponent {
ngOnInit() {
console.info("datasources tab: init");
this.linkToSearchDataproviders = OpenaireProperties.getLinkToAdvancedSearchDataProviders()+this.paramsForSearchLink;
this.linkToSearchDataproviders = OpenaireProperties.getLinkToAdvancedSearchDataProviders();
// console.info(this.linkToSearchDataproviders);
}

View File

@ -17,7 +17,12 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
<a href="mailto:feedback@openaire.eu">Let us know how we are doing!</a>
</p>
<div class = "uk-text-right" *ngIf = "fetchProjects.searchUtils.totalResults > 10" ><a [href] = "linkToSearchProjects" >View all {{fetchProjects.searchUtils.totalResults}} results</a></div>
<div class = "uk-text-right" *ngIf = "fetchProjects.searchUtils.totalResults > 10">
<a [queryParams]="paramsForSearchLink"
routerLinkActive="router-link-active" [routerLink]="linkToSearchProjects">
View all {{fetchProjects.searchUtils.totalResults}} results
</a>
</div>
<search-result [(results)]="fetchProjects.results"
[(status)]= "fetchProjects.status"
type="project" urlParam="projectId">
@ -28,14 +33,14 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
export class ProjectsTabComponent {
@Input() paramsForSearchLink: string = "";
@Input() paramsForSearchLink = {};
@Input() fetchProjects : FetchProjects;
public linkToSearchProjects = "";
constructor () {}
ngOnInit() {
this.linkToSearchProjects = OpenaireProperties.getLinkToAdvancedSearchProjects()+this.paramsForSearchLink;
this.linkToSearchProjects = OpenaireProperties.getLinkToAdvancedSearchProjects();
}
ngOnDestroy() {}

View File

@ -16,7 +16,15 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
<a href="mailto:feedback@openaire.eu">Let us know how we are doing!</a>
</p>
<div class = "uk-text-right" *ngIf = "fetchPublications.searchUtils.totalResults > 10" ><a [href] = "linkToSearchPublications" >View all {{fetchPublications.searchUtils.totalResults}} results</a></div>
<div class = "uk-text-right" *ngIf = "fetchPublications.searchUtils.totalResults > 10">
<!--a [href] = "linkToSearchPublications">
View all {{fetchPublications.searchUtils.totalResults}} results
</a-->
<a [queryParams]="paramsForSearchLink"
routerLinkActive="router-link-active" [routerLink]="linkToSearchPublications">
View all {{fetchPublications.searchUtils.totalResults}} results
</a>
</div>
<search-result [(results)]="fetchPublications.results"
[(status)]= "fetchPublications.status"
type="publication" urlParam="articleId">
@ -26,14 +34,14 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
})
export class PublicationsTabComponent {
@Input() paramsForSearchLink: string = "";
@Input() paramsForSearchLink = {};//: string = "";
@Input() fetchPublications : FetchPublications;
public linkToSearchPublications = "";
constructor () {}
ngOnInit() {
this.linkToSearchPublications = OpenaireProperties.getLinkToAdvancedSearchPublications()+this.paramsForSearchLink;
this.linkToSearchPublications = OpenaireProperties.getLinkToAdvancedSearchPublications();//+this.paramsForSearchLink;
console.info("publications tab: init");
}

View File

@ -12,13 +12,14 @@ import { FetchDataproviders } from '../../utils/fetchEntitiesClasses/fetchDatapr
import { SearchDataprovidersService } from '../../services/searchDataproviders.service';
import {OpenaireProperties} from '../../utils/properties/openaireProperties';
import {RouterHelper} from '../../utils/routerHelper.class';
@Component({
selector: 'tabs',
template: `
<ul *ngIf="tabs != undefined" class="uk-tab" data-uk-switcher="{connect:'#tab-content'}">
<li *ngIf="tabs.length>0" class="uk-active" id="{{tabs[0].content}}">
<a href="{{tabs[0].content}}">
<a>
{{tabs[0].name}}
<i *ngIf="tabs[0].content == 'metricsTab'" class="uk-icon-line-chart"></i>
<i *ngIf="tabs[0].content == 'statisticsTab'" class="uk-icon-pie-chart"></i>
@ -43,7 +44,7 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
<li *ngFor="let tab of tabs; let i=index">
<a *ngIf="i>0"
(click)="search(tab.content, 1, 10)" href="#{{tab.content}}">
(click)="search(tab.content, 1, 10)">
{{tab.name}}
<i *ngIf="tab.content == 'metricsTab'" class="uk-icon-line-chart"></i>
<i *ngIf="tab.content == 'statisticsTab'" class="uk-icon-pie-chart"></i>
@ -68,7 +69,7 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
</ul>
<ul *ngIf="tabs != undefined" id="tab-content" class="uk-switcher uk-margin">
<li id="firstTab-content" *ngIf="tabs.length>0">
<li class="uk-animation-fade" id="firstTab-content" *ngIf="tabs.length>0">
<publicationsTab *ngIf="tabs[0].content=='publicationsTab'"
[paramsForSearchLink]="paramsForSearchLink"
[fetchPublications]="fetchPublications">
@ -161,7 +162,7 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
</i-frame>
</li>
<li *ngFor="let tab of tabs; let i=index">
<li class="uk-animation-fade" *ngFor="let tab of tabs; let i=index">
<publicationsTab *ngIf="i>0 && tab.content=='publicationsTab'"
[paramsForSearchLink]="paramsForSearchLink"
[fetchPublications] = "fetchPublications">
@ -257,7 +258,7 @@ export class TabsComponent {
@Input() _dataproviderService;
public paramsForSearchLink: string = "";
public paramsForSearchLink = {};//: string = "";
public reloadPublications: boolean = true;
public reloadDatasets: boolean = true;
@ -282,7 +283,11 @@ export class TabsComponent {
public fetchProjects: FetchProjects;
public fetchDataproviders: FetchDataproviders;
public fetchPublicationsAggregators: FetchPublications;
private nativeElement : Node;
private nativeElement : Node;
public routerHelper:RouterHelper = new RouterHelper();
constructor (private renderer : Renderer, private element : ElementRef,private route: ActivatedRoute,
private _searchPublicationsService: SearchPublicationsService,
private _searchDatasetsService: SearchDatasetsService,
@ -321,9 +326,11 @@ private nativeElement : Node;
}
if(this.resultsBy == "collectedFrom") {
this.paramsForSearchLink = "?collectedFrom="+this.id+"&co=and";
//this.paramsForSearchLink = "?collectedFrom="+this.id+"&co=and";
this.paramsForSearchLink = this.routerHelper.createQueryParams(['collectedFrom', 'co'], [this.id, 'and']);
} else if (this.resultsBy == "hostedBy") {
this.paramsForSearchLink = "?hostedBy="+this.id+"&ho=and";
//this.paramsForSearchLink = "?hostedBy="+this.id+"&ho=and";
this.paramsForSearchLink = this.routerHelper.createQueryParams(['hostedBy', 'ho'], [this.id, 'and']);
}
}

View File

@ -40,7 +40,7 @@
<ul class="uk-tab" data-uk-switcher="{connect:'#tab-content'}">
<li class="uk-active">
<a href="#relatedTab">
<a>
Related Research Results
<span class="uk-badge uk-badge-notification">
{{relatedResearchResultsNum}}
@ -49,7 +49,7 @@
</li>
<li>
<a href="#similarTab">
<a>
Similar Research Results
<span *ngIf="datasetInfo.similarResearchResults == undefined" class="uk-badge uk-badge-notification">0</span>
<span *ngIf="datasetInfo.similarResearchResults != undefined" class="uk-badge uk-badge-notification">
@ -59,14 +59,14 @@
</li>
<li (click)="metricsClicked=true">
<a href="#metricsTab">
<a>
Metrics
</a>
</li>
</ul>
<ul id="tab-content" class="uk-switcher uk-margin">
<li id="relatedTab">
<li class="uk-animation-fade">
<div *ngIf="datasetInfo.relatedResearchResults == undefined" class = "uk-alert" >
There are no related research results
</div>
@ -84,7 +84,7 @@
</div>
</li>
<li id="similarTab">
<li class="uk-animation-fade">
<div *ngIf="datasetInfo.similarResearchResults == undefined" class = "uk-alert" >
There are no similar research results
</div>
@ -97,7 +97,7 @@
<tabTable from="dataset" [info]="datasetInfo.similarResearchResults"></tabTable>
</div>
</li>
<li id="metricsTab">
<li class="uk-animation-fade">
<metrics *ngIf="metricsClicked"
[id]="datasetId" [type]="'results'" (metricsResults)="metricsResults($event)">
</metrics>
@ -111,8 +111,8 @@
</ul>
</div>
<div class="uk-width-3-10" *ngIf="datasetInfo != null">
<ul class="uk-list uk-list-striped mainFunctionsBlock">
<div class="uk-width-3-10">
<ul class="uk-list uk-list-striped">
<li>
<dl class="uk-description-list-line">
<dt >Share - Bookmark
@ -126,57 +126,102 @@
</altmetrics >
</li>
<li *ngIf="datasetInfo.downloadFrom != undefined && datasetInfo.downloadFrom.size > 0">
<dl class="uk-description-list-line functionsSection">
<dl class="uk-description-list-line">
<dt class="title">Download from</dt>
<dd class="line" *ngFor="let key of datasetInfo.downloadFrom.keys()">
<div *ngIf="datasetInfo.downloadFrom.get(key)['url'].length > 1">
{{key}}
<span *ngFor="let url of datasetInfo.downloadFrom.get(key)['url']; let i=index;">
<a href="{{url}}">
[{{i+1}}]
<dd class="line"
*ngFor="let key of datasetInfo.downloadFrom.keys() let i=index"
data-uk-tooltip="{pos:'right', cls:'tooltip uk-text-center uk-contrast'}"
[title]="datasetInfo.downloadFrom.get(key)['accessMode']">
<div *ngIf="i<5 || showAllDownloadFrom"
class="{{datasetInfo.downloadFrom.get(key)['bestAccessMode']}}">
<span class="uk-icon-external-link">
<div *ngIf="datasetInfo.downloadFrom.get(key)['url'].length > 1">
{{key}}
<span *ngFor="let url of datasetInfo.downloadFrom.get(key)['url']; let i=index;">
<a href="{{url}}" target="_blank">
[{{i+1}}]
</a>
</span>
</div>
<a *ngIf="datasetInfo.downloadFrom.get(key)['url'].length == 1"
href="{{datasetInfo.downloadFrom.get(key)['url']}}"
target="_blank">
{{key}}
</a>
</span>
</div>
<a *ngIf="datasetInfo.downloadFrom.get(key)['url'].length == 1" href="{{datasetInfo.downloadFrom.get(key)['url']}}">
{{key}}
</dd>
<dd *ngIf="showAllDownloadFrom" class="uk-text-right">
<a class="uk-text-muted" (click)="showAllDownloadFrom = !showAllDownloadFrom;">
View less
</a>
</dd>
<dd *ngIf="!showAllDownloadFrom && datasetInfo.downloadFrom.size > 5">...</dd>
<dd *ngIf="!showAllDownloadFrom && datasetInfo.downloadFrom.size > 5" class="uk-text-right">
<a class="uk-text-muted" (click)="showAllDownloadFrom = !showAllDownloadFrom;">
View more
</a>
</dd>
</dl>
</li>
<li >
<dl class="uk-description-list-line functionsSection" >
<!--li *ngIf="datasetInfo.fundedByProjects != undefined && datasetInfo.fundedByProjects.length > 0"-->
<li>
<dl class="uk-description-list-line" >
<dt class="title">Funded By</dt>
<dd
data-uk-tooltip="{pos:'right'}" title="{{item['title']}}
| Project Code: {{item['acronym']}}
| Funder: {{item['funderName']}} ({{item['funderShortname']}})
| Funding: {{item['funding']}}"
class="line" *ngFor="let item of datasetInfo.fundedByProjects">
<!--a *ngIf="!item['inline']" href="{{item['url']}}"-->
<a *ngIf="!item['inline']"
[queryParams]="{projectId: item.id}" routerLinkActive="router-link-active" routerLink="/search/project">
{{item['funderShortname']?item['funderShortname']:item['funderName']}}
| {{ item['acronym']?item['acronym']:item['title']}}
</a>
<!--a *ngIf="item['inline']" href="{{item['url']}}"-->
<a *ngIf="item['inline']"
[queryParams]="{projectId: item.id}" routerLinkActive="router-link-active" routerLink="/search/project">
<mark>
<dd class="line"
*ngFor="let item of datasetInfo.fundedByProjects let i=index">
<div *ngIf="i<5 || showAllFundedBy">
<span data-uk-tooltip="{pos:'right', cls:'tooltip uk-text-center uk-contrast'}"
title="
<div>
<h4>{{item['title']}}</h4>
Project Code: {{item['code']}}
<div>
Funder: {{item['funderName']}} ({{item['funderShortname']}})
</div>
<div>
Funding: {{item['funding']}}
</div>
</div>
">
<!--a *ngIf="!item['inline']" href="{{item['url']}}"-->
<a *ngIf="!item['inline']"
[queryParams]="{projectId: item.id}" routerLinkActive="router-link-active" routerLink="/search/project">
{{item['funderShortname']?item['funderShortname']:item['funderName']}}
| {{ item['acronym']?item['acronym']:item['title']}}
</mark>
</a>
</a>
<!--a *ngIf="item['inline']" href="{{item['url']}}"-->
<a *ngIf="item['inline']"
[queryParams]="{projectId: item.id}" routerLinkActive="router-link-active" routerLink="/search/project">
<mark>
{{item['funderShortname']?item['funderShortname']:item['funderName']}}
| {{ item['acronym']?item['acronym']:item['title']}}
</mark>
</a>
<i class="uk-icon-info-circle"></i>
</span>
</div>
</dd>
<!--dd><a [queryParams]="routerHelper.createQueryParams(['id','type','linkTo'],[datasetId,'dataset','project'])" routerLinkActive="router-link-active" routerLink="/linking" > <i class="uk-icon-link"></i> Add links to projects</a></dd-->
<dd *ngIf="showAllFundedBy" class="uk-text-right">
<a class="uk-text-muted" (click)="showAllFundedBy = !showAllFundedBy;">
View less
</a>
</dd>
<dd *ngIf="!showAllFundedBy && datasetInfo.fundedByProjects != undefined && datasetInfo.fundedByProjects.length > 5">...</dd>
<dd *ngIf="!showAllFundedBy && datasetInfo.fundedByProjects != undefined && datasetInfo.fundedByProjects.length > 5" class="uk-text-right">
<a class="uk-text-muted" (click)="showAllFundedBy = !showAllFundedBy;">
View more
</a>
</dd>
</dl>
</li>
<li >
<dl class="uk-description-list-line functionsSection" >
<li>
<dl class="uk-description-list-line" >
<dt class="title">Related to </dt>
<dd class="line" *ngFor="let item of datasetInfo.contexts">
<span *ngIf = "!item['inline']" >
@ -194,14 +239,27 @@
</dl>
</li>
<li><citeThis [result]="datasetInfo" [id]="datasetId"></citeThis></li>
<li *ngIf="datasetInfo.collectedFrom != undefined">
<dl class="uk-description-list-line functionsSection">
<li *ngIf="datasetInfo.collectedFrom != undefined && datasetInfo.collectedFrom.length > 0">
<dl class="uk-description-list-line">
<dt>Collected from</dt>
<dd *ngFor="let item of datasetInfo.collectedFrom">
<dd *ngFor="let item of datasetInfo.collectedFrom let i=index">
<!--a href="{{item['url']}}"-->
<a [queryParams]="{datasourceId: item.id}" routerLinkActive="router-link-active" routerLink="/search/dataprovider">
{{item['name']}}
<a *ngIf="i<5 || showAllCollectedFrom"
[queryParams]="{datasourceId: item.id}" routerLinkActive="router-link-active" routerLink="/search/dataprovider">
{{item['name']}}
</a>
</dd>
<dd *ngIf="showAllCollectedFrom" class="uk-text-right">
<a class="uk-text-muted" (click)="showAllCollectedFrom = !showAllCollectedFrom;">
View less
</a>
</dd>
<dd *ngIf="!showAllCollectedFrom && datasetInfo.collectedFrom.length > 5">...</dd>
<dd *ngIf="!showAllCollectedFrom && datasetInfo.collectedFrom.length > 5" class="uk-text-right">
<a class="uk-text-muted" (click)="showAllCollectedFrom = !showAllCollectedFrom;">
View more
</a>
</dd>
</dl>

View File

@ -13,6 +13,11 @@ import {RouterHelper} from '../../utils/routerHelper.class';
export class DatasetComponent {
public datasetInfo: DatasetInfo;
public showAllCollectedFrom: boolean = false;
public showAllDownloadFrom: boolean = false;
public showAllFundedBy: boolean = false;
private showStyle: boolean = false;
private showAllReferences: boolean = false;
private showAllRelResData: boolean = false;

View File

@ -234,8 +234,8 @@ export class DatasetService {
if(data[3] != null) {
if(data[3].hasOwnProperty("instance")) {
this.datasetInfo.downloadFrom = new Map<string, {"url": string[], "accessMode": string[]}>();
this.datasetInfo.publishedIn = new Map<string, {"url": string[], "accessMode": string[]}>()
this.datasetInfo.downloadFrom = new Map<string, {"url": string[], "accessMode": string[], "bestAccessMode": string}>();
this.datasetInfo.publishedIn = new Map<string, {"url": string[], "accessMode": string[], "bestAccessMode": string}>()
let length = data[3]['instance'].length!=undefined ? data[3]['instance'].length : 1;
@ -266,25 +266,53 @@ export class DatasetService {
if(!this.datasetInfo.downloadFrom.has(url) && mydata.hasOwnProperty("hostedby")) {
if(mydata['hostedby'].name != "other resources" && mydata['hostedby'].name != "Unknown Repository") {
if(!this.datasetInfo.downloadFrom.has(mydata['hostedby'].name)) {
this.datasetInfo.downloadFrom.set(mydata['hostedby'].name, {"url": null, "accessMode": null});
let key: string = mydata['hostedby'].name;
if(!this.datasetInfo.downloadFrom.has(key)) {
this.datasetInfo.downloadFrom.set(key, {"url": null, "accessMode": null, "bestAccessMode": null});
}
if(this.datasetInfo.downloadFrom.get(mydata['hostedby'].name)['url'] == null) {
this.datasetInfo.downloadFrom.get(mydata['hostedby'].name)['url'] = new Array<string>();
if(this.datasetInfo.downloadFrom.get(key)['url'] == null) {
this.datasetInfo.downloadFrom.get(key)['url'] = new Array<string>();
}
counter2 = this.datasetInfo.downloadFrom.get(mydata['hostedby'].name)['url'].length;
this.datasetInfo.downloadFrom.get(mydata['hostedby'].name)['url'][counter2] = url;
counter2 = this.datasetInfo.downloadFrom.get(key)['url'].length;
this.datasetInfo.downloadFrom.get(key)['url'][counter2] = url;
if(this.datasetInfo.downloadFrom.get(mydata['hostedby'].name)['accessMode'] == null) {
this.datasetInfo.downloadFrom.get(mydata['hostedby'].name)['accessMode'] = new Array<string>();
if(this.datasetInfo.downloadFrom.get(key)['accessMode'] == null) {
this.datasetInfo.downloadFrom.get(key)['accessMode'] = new Array<string>();
}
if(mydata.hasOwnProperty("licence")) {
this.datasetInfo.downloadFrom.get(mydata['hostedby'].name)['accessMode'][counter2] = mydata['licence'].classid;
this.datasetInfo.downloadFrom.get(key)['accessMode'].push(mydata['licence'].classid);
//this.datasetInfo.downloadFrom.get(mydata['hostedby'].name)['accessMode'][counter2] = mydata['licence'].classid;
switch (this.datasetInfo.downloadFrom.get(key)['bestAccessMode']) {
case null:
this.datasetInfo.downloadFrom.get(key)['bestAccessMode'] = mydata['licence'].classid;
break;
case "CLOSED":
if(mydata['licence'].classid == "OPEN" ||
mydata['licence'].classid == "EMBARGO" ||
mydata['licence'].classid == "RESTRICTED") {
this.datasetInfo.downloadFrom.get(key)['bestAccessMode'] = mydata['licence'].classid;
}
break;
case "RESTRICTED":
if(mydata['licence'].classid == "OPEN" ||
mydata['licence'].classid == "EMBARGO") {
this.datasetInfo.downloadFrom.get(key)['bestAccessMode'] = mydata['licence'].classid;
}
break;
case "EMBARGO":
if(mydata['licence'].classid == "OPEN") {
this.datasetInfo.downloadFrom.get(key)['bestAccessMode'] = mydata['licence'].classid;
}
break;
}
} else {
this.datasetInfo.downloadFrom.get(mydata['hostedby'].name)['accessMode'][counter2] = "";
//this.datasetInfo.downloadFrom.get(mydata['hostedby'].name)['accessMode'][counter2] = "";
this.datasetInfo.downloadFrom.get(key)['accessMode'].push("");
}
} else {
if(data[0] != null && data[0].hasOwnProperty("source")) {
@ -299,7 +327,7 @@ export class DatasetService {
}
}
this.datasetInfo.publishedIn.set(key, {"url": null, "accessMode": null});
this.datasetInfo.publishedIn.set(key, {"url": null, "accessMode": null, "bestAccessMode": null});
if(this.datasetInfo.publishedIn.get(key)['url'] == null) {
this.datasetInfo.publishedIn.get(key)['url'] = new Array<string>();
@ -313,9 +341,34 @@ export class DatasetService {
}
if(mydata.hasOwnProperty("licence")) {
this.datasetInfo.publishedIn.get(key)['accessMode'][counter2] = mydata['licence'].classid;
//this.datasetInfo.publishedIn.get(key)['accessMode'][counter2] = mydata['licence'].classid;
this.datasetInfo.publishedIn.get(key)['accessMode'].push(mydata['licence'].classid);
switch (this.datasetInfo.publishedIn.get(key)['bestAccessMode']) {
case null:
this.datasetInfo.publishedIn.get(key)['bestAccessMode'] = mydata['licence'].classid;
break;
case "CLOSED":
if(mydata['licence'].classid == "OPEN" ||
mydata['licence'].classid == "EMBARGO" ||
mydata['licence'].classid == "RESTRICTED") {
this.datasetInfo.publishedIn.get(key)['bestAccessMode'] = mydata['licence'].classid;
}
break;
case "RESTRICTED":
if(mydata['licence'].classid == "OPEN" ||
mydata['licence'].classid == "EMBARGO") {
this.datasetInfo.publishedIn.get(key)['bestAccessMode'] = mydata['licence'].classid;
}
break;
case "EMBARGO":
if(mydata['licence'].classid == "OPEN") {
this.datasetInfo.publishedIn.get(key)['bestAccessMode'] = mydata['licence'].classid;
}
break;
}
} else {
this.datasetInfo.publishedIn.get(key)['accessMode'][counter2] = "";
//this.datasetInfo.publishedIn.get(key)['accessMode'][counter2] = "";
this.datasetInfo.publishedIn.get(key)['accessMode'].push("");
}
counter1++;
}
@ -447,10 +500,10 @@ export class DatasetService {
&& this.datasetInfo.identifiers.has("doi")) {
if( this.datasetInfo.downloadFrom == null) {
this.datasetInfo.downloadFrom = new Map<string,{"url": string[], "accessMode": string[]}>();
this.datasetInfo.downloadFrom = new Map<string,{"url": string[], "accessMode": string[], "bestAccessMode": string}>();
}
this.datasetInfo.downloadFrom.set(this.datasetInfo.publisher, {"url": null, "accessMode": null});
this.datasetInfo.downloadFrom.set(this.datasetInfo.publisher, {"url": null, "accessMode": null, "bestAccessMode": null});
let url = OpenaireProperties.getDoiURL()+this.datasetInfo.identifiers.get("doi");
this.datasetInfo.downloadFrom.get(this.datasetInfo.publisher)['url'] = new Array<string>();

View File

@ -32,13 +32,13 @@
<ul class="uk-tab" data-uk-switcher="{connect:'#tab-content'}">
<li class="uk-active">
<a href="#projectsTab">
<a>
Projects
<span class="uk-badge uk-badge-notification">{{(searchingProjectsTabComponent)?searchingProjectsTabComponent.fetchProjects.totalResults:0}}</span>
</a>
</li>
<li (click)="searchDataprovidersInit()">
<a href="#dataProvidersTab">
<a>
Data Providers
<!--span *ngIf="organizationInfo.dataProviders == undefined" class="badge">0</span>
<span *ngIf="organizationInfo.dataProviders != undefined" class="badge">
@ -57,7 +57,7 @@
</ul>
<ul id="tab-content" class="uk-switcher uk-margin">
<li id="projectsTab">
<li class="uk-animation-fade">
<searchingProjectsTab [organizationId]=organizationId ></searchingProjectsTab>
<!--div *ngIf="organizationInfo.projects == undefined" class = "uk-alert">
There are no projects
@ -115,7 +115,7 @@
</div-->
</li>
<li id="dataProvidersTab">
<li class="uk-animation-fade">
<!--showDataProviders [dataProviders]="organizationInfo.dataProviders"></showDataProviders-->
<div *ngIf="fetchDataproviders.searchUtils.totalResults == 0" class = "uk-alert">
There are no dataproviders
@ -127,7 +127,15 @@
<a href="mailto:feedback@openaire.eu">Let us know how we are doing!</a>
</p>
<div class = "uk-text-right" *ngIf = "fetchDataproviders.searchUtils.totalResults > 10" ><a [href] = "linkToSearchDataproviders" >View all {{fetchDataproviders.searchUtils.totalResults}} results</a></div>
<div class = "uk-text-right" *ngIf = "fetchDataproviders.searchUtils.totalResults > 10">
<!--a [href] = "linkToSearchDataproviders">
View all {{fetchDataproviders.searchUtils.totalResults}} results
</a-->
<a [queryParams]="routerHelper.createQueryParams(['organizationId', 'or'], [organizationId, 'and'])"
routerLinkActive="router-link-active" [routerLink]="linkToSearchDataproviders">
View all {{fetchDataproviders.searchUtils.totalResults}} results
</a>
</div>
<search-result [(results)]="fetchDataproviders.results"
[(status)]= "fetchDataproviders.status"
type="dataprovider" urlParam="datasourceId">
@ -169,7 +177,7 @@
</li>
<li *ngFor="let funder of searchingProjectsTabComponent.fetchProjects.funders">
<span class="clickable" (click)="downloadPublicationsFile(funder.name,funder.id, funder.number)">
<span class="clickable" (click)="confirmOpen(funder.name,funder.id, funder.number)">
<span aria-hidden="true" class="glyphicon glyphicon-download"></span>
<span class="uk-icon-download"> Publications report(CSV) for {{funder.name}}</span>
</span>
@ -178,4 +186,6 @@
</ul>
</div>
</div>
<modal-loading></modal-loading>
<modal-alert (alertOutput)="confirmClose($event)"></modal-alert>
</div>

View File

@ -1,17 +1,22 @@
import {Component, ViewChild} from '@angular/core';
import {Observable} from 'rxjs/Observable';
import {ActivatedRoute} from '@angular/router';
import {OrganizationService} from '../../services/organization.service';
import {OrganizationInfo} from '../../utils/entities/organizationInfo';
import {ReportsService} from '../../services/reports.service';
import {FetchDataproviders} from '../../utils/fetchEntitiesClasses/fetchDataproviders.class';
import {SearchPublicationsService} from '../../services/searchPublications.service';
import {SearchDataprovidersService} from '../../services/searchDataproviders.service';
import {SearchProjectsService} from '../../services/searchProjects.service';
import {OpenaireProperties} from '../../utils/properties/openaireProperties';
import {SearchingProjectsTabComponent} from '../searchingProjectsInTab.component';
import {RouterHelper} from '../../utils/routerHelper.class';
import {ModalLoading} from '../../utils/modal/loading.component';
import {AlertModal} from '../../utils/modal/alert';
@Component({
selector: 'organization',
templateUrl: 'organization.component.html',
@ -38,10 +43,19 @@ export class OrganizationComponent {
subDataprovidersCount: any;
private fetchDataproviders : FetchDataproviders;
private linkToSearchDataproviders = "";
private linkToSearchDataproviders:string = "";
@ViewChild (SearchingProjectsTabComponent) searchingProjectsTabComponent : SearchingProjectsTabComponent ;
private projectFunders:string[] = [];
public routerHelper:RouterHelper = new RouterHelper();
@ViewChild (ModalLoading) loading : ModalLoading ;
@ViewChild(AlertModal) alertApplyAll;
private funder: string;
private funderId: string;
private count: number;
constructor (private _organizationService: OrganizationService,
private route: ActivatedRoute,
private _searchDataprovidersService: SearchDataprovidersService,
@ -165,7 +179,7 @@ export class OrganizationComponent {
private searchDataproviders() {
this.fetchDataproviders.getResultsForEntity("organization", this.organizationId, 1, 10);
this.linkToSearchDataproviders = OpenaireProperties.getLinkToAdvancedSearchDataProviders() + "?organization=" + this.organizationId + "&or=and";;
this.linkToSearchDataproviders = OpenaireProperties.getLinkToAdvancedSearchDataProviders();// + "?organization=" + this.organizationId + "&or=and";;
}
private searchDataprovidersInit() {
@ -178,18 +192,30 @@ export class OrganizationComponent {
downloadfile(url:string){
console.log("Downloading file: "+ url);
this._reportsService.downloadCSVFile(url)
.subscribe(data => window.open(window.URL.createObjectURL(data)),
error => console.log("Error downloading the file."),
() => console.log('Completed file download.'));
this.openLoading();
this.setMessageLoading("Downloading CSV file");
this._reportsService.downloadCSVFile(url).subscribe(
data => {
this.closeLoading();
window.open(window.URL.createObjectURL(data));
},
error => console.log("Error downloading the file."),
() => console.log('Completed file download.'));
}
downloadPublicationsFile(funder: string, funderId:string, count:number){
console.log("Downloading publications file");
this.openLoading();
this.setMessageLoading("Downloading CSV file");
let response: string[] = [];
let totalResponse: string = "";
let projects = [];
let counter: number = count;
let title: boolean = false;
this._searchProjectsService.getProjectsForOrganizations(this.organizationId,' and (funderid exact '+ funderId + ' ) ',1,count,[]).subscribe(
data =>
{
@ -201,28 +227,52 @@ export class OrganizationComponent {
// let index: number = this.organizationInfo.projects.get(funder).indexOf(project);
let url: string;
if(index == 0) {
if(index == 0 || !title) {
url = this.downloadURLAPI+"projects/"+projects[index].id+"/publications?format=csv-special&size="+data;
} else {
url = this.downloadURLAPI+"projects/"+projects[index].id+"/publications?format=csv-special-notitle&size="+data;
}
this._reportsService.getCSVResponse(url).subscribe(
data =>
{
counter--;
response[index] = data;
if(counter == 0) {
for(let i=0; i<count; i++) {
totalResponse += response[i]+"\n";
}
window.open(window.URL.createObjectURL(new Blob([totalResponse], { type: 'text/csv' })));
if(data == 0) {
counter--;
response[index] = "";
if(counter == 0) {
for(let i=0; i<count; i++) {
if(response[i] != "") {
totalResponse += response[i];
}
},
error => console.log("Error downloading the file."),
() => console.log('Completed file download.'));
console.info("1response "+i+": "+response[i]);
}
this.closeLoading();
window.open(window.URL.createObjectURL(new Blob([totalResponse], { type: 'text/csv' })));
}
} else if(counter == 1 && !title) {
title = true;
this._reportsService.getCSVResponse(url).subscribe(
data =>
{
counter--;
response[index] = data;
if(counter == 0) {
for(let i=0; i<count; i++) {
if(response[i] != "") {
totalResponse += response[i];
}
console.info("2response "+i+": "+response[i]);
}
console.info(totalResponse);
this.closeLoading();
window.open(window.URL.createObjectURL(new Blob([totalResponse], { type: 'text/csv' })));
}
},
error => console.log("Error downloading the file."),
() => console.log('Completed file download.')
);
}
},
error => console.log("Error getting number of publications for project."));
}//);
@ -265,4 +315,37 @@ export class OrganizationComponent {
// error => console.log("Error getting number of publications for project."));
// }//);
}
public openLoading(){
if(this.loading){
this.loading.open();
}
}
public closeLoading(){
if(this.loading){
this.loading.close();
}
}
public setMessageLoading(message: string){
if(this.loading){
this.loading.message = message;
}
}
confirmOpen(funder: string, funderId:string, count:number){
this.alertApplyAll.cancelButton = true;
this.alertApplyAll.okButton = true;
this.alertApplyAll.alertTitle = "CSV FILE";
this.alertApplyAll.message = "Do you wish to download a CSV file?\nNote that this process may take a while.";
this.alertApplyAll.okButtonText = "Yes";
this.alertApplyAll.cancelButtonText = "No";
this.alertApplyAll.open();
this.funder = funder;
this.funderId = funderId;
this.count = count;
}
confirmClose(data){
this.downloadPublicationsFile(this.funder, this.funderId, this.count);
}
}

View File

@ -3,6 +3,9 @@ import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import {LoadingModalModule} from '../../utils/modal/loadingModal.module';
import {AlertModalModule} from '../../utils/modal/alertModal.module';
import { OrganizationServiceModule} from '../../services/organizationService.module';
// import { ProjectsServiceModule} from '../../services/projectsService.module';
import { OrganizationComponent } from './organization.component';
@ -20,6 +23,7 @@ import { SearchingProjectsTabModule} from '../searchingProjectsInTab.module';
@NgModule({
imports: [
CommonModule, FormsModule, RouterModule,
LoadingModalModule, AlertModalModule,
LandingModule,
OrganizationRoutingModule,
SearchResultsModule,

View File

@ -17,7 +17,7 @@
<ul class="uk-tab" data-uk-switcher="{connect:'#tab-content'}">
<li class="uk-active">
<a href="#publicationsTab">
<a>
Publications
<span class="uk-badge uk-badge-notification">
{{fetchPublications.searchUtils.totalResults}}
@ -25,7 +25,7 @@
</a>
</li>
<li (click)="searchDatasetsInit()">
<a href="#researchDataTab">
<a>
Research Data
<span class="uk-badge uk-badge-notification">
{{fetchDatasets.searchUtils.totalResults}}
@ -35,7 +35,7 @@
</ul>
<ul id="tab-content" class="uk-switcher uk-margin">
<li id="publicationsTab">
<li class="uk-animation-fade">
<div *ngIf="fetchPublications.searchUtils.totalResults == 0" class = "uk-alert">
There are no publications
@ -60,7 +60,7 @@
</div>
</li>
<li id="researchDataTab">
<li class="uk-animation-fade">
<div *ngIf="fetchDatasets.searchUtils.totalResults == 0" class = "uk-alert">
There are no research data
</div>

View File

@ -31,17 +31,18 @@
<dt *ngIf="projectInfo.organizations != undefined">Organizations: </dt>
<dd *ngIf="projectInfo.organizations != undefined">
<span *ngFor="let organization of projectInfo.organizations let i=index">
<!--a *ngIf="projectInfo.organizations.get(key) != null &&
projectInfo.organizations.get(key) != ''"
href="{{(projectInfo.organizations.get(key))}}"-->
<a *ngIf="organization.id != null && organization.id != ''"
[queryParams]="{organizationId: organization.id}" routerLinkActive="router-link-active" routerLink="/search/organization">
{{organization.name}}
</a>
<span *ngIf="organization.id == null || organization.id == ''">
{{organization.name}}
</span>
<span *ngIf="i<projectInfo.organizations.length-1">,</span>
<span>
<!--a *ngIf="projectInfo.organizations.get(key) != null &&
projectInfo.organizations.get(key) != ''"
href="{{(projectInfo.organizations.get(key))}}"-->
<a *ngIf="organization.id != null && organization.id != ''"
[queryParams]="{organizationId: organization.id}" routerLinkActive="router-link-active" routerLink="/search/organization">
{{organization.name}}</a></span><span
*ngIf="organization.id == null || organization.id == ''">
{{organization.name}}</span><span
*ngIf="i<projectInfo.organizations.length-1">,</span>
</span>
</dd>
<dt *ngIf="projectInfo.urlInfo != undefined && projectInfo.urlInfo != ''">More information:</dt>
@ -57,7 +58,7 @@
<ul class="uk-tab" data-uk-switcher="{connect:'#tab-content'}">
<li class="uk-active">
<a href="#publicationsTab">
<a>
Publications
<span class="uk-badge uk-badge-notification">
{{fetchPublications.searchUtils.totalResults}}
@ -65,7 +66,7 @@
</a>
</li>
<li (click)="searchDatasetsInit()">
<a href="#researchDataTab">
<a>
Research Data
<span class="uk-badge uk-badge-notification">
{{fetchDatasets.searchUtils.totalResults}}
@ -73,13 +74,13 @@
</a>
</li>
<li (click)="statsClicked=true;">
<a href="#statisticsTab">
<a>
Statistics
<i class="uk-icon-pie-chart"></i>
</a>
</li>
<li (click)="metricsClicked=true;">
<a href="#metricsTab">
<a>
Metrics
<i class="uk-icon-line-chart"></i>
</a>
@ -87,8 +88,7 @@
</ul>
<ul id="tab-content" class="uk-switcher uk-margin">
<li id="publicationsTab">
<li class="uk-animation-fade">
<div *ngIf="fetchPublications.searchUtils.totalResults == 0" class = "uk-alert" >
There are no publications
</div>
@ -99,7 +99,15 @@
<a href="mailto:feedback@openaire.eu">Let us know how we are doing!</a>
</p>
<div class = "uk-text-right" *ngIf = "fetchPublications.searchUtils.totalResults > 10" ><a [href] = "linkToSearchPublications" >View all {{fetchPublications.searchUtils.totalResults}} results</a></div>
<div class = "uk-text-right" *ngIf = "fetchPublications.searchUtils.totalResults > 10" >
<!--a [href] = "linkToSearchPublications" >
View all {{fetchPublications.searchUtils.totalResults}} results
</a-->
<a [queryParams]="routerHelper.createQueryParams(['projectId', 'pr'], [projectId, 'and'])"
routerLinkActive="router-link-active" [routerLink]="linkToSearchPublications">
View all {{fetchPublications.searchUtils.totalResults}} results
</a>
</div>
<search-result [(results)]="fetchPublications.results"
[(status)]= "fetchPublications.searchUtils.status"
type="publication" urlParam="articleId">
@ -107,7 +115,7 @@
</div>
</li>
<li id="researchDataTab">
<li class="uk-animation-fade">
<div *ngIf="fetchDatasets.searchUtils.totalResults == 0" class = "uk-alert">
There are no research data
</div>
@ -118,14 +126,19 @@
<a href="mailto:feedback@openaire.eu">Let us know how we are doing!</a>
</p>
<div class = "uk-text-right" *ngIf = "fetchDatasets.searchUtils.totalResults > 10" ><a [href] = "linkToSearchDatasets" >View all {{fetchDatasets.searchUtils.totalResults}} results</a></div>
<div class = "uk-text-right" *ngIf = "fetchDatasets.searchUtils.totalResults > 10">
<a [queryParams]="routerHelper.createQueryParams(['projectId', 'pr'], [projectId, 'and'])"
routerLinkActive="router-link-active" [routerLink]="linkToSearchDatasets">
View all {{fetchDatasets.searchUtils.totalResults}} results
</a>
</div>
<search-result [(results)]="fetchDatasets.results"
[(status)]= "fetchDatasets.searchUtils.status"
type="dataset" urlParam="datasetId">
</search-result>
</div>
</li>
<li id="statisticsTab">
<li class="uk-animation-fade">
<div *ngIf="fetchPublications.searchUtils.totalResults == 0 && fetchDatasets.searchUtils.totalResults == 0" class = "uk-alert">
There are no statistics
</div>
@ -146,7 +159,7 @@
</div>
</div>
</li>
<li id="metricsTab">
<li class="uk-animation-fade">
<metrics *ngIf="metricsClicked"
[id]="projectId" [type]="'projects'" [name]="projectName" (metricsResults)="metricsResults($event)">
</metrics>
@ -173,7 +186,8 @@
</dl>
</li>
<li *ngIf="fetchPublications.searchUtils.totalResults > 10">
<a href="{{linkToSearchPublications}}">
<a [queryParams]="routerHelper.createQueryParams(['projectId', 'pr'], [projectId, 'and'])"
routerLinkActive="router-link-active" [routerLink]="linkToSearchPublications">
View all Project Publications
</a>
</li>
@ -232,4 +246,5 @@
</ul>
</div>
</div>
<modal-loading></modal-loading>
</div>

View File

@ -5,15 +5,16 @@ import {ProjectService} from './project.service';
import {ProjectInfo} from '../../utils/entities/projectInfo';
import {RouterHelper} from '../../utils/routerHelper.class';
import { FetchPublications } from '../../utils/fetchEntitiesClasses/fetchPublications.class';
import { SearchPublicationsService } from '../../services/searchPublications.service';
import { FetchDatasets } from '../../utils/fetchEntitiesClasses/fetchDatasets.class';
import { SearchDatasetsService } from '../../services/searchDatasets.service';
import {ModalLoading} from '../../utils/modal/loading.component';
import {ReportsService} from '../../services/reports.service';
import {OpenaireProperties} from '../../utils/properties/openaireProperties';
@Component({
selector: 'project',
templateUrl: 'project.component.html',
@ -55,6 +56,8 @@ export class ProjectComponent{
public linkToSearchDatasets = "";
public routerHelper:RouterHelper = new RouterHelper();
@ViewChild (ModalLoading) loading : ModalLoading ;
constructor (private _projectService: ProjectService,
private route: ActivatedRoute,
private _searchPublicationsService: SearchPublicationsService,
@ -67,10 +70,11 @@ export class ProjectComponent{
}
ngOnInit() {
this.metricsClicked = false;
this.statsClicked = false;
this.sub = this.route.queryParams.subscribe(params => {
this.metricsClicked = false;
this.statsClicked = false;
this.projectId = params['projectId'];
console.info("Id is :"+this.projectId);
if(this.projectId){
@ -111,17 +115,11 @@ export class ProjectComponent{
}
this.downloadURLAPI = OpenaireProperties.getCsvAPIURL();
this.createClipboard();
this.csvParams = "format=csv-special&page=0&type=publications&query=(((oaftype exact result) and (resulttypeid exact publication)) and (relprojectid exact "+this.projectId+"))&size=";
});
if(typeof window !== undefined) {
let publ_clipboard, datasets_clipboard;
let Clipboard;
Clipboard = require('clipboard');
publ_clipboard = new Clipboard('.publ_clipboard_btn');
datasets_clipboard = new Clipboard('.datasets_clipboard_btn');
}
this.csvParams = "format=csv-special&page=0&type=publications&query=(((oaftype exact result) and (resulttypeid exact publication)) and (relprojectid exact "+this.projectId+"))&size=";
}
@ -130,14 +128,25 @@ export class ProjectComponent{
this.subDatasetsCount.unsubscribe();
}
createClipboard() {
if(typeof window !== 'undefined') {
let publ_clipboard, datasets_clipboard;
let Clipboard;
Clipboard = require('clipboard');
publ_clipboard = new Clipboard('.publ_clipboard_btn');
datasets_clipboard = new Clipboard('.datasets_clipboard_btn');
}
}
private searchPublications() {
this.fetchPublications.getResultsForEntity("project", this.projectId, 1, 10);
this.linkToSearchPublications = OpenaireProperties.getLinkToAdvancedSearchPublications() + "?project=" + this.projectId+"&pr=and";
this.linkToSearchPublications = OpenaireProperties.getLinkToAdvancedSearchPublications();// + "?project=" + this.projectId+"&pr=and";
}
private searchDatasets() {
this.fetchDatasets.getResultsForEntity("project", this.projectId, 1, 10);
this.linkToSearchDatasets = OpenaireProperties.getLinkToAdvancedSearchDatasets() + "?project=" + this.projectId+"&pr=and";
this.linkToSearchDatasets = OpenaireProperties.getLinkToAdvancedSearchDatasets();// + "?project=" + this.projectId+"&pr=and";
}
private searchDatasetsInit() {
@ -173,12 +182,19 @@ export class ProjectComponent{
);
}
downloadfile(url:string){
console.log("Downloading file: "+ url);
console.log("Downloading file: "+ url);
this._reportsService.downloadCSVFile(url)
.subscribe(data => window.open(window.URL.createObjectURL(data)),
error => console.log("Error downloading the file."),
() => console.log('Completed file download.'));
this.openLoading();
this.setMessageLoading("Downloading CSV file");
this._reportsService.downloadCSVFile(url).subscribe(
data => {
this.closeLoading();
window.open(window.URL.createObjectURL(data));
},
error => console.log("Error downloading the file."),
() => console.log('Completed file download.')
);
}
showHTML(){
@ -220,4 +236,21 @@ export class ProjectComponent{
this.totalViews = $event.totalViews;
this.totalDownloads = $event.totalDownloads;
}
public openLoading(){
if(this.loading){
this.loading.open();
}
}
public closeLoading(){
if(this.loading){
this.loading.close();
}
}
public setMessageLoading(message: string){
if(this.loading){
this.loading.message = message;
}
}
}

View File

@ -6,6 +6,7 @@ import { RouterModule } from '@angular/router';
import { ProjectServiceModule} from './projectService.module';
// import {HtmlProgressReportService} from './htmlProgressReport.service';
import{LoadingModalModule} from '../../utils/modal/loadingModal.module';
import { ProjectComponent } from './project.component';
import { ProjectRoutingModule } from './project-routing.module';
@ -20,7 +21,7 @@ import { LandingModule } from '../landing.module';
@NgModule({
imports: [
CommonModule, FormsModule, RouterModule, LandingModule,
ProjectRoutingModule,
ProjectRoutingModule, LoadingModalModule,
SearchResultsModule, IFrameModule, MetricsModule, ReportsServiceModule, PublicationsServiceModule, DatasetsServiceModule, ProjectServiceModule
],
declarations: [

View File

@ -61,8 +61,8 @@
</div-->
<ul class="uk-tab" data-uk-switcher="{connect: '#tab-content'}">
<li id="citationsTab" class="uk-active">
<a href="#citationsTab">
<li class="uk-active">
<a>
References
<span *ngIf="publicationInfo.references == undefined" class="uk-badge uk-badge-notification">0</span>
<span *ngIf="publicationInfo.references != undefined" class="uk-badge uk-badge-notification">
@ -71,7 +71,7 @@
</a>
</li>
<li>
<a href="#relatedTab">
<a>
Related Research Results
<span class="uk-badge uk-badge-notification">
{{relatedResearchResultsNum}}
@ -79,7 +79,7 @@
</a>
</li>
<li>
<a href="#similarTab">
<a>
Similar Research Results
<span *ngIf="publicationInfo.similarResearchResults == undefined" class="uk-badge uk-badge-notification">0</span>
<span *ngIf="publicationInfo.similarResearchResults != undefined" class="uk-badge uk-badge-notification">
@ -88,19 +88,19 @@
</a>
</li>
<li *ngIf="publicationInfo.bioentities != undefined">
<a href="#bioentitiesTab">
<a>
Bioentities
<span class="uk-badge uk-badge-notification">{{bioentitiesNum}}</span>
</a>
</li>
<li *ngIf="publicationInfo.software != undefined">
<a href="#softwareTab">
<a>
Software
<span class="uk-badge uk-badge-notification">{{publicationInfo.software.length}}</span>
</a>
</li>
<li>
<a href="#metricsTab" (click)="metricsClicked=true;">
<a (click)="metricsClicked=true;">
Metrics
<i class="uk-icon-line-chart"></i>
</a>
@ -108,8 +108,7 @@
</ul>
<ul id="tab-content" class="uk-switcher uk-margin">
<li id="citationsTab-content">
<li class="uk-animation-fade">
<div *ngIf="publicationInfo.references == undefined" class = "uk-alert" >
There are no references
</div>
@ -151,7 +150,7 @@
</div>
</li>
<li id="relatedTab">
<li class="uk-animation-fade">
<div *ngIf="publicationInfo.relatedResearchResults == undefined" class = "uk-alert">
There are no related research results
</div>
@ -170,7 +169,7 @@
</li>
<li id="similarTab">
<li class="uk-animation-fade">
<div *ngIf="publicationInfo.similarResearchResults == undefined" class = "uk-alert">
There are no similar research results
</div>
@ -183,7 +182,7 @@
<tabTable from="publication" [info]="publicationInfo.similarResearchResults"></tabTable>
</div>
</li>
<li *ngIf="publicationInfo.bioentities != undefined" id="bioentitiesTab">
<li *ngIf="publicationInfo.bioentities != undefined" class="uk-animation-fade">
<p>
The results below are discovered through our pilot algorithms.
<a href="mailto:feedback@openaire.eu">Let us know how we are doing!</a>
@ -212,7 +211,7 @@
</tbody>
</table>
</li>
<li *ngIf="publicationInfo.software != undefined" id="softwareTab">
<li *ngIf="publicationInfo.software != undefined" class="uk-animation-fade">
<p>
The results below are discovered through our pilot algorithms.
<a href="mailto:feedback@openaire.eu">Let us know how we are doing!</a>
@ -236,7 +235,7 @@
</tbody>
</table>
</li>
<li id="metricsTab">
<li class="uk-animation-fade">
<metrics *ngIf="metricsClicked"
[id]="articleId" [type]="'results'" (metricsResults)="metricsResults($event)">
</metrics>
@ -261,7 +260,9 @@
<addThis></addThis>
</dd>
</dl>
<altmetrics *ngIf="publicationInfo.identifiers != undefined && publicationInfo.identifiers.get('doi') != undefined" id="{{publicationInfo.identifiers.get('doi')[0]}}" type="doi"> </altmetrics>
<altmetrics *ngIf="publicationInfo.identifiers != undefined && publicationInfo.identifiers.get('doi') != undefined"
id="{{publicationInfo.identifiers.get('doi')[0]}}" type="doi">
</altmetrics>
</li>
@ -270,6 +271,7 @@
<dt class="title">Download from</dt>
<dd class="line"
*ngFor="let key of publicationInfo.downloadFrom.keys() let i=index"
data-uk-tooltip="{pos:'right', cls:'tooltip uk-text-center uk-contrast'}"
[title]="publicationInfo.downloadFrom.get(key)['accessMode']">
<div *ngIf="i<5 || showAllDownloadFrom"
class="{{publicationInfo.downloadFrom.get(key)['bestAccessMode']}}">
@ -277,15 +279,13 @@
<div *ngIf="publicationInfo.downloadFrom.get(key)['url'].length > 1">
{{key}}
<span *ngFor="let url of publicationInfo.downloadFrom.get(key)['url']; let i=index;">
<a href="{{url}}" target="_blank"
[title]="publicationInfo.downloadFrom.get(key)['accessMode']">
<a href="{{url}}" target="_blank">
[{{i+1}}]
</a>
</span>
</div>
<a *ngIf="publicationInfo.downloadFrom.get(key)['url'].length == 1"
href="{{publicationInfo.downloadFrom.get(key)['url']}}"
[title]="publicationInfo.downloadFrom.get(key)['accessMode']"
target="_blank">
{{key}}
</a>
@ -308,21 +308,21 @@
<li *ngIf="publicationInfo.publishedIn != undefined && publicationInfo.publishedIn.size > 0">
<dl class="uk-description-list-line">
<dt class="title">Published in</dt>
<dd class="line" *ngFor="let key of publicationInfo.publishedIn.keys() let i=index">
<dd class="line" *ngFor="let key of publicationInfo.publishedIn.keys() let i=index"
data-uk-tooltip="{pos:'right', cls:'tooltip uk-text-center uk-contrast'}"
[title]="publicationInfo.publishedIn.get(key)['accessMode']">
<div *ngIf="i<5 || showAllPublishedIn" class="{{publicationInfo.publishedIn.get(key)['bestAccessMode']}}">
<span class="uk-icon-external-link">
<div *ngIf="publicationInfo.publishedIn.get(key)['url'].length > 1">
{{key}}
<span *ngFor="let url of publicationInfo.publishedIn.get(key)['url']; let i=index">
<a href="{{url}}" target="_blank"
[title]="publicationInfo.publishedIn.get(key)['accessMode']">
<a href="{{url}}" target="_blank">
[{{i+1}}]
</a>
</span>
</div>
<a *ngIf="publicationInfo.publishedIn.get(key)['url'].length == 1"
href="{{publicationInfo.publishedIn.get(key)['url']}}"
[title]="publicationInfo.publishedIn.get(key)['accessMode']"
target="_blank">
{{key}}
</a>
@ -343,16 +343,26 @@
</dl>
</li>
<li *ngIf="publicationInfo.fundedByProjects != undefined">
<dl class="uk-description-list-line" >
<!--li *ngIf="publicationInfo.fundedByProjects != undefined && publicationInfo.fundedByProjects.length > 0"-->
<li>
<dl class="uk-description-list-line">
<dt class="title">Funded By</dt>
<dd
data-uk-tooltip="{pos:'right'}" title="{{item['title']}}
| Project Code: {{item['code']}}
| Funder: {{item['funderName']}} ({{item['funderShortname']}})
| Funding: {{item['funding']}}"
class="line" *ngFor="let item of publicationInfo.fundedByProjects let i=index">
<div *ngIf="i<5 || showAllFundedBy">
<dd class="line"
*ngFor="let item of publicationInfo.fundedByProjects let i=index">
<div *ngIf="i<5 || showAllFundedBy">
<span data-uk-tooltip="{pos:'right', cls:'tooltip uk-text-center uk-contrast'}"
title="
<div>
<h4>{{item['title']}}</h4>
Project Code: {{item['code']}}
<div>
Funder: {{item['funderName']}} ({{item['funderShortname']}})
</div>
<div>
Funding: {{item['funding']}}
</div>
</div>
">
<!--a *ngIf="!item['inline']" href="{{item['url']}}"-->
<a *ngIf="!item['inline']"
[queryParams]="{projectId: item.id}" routerLinkActive="router-link-active" routerLink="/search/project">
@ -368,24 +378,45 @@
| {{ item['acronym']?item['acronym']:item['title']}}
</mark>
</a>
</div>
<!--i class="uk-icon-info-circle"
data-uk-modal="{target:'#my-id'}"-->
<i class="uk-icon-info-circle">
</i>
<!--div id="my-id" class="uk-modal">
<div class="uk-modal-dialog uk-modal-dialog-lightbox uk-text-center">
<a href="" class="uk-modal-close uk-close uk-close-alt"></a>
<div>
<h4>{{item['title']}}</h4>
Project Code: {{item['code']}}
<div>
Funder: {{item['funderName']}} ({{item['funderShortname']}})
</div>
<div>
Funding: {{item['funding']}}
</div>
</div>
</div>
</div-->
</span>
</div>
</dd>
<dd *ngIf="showAllFundedBy" class="uk-text-right">
<a class="uk-text-muted" (click)="showAllFundedBy = !showAllFundedBy;">
View less
</a>
</dd>
<dd *ngIf="!showAllFundedBy && publicationInfo.fundedByProjects.length > 5">...</dd>
<dd *ngIf="!showAllFundedBy && publicationInfo.fundedByProjects.length > 5" class="uk-text-right">
<dd *ngIf="!showAllFundedBy && publicationInfo.fundedByProjects != undefined && publicationInfo.fundedByProjects.length > 5">...</dd>
<dd *ngIf="!showAllFundedBy && publicationInfo.fundedByProjects != undefined && publicationInfo.fundedByProjects.length > 5" class="uk-text-right">
<a class="uk-text-muted" (click)="showAllFundedBy = !showAllFundedBy;">
View more
</a>
</dd>
<!--dd><a [queryParams]="routerHelper.createQueryParams(['id','type','linkTo'],[articleId,'publication','project'])" routerLinkActive="router-link-active" routerLink="/linking" > <i class="uk-icon-link"></i> Add links to projects</a></dd-->
</dl>
</li>
<li >
<li>
<dl class="uk-description-list-line" >
<dt class="title">Related to</dt>
<dd class="line" *ngFor="let item of publicationInfo.contexts">
@ -405,7 +436,7 @@
</li>
<li><citeThis [result]="publicationInfo" [id]="articleId"></citeThis></li>
<li *ngIf="publicationInfo.collectedFrom != undefined">
<li *ngIf="publicationInfo.collectedFrom != undefined && publicationInfo.collectedFrom.length > 0">
<dl class="uk-description-list-line">
<dt>Collected from</dt>
<dd *ngFor="let item of publicationInfo.collectedFrom let i=index">

View File

@ -5,6 +5,7 @@ import { SearchProjectsService } from '../services/searchProjects.service';
import {OpenaireProperties} from '../utils/properties/openaireProperties';
import {StringUtils} from '../utils/string-utils.class';
import {RouterHelper} from '../utils/routerHelper.class';
@Component({
selector: 'searchingProjectsTab',
@ -18,7 +19,15 @@ import {StringUtils} from '../utils/string-utils.class';
The results below are discovered through our pilot algorithms.
<a href="mailto:feedback@openaire.eu">Let us know how we are doing!</a>
</p>
<div class = "uk-text-right" *ngIf = "fetchProjects.totalResults > 10" ><a [href] = "linkToSearchProjects" >View all {{fetchProjects.totalResults}} results</a></div>
<div class = "uk-text-right" *ngIf = "fetchProjects.totalResults > 10">
<!--a [href] = "linkToSearchProjects">
View all {{fetchProjects.totalResults}} results
</a-->
<a [queryParams]="routerHelper.createQueryParams(['organizationId', 'or'], [organizationId, 'and'])"
routerLinkActive="router-link-active" [routerLink]="linkToSearchProjects">
View all {{fetchProjects.totalResults}} results
</a>
</div>
<div class= "searchPaging uk-panel uk-margin-top">
<div class="uk-float-right" *ngIf="fetchProjects.results && fetchProjects.searchUtils.totalResults > fetchProjects.searchUtils.size">
<paging-no-load [currentPage]="page" [totalResults]="fetchProjects.searchUtils.totalResults" [navigateTo]="navigateTo" [term]="keyword" [size]="size" (pageChange)="pageChange($event)"> </paging-no-load>
@ -50,6 +59,9 @@ export class SearchingProjectsTabComponent {
public size :number = 10;
public linkToSearchProjects;
private filterQuery:string = "";
public routerHelper:RouterHelper = new RouterHelper();
constructor (private _searchProjectsService: SearchProjectsService) {
this.fetchProjects = new FetchProjects(this._searchProjectsService);
@ -57,7 +69,7 @@ export class SearchingProjectsTabComponent {
ngOnInit() {
this.linkToSearchProjects = OpenaireProperties.getLinkToAdvancedSearchProjects()+"?organization="+this.organizationId+"or=and";;
this.linkToSearchProjects = OpenaireProperties.getLinkToAdvancedSearchProjects();//+"?organization="+this.organizationId+"or=and";;
this.search(true,"");
}

View File

@ -3,6 +3,7 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { ProjectsServiceModule} from '../services/projectsService.module';
import {SearchResultsModule } from '../searchPages/searchUtils/searchResults.module';
@ -13,8 +14,8 @@ import {PagingModule } from '../utils/paging.module';
@NgModule({
imports: [
CommonModule, FormsModule, ProjectsServiceModule, SearchResultsModule, PagingModule
RouterModule, CommonModule, FormsModule,
ProjectsServiceModule, SearchResultsModule, PagingModule
],
declarations: [
SearchingProjectsTabComponent

View File

@ -4,14 +4,33 @@ import {Component, Input} from '@angular/core';
@Component({
selector: 'showTitle',
template: `
<h2 *ngIf="title != undefined" [class] = "title['accessMode']" data-uk-tooltip [title]="title['accessMode']" >
<span *ngIf="title['url'] != undefined && title['url'] != null && title['url'] != ''" class="uk-icon-external-link">
<a href="{{title['url']}}" target="_blank"
<h2 *ngIf="title != undefined">
<span *ngIf="title['url'] != undefined && title['url'] != null && title['url'] != ''"
class="uk-icon-external-link {{title['accessMode']}}"
data-uk-tooltip="{cls:'tooltip uk-text-center uk-contrast'}"
[title]="title['accessMode']">
<a *ngIf="title['name'] != undefined && title['name'] != ''"
href="{{title['url']}}" target="_blank"
[innerHTML]="title['name']">
</a>
<a *ngIf="title['name'] == undefined || title['name'] == ''"
href="{{title['url']}}" target="_blank">
[no title available]
</a>
</span>
<span *ngIf="title['url'] == undefined || title['url'] == null || title['url'] == ''"
[innerHTML]="title['name']">
<span *ngIf="(title['name'] != undefined && title['name'] != '') &&
(title['url'] == undefined || title['url'] == null || title['url'] == '')"
[class]="title['accessMode']"
data-uk-tooltip="{cls:'tooltip uk-text-center uk-contrast'}"
[title]="title['accessMode']"
[innerHTML]="title['name']">
</span>
<span *ngIf="(title['name'] == undefined || title['name'] == '') &&
(title['url'] == undefined || title['url'] == null || title['url'] == '')"
[class]="title['accessMode']"
data-uk-tooltip="{cls:'tooltip uk-text-center uk-contrast'}"
[title]="title['accessMode']">
[no title available]
</span>
</h2>
`

View File

@ -1,6 +1,7 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import{MainSearchRoutingModule} from './mainSearch-routing.module';
import{SearchComponent} from './search.component';
@ -18,7 +19,7 @@ import {SearchFormModule} from '../searchUtils/searchForm.module';
@NgModule({
imports: [
CommonModule, FormsModule,
CommonModule, FormsModule, RouterModule,
DataProvidersServiceModule, DatasetsServiceModule, ProjectsServiceModule,
PublicationsServiceModule, OrganizationsServiceModule, PeopleServiceModule,
BrowseEntitiesModule, SearchFormModule, SearchResultsModule, MainSearchRoutingModule

View File

@ -3,7 +3,6 @@ import {Observable} from 'rxjs/Observable';
import {ActivatedRoute, Router} from '@angular/router';
import {Location} from '@angular/common';
import { FetchPublications } from '../../utils/fetchEntitiesClasses/fetchPublications.class';
import { FetchDataproviders } from '../../utils/fetchEntitiesClasses/fetchDataproviders.class';
import { FetchProjects } from '../../utils/fetchEntitiesClasses/fetchProjects.class';
@ -20,7 +19,8 @@ import {SearchOrganizationsService} from '../../services/searchOrganizations.ser
import {OpenaireProperties} from '../../utils/properties/openaireProperties';
import {SearchFields} from '../../utils/properties/searchFields';
import { ErrorCodes} from '../../utils/properties/openaireProperties';
import {ErrorCodes} from '../../utils/properties/openaireProperties';
import {RouterHelper} from '../../utils/routerHelper.class';
@Component({
changeDetection: ChangeDetectionStrategy.Default,
@ -89,7 +89,13 @@ import { ErrorCodes} from '../../utils/properties/openaireProperties';
<ul id="searchtabs" class="uk-switcher uk-margin-left uk-width-large-3-4 uk-width-small-1-1">
<li id="pubsTab" class="uk-active">
<div *ngIf = "keyword.length > 0" class ="uk-animation-fade">
<div class = "uk-text-right" *ngIf = "fetchPublications.searchUtils.totalResults> 10" ><a [href] = "linkToSearchPublications" >View all {{fetchPublications.searchUtils.totalResults}} results <i class="uk-icon-angle-double-right"></i></a></div>
<div class = "uk-text-right" *ngIf = "fetchPublications.searchUtils.totalResults> 10">
<!--a [href] = "linkToSearchPublications"-->
<a [queryParams]="routerHelper.createQueryParam('keyword', keyword)"
routerLinkActive="router-link-active" [routerLink]="linkToSearchPublications">
View all {{fetchPublications.searchUtils.totalResults}} results <i class="uk-icon-angle-double-right"></i>
</a>
</div>
<search-result [(results)]="fetchPublications.results"
[(status)]= "fetchPublications.searchUtils.status" showLoading = true
type="publication" urlParam="articleId">
@ -101,7 +107,13 @@ import { ErrorCodes} from '../../utils/properties/openaireProperties';
</li>
<li id="dataTab">
<div *ngIf = "keyword.length > 0" class ="uk-animation-fade">
<div class = "uk-text-right" *ngIf = "fetchDatasets.searchUtils.totalResults> 10" ><a [href] = "linkToSearchDatasets" >View all {{fetchDatasets.searchUtils.totalResults}} results <i class="uk-icon-angle-double-right"></i></a></div>
<div class = "uk-text-right" *ngIf = "fetchDatasets.searchUtils.totalResults> 10">
<!--a [href] = "linkToSearchDatasets"-->
<a [queryParams]="routerHelper.createQueryParam('keyword', keyword)"
routerLinkActive="router-link-active" [routerLink]="linkToSearchDatasets">
View all {{fetchDatasets.searchUtils.totalResults}} results <i class="uk-icon-angle-double-right"></i>
</a>
</div>
<search-result [(results)]="fetchDatasets.results"
[(status)]= "fetchDatasets.searchUtils.status" showLoading = true
type="dataset" urlParam="datasetId">
@ -113,7 +125,13 @@ import { ErrorCodes} from '../../utils/properties/openaireProperties';
</li>
<li id="projectsTab" >
<div *ngIf = "keyword.length > 0" class ="uk-animation-fade">
<div class = "uk-text-right" *ngIf = "fetchProjects.searchUtils.totalResults> 10" ><a [href] = "linkToSearchProjects" >View all {{fetchProjects.searchUtils.totalResults}} results <i class="uk-icon-angle-double-right"></i></a></div>
<div class = "uk-text-right" *ngIf = "fetchProjects.searchUtils.totalResults> 10">
<!--a [href] = "linkToSearchProjects"-->
<a [queryParams]="routerHelper.createQueryParam('keyword', keyword)"
routerLinkActive="router-link-active" [routerLink]="linkToSearchProjects">
View all {{fetchProjects.searchUtils.totalResults}} results <i class="uk-icon-angle-double-right"></i>
</a>
</div>
<search-result [(results)]="fetchProjects.results"
[(status)]= "fetchProjects.searchUtils.status" showLoading = true
type="project" urlParam="projectId">
@ -125,7 +143,13 @@ import { ErrorCodes} from '../../utils/properties/openaireProperties';
</li>
<li id="dataProviderTab">
<div *ngIf = "keyword.length > 0" class ="uk-animation-fade">
<div class = "uk-text-right" *ngIf = "fetchDataproviders.searchUtils.totalResults> 10" ><a [href] = "linkToSearchDataproviders" >View all {{fetchDataproviders.searchUtils.totalResults}} results <i class="uk-icon-angle-double-right"></i></a></div>
<div class = "uk-text-right" *ngIf = "fetchDataproviders.searchUtils.totalResults> 10">
<!--a [href] = "linkToSearchDataproviders"-->
<a [queryParams]="routerHelper.createQueryParam('keyword', keyword)"
routerLinkActive="router-link-active" [routerLink]="linkToSearchDataproviders">
View all {{fetchDataproviders.searchUtils.totalResults}} results <i class="uk-icon-angle-double-right"></i>
</a>
</div>
<search-result [(results)]="fetchDataproviders.results"
[(status)]= "fetchDataproviders.searchUtils.status" showLoading = true
type="dataprovider" urlParam="datasourceId">
@ -137,7 +161,13 @@ import { ErrorCodes} from '../../utils/properties/openaireProperties';
</li>
<li id="organizationsTab" >
<div *ngIf = "keyword.length > 0" class ="uk-animation-fade">
<div class = "uk-text-right" *ngIf = "fetchOrganizations.searchUtils.totalResults> 10" ><a [href] = "linkToSearchOrganizations" >View all {{fetchOrganizations.searchUtils.totalResults}} results <i class="uk-icon-angle-double-right"></i></a></div>
<div class = "uk-text-right" *ngIf = "fetchOrganizations.searchUtils.totalResults> 10">
<!--a [href] = "linkToSearchOrganizations"-->
<a [queryParams]="routerHelper.createQueryParam('keyword', keyword)"
routerLinkActive="router-link-active" [routerLink]="linkToSearchOrganizations">
View all {{fetchOrganizations.searchUtils.totalResults}} results <i class="uk-icon-angle-double-right"></i>
</a>
</div>
<search-result [(results)]="fetchOrganizations.results"
[(status)]= "fetchOrganizations.searchUtils.status" showLoading = true
type="organization" urlParam="organizationId">
@ -149,7 +179,13 @@ import { ErrorCodes} from '../../utils/properties/openaireProperties';
</li>
<li id="peopleTab">
<div *ngIf = "keyword.length > 0" class ="uk-animation-fade">
<div class = "uk-text-right" *ngIf = "fetchPeople.searchUtils.totalResults> 10" ><a [href] = "linkToSearchPeople" >View all {{fetchPeople.searchUtils.totalResults}} results <i class="uk-icon-angle-double-right"></i></a></div>
<div class = "uk-text-right" *ngIf = "fetchPeople.searchUtils.totalResults> 10">
<!--a [href] = "linkToSearchPeople"-->
<a [queryParams]="routerHelper.createQueryParam('keyword', keyword)"
routerLinkActive="router-link-active" [routerLink]="linkToSearchPeople">
View all {{fetchPeople.searchUtils.totalResults}} results <i class="uk-icon-angle-double-right"></i>
</a>
</div>
<search-result [(results)]="fetchPeople.results"
[(status)]= "fetchPeople.searchUtils.status" showLoading = true
type="person" urlParam="personId">
@ -201,8 +237,10 @@ export class SearchComponent {
public fetchDatasets: FetchDatasets;
public fetchOrganizations: FetchOrganizations;
public fetchPeople: FetchPeople;
public searchFields:SearchFields = new SearchFields();
public errorCodes:ErrorCodes = new ErrorCodes();
public routerHelper:RouterHelper = new RouterHelper();
public subPub;public subData;public subProjects;public subOrg;public subPeople; public subDataPr;
constructor ( private route: ActivatedRoute,
@ -260,7 +298,7 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
if(this.reloadPublications) {
this.reloadPublications = false;
this.fetchPublications.getResultsByKeyword(this.keyword, 1, 10);
this.linkToSearchPublications = OpenaireProperties.getLinkToSearchPublications() + "?keyword=" + this.keyword;
this.linkToSearchPublications = OpenaireProperties.getLinkToSearchPublications();// + "?keyword=" + this.keyword;
}
}
public searchDatasets() {
@ -268,7 +306,7 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
if(this.reloadDatasets) {
this.reloadDatasets = false;
this.fetchDatasets.getResultsByKeyword(this.keyword, 1, 10);
this.linkToSearchDatasets = OpenaireProperties.getLinkToSearchDatasets() + "?keyword=" + this.keyword;
this.linkToSearchDatasets = OpenaireProperties.getLinkToSearchDatasets();// + "?keyword=" + this.keyword;
}
}
public searchProjects() {
@ -276,7 +314,7 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
if(this.reloadProjects) {
this.reloadProjects = false;
this.fetchProjects.getResultsByKeyword(this.keyword, 1, 10);
this.linkToSearchProjects = OpenaireProperties.getLinkToSearchProjects() + "?keyword=" + this.keyword;
this.linkToSearchProjects = OpenaireProperties.getLinkToSearchProjects();// + "?keyword=" + this.keyword;
}
}
public searchDataProviders() {
@ -284,7 +322,7 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
if(this.reloadDataproviders) {
this.reloadDataproviders = false;
this.fetchDataproviders.getResultsByKeyword(this.keyword, 1, 10);
this.linkToSearchDataproviders = OpenaireProperties.getLinkToSearchDataProviders() + "?keyword=" + this.keyword;
this.linkToSearchDataproviders = OpenaireProperties.getLinkToSearchDataProviders();// + "?keyword=" + this.keyword;
}
}
public searchOrganizations() {
@ -292,7 +330,7 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
if(this.reloadOrganizations) {
this.reloadOrganizations = false;
this.fetchOrganizations.getResultsByKeyword(this.keyword, 1, 10);
this.linkToSearchOrganizations = OpenaireProperties.getLinkToSearchOrganizations() + "?keyword=" + this.keyword;
this.linkToSearchOrganizations = OpenaireProperties.getLinkToSearchOrganizations();// + "?keyword=" + this.keyword;
}
}
public searchPeople() {
@ -300,7 +338,7 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
if(this.reloadPeople) {
this.reloadPeople = false;
this.fetchPeople.getResultsByKeyword(this.keyword, 1, 10);
this.linkToSearchPeople = OpenaireProperties.getLinkToSearchPeople() + "?keyword=" + this.keyword;
this.linkToSearchPeople = OpenaireProperties.getLinkToSearchPeople();// + "?keyword=" + this.keyword;
}
}

View File

@ -21,8 +21,11 @@ import {RouterHelper} from '../../utils/routerHelper.class';
<p *ngIf="result['title'].name != undefined && result['title'].name != ''"
[innerHTML]="result['title'].name">
</p>
<p *ngIf="result['title'].name == undefined || result['title'].name == ''">
<!--p *ngIf="result['title'].name == undefined || result['title'].name == ''">
{{result['title'].url}}
</p-->
<p *ngIf="result['title'].name == undefined || result['title'].name == ''">
[no title available]
</p>
</a>
@ -31,7 +34,7 @@ import {RouterHelper} from '../../utils/routerHelper.class';
[innerHTML]="result['title'].name">
</p>
<p *ngIf="result['title'].name == undefined || result['title'].name == ''">
{{result['title'].url}}
[no title available]
</p>
</a>
</h4>
@ -59,15 +62,16 @@ import {RouterHelper} from '../../utils/routerHelper.class';
<span> Projects: </span>
<span *ngFor="let project of result['projects'].slice(0,15) let i=index">
<!--a *ngIf="project.url != undefined" href="{{project.url}}"-->
<a *ngIf="project.id != undefined" [queryParams]="{projectId: project.id}" routerLinkActive="router-link-active" routerLink="/search/project">
<span>
<a *ngIf="project.id != undefined" [queryParams]="{projectId: project.id}" routerLinkActive="router-link-active" routerLink="/search/project">
{{project['funderShortname']?project['funderShortname']:project['funderName']}}
| {{ project['acronym']?project['acronym']:project['title']}} ({{project.code}})
</a>
<p *ngIf="project.id == undefined">
{{project['funderShortname']?project['funderShortname']:project['funderName']}}
| {{ project['acronym']?project['acronym']:project['title']}} ({{project.code}})
</p>
<span *ngIf="i < result['projects'].length-1"> ,</span>
| {{ project['acronym']?project['acronym']:project['title']}} ({{project.code}})</a><p
*ngIf="project.id == undefined">
{{project['funderShortname']?project['funderShortname']:project['funderName']}}
| {{ project['acronym']?project['acronym']:project['title']}} ({{project.code}})</p></span><span
*ngIf="i < result['projects'].length-1">,</span>
</span>
<span *ngIf="result['projects'].length > 15">...</span>
</div>
@ -86,9 +90,9 @@ import {RouterHelper} from '../../utils/routerHelper.class';
<span *ngFor="let funder of result['funders'] let i=index">
<span *ngIf="funder.funderShortname">
{{funder.funderShortname}}
</span>
<span *ngIf="i < result['funders'].length-1"> ,</span>
{{funder.funderShortname}}</span><span
*ngIf="i < result['funders'].length-1">,</span>
</span>
</div>
<span *ngIf="result.startYear && result.endYear"> ({{result.startYear}} - {{result.endYear}})</span>
@ -97,12 +101,12 @@ import {RouterHelper} from '../../utils/routerHelper.class';
<span *ngFor="let organization of result['organizations'] let i=index">
<!--a *ngIf="organization.url != undefined" href="{{organization.url}}"-->
<a *ngIf="organization.id != undefined" [queryParams]="{organizationId: organization.id}" routerLinkActive="router-link-active" routerLink="/search/organization">
{{organization.name}}
</a>
<span *ngIf="organization.id == undefined">
{{organization.name}}
</span>
<span *ngIf="i < result['organizations'].length-1"> ,</span>
{{organization.name}}</a><span
*ngIf="organization.id == undefined">
{{organization.name}}</span><span
*ngIf="i < result['organizations'].length-1">,</span>
</span>
</div>

View File

@ -5,8 +5,8 @@ export class DatasetInfo {
dateofacceptance: string;
embargoEndDate: string;
type: string;
downloadFrom: Map<string, {"url": string[], "accessMode": string[]}>; //key is name
publishedIn: Map<string, {"url": string[], "accessMode": string[]}>; //key is name
downloadFrom: Map<string, {"url": string[], "accessMode": string[], "bestAccessMode": string}>; //key is name
publishedIn: Map<string, {"url": string[], "accessMode": string[], "bestAccessMode": string}>; //key is name
identifiers: Map<string, string[]>;
publisher: string;
subjects: string[];

View File

@ -7,8 +7,6 @@ export class PublicationInfo {
types: string[];
downloadFrom: Map<string, {"url": string[], "accessMode": string[], "bestAccessMode": string}>; //key is name
publishedIn: Map<string, {"url": string[], "accessMode": string[], "bestAccessMode": string}>; //key is name
bioentities: Map<string, Map<string, string>>; //<site name, <>>
software: { "name": string, "url": string}[]; //<site name, <>>
identifiers: Map<string, string[]>; //key is the classname
publisher: string;
journal: {"journal": string, "issn": string, "lissn": string};
@ -22,6 +20,8 @@ export class PublicationInfo {
fundedByProjects: { "id": string, "acronym": string, "title": string,
"funderShortname": string, "funderName": string,
"funding": string, "code": string, inline: boolean}[];
bioentities: Map<string, Map<string, string>>; //<site name, <>>
software: { "name": string, "url": string}[]; //<site name, <>>
//relatedPublications: { "name": string, "url": string, "date": string, "trust": string}[];
//relatedResearchData: { "name": string, "url": string, "date": string, "trust": string}[];
//similarPublications: {"name": string, "url": string, "date": string, "trust": string}[];

View File

@ -127,6 +127,12 @@
margin-top:5px;
}
.tooltip {
max-width: none;
background: rgba(100, 100, 100, 1);
}
.filterItem span {
display: inline-flex;
}