MERGE uoa-services-portal lazy-routes Branch 45587:45834 into trunk

git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-portal/trunk@45855 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
argiro.kokogiannaki 2017-02-13 11:32:48 +00:00
parent 93362b727d
commit e60899bdcc
149 changed files with 3395 additions and 966 deletions

View File

@ -53,14 +53,17 @@ constructor(element: ElementRef, renderer: Renderer) {
} }
``` ```
- The application runs XHR requests on the server & once again on the Client-side (when the application bootstraps) - The application runs XHR requests on the server & once again on the Client-side (when the application bootstraps)
- Use a [UniversalCache](https://github.com/angular/universal-starter/blob/master/src/+app/shared/api.service.ts#L47-L71) instead of regular Http, to save certain requests so they aren't re-ran again on the Client. - Use a [UniversalCache](https://github.com/angular/universal-starter/blob/master/src/%2Bapp/shared/model/model.service.ts#L34-L50) instead of regular Http, to save certain requests so they aren't re-ran again on the Client. ([Example useage here](https://github.com/angular/universal-starter/blob/cc71e2d5b2d783f2bb52eebd1b5c6fa0ba23f08a/src/%2Bapp/%2Bhome/home.component.ts#L22-L24))
- Know the difference between attributes and properties in relation to the DOM. - Know the difference between attributes and properties in relation to the DOM.
- Keep your directives stateless as much as possible. For stateful directives, you may need to provide an attribute that reflects the corresponding property with an initial string value such as url in img tag. For our native `<img src="">` element the src attribute is reflected as the src property of the element type HTMLImageElement. - Keep your directives stateless as much as possible. For stateful directives, you may need to provide an attribute that reflects the corresponding property with an initial string value such as url in img tag. For our native `<img src="">` element the src attribute is reflected as the src property of the element type HTMLImageElement.
### Brotli Compression Support ### Brotli Compression Support
To enable Brotli compression for server response with fallback for gzip replace the following code from src/server.aot.ts To enable Brotli compression for server response with fallback for gzip. Install the following packages
```
npm install --save-dev iltorb accepts @types/accepts express-interceptor memory-cache @types/memory-cache
```
and replace the following code from src/server.aot.ts.
``` ```
import * as compression from 'compression'; import * as compression from 'compression';
@ -99,8 +102,11 @@ app.use(interceptor((req, res)=>({
} }
} else { } else {
const { output, encoding } = mcache.get(key); const { output, encoding } = mcache.get(key);
if(encodings.has(encoding)){
res.setHeader('Content-Encoding', encoding); res.setHeader('Content-Encoding', encoding);
send(output); send(output);
return;
}
} }
send(output); send(output);
} }

View File

@ -77,21 +77,16 @@
"@types/express": "^4.0.32", "@types/express": "^4.0.32",
"@types/express-serve-static-core": "^4.0.33", "@types/express-serve-static-core": "^4.0.33",
"@types/hammerjs": "^2.0.32", "@types/hammerjs": "^2.0.32",
"@types/memory-cache": "0.0.29",
"@types/mime": "0.0.28", "@types/mime": "0.0.28",
"@types/node": "^6.0.38", "@types/node": "^6.0.38",
"@types/serve-static": "^1.7.27", "@types/serve-static": "^1.7.27",
"@types/webfontloader": "^1.6.27", "@types/webfontloader": "^1.6.27",
"@ngtools/webpack": "~1.1.7", "@ngtools/webpack": "~1.1.7",
"accepts": "^1.3.3",
"angular2-template-loader": "^0.4.0", "angular2-template-loader": "^0.4.0",
"awesome-typescript-loader": "^2.2.4", "awesome-typescript-loader": "^2.2.4",
"cookie-parser": "^1.4.3", "cookie-parser": "^1.4.3",
"express-interceptor": "^1.2.0",
"iltorb": "^1.0.13",
"imports-loader": "^0.6.5", "imports-loader": "^0.6.5",
"json-loader": "^0.5.4", "json-loader": "^0.5.4",
"memory-cache": "^0.1.6",
"nodemon": "^1.10.0", "nodemon": "^1.10.0",
"raw-loader": "^0.5.1", "raw-loader": "^0.5.1",
"reflect-metadata": "0.1.8", "reflect-metadata": "0.1.8",

View File

