1. Dataprovider Landing Page: Add 'Other Research Products' tab | Add request for 'Other Research Products' in 'Related Content Providers' tab

| Bug fix of operators in links to Advanced Search Pages | Bug fix in map of 'Related Content Providers' tab.
2. searchFields.ts: Bug fix in operators.
3. htmlProjectReport.component: Add case for 'Other Research Products'.
4. Publication & Dataset & Software & Other Research Product Landing Pages: add case for 'Other Research Products' in 'Similar Research Results' and 'Related Research Results' tabs.
5. Project Landing Page: Add 'Other Research Products' tab.


git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-library/trunk/ng-openaire-library/src/app@52828 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
konstantina.galouni 2018-07-26 16:38:59 +00:00
parent 0c0147f408
commit 5ccba9adaf
16 changed files with 243 additions and 43 deletions

View File

@ -120,6 +120,21 @@
</softwareTab> </softwareTab>
</div> </div>
</li> </li>
<li *ngIf="dataProviderInfo.tabs2.indexOf('Other Research Products') != -1" (click)="search('orpsTab', 1, 10); activeTab='Other Research Products'">
<a class="uk-accordion-title" href="#">Other Research Products
<span class="uk-badge uk-badge-notification">
{{fetchOrps.searchUtils.totalResults | number}}
</span>
</a>
<div class="uk-accordion-content">
<orpsTab *ngIf="activeTab=='Other Research Products'"
[paramsForSearchLink]="paramsForSearchLink"
[fetchOrps]="fetchOrps" [(properties)]=properties>
</orpsTab>
</div>
</li>
<li *ngIf="dataProviderInfo.tabs2.indexOf('Projects') != -1" (click)="search('projectsTab', 1, 10); activeTab='Projects'"> <li *ngIf="dataProviderInfo.tabs2.indexOf('Projects') != -1" (click)="search('projectsTab', 1, 10); activeTab='Projects'">
<a class="uk-accordion-title" href="#">Projects <a class="uk-accordion-title" href="#">Projects
<span class="uk-badge uk-badge-notification"> <span class="uk-badge uk-badge-notification">
@ -167,7 +182,9 @@
[loading]="loadingRelatedDatasources" [loading]="loadingRelatedDatasources"
[fetchPublications]="fetchAggregatorsPublications" [fetchPublications]="fetchAggregatorsPublications"
[fetchDatasets]="fetchAggregatorsDatasets" [fetchDatasets]="fetchAggregatorsDatasets"
[fetchSoftware]="fetchAggregatorsSoftware" [(properties)]=properties> [fetchSoftware]="fetchAggregatorsSoftware"
[fetchOrps]="fetchAggregatorsOrps"
[(properties)]=properties>
</relatedDatasourcesTab> </relatedDatasourcesTab>
</div> </div>
</li> </li>

View File

