complete transfering data from rc4 branch ( until r43770) / refactor project folders
git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-portal/trunk@43785 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
parent
6c5687c80f
commit
b44c33c411
|
@ -11,10 +11,13 @@ import { ProjectComponent } from './landingPages/project/project.component';
|
|||
import { OrganizationComponent } from './landingPages/organization/organization.component';
|
||||
import { DatasetComponent } from './landingPages/dataset/dataset.component';
|
||||
import { PublicationComponent } from './landingPages/publication/publication.component';
|
||||
import { DataProviderComponent } from './landingPages/dataProvider/dataProvider.component'
|
||||
import { SearchAllComponent } from './searchAll/searchAll.component';
|
||||
import { SearchPublicationsComponent } from './searchPages/searchPublications.component';
|
||||
import { AdvancedSearchPublicationsComponent } from './searchPages/advancedSearchPublications.component';
|
||||
import { DepositComponent } from './deposit/deposit.component';
|
||||
import { DepositResultComponent } from './deposit/depositResult.component';
|
||||
import { ErrorPageComponent } from './error/errorPage.component';
|
||||
|
||||
const appRoutes: Routes = [
|
||||
{ path: '', component: HomeComponent, pathMatch: 'full' },
|
||||
|
@ -27,38 +30,17 @@ const appRoutes: Routes = [
|
|||
{ path: 'organization', component: OrganizationComponent },
|
||||
{ path: 'dataset', component: DatasetComponent },
|
||||
{ path: 'publication', component: PublicationComponent },
|
||||
{ path: 'dataprovider', component: DataProviderComponent},
|
||||
{ path: 'search', component: SearchAllComponent },
|
||||
{ path: 'linking', component: LinkingComponent },
|
||||
{ path: 'bulk-linking', component: BulkLinkingComponent},
|
||||
{ path: 'search-publications', component: SearchPublicationsComponent },
|
||||
{ path: 'advanced-search-publications', component: AdvancedSearchPublicationsComponent },
|
||||
{ path: 'deposit', component: DepositComponent}
|
||||
{ path: 'deposit', component: DepositComponent},
|
||||
{ path: 'deposit-results', component: DepositResultComponent},
|
||||
{ path: 'error', component: ErrorPageComponent},
|
||||
{ path: '**', component: ErrorPageComponent }
|
||||
];
|
||||
|
||||
// { path: 'search', component: SearchComponent },
|
||||
// { path: 'my-claims', component: MyClaimsComponent },
|
||||
// { path: 'demo', component: MyClaimsDemoComponent },
|
||||
// { path: 'project', component: ProjectComponent},
|
||||
// { path: 'publication', component: PublicationComponent },
|
||||
// { path: 'dataset', component: DatasetComponent},
|
||||
// { path: 'person', component: PersonComponent },
|
||||
// { path: 'organization', component: OrganizationComponent },
|
||||
// { path: 'up', component: UploadComponent},
|
||||
// { path: 'search-publications', component: SearchPublicationsComponent },
|
||||
// { path: 'advanced-search-publications', component: AdvancedSearchPublicationsComponent },
|
||||
// { path: 'deposit', component: DepositComponent}
|
||||
// ,
|
||||
// {
|
||||
// path: 'heroes',
|
||||
// component: HeroListComponent,
|
||||
// data: {
|
||||
// title: 'Heroes List'
|
||||
// }
|
||||
// },
|
||||
// { path: 'hero/:id', component: HeroDetailComponent },
|
||||
// { path: '**', component: PageNotFoundComponent }
|
||||
// export const appRoutingProviders: any[] = [
|
||||
//
|
||||
// ];
|
||||
|
||||
export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);
|
||||
|
|
|
@ -29,6 +29,12 @@ import 'rxjs/Rx';
|
|||
<li><a routerLink="/search-publications">Search Publications</a></li>
|
||||
<li><a routerLink="/advanced-search-publications">Advanced Search Publications</a></li>
|
||||
<li><a routerLink="/deposit">Deposit</a></li>
|
||||
<li><a [queryParams]="{articleId: 'od_______908::3a5b2885656a91307156325644e73b92'}" routerLink="publication" >Publication </a></li>
|
||||
<li><a [queryParams]="{datasetId: 'datacite____::430ac1c41b7f99b7b543ef737dc41a74'}" routerLink="dataset" >Dataset </a></li>
|
||||
<li><a [queryParams]="{projectId: 'corda_______::2c37878a0cede85dbbd1081bb9b4a2f8'}" routerLink="project" >Project </a></li>
|
||||
<li><a [queryParams]="{personId: 'datacite____::9da3a037961b36a634fcd40ab0bf6535'}" routerLink="person" >Person </a></li>
|
||||
<li><a [queryParams]="{organizationId: 'dedup_wf_001::f686277c34bf457bbdf19e03589b5e81'}" routerLink="organization" >Organization </a></li>
|
||||
<li><a [queryParams]="{datasourceId: 'opendoar____::798ed7d4ee7138d49b8828958048130a'}" routerLink="dataprovider" >Data Provider </a></li>
|
||||
</ul>
|
||||
|
||||
</div><!-- /.navbar-collapse -->
|
||||
|
|
|
@ -2,7 +2,8 @@ import { NgModule} from '@angular/core';
|
|||
import { CommonModule } from '@angular/common';
|
||||
import { FormsModule } from '@angular/forms';
|
||||
|
||||
import {SharedComponentsModule} from '../common/sharedComponents.module';
|
||||
import {UtilsModule} from '../utils/utils.module';
|
||||
import {ServicesModule} from '../services/services.module';
|
||||
|
||||
import { ClaimsService} from '../services/claims.service';
|
||||
//main
|
||||
|
@ -36,15 +37,17 @@ import {LinkingGenericComponent} from './linking/linkingGeneric.component';
|
|||
import {InlineClaimContextComponent} from './inlineClaimContext/inlineClaimContext.component';
|
||||
import {InlineClaimProjectComponent} from './inlineClaimProject/inlineClaimProject.component';
|
||||
import {InlineClaimResultComponent} from './inlineClaimResult/inlineClaimResult.component';
|
||||
import {ClaimEntityFormatter} from '../common/claimEntityFormatter.component';
|
||||
import { Claim } from '../entities/claim';
|
||||
import {ClaimEntityFormatter} from '../utils/claimEntityFormatter.component';
|
||||
import { Claim } from '../utils/entities/claim';
|
||||
|
||||
//helpers
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
CommonModule, FormsModule,
|
||||
SharedComponentsModule
|
||||
UtilsModule,
|
||||
ServicesModule,
|
||||
|
||||
],
|
||||
declarations: [
|
||||
ClaimsAdminComponent, MyClaimsComponent, ClaimComponent, ClaimsComponent,
|
||||
|
|
|
@ -3,7 +3,7 @@ import {Observable} from 'rxjs/Observable';
|
|||
import {ActivatedRoute, Router} from '@angular/router';
|
||||
|
||||
import {ClaimsService} from '../../services/claims.service';
|
||||
// import {Claim} from '../../entities/claim';
|
||||
// import {Claim} from '../../utils/entities/claim';
|
||||
|
||||
@Component({
|
||||
selector: 'claim',
|
||||
|
|
|
@ -3,8 +3,8 @@ import {Location} from '@angular/common';
|
|||
import {Observable} from 'rxjs/Observable';
|
||||
import {ActivatedRoute, Router} from '@angular/router';
|
||||
import {ClaimsService} from '../../services/claims.service';
|
||||
import {ModalLoading} from '../../common/modal/loading.component';
|
||||
import {AlertModal} from '../../common/modal/alert';
|
||||
import {ModalLoading} from '../../utils/modal/loading.component';
|
||||
import {AlertModal} from '../../utils/modal/alert';
|
||||
|
||||
|
||||
@Component({
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import {Component, Input, Output, EventEmitter,ViewChild} from '@angular/core';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import {SearchCrossrefService} from '../../../services/searchCrossref.service';
|
||||
import {ModalLoading} from '../../../common/modal/loading.component';
|
||||
import {ModalLoading} from '../../../utils/modal/loading.component';
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ import {Component, Input,Output, ElementRef, EventEmitter, ViewChild} from '@ang
|
|||
import {Observable} from 'rxjs/Observable';
|
||||
import {OpenaireProjectsService} from '../../../services/openaireProjects.service';
|
||||
import {ProjectService} from '../../../services/project.service';
|
||||
import {ModalLoading} from '../../../common/modal/loading.component';
|
||||
import {ModalLoading} from '../../../utils/modal/loading.component';
|
||||
import { Subject } from 'rxjs/Subject';
|
||||
|
||||
|
||||
|
|
|
@ -2,8 +2,8 @@ import {Component, Input, Output, EventEmitter, ViewChild} from '@angular/core';
|
|||
import {Observable} from 'rxjs/Observable';
|
||||
import {Router} from '@angular/router';
|
||||
import {ClaimsService} from '../../../services/claims.service';
|
||||
import {ModalLoading} from '../../../common/modal/loading.component';
|
||||
import {AlertModal} from '../../../common/modal/alert';
|
||||
import {ModalLoading} from '../../../utils/modal/loading.component';
|
||||
import {AlertModal} from '../../../utils/modal/alert';
|
||||
|
||||
|
||||
@Component({
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import {Component, Input,Output, EventEmitter,ViewChild} from '@angular/core';
|
||||
import {AlertModal} from '../../../common/modal/alert';
|
||||
import {AlertModal} from '../../../utils/modal/alert';
|
||||
|
||||
@Component({
|
||||
selector: 'claim-selected-datasets',
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import {Component, Input,Output, EventEmitter, ViewChild} from '@angular/core';
|
||||
import {AlertModal} from '../../../common/modal/alert';
|
||||
import {AlertModal} from '../../../utils/modal/alert';
|
||||
|
||||
@Component({
|
||||
selector: 'claim-selected-publications',
|
||||
|
|
|
@ -1,18 +1,58 @@
|
|||
import {Component} from '@angular/core';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import { Router } from '@angular/router';
|
||||
|
||||
@Component({
|
||||
selector: 'deposit',
|
||||
template: `
|
||||
<div class="container">
|
||||
<h1>Deposit</h1>
|
||||
<span>Under construction</span>
|
||||
</div>`
|
||||
<div class="page-header" >
|
||||
<h2>Deposit Publications</h2>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>
|
||||
<i>
|
||||
Are you a grant recipient from the following: H2020; FP7 with SC39; or ERC?
|
||||
</i>
|
||||
Then you are required to publish in
|
||||
<a>open access</a>.
|
||||
One way to do this is to deposit your publications into an open access repository.
|
||||
</p>
|
||||
<p>
|
||||
Click the following to find more information:
|
||||
<a>FP7 guidelines</a>,
|
||||
<a>H2020 guidelines</a>,
|
||||
<a>ERC guidelines</a> OR
|
||||
<a>ask a question</a> to OpenAIRE’s national representative.
|
||||
</p>
|
||||
|
||||
<h3>Locate data provider via your institution</h3>
|
||||
|
||||
<form>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon" id="sizing-addon2">Filter</span>
|
||||
<input type="text" class="form-control" placeholder="Type keywords..." aria-describedby="sizing-addon2" [(ngModel)]="keyword" name="keyword" >
|
||||
<span class="input-group-btn">
|
||||
<button (click)="keywordChanged()" type="submit" class="btn btn-default">SELECT</button>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
`
|
||||
})
|
||||
|
||||
export class DepositComponent {
|
||||
constructor () {}
|
||||
keyword: string='';
|
||||
|
||||
constructor (private _router: Router) {}
|
||||
|
||||
keywordChanged() {
|
||||
console.info("keywordChanged: "+this.keyword);
|
||||
|
||||
//var value = {"name": this.keyword};
|
||||
//sessionStorage.setItem("organization", JSON.stringify(value));
|
||||
this._router.navigate( ['deposit-results'] );//, {"name": this.keyword}] );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,17 +1,22 @@
|
|||
import { NgModule } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { FormsModule } from '@angular/forms';
|
||||
import { DepositComponent } from './deposit.component';
|
||||
|
||||
import { UtilsModule} from '../utils/utils.module'
|
||||
|
||||
import { DepositComponent } from './deposit.component';
|
||||
import {DepositResultComponent} from './depositResult.component'
|
||||
|
||||
//helpers
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
CommonModule, FormsModule
|
||||
CommonModule, FormsModule,
|
||||
UtilsModule
|
||||
],
|
||||
declarations: [
|
||||
DepositComponent
|
||||
DepositComponent,
|
||||
DepositResultComponent
|
||||
|
||||
],
|
||||
exports: [
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
import {Component, Input} from '@angular/core';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
||||
//import localStorage from 'localStorage';
|
||||
|
||||
@Component({
|
||||
selector: 'depositResult',
|
||||
template: `
|
||||
<div class="container">
|
||||
<div class="page-header" >
|
||||
<h2>Deposit Publications</h2>
|
||||
</div>
|
||||
|
||||
<div *ngIf="organization!=undefined">
|
||||
<h2>
|
||||
<span>Data providers for institution: </span>
|
||||
<span>
|
||||
<a *ngIf="organization['url']!=''">{{organization['name']}}</a>
|
||||
<p *ngIf="organization['url']==''">{{organization['name']}}</p>
|
||||
</span>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div *ngIf="dataProviders != undefined">
|
||||
<p>Please use the information/contacts shown below to deposit your publications.</p>
|
||||
<showDataProviders [dataProviders]=dataProviders></showDataProviders>
|
||||
</div>
|
||||
|
||||
<div *ngIf="dataProviders == undefined" class = "alert alert-warning">
|
||||
No data providers found.
|
||||
<br>
|
||||
You can still deposit your publications and/or research data in
|
||||
<a href="{{zenodo}}">OpenAIRE's Zenodo catch-all repository </a>
|
||||
hosted by CERN.
|
||||
</div>
|
||||
</div>
|
||||
`
|
||||
})
|
||||
|
||||
export class DepositResultComponent {
|
||||
@Input() organization: {"name": string, "url": string};
|
||||
private dataProviders: { "name": string, "url": string, "type": string, "websiteUrl": string,
|
||||
"organizations": {"name": string, "url": string}[]}[];
|
||||
private zenodo: string;
|
||||
|
||||
constructor () {
|
||||
this.zenodo = OpenaireProperties.getZenodoURL();
|
||||
|
||||
//var someVarName = sessionStorage.getItem("organization");
|
||||
//console.info(JSON.parse(someVarName).name);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
import { Component, Input } from '@angular/core';
|
||||
import { Location } from '@angular/common';
|
||||
|
||||
@Component({
|
||||
selector: 'error',
|
||||
template: `
|
||||
<div class="container">
|
||||
<h1>
|
||||
Bad karma: we can't find that page!
|
||||
</h1>
|
||||
<br>
|
||||
|
||||
<p>
|
||||
You asked for {{page}}, but despite our computers looking very hard, we could not find it. What happened ?
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>the link you clicked to arrive here has a typo in it</li>
|
||||
<li>or somehow we removed that page, or gave it another name</li>
|
||||
<li>or, quite unlikely for sure, maybe you typed it yourself and there was a little mistake ?</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
`
|
||||
})
|
||||
|
||||
export class ErrorPageComponent {
|
||||
private page: string;
|
||||
|
||||
constructor (private _location: Location) {
|
||||
this.page = _location.path(true);
|
||||
//this.page = _router.url;
|
||||
//this.page = location.href;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
<div>
|
||||
<div class="container person">
|
||||
<div class="container-header" >
|
||||
<div *ngIf="dataProviderInfo != null">
|
||||
<h3 *ngIf="dataProviderInfo.title != null">
|
||||
<a *ngIf="dataProviderInfo.title['url'] != undefined && dataProviderInfo.title['url'] != null"
|
||||
href="{{dataProviderInfo.title['url']}}" target="_blank">
|
||||
{{dataProviderInfo.title['name']}}
|
||||
</a>
|
||||
<p *ngIf="dataProviderInfo.title['url'] == undefined || dataProviderInfo.title['url'] == null">
|
||||
{{dataProviderInfo.title['name']}}
|
||||
</p>
|
||||
</h3>
|
||||
</div>
|
||||
<div *ngIf="warningMessage.length > 0" class="alert alert-warning" role="alert">{{warningMessage}}</div>
|
||||
<div *ngIf="errorMessage.length > 0" class="alert alert-danger" role="alert">{{errorMessage}}</div>
|
||||
</div>
|
||||
|
||||
<div class="row row-offcanvas row-offcanvas-right" >
|
||||
|
||||
<div class="col-xs-6 col-sm-9 sidebar-offcanvas" *ngIf="dataProviderInfo != null">
|
||||
<dl class="dl-horizontal">
|
||||
<dt *ngIf="dataProviderInfo.type != undefined && dataProviderInfo.type != ''">Type: </dt>
|
||||
<dd *ngIf="dataProviderInfo.type != undefined && dataProviderInfo.type != ''">{{dataProviderInfo.type}}</dd>
|
||||
<dt *ngIf="dataProviderInfo.compatibility != undefined && dataProviderInfo.compatibility != ''">Compatibility: </dt>
|
||||
<dd *ngIf="dataProviderInfo.compatibility != undefined && dataProviderInfo.compatibility != ''">{{dataProviderInfo.compatibility}}</dd>
|
||||
<dt *ngIf="dataProviderInfo.oaiPmhURL != undefined && dataProviderInfo.oaiPmhURL != ''">OAI-PMH: </dt>
|
||||
<dd *ngIf="dataProviderInfo.oaiPmhURL != undefined && dataProviderInfo.oaiPmhURL != ''">
|
||||
<a href="{{dataProviderInfo.oaiPmhURL}}" target="_blank">
|
||||
{{dataProviderInfo.oaiPmhURL}}
|
||||
</a>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<tabs [tabs]="dataProviderInfo.tabs"
|
||||
[publications]="dataProviderInfo.publications"
|
||||
[datasets]="dataProviderInfo.datasets"
|
||||
[statistics]="dataProviderInfo.statistics"
|
||||
[projects]="dataProviderInfo.projects"
|
||||
[datasources]="dataProviderInfo.datasources">
|
||||
</tabs>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-sm-3" *ngIf="dataProviderInfo != null">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item">
|
||||
Share - Bookmark
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,79 @@
|
|||
import {Component, ViewChild} from '@angular/core';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import {DataProviderService} from '../../services/dataProvider.service';
|
||||
import {DataProviderInfo} from '../../utils/entities/dataProviderInfo';
|
||||
import {ActivatedRoute} from '@angular/router';
|
||||
|
||||
// import {TabPagingComponent} from '../tabPaging.component.ts';
|
||||
// import {TabTableComponent} from '../tabTable.component.ts';
|
||||
// import {ShowTitleComponent} from '../showTitle.component.ts';
|
||||
// import {ShowAuthorsComponent} from '../showAuthors.component.ts';
|
||||
// import {ShowIdentifiersComponent} from '../showIdentifiers.component.ts';
|
||||
// import {ShowSubjectsComponent} from '../showSubjects.component.ts';
|
||||
|
||||
import{TabsComponent} from './tabs.component.ts';
|
||||
|
||||
@Component({
|
||||
selector: 'dataprovider',
|
||||
templateUrl: 'dataProvider.component.html',
|
||||
providers:[ DataProviderService],
|
||||
})
|
||||
|
||||
export class DataProviderComponent {
|
||||
constructor (private _publicationService: DataProviderService, private route: ActivatedRoute) {
|
||||
}
|
||||
ngOnInit() {
|
||||
this.sub = this.route.queryParams.subscribe(data => {
|
||||
this.datasourceId = data['datasourceId'];
|
||||
console.info("Datasource id is :"+this.datasourceId);
|
||||
if(this.datasourceId){
|
||||
this.getDataProviderInfo(this.datasourceId);
|
||||
}else{
|
||||
console.info("Datasource id not found");
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
ngOnDestroy() {
|
||||
this.sub.unsubscribe();
|
||||
}
|
||||
sub: any;
|
||||
datasourceId: string;
|
||||
private dataProviderInfo: DataProviderInfo;
|
||||
|
||||
private showAllReferences: boolean = false;
|
||||
private showAllRelResData: boolean = false;
|
||||
private showAllSimilPubl: boolean = false;
|
||||
private showAllBioentities: boolean = false;
|
||||
private showFundingDetails: boolean = false;
|
||||
|
||||
private bioentitiesNum: number = 0;
|
||||
|
||||
private result ;
|
||||
|
||||
public warningMessage = "";
|
||||
public errorMessage = "";
|
||||
|
||||
getDataProviderInfo(id:string) {
|
||||
this.warningMessage = '';
|
||||
this.errorMessage=""
|
||||
if(this.datasourceId==null || this.datasourceId==''){
|
||||
this.warningMessage="No valid datasource id";
|
||||
console.info("novalid");
|
||||
}else{
|
||||
this._publicationService.getPublicationInfo(this.datasourceId).subscribe(
|
||||
data => {
|
||||
this.dataProviderInfo = data;
|
||||
},
|
||||
err => {
|
||||
console.error(err)
|
||||
console.info("error");
|
||||
this.errorMessage = 'No dataProvider found';
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
import {Component, Input} from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'datasetsTab',
|
||||
template: `
|
||||
<div *ngIf="datasets == undefined" class = "alert alert-info " >
|
||||
There are no datasets
|
||||
</div>
|
||||
|
||||
<div *ngIf="datasets != undefined">
|
||||
<p>
|
||||
The results below are discovered through our pilot algorithms.
|
||||
<a href="mailto:">Let us know how we are doing!</a>
|
||||
</p>
|
||||
</div>
|
||||
`
|
||||
})
|
||||
|
||||
export class DatasetsTabComponent {
|
||||
|
||||
@Input() datasets;
|
||||
|
||||
constructor () {}
|
||||
|
||||
ngOnInit() {}
|
||||
|
||||
ngOnDestroy() {}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
import {Component, Input} from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'datasourcesTab',
|
||||
template: `
|
||||
<div *ngIf="datasources == undefined" class = "alert alert-info " >
|
||||
There are no datasources
|
||||
</div>
|
||||
|
||||
<div *ngIf="datasources != undefined">
|
||||
<p>
|
||||
The results below are discovered through our pilot algorithms.
|
||||
<a href="mailto:">Let us know how we are doing!</a>
|
||||
</p>
|
||||
</div>
|
||||
`
|
||||
})
|
||||
|
||||
export class DatasourcesTabComponent {
|
||||
|
||||
@Input() datasources;
|
||||
|
||||
constructor () {}
|
||||
|
||||
ngOnInit() {}
|
||||
|
||||
ngOnDestroy() {}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
import {Component, Input} from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'projectsTab',
|
||||
template: `
|
||||
<div *ngIf="projects == undefined" class = "alert alert-info " >
|
||||
There are no projects
|
||||
</div>
|
||||
|
||||
<div *ngIf="projects != undefined">
|
||||
<p>
|
||||
The results below are discovered through our pilot algorithms.
|
||||
<a href="mailto:">Let us know how we are doing!</a>
|
||||
</p>
|
||||
</div>
|
||||
`
|
||||
})
|
||||
|
||||
export class ProjectsTabComponent {
|
||||
|
||||
@Input() projects;
|
||||
|
||||
constructor () {}
|
||||
|
||||
ngOnInit() {}
|
||||
|
||||
ngOnDestroy() {}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
import {Component, Input} from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'publicationsTab',
|
||||
template: `
|
||||
<div *ngIf="publications == undefined" class = "alert alert-info " >
|
||||
There are no publications
|
||||
</div>
|
||||
|
||||
<div *ngIf="publications != undefined">
|
||||
<p>
|
||||
The results below are discovered through our pilot algorithms.
|
||||
<a href="mailto:">Let us know how we are doing!</a>
|
||||
</p>
|
||||
</div>
|
||||
`
|
||||
})
|
||||
|
||||
export class PublicationsTabComponent {
|
||||
|
||||
@Input() publications;
|
||||
|
||||
constructor () {}
|
||||
|
||||
ngOnInit() {}
|
||||
|
||||
ngOnDestroy() {}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
import {Component, Input} from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'statisticsTab',
|
||||
template: `
|
||||
<div *ngIf="statistics == undefined" class = "alert alert-info " >
|
||||
There are no statistics
|
||||
</div>
|
||||
|
||||
<div *ngIf="statistics != undefined">
|
||||
<p>
|
||||
The results below are discovered through our pilot algorithms.
|
||||
<a href="mailto:">Let us know how we are doing!</a>
|
||||
</p>
|
||||
</div>
|
||||
`
|
||||
})
|
||||
|
||||
export class StatisticsTabComponent {
|
||||
|
||||
@Input() statistics;
|
||||
|
||||
constructor () {}
|
||||
|
||||
ngOnInit() {}
|
||||
|
||||
ngOnDestroy() {}
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
import {Component, Input} from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'tabs',
|
||||
template: `
|
||||
<ul class="nav nav-tabs">
|
||||
<li *ngIf="tabs.length>0" class="active">
|
||||
<a data-toggle="tab" href="#{{tabs[0].content}}">
|
||||
{{tabs[0].name}}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li *ngFor="let tab of tabs; let i=index" role="presentation">
|
||||
<a *ngIf="i>0" data-toggle="tab" href="#{{tab.content}}">
|
||||
{{tab.name}}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
<div *ngIf="tabs.length>0" id="{{tabs[0].content}}" class="tab-pane fade in active panel-body">
|
||||
<publicationsTab *ngIf="tabs[0].content=='publicationsTab'"
|
||||
[publications]="publications">
|
||||
</publicationsTab>
|
||||
<datasetsTab *ngIf="tabs[0].content=='datasetsTab'"
|
||||
[datasets]="datasets">
|
||||
</datasetsTab>
|
||||
<statisticsTab *ngIf="tabs[0].content=='statisticsTab'"
|
||||
[statistics]="statistics">
|
||||
</statisticsTab>
|
||||
<projectsTab *ngIf="tabs[0].content=='projectsTab'"
|
||||
[projects]="projects">
|
||||
</projectsTab>
|
||||
<datasourcesTab *ngIf="tabs[0].content=='datasourcesTab'"
|
||||
[datasources]="datasources">
|
||||
</datasourcesTab>
|
||||
</div>
|
||||
|
||||
<div *ngFor="let tab of tabs; let i=index" id="{{tab.content}}" class="tab-pane fade panel-body">
|
||||
<publicationsTab *ngIf="i>0 && tab.content=='publicationsTab'"></publicationsTab>
|
||||
<datasetsTab *ngIf="i>0 && tab.content=='datasetsTab'"></datasetsTab>
|
||||
<statisticsTab *ngIf="i>0 && tab.content=='statisticsTab'">trgfrg</statisticsTab>
|
||||
<projectsTab *ngIf="i>0 && tab.content=='projectsTab'"></projectsTab>
|
||||
<datasourcesTab *ngIf="i>0 && tab.content=='datasourcesTab'"></datasourcesTab>
|
||||
</div>
|
||||
</div>
|
||||
`
|
||||
})
|
||||
|
||||
export class TabsComponent {
|
||||
|
||||
@Input() tabs: {"name": string, "content": string}[];
|
||||
@Input() publications;
|
||||
@Input() datasets;
|
||||
@Input() statistics;
|
||||
@Input() projects;
|
||||
@Input() datasources;
|
||||
|
||||
constructor () {}
|
||||
|
||||
ngOnInit() {}
|
||||
|
||||
ngOnDestroy() {}
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
import {Component, ViewChild} from '@angular/core';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import {DatasetService} from '../../services/dataset.service';
|
||||
import {DatasetInfo} from '../../entities/datasetInfo';
|
||||
import {DatasetInfo} from '../../utils/entities/datasetInfo';
|
||||
import {ActivatedRoute} from '@angular/router';
|
||||
import { OpenaireProperties} from '../../openaireProperties'
|
||||
import { OpenaireProperties} from '../../utils/properties/openaireProperties'
|
||||
import {InlineClaimContextComponent} from '../../claimPages/inlineClaimContext/inlineClaimContext.component';
|
||||
import {InlineClaimProjectComponent} from '../../claimPages/inlineClaimProject/inlineClaimProject.component';
|
||||
import {InlineClaimResultComponent} from '../../claimPages/inlineClaimResult/inlineClaimResult.component';
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
|
||||
import { NgModule} from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { FormsModule } from '@angular/forms';
|
||||
|
||||
import {UtilsModule} from '../utils/utils.module';
|
||||
import {ClaimModule} from '../claimPages/claim.module';
|
||||
import {ServicesModule} from '../services/services.module';
|
||||
|
||||
import {TabPagingComponent} from './tabPaging.component.ts';
|
||||
import {TabTableComponent} from './tabTable.component.ts';
|
||||
import {ShowTitleComponent} from './showTitle.component.ts';
|
||||
import {ShowAuthorsComponent} from './showAuthors.component.ts';
|
||||
import {ShowIdentifiersComponent} from './showIdentifiers.component.ts';
|
||||
import {ShowSubjectsComponent} from './showSubjects.component.ts';
|
||||
|
||||
import {PublicationsTabComponent} from './dataProvider/publicationsTab.component';
|
||||
import {DatasetsTabComponent} from './dataProvider/datasetsTab.component';
|
||||
import {StatisticsTabComponent} from './dataProvider/statisticsTab.component';
|
||||
import {ProjectsTabComponent} from './dataProvider/projectsTab.component';
|
||||
import {DatasourcesTabComponent} from './dataProvider/datasourcesTab.component';
|
||||
import {TabsComponent} from './dataProvider/tabs.component';
|
||||
|
||||
|
||||
import {DataProviderComponent} from './dataProvider/dataProvider.component';
|
||||
|
||||
import { PersonComponent } from './person/person.component';
|
||||
import { ProjectComponent } from './project/project.component';
|
||||
import { OrganizationComponent } from './organization/organization.component';
|
||||
import { DatasetComponent } from './dataset/dataset.component';
|
||||
|
||||
import { PublicationComponent } from './publication/publication.component';
|
||||
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
CommonModule, FormsModule,
|
||||
UtilsModule,
|
||||
ClaimModule,
|
||||
ServicesModule
|
||||
|
||||
],
|
||||
declarations: [
|
||||
TabPagingComponent, TabTableComponent, ShowTitleComponent, ShowAuthorsComponent, ShowAuthorsComponent, ShowIdentifiersComponent, ShowIdentifiersComponent,ShowSubjectsComponent,
|
||||
PublicationsTabComponent, DatasetsTabComponent, StatisticsTabComponent, ProjectsTabComponent, DatasourcesTabComponent, TabsComponent,
|
||||
DataProviderComponent, PersonComponent, ProjectComponent, PublicationComponent, OrganizationComponent, DatasetComponent,
|
||||
],
|
||||
providers:[
|
||||
],
|
||||
exports: [
|
||||
DataProviderComponent, PersonComponent, ProjectComponent, PublicationComponent, OrganizationComponent, DatasetComponent,
|
||||
// TabPagingComponent, TabTableComponent, ShowTitleComponent, ShowAuthorsComponent, ShowAuthorsComponent, ShowIdentifiersComponent, ShowIdentifiersComponent,ShowSubjectsComponent,
|
||||
]
|
||||
})
|
||||
export class LandingModule { }
|
|
@ -2,12 +2,12 @@
|
|||
<div class="container organization">
|
||||
<div class="container-header" >
|
||||
<div *ngIf="organizationInfo != null">
|
||||
<h3 *ngIf="organizationInfo.title != null">
|
||||
<a *ngIf="organizationInfo.title['url'] != undefined && organizationInfo.title['url'] != null"
|
||||
<h3 *ngIf="organizationInfo.title != undefined">
|
||||
<a *ngIf="organizationInfo.title['url'] != ''"
|
||||
href="{{organizationInfo.title['url']}}" target="_blank">
|
||||
{{organizationInfo.title['name']}}
|
||||
</a>
|
||||
<p *ngIf="organizationInfo.title['url'] == undefined || organizationInfo.title['url'] == null">
|
||||
<p *ngIf="organizationInfo.title['url'] == ''">
|
||||
{{organizationInfo.title['name']}}
|
||||
</p>
|
||||
</h3>
|
||||
|
@ -104,38 +104,7 @@
|
|||
</div>
|
||||
|
||||
<div id="dataProvidersTab" class="tab-pane fade panel-body">
|
||||
<div *ngIf="organizationInfo.dataProviders == undefined" class = "alert alert-info ">
|
||||
There are no data providers
|
||||
</div>
|
||||
<div *ngIf="organizationInfo.dataProviders != undefined">
|
||||
<p>
|
||||
The results below are discovered through our pilot algorithms.
|
||||
<a href="mailto:">Let us know how we are doing!</a>
|
||||
</p>
|
||||
|
||||
<div role="separator" class="divider" *ngFor="let item of organizationInfo.dataProviders">
|
||||
<p *ngIf="item['url'] != undefined && item['url']">
|
||||
<a href="{{item['url']}}" target="_blank">
|
||||
{{item['name']}}
|
||||
</a>
|
||||
</p>
|
||||
<p *ngIf="item['url'] == undefined || item['url'] == ''">
|
||||
{{item['name']}}
|
||||
</p>
|
||||
|
||||
<p *ngIf="item['type'] != undefined && item['type'] != ''">
|
||||
Type: {{item['type']}}
|
||||
</p>
|
||||
|
||||
<p *ngIf="item['websiteUrl'] != null && item['websiteUrl'] != ''">
|
||||
Website URL:
|
||||
<a href="{{item['websiteUrl']}}" target="_blank">
|
||||
{{item['websiteUrl']}}
|
||||
</a>
|
||||
</p>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
<showDataProviders [dataProviders]="organizationInfo.dataProviders"></showDataProviders>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -2,7 +2,7 @@ import {Component} from '@angular/core';
|
|||
import {Observable} from 'rxjs/Observable';
|
||||
import {ActivatedRoute} from '@angular/router';
|
||||
import {OrganizationService} from '../../services/organization.service';
|
||||
import {OrganizationInfo} from '../../entities/organizationInfo';
|
||||
import {OrganizationInfo} from '../../utils/entities/organizationInfo';
|
||||
|
||||
@Component({
|
||||
selector: 'organization',
|
||||
|
|
|
@ -2,7 +2,7 @@ import {Component} from '@angular/core';
|
|||
import {Observable} from 'rxjs/Observable';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import {PersonService} from '../../services/person.service';
|
||||
import { PersonInfo } from '../../entities/personInfo';
|
||||
import { PersonInfo } from '../../utils/entities/personInfo';
|
||||
@Component({
|
||||
selector: 'person',
|
||||
templateUrl: 'person.component.html',
|
||||
|
|
|
@ -2,7 +2,7 @@ import {Component, ViewChild} from '@angular/core';
|
|||
import {Observable} from 'rxjs/Observable';
|
||||
import {ActivatedRoute} from '@angular/router';
|
||||
import {ProjectService} from '../../services/project.service';
|
||||
import {ProjectInfo} from '../../entities/projectInfo';
|
||||
import {ProjectInfo} from '../../utils/entities/projectInfo';
|
||||
import {InlineClaimResultComponent} from '../../claimPages/inlineClaimResult/inlineClaimResult.component';
|
||||
|
||||
@Component({
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
import {Component, ViewChild} from '@angular/core';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import {PublicationService} from '../../services/publication.service';
|
||||
import {PublicationInfo} from '../../entities/publicationInfo';
|
||||
import {PublicationInfo} from '../../utils/entities/publicationInfo';
|
||||
import {ActivatedRoute} from '@angular/router';
|
||||
import {OpenaireProperties} from '../../openaireProperties';
|
||||
import {OpenaireProperties} from '../../utils/properties/openaireProperties';
|
||||
import {InlineClaimContextComponent} from '../../claimPages/inlineClaimContext/inlineClaimContext.component';
|
||||
import {InlineClaimProjectComponent} from '../../claimPages/inlineClaimProject/inlineClaimProject.component';
|
||||
import {InlineClaimResultComponent} from '../../claimPages/inlineClaimResult/inlineClaimResult.component';
|
||||
|
|
Binary file not shown.
|
@ -2,9 +2,9 @@ import {Component, Input, Output, EventEmitter} from '@angular/core';
|
|||
import {Observable} from 'rxjs/Observable';
|
||||
import {ActivatedRoute, Router} from '@angular/router';
|
||||
import {SearchCrossrefService} from '../services/searchCrossref.service';
|
||||
import {Publication} from '../entities/publication';
|
||||
import {PagingFormatter} from '../common/pagingFormatter.component';
|
||||
import {PublicationTitleFormatter} from '../common/publicationTitleFormatter.component';
|
||||
import {Publication} from '../utils/entities/publication';
|
||||
import {PagingFormatter} from '../utils/pagingFormatter.component';
|
||||
import {PublicationTitleFormatter} from '../utils/publicationTitleFormatter.component';
|
||||
|
||||
|
||||
@Component({
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import {Component, Input, ViewChild} from '@angular/core';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import { Router, ActivatedRoute} from '@angular/router';
|
||||
import {Filter, Value} from './common/searchHelperClasses.class';
|
||||
import {Filter, Value} from './searchUtils/searchHelperClasses.class';
|
||||
import {SearchPublicationsService} from '../services/searchPublications.service';
|
||||
import {SearchResult} from '../entities/searchResult';
|
||||
import {OpenaireProperties} from '../openaireProperties';
|
||||
import {SearchResult} from '../utils/entities/searchResult';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
||||
|
||||
|
||||
@Component({
|
||||
|
|
|
@ -2,21 +2,22 @@ import { NgModule} from '@angular/core';
|
|||
import { CommonModule } from '@angular/common';
|
||||
import { FormsModule } from '@angular/forms';
|
||||
|
||||
import {SharedComponentsModule} from '../common/sharedComponents.module';
|
||||
import {UtilsModule} from '../utils/utils.module';
|
||||
import {ServicesModule} from '../services/services.module';
|
||||
|
||||
|
||||
import {Filter, Value} from './common/searchHelperClasses.class';
|
||||
import {SearchResult} from '../entities/searchResult';
|
||||
import {Filter, Value} from './searchUtils/searchHelperClasses.class';
|
||||
import {SearchResult} from '../utils/entities/searchResult';
|
||||
|
||||
|
||||
import {AdvancedSearchPageComponent} from './common/advancedSearchPage.component';
|
||||
import {AdvancedSearchPageComponent} from './searchUtils/advancedSearchPage.component';
|
||||
import {SearchAllComponent} from '../searchAll/searchAll.component';//helpers
|
||||
import {SearchPageComponent} from './common/searchPage.component';
|
||||
import {SearchFormComponent} from './common/searchForm.component';
|
||||
import {SearchPageComponent} from './searchUtils/searchPage.component';
|
||||
import {SearchFormComponent} from './searchUtils/searchForm.component';
|
||||
|
||||
import {SearchResultComponent} from './common/searchResult.component';
|
||||
import {SearchFilterComponent} from './common/searchFilter.component';
|
||||
import {AdvancedSearchFormComponent} from './common/advancedSearchForm.component';
|
||||
import {SearchResultComponent} from './searchUtils/searchResult.component';
|
||||
import {SearchFilterComponent} from './searchUtils/searchFilter.component';
|
||||
import {AdvancedSearchFormComponent} from './searchUtils/advancedSearchForm.component';
|
||||
import { SearchPublicationsComponent } from './searchPublications.component';
|
||||
import { AdvancedSearchPublicationsComponent } from './advancedSearchPublications.component';
|
||||
|
||||
|
@ -25,7 +26,9 @@ import { AdvancedSearchPublicationsComponent } from './advancedSearchPublication
|
|||
@NgModule({
|
||||
imports: [
|
||||
CommonModule, FormsModule,
|
||||
SharedComponentsModule
|
||||
UtilsModule,
|
||||
ServicesModule,
|
||||
|
||||
],
|
||||
declarations: [
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import {Component, Input, ViewChild} from '@angular/core';
|
||||
import { ActivatedRoute} from '@angular/router';
|
||||
|
||||
import { Filter, Value} from './common/searchHelperClasses.class';
|
||||
import { Filter, Value} from './searchUtils/searchHelperClasses.class';
|
||||
|
||||
import {SearchPublicationsService} from '../services/searchPublications.service';
|
||||
import {SearchResult} from '../entities/searchResult';
|
||||
import {OpenaireProperties} from '../openaireProperties';
|
||||
import {SearchResult} from '../utils/entities/searchResult';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
||||
|
||||
@Component({
|
||||
selector: 'search-publications',
|
||||
|
|
|
@ -2,7 +2,7 @@ import {Component, Input, ViewChild, Output, EventEmitter} from '@angular/core';
|
|||
import {Observable} from 'rxjs/Observable';
|
||||
import {Location} from '@angular/common';
|
||||
import { Filter, Value} from './searchHelperClasses.class';
|
||||
import {SearchResult} from '../../entities/searchResult';
|
||||
import {SearchResult} from '../../utils/entities/searchResult';
|
||||
|
||||
@Component({
|
||||
selector: 'advanced-search-page',
|
|
@ -3,7 +3,7 @@ import {Observable} from 'rxjs/Observable';
|
|||
import {Location} from '@angular/common';
|
||||
|
||||
import { Filter, Value} from './searchHelperClasses.class';
|
||||
import {SearchResult} from '../../entities/searchResult';
|
||||
import {SearchResult} from '../../utils/entities/searchResult';
|
||||
|
||||
@Component({
|
||||
selector: 'search-page',
|
|
@ -1,5 +1,5 @@
|
|||
import {Component, Input} from '@angular/core';
|
||||
import {SearchResult} from '../../entities/searchResult';
|
||||
import {SearchResult} from '../../utils/entities/searchResult';
|
||||
|
||||
@Component({
|
||||
selector: 'search-result',
|
|
@ -2,8 +2,8 @@ import {Injectable} from '@angular/core';
|
|||
import {Jsonp, URLSearchParams,ResponseOptions, RequestOptions, Headers} from '@angular/http';
|
||||
import {Http, Response} from '@angular/http';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import {Claim} from '../entities/claim';
|
||||
import {OpenaireProperties} from '../openaireProperties';
|
||||
import {Claim} from '../utils/entities/claim';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
||||
|
||||
@Injectable()
|
||||
export class ClaimsService {
|
||||
|
|
|
@ -2,8 +2,8 @@ import {Injectable} from '@angular/core';
|
|||
import {Jsonp, URLSearchParams,ResponseOptions} from '@angular/http';
|
||||
import {Http, Response} from '@angular/http';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import {Claim} from '../entities/claim';
|
||||
import {OpenaireProperties} from '../openaireProperties';
|
||||
import {Claim} from '../utils/entities/claim';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
||||
|
||||
@Injectable()
|
||||
export class ContextsService {
|
||||
|
|
|
@ -0,0 +1,164 @@
|
|||
import {Injectable} from '@angular/core';
|
||||
import {Http, Response} from '@angular/http';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import {DataProviderInfo} from '../utils/entities/dataProviderInfo';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
||||
|
||||
@Injectable()
|
||||
export class DataProviderService {
|
||||
|
||||
constructor(private http: Http) {}
|
||||
|
||||
dataProviderInfo: DataProviderInfo;
|
||||
|
||||
getPublicationInfo (id: string):any {
|
||||
console.info("getDataProviderInfo in service");
|
||||
let url = OpenaireProperties.getSearchAPIURL() + 'datasources/' +id;
|
||||
|
||||
return this.http.get(url)
|
||||
.map(res => <any> res.json())
|
||||
.do(res => console.info(res['result']['metadata']['oaf:entity']['oaf:datasource']))
|
||||
.map(res => res['result']['metadata']['oaf:entity'])
|
||||
.map(res => [res['oaf:datasource'],
|
||||
res['oaf:datasource']['datasourcetype'],
|
||||
res['oaf:datasource']['openairecompatibility'],
|
||||
res['oaf:datasource']['accessinfopackage'],
|
||||
res['oaf:datasource']['rels']['rel']
|
||||
])
|
||||
.map(res => this.parseDataProviderInfo(res));
|
||||
|
||||
}
|
||||
|
||||
private handleError (error: Response) {
|
||||
// in a real world app, we may send the error to some remote logging infrastructure
|
||||
// instead of just logging it to the console
|
||||
console.error(error);
|
||||
return Observable.throw(error || 'Server error');
|
||||
}
|
||||
|
||||
parseDataProviderInfo (data: any):any {
|
||||
this.dataProviderInfo = new DataProviderInfo();
|
||||
|
||||
if(data[0] != null) {
|
||||
this.dataProviderInfo.title = {"name": data[0].officialname, "url": data[0].websiteurl};
|
||||
}
|
||||
|
||||
if(data[1] != null) {
|
||||
this.dataProviderInfo.type = data[1].classname;
|
||||
|
||||
if(this.dataProviderInfo.tabs == undefined) {
|
||||
this.dataProviderInfo.tabs = new Array<{"name": string, "content": string}>();
|
||||
}
|
||||
|
||||
console.info(data[1].classid);
|
||||
if(this.dataProviderInfo.tabsInTypes.publicationsTab.has(data[1].classid)) {
|
||||
this.dataProviderInfo.tabs.push({"name": "Publications", "content": "publicationsTab"});
|
||||
}
|
||||
if(this.dataProviderInfo.tabsInTypes.datasetsTab.has(data[1].classid)) {
|
||||
this.dataProviderInfo.tabs.push({"name": "Datasets", "content": "datasetsTab"});
|
||||
}
|
||||
if(this.dataProviderInfo.tabsInTypes.statisticsTab.has(data[1].classid)) {
|
||||
this.dataProviderInfo.tabs.push({"name": "Statistics", "content": "statisticsTab"});
|
||||
}
|
||||
if(this.dataProviderInfo.tabsInTypes.projectsTab.has(data[1].classid)) {
|
||||
this.dataProviderInfo.tabs.push({"name": "Projects", "content": "projectsTab"});
|
||||
}
|
||||
if(this.dataProviderInfo.tabsInTypes.datasourcesTab.has(data[1].classid)) {
|
||||
this.dataProviderInfo.tabs.push({"name": "Datasources", "content": "datasourcesTab"});
|
||||
}
|
||||
/*
|
||||
if(this.dataProviderInfo.type == 'Aggregator of Data Repositories') {
|
||||
this.dataProviderInfo.tabs.push({"name": "Datasets", "content": "datasetsTab"});
|
||||
this.dataProviderInfo.tabs.push({"name": "Statistics", "content": "statisticsTab"});
|
||||
} else if(this.dataProviderInfo.type == 'Aggregator of Institutional Publication Repositories') {
|
||||
this.dataProviderInfo.tabs.push({"name": "Publications", "content": "publicationsTab"});
|
||||
this.dataProviderInfo.tabs.push({"name": "Statistics", "content": "statisticsTab"});
|
||||
} else if(this.dataProviderInfo.type == 'Aggregator of Publication Repositories') {
|
||||
this.dataProviderInfo.tabs.push({"name": "Publications", "content": "publicationsTab"});
|
||||
this.dataProviderInfo.tabs.push({"name": "Statistics", "content": "statisticsTab"});
|
||||
} else if(this.dataProviderInfo.type == 'Aggregator/Publisher of Journals') {
|
||||
this.dataProviderInfo.tabs.push({"name": "Publications", "content": "publicationsTab"});
|
||||
this.dataProviderInfo.tabs.push({"name": "Statistics", "content": "statisticsTab"});
|
||||
} else if(this.dataProviderInfo.type == 'CRIS System') {
|
||||
this.dataProviderInfo.tabs.push({"name": "Publications", "content": "publicationsTab"});
|
||||
this.dataProviderInfo.tabs.push({"name": "Datasets", "content": "datasetsTab"});
|
||||
this.dataProviderInfo.tabs.push({"name": "Statistics", "content": "statisticsTab"});
|
||||
} else if(this.dataProviderInfo.type == 'Data Repository') {
|
||||
this.dataProviderInfo.tabs.push({"name": "Datasets", "content": "datasetsTab"});
|
||||
this.dataProviderInfo.tabs.push({"name": "Statistics", "content": "statisticsTab"});
|
||||
} else if(this.dataProviderInfo.type == 'Registry of Data Providers') {
|
||||
this.dataProviderInfo.tabs.push({"name": "Datasources", "content": "datasourcesTab"});
|
||||
} else if(this.dataProviderInfo.type == 'Registry of Projects') {
|
||||
this.dataProviderInfo.tabs.push({"name": "Projects", "content": "projectsTab"});
|
||||
} else if(this.dataProviderInfo.type == 'Information Space') {
|
||||
this.dataProviderInfo.tabs.push({"name": "Publications", "content": "publicationsTab"});
|
||||
} else if(this.dataProviderInfo.type == 'Institutional Publication Repository') {
|
||||
this.dataProviderInfo.tabs.push({"name": "Publications", "content": "publicationsTab"});
|
||||
this.dataProviderInfo.tabs.push({"name": "Statistics", "content": "statisticsTab"});
|
||||
} else if(this.dataProviderInfo.type == 'Journal Platform') {
|
||||
this.dataProviderInfo.tabs.push({"name": "Publications", "content": "publicationsTab"});
|
||||
this.dataProviderInfo.tabs.push({"name": "Statistics", "content": "statisticsTab"});
|
||||
} else if(this.dataProviderInfo.type == 'Mock Publication Repository') {
|
||||
|
||||
} else if(this.dataProviderInfo.type == 'Other Source') {
|
||||
//openaire____::fb98a192f6a055ba495ef414c330834b
|
||||
} else if(this.dataProviderInfo.type == 'Publication Repository') {
|
||||
this.dataProviderInfo.tabs.push({"name": "Publications", "content": "publicationsTab"});
|
||||
this.dataProviderInfo.tabs.push({"name": "Statistics", "content": "statisticsTab"});
|
||||
} else if(this.dataProviderInfo.type == 'Scholarly Communication Infrastructure') {
|
||||
this.dataProviderInfo.tabs.push({"name": "Publications", "content": "publicationsTab"});
|
||||
} else if(this.dataProviderInfo.type == 'Thematic Publication Repository') {
|
||||
this.dataProviderInfo.tabs.push({"name": "Publications", "content": "publicationsTab"});
|
||||
this.dataProviderInfo.tabs.push({"name": "Statistics", "content": "statisticsTab"});
|
||||
} else if(this.dataProviderInfo.type == 'Publication Catalogue') {
|
||||
this.dataProviderInfo.tabs.push({"name": "Publications", "content": "publicationsTab"});
|
||||
this.dataProviderInfo.tabs.push({"name": "Statistics", "content": "statisticsTab"});
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
if(data[2] != null) {
|
||||
this.dataProviderInfo.compatibility = data[2].classname;
|
||||
}
|
||||
|
||||
if(data[3] != null) {
|
||||
if(Array.isArray(data[3])) {
|
||||
this.dataProviderInfo.oaiPmhURL = data[3][0];
|
||||
} else {
|
||||
this.dataProviderInfo.oaiPmhURL = data[3];
|
||||
}
|
||||
}
|
||||
|
||||
if(data[4] != null) {
|
||||
let mydata;
|
||||
let counter = 0;
|
||||
let length = data[4].length!=undefined ? data[4].length : 1;
|
||||
|
||||
for(let i=0; i<length; i++) {
|
||||
mydata = length > 1 ? data[4][i] : data[4];
|
||||
if(mydata.hasOwnProperty("to")) {
|
||||
if(mydata['to'].class == "provides" && mydata['to'].type == "organization") {
|
||||
if(this.dataProviderInfo.organizations == undefined) {
|
||||
this.dataProviderInfo.organizations = new Array<{"name": string, "url": string}>();
|
||||
}
|
||||
|
||||
this.dataProviderInfo.organizations[counter] = {"name": "", "url": ""};
|
||||
this.dataProviderInfo.organizations[counter]['name'] = mydata.legalname;
|
||||
this.dataProviderInfo.organizations[counter]['url'] = mydata.websiteUrl;
|
||||
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//this.printPublicationInfo();
|
||||
return this.dataProviderInfo;
|
||||
|
||||
}
|
||||
|
||||
printDataProviderInfo() {
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -1,8 +1,8 @@
|
|||
import {Injectable} from '@angular/core';
|
||||
import {Http, Response} from '@angular/http';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import {DatasetInfo} from '../entities/datasetInfo';
|
||||
import {OpenaireProperties} from '../openaireProperties';
|
||||
import {DatasetInfo} from '../utils/entities/datasetInfo';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
||||
|
||||
@Injectable()
|
||||
export class DatasetService {
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
import {Injectable} from '@angular/core';
|
||||
import {Http, Response} from '@angular/http';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import {OpenaireProperties} from '../openaireProperties';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
||||
|
||||
@Injectable()
|
||||
export class OpenaireProjectsService {
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import {Injectable} from '@angular/core';
|
||||
import {Http, Response} from '@angular/http';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import {OrganizationInfo} from '../entities/organizationInfo';
|
||||
import {OpenaireProperties} from '../openaireProperties';
|
||||
import {OrganizationInfo} from '../utils/entities/organizationInfo';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
||||
|
||||
@Injectable()
|
||||
export class OrganizationService {
|
||||
|
@ -18,7 +18,7 @@ export class OrganizationService {
|
|||
|
||||
return this.http.get(url)
|
||||
.map(res => <any> res.json())
|
||||
//.do(res => console.info(res['result']['metadata']['oaf:entity']))
|
||||
.do(res => console.info(res['result']['metadata']['oaf:entity']['oaf:organization']))
|
||||
.map(res => res['result']['metadata']['oaf:entity']['oaf:organization'])
|
||||
.map(res => [res, res['rels']['rel']])
|
||||
//.do(res => console.info(res))
|
||||
|
@ -43,14 +43,21 @@ export class OrganizationService {
|
|||
mydata = data[0];
|
||||
if(mydata.hasOwnProperty("legalshortname")) {
|
||||
if(mydata.hasOwnProperty("websiteurl")) {
|
||||
this.organizationInfo.title = {"name": mydata.legalshortname, "url": data.websiteurl};
|
||||
this.organizationInfo.title = {"name": mydata.legalshortname, "url": mydata.websiteurl};
|
||||
} else {
|
||||
this.organizationInfo.title = {"name": mydata.legalshortname, "url": ""};
|
||||
this.organizationInfo.title = {"name": mydata.legalshortname, "url": ''};
|
||||
}
|
||||
}
|
||||
|
||||
if(mydata.hasOwnProperty("legalname")) {
|
||||
this.organizationInfo.name = mydata.legalname;
|
||||
if(this.organizationInfo.title == undefined) {
|
||||
if(mydata.hasOwnProperty("websiteurl")) {
|
||||
this.organizationInfo.title = {"name": mydata.legalname, "url": mydata.websiteurl};
|
||||
} else {
|
||||
this.organizationInfo.title = {"name": mydata.legalname, "url": ''};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(mydata.hasOwnProperty("country")) {
|
||||
|
@ -115,13 +122,13 @@ export class OrganizationService {
|
|||
//this.organizationInfo.projects.get(mydata['funding']['funder'].name)[counter]['endDate'] =
|
||||
}
|
||||
}
|
||||
} else if(mydata['to'].class == "isProvidedBy") {
|
||||
} /*else if(mydata['to'].class == "isProvidedBy") {
|
||||
if(this.organizationInfo.dataProviders == undefined) {
|
||||
this.organizationInfo.dataProviders = new Array<{ "name": string, "url": string, "type": string, "websiteUrl": string }>();
|
||||
this.organizationInfo.dataProviders = new Array<{ "name": string, "url": string, "type": string, "websiteUrl": string , "organizations": {"name": string, "url": string}[]}>();
|
||||
}
|
||||
|
||||
counter = this.organizationInfo.dataProviders.length;
|
||||
this.organizationInfo.dataProviders[counter] = { "name": "", "url": "", "type": "", "websiteUrl": "" }
|
||||
this.organizationInfo.dataProviders[counter] = { "name": "", "url": "", "type": "", "websiteUrl": "", "organizations": [] }
|
||||
|
||||
let url="";
|
||||
if(mydata['to'].content != null && mydata['to'].content != "") {
|
||||
|
@ -133,7 +140,7 @@ export class OrganizationService {
|
|||
this.organizationInfo.dataProviders[counter]['type'] = mydata['datasourcetype'].classname;
|
||||
}
|
||||
this.organizationInfo.dataProviders[counter]['websiteUrl'] = mydata.websiteurl;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import {Injectable} from '@angular/core';
|
||||
import {Http, Response} from '@angular/http';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import {PersonInfo} from '../entities/personInfo';
|
||||
import {OpenaireProperties} from '../openaireProperties'
|
||||
import {PersonInfo} from '../utils/entities/personInfo';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties'
|
||||
|
||||
@Injectable()
|
||||
export class PersonService {
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import {Injectable} from '@angular/core';
|
||||
import {Http, Response} from '@angular/http';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import {ProjectInfo} from '../entities/projectInfo';
|
||||
import {OpenaireProperties} from '../openaireProperties';
|
||||
import {ProjectInfo} from '../utils/entities/projectInfo';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
||||
|
||||
@Injectable()
|
||||
export class ProjectService {
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import {Injectable} from '@angular/core';
|
||||
import {Http, Response} from '@angular/http';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import {PublicationInfo} from '../entities/publicationInfo';
|
||||
import {OpenaireProperties} from '../openaireProperties';
|
||||
import {PublicationInfo} from '../utils/entities/publicationInfo';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
||||
|
||||
@Injectable()
|
||||
export class PublicationService {
|
||||
|
|
|
@ -2,8 +2,8 @@ import {Injectable} from '@angular/core';
|
|||
// import {Http, Response, Headers} from '@angular/http';
|
||||
import {Http, Response} from '@angular/http';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
// import {Publication} from '../entities/publication';
|
||||
import {OpenaireProperties} from '../openaireProperties';
|
||||
// import {Publication} from '../utils/entities/publication';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
||||
|
||||
@Injectable()
|
||||
export class SearchCrossrefService {
|
||||
|
|
|
@ -2,7 +2,7 @@ import {Injectable} from '@angular/core';
|
|||
import {Jsonp, URLSearchParams} from '@angular/http';
|
||||
import {Http, Response} from '@angular/http';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import {OpenaireProperties} from '../openaireProperties';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
||||
|
||||
@Injectable()
|
||||
export class SearchDataciteService {
|
||||
|
|
|
@ -3,7 +3,7 @@ import {Jsonp, URLSearchParams} from '@angular/http';
|
|||
import {Http, Response} from '@angular/http';
|
||||
import { Headers, RequestOptions } from '@angular/http';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import {OpenaireProperties} from '../openaireProperties';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
||||
|
||||
@Injectable()
|
||||
export class SearchOrcidService {
|
||||
|
|
|
@ -3,7 +3,7 @@ import {Injectable} from '@angular/core';
|
|||
import {Http, Response} from '@angular/http';
|
||||
// import {Headers, RequestOptions } from '@angular/http';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
import {OpenaireProperties} from '../openaireProperties';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
import { NgModule} from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { FormsModule } from '@angular/forms';
|
||||
|
||||
|
||||
//Services
|
||||
import { ContextsService} from './contexts.service';
|
||||
import { DatasetService} from './dataset.service';
|
||||
import { OpenaireProjectsService } from './openaireProjects.service';
|
||||
import { OrganizationService} from './organization.service';
|
||||
import { PersonService} from './person.service';
|
||||
import { ProjectService} from './project.service';
|
||||
import { PublicationService} from './publication.service';
|
||||
import { SearchCrossrefService } from './searchCrossref.service';
|
||||
import { SearchDataciteService } from './searchDatacite.service';
|
||||
import { SearchOrcidService } from './searchOrcid.service';
|
||||
import {SearchPublicationsService} from './searchPublications.service';
|
||||
import {DataProviderService} from './dataProvider.service';
|
||||
|
||||
|
||||
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
CommonModule, FormsModule,
|
||||
],
|
||||
declarations: [
|
||||
],
|
||||
providers:[
|
||||
ContextsService, DatasetService, OpenaireProjectsService,OrganizationService,
|
||||
PersonService, ProjectService, PublicationService, SearchCrossrefService,
|
||||
SearchCrossrefService, SearchDataciteService, SearchOrcidService,
|
||||
SearchPublicationsService, DataProviderService
|
||||
|
||||
],
|
||||
exports: [
|
||||
]
|
||||
})
|
||||
export class ServicesModule { }
|
|
@ -0,0 +1,49 @@
|
|||
export class DataProviderInfo {
|
||||
title: { "name": string, "url": string };
|
||||
type: string;
|
||||
compatibility: string;
|
||||
oaiPmhURL: string;
|
||||
tabs: {"name": string, "content": string}[];
|
||||
tabsInTypes = {
|
||||
"publicationsTab": new Set<string>(
|
||||
[ "aggregator::pubsrepository::institutional",
|
||||
"aggregator::pubsrepository::unknown",
|
||||
"aggregator::pubsrepository::journals",
|
||||
"crissystem",
|
||||
"infospace",
|
||||
"pubsrepository::institutional",
|
||||
"pubsrepository::journal",
|
||||
"pubsrepository::unknown",
|
||||
"scholarcomminfra",
|
||||
"pubsrepository::thematic",
|
||||
"pubscatalogue::unknown"
|
||||
]),
|
||||
"datasetsTab": new Set<string>(
|
||||
[ "aggregator::datarepository",
|
||||
"crissystem",
|
||||
"datarepository::unknown"
|
||||
]),
|
||||
"statisticsTab": new Set<string>(
|
||||
[ "aggregator::datarepository",
|
||||
"aggregator::pubsrepository::institutional",
|
||||
"aggregator::pubsrepository::unknown",
|
||||
"aggregator::pubsrepository::journals",
|
||||
"crissystem",
|
||||
"datarepository::unknown",
|
||||
"pubsrepository::institutional",
|
||||
"pubsrepository::journal",
|
||||
"pubsrepository::unknown",
|
||||
"pubsrepository::thematic",
|
||||
"pubscatalogue::unknown"
|
||||
]),
|
||||
"projectsTab": new Set<string>(["entityregistry::projects"]),
|
||||
"datasourcesTab": new Set<string>(["entityregistry::repositories"])
|
||||
};
|
||||
|
||||
organizations: {"name": string, "url": string}[];
|
||||
publications: any;
|
||||
datasets: any;
|
||||
statistics: any;
|
||||
projects: any;
|
||||
datasources: any;
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
import { NgModule } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { FormsModule } from '@angular/forms';
|
||||
|
||||
|
||||
//Entities
|
||||
import {DatasetInfo} from './datasetInfo';
|
||||
import {OrganizationInfo} from './organizationInfo';
|
||||
import {PersonInfo} from './personInfo';
|
||||
import {ProjectInfo} from './projectInfo';
|
||||
import {Publication} from './publication';
|
||||
import {PublicationInfo} from './publicationInfo';
|
||||
import {SearchResult} from './searchResult';
|
||||
import { DataProviderInfo } from './dataProviderInfo';
|
||||
|
||||
@NgModule({
|
||||
imports: [ CommonModule, FormsModule ],
|
||||
declarations: [
|
||||
|
||||
],
|
||||
exports: [
|
||||
]
|
||||
})
|
||||
export class EntitiesModule { }
|
|
@ -7,5 +7,6 @@ export class OrganizationInfo {
|
|||
"acronym": string, "funder": string, "fundingStream": string,
|
||||
"fundingLevel1": string, "fundingLevel2": string,
|
||||
"sc39": string, "startDate": string, "endDate": string }[]>;
|
||||
dataProviders: { "name": string, "url": string, "type": string, "websiteUrl": string }[];
|
||||
dataProviders: { "name": string, "url": string, "type": string, "websiteUrl": string,
|
||||
"organizations": {"name": string, "url": string}[]}[];
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
import {Component, Input} from '@angular/core';
|
||||
import {OpenaireProperties} from '../openaireProperties';
|
||||
import {OpenaireProperties} from '../utils/properties/openaireProperties';
|
||||
|
||||
//Usage Example "<project-title [project]="X" > </project-title>"
|
||||
|
|
@ -4,7 +4,7 @@ export class OpenaireProperties {
|
|||
private static searchLinkToPublication = "publication?articleId=";
|
||||
private static searchLinkToProject = "project?projectId=";
|
||||
private static searchLinkToPerson = "person?personId=";
|
||||
private static searchLinkToDataProvider = "https://beta.openaire.eu/search/dataprovider?datasourceId=";
|
||||
private static searchLinkToDataProvider = "dataprovider?datasourceId=";
|
||||
private static searchLinkToDataset = "dataset?datasetId=";
|
||||
private static searchLinkToOrganization = "organization?organizationId=";
|
||||
|
||||
|
@ -32,6 +32,9 @@ export class OpenaireProperties {
|
|||
private static cordisURL = "http://cordis.europa.eu/projects/";
|
||||
private static pmcURL = "http://europepmc.org/articles/";
|
||||
|
||||
// Zenodo's url
|
||||
private static zenodo = "https://zenodo.org/";
|
||||
|
||||
|
||||
//landing Pages' getters
|
||||
public static getsearchLinkToPublication():string{
|
||||
|
@ -86,4 +89,9 @@ export class OpenaireProperties {
|
|||
public static getPmcURL():string{
|
||||
return this.pmcURL;
|
||||
}
|
||||
|
||||
// Zenodo's getter
|
||||
public static getZenodoURL():string{
|
||||
return this.zenodo;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
import {Component, Input} from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'showDataProviders',
|
||||
template: `
|
||||
|
||||
<div *ngIf="dataProviders == undefined" class = "alert alert-info ">
|
||||
There are no data providers
|
||||
</div>
|
||||
<div *ngIf="dataProviders != undefined">
|
||||
<p>
|
||||
The results below are discovered through our pilot algorithms.
|
||||
<a href="mailto:">Let us know how we are doing!</a>
|
||||
</p>
|
||||
|
||||
<div role="separator" class="divider" *ngFor="let item of dataProviders">
|
||||
<p *ngIf="item['url'] != undefined && item['url']">
|
||||
<a href="{{item['url']}}" target="_blank">
|
||||
{{item['name']}}
|
||||
</a>
|
||||
</p>
|
||||
<p *ngIf="item['url'] == undefined || item['url'] == ''">
|
||||
{{item['name']}}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<span *ngFor="let item of dataProviders.organizations">
|
||||
<a *ngIf="item['url']!=''" href="{{item['url']}}" target="_blank">
|
||||
{{item['name']}}
|
||||
</a>
|
||||
<p *ngIf="item['url']==''">
|
||||
{{item['name']}}
|
||||
</p>
|
||||
</span>
|
||||
</p>
|
||||
|
||||
|
||||
<p *ngIf="item['type'] != undefined && item['type'] != ''">
|
||||
Type: {{item['type']}}
|
||||
</p>
|
||||
|
||||
<p *ngIf="item['websiteUrl'] != null && item['websiteUrl'] != ''">
|
||||
Website URL:
|
||||
<a href="{{item['websiteUrl']}}" target="_blank">
|
||||
{{item['websiteUrl']}}
|
||||
</a>
|
||||
</p>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
`
|
||||
})
|
||||
|
||||
export class ShowDataProvidersComponent {
|
||||
@Input() dataProviders: { "name": string, "url": string, "type": string, "websiteUrl": string,
|
||||
"organizations": {"name": string, "url": string}[]}[];
|
||||
|
||||
constructor () {
|
||||
console.info('showDataProviders constructor');
|
||||
}
|
||||
|
||||
ngOnInit() {}
|
||||
}
|
|
@ -9,12 +9,13 @@ import {ProjectTitleFormatter} from './projectTitleFormatter.component';
|
|||
import {PublicationTitleFormatter} from './publicationTitleFormatter.component';
|
||||
import {PagingFormatter} from './pagingFormatter.component';
|
||||
import {AutocompleteComponent} from './autoComplete.component';
|
||||
import {ShowDataProvidersComponent} from './showDataProviders.component';
|
||||
import {ExportCSVComponent} from './exportCSV.component.ts';
|
||||
|
||||
|
||||
import {AlertModal} from './modal/alert';
|
||||
import {ModalLoading} from './modal/loading.component';
|
||||
|
||||
//helpers
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
CommonModule, FormsModule, ModalModule
|
||||
|
@ -24,7 +25,9 @@ import {ModalLoading} from './modal/loading.component';
|
|||
ProjectTitleFormatter,
|
||||
PublicationTitleFormatter,
|
||||
PagingFormatter,
|
||||
AutocompleteComponent
|
||||
AutocompleteComponent,
|
||||
ShowDataProvidersComponent,
|
||||
ExportCSVComponent
|
||||
|
||||
],
|
||||
exports: [
|
||||
|
@ -33,8 +36,10 @@ import {ModalLoading} from './modal/loading.component';
|
|||
PublicationTitleFormatter,
|
||||
PagingFormatter,
|
||||
AlertModal, ModalLoading,
|
||||
AutocompleteComponent
|
||||
AutocompleteComponent,
|
||||
ShowDataProvidersComponent,
|
||||
ExportCSVComponent
|
||||
|
||||
]
|
||||
})
|
||||
export class SharedComponentsModule { }
|
||||
export class UtilsModule { }
|
Loading…
Reference in New Issue