@ -1,10 +1,144 @@
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router'; import { RouterModule } from '@angular/router';
export function getPublicationModule() {
return System.import('./landingPages/publication/publication.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'PublicationModuleNgFactory' : 'PublicationModule')]);
}
export function getDatasetModule() {
return System.import('./landingPages/dataset/dataset.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'DatasetModuleNgFactory' : 'DatasetModule')]);
}
export function getPersonModule() {
return System.import('./landingPages/person/person.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'PersonModuleNgFactory' : 'PersonModule')]);
}
export function getProjectModule() {
return System.import('./landingPages/project/project.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'ProjectModuleNgFactory' : 'ProjectModule')]);
}
export function getOrganizationModule() {
return System.import('./landingPages/organization/organization.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'OrganizationModuleNgFactory' : 'OrganizationModule')]);
}
export function getDepositDatasetsModule() {
return System.import('./deposit/datasets/depositDatasets.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'DepositDatasetsModuleNgFactory' : 'DepositDatasetsModule')]);
}
export function getDepositDatasetsResultsModule() {
return System.import('./deposit/datasets/depositDatasetsResults.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'DepositDatasetsResultsModuleNgFactory' : 'DepositDatasetsResultsModule')]);
}
export function getDepositPublicationsModule() {
return System.import('./deposit/publications/depositPublications.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'DepositPublicationsModuleNgFactory' : 'DepositPublicationsModule')]);
}
export function getDepositPublicationsResultsModule() {
return System.import('./deposit/publications/depositPublicationsResults.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'DepositPublicationsResultsModuleNgFactory' : 'DepositPublicationsResultsModule')]);
}
export function getDataProviderModule() {
return System.import('./landingPages/dataProvider/dataProvider.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'DataProviderModuleNgFactory' : 'DataProviderModule')]);
}
export function getMainSearchModule() {
return System.import('./searchPages/find/mainSearch.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'MainSearchModuleNgFactory' : 'MainSearchModule')]);
}
export function getSearchPublicationsModule() {
return System.import('./searchPages/simple/searchPublications.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'SearchPublicationsModuleNgFactory' : 'SearchPublicationsModule')]);
}
export function getSearchDatasetsModule() {
return System.import('./searchPages/simple/searchDatasets.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'SearchDatasetsModuleNgFactory' : 'SearchDatasetsModule')]);
}
export function getSearchProjectsModule() {
return System.import('./searchPages/simple/searchProjects.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'SearchProjectsModuleNgFactory' : 'SearchProjectsModule')]);
}
export function getSearchOrganizationsModule() {
return System.import('./searchPages/simple/searchOrganizations.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'SearchOrganizationsModuleNgFactory' : 'SearchOrganizationsModule')]);
}
export function getSearchDataProvidersModule() {
return System.import('./searchPages/simple/searchDataProviders.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'SearchDataProvidersModuleNgFactory' : 'SearchDataProvidersModule')]);
}
export function getSearchPeopleModule() {
return System.import('./searchPages/simple/searchPeople.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'SearchPeopleModuleNgFactory' : 'SearchPeopleModule')]);
}
export function getCompatibleDataProvidersModule() {
return System.import('./searchPages/dataProviders/compatibleDataProviders.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'CompatibleDataProvidersModuleNgFactory' : 'CompatibleDataProvidersModule')]);
}
export function getEntityRegistriesModule() {
return System.import('./searchPages/dataProviders/entityRegistries.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'EntityRegistriesModuleNgFactory' : 'EntityRegistriesModule')]);
}
export function getAdvancedSearchPublicationsModule() {
return System.import('./searchPages/advanced/advancedSearchPublications.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'AdvancedSearchPublicationsModuleNgFactory' : 'AdvancedSearchPublicationsModule')]);
}
export function getAdvancedSearchDatasetsModule() {
return System.import('./searchPages/advanced/advancedSearchDatasets.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'AdvancedSearchDatasetsModuleNgFactory' : 'AdvancedSearchDatasetsModule')]);
}
export function getAdvancedSearchOrganizationsModule() {
return System.import('./searchPages/advanced/advancedSearchOrganizations.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'AdvancedSearchOrganizationsModuleNgFactory' : 'AdvancedSearchOrganizationsModule')]);
}
export function getAdvancedSearchDataProvidersModule() {
return System.import('./searchPages/advanced/advancedSearchDataProviders.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'AdvancedSearchDataProvidersModuleNgFactory' : 'AdvancedSearchDataProvidersModule')]);
}
export function getAdvancedSearchProjectsModule() {
return System.import('./searchPages/advanced/advancedSearchProjects.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'AdvancedSearchProjectsModuleNgFactory' : 'AdvancedSearchProjectsModule')]);
}
export function getAdvancedSearchPeopleModule() {
return System.import('./searchPages/advanced/advancedSearchPeople.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'AdvancedSearchPeopleModuleNgFactory' : 'AdvancedSearchPeopleModule')]);
}
export function gethtmlProjectReportModule() {
return System.import('./landingPages/htmlProjectReport/htmlProjectReport.module' + (process.env.AOT ? '.ngfactory' : ''))
.then(mod => mod[(process.env.AOT ? 'HtmlProjectReportModuleNgFactory' : 'HtmlProjectReportModule')]);
}
@NgModule({ @NgModule({
imports: [ imports: [
RouterModule.forChild([ RouterModule.forChild([
{ path: '', redirectTo: '/search/find', pathMatch: 'full' } { path: '', redirectTo: '/search/find', pathMatch: 'full' },
{ path: 'search/publication', loadChildren: getPublicationModule },
{ path: 'search/dataset', loadChildren: getDatasetModule },
{ path: 'search/person', loadChildren: getPersonModule },
{ path: 'search/organization', loadChildren: getOrganizationModule },
{ path: 'search/project', loadChildren: getProjectModule },
{ path: 'search/dataprovider', loadChildren: getDataProviderModule },
{ path: 'deposit-datasets', loadChildren: getDepositDatasetsModule },
{ path: 'deposit-datasets-result', loadChildren: getDepositDatasetsResultsModule },
{ path: 'deposit-publications', loadChildren: getDepositPublicationsModule },
{ path: 'deposit-publications-result', loadChildren: getDepositPublicationsResultsModule },
{ path: 'search/find', loadChildren: getMainSearchModule },
{ path: 'search/find/publications', loadChildren: getSearchPublicationsModule },
{ path: 'search/find/datasets', loadChildren: getSearchDatasetsModule },
{ path: 'search/find/projects', loadChildren: getSearchProjectsModule },
{ path: 'search/find/dataproviders', loadChildren: getSearchDataProvidersModule },
{ path: 'search/find/organizations', loadChildren: getSearchOrganizationsModule },
{ path: 'search/find/people', loadChildren: getSearchPeopleModule },
{ path: 'search/data-providers', loadChildren: getCompatibleDataProvidersModule },
{ path: 'search/entity-registries', loadChildren: getEntityRegistriesModule },
{ path: 'search/advanced/publications', loadChildren: getAdvancedSearchPublicationsModule },
{ path: 'search/advanced/datasets', loadChildren: getAdvancedSearchDatasetsModule },
{ path: 'search/advanced/organizations', loadChildren: getAdvancedSearchOrganizationsModule },
{ path: 'search/advanced/dataproviders', loadChildren: getAdvancedSearchDataProvidersModule },
{ path: 'search/advanced/projects', loadChildren: getAdvancedSearchProjectsModule },
{ path: 'search/advanced/people', loadChildren: getAdvancedSearchPeopleModule },
{ path: 'project-report', loadChildren: gethtmlProjectReportModule }
]) ])
], ],
}) })

View File

@ -1,4 +1,3 @@
//import {MaterialModule} from '@angular/material';
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
@ -8,35 +7,20 @@ import { SharedModule } from './shared/shared.module';
import { AppRoutingModule } from './app-routing.module'; import { AppRoutingModule } from './app-routing.module';
import { AppComponent, XLargeDirective } from './app.component'; import { AppComponent, XLargeDirective } from './app.component';
// custom modules::
import {SearchModule} from './searchPages/search.module';
import {DepoditModule} from './deposit/deposit.module';
import {LandingModule} from './landingPages/landing.module';
import {SharedComponentsModule} from './sharedComponents/sharedComponents.module'; //navbar import {SharedComponentsModule} from './sharedComponents/sharedComponents.module'; //navbar
import {UtilsModule} from './utils/utils.module';
import {TestModule} from './test/test.module';
import { HomeModule } from './home/home.module';
import { ErrorModule } from './error/error.module'; import { ErrorModule } from './error/error.module';
import { CacheService } from './shared/cache.service';
import {ServicesModule} from './services/services.module';
@NgModule({ @NgModule({
declarations: [ AppComponent, XLargeDirective ], declarations: [ AppComponent, XLargeDirective ],
imports: [ imports: [
//MaterialModule.forRoot(),
SharedModule, SharedModule,
HomeModule,
SearchModule,
DepoditModule,
LandingModule,
SharedComponentsModule, SharedComponentsModule,
UtilsModule,
ServicesModule,
TestModule,
HomeModule,
AppRoutingModule, AppRoutingModule,
ErrorModule ErrorModule
], exports:[] ], exports:[], providers:[CacheService]
}) })
export class AppModule { export class AppModule {
} }

View File

@ -0,0 +1,15 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { DepositDatasetsComponent } from './depositDatasets.component';
import { DepositDatasetsResultComponent } from './depositDatasetsResult.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: DepositDatasetsComponent }
])
]
})
export class DepositDatasetsRoutingModule { }

View File

@ -0,0 +1,28 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { DepositDatasetsComponent } from './depositDatasets.component';
import { DepositDatasetsResultComponent } from './depositDatasetsResult.component';
import {DepositDatasetsRoutingModule} from './depositDatasets-routing.module';
import {DepoditModule} from '../deposit.module';
@NgModule({
imports: [
CommonModule, FormsModule,
DepoditModule,
DepositDatasetsRoutingModule
],
declarations: [
DepositDatasetsComponent,
],
exports: [
DepositDatasetsComponent,
],
providers: [
]
})
export class DepositDatasetsModule { }

View File

@ -0,0 +1,14 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { DepositDatasetsResultComponent } from './depositDatasetsResult.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: DepositDatasetsResultComponent }
])
]
})
export class DepositDatasetsResultsRoutingModule { }

View File

@ -0,0 +1,27 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { DepositDatasetsResultComponent } from './depositDatasetsResult.component';
import {DepositDatasetsResultsRoutingModule} from './depositDatasetsResults-routing.module';
import {DepoditModule} from '../deposit.module';
@NgModule({
imports: [
CommonModule, FormsModule,
DepoditModule,
DepositDatasetsResultsRoutingModule
],
declarations: [
DepositDatasetsResultComponent,
],
exports: [
DepositDatasetsResultComponent,
],
providers: [
]
})
export class DepositDatasetsResultsModule { }

View File

@ -1,20 +0,0 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { DepositPublicationsComponent } from './depositPublications.component';
import { DepositDatasetsComponent } from './depositDatasets.component';
import { DepositPublicationsResultComponent } from './depositPublicationsResult.component';
import { DepositDatasetsResultComponent } from './depositDatasetsResult.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: 'deposit-publications', component: DepositPublicationsComponent },
{ path: 'deposit-datasets', component: DepositDatasetsComponent },
{ path: 'deposit-publications-result', component: DepositPublicationsResultComponent} ,
{ path: 'deposit-datasets-result', component: DepositDatasetsResultComponent },
])
]
})
export class DepositRoutingModule { }

View File

@ -3,7 +3,6 @@ import {Observable} from 'rxjs/Observable';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import {OpenaireProperties, ErrorCodes} from '../utils/properties/openaireProperties'; import {OpenaireProperties, ErrorCodes} from '../utils/properties/openaireProperties';
import {SearchOrganizationsService} from '../services/searchOrganizations.service';
@Component({ @Component({
selector: 'deposit', selector: 'deposit',
@ -64,7 +63,7 @@ export class DepositComponent {
public selectedId: string = ""; public selectedId: string = "";
public warningMessage: string = ""; public warningMessage: string = "";
constructor (private _router: Router, private _searchOrganizationsService: SearchOrganizationsService) { constructor (private _router: Router) {
this.openAccess = OpenaireProperties.getOpenAccess(); this.openAccess = OpenaireProperties.getOpenAccess();
this.openAccessRepo = OpenaireProperties.getOpenAccessRepo(); this.openAccessRepo = OpenaireProperties.getOpenAccessRepo();

View File

@ -1,41 +1,30 @@
/* Common Component of deposit for both datasets & ppublications*/
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
import { UtilsModule} from '../utils/utils.module'
import { DepositComponent } from './deposit.component'; import { DepositComponent } from './deposit.component';
import { DepositResultComponent } from './depositResult.component'; import { DepositResultComponent } from './depositResult.component';
import { DepositPublicationsComponent } from './depositPublications.component'; import {EntitiesAutocompleteModule} from '../utils/entitiesAutoComplete/entitiesAutoComplete.module';
import { DepositPublicationsResultComponent } from './depositPublicationsResult.component'; import {DataProvidersServiceModule} from '../services/dataProvidersService.module';
import { DepositDatasetsComponent } from './depositDatasets.component'; import {OrganizationServiceModule} from '../services/organizationService.module';
import { DepositDatasetsResultComponent } from './depositDatasetsResult.component';
import {ServicesModule} from '../services/services.module'; @NgModule({
import {SearchModule} from '../searchPages/search.module';
import {DepositRoutingModule} from './deposit-routing.module';
//helpers
@NgModule({
imports: [ imports: [
CommonModule, FormsModule, CommonModule, FormsModule,
UtilsModule, EntitiesAutocompleteModule,
ServicesModule, DataProvidersServiceModule,
SearchModule, OrganizationServiceModule
DepositRoutingModule
], ],
declarations: [ declarations: [
DepositComponent, DepositComponent,
DepositResultComponent, DepositResultComponent
DepositPublicationsComponent,
DepositPublicationsResultComponent,
DepositDatasetsComponent,
DepositDatasetsResultComponent
], ],
exports: [ exports: [
//DepositComponent DepositComponent,
DepositResultComponent
], ],
providers: [ providers: [
] ]

View File

@ -3,9 +3,8 @@ import {Observable} from 'rxjs/Observable';
import {OpenaireProperties, ErrorCodes} from '../utils/properties/openaireProperties'; import {OpenaireProperties, ErrorCodes} from '../utils/properties/openaireProperties';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { SearchDataprovidersComponent } from '../searchPages/simple/searchDataproviders.component'; import { FetchDataproviders } from '../utils/fetchEntitiesClasses/fetchDataproviders.class';
import { SearchDataprovidersService } from '../services/searchDataproviders.service'; import { SearchDataprovidersService } from '../services/searchDataproviders.service';
import { SearchResultComponent } from '../searchPages/searchUtils/searchResult.component';
import {OrganizationService} from '../services/organization.service'; import {OrganizationService} from '../services/organization.service';
@ -17,13 +16,15 @@ import {OrganizationService} from '../services/organization.service';
<h2>Deposit {{requestFor}}</h2> <h2>Deposit {{requestFor}}</h2>
</div> </div>
<div *ngIf="status == errorCodes.LOADING"
<div *ngIf="status == errorCodes.LOADING || (status == errorCodes.LOADING && fetchDataproviders.searchUtils.status == errorCodes.LOADING)"
class="uk-alert uk-alert-primary" role="alert"> class="uk-alert uk-alert-primary" role="alert">
Loading... Loading...
</div> </div>
<div *ngIf="searchDataprovidersComponent.searchUtils.status == errorCodes.DONE">
<h2> <div *ngIf="fetchDataproviders.searchUtils.totalResults > 0">
<h2 *ngIf="organization != undefined">
<span>Data providers for institution: </span> <span>Data providers for institution: </span>
<a *ngIf="organization['url']!=''" href="{{organization.url}}" target="_blank"> <a *ngIf="organization['url']!=''" href="{{organization.url}}" target="_blank">
<span>{{organization['name']}} (<i class="uk-icon-external-link"></i>)</span> <span>{{organization['name']}} (<i class="uk-icon-external-link"></i>)</span>
@ -31,19 +32,21 @@ import {OrganizationService} from '../services/organization.service';
<span *ngIf="organization['url']==''">{{organization['name']}}</span> <span *ngIf="organization['url']==''">{{organization['name']}}</span>
</h2> </h2>
<p>Please use the information/contacts shown below to deposit your {{requestFor}}.</p>
<!--showDataProviders [dataProviders]=dataProviders></showDataProviders-->
<div class = "uk-text-right" *ngIf = "searchDataprovidersComponent.searchUtils.totalResults > 10" ><a [href] = "linkToSearchDataproviders" >View all {{searchDataprovidersComponent.searchUtils.totalResults}} results</a></div>
<search-result [(results)]="searchDataprovidersComponent.results" [(status)]= "searchDataprovidersComponent.searchUtils.status"></search-result>
</div> </div>
<div *ngIf="searchDataprovidersComponent.searchUtils.status == errorCodes.NONE <div *ngIf="fetchDataproviders.searchUtils.totalResults > 0">
|| status == errorCodes.NONE <p>Please use the information/contacts shown below to deposit your {{requestFor}}.</p>
|| searchDataprovidersComponent.searchUtils.status == errorCodes.ERROR <!--showDataProviders [dataProviders]=dataProviders></showDataProviders-->
|| status == errorCodes.ERROR" <div class = "uk-text-right" *ngIf = "fetchDataproviders.searchUtils.totalResults > 10" ><a [href] = "linkToSearchDataproviders" >View all {{fetchDataproviders.searchUtils.totalResults}} results</a></div>
class = "uk-alert uk-alert-warning" role="alert"> <!--search-result [(results)]="fetchDataproviders.results" [(status)]= "fetchDataproviders.searchUtils.status"></search-result-->
</div>
<div *ngIf="(fetchDataproviders.searchUtils.totalResults == 0 && status == errorCodes.DONE)
|| status == errorCodes.NONE || status == errorCodes.ERROR" class = "alert alert-warning">
<div *ngIf="organization != undefined"> <div *ngIf="organization != undefined">
<span *ngIf="searchDataprovidersComponent.searchUtils.status == errorCodes.ERROR"> <span *ngIf="fetchDataproviders.searchUtils.status == errorCodes.ERROR">
An error occured. An error occured.
</span> </span>
No data providers found for institution: No data providers found for institution:
@ -85,7 +88,7 @@ export class DepositResultComponent {
sub: any; sub: any;
subDataproviders: any; subDataproviders: any;
public searchDataprovidersComponent : SearchDataprovidersComponent; public fetchDataproviders : FetchDataproviders;
public linkToSearchDataproviders = ""; public linkToSearchDataproviders = "";
public zenodo: string; public zenodo: string;
@Input() compatibility: string = ''; @Input() compatibility: string = '';
@ -98,7 +101,7 @@ export class DepositResultComponent {
console.info("depositResult constructor"); console.info("depositResult constructor");
this.zenodo = OpenaireProperties.getZenodoURL(); this.zenodo = OpenaireProperties.getZenodoURL();
this.searchDataprovidersComponent = new SearchDataprovidersComponent(this.route, this._searchDataprovidersService); this.fetchDataproviders = new FetchDataproviders(this._searchDataprovidersService);
this.status = this.errorCodes.LOADING; this.status = this.errorCodes.LOADING;
console.info("loading"); console.info("loading");
@ -132,9 +135,9 @@ export class DepositResultComponent {
private searchDataproviders() { private searchDataproviders() {
// if(this.organization != undefined) { // if(this.organization != undefined) {
// this.searchDataprovidersComponent.getResults(this.organization.name, false, 1, 10); // this.fetchDataproviders.getResults(this.organization.name, false, 1, 10);
// } else if(this.organizationId != undefined) { // } else if(this.organizationId != undefined) {
this.searchDataprovidersComponent.getResultsForDeposit( this.organizationId,this.requestFor, 1, 10); this.fetchDataproviders.getResultsForDeposit( this.organizationId,this.requestFor, 1, 10);
//} //}
this.linkToSearchDataproviders = OpenaireProperties.getLinkToSearchDataProviders(); this.linkToSearchDataproviders = OpenaireProperties.getLinkToSearchDataProviders();
} }

View File

@ -0,0 +1,14 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { DepositPublicationsComponent } from './depositPublications.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: DepositPublicationsComponent }
])
]
})
export class DepositPublicationsRoutingModule { }

View File

@ -0,0 +1,28 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { DepositPublicationsComponent } from './depositPublications.component';
import {DepositPublicationsRoutingModule} from './depositPublications-routing.module';
import {DepoditModule} from '../deposit.module';
import {IFrameModule} from '../../utils/iframe.module';
@NgModule({
imports: [
CommonModule, FormsModule,
DepoditModule,
DepositPublicationsRoutingModule,IFrameModule
],
declarations: [
DepositPublicationsComponent,
],
exports: [
DepositPublicationsComponent,
],
providers: [
]
})
export class DepositPublicationsModule { }

View File

@ -0,0 +1,14 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { DepositPublicationsResultComponent } from './depositPublicationsResult.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: DepositPublicationsResultComponent }
])
]
})
export class DepositPublicationsResultRoutingModule { }

View File

@ -0,0 +1,27 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { DepositPublicationsResultComponent } from './depositPublicationsResult.component';
import {DepositPublicationsResultRoutingModule} from './depositPublicationsResult-routing.module';
import {DepoditModule} from '../deposit.module';
@NgModule({
imports: [
CommonModule, FormsModule,
DepoditModule,
DepositPublicationsResultRoutingModule
],
declarations: [
DepositPublicationsResultComponent,
],
exports: [
DepositPublicationsResultComponent,
],
providers: [
]
})
export class DepositPublicationsResultsModule { }

View File

@ -0,0 +1,13 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { DataProviderComponent } from './dataProvider.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: DataProviderComponent }
])
]
})
export class DataProviderRoutingModule { }

View File

@ -1,6 +1,6 @@
import {Component, ViewChild} from '@angular/core'; import {Component, ViewChild} from '@angular/core';
import {Observable} from 'rxjs/Observable'; import {Observable} from 'rxjs/Observable';
import {DataProviderService} from '../../services/dataProvider.service'; import {DataProviderService} from './dataProvider.service';
import {DataProviderInfo} from '../../utils/entities/dataProviderInfo'; import {DataProviderInfo} from '../../utils/entities/dataProviderInfo';
import {ActivatedRoute} from '@angular/router'; import {ActivatedRoute} from '@angular/router';
@ -9,7 +9,8 @@ import{TabsComponent} from './tabs.component';
@Component({ @Component({
selector: 'dataprovider', selector: 'dataprovider',
templateUrl: 'dataProvider.component.html', templateUrl: 'dataProvider.component.html',
providers:[ DataProviderService], //template: `Heeereee`,
// providers:[ DataProviderService],
}) })
export class DataProviderComponent { export class DataProviderComponent {

View File

@ -0,0 +1,51 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import {IFrameModule} from '../../utils/iframe.module';
// import { ResultLandingModule } from '../resultLanding.module';
import {SearchResultsModule } from '../../searchPages/searchUtils/searchResults.module';
import {MetricsModule} from '../metrics.module';
import { LandingModule } from '../landing.module';
import {PublicationsTabComponent} from './publicationsTab.component';
import {DatasetsTabComponent} from './datasetsTab.component';
import {StatisticsTabComponent} from './statisticsTab.component';
import {ProjectsTabComponent} from './projectsTab.component';
import {DatasourcesTabComponent} from './datasourcesTab.component';
import {OrganizationsTabComponent} from './organizationsTab.component';
import {RelatedDatasourcesTabComponent} from './relatedDatasourcesTab.component';
import {TabsComponent} from './tabs.component';
import {DataProviderComponent} from './dataProvider.component';
import { DataProviderService} from './dataProvider.service';
import {DataProvidersServiceModule} from '../../services/dataProvidersService.module';
import {DatasetsServiceModule} from '../../services/datasetsService.module';
import {ProjectsServiceModule} from '../../services/projectsService.module';
import {PublicationsServiceModule} from '../../services/publicationsService.module';
import { DataProviderRoutingModule } from './dataProvider-routing.module';
@NgModule({
imports: [
CommonModule, FormsModule,
DataProviderRoutingModule,
SearchResultsModule, IFrameModule, MetricsModule, LandingModule, DataProvidersServiceModule, DatasetsServiceModule, ProjectsServiceModule, PublicationsServiceModule
],
declarations: [
PublicationsTabComponent, DatasetsTabComponent, StatisticsTabComponent, ProjectsTabComponent, DatasourcesTabComponent, OrganizationsTabComponent, RelatedDatasourcesTabComponent, TabsComponent,
DataProviderComponent
],
providers:[
DataProviderService
],
exports: [
DataProviderComponent
]
})
export class DataProviderModule { }

View File

@ -1,12 +1,12 @@
import {Injectable} from '@angular/core'; import {Injectable} from '@angular/core';
import {Http, Response} from '@angular/http'; import {Http, Response} from '@angular/http';
import {Observable} from 'rxjs/Observable'; import {Observable} from 'rxjs/Observable';
import {DataProviderInfo} from '../utils/entities/dataProviderInfo'; import {DataProviderInfo} from '../../utils/entities/dataProviderInfo';
import {OpenaireProperties} from '../utils/properties/openaireProperties'; import {OpenaireProperties} from '../../utils/properties/openaireProperties';
import 'rxjs/add/observable/of'; import 'rxjs/add/observable/of';
import 'rxjs/add/operator/do'; import 'rxjs/add/operator/do';
import 'rxjs/add/operator/share'; import 'rxjs/add/operator/share';
import { CacheService } from '../shared/cache.service'; import { CacheService } from '../../shared/cache.service';
@Injectable() @Injectable()
export class DataProviderService { export class DataProviderService {

View File

@ -1,32 +1,30 @@
import {Component, Input} from '@angular/core'; import {Component, Input} from '@angular/core';
import { FetchDatasets } from '../../utils/fetchEntitiesClasses/fetchDatasets.class';
import { SearchDatasetsComponent } from '../../searchPages/simple/searchDatasets.component';
import {SearchResultComponent} from '../../searchPages/searchUtils/searchResult.component';
import {OpenaireProperties} from '../../utils/properties/openaireProperties'; import {OpenaireProperties} from '../../utils/properties/openaireProperties';
@Component({ @Component({
selector: 'datasetsTab', selector: 'datasetsTab',
template: ` template: `
<div *ngIf="searchDatasetsComponent.searchUtils.totalResults == 0" class = "uk-alert"> <div *ngIf="fetchDatasets.searchUtils.totalResults == 0" class = "uk-alert">
There are no datasets There are no datasets
</div> </div>
<div *ngIf="searchDatasetsComponent.searchUtils.totalResults > 0"> <div *ngIf="fetchDatasets.searchUtils.totalResults > 0">
<p> <p>
The results below are discovered through our pilot algorithms. The results below are discovered through our pilot algorithms.
<a href="mailto:">Let us know how we are doing!</a> <a href="mailto:">Let us know how we are doing!</a>
</p> </p>
<div class = "uk-text-right" *ngIf = "searchDatasetsComponent.searchUtils.totalResults > 10" ><a [href] = "linkToSearchDatasets" >View all {{searchDatasetsComponent.searchUtils.totalResults}} results</a></div> <div class = "uk-text-right" *ngIf = "fetchDatasets.searchUtils.totalResults > 10" ><a [href] = "linkToSearchDatasets" >View all {{fetchDatasets.searchUtils.totalResults}} results</a></div>
<search-result [(results)]="searchDatasetsComponent.results" [(status)]= "searchDatasetsComponent.status"></search-result> <search-result [(results)]="fetchDatasets.results" [(status)]= "fetchDatasets.searchUtils.status"></search-result>
</div> </div>
` `
}) })
export class DatasetsTabComponent { export class DatasetsTabComponent {
@Input() paramsForSearchLink: string = ""; @Input() paramsForSearchLink: string = "";
@Input() searchDatasetsComponent : SearchDatasetsComponent; @Input() fetchDatasets : FetchDatasets;
public linkToSearchDatasets = ""; public linkToSearchDatasets = "";
constructor () {} constructor () {}

View File

@ -1,24 +1,23 @@
import {Component, Input} from '@angular/core'; import {Component, Input} from '@angular/core';
import { SearchDataprovidersComponent } from '../../searchPages/simple/searchDataproviders.component'; import { FetchDataproviders } from '../../utils/fetchEntitiesClasses/fetchDataproviders.class';
import {SearchResultComponent} from '../../searchPages/searchUtils/searchResult.component';
import {OpenaireProperties} from '../../utils/properties/openaireProperties'; import {OpenaireProperties} from '../../utils/properties/openaireProperties';
@Component({ @Component({
selector: 'datasourcesTab', selector: 'datasourcesTab',
template: ` template: `
<div *ngIf="searchDataprovidersComponent.searchUtils.totalResults == 0" class = "uk-alert"> <div *ngIf="fetchDataproviders.searchUtils.totalResults == 0" class = "uk-alert">
There are no datasources There are no datasources
</div> </div>
<div *ngIf="searchDataprovidersComponent.searchUtils.totalResults > 0"> <div *ngIf="fetchDataproviders.searchUtils.totalResults > 0">
<p> <p>
The results below are discovered through our pilot algorithms. The results below are discovered through our pilot algorithms.
<a href="mailto:">Let us know how we are doing!</a> <a href="mailto:">Let us know how we are doing!</a>
</p> </p>
<div class = "uk-text-right" *ngIf = "searchDataprovidersComponent.searchUtils.totalResults > 10" ><a [href] = "linkToSearchDataproviders" >View all {{searchDataprovidersComponent.searchUtils.totalResults}} results</a></div> <div class = "uk-text-right" *ngIf = "fetchDataproviders.searchUtils.totalResults > 10" ><a [href] = "linkToSearchDataproviders" >View all {{fetchDataproviders.searchUtils.totalResults}} results</a></div>
<search-result [(results)]="searchDataprovidersComponent.results" [(status)]= "searchDataprovidersComponent.status"></search-result> <search-result [(results)]="fetchDataproviders.results" [(status)]= "fetchDataproviders.status"></search-result>
</div> </div>
` `
}) })
@ -26,7 +25,7 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
export class DatasourcesTabComponent { export class DatasourcesTabComponent {
@Input() paramsForSearchLink: string = ""; @Input() paramsForSearchLink: string = "";
@Input() searchDataprovidersComponent : SearchDataprovidersComponent; @Input() fetchDataproviders : FetchDataproviders;
public linkToSearchDataproviders = ""; public linkToSearchDataproviders = "";
constructor () {} constructor () {}

View File

@ -1,25 +1,24 @@
import {Component, Input} from '@angular/core'; import {Component, Input} from '@angular/core';
import { SearchProjectsComponent } from '../../searchPages/simple/searchProjects.component'; import { FetchProjects } from '../../utils/fetchEntitiesClasses/fetchProjects.class';
import {SearchResultComponent} from '../../searchPages/searchUtils/searchResult.component';
import {OpenaireProperties} from '../../utils/properties/openaireProperties'; import {OpenaireProperties} from '../../utils/properties/openaireProperties';
@Component({ @Component({
selector: 'projectsTab', selector: 'projectsTab',
template: ` template: `
<div *ngIf="searchProjectsComponent.searchUtils.totalResults == 0" class = "uk-alert"> <div *ngIf="fetchProjects.searchUtils.totalResults == 0" class = "uk-alert">
There are no projects There are no projects
</div> </div>
<div *ngIf="searchProjectsComponent.searchUtils.totalResults > 0"> <div *ngIf="fetchProjects.searchUtils.totalResults > 0">
<p> <p>
The results below are discovered through our pilot algorithms. The results below are discovered through our pilot algorithms.
<a href="mailto:">Let us know how we are doing!</a> <a href="mailto:">Let us know how we are doing!</a>
</p> </p>
<div class = "uk-text-right" *ngIf = "searchProjectsComponent.searchUtils.totalResults > 10" ><a [href] = "linkToSearchProjects" >View all {{searchProjectsComponent.searchUtils.totalResults}} results</a></div> <div class = "uk-text-right" *ngIf = "fetchProjects.searchUtils.totalResults > 10" ><a [href] = "linkToSearchProjects" >View all {{fetchProjects.searchUtils.totalResults}} results</a></div>
<search-result [(results)]="searchProjectsComponent.results" [(status)]= "searchProjectsComponent.status"></search-result> <search-result [(results)]="fetchProjects.results" [(status)]= "fetchProjects.status"></search-result>
</div> </div>
` `
}) })
@ -27,7 +26,7 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
export class ProjectsTabComponent { export class ProjectsTabComponent {
@Input() paramsForSearchLink: string = ""; @Input() paramsForSearchLink: string = "";
@Input() searchProjectsComponent : SearchProjectsComponent; @Input() fetchProjects : FetchProjects;
public linkToSearchProjects = ""; public linkToSearchProjects = "";
constructor () {} constructor () {}

View File

@ -1,32 +1,30 @@
import {Component, Input} from '@angular/core'; import {Component, Input} from '@angular/core';
import { FetchPublications } from '../../utils/fetchEntitiesClasses/fetchPublications.class';
import { SearchPublicationsComponent } from '../../searchPages/simple/searchPublications.component';
import {SearchResultComponent} from '../../searchPages/searchUtils/searchResult.component';
import {OpenaireProperties} from '../../utils/properties/openaireProperties'; import {OpenaireProperties} from '../../utils/properties/openaireProperties';
@Component({ @Component({
selector: 'publicationsTab', selector: 'publicationsTab',
template: ` template: `
<div *ngIf="searchPublicationsComponent.searchUtils.totalResults == 0" class = "uk-alert"> <div *ngIf="fetchPublications.searchUtils.totalResults == 0" class = "uk-alert">
There are no publications There are no publications
</div> </div>
<div *ngIf="searchPublicationsComponent.searchUtils.totalResults > 0"> <div *ngIf="fetchPublications.searchUtils.totalResults > 0">
<p> <p>
The results below are discovered through our pilot algorithms. The results below are discovered through our pilot algorithms.
<a href="mailto:">Let us know how we are doing!</a> <a href="mailto:">Let us know how we are doing!</a>
</p> </p>
<div class = "uk-text-right" *ngIf = "searchPublicationsComponent.searchUtils.totalResults > 10" ><a [href] = "linkToSearchPublications" >View all {{searchPublicationsComponent.searchUtils.totalResults}} results</a></div> <div class = "uk-text-right" *ngIf = "fetchPublications.searchUtils.totalResults > 10" ><a [href] = "linkToSearchPublications" >View all {{fetchPublications.searchUtils.totalResults}} results</a></div>
<search-result [(results)]="searchPublicationsComponent.results" [(status)]= "searchPublicationsComponent.status"></search-result> <search-result [(results)]="fetchPublications.results" [(status)]= "fetchPublications.status"></search-result>
</div> </div>
` `
}) })
export class PublicationsTabComponent { export class PublicationsTabComponent {
@Input() paramsForSearchLink: string = ""; @Input() paramsForSearchLink: string = "";
@Input() searchPublicationsComponent : SearchPublicationsComponent; @Input() fetchPublications : FetchPublications;
public linkToSearchPublications = ""; public linkToSearchPublications = "";
constructor () {} constructor () {}

View File

@ -1,7 +1,6 @@
import {Component, Input} from '@angular/core'; import {Component, Input} from '@angular/core';
import { SearchPublicationsComponent } from '../../searchPages/simple/searchPublications.component'; import { FetchPublications } from '../../utils/fetchEntitiesClasses/fetchPublications.class';
import {SearchResultComponent} from '../../searchPages/searchUtils/searchResult.component';
import {OpenaireProperties} from '../../utils/properties/openaireProperties'; import {OpenaireProperties} from '../../utils/properties/openaireProperties';
@ -9,11 +8,11 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
selector: 'relatedDatasourcesTab', selector: 'relatedDatasourcesTab',
template: ` template: `
<div *ngIf="searchPublicationsComponent.results.length == 0" class = "uk-alert"> <div *ngIf="fetchPublications.results.length == 0" class = "uk-alert">
There are no related dataproviders There are no related dataproviders
</div> </div>
<div *ngIf="searchPublicationsComponent.results.length > 0"> <div *ngIf="fetchPublications.results.length > 0">
<p> <p>
The results below are discovered through our pilot algorithms. The results below are discovered through our pilot algorithms.
<a href="mailto:">Let us know how we are doing!</a> <a href="mailto:">Let us know how we are doing!</a>
@ -27,7 +26,7 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr *ngFor="let item of searchPublicationsComponent.results"> <tr *ngFor="let item of fetchPublications.results">
<td class="uk-text-center"> <td class="uk-text-center">
<a href="{{item.url}}" target="_blank" class="uk-icon-external-link"> <a href="{{item.url}}" target="_blank" class="uk-icon-external-link">
{{item.name}} {{item.name}}
@ -48,7 +47,7 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
export class RelatedDatasourcesTabComponent { export class RelatedDatasourcesTabComponent {
@Input() dataproviderId: string; @Input() dataproviderId: string;
@Input() searchPublicationsComponent : SearchPublicationsComponent; @Input() fetchPublications : FetchPublications;
private linkToSearchPublications = ""; private linkToSearchPublications = "";
constructor () {} constructor () {}

View File

@ -1,13 +1,13 @@
import {Component, Input} from '@angular/core'; import {Component, Input} from '@angular/core';
import {ActivatedRoute, Params} from '@angular/router'; import {ActivatedRoute, Params} from '@angular/router';
import { SearchPublicationsComponent } from '../../searchPages/simple/searchPublications.component'; import { FetchPublications } from '../../utils/fetchEntitiesClasses/fetchPublications.class';
import { SearchPublicationsService } from '../../services/searchPublications.service'; import { SearchPublicationsService } from '../../services/searchPublications.service';
import { SearchDatasetsComponent } from '../../searchPages/simple/searchDatasets.component'; import { FetchDatasets } from '../../utils/fetchEntitiesClasses/fetchDatasets.class';
import { SearchDatasetsService } from '../../services/searchDatasets.service'; import { SearchDatasetsService } from '../../services/searchDatasets.service';
import { SearchProjectsComponent } from '../../searchPages/simple/searchProjects.component'; import { FetchProjects } from '../../utils/fetchEntitiesClasses/fetchProjects.class';
import { SearchProjectsService } from '../../services/searchProjects.service'; import { SearchProjectsService } from '../../services/searchProjects.service';
import { SearchDataprovidersComponent } from '../../searchPages/simple/searchDataproviders.component'; import { FetchDataproviders } from '../../utils/fetchEntitiesClasses/fetchDataproviders.class';
import { SearchDataprovidersService } from '../../services/searchDataproviders.service'; import { SearchDataprovidersService } from '../../services/searchDataproviders.service';
import {OpenaireProperties} from '../../utils/properties/openaireProperties'; import {OpenaireProperties} from '../../utils/properties/openaireProperties';
@ -23,16 +23,16 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
<i *ngIf="tabs[0].content == 'statisticsTab'" class="uk-icon-pie-chart"></i> <i *ngIf="tabs[0].content == 'statisticsTab'" class="uk-icon-pie-chart"></i>
<span class="uk-badge uk-badge-notification" *ngIf="tabs[0].content=='publicationsTab'"> <span class="uk-badge uk-badge-notification" *ngIf="tabs[0].content=='publicationsTab'">
{{searchPublicationsComponent.searchUtils.totalResults}} {{fetchPublications.searchUtils.totalResults}}
</span> </span>
<span class="uk-badge uk-badge-notification" *ngIf="tabs[0].content=='datasetsTab'"> <span class="uk-badge uk-badge-notification" *ngIf="tabs[0].content=='datasetsTab'">
{{searchDatasetsComponent.searchUtils.totalResults}} {{fetchDatasets.searchUtils.totalResults}}
</span> </span>
<span class="uk-badge uk-badge-notification" *ngIf="tabs[0].content=='projectsTab'"> <span class="uk-badge uk-badge-notification" *ngIf="tabs[0].content=='projectsTab'">
{{searchProjectsComponent.searchUtils.totalResults}} {{fetchProjects.searchUtils.totalResults}}
</span> </span>
<span class="uk-badge uk-badge-notification" *ngIf="tabs[0].content=='datasourcesTab'"> <span class="uk-badge uk-badge-notification" *ngIf="tabs[0].content=='datasourcesTab'">
{{searchDataprovidersComponent.searchUtils.totalResults}} {{fetchDataproviders.searchUtils.totalResults}}
</span> </span>
<span class="uk-badge uk-badge-notification" *ngIf="tabs[0].content=='organizationsTab'"> <span class="uk-badge uk-badge-notification" *ngIf="tabs[0].content=='organizationsTab'">
{{organizations.length}} {{organizations.length}}
@ -48,16 +48,16 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
<i *ngIf="tab.content == 'statisticsTab'" class="uk-icon-pie-chart"></i> <i *ngIf="tab.content == 'statisticsTab'" class="uk-icon-pie-chart"></i>
<span class="uk-badge uk-badge-notification" *ngIf="tab.content=='publicationsTab'"> <span class="uk-badge uk-badge-notification" *ngIf="tab.content=='publicationsTab'">
{{searchPublicationsComponent.searchUtils.totalResults}} {{fetchPublications.searchUtils.totalResults}}
</span> </span>
<span class="uk-badge uk-badge-notification" *ngIf="tab.content=='datasetsTab'"> <span class="uk-badge uk-badge-notification" *ngIf="tab.content=='datasetsTab'">
{{searchDatasetsComponent.searchUtils.totalResults}} {{fetchDatasets.searchUtils.totalResults}}
</span> </span>
<span class="uk-badge uk-badge-notification" *ngIf="tab.content=='projectsTab'"> <span class="uk-badge uk-badge-notification" *ngIf="tab.content=='projectsTab'">
{{searchProjectsComponent.searchUtils.totalResults}} {{fetchProjects.searchUtils.totalResults}}
</span> </span>
<span class="uk-badge uk-badge-notification" *ngIf="tab.content=='datasourcesTab'"> <span class="uk-badge uk-badge-notification" *ngIf="tab.content=='datasourcesTab'">
{{searchDataprovidersComponent.searchUtils.totalResults}} {{fetchDataproviders.searchUtils.totalResults}}
</span> </span>
<span class="uk-badge uk-badge-notification" *ngIf="tab.content=='organizationsTab'"> <span class="uk-badge uk-badge-notification" *ngIf="tab.content=='organizationsTab'">
{{organizations.length}} {{organizations.length}}
@ -70,46 +70,37 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
<li *ngIf="tabs.length>0" id="{{tabs[0].content}}"> <li *ngIf="tabs.length>0" id="{{tabs[0].content}}">
<publicationsTab *ngIf="tabs[0].content=='publicationsTab'" <publicationsTab *ngIf="tabs[0].content=='publicationsTab'"
[paramsForSearchLink]="paramsForSearchLink" [paramsForSearchLink]="paramsForSearchLink"
[searchPublicationsComponent]="searchPublicationsComponent"> [fetchPublications]="fetchPublications">
</publicationsTab> </publicationsTab>
<datasetsTab *ngIf="tabs[0].content=='datasetsTab'" <datasetsTab *ngIf="tabs[0].content=='datasetsTab'"
[paramsForSearchLink]="paramsForSearchLink" [paramsForSearchLink]="paramsForSearchLink"
[searchDatasetsComponent]="searchDatasetsComponent"> [fetchDatasets]="fetchDatasets">
</datasetsTab> </datasetsTab>
<projectsTab *ngIf="tabs[0].content=='projectsTab'" <projectsTab *ngIf="tabs[0].content=='projectsTab'"
[paramsForSearchLink]="paramsForSearchLink" [paramsForSearchLink]="paramsForSearchLink"
[searchProjectsComponent]="searchProjectsComponent"> [fetchProjects]="fetchProjects">
</projectsTab> </projectsTab>
<datasourcesTab *ngIf="tabs[0].content=='datasourcesTab'" <datasourcesTab *ngIf="tabs[0].content=='datasourcesTab'"
[paramsForSearchLink]="paramsForSearchLink" [paramsForSearchLink]="paramsForSearchLink"
[searchDataprovidersComponent]="searchDataprovidersComponent"> [fetchDataproviders]="fetchDataproviders">
</datasourcesTab> </datasourcesTab>
<organizationsTab *ngIf="tabs[0].content=='organizationsTab'" <organizationsTab *ngIf="tabs[0].content=='organizationsTab'"
[organizations]="organizations"> [organizations]="organizations">
</organizationsTab> </organizationsTab>
<relatedDatasourcesTab *ngIf="tabs[0].content=='relatedDatasourcesTab'" <relatedDatasourcesTab *ngIf="tabs[0].content=='relatedDatasourcesTab'"
[searchPublicationsComponent]="searchPublicationsComponentAggregators"> [fetchPublications]="fetchPublicationsAggregators">
</relatedDatasourcesTab> </relatedDatasourcesTab>
<!--div *ngIf="tabs[0].content=='metricsTab' && metrics == undefined" class = "uk-alert uk-alert-warning">
Metrics are currently unavailable
</div>
<div *ngIf="tabs[0].content=='metricsTab' && metrics != undefined" class="uk-panel uk-panel-box">
<b>Views: </b>{{metrics}}
</div-->
<!--statisticsTab *ngIf="tabs[0].content=='statisticsTab'"
[statistics]="statistics" [show]=statsClicked>
</statisticsTab-->
<div *ngIf="tabs[0].content=='statisticsTab' && statsClicked"> <div *ngIf="tabs[0].content=='statisticsTab' && statsClicked">
<div *ngIf="searchPublicationsComponent.searchUtils.totalResults == 0 && searchDatasetsComponent.searchUtils.totalResults == 0" class = "uk-alert"> <div *ngIf="fetchPublications.searchUtils.totalResults == 0 && fetchDatasets.searchUtils.totalResults == 0" class = "uk-alert">
There are no statistics There are no statistics
</div> </div>
<div *ngIf="(searchPublicationsComponent.searchUtils.totalResults != 0 || searchDatasetsComponent.searchUtils.totalResults != 0)"> <div *ngIf="(fetchPublications.searchUtils.totalResults != 0 || fetchDatasets.searchUtils.totalResults != 0)">
<p> <p>
The results below are discovered through our pilot algorithms. The results below are discovered through our pilot algorithms.
<a href="mailto:">Let us know how we are doing!</a> <a href="mailto:">Let us know how we are doing!</a>
@ -120,15 +111,16 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
<i-frame [url]=docsTypesUrl width="800" height="350"></i-frame> <i-frame [url]=docsTypesUrl width="800" height="350"></i-frame>
</div> </div>
<div *ngIf="(searchPublicationsComponent.searchUtils.totalResults > 0)"> <div *ngIf="(fetchPublications.searchUtils.totalResults > 0)">
<div> <div>
<p class="uk-text-bold">Funders in Data Providers Publications</p> <p class="uk-text-bold">Funders in Data Providers Publications</p>
<i-frame [url]=pubsFunderUrl width="800" height="350"></i-frame> <i-frame [url]=pubsFunderUrl width="800" height="350"></i-frame>
<p class="uk-text-bold">Projects with most Publications</p> <p class="uk-text-bold">Projects with most Publications</p>
<i-frame [url]=pubsProjectsUrl width="800" height="350"></i-frame> <i-frame [url]=pubsProjectsUrl width="800" height="350"></i-frame>
</div> </div>
<div *ngIf="(searchDatasetsComponent.searchUtils.totalResults > 0)"> <div *ngIf="(fetchDatasets.searchUtils.totalResults > 0)">
<div> <div>
<p class="uk-text-bold">Projects with most Research Data</p> <p class="uk-text-bold">Projects with most Research Data</p>
<i-frame [url]=dataProjectsUrl width="800" height="350"></i-frame> <i-frame [url]=dataProjectsUrl width="800" height="350"></i-frame>
@ -139,17 +131,17 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
</div> </div>
<projectsTab *ngIf="tabs[0].content=='projectsTab'" <projectsTab *ngIf="tabs[0].content=='projectsTab'"
[paramsForSearchLink]="paramsForSearchLink" [paramsForSearchLink]="paramsForSearchLink"
[searchProjectsComponent]="searchProjectsComponent"> [fetchProjects]="fetchProjects">
</projectsTab> </projectsTab>
<datasourcesTab *ngIf="tabs[0].content=='datasourcesTab'" <datasourcesTab *ngIf="tabs[0].content=='datasourcesTab'"
[paramsForSearchLink]="paramsForSearchLink" [paramsForSearchLink]="paramsForSearchLink"
[searchDataprovidersComponent]="searchDataprovidersComponent"> [fetchDataproviders]="fetchDataproviders">
</datasourcesTab> </datasourcesTab>
<organizationsTab *ngIf="tabs[0].content=='organizationsTab'" <organizationsTab *ngIf="tabs[0].content=='organizationsTab'"
[organizations]="organizations"> [organizations]="organizations">
</organizationsTab> </organizationsTab>
<relatedDatasourcesTab *ngIf="tabs[0].content=='relatedDatasourcesTab'" <relatedDatasourcesTab *ngIf="tabs[0].content=='relatedDatasourcesTab'"
[searchPublicationsComponent]="searchPublicationsComponentAggregators"> [fetchPublications]="fetchPublicationsAggregators">
</relatedDatasourcesTab> </relatedDatasourcesTab>
<!--div *ngIf="tabs[0].content=='metricsTab' && metrics == undefined" class = "uk-alert uk-alert-warning"> <!--div *ngIf="tabs[0].content=='metricsTab' && metrics == undefined" class = "uk-alert uk-alert-warning">
Metrics are currently unavailable Metrics are currently unavailable
@ -171,38 +163,38 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
<li *ngFor="let tab of tabs; let i=index" id="{{tab.content}}"> <li *ngFor="let tab of tabs; let i=index" id="{{tab.content}}">
<publicationsTab *ngIf="i>0 && tab.content=='publicationsTab'" <publicationsTab *ngIf="i>0 && tab.content=='publicationsTab'"
[paramsForSearchLink]="paramsForSearchLink" [paramsForSearchLink]="paramsForSearchLink"
[searchPublicationsComponent] = "searchPublicationsComponent"> [fetchPublications] = "fetchPublications">
</publicationsTab> </publicationsTab>
<datasetsTab *ngIf="i>0 && tab.content=='datasetsTab'" <datasetsTab *ngIf="i>0 && tab.content=='datasetsTab'"
[paramsForSearchLink]="paramsForSearchLink" [paramsForSearchLink]="paramsForSearchLink"
[searchDatasetsComponent]="searchDatasetsComponent"> [fetchDatasets]="fetchDatasets">
</datasetsTab> </datasetsTab>
<projectsTab *ngIf="i>0 && tab.content=='projectsTab'" <projectsTab *ngIf="i>0 && tab.content=='projectsTab'"
[paramsForSearchLink]="paramsForSearchLink" [paramsForSearchLink]="paramsForSearchLink"
[searchProjectsComponent]="searchProjectsComponent"> [fetchProjects]="fetchProjects">
</projectsTab> </projectsTab>
<datasourcesTab *ngIf="i>0 && tab.content=='datasourcesTab'" <datasourcesTab *ngIf="i>0 && tab.content=='datasourcesTab'"
[paramsForSearchLink]="paramsForSearchLink" [paramsForSearchLink]="paramsForSearchLink"
[searchDataprovidersComponent]="searchDataprovidersComponent"> [fetchDataproviders]="fetchDataproviders">
</datasourcesTab> </datasourcesTab>
<organizationsTab *ngIf="i>0 && tab.content=='organizationsTab'" <organizationsTab *ngIf="i>0 && tab.content=='organizationsTab'"
[organizations]="organizations"> [organizations]="organizations">
</organizationsTab> </organizationsTab>
<relatedDatasourcesTab *ngIf="i>0 && tab.content=='relatedDatasourcesTab'" <relatedDatasourcesTab *ngIf="i>0 && tab.content=='relatedDatasourcesTab'"
[dataproviderId]="id" [dataproviderId]="id"
[searchPublicationsComponent]="searchPublicationsComponentAggregators"> [fetchPublications]="fetchPublicationsAggregators">
</relatedDatasourcesTab> </relatedDatasourcesTab>
<!--statisticsTab *ngIf="i>0 && tab.content=='statisticsTab'" <!--statisticsTab *ngIf="i>0 && tab.content=='statisticsTab'"
[searchPublicationsComponent] = "searchPublicationsComponent" [fetchPublications] = "fetchPublications"
[searchDatasetsComponent]="searchDatasetsComponent" [id]="id"> [fetchDatasets]="fetchDatasets" [id]="id">
</statisticsTab--> </statisticsTab-->
<div *ngIf="i>0 && tab.content=='statisticsTab' && statsClicked"> <div *ngIf="i>0 && tab.content=='statisticsTab' && statsClicked">
<div *ngIf="searchPublicationsComponent.searchUtils.totalResults == 0 && searchDatasetsComponent.searchUtils.totalResults == 0" class = "uk-alert"> <div *ngIf="fetchPublications.searchUtils.totalResults == 0 && fetchDatasets.searchUtils.totalResults == 0" class = "uk-alert">
There are no statistics There are no statistics
</div> </div>
<div *ngIf="(searchPublicationsComponent.searchUtils.totalResults != 0 || searchDatasetsComponent.searchUtils.totalResults != 0)"> <div *ngIf="(fetchPublications.searchUtils.totalResults != 0 || fetchDatasets.searchUtils.totalResults != 0)">
<p> <p>
The results below are discovered through our pilot algorithms. The results below are discovered through our pilot algorithms.
<a href="mailto:">Let us know how we are doing!</a> <a href="mailto:">Let us know how we are doing!</a>
@ -214,15 +206,18 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
</div> </div>
<div *ngIf="(searchPublicationsComponent.searchUtils.totalResults > 0)"> <div *ngIf="(fetchPublications.searchUtils.totalResults > 0)">
<div> <div>
<p class="uk-text-bold">Funders in Data Providers Publications</p> <p class="uk-text-bold">Funders in Data Providers Publications</p>
<i-frame [url]=pubsFunderUrl width="800" height="350"></i-frame> <i-frame [url]=pubsFunderUrl width="800" height="350"></i-frame>
<p class="uk-text-bold">Projects with most Publications</p> <p class="uk-text-bold">Projects with most Publications</p>
<i-frame [url]=pubsProjectsUrl width="800" height="350"></i-frame> <i-frame [url]=pubsProjectsUrl width="800" height="350"></i-frame>
</div> </div>
<div *ngIf="(searchDatasetsComponent.searchUtils.totalResults > 0)"> <div *ngIf="(fetchDatasets.searchUtils.totalResults > 0)">
<div> <div>
<p class="uk-text-bold">Projects with most Research Data</p> <p class="uk-text-bold">Projects with most Research Data</p>
<i-frame [url]=dataProjectsUrl width="800" height="350"></i-frame> <i-frame [url]=dataProjectsUrl width="800" height="350"></i-frame>
@ -231,6 +226,7 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
</div> </div>
</div> </div>
<metrics *ngIf="i>0 && tab.content=='metricsTab' && metricsClicked" <metrics *ngIf="i>0 && tab.content=='metricsTab' && metricsClicked"
[id]="id" [type]="'datasources'" [name]="name" (metricsResults)="metricsResults($event)"> [id]="id" [type]="'datasources'" [name]="name" (metricsResults)="metricsResults($event)">
</metrics> </metrics>
@ -280,22 +276,22 @@ export class TabsComponent {
private dataProjectsUrl:string ; private dataProjectsUrl:string ;
private pubsProjectsUrl:string; private pubsProjectsUrl:string;
public searchPublicationsComponent : SearchPublicationsComponent; public fetchPublications : FetchPublications;
public searchDatasetsComponent: SearchDatasetsComponent; public fetchDatasets: FetchDatasets;
public searchProjectsComponent: SearchProjectsComponent; public fetchProjects: FetchProjects;
public searchDataprovidersComponent: SearchDataprovidersComponent; public fetchDataproviders: FetchDataproviders;
public searchPublicationsComponentAggregators: SearchPublicationsComponent; public fetchPublicationsAggregators: FetchPublications;
constructor (private route: ActivatedRoute, constructor (private route: ActivatedRoute,
private _searchPublicationsService: SearchPublicationsService, private _searchPublicationsService: SearchPublicationsService,
private _searchDatasetsService: SearchDatasetsService, private _searchDatasetsService: SearchDatasetsService,
private _searchProjectsService: SearchProjectsService, private _searchProjectsService: SearchProjectsService,
private _searchDataprovidersService: SearchDataprovidersService) { private _searchDataprovidersService: SearchDataprovidersService) {
this.searchPublicationsComponent = new SearchPublicationsComponent(this.route, this._searchPublicationsService); this.fetchPublications = new FetchPublications(this._searchPublicationsService);
this.searchDatasetsComponent = new SearchDatasetsComponent(this.route, this._searchDatasetsService); this.fetchDatasets = new FetchDatasets(this._searchDatasetsService);
this.searchProjectsComponent = new SearchProjectsComponent(this.route, this._searchProjectsService); this.fetchProjects = new FetchProjects(this._searchProjectsService);
this.searchDataprovidersComponent = new SearchDataprovidersComponent(this.route, this._searchDataprovidersService); this.fetchDataproviders = new FetchDataproviders(this._searchDataprovidersService);
this.searchPublicationsComponentAggregators = new SearchPublicationsComponent(this.route, this._searchPublicationsService); this.fetchPublicationsAggregators = new FetchPublications(this._searchPublicationsService);
} }
ngOnInit() { ngOnInit() {
@ -362,60 +358,61 @@ export class TabsComponent {
private searchPublications(page: number, size: number) { private searchPublications(page: number, size: number) {
if(this.reloadPublications) { if(this.reloadPublications) {
this.searchPublicationsComponent.getResultsForDataproviders(this.id, this.resultsBy, page, size); this.fetchPublications.getResultsForDataproviders(this.id, this.resultsBy, page, size);
} }
this.reloadPublications = false; this.reloadPublications = false;
} }
private countPublications(page: number, size: number) { private countPublications(page: number, size: number) {
this.searchPublicationsComponent.getResultsForDataproviders(this.id, this.resultsBy, page, size); this.fetchPublications.getResultsForDataproviders(this.id, this.resultsBy, page, size);
} }
private searchDatasets(page: number, size: number) { private searchDatasets(page: number, size: number) {
if(this.reloadDatasets) { if(this.reloadDatasets) {
this.searchDatasetsComponent.getResultsForDataproviders(this.id, this.resultsBy, page, size); this.fetchDatasets.getResultsForDataproviders(this.id, this.resultsBy, page, size);
} }
this.reloadDatasets = false; this.reloadDatasets = false;
} }
private countDatasets(page: number, size: number) { private countDatasets(page: number, size: number) {
this.searchDatasetsComponent.getResultsForDataproviders(this.id, this.resultsBy, page, size); this.fetchDatasets.getResultsForDataproviders(this.id, this.resultsBy, page, size);
} }
private searchProjects(page: number, size: number) { private searchProjects(page: number, size: number) {
if(this.reloadProjects) { if(this.reloadProjects) {
this.searchProjectsComponent.getResultsForDataproviders(this.id, page, size); this.fetchProjects.getResultsForDataproviders(this.id, page, size);
} }
this.reloadProjects = false; this.reloadProjects = false;
} }
private countProjects(page: number, size: number) { private countProjects(page: number, size: number) {
this.searchProjectsComponent.getResultsForDataproviders(this.id, page, size); this.fetchProjects.getResultsForDataproviders(this.id, page, size);
} }
private searchDatasources(page: number, size: number) { private searchDatasources(page: number, size: number) {
console.info("search intro"); console.info("search intro");
if(this.reloadDataproviders) { if(this.reloadDataproviders) {
console.info("request");
this.searchDataprovidersComponent.getResultsForDataproviders(this.id, page, size); this.fetchDataproviders.getResultsForDataproviders(this.id, page, size);
} }
this.reloadDataproviders = false; this.reloadDataproviders = false;
} }
private countDatasources(page: number, size: number) { private countDatasources(page: number, size: number) {
this.searchDataprovidersComponent.getResultsForDataproviders(this.id, page, size); this.fetchDataproviders.getResultsForDataproviders(this.id, page, size);
} }
private searchRelatedDatasources(page: number, size: number) { private searchRelatedDatasources(page: number, size: number) {
if(this.reloadRelatedDatasources) { if(this.reloadRelatedDatasources) {
this.searchPublicationsComponentAggregators.getAggregatorResults(this.id, page, size); this.fetchPublicationsAggregators.getAggregatorResults(this.id, page, size);
} }
this.reloadRelatedDatasources = false; this.reloadRelatedDatasources = false;
} }
private countRelatedDatasources(page: number, size: number) { private countRelatedDatasources(page: number, size: number) {
//searchPublicationsComponentAggregator //fetchPublicationsAggregator
this.searchPublicationsComponentAggregators.getAggregatorResults(this.id, page, size); this.fetchPublicationsAggregators.getAggregatorResults(this.id, page, size);
} }
public metricsResults($event) { public metricsResults($event) {

View File

@ -0,0 +1,13 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { DatasetComponent } from './dataset.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: DatasetComponent }
])
]
})
export class DatasetRoutingModule { }

View File

@ -1,6 +1,6 @@
import {Component, ViewChild} from '@angular/core'; import {Component, ViewChild} from '@angular/core';
import {Observable} from 'rxjs/Observable'; import {Observable} from 'rxjs/Observable';
import {DatasetService} from '../../services/dataset.service'; import {DatasetService} from './dataset.service';
import {DatasetInfo} from '../../utils/entities/datasetInfo'; import {DatasetInfo} from '../../utils/entities/datasetInfo';
import {ActivatedRoute} from '@angular/router'; import {ActivatedRoute} from '@angular/router';
import {OpenaireProperties} from '../../utils/properties/openaireProperties' import {OpenaireProperties} from '../../utils/properties/openaireProperties'

View File

@ -0,0 +1,33 @@
//import {MaterialModule} from '@angular/material';
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { SharedModule } from '../../shared/shared.module';
import { DatasetService} from './dataset.service';
import { DatasetComponent } from './dataset.component';
import { DatasetRoutingModule } from './dataset-routing.module';
import {MetricsModule} from '../metrics.module';
import {IFrameModule} from '../../utils/iframe.module';
import {AltMetricsModule} from '../../utils/altmetrics.module';
import { ResultLandingModule } from '../resultLanding.module';
import { LandingModule } from '../landing.module';
@NgModule({
imports: [
//MaterialModule.forRoot(),
CommonModule, FormsModule,SharedModule, LandingModule,
ResultLandingModule, DatasetRoutingModule, MetricsModule, IFrameModule, AltMetricsModule
],
declarations: [
DatasetComponent
],
providers:[
DatasetService
],
exports: [
DatasetComponent
]
})
export class DatasetModule { }

View File

@ -1,12 +1,12 @@
import {Injectable} from '@angular/core'; import {Injectable} from '@angular/core';
import {Http, Response} from '@angular/http'; import {Http, Response} from '@angular/http';
import {Observable} from 'rxjs/Observable'; import {Observable} from 'rxjs/Observable';
import {DatasetInfo} from '../utils/entities/datasetInfo'; import {DatasetInfo} from '../../utils/entities/datasetInfo';
import {OpenaireProperties} from '../utils/properties/openaireProperties'; import {OpenaireProperties} from '../../utils/properties/openaireProperties';
import 'rxjs/add/observable/of'; import 'rxjs/add/observable/of';
import 'rxjs/add/operator/do'; import 'rxjs/add/operator/do';
import 'rxjs/add/operator/share'; import 'rxjs/add/operator/share';
import { CacheService } from '../shared/cache.service'; import { CacheService } from '../../shared/cache.service';
@Injectable() @Injectable()
export class DatasetService { export class DatasetService {

View File

@ -0,0 +1,13 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { HtmlProjectReportComponent } from './htmlProjectReport.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: HtmlProjectReportComponent }
])
]
})
export class HtmlProjectReportRoutingModule { }

View File

@ -2,11 +2,11 @@ import {Component} from '@angular/core';
import {Observable} from 'rxjs/Observable'; import {Observable} from 'rxjs/Observable';
import {ActivatedRoute, Params} from '@angular/router'; import {ActivatedRoute, Params} from '@angular/router';
import {isBrowser, isNode} from 'angular2-universal'; import {isBrowser, isNode} from 'angular2-universal';
import {HtmlProgressReportService} from '../../services/htmlProgressReport.service'; import {HtmlProjectReportService} from './htmlProjectReport.service';
import {ProjectService} from '../../services/project.service'; import {ProjectService} from '../project/project.service';
@Component({ @Component({
selector: 'htmlProgressReport', selector: 'htmlProjectReport',
template: ` template: `
<div class="uk-container uk-margin-top"> <div class="uk-container uk-margin-top">
<button class="uk-button uk-button-primary btn" (click)="copied = true;"> <button class="uk-button uk-button-primary btn" (click)="copied = true;">
@ -23,7 +23,7 @@ import {ProjectService} from '../../services/project.service';
</div> </div>
` `
}) })
export class HtmlProgressReportComponent{ export class HtmlProjectReportComponent{
public projectId: string; public projectId: string;
public totalResults: number; public totalResults: number;
@ -38,7 +38,7 @@ export class HtmlProgressReportComponent{
public copied: boolean = false; public copied: boolean = false;
constructor ( private route: ActivatedRoute, constructor ( private route: ActivatedRoute,
private htmlService: HtmlProgressReportService, private htmlService: HtmlProjectReportService,
private _projectService: ProjectService) { private _projectService: ProjectService) {
} }

View File

@ -0,0 +1,26 @@
//import {MaterialModule} from '@angular/material';
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { ProjectServiceModule} from '../project/projectService.module';
import { CacheService } from '../../shared/cache.service';
import {HtmlProjectReportService} from './htmlProjectReport.service';
import {HtmlProjectReportComponent} from './htmlProjectReport.component';
import { HtmlProjectReportRoutingModule } from './htmlProjectReport-routing.module';
@NgModule({
imports: [
CommonModule, FormsModule, HtmlProjectReportRoutingModule, ProjectServiceModule
],
declarations: [
HtmlProjectReportComponent
],
providers:[
HtmlProjectReportService,CacheService
],
exports: [
HtmlProjectReportComponent
]
})
export class HtmlProjectReportModule { }

View File

@ -1,11 +1,11 @@
import {Injectable} from '@angular/core'; import {Injectable} from '@angular/core';
import {Http, Response} from '@angular/http'; import {Http, Response} from '@angular/http';
import {Observable} from 'rxjs/Observable'; import {Observable} from 'rxjs/Observable';
import {OpenaireProperties} from '../utils/properties/openaireProperties'; import {OpenaireProperties} from '../../utils/properties/openaireProperties';
import 'rxjs/add/operator/do'; import 'rxjs/add/operator/do';
import { CacheService } from '../shared/cache.service'; import { CacheService } from '../../shared/cache.service';
@Injectable() @Injectable()
export class HtmlProgressReportService { export class HtmlProjectReportService {
constructor(private http: Http, public _cache: CacheService) {} constructor(private http: Http, public _cache: CacheService) {}

View File

@ -1,26 +0,0 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
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';
import { DataProviderComponent } from './dataProvider/dataProvider.component'
import { HtmlProgressReportComponent } from './project/htmlProgressReport.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: 'search/person', component: PersonComponent },
{ path: 'search/project', component: ProjectComponent },
{ path: 'search/organization', component: OrganizationComponent },
{ path: 'search/dataset', component: DatasetComponent },
{ path: 'search/publication', component: PublicationComponent },
{ path: 'search/dataprovider', component: DataProviderComponent},
{ path: 'openaire', component: HtmlProgressReportComponent}
])
]
})
export class LandingRoutingModule { }

View File

@ -1,61 +1,25 @@
//import {MaterialModule} from '@angular/material'; /* This module contains all common components for all landing pages */
import { NgModule} from '@angular/core'; import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
import {UtilsModule} from '../utils/utils.module';
import {ServicesModule} from '../services/services.module';
import {SearchModule} from '../searchPages/search.module';
import {TabPagingComponent} from './tabPaging.component'; import {TabPagingComponent} from './tabPaging.component';
import {TabTableComponent} from './tabTable.component'; import {TabTableComponent} from './tabTable.component';
import {ShowTitleComponent} from './showTitle.component'; import {ShowTitleComponent} from './showTitle.component';
import {ShowAuthorsComponent} from './showAuthors.component';
import {ShowIdentifiersComponent} from './showIdentifiers.component';
import {ShowSubjectsComponent} from './showSubjects.component';
import {MetricsComponent} from './metrics.component';
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 {OrganizationsTabComponent} from './dataProvider/organizationsTab.component';
import {RelatedDatasourcesTabComponent} from './dataProvider/relatedDatasourcesTab.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';
import { LandingRoutingModule } from './landing-routing.module';
import { HtmlProgressReportComponent } from './project/htmlProgressReport.component';
@NgModule({ @NgModule({
imports: [ imports: [
//MaterialModule.forRoot(),
CommonModule, FormsModule,
UtilsModule,
ServicesModule,
SearchModule,
LandingRoutingModule
CommonModule, FormsModule,
], ],
declarations: [ declarations: [
TabPagingComponent, TabTableComponent, ShowTitleComponent, ShowAuthorsComponent,ShowIdentifiersComponent,ShowSubjectsComponent, MetricsComponent, TabPagingComponent, TabTableComponent, ShowTitleComponent,
PublicationsTabComponent, DatasetsTabComponent, StatisticsTabComponent, ProjectsTabComponent, DatasourcesTabComponent, OrganizationsTabComponent, RelatedDatasourcesTabComponent, TabsComponent,
DataProviderComponent, PersonComponent, ProjectComponent, PublicationComponent, OrganizationComponent, DatasetComponent,
HtmlProgressReportComponent
], ],
providers:[ providers:[
], ],
exports: [ exports: [
DataProviderComponent, PersonComponent, ProjectComponent, PublicationComponent, OrganizationComponent, DatasetComponent, TabPagingComponent, TabTableComponent, ShowTitleComponent,
HtmlProgressReportComponent
] ]
}) })
export class LandingModule { } export class LandingModule { }

View File

@ -0,0 +1,26 @@
/* This module contains all common components for all landing pages */
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import {MetricsComponent} from './metrics.component';
import { MetricsService } from '../services/metrics.service';
@NgModule({
imports: [
CommonModule, FormsModule
],
declarations: [
MetricsComponent
],
providers:[
MetricsService
],
exports: [
MetricsComponent
]
})
export class MetricsModule { }

View File

@ -0,0 +1,13 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { OrganizationComponent } from './organization.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: OrganizationComponent }
])
]
})
export class OrganizationRoutingModule { }

View File

@ -45,7 +45,7 @@
{{organizationInfo.dataProviders.length}} {{organizationInfo.dataProviders.length}}
</span--> </span-->
<span class="uk-badge uk-badge-notification"> <span class="uk-badge uk-badge-notification">
{{searchDataprovidersComponent.searchUtils.totalResults}} {{fetchDataproviders.searchUtils.totalResults}}
</span> </span>
</a> </a>
</li> </li>
@ -115,18 +115,18 @@
<li id="dataProvidersTab"> <li id="dataProvidersTab">
<!--showDataProviders [dataProviders]="organizationInfo.dataProviders"></showDataProviders--> <!--showDataProviders [dataProviders]="organizationInfo.dataProviders"></showDataProviders-->
<div *ngIf="searchDataprovidersComponent.searchUtils.totalResults == 0" class = "uk-alert"> <div *ngIf="fetchDataproviders.searchUtils.totalResults == 0" class = "uk-alert">
There are no dataproviders There are no dataproviders
</div> </div>
<div *ngIf="searchDataprovidersComponent.searchUtils.totalResults > 0"> <div *ngIf="fetchDataproviders.searchUtils.totalResults > 0">
<p> <p>
The results below are discovered through our pilot algorithms. The results below are discovered through our pilot algorithms.
<a href="mailto:">Let us know how we are doing!</a> <a href="mailto:">Let us know how we are doing!</a>
</p> </p>
<div class = "uk-text-right" *ngIf = "searchDataprovidersComponent.searchUtils.totalResults > 10" ><a [href] = "linkToSearchDataproviders" >View all {{searchDataprovidersComponent.searchUtils.totalResults}} results</a></div> <div class = "uk-text-right" *ngIf = "fetchDataproviders.searchUtils.totalResults > 10" ><a [href] = "linkToSearchDataproviders" >View all {{fetchDataproviders.searchUtils.totalResults}} results</a></div>
<search-result [(results)]="searchDataprovidersComponent.results" [(status)]= "searchDataprovidersComponent.status"></search-result> <search-result [(results)]="fetchDataproviders.results" [(status)]= "fetchDataproviders.status"></search-result>
</div> </div>
</li> </li>
<!--li id="metricsTab"> <!--li id="metricsTab">

View File

@ -4,14 +4,11 @@ import {ActivatedRoute} from '@angular/router';
import {OrganizationService} from '../../services/organization.service'; import {OrganizationService} from '../../services/organization.service';
import {OrganizationInfo} from '../../utils/entities/organizationInfo'; import {OrganizationInfo} from '../../utils/entities/organizationInfo';
import {ReportsService} from '../../services/reports.service'; import {ReportsService} from '../../services/reports.service';
import { SearchDataprovidersComponent } from '../../searchPages/simple/searchDataproviders.component'; import { FetchDataproviders } from '../../utils/fetchEntitiesClasses/fetchDataproviders.class';
import { SearchDataprovidersService } from '../../services/searchDataproviders.service'; import { SearchDataprovidersService } from '../../services/searchDataproviders.service';
import {SearchResultComponent} from '../../searchPages/searchUtils/searchResult.component';
import { SearchPublicationsComponent } from '../../searchPages/simple/searchPublications.component';
import { SearchPublicationsService } from '../../services/searchPublications.service';
import {OpenaireProperties} from '../../utils/properties/openaireProperties'; import {OpenaireProperties} from '../../utils/properties/openaireProperties';
import {ExportCSVComponent} from '../../utils/exportCSV.component';
@Component({ @Component({
selector: 'organization', selector: 'organization',
@ -38,19 +35,16 @@ export class OrganizationComponent {
subDataproviders: any; subDataproviders: any;
subDataprovidersCount: any; subDataprovidersCount: any;
private searchDataprovidersComponent : SearchDataprovidersComponent; private fetchDataproviders : FetchDataproviders;
private linkToSearchDataproviders = ""; private linkToSearchDataproviders = "";
private searchPublicationsComponent : SearchPublicationsComponent;
constructor (private _organizationService: OrganizationService, constructor (private _organizationService: OrganizationService,
private route: ActivatedRoute, private route: ActivatedRoute,
private _searchDataprovidersService: SearchDataprovidersService, private _searchDataprovidersService: SearchDataprovidersService,
private _searchPublicationsService: SearchPublicationsService,
private _reportsService: ReportsService) { private _reportsService: ReportsService) {
console.info('organization constructor'); console.info('organization constructor');
this.searchDataprovidersComponent = new SearchDataprovidersComponent(this.route, this._searchDataprovidersService); this.fetchDataproviders = new FetchDataproviders(this._searchDataprovidersService);
this.searchPublicationsComponent = new SearchPublicationsComponent(this.route, this._searchPublicationsService);
} }
ngOnInit() { ngOnInit() {
@ -73,8 +67,8 @@ export class OrganizationComponent {
this.subDataprovidersCount = this.route.queryParams.subscribe(params => { this.subDataprovidersCount = this.route.queryParams.subscribe(params => {
this._searchDataprovidersService.numOfDataproviders("organizations/"+this.organizationId+"/datasources/count").subscribe( this._searchDataprovidersService.numOfDataproviders("organizations/"+this.organizationId+"/datasources/count").subscribe(
data => { data => {
this.searchDataprovidersComponent.searchUtils.totalResults = data; this.fetchDataproviders.searchUtils.totalResults = data;
console.info("this.searchDataprovidersComponent.searchUtils.totalResults = "+this.searchDataprovidersComponent.searchUtils.totalResults); console.info("this.fetchDataproviders.searchUtils.totalResults = "+this.fetchDataproviders.searchUtils.totalResults);
}, },
err => { err => {
console.log(err); console.log(err);
@ -82,7 +76,7 @@ export class OrganizationComponent {
); );
}) })
*/ */
this.searchDataprovidersComponent.getNumForEntity("organization", this.organizationId); this.fetchDataproviders.getNumForEntity("organization", this.organizationId);
} }
@ -160,12 +154,12 @@ export class OrganizationComponent {
//} //}
private searchDataproviders() { private searchDataproviders() {
this.searchDataprovidersComponent.getResultsForEntity("organization", this.organizationId, 1, 10); this.fetchDataproviders.getResultsForEntity("organization", this.organizationId, 1, 10);
this.linkToSearchDataproviders = OpenaireProperties.getLinkToAdvancedSearchDataProviders() + "?organization=" + this.organizationId + "&or=and";; this.linkToSearchDataproviders = OpenaireProperties.getLinkToAdvancedSearchDataProviders() + "?organization=" + this.organizationId + "&or=and";;
} }
private searchDataprovidersInit() { private searchDataprovidersInit() {
if(this.subDataproviders == undefined && this.searchDataprovidersComponent.searchUtils.totalResults > 0) { if(this.subDataproviders == undefined && this.fetchDataproviders.searchUtils.totalResults > 0) {
this.subDataproviders = this.route.queryParams.subscribe(params => { this.subDataproviders = this.route.queryParams.subscribe(params => {
this.searchDataproviders(); this.searchDataproviders();
}); });

View File

@ -0,0 +1,33 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { OrganizationServiceModule} from '../../services/organizationService.module';
import { OrganizationComponent } from './organization.component';
import { OrganizationRoutingModule } from './organization-routing.module';
import { LandingModule } from '../landing.module';
import {SearchResultsModule } from '../../searchPages/searchUtils/searchResults.module';
import {DataProvidersServiceModule} from '../../services/dataProvidersService.module';
import {ReportsServiceModule} from '../../services/reportsService.module';
@NgModule({
imports: [
CommonModule, FormsModule,
LandingModule,
OrganizationRoutingModule,
SearchResultsModule,
DataProvidersServiceModule,
ReportsServiceModule,
OrganizationServiceModule
],
declarations: [
OrganizationComponent
],
providers:[
],
exports: [
OrganizationComponent
]
})
export class OrganizationModule { }

View File

@ -0,0 +1,13 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { PersonComponent } from './person.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: PersonComponent }
])
]
})
export class PersonRoutingModule { }

View File

@ -20,7 +20,7 @@
<a href="#publicationsTab"> <a href="#publicationsTab">
Publications Publications
<span class="uk-badge uk-badge-notification"> <span class="uk-badge uk-badge-notification">
{{searchPublicationsComponent.searchUtils.totalResults}} {{fetchPublications.searchUtils.totalResults}}
</span> </span>
</a> </a>
</li> </li>
@ -28,7 +28,7 @@
<a href="#researchDataTab"> <a href="#researchDataTab">
Research Data Research Data
<span class="uk-badge uk-badge-notification"> <span class="uk-badge uk-badge-notification">
{{searchDatasetsComponent.searchUtils.totalResults}} {{fetchDatasets.searchUtils.totalResults}}
</span> </span>
</a> </a>
</li> </li>
@ -37,34 +37,34 @@
<ul id="tab-content" class="uk-switcher uk-margin"> <ul id="tab-content" class="uk-switcher uk-margin">
<li id="publicationsTab"> <li id="publicationsTab">
<div *ngIf="searchPublicationsComponent.searchUtils.totalResults == 0" class = "uk-alert"> <div *ngIf="fetchPublications.searchUtils.totalResults == 0" class = "uk-alert">
There are no publications There are no publications
</div> </div>
<div *ngIf="searchPublicationsComponent.searchUtils.totalResults > 0"> <div *ngIf="fetchPublications.searchUtils.totalResults > 0">
<p> <p>
The results below are discovered through our pilot algorithms. The results below are discovered through our pilot algorithms.
<a href="mailto:">Let us know how we are doing!</a> <a href="mailto:">Let us know how we are doing!</a>
</p> </p>
<div class = "uk-text-right" *ngIf = "searchPublicationsComponent.searchUtils.totalResults > 10" ><a [href] = "linkToSearchPublications" >View all {{searchPublicationsComponent.searchUtils.totalResults}} results</a></div> <div class = "uk-text-right" *ngIf = "fetchPublications.searchUtils.totalResults > 10" ><a [href] = "linkToSearchPublications" >View all {{fetchPublications.searchUtils.totalResults}} results</a></div>
<search-result [(results)]="searchPublicationsComponent.results" [(status)]= "searchPublicationsComponent.status"></search-result> <search-result [(results)]="fetchPublications.results" [(status)]= "fetchPublications.searchUtils.status"></search-result>
</div> </div>
</li> </li>
<li id="researchDataTab"> <li id="researchDataTab">
<div *ngIf="searchDatasetsComponent.searchUtils.totalResults == 0" class = "uk-alert"> <div *ngIf="fetchDatasets.searchUtils.totalResults == 0" class = "uk-alert">
There are no research data There are no research data
</div> </div>
<div *ngIf="searchDatasetsComponent.searchUtils.totalResults > 0"> <div *ngIf="fetchDatasets.searchUtils.totalResults > 0">
<p> <p>
The results below are discovered through our pilot algorithms. The results below are discovered through our pilot algorithms.
<a href="mailto:">Let us know how we are doing!</a> <a href="mailto:">Let us know how we are doing!</a>
</p> </p>
<div class = "uk-text-right" *ngIf = "searchDatasetsComponent.searchUtils.totalResults > 10" ><a [href] = "linkToSearchDatasets" >View all {{searchDatasetsComponent.searchUtils.totalResults}} results</a></div> <div class = "uk-text-right" *ngIf = "fetchDatasets.searchUtils.totalResults > 10" ><a [href] = "linkToSearchDatasets" >View all {{fetchDatasets.searchUtils.totalResults}} results</a></div>
<search-result [(results)]="searchDatasetsComponent.results" [(status)]= "searchDatasetsComponent.status"></search-result> <search-result [(results)]="fetchDatasets.results" [(status)]= "fetchDatasets.status"></search-result>
</div> </div>
</li> </li>
</ul> </ul>

View File

@ -1,14 +1,13 @@
import {Component} from '@angular/core'; import {Component} from '@angular/core';
import {Observable} from 'rxjs/Observable'; import {Observable} from 'rxjs/Observable';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import {PersonService} from '../../services/person.service'; import {PersonService} from './person.service';
import { PersonInfo } from '../../utils/entities/personInfo'; import { PersonInfo } from '../../utils/entities/personInfo';
import { SearchPublicationsComponent } from '../../searchPages/simple/searchPublications.component'; import { FetchPublications } from '../../utils/fetchEntitiesClasses/fetchPublications.class';
import { SearchPublicationsService } from '../../services/searchPublications.service'; import { SearchPublicationsService } from '../../services/searchPublications.service';
import { SearchDatasetsComponent } from '../../searchPages/simple/searchDatasets.component'; import { FetchDatasets } from '../../utils/fetchEntitiesClasses/fetchDatasets.class';
import { SearchDatasetsService } from '../../services/searchDatasets.service'; import { SearchDatasetsService } from '../../services/searchDatasets.service';
import { SearchResultComponent } from '../../searchPages/searchUtils/searchResult.component';
import {OpenaireProperties} from '../../utils/properties/openaireProperties'; import {OpenaireProperties} from '../../utils/properties/openaireProperties';
@ -18,15 +17,14 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
}) })
export class PersonComponent { export class PersonComponent {
sub: any; sub: any;
subPublications: any; subPublications: any;
subDatasets: any; subDatasets: any;
subDatasetsCount: any; subDatasetsCount: any;
private searchPublicationsComponent : SearchPublicationsComponent; public fetchPublications : FetchPublications;
private linkToSearchPublications = ""; private linkToSearchPublications = "";
private searchDatasetsComponent : SearchDatasetsComponent; public fetchDatasets : FetchDatasets;
private linkToSearchDatasets = ""; private linkToSearchDatasets = "";
personInfo: PersonInfo; personInfo: PersonInfo;
@ -39,8 +37,8 @@ export class PersonComponent {
private _searchPublicationsService: SearchPublicationsService, private _searchPublicationsService: SearchPublicationsService,
private _searchDatasetsService: SearchDatasetsService) { private _searchDatasetsService: SearchDatasetsService) {
console.info('person constructor'); console.info('person constructor');
this.searchPublicationsComponent = new SearchPublicationsComponent(this.route, this._searchPublicationsService); this.fetchPublications = new FetchPublications( this._searchPublicationsService);
this.searchDatasetsComponent = new SearchDatasetsComponent(this.route, this._searchDatasetsService); this.fetchDatasets = new FetchDatasets( this._searchDatasetsService);
} }
ngOnInit() { ngOnInit() {
@ -49,21 +47,20 @@ export class PersonComponent {
this.personId = params['personId']; this.personId = params['personId'];
console.info("Id is :"+this.personId); console.info("Id is :"+this.personId);
if(this.personId){ if(this.personId){
this.getPersonInfo(); this.fetchPersonInfo();
this.searchPublications();
}else{ }else{
this.warningMessage="No valid person id"; this.warningMessage="No valid person id";
} }
}); });
this.subPublications = this.route.queryParams.subscribe(params => {
this.searchPublications();
});
this.subDatasetsCount = this.route.queryParams.subscribe(params => { this.subDatasetsCount = this.route.queryParams.subscribe(params => {
this._searchDatasetsService.numOfEntityDatasets(this.personId, "people/").subscribe( this._searchDatasetsService.numOfEntityDatasets(this.personId, "people/").subscribe(
data => { data => {
this.searchDatasetsComponent.searchUtils.totalResults = data; this.fetchDatasets.searchUtils.totalResults = data;
}, },
err => { err => {
console.log(err); console.log(err);
@ -73,7 +70,7 @@ export class PersonComponent {
} }
private searchDatasetsInit() { private searchDatasetsInit() {
if(this.subDatasets == undefined && this.searchDatasetsComponent.searchUtils.totalResults > 0) { if(this.subDatasets == undefined && this.fetchDatasets.searchUtils.totalResults > 0) {
this.subDatasets = this.route.queryParams.subscribe(params => { this.subDatasets = this.route.queryParams.subscribe(params => {
this.searchDatasets(); this.searchDatasets();
}); });
@ -82,16 +79,16 @@ export class PersonComponent {
ngOnDestroy() { ngOnDestroy() {
this.sub.unsubscribe(); this.sub.unsubscribe();
this.subPublications.unsubscribe(); // this.subPublications.unsubscribe();
if(this.subDatasets != undefined) { // if(this.subDatasets != undefined) {
this.subDatasets.unsubscribe(); // this.subDatasets.unsubscribe();
} // }
this.subDatasetsCount.unsubscribe(); // this.subDatasetsCount.unsubscribe();
} }
private getPersonInfo () { private fetchPersonInfo () {
console.info("inside getPersonInfo of component"); console.info("inside fetchPersonInfo of component");
this.warningMessage = ''; this.warningMessage = '';
this.errorMessage="" this.errorMessage=""
@ -112,12 +109,12 @@ export class PersonComponent {
} }
private searchPublications() { private searchPublications() {
this.searchPublicationsComponent.getResultsForEntity("person", this.personId, 1, 10); this.fetchPublications.getResultsForEntity("person", this.personId, 1, 10);
this.linkToSearchPublications = OpenaireProperties.getLinkToAdvancedSearchPublications() + "?person=" + this.personId + "&pe=and"; this.linkToSearchPublications = OpenaireProperties.getLinkToAdvancedSearchPublications() + "?person=" + this.personId + "&pe=and";
} }
private searchDatasets() { private searchDatasets() {
this.searchDatasetsComponent.getResultsForEntity("person", this.personId, 1, 10); this.fetchDatasets.getResultsForEntity("person", this.personId, 1, 10);
this.linkToSearchDatasets = OpenaireProperties.getLinkToAdvancedSearchDatasets() + "?person=" + this.personId + "&pe=and"; this.linkToSearchDatasets = OpenaireProperties.getLinkToAdvancedSearchDatasets() + "?person=" + this.personId + "&pe=and";
} }
} }

View File

@ -0,0 +1,32 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { PersonService} from './person.service';
import { PersonComponent } from './person.component';
import { PersonRoutingModule } from './person-routing.module';
import { LandingModule } from '../landing.module';
import {SearchResultsModule } from '../../searchPages/searchUtils/searchResults.module';
import {DatasetsServiceModule} from '../../services/datasetsService.module';
import {PublicationsServiceModule} from '../../services/publicationsService.module';
@NgModule({
imports: [
CommonModule, FormsModule,
LandingModule,
PersonRoutingModule,
SearchResultsModule,
DatasetsServiceModule, PublicationsServiceModule
],
declarations: [
PersonComponent
],
providers:[
PersonService
],
exports: [
PersonComponent
]
})
export class PersonModule { }

View File

@ -5,9 +5,9 @@ import 'rxjs/add/observable/of';
import 'rxjs/add/operator/do'; import 'rxjs/add/operator/do';
import 'rxjs/add/operator/share'; import 'rxjs/add/operator/share';
import { CacheService } from '../shared/cache.service'; import { CacheService } from '../../shared/cache.service';
import {PersonInfo} from '../utils/entities/personInfo'; import {PersonInfo} from '../../utils/entities/personInfo';
import {OpenaireProperties} from '../utils/properties/openaireProperties' import {OpenaireProperties} from '../../utils/properties/openaireProperties'
export function hashCodeString(str: string): string { export function hashCodeString(str: string): string {
let hash = 0; let hash = 0;

View File

@ -0,0 +1,13 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { ProjectComponent } from './project.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: ProjectComponent }
])
]
})
export class ProjectRoutingModule { }

View File

@ -56,7 +56,7 @@
<a href="#publicationsTab"> <a href="#publicationsTab">
Publications Publications
<span class="uk-badge uk-badge-notification"> <span class="uk-badge uk-badge-notification">
{{searchPublicationsComponent.searchUtils.totalResults}} {{fetchPublications.searchUtils.totalResults}}
</span> </span>
</a> </a>
</li> </li>
@ -64,7 +64,7 @@
<a href="#researchDataTab"> <a href="#researchDataTab">
Research Data Research Data
<span class="uk-badge uk-badge-notification"> <span class="uk-badge uk-badge-notification">
{{searchDatasetsComponent.searchUtils.totalResults}} {{fetchDatasets.searchUtils.totalResults}}
</span> </span>
</a> </a>
</li> </li>
@ -85,43 +85,43 @@
<ul id="tab-content" class="uk-switcher uk-margin"> <ul id="tab-content" class="uk-switcher uk-margin">
<li id="publicationsTab"> <li id="publicationsTab">
<div *ngIf="searchPublicationsComponent.searchUtils.totalResults == 0" class = "uk-alert" > <div *ngIf="fetchPublications.searchUtils.totalResults == 0" class = "uk-alert" >
There are no publications There are no publications
</div> </div>
<div *ngIf="searchPublicationsComponent.searchUtils.totalResults > 0"> <div *ngIf="fetchPublications.searchUtils.totalResults > 0">
<p> <p>
The results below are discovered through our pilot algorithms. The results below are discovered through our pilot algorithms.
<a href="mailto:">Let us know how we are doing!</a> <a href="mailto:">Let us know how we are doing!</a>
</p> </p>
<div class = "uk-text-right" *ngIf = "searchPublicationsComponent.searchUtils.totalResults > 10" ><a [href] = "linkToSearchPublications" >View all {{searchPublicationsComponent.searchUtils.totalResults}} results</a></div> <div class = "uk-text-right" *ngIf = "fetchPublications.searchUtils.totalResults > 10" ><a [href] = "linkToSearchPublications" >View all {{fetchPublications.searchUtils.totalResults}} results</a></div>
<search-result [(results)]="searchPublicationsComponent.results" [(status)]= "searchPublicationsComponent.status"></search-result> <search-result [(results)]="fetchPublications.results" [(status)]= "fetchPublications.searchUtils.status"></search-result>
</div> </div>
</li> </li>
<li id="researchDataTab"> <li id="researchDataTab">
<div *ngIf="searchDatasetsComponent.searchUtils.totalResults == 0" class = "uk-alert"> <div *ngIf="fetchDatasets.searchUtils.totalResults == 0" class = "uk-alert">
There are no research data There are no research data
</div> </div>
<div *ngIf="searchDatasetsComponent.searchUtils.totalResults > 0"> <div *ngIf="fetchDatasets.searchUtils.totalResults > 0">
<p> <p>
The results below are discovered through our pilot algorithms. The results below are discovered through our pilot algorithms.
<a href="mailto:">Let us know how we are doing!</a> <a href="mailto:">Let us know how we are doing!</a>
</p> </p>
<div class = "uk-text-right" *ngIf = "searchDatasetsComponent.searchUtils.totalResults > 10" ><a [href] = "linkToSearchDatasets" >View all {{searchDatasetsComponent.searchUtils.totalResults}} results</a></div> <div class = "uk-text-right" *ngIf = "fetchDatasets.searchUtils.totalResults > 10" ><a [href] = "linkToSearchDatasets" >View all {{fetchDatasets.searchUtils.totalResults}} results</a></div>
<search-result [(results)]="searchDatasetsComponent.results" [(status)]= "searchDatasetsComponent.status"></search-result> <search-result [(results)]="fetchDatasets.results" [(status)]= "fetchDatasets.searchUtils.status"></search-result>
</div> </div>
</li> </li>
<li id="statisticsTab"> <li id="statisticsTab">
<div *ngIf="searchPublicationsComponent.searchUtils.totalResults == 0 && searchDatasetsComponent.searchUtils.totalResults == 0" class = "uk-alert"> <div *ngIf="fetchPublications.searchUtils.totalResults == 0 && fetchDatasets.searchUtils.totalResults == 0" class = "uk-alert">
There are no statistics There are no statistics
</div> </div>
<div *ngIf="statsClicked && (searchPublicationsComponent.searchUtils.totalResults != 0 || searchDatasetsComponent.searchUtils.totalResults != 0)"> <div *ngIf="statsClicked && (fetchPublications.searchUtils.totalResults != 0 || fetchDatasets.searchUtils.totalResults != 0)">
<p class="uk-text-bold"> <p class="uk-text-bold">
The results below are discovered through our pilot algorithms. The results below are discovered through our pilot algorithms.
<a href="mailto:">Let us know how we are doing!</a> <a href="mailto:">Let us know how we are doing!</a>
@ -171,7 +171,7 @@
<!--li (click)="showHTML()"--> <!--li (click)="showHTML()"-->
<li> <li>
<a target="_blank" <a target="_blank"
href="/openaire?projectId={{projectId}}&size={{searchPublicationsComponent.searchUtils.totalResults}}"> href="/project-report?projectId={{projectId}}&size={{fetchPublications.searchUtils.totalResults}}">
View {{projectInfo.funder}} progress report (HTML) View {{projectInfo.funder}} progress report (HTML)
</a> </a>
</li> </li>

View File

@ -1,13 +1,15 @@
import {Component, ViewChild} from '@angular/core'; import {Component, ViewChild} from '@angular/core';
import {Observable} from 'rxjs/Observable'; import {Observable} from 'rxjs/Observable';
import {ActivatedRoute, Params} from '@angular/router'; import {ActivatedRoute, Params} from '@angular/router';
import {ProjectService} from '../../services/project.service'; import {ProjectService} from './project.service';
import {ProjectInfo} from '../../utils/entities/projectInfo'; import {ProjectInfo} from '../../utils/entities/projectInfo';
import { SearchPublicationsComponent } from '../../searchPages/simple/searchPublications.component';
import {SearchPublicationsService} from '../../services/searchPublications.service';
import { SearchDatasetsComponent } from '../../searchPages/simple/searchDatasets.component'; import { FetchPublications } from '../../utils/fetchEntitiesClasses/fetchPublications.class';
import { SearchPublicationsService } from '../../services/searchPublications.service';
import { FetchDatasets } from '../../utils/fetchEntitiesClasses/fetchDatasets.class';
import { SearchDatasetsService } from '../../services/searchDatasets.service'; import { SearchDatasetsService } from '../../services/searchDatasets.service';
import {SearchResultComponent} from '../../searchPages/searchUtils/searchResult.component';
import {ReportsService} from '../../services/reports.service'; import {ReportsService} from '../../services/reports.service';
import {OpenaireProperties} from '../../utils/properties/openaireProperties'; import {OpenaireProperties} from '../../utils/properties/openaireProperties';
@ -43,9 +45,9 @@ export class ProjectComponent{
subDatasets: any; subDatasets: any;
subDatasetsCount: any; subDatasetsCount: any;
public searchPublicationsComponent : SearchPublicationsComponent; public fetchPublications : FetchPublications;
public linkToSearchPublications = ""; public linkToSearchPublications = "";
public searchDatasetsComponent : SearchDatasetsComponent; public fetchDatasets : FetchDatasets;
public linkToSearchDatasets = ""; public linkToSearchDatasets = "";
constructor (private _projectService: ProjectService, constructor (private _projectService: ProjectService,
@ -55,8 +57,8 @@ export class ProjectComponent{
private _reportsService: ReportsService) { private _reportsService: ReportsService) {
console.info('project constructor.'); console.info('project constructor.');
this.searchPublicationsComponent = new SearchPublicationsComponent(this.route, this._searchPublicationsService); this.fetchPublications = new FetchPublications( this._searchPublicationsService);
this.searchDatasetsComponent = new SearchDatasetsComponent(this.route, this._searchDatasetsService); this.fetchDatasets = new FetchDatasets(this._searchDatasetsService);
} }
ngOnInit() { ngOnInit() {
@ -74,7 +76,7 @@ export class ProjectComponent{
this.subDatasetsCount = this._searchDatasetsService.numOfEntityDatasets(this.projectId, "projects/").subscribe( this.subDatasetsCount = this._searchDatasetsService.numOfEntityDatasets(this.projectId, "projects/").subscribe(
data => { data => {
this.searchDatasetsComponent.searchUtils.totalResults = data; this.fetchDatasets.searchUtils.totalResults = data;
}, },
err => { err => {
console.log(err); console.log(err);
@ -84,7 +86,7 @@ export class ProjectComponent{
} }
this.downloadURLAPI = OpenaireProperties.getCsvAPIURL(); this.downloadURLAPI = OpenaireProperties.getCsvAPIURL();
this.csvParams = "format=csv-special&page=0&size="+this.searchPublicationsComponent.searchUtils.totalResults+"&type=publications&query=(((oaftype exact result) and (resulttypeid exact publication)) and (relprojectid exact "+this.projectId+"))"; this.csvParams = "format=csv-special&page=0&size="+this.fetchPublications.searchUtils.totalResults+"&type=publications&query=(((oaftype exact result) and (resulttypeid exact publication)) and (relprojectid exact "+this.projectId+"))";
}); });
} }
@ -96,17 +98,17 @@ export class ProjectComponent{
} }
private searchPublications() { private searchPublications() {
this.searchPublicationsComponent.getResultsForEntity("project", this.projectId, 1, 10); this.fetchPublications.getResultsForEntity("project", this.projectId, 1, 10);
this.linkToSearchPublications = OpenaireProperties.getLinkToAdvancedSearchPublications() + "?project=" + this.projectId+"&pr=and"; this.linkToSearchPublications = OpenaireProperties.getLinkToAdvancedSearchPublications() + "?project=" + this.projectId+"&pr=and";
} }
private searchDatasets() { private searchDatasets() {
this.searchDatasetsComponent.getResultsForEntity("project", this.projectId, 1, 10); this.fetchDatasets.getResultsForEntity("project", this.projectId, 1, 10);
this.linkToSearchDatasets = OpenaireProperties.getLinkToAdvancedSearchDatasets() + "?project=" + this.projectId+"&pr=and"; this.linkToSearchDatasets = OpenaireProperties.getLinkToAdvancedSearchDatasets() + "?project=" + this.projectId+"&pr=and";
} }
private searchDatasetsInit() { private searchDatasetsInit() {
if(this.subDatasets == undefined && this.searchDatasetsComponent.searchUtils.totalResults > 0) { if(this.subDatasets == undefined && this.fetchDatasets.searchUtils.totalResults > 0) {
this.searchDatasets(); this.searchDatasets();
} }
} }
@ -168,9 +170,9 @@ export class ProjectComponent{
info += ")"; info += ")";
} }
info +="</h1>"; info +="</h1>";
info += "<h3>"+this.searchPublicationsComponent.searchUtils.totalResults+" publications</h3>"; info += "<h3>"+this.fetchPublications.searchUtils.totalResults+" publications</h3>";
let htmlParams = 'resources?format=html&page=0&size='+this.searchPublicationsComponent.searchUtils.totalResults+'&type=publications&query=(((oaftype exact result) and (resulttypeid exact publication)) and (relprojectid exact "'+this.projectId+'"))'; let htmlParams = 'resources?format=html&page=0&size='+this.fetchPublications.searchUtils.totalResults+'&type=publications&query=(((oaftype exact result) and (resulttypeid exact publication)) and (relprojectid exact "'+this.projectId+'"))';
this._reportsService.downloadHTMLFile(this.downloadURLAPI+htmlParams, info) this._reportsService.downloadHTMLFile(this.downloadURLAPI+htmlParams, info)
.subscribe(data => this.funct(data), .subscribe(data => this.funct(data),
error => console.log("Error downloading the file."), error => console.log("Error downloading the file."),

View File

@ -0,0 +1,36 @@
//import {MaterialModule} from '@angular/material';
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { ProjectServiceModule} from './projectService.module';
// import {HtmlProgressReportService} from './htmlProgressReport.service';
import { ProjectComponent } from './project.component';
import { ProjectRoutingModule } from './project-routing.module';
import {IFrameModule} from '../../utils/iframe.module';
import {MetricsModule} from '../metrics.module';
import {ReportsServiceModule} from '../../services/reportsService.module';
import {PublicationsServiceModule} from '../../services/publicationsService.module';
import {DatasetsServiceModule} from '../../services/datasetsService.module';
import {SearchResultsModule } from '../../searchPages/searchUtils/searchResults.module';
import { LandingModule } from '../landing.module';
@NgModule({
imports: [
CommonModule, FormsModule, LandingModule,
ProjectRoutingModule,
SearchResultsModule, IFrameModule, MetricsModule, ReportsServiceModule, PublicationsServiceModule, DatasetsServiceModule, ProjectServiceModule
],
declarations: [
ProjectComponent
],
providers:[
// ProjectService,
// HtmlProgressReportService
],
exports: [
ProjectComponent
]
})
export class ProjectModule { }

View File

@ -0,0 +1,200 @@
import {Injectable} from '@angular/core';
import {Http, Response} from '@angular/http';
import {Observable} from 'rxjs/Observable';
import {ProjectInfo} from '../../utils/entities/projectInfo';
import {OpenaireProperties} from '../../utils/properties/openaireProperties';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/share';
import { CacheService } from '../../shared/cache.service';
@Injectable()
export class ProjectService {
constructor(private http: Http, public _cache: CacheService) {}
projectInfo: ProjectInfo;
getProjectInfo (id: string):any {
console.info("getProjectInfo in service");
let url = OpenaireProperties. getSearchAPIURLLast() + 'projects/'+id+"?format=json";
let key = url;
if (this._cache.has(key)) {
return Observable.of(this._cache.get(key))
.map(res => this.parseProjectInfo(res));
}
return this.http.get(url)
.map(res => <any> res.json())
.map(res => res['result']['metadata']['oaf:entity']['oaf:project'])
.map(res => [res,
res['fundingtree'],
res['rels']['rel']])
.do(res => {
this._cache.set(key, res);
})
.map(res => this.parseProjectInfo(res));
}
/*
get project strtDate and endDate
*/
getProjectDates (id: string):any {
let url = OpenaireProperties. getSearchAPIURLLast()+'projects/'+id+"?format=json";
let key = url+'_projectDates';
if (this._cache.has(key)) {
return Observable.of(this._cache.get(key))
.map(res => [res,
res['fundingtree'],
res['rels']['rel']])
.map(res => this.parseProjectDates(id,res))
}
return this.http.get(url)
.map(res => <any> res.json())
.map(res => res['result']['metadata']['oaf:entity']['oaf:project'])
.do(res => {
this._cache.set(key, res);
})
.map(res => [res,
res['fundingtree'],
res['rels']['rel']])
.map(res => this.parseProjectDates(id,res))
}
getHTMLInfo(id: string): any {
console.info("getHTMLInfo in service");
let url = OpenaireProperties. getSearchAPIURLLast() + 'projects/'+id+"?format=json";
let key = url;
if (this._cache.has(key)) {
return Observable.of(this._cache.get(key))
.map(res => this.parseHTMLInfo(res));
}
return this.http.get(url)
.map(res => <any> res.json())
.map(res => res['result']['metadata']['oaf:entity']['oaf:project'])
.do(res => {
this._cache.set(key, res);
})
.map(res => this.parseHTMLInfo(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.log(error);
return Observable.throw(error || 'Server error');
}
parseHTMLInfo (data: any):any {
let htmlInfo: {"title": string, "acronym": string, "callIdentifier": string};
if(data != null) {
htmlInfo = {"title": data.title, "acronym": data.acronym, "callIdentifier": data.callidentifier};
}
console.info(htmlInfo);
return htmlInfo;
}
parseProjectInfo (data: any):any {
this.projectInfo = new ProjectInfo();
if(data[0] != null) {
this.projectInfo.acronym = data[0].acronym;
this.projectInfo.title = data[0].title;
this.projectInfo.callIdentifier = data[0].callidentifier;
this.projectInfo.contractNum = data[0].code;
this.projectInfo.startDate = data[0].startdate;
this.projectInfo.endDate = data[0].enddate;
this.projectInfo.openAccessMandate = data[0].oamandatepublications;
this.projectInfo.specialClause39 = data[0].ecsc39;
}
if(data[1] != null) {
if(data[1]['funder'] != null) {
this.projectInfo.funder = data[1]['funder'].shortname;
}
let funding;
this.projectInfo.funding = "";
if(data[1]['funding_level_2'] != null) {
funding = data[1]['funding_level_2'].id;
} else if(data[1]['funding_level_1'] != null) {
funding = data[1]['funding_level_1'].id;
} else if(data[1]['funding_level_0'] != null) {
funding = data[1]['funding_level_0'].id;
}
if(funding != undefined) {
funding = funding.split("::");
for(let i=1; i<funding.length; i++) {
if(this.projectInfo.funding != "") {
this.projectInfo.funding += " | ";
}
this.projectInfo.funding += funding[i];
}
}
}
if(data[2] != null) {
this.projectInfo.organizations = new Map<string, string>();
let name = "";
let url = "";
if(!Array.isArray(data[2])) {
if(data[2].hasOwnProperty("legalshortname")) {
name = data[2].legalshortname;
} else if(data[2].hasOwnProperty("legalname")) {
name = data[2].legalname;
}
if(data[2].hasOwnProperty("to") && name != "") {
url = OpenaireProperties.getsearchLinkToOrganization()+data[2]['to'].content;
}
if(name != "") {
this.projectInfo.organizations.set(name, url);
}
} else {
for(let i=0; i<data[2].length; i++) {
if(data[2][i].hasOwnProperty("to") && data[2][i]['to'].class == "hasParticipant") {
if(data[2][i].hasOwnProperty("legalshortname")) {
name = data[2][i].legalshortname;
} else if(data[2][i].hasOwnProperty("legalname")) {
name = data[2][i].legalname;
}
if(data[2][i].hasOwnProperty("to") && name!="") {
url = OpenaireProperties.getsearchLinkToOrganization()+data[2][i]['to'].content;
}
if(name != "") {
this.projectInfo.organizations.set(name, url);
}
}
}
}
}
if(this.projectInfo.funder == "EC") {
this.projectInfo.url = OpenaireProperties.getCordisURL()+this.projectInfo.contractNum;
this.projectInfo.urlInfo = "Detailed project information (CORDIS)";
}
return this.projectInfo;
}
parseProjectDates (id: string, data: any):any {
var project = { id: id, startDate: "", endDate: ""};
if(data[0] != null) {
project.startDate = data[0].startdate;
project.endDate = data[0].enddate;
}
return project;
}
}

View File

@ -0,0 +1,20 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import {ProjectService} from './project.service';
@NgModule({
imports: [
CommonModule, FormsModule
],
declarations: [
],
providers:[
ProjectService
],
exports: [
]
})
export class ProjectServiceModule { }

View File

@ -0,0 +1,13 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { PublicationComponent } from './publication.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: PublicationComponent }
])
]
})
export class PublicationRoutingModule { }

View File

@ -1,6 +1,6 @@
import {Component, ViewChild} from '@angular/core'; import {Component, ViewChild} from '@angular/core';
import {Observable} from 'rxjs/Observable'; import {Observable} from 'rxjs/Observable';
import {PublicationService} from '../../services/publication.service'; import {PublicationService} from './publication.service';
import {PublicationInfo} from '../../utils/entities/publicationInfo'; import {PublicationInfo} from '../../utils/entities/publicationInfo';
import {ActivatedRoute} from '@angular/router'; import {ActivatedRoute} from '@angular/router';
import {OpenaireProperties} from '../../utils/properties/openaireProperties'; import {OpenaireProperties} from '../../utils/properties/openaireProperties';

View File

@ -0,0 +1,33 @@
//import {MaterialModule} from '@angular/material';
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { SharedModule } from '../../shared/shared.module';
import { PublicationService} from './publication.service';
import { PublicationComponent } from './publication.component';
import { PublicationRoutingModule } from './publication-routing.module';
import {MetricsModule} from '../metrics.module';
import {IFrameModule} from '../../utils/iframe.module';
import {AltMetricsModule} from '../../utils/altmetrics.module';
import { ResultLandingModule } from '../resultLanding.module';
import { LandingModule } from '../landing.module';
@NgModule({
imports: [
CommonModule, FormsModule, LandingModule,SharedModule,
ResultLandingModule, PublicationRoutingModule, IFrameModule, MetricsModule, AltMetricsModule
],
declarations: [
PublicationComponent
],
providers:[
PublicationService
],
exports: [
PublicationComponent
]
})
export class PublicationModule { }

View File

@ -1,12 +1,12 @@
import {Injectable} from '@angular/core'; import {Injectable} from '@angular/core';
import {Http, Response} from '@angular/http'; import {Http, Response} from '@angular/http';
import {Observable} from 'rxjs/Observable'; import {Observable} from 'rxjs/Observable';
import {PublicationInfo} from '../utils/entities/publicationInfo'; import {PublicationInfo} from '../../utils/entities/publicationInfo';
import {OpenaireProperties} from '../utils/properties/openaireProperties'; import {OpenaireProperties} from '../../utils/properties/openaireProperties';
import 'rxjs/add/observable/of'; import 'rxjs/add/observable/of';
import 'rxjs/add/operator/do'; import 'rxjs/add/operator/do';
import 'rxjs/add/operator/share'; import 'rxjs/add/operator/share';
import { CacheService } from '../shared/cache.service'; import { CacheService } from '../../shared/cache.service';
@Injectable() @Injectable()
export class PublicationService { export class PublicationService {

View File

@ -0,0 +1,24 @@
/* This module contains all common components for Publication & Daasets Landing Pages */
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import {ShowAuthorsComponent} from './showAuthors.component';
import {ShowIdentifiersComponent} from './showIdentifiers.component';
import {ShowSubjectsComponent} from './showSubjects.component';
@NgModule({
imports: [
CommonModule, FormsModule, RouterModule
],
declarations: [
ShowAuthorsComponent,ShowIdentifiersComponent,ShowSubjectsComponent
],
providers:[
],
exports: [
ShowAuthorsComponent,ShowIdentifiersComponent,ShowSubjectsComponent
]
})
export class ResultLandingModule { }

View File

@ -9,6 +9,7 @@ import {Component, Input} from '@angular/core';
</div> </div>
<span *ngFor="let item of authors.slice(0,30)"> <span *ngFor="let item of authors.slice(0,30)">
<a href="{{item['url']}}"> <a href="{{item['url']}}">
<!--a routerLinkActive="router-link-active" routerLink="/search/person" [queryParams]="{personId: 'datacite____::9da3a037961b36a634fcd40ab0bf6535'}" -->
{{item['name']}}; {{item['name']}};
</a> </a>
</span> </span>

View File

@ -0,0 +1,14 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import{AdvancedSearchDataProvidersComponent} from './advancedSearchDataProviders.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: AdvancedSearchDataProvidersComponent }
])
]
})
export class AdvancedSearchDataProvidersRoutingModule { }

View File

@ -0,0 +1,28 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import{ AdvancedSearchDataProvidersRoutingModule} from './advancedSearchDataProviders-routing.module';
import{AdvancedSearchDataProvidersComponent} from './advancedSearchDataProviders.component';
import {DataProvidersServiceModule} from '../../services/dataProvidersService.module';
import {AdvancedSearchPageModule} from '../searchUtils/advancedSearchPage.module';
@NgModule({
imports: [
CommonModule, FormsModule,
DataProvidersServiceModule,
AdvancedSearchDataProvidersRoutingModule, AdvancedSearchPageModule
],
declarations: [
AdvancedSearchDataProvidersComponent
],
providers:[
],
exports: [
AdvancedSearchDataProvidersComponent
]
})
export class AdvancedSearchDataProvidersModule { }

View File

@ -0,0 +1,14 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import{AdvancedSearchDatasetsComponent} from './advancedSearchDatasets.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: AdvancedSearchDatasetsComponent }
])
]
})
export class AdvancedSearchDatasetsRoutingModule { }

View File

@ -0,0 +1,28 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import{ AdvancedSearchDatasetsRoutingModule} from './advancedSearchDatasets-routing.module';
import{AdvancedSearchDatasetsComponent} from './advancedSearchDatasets.component';
import {DatasetsServiceModule} from '../../services/datasetsService.module';
import {AdvancedSearchPageModule} from '../searchUtils/advancedSearchPage.module';
@NgModule({
imports: [
CommonModule, FormsModule,
DatasetsServiceModule,
AdvancedSearchDatasetsRoutingModule, AdvancedSearchPageModule
],
declarations: [
AdvancedSearchDatasetsComponent
],
providers:[
],
exports: [
AdvancedSearchDatasetsComponent
]
})
export class AdvancedSearchDatasetsModule { }

View File

@ -0,0 +1,14 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import{AdvancedSearchOrganizationsComponent} from './advancedSearchOrganizations.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: AdvancedSearchOrganizationsComponent }
])
]
})
export class AdvancedSearchOrganizationsRoutingModule { }

View File

@ -0,0 +1,28 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import{ AdvancedSearchOrganizationsRoutingModule} from './advancedSearchOrganizations-routing.module';
import{AdvancedSearchOrganizationsComponent} from './advancedSearchOrganizations.component';
import {OrganizationsServiceModule} from '../../services/organizationsService.module';
import {AdvancedSearchPageModule} from '../searchUtils/advancedSearchPage.module';
@NgModule({
imports: [
CommonModule, FormsModule,
OrganizationsServiceModule,
AdvancedSearchOrganizationsRoutingModule, AdvancedSearchPageModule
],
declarations: [
AdvancedSearchOrganizationsComponent
],
providers:[
],
exports: [
AdvancedSearchOrganizationsComponent
]
})
export class AdvancedSearchOrganizationsModule { }

View File

@ -0,0 +1,14 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import{AdvancedSearchPeopleComponent} from './advancedSearchPeople.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: AdvancedSearchPeopleComponent }
])
]
})
export class AdvancedSearchPeopleRoutingModule { }

View File

@ -0,0 +1,28 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import{ AdvancedSearchPeopleRoutingModule} from './advancedSearchPeople-routing.module';
import{AdvancedSearchPeopleComponent} from './advancedSearchPeople.component';
import {PeopleServiceModule} from '../../services/peopleService.module';
import {AdvancedSearchPageModule} from '../searchUtils/advancedSearchPage.module';
@NgModule({
imports: [
CommonModule, FormsModule,
PeopleServiceModule,
AdvancedSearchPeopleRoutingModule, AdvancedSearchPageModule
],
declarations: [
AdvancedSearchPeopleComponent
],
providers:[
],
exports: [
AdvancedSearchPeopleComponent
]
})
export class AdvancedSearchPeopleModule { }

View File

@ -0,0 +1,14 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import{AdvancedSearchProjectsComponent} from './advancedSearchProjects.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: AdvancedSearchProjectsComponent }
])
]
})
export class AdvancedSearchProjectsRoutingModule { }

View File

@ -0,0 +1,28 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import{ AdvancedSearchProjectsRoutingModule} from './advancedSearchProjects-routing.module';
import{AdvancedSearchProjectsComponent} from './advancedSearchProjects.component';
import {ProjectsServiceModule} from '../../services/projectsService.module';
import {AdvancedSearchPageModule} from '../searchUtils/advancedSearchPage.module';
@NgModule({
imports: [
CommonModule, FormsModule,
ProjectsServiceModule,
AdvancedSearchProjectsRoutingModule, AdvancedSearchPageModule
],
declarations: [
AdvancedSearchProjectsComponent
],
providers:[
],
exports: [
AdvancedSearchProjectsComponent
]
})
export class AdvancedSearchProjectsModule { }

View File

@ -0,0 +1,14 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import{AdvancedSearchPublicationsComponent} from './advancedSearchPublications.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: AdvancedSearchPublicationsComponent }
])
]
})
export class AdvancedSearchPublicationsRoutingModule { }

