From b44c33c411b939fc6beca7f239347a5dee40b36d Mon Sep 17 00:00:00 2001 From: "argiro.kokogiannaki" Date: Thu, 22 Sep 2016 17:57:16 +0000 Subject: [PATCH] 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 --- portal-2/src/app/app.routing.ts | 36 +--- portal-2/src/app/app.ts | 6 + portal-2/src/app/claimPages/claim.module.ts | 11 +- .../app/claimPages/claim/claim.component.ts | 2 +- .../app/claimPages/claims/claims.component.ts | 4 +- .../linking/bulkClaim/bulkClaim.component.ts | 2 +- .../claimProject/claimProject.component.ts | 2 +- .../insertClaim/insertClaim.component.ts | 4 +- .../selected/selectedDatasets.component.ts | 2 +- .../selectedPublications.component.ts | 2 +- portal-2/src/app/deposit/deposit.component.ts | 52 +++++- portal-2/src/app/deposit/deposit.module.ts | 11 +- .../app/deposit/depositResult.component.ts | 52 ++++++ portal-2/src/app/error/errorPage.component.ts | 35 ++++ .../dataProvider/dataProvider.component.html | 54 ++++++ .../dataProvider/dataProvider.component.ts | 79 +++++++++ .../dataProvider/datasetsTab.component.ts | 28 +++ .../dataProvider/datasourcesTab.component.ts | 28 +++ .../dataProvider/projectsTab.component.ts | 28 +++ .../dataProvider/publicationsTab.component.ts | 28 +++ .../dataProvider/statisticsTab.component.ts | 28 +++ .../dataProvider/tabs.component.ts | 64 +++++++ .../landingPages/dataset/dataset.component.ts | 4 +- .../src/app/landingPages/landing.module.ts | 55 ++++++ .../organization/organization.component.html | 39 +---- .../organization/organization.component.ts | 2 +- .../landingPages/person/person.component.ts | 2 +- .../landingPages/project/project.component.ts | 2 +- .../publication/publication.component.ts | 4 +- .../landingPages/showIdentifiers.component.ts | Bin 2298 -> 1706 bytes .../src/app/searchAll/searchAll.component.ts | 6 +- .../advancedSearchPublications.component.ts | 6 +- portal-2/src/app/searchPages/search.module.ts | 23 +-- .../searchPublications.component.ts | 6 +- .../advancedSearchForm.component.ts | 0 .../advancedSearchPage.component.ts | 2 +- .../searchFilter.component.ts | 0 .../searchForm.component.ts | 0 .../searchHelperClasses.class.ts | 0 .../searchPage.component.ts | 2 +- .../searchResult.component.ts | 2 +- portal-2/src/app/services/claims.service.ts | 4 +- portal-2/src/app/services/contexts.service.ts | 4 +- .../src/app/services/dataProvider.service.ts | 164 ++++++++++++++++++ portal-2/src/app/services/dataset.service.ts | 4 +- .../app/services/openaireProjects.service.ts | 2 +- .../src/app/services/organization.service.ts | 25 ++- portal-2/src/app/services/person.service.ts | 4 +- portal-2/src/app/services/project.service.ts | 4 +- .../src/app/services/publication.service.ts | 4 +- .../app/services/searchCrossref.service.ts | 4 +- .../app/services/searchDatacite.service.ts | 2 +- .../src/app/services/searchOrcid.service.ts | 2 +- .../services/searchPublications.service.ts | 2 +- portal-2/src/app/services/services.module.ts | 39 +++++ .../autoComplete.component.ts | 0 .../claimEntityFormatter.component.ts | 0 .../src/app/{ => utils}/entities/claim.ts | 0 .../app/utils/entities/dataProviderInfo.ts | 49 ++++++ .../app/{ => utils}/entities/datasetInfo.ts | 0 .../src/app/utils/entities/entities.module.ts | 24 +++ .../{ => utils}/entities/organizationInfo.ts | 3 +- .../app/{ => utils}/entities/personInfo.ts | 0 .../app/{ => utils}/entities/projectInfo.ts | 0 .../app/{ => utils}/entities/publication.ts | 0 .../{ => utils}/entities/publicationInfo.ts | 0 .../app/{ => utils}/entities/searchResult.ts | 0 .../app/{ => utils}/exportCSV.component.ts | 0 .../src/app/{common => utils}/modal/alert.ts | 0 .../modal/loading.component.ts | 0 .../{common => utils}/modal/modal.module.ts | 0 .../{common => utils}/modal/open.component.ts | 0 .../pagingFormatter.component.ts | 0 .../pagingFormatterNoLoad.component.ts | 0 .../{ => utils}/pipes/claimTextFilter.pipe.ts | 0 .../{ => utils}/pipes/claimTypeFilter.pipe.ts | 0 .../projectTitleFormatter.component.ts | 2 +- .../properties}/openaireProperties.ts | 10 +- .../publicationTitleFormatter.component.ts | 0 .../app/utils/showDataProviders.component.ts | 63 +++++++ .../utils.module.ts} | 15 +- 81 files changed, 995 insertions(+), 148 deletions(-) create mode 100644 portal-2/src/app/deposit/depositResult.component.ts create mode 100644 portal-2/src/app/error/errorPage.component.ts create mode 100644 portal-2/src/app/landingPages/dataProvider/dataProvider.component.html create mode 100644 portal-2/src/app/landingPages/dataProvider/dataProvider.component.ts create mode 100644 portal-2/src/app/landingPages/dataProvider/datasetsTab.component.ts create mode 100644 portal-2/src/app/landingPages/dataProvider/datasourcesTab.component.ts create mode 100644 portal-2/src/app/landingPages/dataProvider/projectsTab.component.ts create mode 100644 portal-2/src/app/landingPages/dataProvider/publicationsTab.component.ts create mode 100644 portal-2/src/app/landingPages/dataProvider/statisticsTab.component.ts create mode 100644 portal-2/src/app/landingPages/dataProvider/tabs.component.ts create mode 100644 portal-2/src/app/landingPages/landing.module.ts rename portal-2/src/app/searchPages/{common => searchUtils}/advancedSearchForm.component.ts (100%) rename portal-2/src/app/searchPages/{common => searchUtils}/advancedSearchPage.component.ts (99%) rename portal-2/src/app/searchPages/{common => searchUtils}/searchFilter.component.ts (100%) rename portal-2/src/app/searchPages/{common => searchUtils}/searchForm.component.ts (100%) rename portal-2/src/app/searchPages/{common => searchUtils}/searchHelperClasses.class.ts (100%) rename portal-2/src/app/searchPages/{common => searchUtils}/searchPage.component.ts (98%) rename portal-2/src/app/searchPages/{common => searchUtils}/searchResult.component.ts (97%) create mode 100644 portal-2/src/app/services/dataProvider.service.ts create mode 100644 portal-2/src/app/services/services.module.ts rename portal-2/src/app/{common => utils}/autoComplete.component.ts (100%) rename portal-2/src/app/{common => utils}/claimEntityFormatter.component.ts (100%) rename portal-2/src/app/{ => utils}/entities/claim.ts (100%) create mode 100644 portal-2/src/app/utils/entities/dataProviderInfo.ts rename portal-2/src/app/{ => utils}/entities/datasetInfo.ts (100%) create mode 100644 portal-2/src/app/utils/entities/entities.module.ts rename portal-2/src/app/{ => utils}/entities/organizationInfo.ts (83%) rename portal-2/src/app/{ => utils}/entities/personInfo.ts (100%) rename portal-2/src/app/{ => utils}/entities/projectInfo.ts (100%) rename portal-2/src/app/{ => utils}/entities/publication.ts (100%) rename portal-2/src/app/{ => utils}/entities/publicationInfo.ts (100%) rename portal-2/src/app/{ => utils}/entities/searchResult.ts (100%) rename portal-2/src/app/{ => utils}/exportCSV.component.ts (100%) rename portal-2/src/app/{common => utils}/modal/alert.ts (100%) rename portal-2/src/app/{common => utils}/modal/loading.component.ts (100%) rename portal-2/src/app/{common => utils}/modal/modal.module.ts (100%) rename portal-2/src/app/{common => utils}/modal/open.component.ts (100%) rename portal-2/src/app/{common => utils}/pagingFormatter.component.ts (100%) rename portal-2/src/app/{common => utils}/pagingFormatterNoLoad.component.ts (100%) rename portal-2/src/app/{ => utils}/pipes/claimTextFilter.pipe.ts (100%) rename portal-2/src/app/{ => utils}/pipes/claimTypeFilter.pipe.ts (100%) rename portal-2/src/app/{common => utils}/projectTitleFormatter.component.ts (87%) rename portal-2/src/app/{ => utils/properties}/openaireProperties.ts (93%) rename portal-2/src/app/{common => utils}/publicationTitleFormatter.component.ts (100%) create mode 100644 portal-2/src/app/utils/showDataProviders.component.ts rename portal-2/src/app/{common/sharedComponents.module.ts => utils/utils.module.ts} (75%) diff --git a/portal-2/src/app/app.routing.ts b/portal-2/src/app/app.routing.ts index 06273bee..21aa7d8a 100644 --- a/portal-2/src/app/app.routing.ts +++ b/portal-2/src/app/app.routing.ts @@ -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); diff --git a/portal-2/src/app/app.ts b/portal-2/src/app/app.ts index 3d461710..c5987989 100644 --- a/portal-2/src/app/app.ts +++ b/portal-2/src/app/app.ts @@ -29,6 +29,12 @@ import 'rxjs/Rx';
  • Search Publications
  • Advanced Search Publications
  • Deposit
  • +
  • Publication
  • +
  • Dataset
  • +
  • Project
  • +
  • Person
  • +
  • Organization
  • +
  • Data Provider
  • diff --git a/portal-2/src/app/claimPages/claim.module.ts b/portal-2/src/app/claimPages/claim.module.ts index d4fbeee6..3a38cb56 100644 --- a/portal-2/src/app/claimPages/claim.module.ts +++ b/portal-2/src/app/claimPages/claim.module.ts @@ -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, diff --git a/portal-2/src/app/claimPages/claim/claim.component.ts b/portal-2/src/app/claimPages/claim/claim.component.ts index 33ac0241..786270cd 100644 --- a/portal-2/src/app/claimPages/claim/claim.component.ts +++ b/portal-2/src/app/claimPages/claim/claim.component.ts @@ -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', diff --git a/portal-2/src/app/claimPages/claims/claims.component.ts b/portal-2/src/app/claimPages/claims/claims.component.ts index a9d1f1cb..96c94c05 100644 --- a/portal-2/src/app/claimPages/claims/claims.component.ts +++ b/portal-2/src/app/claimPages/claims/claims.component.ts @@ -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({ diff --git a/portal-2/src/app/claimPages/linking/bulkClaim/bulkClaim.component.ts b/portal-2/src/app/claimPages/linking/bulkClaim/bulkClaim.component.ts index 336b0e22..774a96fc 100644 --- a/portal-2/src/app/claimPages/linking/bulkClaim/bulkClaim.component.ts +++ b/portal-2/src/app/claimPages/linking/bulkClaim/bulkClaim.component.ts @@ -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'; diff --git a/portal-2/src/app/claimPages/linking/claimProject/claimProject.component.ts b/portal-2/src/app/claimPages/linking/claimProject/claimProject.component.ts index 81f53c6b..47f6240e 100644 --- a/portal-2/src/app/claimPages/linking/claimProject/claimProject.component.ts +++ b/portal-2/src/app/claimPages/linking/claimProject/claimProject.component.ts @@ -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'; diff --git a/portal-2/src/app/claimPages/linking/insertClaim/insertClaim.component.ts b/portal-2/src/app/claimPages/linking/insertClaim/insertClaim.component.ts index 91f77879..0730ae34 100644 --- a/portal-2/src/app/claimPages/linking/insertClaim/insertClaim.component.ts +++ b/portal-2/src/app/claimPages/linking/insertClaim/insertClaim.component.ts @@ -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({ diff --git a/portal-2/src/app/claimPages/linking/selected/selectedDatasets.component.ts b/portal-2/src/app/claimPages/linking/selected/selectedDatasets.component.ts index c21e6171..ea4a19a7 100644 --- a/portal-2/src/app/claimPages/linking/selected/selectedDatasets.component.ts +++ b/portal-2/src/app/claimPages/linking/selected/selectedDatasets.component.ts @@ -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', diff --git a/portal-2/src/app/claimPages/linking/selected/selectedPublications.component.ts b/portal-2/src/app/claimPages/linking/selected/selectedPublications.component.ts index f5a554b4..210f5ccf 100644 --- a/portal-2/src/app/claimPages/linking/selected/selectedPublications.component.ts +++ b/portal-2/src/app/claimPages/linking/selected/selectedPublications.component.ts @@ -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', diff --git a/portal-2/src/app/deposit/deposit.component.ts b/portal-2/src/app/deposit/deposit.component.ts index 34047ece..f5dee7dc 100644 --- a/portal-2/src/app/deposit/deposit.component.ts +++ b/portal-2/src/app/deposit/deposit.component.ts @@ -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: ` -
    -

    Deposit

    - Under construction -
    ` +
    + +
    +

    + + Are you a grant recipient from the following: H2020; FP7 with SC39; or ERC? + + Then you are required to publish in + open access. + One way to do this is to deposit your publications into an open access repository. +

    +

    + Click the following to find more information: + FP7 guidelines, + H2020 guidelines, + ERC guidelines OR + ask a question to OpenAIRE’s national representative. +

    + +

    Locate data provider via your institution

    + +
    +
    + Filter + + + + +
    +
    +
    +
    + ` }) 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}] ); + } } diff --git a/portal-2/src/app/deposit/deposit.module.ts b/portal-2/src/app/deposit/deposit.module.ts index ba09374f..34991f3a 100644 --- a/portal-2/src/app/deposit/deposit.module.ts +++ b/portal-2/src/app/deposit/deposit.module.ts @@ -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: [ diff --git a/portal-2/src/app/deposit/depositResult.component.ts b/portal-2/src/app/deposit/depositResult.component.ts new file mode 100644 index 00000000..586b4ab9 --- /dev/null +++ b/portal-2/src/app/deposit/depositResult.component.ts @@ -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: ` +
    + + +
    +

    + Data providers for institution: + + {{organization['name']}} +

    {{organization['name']}}

    +
    +

    +
    + +
    +

    Please use the information/contacts shown below to deposit your publications.

    + +
    + +
    + No data providers found. +
    + You can still deposit your publications and/or research data in + OpenAIRE's Zenodo catch-all repository + hosted by CERN. +
    +
    + ` +}) + +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); + } +} diff --git a/portal-2/src/app/error/errorPage.component.ts b/portal-2/src/app/error/errorPage.component.ts new file mode 100644 index 00000000..29473f84 --- /dev/null +++ b/portal-2/src/app/error/errorPage.component.ts @@ -0,0 +1,35 @@ +import { Component, Input } from '@angular/core'; +import { Location } from '@angular/common'; + +@Component({ + selector: 'error', + template: ` +
    +

    + Bad karma: we can't find that page! +

    +
    + +

    + You asked for {{page}}, but despite our computers looking very hard, we could not find it. What happened ? +

    + + + +
    + ` +}) + +export class ErrorPageComponent { + private page: string; + + constructor (private _location: Location) { + this.page = _location.path(true); + //this.page = _router.url; + //this.page = location.href; + } +} diff --git a/portal-2/src/app/landingPages/dataProvider/dataProvider.component.html b/portal-2/src/app/landingPages/dataProvider/dataProvider.component.html new file mode 100644 index 00000000..9e3d8614 --- /dev/null +++ b/portal-2/src/app/landingPages/dataProvider/dataProvider.component.html @@ -0,0 +1,54 @@ +
    +
    +
    +
    +

    + + {{dataProviderInfo.title['name']}} + +

    + {{dataProviderInfo.title['name']}} +

    +

    +
    + + +
    + +
    + + + +
    +
      +
    • + Share - Bookmark +
    • +
    +
    +
    +
    +
    diff --git a/portal-2/src/app/landingPages/dataProvider/dataProvider.component.ts b/portal-2/src/app/landingPages/dataProvider/dataProvider.component.ts new file mode 100644 index 00000000..c02e836d --- /dev/null +++ b/portal-2/src/app/landingPages/dataProvider/dataProvider.component.ts @@ -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'; + } + ); + } + } +} diff --git a/portal-2/src/app/landingPages/dataProvider/datasetsTab.component.ts b/portal-2/src/app/landingPages/dataProvider/datasetsTab.component.ts new file mode 100644 index 00000000..f62ebf95 --- /dev/null +++ b/portal-2/src/app/landingPages/dataProvider/datasetsTab.component.ts @@ -0,0 +1,28 @@ +import {Component, Input} from '@angular/core'; + +@Component({ + selector: 'datasetsTab', + template: ` +
    + There are no datasets +
    + +
    +

    + The results below are discovered through our pilot algorithms. + Let us know how we are doing! +

    +
    + ` +}) + +export class DatasetsTabComponent { + + @Input() datasets; + + constructor () {} + + ngOnInit() {} + + ngOnDestroy() {} +} diff --git a/portal-2/src/app/landingPages/dataProvider/datasourcesTab.component.ts b/portal-2/src/app/landingPages/dataProvider/datasourcesTab.component.ts new file mode 100644 index 00000000..f10579f0 --- /dev/null +++ b/portal-2/src/app/landingPages/dataProvider/datasourcesTab.component.ts @@ -0,0 +1,28 @@ +import {Component, Input} from '@angular/core'; + +@Component({ + selector: 'datasourcesTab', + template: ` +
    + There are no datasources +
    + +
    +

    + The results below are discovered through our pilot algorithms. + Let us know how we are doing! +

    +
    + ` +}) + +export class DatasourcesTabComponent { + + @Input() datasources; + + constructor () {} + + ngOnInit() {} + + ngOnDestroy() {} +} diff --git a/portal-2/src/app/landingPages/dataProvider/projectsTab.component.ts b/portal-2/src/app/landingPages/dataProvider/projectsTab.component.ts new file mode 100644 index 00000000..de5c0948 --- /dev/null +++ b/portal-2/src/app/landingPages/dataProvider/projectsTab.component.ts @@ -0,0 +1,28 @@ +import {Component, Input} from '@angular/core'; + +@Component({ + selector: 'projectsTab', + template: ` +
    + There are no projects +
    + +
    +

    + The results below are discovered through our pilot algorithms. + Let us know how we are doing! +

    +
    + ` +}) + +export class ProjectsTabComponent { + + @Input() projects; + + constructor () {} + + ngOnInit() {} + + ngOnDestroy() {} +} diff --git a/portal-2/src/app/landingPages/dataProvider/publicationsTab.component.ts b/portal-2/src/app/landingPages/dataProvider/publicationsTab.component.ts new file mode 100644 index 00000000..f1398892 --- /dev/null +++ b/portal-2/src/app/landingPages/dataProvider/publicationsTab.component.ts @@ -0,0 +1,28 @@ +import {Component, Input} from '@angular/core'; + +@Component({ + selector: 'publicationsTab', + template: ` +
    + There are no publications +
    + +
    +

    + The results below are discovered through our pilot algorithms. + Let us know how we are doing! +

    +
    + ` +}) + +export class PublicationsTabComponent { + + @Input() publications; + + constructor () {} + + ngOnInit() {} + + ngOnDestroy() {} +} diff --git a/portal-2/src/app/landingPages/dataProvider/statisticsTab.component.ts b/portal-2/src/app/landingPages/dataProvider/statisticsTab.component.ts new file mode 100644 index 00000000..c745d0f4 --- /dev/null +++ b/portal-2/src/app/landingPages/dataProvider/statisticsTab.component.ts @@ -0,0 +1,28 @@ +import {Component, Input} from '@angular/core'; + +@Component({ + selector: 'statisticsTab', + template: ` +
    + There are no statistics +
    + +
    +

    + The results below are discovered through our pilot algorithms. + Let us know how we are doing! +

    +
    + ` +}) + +export class StatisticsTabComponent { + + @Input() statistics; + + constructor () {} + + ngOnInit() {} + + ngOnDestroy() {} +} diff --git a/portal-2/src/app/landingPages/dataProvider/tabs.component.ts b/portal-2/src/app/landingPages/dataProvider/tabs.component.ts new file mode 100644 index 00000000..b63c5404 --- /dev/null +++ b/portal-2/src/app/landingPages/dataProvider/tabs.component.ts @@ -0,0 +1,64 @@ +import {Component, Input} from '@angular/core'; + +@Component({ + selector: 'tabs', + template: ` + + +
    +
    + + + + + + + + + + +
    + +
    + + + trgfrg + + +
    +
    + ` +}) + +export class TabsComponent { + + @Input() tabs: {"name": string, "content": string}[]; + @Input() publications; + @Input() datasets; + @Input() statistics; + @Input() projects; + @Input() datasources; + + constructor () {} + + ngOnInit() {} + + ngOnDestroy() {} +} diff --git a/portal-2/src/app/landingPages/dataset/dataset.component.ts b/portal-2/src/app/landingPages/dataset/dataset.component.ts index 70a58bf6..f5edeac2 100644 --- a/portal-2/src/app/landingPages/dataset/dataset.component.ts +++ b/portal-2/src/app/landingPages/dataset/dataset.component.ts @@ -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'; diff --git a/portal-2/src/app/landingPages/landing.module.ts b/portal-2/src/app/landingPages/landing.module.ts new file mode 100644 index 00000000..e6ec460d --- /dev/null +++ b/portal-2/src/app/landingPages/landing.module.ts @@ -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 { } diff --git a/portal-2/src/app/landingPages/organization/organization.component.html b/portal-2/src/app/landingPages/organization/organization.component.html index 23e76411..3d0c12b0 100644 --- a/portal-2/src/app/landingPages/organization/organization.component.html +++ b/portal-2/src/app/landingPages/organization/organization.component.html @@ -2,12 +2,12 @@
    -

    - + {{organizationInfo.title['name']}} -

    +

    {{organizationInfo.title['name']}}

    @@ -104,38 +104,7 @@
    -
    - There are no data providers -
    -
    -

    - The results below are discovered through our pilot algorithms. - Let us know how we are doing! -

    - - -
    +
    diff --git a/portal-2/src/app/landingPages/organization/organization.component.ts b/portal-2/src/app/landingPages/organization/organization.component.ts index ab34ef7b..457f8997 100644 --- a/portal-2/src/app/landingPages/organization/organization.component.ts +++ b/portal-2/src/app/landingPages/organization/organization.component.ts @@ -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', diff --git a/portal-2/src/app/landingPages/person/person.component.ts b/portal-2/src/app/landingPages/person/person.component.ts index 50c6a715..f3077308 100644 --- a/portal-2/src/app/landingPages/person/person.component.ts +++ b/portal-2/src/app/landingPages/person/person.component.ts @@ -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', diff --git a/portal-2/src/app/landingPages/project/project.component.ts b/portal-2/src/app/landingPages/project/project.component.ts index ccac453f..69c7b1b5 100644 --- a/portal-2/src/app/landingPages/project/project.component.ts +++ b/portal-2/src/app/landingPages/project/project.component.ts @@ -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({ diff --git a/portal-2/src/app/landingPages/publication/publication.component.ts b/portal-2/src/app/landingPages/publication/publication.component.ts index 1b2ee0d9..1c8f1b74 100644 --- a/portal-2/src/app/landingPages/publication/publication.component.ts +++ b/portal-2/src/app/landingPages/publication/publication.component.ts @@ -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'; diff --git a/portal-2/src/app/landingPages/showIdentifiers.component.ts b/portal-2/src/app/landingPages/showIdentifiers.component.ts index d8eb3f61ce84d8d2b292e0f70de8db323768a814..c6479ec215832d14a045d3229698c060e8d1a4ad 100644 GIT binary patch delta 36 scmew*xQcf|s6c5+W=^qwK~a7|YEemMYVpPp6PC%o%(9!=*uO9W00^iJR{#J2 literal 2298 zcmeHJQE!_t5Z*Jt;>JTsrWW>0Ad1v!Qlw3-R_&>(HV+K3>e$FOZ8yY!-(d%ukR?i| z?X7-+obUVY{1NVhtt+VvG?x-@1Qq5SmZGXn3x$$v2o^+?H76>{q@uyhW1IY|iVDIM zy;icK$}p;XL>NXG8f_xdTMRWOjR&|iI3wQ; zSXj*=<3#J!=S-UmCO8%yad(N`N;vDf{U{Y?Qv>((C&*%_I}GW`^Z?#+Y>qsTFcfCY zQc^QPreiz<*R3dT9+}Bjcd3tW62oUw zCE6$^%5!kn+q?NJiuU94nJw-{ZM;c#F*iG&V>U690txHRt^upMCc07BZAeZ-CJH$j z`?%fRz=Elx??7h7bm(eB3j5y@Ax`@b)&(YGle>#z9@Tobc~M@8rC?@gy!Be| EH 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 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() { + + } + +} diff --git a/portal-2/src/app/services/dataset.service.ts b/portal-2/src/app/services/dataset.service.ts index 5bfa98bb..e22c3df7 100644 --- a/portal-2/src/app/services/dataset.service.ts +++ b/portal-2/src/app/services/dataset.service.ts @@ -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 { diff --git a/portal-2/src/app/services/openaireProjects.service.ts b/portal-2/src/app/services/openaireProjects.service.ts index 3ffea030..98c9b198 100644 --- a/portal-2/src/app/services/openaireProjects.service.ts +++ b/portal-2/src/app/services/openaireProjects.service.ts @@ -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 { diff --git a/portal-2/src/app/services/organization.service.ts b/portal-2/src/app/services/organization.service.ts index bcba2927..51213f42 100644 --- a/portal-2/src/app/services/organization.service.ts +++ b/portal-2/src/app/services/organization.service.ts @@ -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 => 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; - } + }*/ } } } diff --git a/portal-2/src/app/services/person.service.ts b/portal-2/src/app/services/person.service.ts index 06d9c1e4..5fabf190 100644 --- a/portal-2/src/app/services/person.service.ts +++ b/portal-2/src/app/services/person.service.ts @@ -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 { diff --git a/portal-2/src/app/services/project.service.ts b/portal-2/src/app/services/project.service.ts index 0074fc9b..7209c609 100644 --- a/portal-2/src/app/services/project.service.ts +++ b/portal-2/src/app/services/project.service.ts @@ -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 { diff --git a/portal-2/src/app/services/publication.service.ts b/portal-2/src/app/services/publication.service.ts index 3582ac99..9cc93c9d 100644 --- a/portal-2/src/app/services/publication.service.ts +++ b/portal-2/src/app/services/publication.service.ts @@ -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 { diff --git a/portal-2/src/app/services/searchCrossref.service.ts b/portal-2/src/app/services/searchCrossref.service.ts index 05a17c5c..445704bd 100644 --- a/portal-2/src/app/services/searchCrossref.service.ts +++ b/portal-2/src/app/services/searchCrossref.service.ts @@ -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 { diff --git a/portal-2/src/app/services/searchDatacite.service.ts b/portal-2/src/app/services/searchDatacite.service.ts index 8a63ebf9..1452d114 100644 --- a/portal-2/src/app/services/searchDatacite.service.ts +++ b/portal-2/src/app/services/searchDatacite.service.ts @@ -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 { diff --git a/portal-2/src/app/services/searchOrcid.service.ts b/portal-2/src/app/services/searchOrcid.service.ts index a6f84986..353aa4ac 100644 --- a/portal-2/src/app/services/searchOrcid.service.ts +++ b/portal-2/src/app/services/searchOrcid.service.ts @@ -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 { diff --git a/portal-2/src/app/services/searchPublications.service.ts b/portal-2/src/app/services/searchPublications.service.ts index 7f9816ea..c4ec305a 100644 --- a/portal-2/src/app/services/searchPublications.service.ts +++ b/portal-2/src/app/services/searchPublications.service.ts @@ -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'; diff --git a/portal-2/src/app/services/services.module.ts b/portal-2/src/app/services/services.module.ts new file mode 100644 index 00000000..e3dcc175 --- /dev/null +++ b/portal-2/src/app/services/services.module.ts @@ -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 { } diff --git a/portal-2/src/app/common/autoComplete.component.ts b/portal-2/src/app/utils/autoComplete.component.ts similarity index 100% rename from portal-2/src/app/common/autoComplete.component.ts rename to portal-2/src/app/utils/autoComplete.component.ts diff --git a/portal-2/src/app/common/claimEntityFormatter.component.ts b/portal-2/src/app/utils/claimEntityFormatter.component.ts similarity index 100% rename from portal-2/src/app/common/claimEntityFormatter.component.ts rename to portal-2/src/app/utils/claimEntityFormatter.component.ts diff --git a/portal-2/src/app/entities/claim.ts b/portal-2/src/app/utils/entities/claim.ts similarity index 100% rename from portal-2/src/app/entities/claim.ts rename to portal-2/src/app/utils/entities/claim.ts diff --git a/portal-2/src/app/utils/entities/dataProviderInfo.ts b/portal-2/src/app/utils/entities/dataProviderInfo.ts new file mode 100644 index 00000000..6228fe5c --- /dev/null +++ b/portal-2/src/app/utils/entities/dataProviderInfo.ts @@ -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( + [ "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( + [ "aggregator::datarepository", + "crissystem", + "datarepository::unknown" + ]), + "statisticsTab": new Set( + [ "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(["entityregistry::projects"]), + "datasourcesTab": new Set(["entityregistry::repositories"]) + }; + + organizations: {"name": string, "url": string}[]; + publications: any; + datasets: any; + statistics: any; + projects: any; + datasources: any; +} diff --git a/portal-2/src/app/entities/datasetInfo.ts b/portal-2/src/app/utils/entities/datasetInfo.ts similarity index 100% rename from portal-2/src/app/entities/datasetInfo.ts rename to portal-2/src/app/utils/entities/datasetInfo.ts diff --git a/portal-2/src/app/utils/entities/entities.module.ts b/portal-2/src/app/utils/entities/entities.module.ts new file mode 100644 index 00000000..9aec3f78 --- /dev/null +++ b/portal-2/src/app/utils/entities/entities.module.ts @@ -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 { } diff --git a/portal-2/src/app/entities/organizationInfo.ts b/portal-2/src/app/utils/entities/organizationInfo.ts similarity index 83% rename from portal-2/src/app/entities/organizationInfo.ts rename to portal-2/src/app/utils/entities/organizationInfo.ts index 02e5fa78..90731cea 100644 --- a/portal-2/src/app/entities/organizationInfo.ts +++ b/portal-2/src/app/utils/entities/organizationInfo.ts @@ -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}[]}[]; } diff --git a/portal-2/src/app/entities/personInfo.ts b/portal-2/src/app/utils/entities/personInfo.ts similarity index 100% rename from portal-2/src/app/entities/personInfo.ts rename to portal-2/src/app/utils/entities/personInfo.ts diff --git a/portal-2/src/app/entities/projectInfo.ts b/portal-2/src/app/utils/entities/projectInfo.ts similarity index 100% rename from portal-2/src/app/entities/projectInfo.ts rename to portal-2/src/app/utils/entities/projectInfo.ts diff --git a/portal-2/src/app/entities/publication.ts b/portal-2/src/app/utils/entities/publication.ts similarity index 100% rename from portal-2/src/app/entities/publication.ts rename to portal-2/src/app/utils/entities/publication.ts diff --git a/portal-2/src/app/entities/publicationInfo.ts b/portal-2/src/app/utils/entities/publicationInfo.ts similarity index 100% rename from portal-2/src/app/entities/publicationInfo.ts rename to portal-2/src/app/utils/entities/publicationInfo.ts diff --git a/portal-2/src/app/entities/searchResult.ts b/portal-2/src/app/utils/entities/searchResult.ts similarity index 100% rename from portal-2/src/app/entities/searchResult.ts rename to portal-2/src/app/utils/entities/searchResult.ts diff --git a/portal-2/src/app/exportCSV.component.ts b/portal-2/src/app/utils/exportCSV.component.ts similarity index 100% rename from portal-2/src/app/exportCSV.component.ts rename to portal-2/src/app/utils/exportCSV.component.ts diff --git a/portal-2/src/app/common/modal/alert.ts b/portal-2/src/app/utils/modal/alert.ts similarity index 100% rename from portal-2/src/app/common/modal/alert.ts rename to portal-2/src/app/utils/modal/alert.ts diff --git a/portal-2/src/app/common/modal/loading.component.ts b/portal-2/src/app/utils/modal/loading.component.ts similarity index 100% rename from portal-2/src/app/common/modal/loading.component.ts rename to portal-2/src/app/utils/modal/loading.component.ts diff --git a/portal-2/src/app/common/modal/modal.module.ts b/portal-2/src/app/utils/modal/modal.module.ts similarity index 100% rename from portal-2/src/app/common/modal/modal.module.ts rename to portal-2/src/app/utils/modal/modal.module.ts diff --git a/portal-2/src/app/common/modal/open.component.ts b/portal-2/src/app/utils/modal/open.component.ts similarity index 100% rename from portal-2/src/app/common/modal/open.component.ts rename to portal-2/src/app/utils/modal/open.component.ts diff --git a/portal-2/src/app/common/pagingFormatter.component.ts b/portal-2/src/app/utils/pagingFormatter.component.ts similarity index 100% rename from portal-2/src/app/common/pagingFormatter.component.ts rename to portal-2/src/app/utils/pagingFormatter.component.ts diff --git a/portal-2/src/app/common/pagingFormatterNoLoad.component.ts b/portal-2/src/app/utils/pagingFormatterNoLoad.component.ts similarity index 100% rename from portal-2/src/app/common/pagingFormatterNoLoad.component.ts rename to portal-2/src/app/utils/pagingFormatterNoLoad.component.ts diff --git a/portal-2/src/app/pipes/claimTextFilter.pipe.ts b/portal-2/src/app/utils/pipes/claimTextFilter.pipe.ts similarity index 100% rename from portal-2/src/app/pipes/claimTextFilter.pipe.ts rename to portal-2/src/app/utils/pipes/claimTextFilter.pipe.ts diff --git a/portal-2/src/app/pipes/claimTypeFilter.pipe.ts b/portal-2/src/app/utils/pipes/claimTypeFilter.pipe.ts similarity index 100% rename from portal-2/src/app/pipes/claimTypeFilter.pipe.ts rename to portal-2/src/app/utils/pipes/claimTypeFilter.pipe.ts diff --git a/portal-2/src/app/common/projectTitleFormatter.component.ts b/portal-2/src/app/utils/projectTitleFormatter.component.ts similarity index 87% rename from portal-2/src/app/common/projectTitleFormatter.component.ts rename to portal-2/src/app/utils/projectTitleFormatter.component.ts index 5917768e..43db0c0a 100644 --- a/portal-2/src/app/common/projectTitleFormatter.component.ts +++ b/portal-2/src/app/utils/projectTitleFormatter.component.ts @@ -1,5 +1,5 @@ import {Component, Input} from '@angular/core'; -import {OpenaireProperties} from '../openaireProperties'; +import {OpenaireProperties} from '../utils/properties/openaireProperties'; //Usage Example " " diff --git a/portal-2/src/app/openaireProperties.ts b/portal-2/src/app/utils/properties/openaireProperties.ts similarity index 93% rename from portal-2/src/app/openaireProperties.ts rename to portal-2/src/app/utils/properties/openaireProperties.ts index 796973ae..ff9d43bd 100644 --- a/portal-2/src/app/openaireProperties.ts +++ b/portal-2/src/app/utils/properties/openaireProperties.ts @@ -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; + } } diff --git a/portal-2/src/app/common/publicationTitleFormatter.component.ts b/portal-2/src/app/utils/publicationTitleFormatter.component.ts similarity index 100% rename from portal-2/src/app/common/publicationTitleFormatter.component.ts rename to portal-2/src/app/utils/publicationTitleFormatter.component.ts diff --git a/portal-2/src/app/utils/showDataProviders.component.ts b/portal-2/src/app/utils/showDataProviders.component.ts new file mode 100644 index 00000000..284faa41 --- /dev/null +++ b/portal-2/src/app/utils/showDataProviders.component.ts @@ -0,0 +1,63 @@ +import {Component, Input} from '@angular/core'; + +@Component({ + selector: 'showDataProviders', + template: ` + +
    + There are no data providers +
    +
    +

    + The results below are discovered through our pilot algorithms. + Let us know how we are doing! +

    + + +
    + ` +}) + +export class ShowDataProvidersComponent { +@Input() dataProviders: { "name": string, "url": string, "type": string, "websiteUrl": string, + "organizations": {"name": string, "url": string}[]}[]; + +constructor () { + console.info('showDataProviders constructor'); +} + +ngOnInit() {} +} diff --git a/portal-2/src/app/common/sharedComponents.module.ts b/portal-2/src/app/utils/utils.module.ts similarity index 75% rename from portal-2/src/app/common/sharedComponents.module.ts rename to portal-2/src/app/utils/utils.module.ts index a3765e9a..5c19659f 100644 --- a/portal-2/src/app/common/sharedComponents.module.ts +++ b/portal-2/src/app/utils/utils.module.ts @@ -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 { }