@ -18,6 +18,8 @@ import {FetchDatasets} from '../../utils/fetchEntitiesClass
import {SearchDatasetsService} from '../../services/searchDatasets.service'; import {SearchDatasetsService} from '../../services/searchDatasets.service';
import {FetchSoftware} from '../../utils/fetchEntitiesClasses/fetchSoftware.class'; import {FetchSoftware} from '../../utils/fetchEntitiesClasses/fetchSoftware.class';
import {SearchSoftwareService} from '../../services/searchSoftware.service'; import {SearchSoftwareService} from '../../services/searchSoftware.service';
import {FetchOrps} from '../../utils/fetchEntitiesClasses/fetchOrps.class';
import {SearchOrpsService} from '../../services/searchOrps.service';
import {FetchProjects} from '../../utils/fetchEntitiesClasses/fetchProjects.class'; import {FetchProjects} from '../../utils/fetchEntitiesClasses/fetchProjects.class';
import {SearchProjectsService} from '../../services/searchProjects.service'; import {SearchProjectsService} from '../../services/searchProjects.service';
import {FetchDataproviders} from '../../utils/fetchEntitiesClasses/fetchDataproviders.class'; import {FetchDataproviders} from '../../utils/fetchEntitiesClasses/fetchDataproviders.class';
@ -66,11 +68,13 @@ export class DataProviderComponent {
public fetchPublications : FetchPublications; public fetchPublications : FetchPublications;
public fetchDatasets: FetchDatasets; public fetchDatasets: FetchDatasets;
public fetchSoftware: FetchSoftware; public fetchSoftware: FetchSoftware;
public fetchOrps: FetchOrps;
public fetchProjects: FetchProjects; public fetchProjects: FetchProjects;
public fetchDataproviders: FetchDataproviders; public fetchDataproviders: FetchDataproviders;
public fetchAggregatorsPublications: FetchPublications; public fetchAggregatorsPublications: FetchPublications;
public fetchAggregatorsDatasets: FetchDatasets; public fetchAggregatorsDatasets: FetchDatasets;
public fetchAggregatorsSoftware: FetchSoftware; public fetchAggregatorsSoftware: FetchSoftware;
public fetchAggregatorsOrps: FetchOrps;
public loadingRelatedDatasources: boolean = true; public loadingRelatedDatasources: boolean = true;
@ -85,6 +89,7 @@ export class DataProviderComponent {
private reloadPublications: boolean = true; private reloadPublications: boolean = true;
private reloadDatasets: boolean = true; private reloadDatasets: boolean = true;
private reloadSoftware: boolean = true; private reloadSoftware: boolean = true;
private reloadOrps: boolean = true;
private reloadProjects: boolean = true; private reloadProjects: boolean = true;
private reloadDataproviders: boolean = true; private reloadDataproviders: boolean = true;
private reloadRelatedDatasources: boolean = true; private reloadRelatedDatasources: boolean = true;
@ -107,11 +112,13 @@ export class DataProviderComponent {
private _searchPublicationsService: SearchPublicationsService, private _searchPublicationsService: SearchPublicationsService,
private _searchDatasetsService: SearchDatasetsService, private _searchDatasetsService: SearchDatasetsService,
private _searchSoftwareService: SearchSoftwareService, private _searchSoftwareService: SearchSoftwareService,
private _searchOrpsService: SearchOrpsService,
private _searchProjectsService: SearchProjectsService, private _searchProjectsService: SearchProjectsService,
private _searchDataprovidersService: SearchDataprovidersService) { private _searchDataprovidersService: SearchDataprovidersService) {
this.fetchPublications = new FetchPublications(this._searchPublicationsService); this.fetchPublications = new FetchPublications(this._searchPublicationsService);
this.fetchDatasets = new FetchDatasets(this._searchDatasetsService); this.fetchDatasets = new FetchDatasets(this._searchDatasetsService);
this.fetchSoftware = new FetchSoftware(this._searchSoftwareService); this.fetchSoftware = new FetchSoftware(this._searchSoftwareService);
this.fetchOrps = new FetchOrps(this._searchOrpsService);
this.fetchProjects = new FetchProjects(this._searchProjectsService); this.fetchProjects = new FetchProjects(this._searchProjectsService);
this.fetchDataproviders = new FetchDataproviders(this._searchDataprovidersService); this.fetchDataproviders = new FetchDataproviders(this._searchDataprovidersService);
@ -226,6 +233,7 @@ export class DataProviderComponent {
this.reloadPublications = true; this.reloadPublications = true;
this.reloadDatasets = true; this.reloadDatasets = true;
this.reloadSoftware = true; this.reloadSoftware = true;
this.reloadOrps = true;
this.reloadProjects = true; this.reloadProjects = true;
this.reloadDataproviders = true; this.reloadDataproviders = true;
this.reloadRelatedDatasources = true; this.reloadRelatedDatasources = true;
@ -262,13 +270,14 @@ export class DataProviderComponent {
this.fetchAggregatorsDatasets = new FetchDatasets(this._searchDatasetsService); this.fetchAggregatorsDatasets = new FetchDatasets(this._searchDatasetsService);
//} //}
this.fetchAggregatorsSoftware = new FetchSoftware(this._searchSoftwareService); this.fetchAggregatorsSoftware = new FetchSoftware(this._searchSoftwareService);
this.fetchAggregatorsOrps = new FetchOrps(this._searchOrpsService);
} }
if(this.dataProviderInfo.resultsBy == "collectedFrom") { if(this.dataProviderInfo.resultsBy == "collectedFrom") {
//this.paramsForSearchLink = "?collectedFrom="+this.datasourceId+"&co=and"; //this.paramsForSearchLink = "?collectedFrom="+this.datasourceId+"&co=and";
this.paramsForSearchLink = this.routerHelper.createQueryParams(['collectedFrom', 'co'], [this.datasourceId, 'and']); this.paramsForSearchLink = this.routerHelper.createQueryParams(['collectedFrom', 'cl'], [this.datasourceId, 'and']);
} else if (this.dataProviderInfo.resultsBy == "hostedBy") { } else if (this.dataProviderInfo.resultsBy == "hostedBy") {
//this.paramsForSearchLink = "?hostedBy="+this.datasourceId+"&ho=and"; //this.paramsForSearchLink = "?hostedBy="+this.datasourceId+"&ho=and";
this.paramsForSearchLink = this.routerHelper.createQueryParams(['hostedBy', 'ho'], [this.datasourceId, 'and']); this.paramsForSearchLink = this.routerHelper.createQueryParams(['hostedBy', 'hs'], [this.datasourceId, 'and']);
} }
} }
@ -283,7 +292,9 @@ export class DataProviderComponent {
this.countDatasets(page, size); this.countDatasets(page, size);
} else if(content=='softwareTab') { } else if(content=='softwareTab') {
this.countSoftware(page, size); this.countSoftware(page, size);
} else if(content=='projectsTab') { } else if(content=='orpsTab') {
this.countOrps(page, size);
} else if(content=='projectsTab') {
this.countProjects(page, size); this.countProjects(page, size);
} else if(content=='datasourcesTab') { } else if(content=='datasourcesTab') {
this.countDatasources(page, size); this.countDatasources(page, size);
@ -300,7 +311,9 @@ export class DataProviderComponent {
this.searchDatasets(page, size); this.searchDatasets(page, size);
} else if(content=='softwareTab') { } else if(content=='softwareTab') {
this.searchSoftware(page, size); this.searchSoftware(page, size);
} else if(content=='projectsTab') { } else if(content=='orpsTab') {
this.searchOrps(page, size);
} else if(content=='projectsTab') {
this.searchProjects(page, size); this.searchProjects(page, size);
} else if(content=='datasourcesTab') { } else if(content=='datasourcesTab') {
this.searchDatasources(page, size); this.searchDatasources(page, size);
@ -352,6 +365,19 @@ export class DataProviderComponent {
this.fetchSoftware.getResultsForDataproviders(this.datasourceId, this.dataProviderInfo.resultsBy, page, size, this.properties); this.fetchSoftware.getResultsForDataproviders(this.datasourceId, this.dataProviderInfo.resultsBy, page, size, this.properties);
} }
private searchOrps(page: number, size: number) {
if( this.reloadOrps &&
( this.fetchOrps.searchUtils.status == this.errorCodes.LOADING ||
this.fetchOrps.searchUtils.status == this.errorCodes.DONE ) ) {
this.fetchOrps.getResultsForDataproviders(this.datasourceId, this.dataProviderInfo.resultsBy, page, size, this.properties);
}
this.reloadOrps = false;
}
private countOrps(page: number, size: number) {
this.fetchOrps.getResultsForDataproviders(this.datasourceId, this.dataProviderInfo.resultsBy, page, size, this.properties);
}
private searchProjects(page: number, size: number) { private searchProjects(page: number, size: number) {
if( this.reloadProjects && if( this.reloadProjects &&
( this.fetchProjects.searchUtils.status == this.errorCodes.LOADING || ( this.fetchProjects.searchUtils.status == this.errorCodes.LOADING ||
@ -389,8 +415,11 @@ export class DataProviderComponent {
this.fetchAggregatorsDatasets.searchUtils.status == this.errorCodes.DONE ) this.fetchAggregatorsDatasets.searchUtils.status == this.errorCodes.DONE )
&& &&
( this.fetchAggregatorsSoftware.searchUtils.status == this.errorCodes.LOADING || ( this.fetchAggregatorsSoftware.searchUtils.status == this.errorCodes.LOADING ||
this.fetchAggregatorsSoftware.searchUtils.status == this.errorCodes.DONE )) { this.fetchAggregatorsSoftware.searchUtils.status == this.errorCodes.DONE )
this.relatedDatasourcesSub = Observable.merge(this.fetchAggregatorsPublications.requestComplete, this.fetchAggregatorsDatasets.requestComplete, this.fetchAggregatorsSoftware.requestComplete) &&
( this.fetchAggregatorsOrps.searchUtils.status == this.errorCodes.LOADING ||
this.fetchAggregatorsOrps.searchUtils.status == this.errorCodes.DONE )) {
this.relatedDatasourcesSub = Observable.merge(this.fetchAggregatorsPublications.requestComplete, this.fetchAggregatorsDatasets.requestComplete, this.fetchAggregatorsSoftware.requestComplete, this.fetchAggregatorsOrps.requestComplete)
.subscribe( .subscribe(
data => {}, data => {},
err => {}, err => {},
@ -400,6 +429,7 @@ export class DataProviderComponent {
this.fetchAggregatorsPublications.getAggregatorResults(this.datasourceId, page, size, this.properties); this.fetchAggregatorsPublications.getAggregatorResults(this.datasourceId, page, size, this.properties);
this.fetchAggregatorsDatasets.getAggregatorResults(this.datasourceId, page, size, this.properties); this.fetchAggregatorsDatasets.getAggregatorResults(this.datasourceId, page, size, this.properties);
this.fetchAggregatorsSoftware.getAggregatorResults(this.datasourceId, page, size, this.properties); this.fetchAggregatorsSoftware.getAggregatorResults(this.datasourceId, page, size, this.properties);
this.fetchAggregatorsOrps.getAggregatorResults(this.datasourceId, page, size, this.properties);
} else { } else {
this.loadingRelatedDatasources = false; this.loadingRelatedDatasources = false;
} }
@ -412,18 +442,20 @@ export class DataProviderComponent {
this.fetchAggregatorsPublications.getAggregatorResults(this.datasourceId, page, size, this.properties); this.fetchAggregatorsPublications.getAggregatorResults(this.datasourceId, page, size, this.properties);
this.fetchAggregatorsDatasets.getAggregatorResults(this.datasourceId, page, size, this.properties); this.fetchAggregatorsDatasets.getAggregatorResults(this.datasourceId, page, size, this.properties);
this.fetchAggregatorsSoftware.getAggregatorResults(this.datasourceId, page, size, this.properties); this.fetchAggregatorsSoftware.getAggregatorResults(this.datasourceId, page, size, this.properties);
this.fetchAggregatorsOrps.getAggregatorResults(this.datasourceId, page, size, this.properties);
} }
private preprocessRelatedDatasources() { private preprocessRelatedDatasources() {
if( this.fetchAggregatorsPublications.searchUtils.status == this.errorCodes.DONE || if( this.fetchAggregatorsPublications.searchUtils.status == this.errorCodes.DONE ||
this.fetchAggregatorsDatasets.searchUtils.status == this.errorCodes.DONE || this.fetchAggregatorsDatasets.searchUtils.status == this.errorCodes.DONE ||
this.fetchAggregatorsSoftware.searchUtils.status == this.errorCodes.DONE ) { this.fetchAggregatorsSoftware.searchUtils.status == this.errorCodes.DONE ||
this.dataProviderInfo.relatedDatasources = new Map<string, {"name": string, "countPublications": string, "countDatasets": string, "countSoftware": string}>(); this.fetchAggregatorsOrps.searchUtils.status == this.errorCodes.DONE ) {
this.dataProviderInfo.relatedDatasources = new Map<string, {"name": string, "countPublications": string, "countDatasets": string, "countSoftware": string, "countOrps": string}>();
} }
for(let result of this.fetchAggregatorsPublications.results) { for(let result of this.fetchAggregatorsPublications.results) {
if(!this.dataProviderInfo.relatedDatasources.has(result.id)) { if(!this.dataProviderInfo.relatedDatasources.has(result.id)) {
this.dataProviderInfo.relatedDatasources.set(result.id, {"name": result.name, "countPublications": result.count, "countDatasets": "0", "countSoftware": "0"}); this.dataProviderInfo.relatedDatasources.set(result.id, {"name": result.name, "countPublications": result.count, "countDatasets": "0", "countSoftware": "0", "countOrps": "0"});
} else { } else {
this.dataProviderInfo.relatedDatasources.get(result.id).countPublications = parseInt(this.dataProviderInfo.relatedDatasources.get(result.id).countPublications + result.count)+""; this.dataProviderInfo.relatedDatasources.get(result.id).countPublications = parseInt(this.dataProviderInfo.relatedDatasources.get(result.id).countPublications + result.count)+"";
} }
@ -431,7 +463,7 @@ export class DataProviderComponent {
for(let result of this.fetchAggregatorsDatasets.results) { for(let result of this.fetchAggregatorsDatasets.results) {
if(!this.dataProviderInfo.relatedDatasources.has(result.id)) { if(!this.dataProviderInfo.relatedDatasources.has(result.id)) {
this.dataProviderInfo.relatedDatasources.set(result.id, {"name": result.name, "countPublications": "0", "countDatasets": result.count, "countSoftware": "0"}); this.dataProviderInfo.relatedDatasources.set(result.id, {"name": result.name, "countPublications": "0", "countDatasets": result.count, "countSoftware": "0", "countOrps": "0"});
} else { } else {
this.dataProviderInfo.relatedDatasources.get(result.id).countDatasets = parseInt(this.dataProviderInfo.relatedDatasources.get(result.id).countDatasets + result.count)+""; this.dataProviderInfo.relatedDatasources.get(result.id).countDatasets = parseInt(this.dataProviderInfo.relatedDatasources.get(result.id).countDatasets + result.count)+"";
} }
@ -439,11 +471,19 @@ export class DataProviderComponent {
for(let result of this.fetchAggregatorsSoftware.results) { for(let result of this.fetchAggregatorsSoftware.results) {
if(!this.dataProviderInfo.relatedDatasources.has(result.id)) { if(!this.dataProviderInfo.relatedDatasources.has(result.id)) {
this.dataProviderInfo.relatedDatasources.set(result.id, {"name": result.name, "countPublications": "0", "countDatasets": "0", "countSoftware": result.count}); this.dataProviderInfo.relatedDatasources.set(result.id, {"name": result.name, "countPublications": "0", "countDatasets": "0", "countSoftware": result.count, "countOrps": "0"});
} else { } else {
this.dataProviderInfo.relatedDatasources.get(result.id).countSoftware = parseInt(this.dataProviderInfo.relatedDatasources.get(result.id).countSoftware + result.count)+""; this.dataProviderInfo.relatedDatasources.get(result.id).countSoftware = parseInt(this.dataProviderInfo.relatedDatasources.get(result.id).countSoftware + result.count)+"";
} }
} }
for(let result of this.fetchAggregatorsOrps.results) {
if(!this.dataProviderInfo.relatedDatasources.has(result.id)) {
this.dataProviderInfo.relatedDatasources.set(result.id, {"name": result.name, "countPublications": "0", "countDatasets": "0", "countSoftware": "0", "countOrps": result.count});
} else {
this.dataProviderInfo.relatedDatasources.get(result.id).countOrps = parseInt(this.dataProviderInfo.relatedDatasources.get(result.id).countOrps + result.count)+"";
}
}
this.loadingRelatedDatasources = false; this.loadingRelatedDatasources = false;
} }

View File

@ -14,6 +14,7 @@ import {PagingModule} from '../../utils/paging.module';
import {PublicationsTabComponent} from './publicationsTab.component'; import {PublicationsTabComponent} from './publicationsTab.component';
import {DatasetsTabComponent} from './datasetsTab.component'; import {DatasetsTabComponent} from './datasetsTab.component';
import {SoftwareTabComponent} from './softwareTab.component'; import {SoftwareTabComponent} from './softwareTab.component';
import {OrpsTabComponent} from './orpsTab.component';
import {StatisticsTabComponent} from './statisticsTab.component'; import {StatisticsTabComponent} from './statisticsTab.component';
import {ProjectsTabComponent} from './projectsTab.component'; import {ProjectsTabComponent} from './projectsTab.component';
import {DatasourcesTabComponent} from './datasourcesTab.component'; import {DatasourcesTabComponent} from './datasourcesTab.component';
@ -28,6 +29,7 @@ import {DatasetsServiceModule} from '../../services/datasetsService.module';
import {ProjectsServiceModule} from '../../services/projectsService.module'; import {ProjectsServiceModule} from '../../services/projectsService.module';
import {PublicationsServiceModule} from '../../services/publicationsService.module'; import {PublicationsServiceModule} from '../../services/publicationsService.module';
import {SoftwareServiceModule} from '../../services/softwareService.module'; import {SoftwareServiceModule} from '../../services/softwareService.module';
import {OrpsServiceModule} from '../../services/orpsService.module';
// import { DataProviderRoutingModule } from './dataProvider-routing.module'; // import { DataProviderRoutingModule } from './dataProvider-routing.module';
import {FreeGuard} from'../../login/freeGuard.guard'; import {FreeGuard} from'../../login/freeGuard.guard';
@ -38,10 +40,10 @@ import {IsRouteEnabled} from '../../error/isRouteEnabled.guard';
[CommonModule, FormsModule, RouterModule, [CommonModule, FormsModule, RouterModule,
TabResultModule, IFrameModule, ErrorMessagesModule, MetricsModule, LandingModule, TabResultModule, IFrameModule, ErrorMessagesModule, MetricsModule, LandingModule,
DataProvidersServiceModule, DatasetsServiceModule, ProjectsServiceModule, PublicationsServiceModule, DataProvidersServiceModule, DatasetsServiceModule, ProjectsServiceModule, PublicationsServiceModule,
SoftwareServiceModule, PagingModule], SoftwareServiceModule, OrpsServiceModule, PagingModule],
declarations: declarations:
[PublicationsTabComponent, DatasetsTabComponent, StatisticsTabComponent, ProjectsTabComponent, DatasourcesTabComponent, OrganizationsTabComponent, [PublicationsTabComponent, DatasetsTabComponent, StatisticsTabComponent, ProjectsTabComponent, DatasourcesTabComponent, OrganizationsTabComponent,
RelatedDatasourcesTabComponent, DataProviderComponent, SoftwareTabComponent RelatedDatasourcesTabComponent, DataProviderComponent, SoftwareTabComponent, OrpsTabComponent
], ],
providers:[ providers:[
DataProviderService, FreeGuard, IsRouteEnabled], DataProviderService, FreeGuard, IsRouteEnabled],

View File

@ -130,9 +130,10 @@ export class DataProviderService {
this.dataProviderInfo.tabs2.push("Software"); this.dataProviderInfo.tabs2.push("Software");
} }
/*if(this.dataProviderInfo.tabsInTypes.otherTab.has(data[1].classid)) { if(this.dataProviderInfo.tabsInTypes.orpsTab.has(data[1].classid)) {
this.dataProviderInfo.tabs.push({"name": "Other", "content": "otherTab"}); this.dataProviderInfo.tabs.push({"name": "Other Research Products", "content": "orpsTab"});
}*/ this.dataProviderInfo.tabs2.push("Other Research Products");
}
this.dataProviderInfo.tabs.push({"name": "Metrics", "content": "metricsTab"}); this.dataProviderInfo.tabs.push({"name": "Metrics", "content": "metricsTab"});
this.dataProviderInfo.tabs2.push("Metrics"); this.dataProviderInfo.tabs2.push("Metrics");

View File

@ -0,0 +1,41 @@
import {Component, Input} from '@angular/core';
import { FetchOrps } from '../../utils/fetchEntitiesClasses/fetchOrps.class';
import {ErrorCodes} from '../../utils/properties/errorCodes';
import{EnvProperties} from '../../utils/properties/env-properties';
@Component({
selector: 'orpsTab',
template: `
<errorMessages [status]="[fetchOrps.searchUtils.status]" [type]="'other research products'" tab_error_class=true></errorMessages>
<div *ngIf="fetchOrps.searchUtils.status == errorCodes.DONE">
<div class = "uk-text-right" *ngIf = "fetchOrps.searchUtils.totalResults > 10" >
<a [queryParams]="paramsForSearchLink"
routerLinkActive="router-link-active" [routerLink]="linkToSearchOrps" class="uk-button uk-button-text">
View all {{fetchOrps.searchUtils.totalResults | number}} results
</a>
</div>
<tab-result [(results)]="fetchOrps.results"
[(status)]= "fetchOrps.searchUtils.status"
type="other" urlParam="orpId">
</tab-result>
</div>
`
})
export class OrpsTabComponent {
@Input() paramsForSearchLink = {};
@Input() fetchOrps : FetchOrps;
@Input() properties:EnvProperties ;
public linkToSearchOrps = "";
public errorCodes:ErrorCodes = new ErrorCodes();
constructor () {}
ngOnInit() {
this.linkToSearchOrps = this.properties.searchLinkToAdvancedOrps;
}
ngOnDestroy() {}
}

View File

@ -3,6 +3,7 @@ import {Component, Input} from '@angular/core';
import { FetchPublications } from '../../utils/fetchEntitiesClasses/fetchPublications.class'; import { FetchPublications } from '../../utils/fetchEntitiesClasses/fetchPublications.class';
import { FetchDatasets } from '../../utils/fetchEntitiesClasses/fetchDatasets.class'; import { FetchDatasets } from '../../utils/fetchEntitiesClasses/fetchDatasets.class';
import { FetchSoftware } from '../../utils/fetchEntitiesClasses/fetchSoftware.class'; import { FetchSoftware } from '../../utils/fetchEntitiesClasses/fetchSoftware.class';
import { FetchOrps } from '../../utils/fetchEntitiesClasses/fetchOrps.class';
import { ErrorCodes} from '../../utils/properties/errorCodes'; import { ErrorCodes} from '../../utils/properties/errorCodes';
import {RouterHelper} from '../../utils/routerHelper.class'; import {RouterHelper} from '../../utils/routerHelper.class';
@ -12,12 +13,13 @@ import{EnvProperties} from '../../utils/properties/env-properties';
@Component({ @Component({
selector: 'relatedDatasourcesTab', selector: 'relatedDatasourcesTab',
template: ` template: `
<errorMessages [status]="[fetchPublications.searchUtils.status, fetchDatasets.searchUtils.status, fetchSoftware.searchUtils.status]" <errorMessages [status]="[fetchPublications.searchUtils.status, fetchDatasets.searchUtils.status, fetchSoftware.searchUtils.status, fetchOrps.searchUtils.status]"
[type]="'related content providers'" tab_error_class=true> [type]="'related content providers'" tab_error_class=true>
</errorMessages> </errorMessages>
<div *ngIf="(fetchPublications.searchUtils.status == errorCodes.DONE || fetchDatasets.searchUtils.status == errorCodes.DONE || fetchSoftware.searchUtils.status == errorCodes.DONE) <div *ngIf="(fetchPublications.searchUtils.status == errorCodes.DONE || fetchDatasets.searchUtils.status == errorCodes.DONE
&& !loading"> || fetchSoftware.searchUtils.status == errorCodes.DONE || fetchOrps.searchUtils.status == errorCodes.DONE)
&& !loading">
<div *ngIf="results && results.size > pageSize" class="uk-margin"> <div *ngIf="results && results.size > pageSize" class="uk-margin">
<span class="uk-text-bold">{{results.size | number}} related content providers, page {{page | number}} of {{totalPages(results.size) | number}}</span> <span class="uk-text-bold">{{results.size | number}} related content providers, page {{page | number}} of {{totalPages(results.size) | number}}</span>
<paging-no-load class="uk-float-right" [currentPage]="page" [totalResults]="results.size" [size]="pageSize" (pageChange)="updatePage($event)"></paging-no-load> <paging-no-load class="uk-float-right" [currentPage]="page" [totalResults]="results.size" [size]="pageSize" (pageChange)="updatePage($event)"></paging-no-load>
@ -39,11 +41,15 @@ import{EnvProperties} from '../../utils/properties/env-properties';
class="uk-text-center"> class="uk-text-center">
Number of Software Number of Software
</th> </th>
<th *ngIf="fetchOrps.results.length > 0 || fetchOrps.searchUtils.status == errorCodes.ERROR"
class="uk-text-center">
Number of Other Research Products
</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<ng-container *ngIf="results"> <ng-container *ngIf="results">
<ng-container *ngFor="let id of results.keys() let i=index"> <ng-container *ngFor="let id of getKeys(results); let i=index">
<tr *ngIf="i>=(page-1)*pageSize && i<page*pageSize"> <tr *ngIf="i>=(page-1)*pageSize && i<page*pageSize">
<td class="uk-text-center"> <td class="uk-text-center">
<a [queryParams]="{datasourceId: id}" routerLinkActive="router-link-active" routerLink="/search/dataprovider"> <a [queryParams]="{datasourceId: id}" routerLinkActive="router-link-active" routerLink="/search/dataprovider">
@ -73,6 +79,14 @@ import{EnvProperties} from '../../utils/properties/env-properties';
</a> </a>
</td> </td>
<td *ngIf="fetchSoftware.searchUtils.status == errorCodes.ERROR" class="uk-text-center">-</td> <td *ngIf="fetchSoftware.searchUtils.status == errorCodes.ERROR" class="uk-text-center">-</td>
<td *ngIf="fetchOrps.results.length > 0" class="uk-text-center">
<a [queryParams]="routerHelper.createQueryParams(['hostedBy', 'hs', 'collectedFrom', 'cl'], [id, 'and', dataproviderId, 'and'])"
routerLinkActive="router-link-active" [routerLink]="linkToSearchOrps">
{{results.get(id).countOrps | number}}
</a>
</td>
<td *ngIf="fetchOrps.searchUtils.status == errorCodes.ERROR" class="uk-text-center">-</td>
</tr> </tr>
</ng-container> </ng-container>
</ng-container> </ng-container>
@ -87,16 +101,18 @@ export class RelatedDatasourcesTabComponent {
@Input() fetchPublications : FetchPublications; @Input() fetchPublications : FetchPublications;
@Input() fetchDatasets : FetchDatasets; @Input() fetchDatasets : FetchDatasets;
@Input() fetchSoftware : FetchSoftware; @Input() fetchSoftware : FetchSoftware;
@Input() fetchOrps: FetchOrps;
// true: preprocessing is not over // true: preprocessing is not over
@Input() loading: boolean = true; @Input() loading: boolean = true;
// Εvery content provider's id is a single key of a map // Εvery content provider's id is a single key of a map
@Input() results: Map<string, {"name": string, "countPublications": string, "countDatasets": string, "countSoftware": string}>; @Input() results: Map<string, {"name": string, "countPublications": string, "countDatasets": string, "countSoftware": string, "countOrps": string}>;
@Input() properties:EnvProperties ; @Input() properties:EnvProperties ;
public linkToSearchPublications: string = ""; public linkToSearchPublications: string = "";
public linkToSearchResearchData: string = ""; public linkToSearchResearchData: string = "";
public linkToSearchSoftware: string = ""; public linkToSearchSoftware: string = "";
public linkToSearchOrps: string = "";
public routerHelper:RouterHelper = new RouterHelper(); public routerHelper:RouterHelper = new RouterHelper();
public errorCodes:ErrorCodes = new ErrorCodes(); public errorCodes:ErrorCodes = new ErrorCodes();
@ -110,6 +126,7 @@ export class RelatedDatasourcesTabComponent {
this.linkToSearchPublications = this.properties.searchLinkToAdvancedPublications; this.linkToSearchPublications = this.properties.searchLinkToAdvancedPublications;
this.linkToSearchResearchData = this.properties.searchLinkToAdvancedDatasets; this.linkToSearchResearchData = this.properties.searchLinkToAdvancedDatasets;
this.linkToSearchSoftware = this.properties.searchLinkToAdvancedSoftware; this.linkToSearchSoftware = this.properties.searchLinkToAdvancedSoftware;
this.linkToSearchOrps = this.properties.searchLinkToAdvancedOrps;
} }
ngOnDestroy() {} ngOnDestroy() {}
@ -125,4 +142,8 @@ export class RelatedDatasourcesTabComponent {
updatePage($event) { updatePage($event) {
this.page = $event.value; this.page = $event.value;
} }
public getKeys( map) {
return Array.from(map.keys());
}
} }

View File

@ -89,23 +89,25 @@ export class HtmlProjectReportComponent{
this.warningMessage="Requested size is not an integer"; this.warningMessage="Requested size is not an integer";
} }
if(params['type'] && (params['type'] == "publication" || params['type'] == "dataset" || params['type'] == "software")){ if(params['type'] && (params['type'] == "publication" || params['type'] == "dataset" || params['type'] == "software" || params['type'] == "other")){
if(params['type'] == "publication") { if(params['type'] == "publication") {
this.resultsType = 'publication'; this.resultsType = 'publication';
} else if(params['type'] == "dataset") { } else if(params['type'] == "dataset") {
this.resultsType = 'research data'; this.resultsType = 'research data';
} else if(params['type'] == "software") { } else if(params['type'] == "software") {
this.resultsType = 'software'; this.resultsType = 'software';
} else if(params['type'] == "other") {
this.resultsType = "other research product";
} }
var title = "Project's "+this.resultsType+" report"; var title = "Project's "+this.resultsType+" report";
var description = "project, project "+ this.resultsType +" report, funding, open access, publications, research data, software"; var description = "project, project "+ this.resultsType +" report, funding, open access, publications, research data, software, other research products";
this.updateTitle(title); this.updateTitle(title);
this.updateDescription(description); this.updateDescription(description);
} else { } else {
this.showLoading = false; this.showLoading = false;
this.warningMessage="Requested type should be publication or research data or software"; this.warningMessage="Requested type should be publication or research data or software or other research product";
} }
//showLoading is true if no warnings //showLoading is true if no warnings
@ -158,6 +160,8 @@ export class HtmlProjectReportComponent{
this.header2 += this.totalResults.toLocaleString('en-US') + " research data"; this.header2 += this.totalResults.toLocaleString('en-US') + " research data";
} else if(this.resultsType == "software") { } else if(this.resultsType == "software") {
this.header2 += this.totalResults.toLocaleString('en-US') + " software"; this.header2 += this.totalResults.toLocaleString('en-US') + " software";
} else if(this.resultsType == "other research product") {
this.header2 += this.totalResults.toLocaleString('en-US') + " other";
} }
} }
@ -209,6 +213,8 @@ export class HtmlProjectReportComponent{
this.header1 += "Research Data"; this.header1 += "Research Data";
} else if(this.resultsType == "software") { } else if(this.resultsType == "software") {
this.header1 += "Software"; this.header1 += "Software";
} else if(this.resultsType == "other research product") {
this.header1 += "Other Research Products";
} }
if(data != undefined) { if(data != undefined) {

View File

@ -22,6 +22,9 @@ export class HtmlProjectReportService {
} else if(type == "software") { } else if(type == "software") {
resultTypeId = 'software'; resultTypeId = 'software';
requestType = 'software' requestType = 'software'
} else if(type == 'other research products') {
resultTypeId = 'other';
requestType = 'other';
} }
let url = csvAPIURL; let url = csvAPIURL;

View File

@ -363,7 +363,7 @@ export class ParsingFunctions {
return false; return false;
} }
// publication & dataset & software landing : for relatedResearchResults // publication & dataset & software & orp landing : for relatedResearchResults
parseRelatedResearchResults(relatedResearchResults: Map<string, { "name": string, "id": string, "date": string, parseRelatedResearchResults(relatedResearchResults: Map<string, { "name": string, "id": string, "date": string,
"percentage": number, "class": string}[]>, relation: any, provenanceAction: string) : "percentage": number, "class": string}[]>, relation: any, provenanceAction: string) :
Map<string, { "name": string, "id": string, "date": string, Map<string, { "name": string, "id": string, "date": string,
@ -383,7 +383,7 @@ export class ParsingFunctions {
return relatedResearchResults; return relatedResearchResults;
} }
// publication & dataset & software landing : for similarResearchResults // publication & dataset & software & orp landing : for similarResearchResults
parseSimilarResearchResults(similarResearchResults: { "name": string, "id": string, "date": string, parseSimilarResearchResults(similarResearchResults: { "name": string, "id": string, "date": string,
"percentage": number, "class": string}[], relation: any) : "percentage": number, "class": string}[], relation: any) :
{ "name": string, "id": string, "date": string, "percentage": number, "class": string }[] { { "name": string, "id": string, "date": string, "percentage": number, "class": string }[] {
@ -395,7 +395,7 @@ export class ParsingFunctions {
return similarResearchResults; return similarResearchResults;
} }
// publication & dataset & software landing : for relatedResearchResults and similarResearchResults // publication & dataset & software & orp landing : for relatedResearchResults and similarResearchResults
parseRelatedOrSimilarResearchResult(relation: any, percentageName: string): {"name": string, "id": string, "date": string, "percentage": number, "class": string} { parseRelatedOrSimilarResearchResult(relation: any, percentageName: string): {"name": string, "id": string, "date": string, "percentage": number, "class": string} {
let researchResult: {"name": string, "id": string, "date": string, "percentage": number, "class": string} let researchResult: {"name": string, "id": string, "date": string, "percentage": number, "class": string}
= {"name": "", "id": "", "date": "", "percentage": null, "class": ""} = {"name": "", "id": "", "date": "", "percentage": null, "class": ""}
@ -403,8 +403,10 @@ export class ParsingFunctions {
researchResult['class'] = "publication"; researchResult['class'] = "publication";
} else if(relation['resulttype'].classname == "dataset") { } else if(relation['resulttype'].classname == "dataset") {
researchResult['class'] = "dataset"; researchResult['class'] = "dataset";
} else { } else if(relation['resulttype'].classname == "software") {
researchResult['class'] = "software"; researchResult['class'] = "software";
} else if(relation['resulttype'].classname == "other") {
researchResult['class'] = "other";
} }
researchResult['id'] = relation['to'].content; researchResult['id'] = relation['to'].content;

View File

@ -40,6 +40,11 @@ import{EnvProperties} from '../../utils/properties/env-properties';
{{item['name']}} {{item['name']}}
</a> </a>
<a *ngIf="item['id'] != '' && item['name'] != '' && item['class'] == 'other'"
[queryParams]="{orpId: item.id}" routerLinkActive="router-link-active" routerLink="/search/other">
{{item['name']}}
</a>
<a *ngIf="item['id'] != '' && item['name'] != '' && item['class'] == 'publication'" <a *ngIf="item['id'] != '' && item['name'] != '' && item['class'] == 'publication'"
[queryParams]="{articleId: item.id}" routerLinkActive="router-link-active" routerLink="/search/publication"> [queryParams]="{articleId: item.id}" routerLinkActive="router-link-active" routerLink="/search/publication">
<!--a *ngIf="item['url'] != '' && item['name'] != '' && item['class'] == 'publication'" <!--a *ngIf="item['url'] != '' && item['name'] != '' && item['class'] == 'publication'"
@ -71,7 +76,7 @@ import{EnvProperties} from '../../utils/properties/env-properties';
export class TabTableComponent { export class TabTableComponent {
@Input() percentageName: string = "Trust"; @Input() percentageName: string = "Trust";
@Input() info: { "name": string, "url": string, "date": string, "percentage": number}[];//Map<string, string[]>; @Input() info: { "name": string, "id": string, "date": string, "percentage": number, "class": string}[];//Map<string, string[]>;
@Input() properties:EnvProperties; @Input() properties:EnvProperties;
public routerHelper:RouterHelper = new RouterHelper(); public routerHelper:RouterHelper = new RouterHelper();
public searchLinkToPublication: string; public searchLinkToPublication: string;

View File

@ -157,6 +157,32 @@
</div> </div>
</li> </li>
<li (click)="activeTab='Other Research Products'; searchOrpsInit()">
<a class="uk-accordion-title" href="#">
Other Research Products
<span class="uk-badge uk-badge-notification">
{{fetchOrps.searchUtils.totalResults | number}}
</span>
</a>
<div class="uk-accordion-content">
<errorMessages [status]="[fetchOrps.searchUtils.status]" [type]="'other research products'" tab_error_class=true></errorMessages>
<div *ngIf="fetchOrps.searchUtils.status == errorCodes.DONE">
<div class = "uk-text-right" *ngIf = "fetchOrps.searchUtils.totalResults > 10">
<a [queryParams]="routerHelper.createQueryParams(['project', 'po'], [projectId, 'and'])"
routerLinkActive="router-link-active" [routerLink]="linkToSearchOrps" class="uk-button uk-button-text">
View all {{fetchOrps.searchUtils.totalResults | number}} results
</a>
</div>
<tab-result [(results)]="fetchOrps.results"
[(status)]= "fetchOrps.searchUtils.status"
type="other" urlParam="orpId">
</tab-result>
</div>
</div>
</li>
<li (click)="activeTab='Statistics'; statsClicked=true"> <li (click)="activeTab='Statistics'; statsClicked=true">
<a class="uk-accordion-title" href="#"> <a class="uk-accordion-title" href="#">
Statistics Statistics

View File

@ -16,6 +16,8 @@ import {FetchDatasets} from '../../utils/fetchEntitiesClasses/fet
import {SearchDatasetsService} from '../../services/searchDatasets.service'; import {SearchDatasetsService} from '../../services/searchDatasets.service';
import {FetchSoftware} from '../../utils/fetchEntitiesClasses/fetchSoftware.class'; import {FetchSoftware} from '../../utils/fetchEntitiesClasses/fetchSoftware.class';
import {SearchSoftwareService} from '../../services/searchSoftware.service'; import {SearchSoftwareService} from '../../services/searchSoftware.service';
import {FetchOrps} from '../../utils/fetchEntitiesClasses/fetchOrps.class';
import {SearchOrpsService} from '../../services/searchOrps.service';
import {ModalLoading} from '../../utils/modal/loading.component'; import {ModalLoading} from '../../utils/modal/loading.component';
@ -54,6 +56,7 @@ export class ProjectComponent{
public publications_dynamic: string; public publications_dynamic: string;
public datasets_dynamic: string; public datasets_dynamic: string;
public software_dynamic: string; public software_dynamic: string;
public orps_dynamic: string;
public project ; public project ;
@ -62,6 +65,7 @@ export class ProjectComponent{
public csvParams: string; public csvParams: string;
public csvParamsDatasets: string; public csvParamsDatasets: string;
public csvParamsSoftware: string; public csvParamsSoftware: string;
public csvParamsOrps: string;
// Message variables // Message variables
public warningMessage = ""; public warningMessage = "";
@ -75,6 +79,7 @@ export class ProjectComponent{
private reloadPublications: boolean = true; private reloadPublications: boolean = true;
private reloadDatasets: boolean = true; private reloadDatasets: boolean = true;
private reloadSoftware: boolean = true; private reloadSoftware: boolean = true;
private reloadOrps: boolean = true;
// Variables for publications, research data, software tabs // Variables for publications, research data, software tabs
public fetchPublications : FetchPublications; public fetchPublications : FetchPublications;
@ -83,6 +88,8 @@ export class ProjectComponent{
public linkToSearchDatasets = ""; public linkToSearchDatasets = "";
public fetchSoftware: FetchSoftware; public fetchSoftware: FetchSoftware;
public linkToSearchSoftware = ""; public linkToSearchSoftware = "";
public fetchOrps: FetchOrps;
public linkToSearchOrps = "";
public routerHelper:RouterHelper = new RouterHelper(); public routerHelper:RouterHelper = new RouterHelper();
public errorCodes:ErrorCodes = new ErrorCodes(); public errorCodes:ErrorCodes = new ErrorCodes();
@ -100,6 +107,7 @@ properties:EnvProperties;
private _searchPublicationsService: SearchPublicationsService, private _searchPublicationsService: SearchPublicationsService,
private _searchDatasetsService: SearchDatasetsService, private _searchDatasetsService: SearchDatasetsService,
private _searchSoftwareService: SearchSoftwareService, private _searchSoftwareService: SearchSoftwareService,
private _searchOrpsService: SearchOrpsService,
private _reportsService: ReportsService, private _reportsService: ReportsService,
private _meta: Meta, private _meta: Meta,
private _title: Title, private _title: Title,
@ -119,9 +127,10 @@ properties:EnvProperties;
this.fetchPublications = new FetchPublications( this._searchPublicationsService); this.fetchPublications = new FetchPublications( this._searchPublicationsService);
this.fetchDatasets = new FetchDatasets(this._searchDatasetsService); this.fetchDatasets = new FetchDatasets(this._searchDatasetsService);
this.fetchSoftware = new FetchSoftware(this._searchSoftwareService); this.fetchSoftware = new FetchSoftware(this._searchSoftwareService);
this.fetchOrps = new FetchOrps(this._searchOrpsService);
var title = "Project"; var title = "Project";
var description = "project, funding, open access, publications, research data, software"; var description = "project, funding, open access, publications, research data, software, other research products";
this.updateTitle(title); this.updateTitle(title);
this.updateDescription(description); this.updateDescription(description);
@ -148,6 +157,7 @@ properties:EnvProperties;
this.csvParams = "?format=csv-special&type=publications&fq=(((oaftype exact result) and (resulttypeid exact publication)) and (relprojectid exact "+this.projectId+"))"; this.csvParams = "?format=csv-special&type=publications&fq=(((oaftype exact result) and (resulttypeid exact publication)) and (relprojectid exact "+this.projectId+"))";
this.csvParamsDatasets = "?format=csv-special&type=datasets&fq=(((oaftype exact result) and (resulttypeid exact dataset)) and (relprojectid exact "+this.projectId+"))"; this.csvParamsDatasets = "?format=csv-special&type=datasets&fq=(((oaftype exact result) and (resulttypeid exact dataset)) and (relprojectid exact "+this.projectId+"))";
this.csvParamsSoftware = "?format=csv-special&type=software&fq=(((oaftype exact result) and (resulttypeid exact software)) and (relprojectid exact "+this.projectId+"))"; this.csvParamsSoftware = "?format=csv-special&type=software&fq=(((oaftype exact result) and (resulttypeid exact software)) and (relprojectid exact "+this.projectId+"))";
this.csvParamsOrps = "?format=csv-special&type=other&fq=(((oaftype exact result) and (resulttypeid exact other)) and (relprojectid exact "+this.projectId+"))";
if (typeof document !== 'undefined') { if (typeof document !== 'undefined') {
this.element.nativeElement.scrollIntoView(); this.element.nativeElement.scrollIntoView();
@ -186,11 +196,22 @@ actionsAfterLoadId(){
+ "\n-->" + "\n-->"
+ "\n</script>"; + "\n</script>";
this.orps_dynamic =
"<script type=\"text/javascript\">"
+ "\n<!--"
+ "\ndocument.write('<div id=\"oa_widget\"></div>');"
+ "\ndocument.write('<script type=\"text/javascript\""
+ "\nsrc=\"https://beta.openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId="
+ this.projectId + "&type=other\"></script>');"
+ "\n-->"
+ "\n</script>";
this.getProjectInfo(this.projectId); this.getProjectInfo(this.projectId);
//this.searchPublications(); //this.searchPublications();
this.fetchPublications.getNumForEntity("project", this.projectId, this.properties); this.fetchPublications.getNumForEntity("project", this.projectId, this.properties);
this.fetchDatasets.getNumForEntity("project", this.projectId, this.properties); this.fetchDatasets.getNumForEntity("project", this.projectId, this.properties);
this.fetchSoftware.getNumForEntity("project", this.projectId, this.properties); this.fetchSoftware.getNumForEntity("project", this.projectId, this.properties);
this.fetchOrps.getNumForEntity("project", this.projectId, this.properties);
} }
ngOnDestroy() { ngOnDestroy() {
this.sub.unsubscribe(); this.sub.unsubscribe();
@ -208,12 +229,13 @@ actionsAfterLoadId(){
private createClipboard() { private createClipboard() {
if(typeof window !== 'undefined') { if(typeof window !== 'undefined') {
let publ_clipboard, datasets_clipboard, software_clipboard; let publ_clipboard, datasets_clipboard, software_clipboard, orps_clipboard;
let Clipboard; let Clipboard;
Clipboard = require('clipboard'); Clipboard = require('clipboard');
publ_clipboard = new Clipboard('.publ_clipboard_btn'); publ_clipboard = new Clipboard('.publ_clipboard_btn');
datasets_clipboard = new Clipboard('.datasets_clipboard_btn'); datasets_clipboard = new Clipboard('.datasets_clipboard_btn');
software_clipboard = new Clipboard('.software_clipboard_btn'); software_clipboard = new Clipboard('.software_clipboard_btn');
orps_clipboard = new Clipboard('.orps_clipboard_btn');
} }
} }
@ -242,6 +264,12 @@ actionsAfterLoadId(){
this.reloadSoftware = false; this.reloadSoftware = false;
} }
private searchOrps() {
this.fetchOrps.getResultsForEntity("project", this.projectId, 1, 10, this.properties);
this.linkToSearchOrps = this.properties.searchLinkToAdvancedOrps;
this.reloadOrps = false;
}
public searchPublicationsInit() { public searchPublicationsInit() {
console.info("searchPublicationsInit"); console.info("searchPublicationsInit");
if(this.reloadPublications && this.fetchPublications.searchUtils.totalResults > 0) { if(this.reloadPublications && this.fetchPublications.searchUtils.totalResults > 0) {
@ -269,6 +297,13 @@ actionsAfterLoadId(){
} }
} }
public searchOrpsInit() {
console.info("searchOrpsInit");
if(this.reloadOrps && this.fetchOrps.searchUtils.totalResults > 0) {
this.searchOrps();
}
}
private getProjectInfo (id:string) { private getProjectInfo (id:string) {
this.warningMessage = ''; this.warningMessage = '';
this.errorMessage="" this.errorMessage=""

View File

@ -18,6 +18,7 @@ import {ReportsServiceModule} from '../../services/reportsService.module';
import {PublicationsServiceModule} from '../../services/publicationsService.module'; import {PublicationsServiceModule} from '../../services/publicationsService.module';
import {DatasetsServiceModule} from '../../services/datasetsService.module'; import {DatasetsServiceModule} from '../../services/datasetsService.module';
import {SoftwareServiceModule} from '../../services/softwareService.module'; import {SoftwareServiceModule} from '../../services/softwareService.module';
import {OrpsServiceModule} from '../../services/orpsService.module';
import {TabResultModule } from '../../searchPages/searchUtils/tabResult.module'; import {TabResultModule } from '../../searchPages/searchUtils/tabResult.module';
import { LandingModule } from '../landing-utils/landing.module'; import { LandingModule } from '../landing-utils/landing.module';
import {FreeGuard} from'../../login/freeGuard.guard'; import {FreeGuard} from'../../login/freeGuard.guard';
@ -28,7 +29,7 @@ import {IsRouteEnabled} from '../../error/isRouteEnabled.guard';
CommonModule, FormsModule, RouterModule, LandingModule, CommonModule, FormsModule, RouterModule, LandingModule,
LoadingModalModule, AlertModalModule, ErrorMessagesModule, LoadingModalModule, AlertModalModule, ErrorMessagesModule,
TabResultModule, IFrameModule, MetricsModule, ReportsServiceModule, TabResultModule, IFrameModule, MetricsModule, ReportsServiceModule,
PublicationsServiceModule, DatasetsServiceModule, SoftwareServiceModule, ProjectServiceModule PublicationsServiceModule, DatasetsServiceModule, SoftwareServiceModule, OrpsServiceModule, ProjectServiceModule
], ],
declarations: [ declarations: [
ProjectComponent ProjectComponent

View File

@ -92,8 +92,8 @@ export class DataProviderInfo {
"softwarerepository", "softwarerepository",
"aggregator::softwarerepository", "aggregator::softwarerepository",
"orprepository" "orprepository"
])/*, ]),
"otherTab": new Set<string>( "orpsTab": new Set<string>(
[ [
"aggregator::datarepository", "aggregator::datarepository",
"aggregator::pubsrepository::institutional", "aggregator::pubsrepository::institutional",
@ -108,7 +108,7 @@ export class DataProviderInfo {
"softwarerepository", "softwarerepository",
"aggregator::softwarerepository", "aggregator::softwarerepository",
"orprepository" "orprepository"
])*/ ])
/* /*
, ,
"metricsTab": new Set<string>( "metricsTab": new Set<string>(
@ -166,5 +166,5 @@ export class DataProviderInfo {
//projects: any; //projects: any;
datasources: any; datasources: any;
relatedDatasources: Map<string, {"name": string, "countPublications": string, "countDatasets": string, "countSoftware": string}>; relatedDatasources: Map<string, {"name": string, "countPublications": string, "countDatasets": string, "countSoftware": string, "countOrps": string}>;
} }

View File

@ -2,14 +2,14 @@ export class SearchResult {
title: { "name": string, "accessMode": string, "sc39": string}; title: { "name": string, "accessMode": string, "sc39": string};
id:string; id:string;
DOI:string; DOI:string;
//publications & datasets & organizations: //publications & datasets & orp & organizations:
projects: {"funderShortname": string, "funderName": string, "acronym": string, "title": string, "code": string, "id": string}[]; projects: {"funderShortname": string, "funderName": string, "acronym": string, "title": string, "code": string, "id": string}[];
//datasets & publications //datasets & orp & publications
description: string; description: string;
year: string; year: string;
embargoEndDate: string; embargoEndDate: string;
authors: string[]; authors: string[];
//datasets: //datasets & orp:
publisher: string; publisher: string;
//dataproviders & projects: //dataproviders & projects:
organizations: { "name": string, "id": string}[]; organizations: { "name": string, "id": string}[];
@ -31,7 +31,7 @@ export class SearchResult {
countries: string[]; countries: string[];
subjects: string[]; subjects: string[];
//publications & datasets & software //publications & datasets & software & orp
countriesForResults: string[]; countriesForResults: string[];
languages: string[]; languages: string[];

View File

@ -2,7 +2,7 @@ export class SearchFields {
//main Entities //main Entities
//RESULTS //RESULTS
//Used for datasets and publications and software //Used for datasets and publications and software and orp
//In case Datasets or Software should display different fields, use seperate tables for fields //In case Datasets or Software should display different fields, use seperate tables for fields
public RESULT_REFINE_FIELDS = [ public RESULT_REFINE_FIELDS = [
"relfunder", "relfunder",
@ -36,7 +36,7 @@ export class SearchFields {
["resultacceptanceyear"]:{name:"Publication Date", type:"keyword", param:"year", operator: "ya", equalityOperator: " exact "}, ["resultacceptanceyear"]:{name:"Publication Date", type:"keyword", param:"year", operator: "ya", equalityOperator: " exact "},
["resultdateofacceptance"]:{name:"Publication Date", type:"date", param:"date", operator: "dt", equalityOperator: " within "}, ["resultdateofacceptance"]:{name:"Publication Date", type:"date", param:"date", operator: "dt", equalityOperator: " within "},
["resultbestaccessright"]:{name:"Access Mode", type:"vocabulary", param:"access", operator: "ac", equalityOperator: " exact "}, ["resultbestaccessright"]:{name:"Access Mode", type:"vocabulary", param:"access", operator: "ac", equalityOperator: " exact "},
["collectedfrom"]:{name:"Content Provider", type:"refine", param:"datasource", operator: "dt", equalityOperator: " exact "}, ["collectedfrom"]:{name:"Content Provider", type:"refine", param:"datasource", operator: "cl", equalityOperator: " exact "},
["relorganizationid"]:{name:"Organization", type:"entity", param:"organization", operator: "og", equalityOperator: " exact "}, ["relorganizationid"]:{name:"Organization", type:"entity", param:"organization", operator: "og", equalityOperator: " exact "},
["collectedfromdatasourceid"]:{name:"Collected from Content Provider", type:"entity", param:"collectedFrom", operator: "cl", equalityOperator: " exact "} ["collectedfromdatasourceid"]:{name:"Collected from Content Provider", type:"entity", param:"collectedFrom", operator: "cl", equalityOperator: " exact "}
}; };