View File

@ -0,0 +1,28 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import{ AdvancedSearchPublicationsRoutingModule} from './advancedSearchPublications-routing.module';
import{AdvancedSearchPublicationsComponent} from './advancedSearchPublications.component';
import {PublicationsServiceModule} from '../../services/publicationsService.module';
import {AdvancedSearchPageModule} from '../searchUtils/advancedSearchPage.module';
@NgModule({
imports: [
CommonModule, FormsModule,
PublicationsServiceModule,
AdvancedSearchPublicationsRoutingModule, AdvancedSearchPageModule
],
declarations: [
AdvancedSearchPublicationsComponent
],
providers:[
],
exports: [
AdvancedSearchPublicationsComponent
]
})
export class AdvancedSearchPublicationsModule { }

View File

@ -0,0 +1,14 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import{SearchCompatibleDataprovidersComponent} from './compatibleDataProviders.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: SearchCompatibleDataprovidersComponent }
])
]
})
export class CompatibleDataProvidersRoutingModule { }

View File

@ -9,7 +9,7 @@ import {OpenaireProperties, ErrorCodes} from '../../utils/properties/openairePro
import {SearchFields} from '../../utils/properties/searchFields'; import {SearchFields} from '../../utils/properties/searchFields';
import {SearchPageComponent } from '../searchUtils/searchPage.component'; import {SearchPageComponent } from '../searchUtils/searchPage.component';
import {SearchUtilsClass } from '../searchUtils/searchUtils.class'; import {SearchUtilsClass } from '../searchUtils/searchUtils.class';
import {ExportCSVComponent} from '../../utils/exportCSV.component'; import {ExportCSVComponent} from '../../utils/exportCSV.class';
@Component({ @Component({
selector: 'search-dataproviders', selector: 'search-dataproviders',

View File

@ -0,0 +1,29 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import{ CompatibleDataProvidersRoutingModule} from './compatibleDataProviders-routing.module';
import{SearchCompatibleDataprovidersComponent} from './compatibleDataProviders.component';
import {SearchResultsModule } from '../searchUtils/searchResults.module';
import {DataProvidersServiceModule} from '../../services/dataProvidersService.module';
import {SearchFormModule} from '../searchUtils/searchForm.module';
import {SearchPageModule} from '../searchUtils/searchPage.module';
@NgModule({
imports: [
CommonModule, FormsModule,
DataProvidersServiceModule,
SearchFormModule, SearchResultsModule, CompatibleDataProvidersRoutingModule, SearchPageModule
],
declarations: [
SearchCompatibleDataprovidersComponent
],
providers:[
],
exports: [
SearchCompatibleDataprovidersComponent
]
})
export class CompatibleDataProvidersModule { }

View File

@ -0,0 +1,14 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import{SearchEntityRegistriesComponent} from './entityRegistries.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: SearchEntityRegistriesComponent }
])
]
})
export class EntityRegistriesRoutingModule { }

