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:
argiro.kokogiannaki 2016-09-22 17:57:16 +00:00
parent 6c5687c80f
commit b44c33c411
81 changed files with 995 additions and 148 deletions

View File

@ -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 { 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);

View File

@ -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 -->

View File

@ -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,

View File

@ -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',

View File

@ -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({

View File

@ -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';

View File

@ -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';

View File

@ -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({

View File

@ -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',

View File

@ -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',

View File

@ -1,18 +1,58 @@
import {Component} from '@angular/core';
import {Observable} from 'rxjs/Observable';
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="container">
<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 OpenAIREs 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}] );
}
}

View File

@ -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: [

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -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>

View File

@ -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';
}
);
}
}
}

View File

@ -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() {}
}

View File

@ -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() {}
}

View File

@ -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() {}
}

View File

@ -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() {}
}

View File

@ -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() {}
}

View File

@ -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() {}
}

View File

@ -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';

View File

@ -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 { }

View File

@ -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>

View File

@ -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',

View File

@ -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',

View File

@ -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({

View File

@ -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';

View File

@ -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({

View File

@ -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({

View File

@ -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: [

View File

@ -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',

View File

@ -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',

View File

@ -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',

View File

@ -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',

View File

@ -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 {

View File

@ -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 {

View File

@ -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() {
}
}

View File

@ -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 {

View File

@ -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 {

View File

@ -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;
}
}*/
}
}
}

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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';

View File

@ -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 { }

View File

@ -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;
}

View File

@ -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 { }

View File

@ -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}[]}[];
}

View File

@ -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>"

View File

@ -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;
}
}

View File

@ -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() {}
}

View File

@ -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 { }