View File

@ -9,7 +9,7 @@ import {OpenaireProperties, ErrorCodes} from '../../utils/properties/openairePro
import {SearchFields} from '../../utils/properties/searchFields'; import {SearchFields} from '../../utils/properties/searchFields';
import {SearchPageComponent } from '../searchUtils/searchPage.component'; import {SearchPageComponent } from '../searchUtils/searchPage.component';
import {SearchUtilsClass } from '../searchUtils/searchUtils.class'; import {SearchUtilsClass } from '../searchUtils/searchUtils.class';
import {ExportCSVComponent} from '../../utils/exportCSV.component'; import {ExportCSVComponent} from '../../utils/exportCSV.class';
@Component({ @Component({
selector: 'search-entity-registries', selector: 'search-entity-registries',

View File

@ -0,0 +1,29 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import{ EntityRegistriesRoutingModule} from './entityRegistries-routing.module';
import{SearchEntityRegistriesComponent} from './entityRegistries.component';
import {SearchResultsModule } from '../searchUtils/searchResults.module';
import {DataProvidersServiceModule} from '../../services/dataProvidersService.module';
import {SearchFormModule} from '../searchUtils/searchForm.module';
import {SearchPageModule} from '../searchUtils/searchPage.module';
@NgModule({
imports: [
CommonModule, FormsModule,
DataProvidersServiceModule,
SearchFormModule, SearchResultsModule, EntityRegistriesRoutingModule, SearchPageModule
],
declarations: [
SearchEntityRegistriesComponent
],
providers:[
],
exports: [
SearchEntityRegistriesComponent
]
})
export class EntityRegistriesModule { }

View File

@ -0,0 +1,14 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import{SearchComponent} from './search.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: SearchComponent }
])
]
})
export class MainSearchRoutingModule { }

View File

@ -0,0 +1,36 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import{MainSearchRoutingModule} from './mainSearch-routing.module';
import{SearchComponent} from './search.component';
import {SearchResultsModule } from '../searchUtils/searchResults.module';
import {DataProvidersServiceModule} from '../../services/dataProvidersService.module';
import {DatasetsServiceModule} from '../../services/datasetsService.module';
import {ProjectsServiceModule} from '../../services/projectsService.module';
import {PublicationsServiceModule} from '../../services/publicationsService.module';
import {OrganizationsServiceModule} from '../../services/organizationsService.module';
import {PeopleServiceModule} from '../../services/peopleService.module';
import {BrowseEntitiesModule} from '../searchUtils/browseEntities.module';
import {SearchFormModule} from '../searchUtils/searchForm.module';
@NgModule({
imports: [
CommonModule, FormsModule,
DataProvidersServiceModule, DatasetsServiceModule, ProjectsServiceModule,
PublicationsServiceModule, OrganizationsServiceModule, PeopleServiceModule,
BrowseEntitiesModule, SearchFormModule, SearchResultsModule, MainSearchRoutingModule
],
declarations: [
SearchComponent
],
providers:[
],
exports: [
SearchComponent
]
})
export class MainSearchModule { }

View File

@ -1,14 +1,15 @@
import {Component, Input, Output, EventEmitter, ViewChild} from '@angular/core'; import {Component, Input, Output, EventEmitter, ViewChild, ChangeDetectionStrategy, ViewEncapsulation} from '@angular/core';
import {Observable} from 'rxjs/Observable'; import {Observable} from 'rxjs/Observable';
import {ActivatedRoute, Router} from '@angular/router'; import {ActivatedRoute, Router} from '@angular/router';
import {Location} from '@angular/common'; import {Location} from '@angular/common';
import { SearchPublicationsComponent } from '../simple/searchPublications.component';
import { SearchDataprovidersComponent } from '../simple/searchDataproviders.component'; import { FetchPublications } from '../../utils/fetchEntitiesClasses/fetchPublications.class';
import { SearchProjectsComponent } from '../simple/searchProjects.component'; import { FetchDataproviders } from '../../utils/fetchEntitiesClasses/fetchDataproviders.class';
import { SearchDatasetsComponent } from '../simple/searchDatasets.component'; import { FetchProjects } from '../../utils/fetchEntitiesClasses/fetchProjects.class';
import { SearchOrganizationsComponent } from '../simple/searchOrganizations.component'; import { FetchDatasets } from '../../utils/fetchEntitiesClasses/fetchDatasets.class';
import { SearchPeopleComponent } from '../simple/searchPeople.component'; import { FetchOrganizations } from '../../utils/fetchEntitiesClasses/fetchOrganizations.class';
import { FetchPeople } from '../../utils/fetchEntitiesClasses/fetchPeople.class';
import {SearchPublicationsService} from '../../services/searchPublications.service'; import {SearchPublicationsService} from '../../services/searchPublications.service';
import {SearchDataprovidersService} from '../../services/searchDataproviders.service'; import {SearchDataprovidersService} from '../../services/searchDataproviders.service';
@ -21,9 +22,10 @@ import {OpenaireProperties} from '../../utils/properties/openaireProperties';
import {SearchFields} from '../../utils/properties/searchFields'; import {SearchFields} from '../../utils/properties/searchFields';
@Component({ @Component({
changeDetection: ChangeDetectionStrategy.Default,
encapsulation: ViewEncapsulation.Emulated,
selector: 'search-find', selector: 'search-find',
template: ` template: `
<div class="uk-margin-top"> <div class="uk-margin-top">
<div class="page-header"> <div class="page-header">
<h1>{{pageTitle}}</h1> <h1>{{pageTitle}}</h1>
@ -38,32 +40,32 @@ import {SearchFields} from '../../utils/properties/searchFields';
<ul class="uk-tab uk-tab-left uk-width-large-1-5 uk-width-small-1-1 " data-uk-switcher="{connect:'#searchtabs'}"> <ul class="uk-tab uk-tab-left uk-width-large-1-5 uk-width-small-1-1 " data-uk-switcher="{connect:'#searchtabs'}">
<li (click)="searchPublications()" > <li (click)="searchPublications()" >
<a href="#pubsTab"> <a href="#pubsTab">
Publications {{((keyword.length > 0)?'('+searchPublicationsComponent.searchUtils.totalResults+')':'')}} Publications {{((keyword.length > 0)?'('+fetchPublications.searchUtils.totalResults+')':'')}}
</a> </a>
</li> </li>
<li (click)="searchDatasets()"> <li (click)="searchDatasets()">
<a href="#dataTab" (click)="searchDatasets()"> <a href="#dataTab" (click)="searchDatasets()">
Datasets {{((keyword.length > 0)?'('+searchDatasetsComponent.searchUtils.totalResults+')':'')}} Datasets {{((keyword.length > 0)?'('+fetchDatasets.searchUtils.totalResults+')':'')}}
</a> </a>
</li> </li>
<li (click)="searchProjects()" > <li (click)="searchProjects()" >
<a href="#projectsTab"> <a href="#projectsTab">
Projects {{((keyword.length > 0)?'('+searchProjectsComponent.searchUtils.totalResults+')':'')}} Projects {{((keyword.length > 0)?'('+fetchProjects.searchUtils.totalResults+')':'')}}
</a> </a>
</li> </li>
<li (click)="searchDataProviders()" > <li (click)="searchDataProviders()" >
<a href="#dataProviderTab"> <a href="#dataProviderTab">
Data Providers {{((keyword.length > 0)?'('+searchDataProvidersComponent.searchUtils.totalResults+')':'')}} Data Providers {{((keyword.length > 0)?'('+fetchDataproviders.searchUtils.totalResults+')':'')}}
</a> </a>
</li> </li>
<li (click)="searchOrganizations()" > <li (click)="searchOrganizations()" >
<a href="#organizationsTab" > <a href="#organizationsTab" >
Organizations {{((keyword.length > 0)?'('+searchOrganizationsComponent.searchUtils.totalResults+')':'')}} Organizations {{((keyword.length > 0)?'('+fetchOrganizations.searchUtils.totalResults+')':'')}}
</a> </a>
</li> </li>
<li (click)="searchPeople()" > <li (click)="searchPeople()" >
<a href="#peopleTab" > <a href="#peopleTab" >
People {{((keyword.length > 0)?'('+searchPeopleComponent.searchUtils.totalResults+')':'')}} People {{((keyword.length > 0)?'('+fetchPeople.searchUtils.totalResults+')':'')}}
</a> </a>
</li> </li>
@ -74,8 +76,8 @@ import {SearchFields} from '../../utils/properties/searchFields';
<ul id="searchtabs" class="uk-switcher uk-margin-left uk-width-large-3-4 uk-width-small-1-1"> <ul id="searchtabs" class="uk-switcher uk-margin-left uk-width-large-3-4 uk-width-small-1-1">
<li id="pubsTab" class="uk-active"> <li id="pubsTab" class="uk-active">
<div *ngIf = "keyword.length > 0" class ="uk-animation-fade"> <div *ngIf = "keyword.length > 0" class ="uk-animation-fade">
<div class = "uk-text-right" *ngIf = "searchPublicationsComponent.searchUtils.totalResults> 10" ><a [href] = "linkToSearchPublications" >View all {{searchPublicationsComponent.searchUtils.totalResults}} results</a></div> <div class = "uk-text-right" *ngIf = "fetchPublications.searchUtils.totalResults> 10" ><a [href] = "linkToSearchPublications" >View all {{fetchPublications.searchUtils.totalResults}} results</a></div>
<search-result [(results)]="searchPublicationsComponent.results" [(status)]= "searchPublicationsComponent.status"></search-result> <search-result [(results)]="fetchPublications.results" [(status)]= "fetchPublications.status"></search-result>
</div> </div>
<div *ngIf = "keyword.length == 0 && activeTab=='publications'" class ="uk-animation-fade" > <div *ngIf = "keyword.length == 0 && activeTab=='publications'" class ="uk-animation-fade" >
<browse-entities entityName="publication" baseUrl="/search/find/publications" [refineFields]=searchFields.RESULT_REFINE_FIELDS></browse-entities> <browse-entities entityName="publication" baseUrl="/search/find/publications" [refineFields]=searchFields.RESULT_REFINE_FIELDS></browse-entities>
@ -83,8 +85,8 @@ import {SearchFields} from '../../utils/properties/searchFields';
</li> </li>
<li id="dataTab"> <li id="dataTab">
<div *ngIf = "keyword.length > 0" class ="uk-animation-fade"> <div *ngIf = "keyword.length > 0" class ="uk-animation-fade">
<div class = "uk-text-right" *ngIf = "searchDatasetsComponent.searchUtils.totalResults> 10" ><a [href] = "linkToSearchDatasets" >View all {{searchDatasetsComponent.searchUtils.totalResults}} results</a></div> <div class = "uk-text-right" *ngIf = "fetchDatasets.searchUtils.totalResults> 10" ><a [href] = "linkToSearchDatasets" >View all {{fetchDatasets.searchUtils.totalResults}} results</a></div>
<search-result [(results)]="searchDatasetsComponent.results" [(status)]= "searchDatasetsComponent.status"></search-result> <search-result [(results)]="fetchDatasets.results" [(status)]= "fetchDatasets.status"></search-result>
</div> </div>
<div *ngIf = "keyword.length == 0 && activeTab=='datasets'" class ="uk-animation-fade"> <div *ngIf = "keyword.length == 0 && activeTab=='datasets'" class ="uk-animation-fade">
<browse-entities entityName="dataset" baseUrl="/search/find/datasets" [refineFields]=searchFields.RESULT_REFINE_FIELDS></browse-entities> <browse-entities entityName="dataset" baseUrl="/search/find/datasets" [refineFields]=searchFields.RESULT_REFINE_FIELDS></browse-entities>
@ -92,8 +94,8 @@ import {SearchFields} from '../../utils/properties/searchFields';
</li> </li>
<li id="projectsTab" > <li id="projectsTab" >
<div *ngIf = "keyword.length > 0" class ="uk-animation-fade"> <div *ngIf = "keyword.length > 0" class ="uk-animation-fade">
<div class = "uk-text-right" *ngIf = "searchProjectsComponent.searchUtils.totalResults> 10" ><a [href] = "linkToSearchProjects" >View all {{searchProjectsComponent.searchUtils.totalResults}} results</a></div> <div class = "uk-text-right" *ngIf = "fetchProjects.searchUtils.totalResults> 10" ><a [href] = "linkToSearchProjects" >View all {{fetchProjects.searchUtils.totalResults}} results</a></div>
<search-result [(results)]="searchProjectsComponent.results" [(status)]= "searchProjectsComponent.status"></search-result> <search-result [(results)]="fetchProjects.results" [(status)]= "fetchProjects.status"></search-result>
</div> </div>
<div *ngIf = "keyword.length == 0 && activeTab=='projects'" class ="uk-animation-fade"> <div *ngIf = "keyword.length == 0 && activeTab=='projects'" class ="uk-animation-fade">
<browse-entities entityName="project" baseUrl="/search/find/projects" [refineFields]=searchFields.PROJECT_REFINE_FIELDS></browse-entities> <browse-entities entityName="project" baseUrl="/search/find/projects" [refineFields]=searchFields.PROJECT_REFINE_FIELDS></browse-entities>
@ -101,8 +103,8 @@ import {SearchFields} from '../../utils/properties/searchFields';
</li> </li>
<li id="dataProviderTab"> <li id="dataProviderTab">
<div *ngIf = "keyword.length > 0" class ="uk-animation-fade"> <div *ngIf = "keyword.length > 0" class ="uk-animation-fade">
<div class = "uk-text-right" *ngIf = "searchDataProvidersComponent.searchUtils.totalResults> 10" ><a [href] = "linkToSearchDataproviders" >View all {{searchDataProvidersComponent.searchUtils.totalResults}} results</a></div> <div class = "uk-text-right" *ngIf = "fetchDataproviders.searchUtils.totalResults> 10" ><a [href] = "linkToSearchDataproviders" >View all {{fetchDataproviders.searchUtils.totalResults}} results</a></div>
<search-result [(results)]="searchDataProvidersComponent.results" [(status)]= "searchDataProvidersComponent.status"></search-result> <search-result [(results)]="fetchDataproviders.results" [(status)]= "fetchDataproviders.status"></search-result>
</div> </div>
<div *ngIf = "keyword.length == 0 && activeTab=='dataproviders'" class ="uk-animation-fade" > <div *ngIf = "keyword.length == 0 && activeTab=='dataproviders'" class ="uk-animation-fade" >
<browse-entities entityName="dataprovider" baseUrl="/search/find/dataproviders" [refineFields]=searchFields.DATASOURCE_REFINE_FIELDS></browse-entities> <browse-entities entityName="dataprovider" baseUrl="/search/find/dataproviders" [refineFields]=searchFields.DATASOURCE_REFINE_FIELDS></browse-entities>
@ -110,8 +112,8 @@ import {SearchFields} from '../../utils/properties/searchFields';
</li> </li>
<li id="organizationsTab" > <li id="organizationsTab" >
<div *ngIf = "keyword.length > 0" class ="uk-animation-fade"> <div *ngIf = "keyword.length > 0" class ="uk-animation-fade">
<div class = "uk-text-right" *ngIf = "searchOrganizationsComponent.searchUtils.totalResults> 10" ><a [href] = "linkToSearchOrganizations" >View all {{searchOrganizationsComponent.searchUtils.totalResults}} results</a></div> <div class = "uk-text-right" *ngIf = "fetchOrganizations.searchUtils.totalResults> 10" ><a [href] = "linkToSearchOrganizations" >View all {{fetchOrganizations.searchUtils.totalResults}} results</a></div>
<search-result [(results)]="searchOrganizationsComponent.results" [(status)]= "searchOrganizationsComponent.status"></search-result> <search-result [(results)]="fetchOrganizations.results" [(status)]= "fetchOrganizations.status"></search-result>
</div> </div>
<div *ngIf = "keyword.length == 0 && activeTab=='organizations'" class ="uk-animation-fade"> <div *ngIf = "keyword.length == 0 && activeTab=='organizations'" class ="uk-animation-fade">
<browse-entities entityName="organization" baseUrl="/search/find/organizations" [refineFields]=searchFields.ORGANIZATION_REFINE_FIELDS></browse-entities> <browse-entities entityName="organization" baseUrl="/search/find/organizations" [refineFields]=searchFields.ORGANIZATION_REFINE_FIELDS></browse-entities>
@ -119,8 +121,8 @@ import {SearchFields} from '../../utils/properties/searchFields';
</li> </li>
<li id="peopleTab"> <li id="peopleTab">
<div *ngIf = "keyword.length > 0" class ="uk-animation-fade"> <div *ngIf = "keyword.length > 0" class ="uk-animation-fade">
<div class = "uk-text-right" *ngIf = "searchPeopleComponent.searchUtils.totalResults> 10" ><a [href] = "linkToSearchPeople" >View all {{searchPeopleComponent.searchUtils.totalResults}} results</a></div> <div class = "uk-text-right" *ngIf = "fetchPeople.searchUtils.totalResults> 10" ><a [href] = "linkToSearchPeople" >View all {{fetchPeople.searchUtils.totalResults}} results</a></div>
<search-result [(results)]="searchPeopleComponent.results" [(status)]= "searchPeopleComponent.status"></search-result> <search-result [(results)]="fetchPeople.results" [(status)]= "fetchPeople.status"></search-result>
</div> </div>
<div *ngIf = "keyword.length == 0 && activeTab=='people'" class ="uk-animation-fade"> <div *ngIf = "keyword.length == 0 && activeTab=='people'" class ="uk-animation-fade">
<div class="uk-alert uk-alert-info " role="alert">No person statistics found</div> <div class="uk-alert uk-alert-info " role="alert">No person statistics found</div>
@ -168,12 +170,12 @@ export class SearchComponent {
public linkToSearchOrganizations = ""; public linkToSearchOrganizations = "";
public linkToSearchPeople = ""; public linkToSearchPeople = "";
public searchPublicationsComponent : SearchPublicationsComponent; public fetchPublications : FetchPublications;
public searchDataProvidersComponent : SearchDataprovidersComponent; public fetchDataproviders : FetchDataproviders;
public searchProjectsComponent : SearchProjectsComponent; public fetchProjects : FetchProjects;
public searchDatasetsComponent: SearchDatasetsComponent; public fetchDatasets: FetchDatasets;
public searchOrganizationsComponent: SearchOrganizationsComponent; public fetchOrganizations: FetchOrganizations;
public searchPeopleComponent: SearchPeopleComponent; public fetchPeople: FetchPeople;
public searchFields:SearchFields = new SearchFields(); public searchFields:SearchFields = new SearchFields();
public subPub;public subData;public subProjects;public subOrg;public subPeople; public subDataPr; public subPub;public subData;public subProjects;public subOrg;public subPeople; public subDataPr;
@ -185,12 +187,12 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
private _searchOrganizationsService: SearchOrganizationsService, private _searchOrganizationsService: SearchOrganizationsService,
private _searchPeopleService: SearchPeopleService, private _searchPeopleService: SearchPeopleService,
private location: Location ) { private location: Location ) {
this.searchPublicationsComponent = new SearchPublicationsComponent(this.route, this._searchPublicationsService); this.fetchPublications = new FetchPublications(this._searchPublicationsService);
this.searchDataProvidersComponent = new SearchDataprovidersComponent(this.route,this._searchDataprovidersService); this.fetchDataproviders = new FetchDataproviders(this._searchDataprovidersService);
this.searchProjectsComponent = new SearchProjectsComponent(this.route, this._searchProjectsService); this.fetchProjects = new FetchProjects(this._searchProjectsService);
this.searchDatasetsComponent = new SearchDatasetsComponent(this.route, this._searchDatasetsService); this.fetchDatasets = new FetchDatasets( this._searchDatasetsService);
this.searchOrganizationsComponent = new SearchOrganizationsComponent(this.route, this._searchOrganizationsService); this.fetchOrganizations = new FetchOrganizations( this._searchOrganizationsService);
this.searchPeopleComponent = new SearchPeopleComponent(this.route, this._searchPeopleService); this.fetchPeople = new FetchPeople(this._searchPeopleService);
} }
public ngOnInit() { public ngOnInit() {
@ -236,7 +238,7 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
this.activeTab = "publications"; this.activeTab = "publications";
if(this.reloadPublications) { if(this.reloadPublications) {
this.reloadPublications = false; this.reloadPublications = false;
this.searchPublicationsComponent.getResults(this.keyword, false, 1, 10); this.fetchPublications.getResultsByKeyword(this.keyword, 1, 10);
this.linkToSearchPublications = OpenaireProperties.getLinkToSearchPublications() + "?keyword=" + this.keyword; this.linkToSearchPublications = OpenaireProperties.getLinkToSearchPublications() + "?keyword=" + this.keyword;
} }
} }
@ -244,7 +246,7 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
this.activeTab = "datasets"; this.activeTab = "datasets";
if(this.reloadDatasets) { if(this.reloadDatasets) {
this.reloadDatasets = false; this.reloadDatasets = false;
this.searchDatasetsComponent.getResults(this.keyword, false, 1, 10); this.fetchDatasets.getResultsByKeyword(this.keyword, 1, 10);
this.linkToSearchDatasets = OpenaireProperties.getLinkToSearchDatasets() + "?keyword=" + this.keyword; this.linkToSearchDatasets = OpenaireProperties.getLinkToSearchDatasets() + "?keyword=" + this.keyword;
} }
} }
@ -252,7 +254,7 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
this.activeTab = "projects"; this.activeTab = "projects";
if(this.reloadProjects) { if(this.reloadProjects) {
this.reloadProjects = false; this.reloadProjects = false;
this.searchProjectsComponent.getResults(this.keyword, false, 1, 10); this.fetchProjects.getResultsByKeyword(this.keyword, 1, 10);
this.linkToSearchProjects = OpenaireProperties.getLinkToSearchProjects() + "?keyword=" + this.keyword; this.linkToSearchProjects = OpenaireProperties.getLinkToSearchProjects() + "?keyword=" + this.keyword;
} }
} }
@ -260,7 +262,7 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
this.activeTab = "dataproviders"; this.activeTab = "dataproviders";
if(this.reloadDataproviders) { if(this.reloadDataproviders) {
this.reloadDataproviders = false; this.reloadDataproviders = false;
this.searchDataProvidersComponent.getResults(this.keyword, false, 1, 10); this.fetchDataproviders.getResultsByKeyword(this.keyword, 1, 10);
this.linkToSearchDataproviders = OpenaireProperties.getLinkToSearchDataProviders() + "?keyword=" + this.keyword; this.linkToSearchDataproviders = OpenaireProperties.getLinkToSearchDataProviders() + "?keyword=" + this.keyword;
} }
} }
@ -268,7 +270,7 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
this.activeTab = "organizations"; this.activeTab = "organizations";
if(this.reloadOrganizations) { if(this.reloadOrganizations) {
this.reloadOrganizations = false; this.reloadOrganizations = false;
this.searchOrganizationsComponent.getResults(this.keyword, false, 1, 10); this.fetchOrganizations.getResultsByKeyword(this.keyword, 1, 10);
this.linkToSearchOrganizations = OpenaireProperties.getLinkToSearchOrganizations() + "?keyword=" + this.keyword; this.linkToSearchOrganizations = OpenaireProperties.getLinkToSearchOrganizations() + "?keyword=" + this.keyword;
} }
} }
@ -276,7 +278,7 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
this.activeTab = "people"; this.activeTab = "people";
if(this.reloadPeople) { if(this.reloadPeople) {
this.reloadPeople = false; this.reloadPeople = false;
this.searchPeopleComponent.getResults(this.keyword, false, 1, 10); this.fetchPeople.getResultsByKeyword(this.keyword, 1, 10);
this.linkToSearchPeople = OpenaireProperties.getLinkToSearchPeople() + "?keyword=" + this.keyword; this.linkToSearchPeople = OpenaireProperties.getLinkToSearchPeople() + "?keyword=" + this.keyword;
} }
} }
@ -311,7 +313,7 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
this.subPublicationsCount = this.route.queryParams.subscribe(params => { this.subPublicationsCount = this.route.queryParams.subscribe(params => {
this.subPub = this._searchPublicationsService.numOfSearchPublications(this.keyword).subscribe( this.subPub = this._searchPublicationsService.numOfSearchPublications(this.keyword).subscribe(
data => { data => {
this.searchPublicationsComponent.searchUtils.totalResults = data; this.fetchPublications.searchUtils.totalResults = data;
}, },
err => { err => {
console.log(err); console.log(err);
@ -322,7 +324,7 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
this.subDatasetsCount = this.route.queryParams.subscribe(params => { this.subDatasetsCount = this.route.queryParams.subscribe(params => {
this.subData = this._searchDatasetsService.numOfSearchDatasets(this.keyword).subscribe( this.subData = this._searchDatasetsService.numOfSearchDatasets(this.keyword).subscribe(
data => { data => {
this.searchDatasetsComponent.searchUtils.totalResults = data; this.fetchDatasets.searchUtils.totalResults = data;
}, },
err => { err => {
console.log(err); console.log(err);
@ -333,7 +335,7 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
this.subProjectsCount = this.route.queryParams.subscribe(params => { this.subProjectsCount = this.route.queryParams.subscribe(params => {
this.subProjects = this._searchProjectsService.numOfSearchProjects(this.keyword).subscribe( this.subProjects = this._searchProjectsService.numOfSearchProjects(this.keyword).subscribe(
data => { data => {
this.searchProjectsComponent.searchUtils.totalResults = data; this.fetchProjects.searchUtils.totalResults = data;
}, },
err => { err => {
console.log(err); console.log(err);
@ -341,12 +343,12 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
); );
}) })
this.searchDataProvidersComponent.getNumForSearch(this.keyword); this.fetchDataproviders.getNumForSearch(this.keyword);
this.subOrganizationsCount = this.route.queryParams.subscribe(params => { this.subOrganizationsCount = this.route.queryParams.subscribe(params => {
this.subOrg = this._searchOrganizationsService.numOfSearchOrganizations(this.keyword).subscribe( this.subOrg = this._searchOrganizationsService.numOfSearchOrganizations(this.keyword).subscribe(
data => { data => {
this.searchOrganizationsComponent.searchUtils.totalResults = data; this.fetchOrganizations.searchUtils.totalResults = data;
}, },
err => { err => {
console.log(err); console.log(err);
@ -357,7 +359,7 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
this.subPeopleCount = this.route.queryParams.subscribe(params => { this.subPeopleCount = this.route.queryParams.subscribe(params => {
this.subPeople = this._searchPeopleService.numOfSearchPeople(this.keyword).subscribe( this.subPeople = this._searchPeopleService.numOfSearchPeople(this.keyword).subscribe(
data => { data => {
this.searchPeopleComponent.searchUtils.totalResults = data; this.fetchPeople.searchUtils.totalResults = data;
}, },
err => { err => {
console.log(err); console.log(err);

View File

@ -1,42 +0,0 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { SearchComponent } from './find/search.component';
import { SearchPublicationsComponent } from './simple/searchPublications.component';
import { SearchDataprovidersComponent } from './simple/searchDataproviders.component';
import { SearchProjectsComponent } from './simple/searchProjects.component';
import { SearchDatasetsComponent } from './simple/searchDatasets.component';
import { SearchOrganizationsComponent } from './simple/searchOrganizations.component';
import { SearchPeopleComponent } from './simple/searchPeople.component';
import { AdvancedSearchPublicationsComponent } from './advanced/advancedSearchPublications.component';
import { AdvancedSearchDataProvidersComponent } from './advanced/advancedSearchDataProviders.component';
import { AdvancedSearchProjectsComponent } from './advanced/advancedSearchProjects.component';
import { AdvancedSearchDatasetsComponent } from './advanced/advancedSearchDatasets.component';
import { AdvancedSearchPeopleComponent } from './advanced/advancedSearchPeople.component';
import { AdvancedSearchOrganizationsComponent } from './advanced/advancedSearchOrganizations.component';
import { SearchCompatibleDataprovidersComponent } from './dataProviders/compatibleDataProviders.component';
import { SearchEntityRegistriesComponent } from './dataProviders/entityRegistries.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: 'search/data-providers', component: SearchCompatibleDataprovidersComponent},
{ path: 'search/entity-registries', component: SearchEntityRegistriesComponent},
{ path: 'search/find', component: SearchComponent },
// { path: 'search', component: SearchComponent },
{ path: 'search/find/publications', component: SearchPublicationsComponent },
{ path: 'search/find/dataproviders', component: SearchDataprovidersComponent },
{ path: 'search/find/projects', component: SearchProjectsComponent },
{ path: 'search/find/datasets', component: SearchDatasetsComponent },
{ path: 'search/find/organizations', component: SearchOrganizationsComponent },
{ path: 'search/find/people', component: SearchPeopleComponent },
{ path: 'search/advanced/publications', component: AdvancedSearchPublicationsComponent },
{ path: 'search/advanced/dataproviders', component: AdvancedSearchDataProvidersComponent },
{ path: 'search/advanced/projects', component: AdvancedSearchProjectsComponent },
{ path: 'search/advanced/datasets', component: AdvancedSearchDatasetsComponent },
{ path: 'search/advanced/people', component: AdvancedSearchPeopleComponent },
{ path: 'search/advanced/organizations', component: AdvancedSearchOrganizationsComponent },
])
]
})
export class SearchRoutingModule { }

View File

@ -1,104 +0,0 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import {UtilsModule} from '../utils/utils.module';
import {ServicesModule} from '../services/services.module';
import {Filter, Value} from './searchUtils/searchHelperClasses.class';
import {SearchResult} from '../utils/entities/searchResult';
import {AdvancedSearchPageComponent} from './searchUtils/advancedSearchPage.component';
// import {SearchAllComponent} from '../searchAll/searchAll.component';//helpers
import {SearchPageComponent} from './searchUtils/searchPage.component';
import {SearchFormComponent} from './searchUtils/searchForm.component';
import {SearchPagingComponent} from './searchUtils/searchPaging.component';
import {SearchDownloadComponent} from './searchUtils/searchDownload.component';
import {BrowseEntitiesComponent} from './searchUtils/browseEntities.component';
import {BrowseStatisticComponent} from './searchUtils/browseStatistic.component';
import {SearchResultComponent} from './searchUtils/searchResult.component';
import {SearchFilterComponent} from './searchUtils/searchFilter.component';
import {AdvancedSearchFormComponent} from './searchUtils/advancedSearchForm.component';
import { SearchPublicationsComponent } from './simple/searchPublications.component';
import { SearchDataprovidersComponent } from './simple/searchDataproviders.component';
import { SearchProjectsComponent } from './simple/searchProjects.component';
import {SearchDatasetsComponent} from './simple/searchDatasets.component';
import {SearchOrganizationsComponent} from './simple/searchOrganizations.component';
import {SearchPeopleComponent} from './simple/searchPeople.component';
import {SearchComponent} from './find/search.component';
import {SearchCompatibleDataprovidersComponent} from './dataProviders/compatibleDataProviders.component';
import {SearchEntityRegistriesComponent} from './dataProviders/entityRegistries.component';
import {DatasourceTableViewComponent} from './dataProviders/datasourceTableView.component';
//Advanced
import { AdvancedSearchPublicationsComponent } from './advanced/advancedSearchPublications.component';
import { AdvancedSearchDataProvidersComponent } from './advanced/advancedSearchDataProviders.component';
import { AdvancedSearchProjectsComponent } from './advanced/advancedSearchProjects.component';
import { AdvancedSearchDatasetsComponent } from './advanced/advancedSearchDatasets.component';
import { AdvancedSearchPeopleComponent } from './advanced/advancedSearchPeople.component';
import { AdvancedSearchOrganizationsComponent } from './advanced/advancedSearchOrganizations.component';
import { SearchRoutingModule } from './search-routing.module';
@NgModule({
imports: [
CommonModule, FormsModule,
UtilsModule,
ServicesModule,
SearchRoutingModule
],
declarations: [
AdvancedSearchPageComponent,
// SearchAllComponent,
SearchPageComponent,
SearchFormComponent,
SearchResultComponent,
SearchFilterComponent,
SearchPagingComponent,
SearchDownloadComponent,
AdvancedSearchFormComponent,
SearchPublicationsComponent,
AdvancedSearchPublicationsComponent, AdvancedSearchDataProvidersComponent, AdvancedSearchProjectsComponent,
AdvancedSearchDatasetsComponent, AdvancedSearchPeopleComponent, AdvancedSearchOrganizationsComponent,
SearchDataprovidersComponent,
SearchComponent,
SearchProjectsComponent,
SearchCompatibleDataprovidersComponent,
SearchEntityRegistriesComponent,
DatasourceTableViewComponent,
SearchDatasetsComponent,
SearchOrganizationsComponent,
SearchPeopleComponent,
BrowseEntitiesComponent,
BrowseStatisticComponent
],
providers:[
// SearchPublicationsService
],
exports: [
// SearchAllComponent,
AdvancedSearchPublicationsComponent,
AdvancedSearchDataProvidersComponent,
AdvancedSearchProjectsComponent,
SearchPublicationsComponent,
SearchProjectsComponent,
SearchDataprovidersComponent,
SearchDatasetsComponent,
SearchOrganizationsComponent,
SearchPeopleComponent,
SearchComponent,
SearchCompatibleDataprovidersComponent,
SearchEntityRegistriesComponent,
SearchResultComponent,
BrowseEntitiesComponent,
BrowseStatisticComponent
]
})
export class SearchModule { }

View File

@ -0,0 +1,25 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import{AdvancedSearchFormComponent} from './advancedSearchForm.component';
import {EntitiesAutocompleteModule} from '../../utils/entitiesAutoComplete/entitiesAutoComplete.module';
import {StaticAutocompleteModule} from '../../utils/staticAutoComplete/staticAutoComplete.module';
@NgModule({
imports: [
CommonModule, FormsModule, EntitiesAutocompleteModule, StaticAutocompleteModule
],
declarations: [
AdvancedSearchFormComponent,
],
providers:[
],
exports: [
AdvancedSearchFormComponent
]
})
export class AdvancedSearchFormModule { }

View File

@ -0,0 +1,28 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import{AdvancedSearchPageComponent} from './advancedSearchPage.component';
import{SearchResultsModule} from './searchResults.module';
import{LoadingModalModule} from '../../utils/modal/loadingModal.module';
import {ReportsServiceModule} from '../../services/reportsService.module';
import {SearchDownloadModule} from './searchDownload.module';
import{SearchPagingModule} from './searchPaging.module';
import {AdvancedSearchFormModule} from '../searchUtils/advancedSearchForm.module';
@NgModule({
imports: [
CommonModule, FormsModule, SearchResultsModule, LoadingModalModule, ReportsServiceModule, SearchPagingModule, AdvancedSearchFormModule, SearchDownloadModule
],
declarations: [
AdvancedSearchPageComponent,
],
providers:[
],
exports: [
AdvancedSearchPageComponent,
]
})
export class AdvancedSearchPageModule { }

View File

@ -0,0 +1,30 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import {RefineFieldResultsServiceModule} from '../../services/refineFieldResultsService.module';
import {BrowseEntitiesComponent} from './browseEntities.component';
import {BrowseStatisticComponent} from './browseStatistic.component';
@NgModule({
imports: [
CommonModule, FormsModule,
RefineFieldResultsServiceModule, RouterModule
],
declarations: [
BrowseEntitiesComponent,
BrowseStatisticComponent
],
providers:[
],
exports: [
BrowseEntitiesComponent,
BrowseStatisticComponent
]
})
export class BrowseEntitiesModule { }

View File

@ -9,7 +9,7 @@ import {OpenaireProperties, ErrorCodes} from '../../utils/properties/openairePro
import {SearchFields} from '../../utils/properties/searchFields'; import {SearchFields} from '../../utils/properties/searchFields';
import {SearchPageComponent } from '../searchUtils/searchPage.component'; import {SearchPageComponent } from '../searchUtils/searchPage.component';
import {SearchUtilsClass} from '../searchUtils/searchUtils.class'; import {SearchUtilsClass} from '../searchUtils/searchUtils.class';
import {RouterHelper} from '../../utils/routerHelper.class';
@Component({ @Component({
selector: 'browse-statistic', selector: 'browse-statistic',
template: ` template: `
@ -18,20 +18,22 @@ import {SearchUtilsClass} from '../searchUtils/searchUtils.class';
<h4 class="tm-article-subtitle">{{filter.title}}</h4> <h4 class="tm-article-subtitle">{{filter.title}}</h4>
<div *ngIf="filter.values.length == 0" class="uk-alert uk-alert-info" role="alert">No {{filter.title}} statistics found</div> <div *ngIf="filter.values.length == 0" class="uk-alert uk-alert-info" role="alert">No {{filter.title}} statistics found</div>
<ul *ngIf="filter.values.length > 0 && !viewAll" class="uk-list uk-list-line "> <ul *ngIf="filter.values.length > 0 && !viewAll" class="uk-list uk-list-line ">
<li *ngFor= "let value of filter.values.slice(0,5)"><a [href]="baseUrl+'?'+filter.filterId+'='+value.id">{{_formatName(value)}} ({{value.number}})</a></li> <li *ngFor= "let value of filter.values.slice(0,5)"><!--a [href]="baseUrl+'?'+filter.filterId+'='+value.id">{{_formatName(value)}} ({{value.number}})</a-->
<a [queryParams]="routerHelper.createQueryParam(filter.filterId,value.id)" routerLinkActive="router-link-active" [routerLink]=baseUrl>{{_formatName(value)}} ({{value.number}})</a>
</li>
<li *ngIf= " filter.values.length > 5 && !viewAll " (click)="viewAll=true;"> <li *ngIf= " filter.values.length > 5 && !viewAll " (click)="viewAll=true;">
<span ><span class="uk-text-muted clickable">View more </span><a><i class="uk-icon-toggle-right"></i></a></span> <span ><span class="uk-text-muted clickable">View more </span><a><i class="uk-icon-toggle-right"></i></a></span>
</li> </li>
</ul> </ul>
<ul *ngIf="filter.values.length > 0 && viewAll" class="uk-list uk-list-line searchFilterBoxValues"> <ul *ngIf="filter.values.length > 0 && viewAll" class="uk-list uk-list-line searchFilterBoxValues">
<li *ngFor= "let value of filter.values"><a [href]="baseUrl+'?'+filter.filterId+'='+value.id">{{_formatName(value)}} ({{value.number}})</a></li> <li *ngFor= "let value of filter.values"><!--a [href]="baseUrl+'?'+filter.filterId+'='+value.id">{{_formatName(value)}} ({{value.number}})</a-->
<a [queryParams]="routerHelper.createQueryParam(filter.filterId,value.id)" routerLinkActive="router-link-active" [routerLink]=baseUrl>{{_formatName(value)}} ({{value.number}})</a>
</li>
<li *ngIf= " filter.values.length > 5 && viewAll " (click)="viewAll=false;"> <li *ngIf= " filter.values.length > 5 && viewAll " (click)="viewAll=false;">
<span ><span class="uk-text-muted clickable">View less </span><a><i class="uk-icon-toggle-up"></i></a></span> <span ><span class="uk-text-muted clickable">View less </span><a><i class="uk-icon-toggle-up"></i></a></span>
</li> </li>
</ul> </ul>
` `
}) })
@ -41,7 +43,7 @@ export class BrowseStatisticComponent {
@Input() public filter:any = ""; @Input() public filter:any = "";
private _maxCharacters = 30; private _maxCharacters = 30;
public viewAll = false; public viewAll = false;
public routerHelper:RouterHelper = new RouterHelper();
constructor () { constructor () {
} }
@ -51,6 +53,7 @@ export class BrowseStatisticComponent {
} }
private _formatName(value){ private _formatName(value){
return (((value.name+" ("+value.number+")").length >this._maxCharacters)?(value.name.substring(0,(this._maxCharacters - (" ("+value.number+")").length - ('...').length))+"..."):value.name) return (((value.name+" ("+value.number+")").length >this._maxCharacters)?(value.name.substring(0,(this._maxCharacters - (" ("+value.number+")").length - ('...').length))+"..."):value.name)
} }

View File

@ -0,0 +1,22 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import {SearchDownloadComponent} from './searchDownload.component';
@NgModule({
imports: [
CommonModule, FormsModule
],
declarations: [
SearchDownloadComponent
],
providers:[
],
exports: [
SearchDownloadComponent
]
})
export class SearchDownloadModule { }

View File

@ -0,0 +1,22 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import{SearchFormComponent} from './searchForm.component';
@NgModule({
imports: [
CommonModule, FormsModule
],
declarations: [
SearchFormComponent
],
providers:[
],
exports: [
SearchFormComponent
]
})
export class SearchFormModule { }

View File

@ -0,0 +1,31 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import{SearchPageComponent} from './searchPage.component';
import{SearchFormModule} from './searchForm.module';
import{SearchResultsModule} from './searchResults.module';
import{SearchFilterComponent} from './searchFilter.component';
import{LoadingModalModule} from '../../utils/modal/loadingModal.module';
import {ReportsServiceModule} from '../../services/reportsService.module';
import{SearchPagingModule} from './searchPaging.module';
import {SearchDownloadModule} from './searchDownload.module';
@NgModule({
imports: [
CommonModule, FormsModule, SearchFormModule, SearchResultsModule, LoadingModalModule, ReportsServiceModule, SearchPagingModule, SearchDownloadModule
],
declarations: [
SearchPageComponent,
SearchFilterComponent
,
],
providers:[
],
exports: [
SearchPageComponent,
SearchFilterComponent
]
})
export class SearchPageModule { }

View File

@ -0,0 +1,23 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import{SearchPagingComponent} from './searchPaging.component';
import{PagingModule} from '../../utils/paging.module';
@NgModule({
imports: [
CommonModule, FormsModule, PagingModule
],
declarations: [
SearchPagingComponent
],
providers:[
],
exports: [
SearchPagingComponent
]
})
export class SearchPagingModule { }

View File

@ -5,8 +5,8 @@ import { ErrorCodes} from '../../utils/properties/openaireProperties';
@Component({ @Component({
selector: 'search-result', selector: 'search-result',
template: ` template: `
<ul class="uk-list uk-list-line uk-margin"> <ul class="uk-list uk-list-line uk-margin">
<!--div *ngIf="status == errorCodes.LOADING" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">Loading...</div-->
<div *ngIf="status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No Results found</div> <div *ngIf="status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No Results found</div>
<div *ngIf="status == errorCodes.ERROR" class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div> <div *ngIf="status == errorCodes.ERROR" class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div>
<div *ngIf="status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service not available</div> <div *ngIf="status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service not available</div>
@ -116,7 +116,6 @@ import { ErrorCodes} from '../../utils/properties/openaireProperties';
Countries: {{result.countries}} Countries: {{result.countries}}
</div> </div>
<!--hr-->
</li> </li>
</ul> </ul>
` `
@ -136,5 +135,7 @@ export class SearchResultComponent {
} }
ngOnInit() { ngOnInit() {
console.info("Heeey!!");
} }
} }

View File

@ -0,0 +1,31 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import {SearchResult} from '../../utils/entities/searchResult';
// import {SearchPagingComponent} from './searchPaging.component';
// import {SearchDownloadComponent} from './searchDownload.component';
import {SearchResultComponent} from './searchResult.component';
// import{PagingModule} from '../../utils/paging.module';
@NgModule({
imports: [
CommonModule, FormsModule
// ,PagingModule
],
declarations: [
SearchResultComponent,
// SearchPagingComponent,
// SearchDownloadComponent,
],
providers:[
],
exports: [
// SearchPagingComponent,
// SearchDownloadComponent,
SearchResultComponent
]
})
export class SearchResultsModule { }

View File

@ -0,0 +1,14 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import{SearchDataprovidersComponent} from './searchDataproviders.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: SearchDataprovidersComponent }
])
]
})
export class SearchDataProvidersRoutingModule { }

View File

@ -0,0 +1,30 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import{ SearchDataProvidersRoutingModule} from './searchDataProviders-routing.module';
import{SearchDataprovidersComponent} from './searchDataproviders.component';
import {SearchResultsModule } from '../searchUtils/searchResults.module';
import {DataProvidersServiceModule} from '../../services/dataProvidersService.module';
import {SearchFormModule} from '../searchUtils/searchForm.module';
import {SearchPageModule} from '../searchUtils/searchPage.module';
@NgModule({
imports: [
CommonModule, FormsModule,
DataProvidersServiceModule,
SearchFormModule, SearchResultsModule, SearchDataProvidersRoutingModule, SearchPageModule
],
declarations: [
SearchDataprovidersComponent
],
providers:[
],
exports: [
SearchDataprovidersComponent
]
})
export class SearchDataProvidersModule { }

View File

@ -7,7 +7,7 @@ import {SearchResult} from '../../utils/entities/searchResult';
import {OpenaireProperties, ErrorCodes} from '../../utils/properties/openaireProperties'; import {OpenaireProperties, ErrorCodes} from '../../utils/properties/openaireProperties';
import {SearchFields} from '../../utils/properties/searchFields'; import {SearchFields} from '../../utils/properties/searchFields';
import {SearchPageComponent } from '../searchUtils/searchPage.component'; import {SearchPageComponent } from '../searchUtils/searchPage.component';
import {ExportCSVComponent} from '../../utils/exportCSV.component'; import {ExportCSVComponent} from '../../utils/exportCSV.class';
import {SearchUtilsClass } from '../searchUtils/searchUtils.class'; import {SearchUtilsClass } from '../searchUtils/searchUtils.class';
@Component({ @Component({

View File

@ -0,0 +1,14 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import{SearchDatasetsComponent} from './searchDatasets.component';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', component: SearchDatasetsComponent }
])
]
})
export class SearchDatasetsRoutingModule { }

View File

@ -0,0 +1,30 @@
import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import{ SearchDatasetsRoutingModule} from './searchDatasets-routing.module';
import{SearchDatasetsComponent} from './searchDatasets.component';
import {SearchResultsModule } from '../searchUtils/searchResults.module';
import {DatasetsServiceModule} from '../../services/datasetsService.module';
import {SearchFormModule} from '../searchUtils/searchForm.module';
import {SearchPageModule} from '../searchUtils/searchPage.module';
@NgModule({
imports: [
CommonModule, FormsModule,
DatasetsServiceModule,
SearchFormModule, SearchResultsModule, SearchDatasetsRoutingModule, SearchPageModule
],
declarations: [
SearchDatasetsComponent
],
providers:[
],
exports: [
SearchDatasetsComponent
]
})
export class SearchDatasetsModule { }

Some files were not shown because too many files have changed in this diff Show More