SEO meta tags & title for each page | footer menu | cookies law message | entity auto complete | change deposit & claims urls to look alike production (participate/*)

git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-portal/trunk@46415 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
argiro.kokogiannaki 2017-03-22 10:31:40 +00:00
parent e2cac04ec0
commit 0348364b13
41 changed files with 852 additions and 224 deletions

View File

@ -6,10 +6,10 @@
* found in the LICENSE file at https://angular.io/license * found in the LICENSE file at https://angular.io/license
*/ */
import {Injectable} from '@angular/core'; import {Injectable, Inject} from '@angular/core';
// es6-modules are used here // es6-modules are used here
import {DomAdapter, getDOM} from '@angular/platform-browser/src/dom/dom_adapter'; import {DomAdapter, getDOM} from '@angular/platform-browser/src/dom/dom_adapter';
import {DOCUMENT} from '@angular/platform-browser';
/** /**
* Represent meta element. * Represent meta element.
* *
@ -54,7 +54,13 @@ export interface MetaDefinition {
@Injectable() @Injectable()
export class Meta { export class Meta {
private _dom: DomAdapter = getDOM(); private _dom: DomAdapter = getDOM();
constructor( @Inject(DOCUMENT) private _document: any) { }
/**
* Sets the title of the page
*/
setTitle(title: string) {
this._document.title = title
}
/** /**
* Adds a new meta tag to the dom. * Adds a new meta tag to the dom.
* *
@ -119,6 +125,19 @@ export class Meta {
return this._prepareMetaElement(tag, meta); return this._prepareMetaElement(tag, meta);
} }
updateMeta(name, content) {
const head = this._document.head;
let childNodesAsList = this._dom.childNodesAsList(head);
let metaEl = childNodesAsList.find(el => el['attribs'] ? el['attribs'].name == name : false);
if (metaEl) metaEl['attribs'].content = content;
}
updateProperty(property, content) {
const head = this._document.head;
let childNodesAsList = this._dom.childNodesAsList(head);
let metaEl = childNodesAsList.find(el => el['attribs'] ? el['attribs'].property == property : false);
if (metaEl) metaEl['attribs'].content = content;
}
/** /**
* Removes meta tag with the given selector from the dom. * Removes meta tag with the given selector from the dom.
* *
@ -168,11 +187,14 @@ export class Meta {
return el; return el;
} }
// private _appendMetaElement(meta: HTMLMetaElement): void {
// const head = this._dom.getElementsByTagName(this._dom.defaultDoc(), 'head')[0];
// this._dom.appendChild(head, meta);
// }
private _appendMetaElement(meta: HTMLMetaElement): void { private _appendMetaElement(meta: HTMLMetaElement): void {
const head = this._dom.getElementsByTagName(this._dom.defaultDoc(), 'head')[0]; const head = this._document.head;
this._dom.appendChild(head, meta); this._dom.appendChild(head, meta);
} }
private _removeMetaElement(meta: HTMLMetaElement): void { private _removeMetaElement(meta: HTMLMetaElement): void {
const head = this._dom.parentElement(meta); const head = this._dom.parentElement(meta);
this._dom.removeChild(head, meta); this._dom.removeChild(head, meta);

View File

@ -133,18 +133,29 @@ export function getBulkLinkingModule() {
{ path: 'search/organization', loadChildren: getOrganizationModule }, { path: 'search/organization', loadChildren: getOrganizationModule },
{ path: 'search/project', loadChildren: getProjectModule }, { path: 'search/project', loadChildren: getProjectModule },
{ path: 'search/dataprovider', loadChildren: getDataProviderModule }, { path: 'search/dataprovider', loadChildren: getDataProviderModule },
{ path: 'deposit-datasets', loadChildren: getDepositDatasetsModule }, { path: 'participate/deposit-datasets', loadChildren: getDepositDatasetsModule },
{ path: 'deposit-datasets-result', loadChildren: getDepositDatasetsResultsModule }, { path: 'participate/deposit-datasets-result', loadChildren: getDepositDatasetsResultsModule },
{ path: 'deposit-publications', loadChildren: getDepositPublicationsModule }, { path: 'participate/deposit-publications', loadChildren: getDepositPublicationsModule },
{ path: 'deposit-publications-result', loadChildren: getDepositPublicationsResultsModule }, { path: 'participate/deposit-publications-result', loadChildren: getDepositPublicationsResultsModule },
{ path: 'search/find', loadChildren: getMainSearchModule }, { path: 'search/find', loadChildren: getMainSearchModule , data: {
meta: {
title: 'Home page',
description: 'Description of the home page'
}
}},
{ path: 'search/find/publications', loadChildren: getSearchPublicationsModule }, { path: 'search/find/publications', loadChildren: getSearchPublicationsModule },
{ path: 'search/find/datasets', loadChildren: getSearchDatasetsModule }, { path: 'search/find/datasets', loadChildren: getSearchDatasetsModule },
{ path: 'search/find/projects', loadChildren: getSearchProjectsModule }, { path: 'search/find/projects', loadChildren: getSearchProjectsModule },
{ path: 'search/find/dataproviders', loadChildren: getSearchDataProvidersModule }, { path: 'search/find/dataproviders', loadChildren: getSearchDataProvidersModule },
{ path: 'search/find/organizations', loadChildren: getSearchOrganizationsModule }, { path: 'search/find/organizations', loadChildren: getSearchOrganizationsModule },
{ path: 'search/find/people', loadChildren: getSearchPeopleModule }, { path: 'search/find/people', loadChildren: getSearchPeopleModule },
{ path: 'search/data-providers', loadChildren: getCompatibleDataProvidersModule }, { path: 'search/data-providers', loadChildren: getCompatibleDataProvidersModule,
data: {
meta: {
title: 'Home page',
description: 'Description of the home page'
}
}},
{ path: 'search/entity-registries', loadChildren: getEntityRegistriesModule }, { path: 'search/entity-registries', loadChildren: getEntityRegistriesModule },
{ path: 'search/advanced/publications', loadChildren: getAdvancedSearchPublicationsModule }, { path: 'search/advanced/publications', loadChildren: getAdvancedSearchPublicationsModule },
{ path: 'search/advanced/datasets', loadChildren: getAdvancedSearchDatasetsModule }, { path: 'search/advanced/datasets', loadChildren: getAdvancedSearchDatasetsModule },
@ -155,8 +166,8 @@ export function getBulkLinkingModule() {
{ path: 'project-report', loadChildren: gethtmlProjectReportModule }, { path: 'project-report', loadChildren: gethtmlProjectReportModule },
// { path: 'myclaims', loadChildren: getMyClaimsModule }, // { path: 'myclaims', loadChildren: getMyClaimsModule },
// { path: 'claims', loadChildren: getClaimsAdminModule }, // { path: 'claims', loadChildren: getClaimsAdminModule },
// { path: 'bulk-linking', loadChildren: getBulkLinkingModule }, // { path: 'participate/bulk-claim', loadChildren: getBulkLinkingModule },
// { path: 'linking', loadChildren: getLinkingModule }, // { path: 'participate/claim', loadChildren: getLinkingModule },
]) ])
], ],
}) })

View File

@ -29,10 +29,10 @@ export class XLargeDirective {
<div id="tm-main" class="tm-middle" uk-height-viewport="mode: expand"> <div id="tm-main" class="tm-middle custom-main-content" uk-height-viewport="mode: expand">
<div class="uk-container uk-container-center"> <div class="uk-container uk-container-center">
<div class="uk-grid" uk-grid> <div class="uk-grid" uk-grid>
<div class="tm-main uk-width-small-1-1 uk-width-medium-1-1 uk-width-large-1-1 uk-row-first"> <div class="tm-main uk-width-small-1-1 uk-width-medium-1-1 uk-width-large-1-1 uk-row-first ">
<main> <main>
<router-outlet></router-outlet> <router-outlet></router-outlet>
@ -51,7 +51,12 @@ export class XLargeDirective {
</div> </div>
</div> </div>
</div> </div>
<!--bottom></bottom--> <cookie-law position="bottom">
OpenAIRE uses cookies in order to function properly.<br>
Cookies are small pieces of data that websites store in your browser to allow us to give you the best browsing experience possible.
By using the OpenAIRE portal you accept our use of cookies. <a href="//ec.europa.eu/ipg/basics/legal/cookies/index_en.htm" target="_blank"> Read more <i class="uk-icon-angle-double-right"></i></a>
</cookie-law>
<bottom></bottom>
` `

View File

@ -10,7 +10,7 @@ import { AppComponent, XLargeDirective } from './app.component';
import {SharedComponentsModule} from './sharedComponents/sharedComponents.module'; //navbar import {SharedComponentsModule} from './sharedComponents/sharedComponents.module'; //navbar
import { ErrorModule } from './error/error.module'; import { ErrorModule } from './error/error.module';
import { CacheService } from './shared/cache.service'; import { CacheService } from './shared/cache.service';
import { CookieLawModule } from './sharedComponents/cookie-law/cookie-law.module';
@NgModule({ @NgModule({
declarations: [ AppComponent, XLargeDirective ], declarations: [ AppComponent, XLargeDirective ],
@ -19,7 +19,8 @@ import { CacheService } from './shared/cache.service';
SharedComponentsModule, SharedComponentsModule,
AppRoutingModule, AppRoutingModule,
ErrorModule ErrorModule,
CookieLawModule
], exports:[], providers:[CacheService] ], exports:[], providers:[CacheService]
}) })
export class AppModule { export class AppModule {

View File

@ -10,7 +10,7 @@ import {Observable} from 'rxjs/Observable';
<h1> Claims Administrator </h1> <h1> Claims Administrator </h1>
</div> </div>
<div> <div>
<div class="uk-text-right"><a routerLink="/linking">Add more Links?</a></div> <div class="uk-text-right"><a routerLink="/participate/claim">Add more Links?</a></div>
<displayClaims enableDelete="false" myClaims="false" isAdim="true"></displayClaims> <displayClaims enableDelete="false" myClaims="false" isAdim="true"></displayClaims>
</div> </div>
</div> </div>

View File

@ -11,7 +11,7 @@ import {Observable} from 'rxjs/Observable';
<h1> My Linked research resutls</h1> <h1> My Linked research resutls</h1>
</div> </div>
<div> <div>
<div class="uk-text-right"><a routerLink="/linking">Add more Links?</a></div> <div class="uk-text-right"><a routerLink="/participate/claim">Add more Links?</a></div>
<displayClaims enableDelete="false" myClaims="true" isAdmin="false" [fetchId]="user" ></displayClaims> <displayClaims enableDelete="false" myClaims="true" isAdmin="false" [fetchId]="user" ></displayClaims>
</div> </div>
</div> </div>

View File

@ -2,6 +2,7 @@ import {Component, Input} from '@angular/core';
import {Observable} from 'rxjs/Observable'; 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 { Meta} from '../../angular2-meta';
@Component({ @Component({
@ -63,7 +64,7 @@ export class DepositComponent {
public selectedId: string = ""; public selectedId: string = "";
public warningMessage: string = ""; public warningMessage: string = "";
constructor (private _router: Router) { constructor (private _router: Router, private _meta: Meta) {
this.openAccess = OpenaireProperties.getOpenAccess(); this.openAccess = OpenaireProperties.getOpenAccess();
this.openAccessRepo = OpenaireProperties.getOpenAccessRepo(); this.openAccessRepo = OpenaireProperties.getOpenAccessRepo();
@ -71,17 +72,28 @@ export class DepositComponent {
this.h2020Guidlines = OpenaireProperties.getH2020Guidlines(); this.h2020Guidlines = OpenaireProperties.getH2020Guidlines();
this.ercGuidlines = OpenaireProperties.getERCGuidlines(); this.ercGuidlines = OpenaireProperties.getERCGuidlines();
this.helpdesk = OpenaireProperties.getHelpdesk(); this.helpdesk = OpenaireProperties.getHelpdesk();
this.updateTitle("Deposit "+this.requestFor);
this.updateDescription("Openaire, repositories, open access, data provider, compatibility, organization, deposit "+ this.requestFor);
}
updateDescription(description:string){
this._meta.updateMeta("description", description);
this._meta.updateMeta("og:description", description);
}
updateTitle(title:string){
var _suffix ="| OpenAIRE";
var _title = ((title.length> 50 ) ?title.substring(0,50):title) + _suffix;
this._meta.setTitle(_title );
this._meta.updateMeta("og:title",_title);
} }
organizationSelected(id: string) { organizationSelected(id: string) {
console.info("organization selected"); console.info("organization selected");
if(id && id.length > 0){ if(id && id.length > 0){
if(this.requestFor == "Publications") { if(this.requestFor == "Publications") {
this._router.navigate( ['deposit-publications-result'], { queryParams: { "organizationId": id } } ); this._router.navigate( ['participate/deposit-publications-result'], { queryParams: { "organizationId": id } } );
} else if(this.requestFor == "Research Data") { } else if(this.requestFor == "Research Data") {
this._router.navigate( ['deposit-datasets-result'], { queryParams: { "organizationId": id } } ); this._router.navigate( ['participate/deposit-datasets-result'], { queryParams: { "organizationId": id } } );
} }
} else { } else {
this.warningMessage = "No organization selected"; this.warningMessage = "No organization selected";

View File

@ -7,6 +7,7 @@ import { FetchDataproviders } from '../utils/fetchEntitiesClasses/fetchDataprovi
import { SearchDataprovidersService } from '../services/searchDataproviders.service'; import { SearchDataprovidersService } from '../services/searchDataproviders.service';
import {OrganizationService} from '../services/organization.service'; import {OrganizationService} from '../services/organization.service';
import { Meta} from '../../angular2-meta';
import {RouterHelper} from '../utils/routerHelper.class'; import {RouterHelper} from '../utils/routerHelper.class';
@ -112,15 +113,27 @@ export class DepositResultComponent {
constructor (private _router: Router, constructor (private _router: Router,
private route: ActivatedRoute, private route: ActivatedRoute,
private _searchDataprovidersService: SearchDataprovidersService, private _searchDataprovidersService: SearchDataprovidersService,
private _organizationService: OrganizationService) { private _organizationService: OrganizationService, private _meta: Meta) {
console.info("depositResult constructor"); console.info("depositResult constructor");
this.zenodo = OpenaireProperties.getZenodoURL(); this.zenodo = OpenaireProperties.getZenodoURL();
this.fetchDataproviders = new FetchDataproviders(this._searchDataprovidersService); this.fetchDataproviders = new FetchDataproviders(this._searchDataprovidersService);
this.status = this.errorCodes.LOADING; this.status = this.errorCodes.LOADING;
console.info("loading"); this.updateTitle("Deposit "+this.requestFor);
this.updateDescription("Openaire, repositories, open access, data provider, compatibility, organization, deposit "+ this.requestFor);
} }
updateDescription(description:string){
this._meta.updateMeta("description", description);
this._meta.updateMeta("og:description", description);
}
updateTitle(title:string){
var _suffix ="| OpenAIRE";
var _title = ((title.length> 50 ) ?title.substring(0,50):title) + _suffix;
this._meta.setTitle(_title );
this._meta.updateMeta("og:title",_title);
}
ngOnInit() { ngOnInit() {
console.info('depositResult init'); console.info('depositResult init');

View File

@ -3,9 +3,9 @@ import {Observable} from 'rxjs/Observable';
import {DataProviderService} from './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';
import { Meta} from '../../../angular2-meta';
import{TabsComponent} from './tabs.component'; import{TabsComponent} from './tabs.component';
@Component({ @Component({
selector: 'dataprovider', selector: 'dataprovider',
templateUrl: 'dataProvider.component.html', templateUrl: 'dataProvider.component.html',
@ -14,8 +14,9 @@ import{TabsComponent} from './tabs.component';
}) })
export class DataProviderComponent { export class DataProviderComponent {
constructor (private _dataproviderService: DataProviderService, private route: ActivatedRoute) { constructor (private _dataproviderService: DataProviderService, private route: ActivatedRoute, private _meta: Meta) {
this.updateTitle("Data provider");
this.updateDescription("Data provider, search, repositories, open access");
} }
ngOnInit() { ngOnInit() {
this.sub = this.route.queryParams.subscribe(data => { this.sub = this.route.queryParams.subscribe(data => {
@ -63,6 +64,8 @@ export class DataProviderComponent {
this._dataproviderService.getDataproviderInfo(this.datasourceId).subscribe( this._dataproviderService.getDataproviderInfo(this.datasourceId).subscribe(
data => { data => {
this.dataProviderInfo = data; this.dataProviderInfo = data;
this.updateTitle(this.dataProviderInfo.title.name);
this.updateDescription("Data provider, search, repositories, open access,"+this.dataProviderInfo.title.name);
// console.info(this.dataProviderInfo.resultsBy); // console.info(this.dataProviderInfo.resultsBy);
}, },
err => { err => {
@ -73,4 +76,14 @@ export class DataProviderComponent {
); );
} }
} }
updateDescription(description:string){
this._meta.updateMeta("description", description);
this._meta.updateMeta("og:description", description);
}
updateTitle(title:string){
var _suffix ="| OpenAIRE";
var _title = ((title.length> 50 ) ?title.substring(0,50):title) + _suffix;
this._meta.setTitle(_title );
this._meta.updateMeta("og:title",_title);
}
} }

View File

@ -205,7 +205,7 @@
</span> </span>
</div> </div>
</dd> </dd>
<!--dd><a [queryParams]="routerHelper.createQueryParams(['id','type','linkTo'],[datasetId,'dataset','project'])" routerLinkActive="router-link-active" routerLink="/linking" > <i class="uk-icon-link"></i> Add links to projects</a></dd--> <!--dd><a [queryParams]="routerHelper.createQueryParams(['id','type','linkTo'],[datasetId,'dataset','project'])" routerLinkActive="router-link-active" routerLink="/participate/claim" > <i class="uk-icon-link"></i> Add links to projects</a></dd-->
<dd *ngIf="showAllFundedBy" class="uk-text-right"> <dd *ngIf="showAllFundedBy" class="uk-text-right">
<a class="uk-text-muted" (click)="showAllFundedBy = !showAllFundedBy;"> <a class="uk-text-muted" (click)="showAllFundedBy = !showAllFundedBy;">
View less View less
@ -235,7 +235,7 @@
<span *ngIf="item['labelConcept'] != null">: {{item['labelConcept']}}</span> <span *ngIf="item['labelConcept'] != null">: {{item['labelConcept']}}</span>
</mark> </mark>
</dd> </dd>
<!--dd><a [queryParams]="routerHelper.createQueryParams(['id','type','linkTo'],[datasetId,'dataset','context'])" routerLinkActive="router-link-active" routerLink="/linking" > <i class="uk-icon-link"></i> Add links to contexts</a></dd--> <!--dd><a [queryParams]="routerHelper.createQueryParams(['id','type','linkTo'],[datasetId,'dataset','context'])" routerLinkActive="router-link-active" routerLink="/participate/claim" > <i class="uk-icon-link"></i> Add links to contexts</a></dd-->
</dl> </dl>
</li> </li>

View File

@ -5,6 +5,7 @@ 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'
import {RouterHelper} from '../../utils/routerHelper.class'; import {RouterHelper} from '../../utils/routerHelper.class';
import { Meta} from '../../../angular2-meta';
@Component({ @Component({
selector: 'dataset', selector: 'dataset',
@ -38,12 +39,14 @@ export class DatasetComponent {
public errorMessage = ""; public errorMessage = "";
public routerHelper:RouterHelper = new RouterHelper(); public routerHelper:RouterHelper = new RouterHelper();
constructor (private _datasetService: DatasetService, private route: ActivatedRoute) {} constructor (private _datasetService: DatasetService, private route: ActivatedRoute, private _meta: Meta) {}
ngOnInit() { ngOnInit() {
this.sub = this.route.queryParams.subscribe(params => { this.sub = this.route.queryParams.subscribe(params => {
this.datasetId = params['datasetId']; this.datasetId = params['datasetId'];
console.info("Id is :"+this.datasetId); console.info("Id is :"+this.datasetId);
this.updateTitle("Dataset");
this.updateDescription("Dataset, search, open access");
if(this.datasetId){ if(this.datasetId){
this.getDatasetInfo(this.datasetId); this.getDatasetInfo(this.datasetId);
}else{ }else{
@ -68,7 +71,8 @@ export class DatasetComponent {
this._datasetService.getDatasetInfo(id).subscribe( this._datasetService.getDatasetInfo(id).subscribe(
data => { data => {
this.datasetInfo = data; this.datasetInfo = data;
this.updateTitle(this.datasetInfo.title.name);
this.updateDescription("Dataset, search, repositories, open access,"+this.datasetInfo.title.name);
this.result = [] this.result = []
this.result = {id: id, type :"dataset", source : "openaire", title: this.datasetInfo.title,url: '', result: '', accessRights: this.datasetInfo.bestlicense, embargoEndDate: ''}; this.result = {id: id, type :"dataset", source : "openaire", title: this.datasetInfo.title,url: '', result: '', accessRights: this.datasetInfo.bestlicense, embargoEndDate: ''};
@ -97,4 +101,14 @@ export class DatasetComponent {
this.totalViews = $event.totalViews; this.totalViews = $event.totalViews;
this.totalDownloads = $event.totalDownloads; this.totalDownloads = $event.totalDownloads;
} }
updateDescription(description:string){
this._meta.updateMeta("description", description);
this._meta.updateMeta("og:description", description);
}
updateTitle(title:string){
var _suffix ="| OpenAIRE";
var _title = ((title.length> 50 ) ?title.substring(0,50):title) + _suffix;
this._meta.setTitle(_title );
this._meta.updateMeta("og:title",_title);
}
} }

View File

@ -9,7 +9,7 @@ import {FetchDataproviders} from '../../utils/fetchEntitiesClasses/fetchDataprov
import {SearchPublicationsService} from '../../services/searchPublications.service'; import {SearchPublicationsService} from '../../services/searchPublications.service';
import {SearchDataprovidersService} from '../../services/searchDataproviders.service'; import {SearchDataprovidersService} from '../../services/searchDataproviders.service';
import {SearchProjectsService} from '../../services/searchProjects.service'; import {SearchProjectsService} from '../../services/searchProjects.service';
import { Meta} from '../../../angular2-meta';
import {OpenaireProperties} from '../../utils/properties/openaireProperties'; import {OpenaireProperties} from '../../utils/properties/openaireProperties';
import {SearchingProjectsTabComponent} from '../searchingProjectsInTab.component'; import {SearchingProjectsTabComponent} from '../searchingProjectsInTab.component';
import {RouterHelper} from '../../utils/routerHelper.class'; import {RouterHelper} from '../../utils/routerHelper.class';
@ -61,8 +61,9 @@ export class OrganizationComponent {
private _searchDataprovidersService: SearchDataprovidersService, private _searchDataprovidersService: SearchDataprovidersService,
private _reportsService: ReportsService, private _reportsService: ReportsService,
private _searchPublicationsService: SearchPublicationsService, private _searchPublicationsService: SearchPublicationsService,
private _searchProjectsService: SearchProjectsService) { private _searchProjectsService: SearchProjectsService, private _meta: Meta) {
this.updateTitle("Organization");
this.updateDescription("Organization, country, projects, search, repositories, open access");
console.info('organization constructor'); console.info('organization constructor');
this.fetchDataproviders = new FetchDataproviders(this._searchDataprovidersService); this.fetchDataproviders = new FetchDataproviders(this._searchDataprovidersService);
} }
@ -119,7 +120,8 @@ export class OrganizationComponent {
this.errorMessage = 'No organization found'; this.errorMessage = 'No organization found';
} else { } else {
this.organizationInfo = data; this.organizationInfo = data;
this.updateTitle(this.organizationInfo.title.name);
this.updateDescription("Organization, country, projects, search, repositories, open access"+this.organizationInfo.title.name);
let projectsNum = 0; let projectsNum = 0;
if(this.organizationInfo.projects != undefined) { if(this.organizationInfo.projects != undefined) {
this.fundersSet = new Set<string>(); this.fundersSet = new Set<string>();
@ -315,6 +317,16 @@ export class OrganizationComponent {
// error => console.log("Error getting number of publications for project.")); // error => console.log("Error getting number of publications for project."));
// }//); // }//);
} }
updateDescription(description:string){
this._meta.updateMeta("description", description);
this._meta.updateMeta("og:description", description);
}
updateTitle(title:string){
var _suffix ="| OpenAIRE";
var _title = ((title.length> 50 ) ?title.substring(0,50):title) + _suffix;
this._meta.setTitle(_title );
this._meta.updateMeta("og:title",_title);
}
public openLoading(){ public openLoading(){
if(this.loading){ if(this.loading){

View File

@ -10,6 +10,7 @@ import { FetchDatasets } from '../../utils/fetchEntitiesClasses/fetchDatasets.cl
import { SearchDatasetsService } from '../../services/searchDatasets.service'; import { SearchDatasetsService } from '../../services/searchDatasets.service';
import {OpenaireProperties} from '../../utils/properties/openaireProperties'; import {OpenaireProperties} from '../../utils/properties/openaireProperties';
import { Meta} from '../../../angular2-meta';
@Component({ @Component({
selector: 'person', selector: 'person',
@ -35,7 +36,10 @@ export class PersonComponent {
constructor (private _personService: PersonService, constructor (private _personService: PersonService,
private route: ActivatedRoute, private route: ActivatedRoute,
private _searchPublicationsService: SearchPublicationsService, private _searchPublicationsService: SearchPublicationsService,
private _searchDatasetsService: SearchDatasetsService) { private _searchDatasetsService: SearchDatasetsService, private _meta: Meta) {
this.updateTitle("Person");
this.updateDescription("person, publication, research data, search, open access");
console.info('person constructor'); console.info('person constructor');
this.fetchPublications = new FetchPublications( this._searchPublicationsService); this.fetchPublications = new FetchPublications( this._searchPublicationsService);
this.fetchDatasets = new FetchDatasets( this._searchDatasetsService); this.fetchDatasets = new FetchDatasets( this._searchDatasetsService);
@ -97,6 +101,8 @@ export class PersonComponent {
this._personService.getPersonInfo(this.personId).subscribe( this._personService.getPersonInfo(this.personId).subscribe(
data => { data => {
this.personInfo = data; this.personInfo = data;
this.updateTitle(this.personInfo.fullname);
this.updateDescription("person, publication, research data, search, open access, "+this.personInfo.fullname);
}, },
err => { err => {
@ -117,4 +123,14 @@ export class PersonComponent {
this.fetchDatasets.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";
} }
updateDescription(description:string){
this._meta.updateMeta("description", description);
this._meta.updateMeta("og:description", description);
}
updateTitle(title:string){
var _suffix ="| OpenAIRE";
var _title = ((title.length> 50 ) ?title.substring(0,50):title) + _suffix;
this._meta.setTitle(_title );
this._meta.updateMeta("og:title",_title);
}
} }

View File

@ -234,12 +234,12 @@
</span> </span>
</li> </li>
<!--li> <!--li>
<a [queryParams]="routerHelper.createQueryParams(['id','type','linkTo'],[projectId,'project','result'])" routerLinkActive="router-link-active" routerLink="/linking" > <i class="uk-icon-link"></i> <a [queryParams]="routerHelper.createQueryParams(['id','type','linkTo'],[projectId,'project','result'])" routerLinkActive="router-link-active" routerLink="/participate/claim" > <i class="uk-icon-link"></i>
Link to research results Link to research results
</a> </a>
</li--> </li-->
<li> <li>
<a routerLinkActive="router-link-active" routerLink="/deposit-publications"> <a routerLinkActive="router-link-active" routerLink="/participate/deposit-publications">
Deposit Publications Deposit Publications
</a> </a>
</li> </li>

View File

@ -14,6 +14,8 @@ import {ModalLoading} from '../../utils/modal/loading.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';
import { Meta} from '../../../angular2-meta';
@Component({ @Component({
selector: 'project', selector: 'project',
@ -62,11 +64,13 @@ export class ProjectComponent{
private route: ActivatedRoute, private route: ActivatedRoute,
private _searchPublicationsService: SearchPublicationsService, private _searchPublicationsService: SearchPublicationsService,
private _searchDatasetsService: SearchDatasetsService, private _searchDatasetsService: SearchDatasetsService,
private _reportsService: ReportsService) { private _reportsService: ReportsService, private _meta: Meta) {
console.info('project constructor.'); console.info('project constructor.');
this.fetchPublications = new FetchPublications( this._searchPublicationsService); this.fetchPublications = new FetchPublications( this._searchPublicationsService);
this.fetchDatasets = new FetchDatasets(this._searchDatasetsService); this.fetchDatasets = new FetchDatasets(this._searchDatasetsService);
this.updateTitle("Project");
this.updateDescription("project, funding, open access, publications, datasets, ");
} }
ngOnInit() { ngOnInit() {
@ -166,6 +170,8 @@ export class ProjectComponent{
if(this.projectName == undefined || this.projectName == '') { if(this.projectName == undefined || this.projectName == '') {
this.projectName = this.projectInfo.title; this.projectName = this.projectInfo.title;
} }
this.updateTitle(this.projectName);
this.updateDescription("project, funding, open access, publications, datasets, "+this.projectName+ ","+this.projectInfo.funder);
this.project= { funderId: "", funderName: this.projectInfo.funder, projectId: this.projectId, projectName: this.projectInfo.title, projectAcronym: this.projectInfo.acronym, startDate: this.projectInfo.startDate, endDate: this.projectInfo.endDate }; this.project= { funderId: "", funderName: this.projectInfo.funder, projectId: this.projectId, projectName: this.projectInfo.title, projectAcronym: this.projectInfo.acronym, startDate: this.projectInfo.startDate, endDate: this.projectInfo.endDate };
this.viewsFrameUrl = OpenaireProperties.getFramesAPIURL()+'merge.php?com=query&data=[{"query":"projViewsTimeline","projTitle":"'+this.projectId+'","table":"","fields":[{"fld":"sum","agg":"sum","type":"column","yaxis":1,"c":false}],"xaxis":{"name":"month","agg":"sum"},"group":"","color":"","type":"chart","size":30,"sort":"xaxis","xStyle":{"r":-30,"s":"0","l":"-","ft":"-","wt":"-"},"title":"","subtitle":"","xaxistitle":"","yaxisheaders":["Monthly views"],"generalxaxis":"","theme":0,"in":[]}]&info_types=["spline"]&stacking=&steps=false&fontFamily=Courier&spacing=[5,0,0,0]&style=[{"color":"rgba(0, 0, 0, 1)","size":"18"},{"color":"rgba(0, 0, 0, 1)","size":"18"},{"color":"000000","size":""},{"color":"000000","size":""}]&backgroundColor=rgba(255,255,255,1)&colors[]=rgba(124, 181, 236, 1)&colors[]=rgba(67, 67, 72, 1)&colors[]=rgba(144, 237, 125, 1)&colors[]=rgba(247, 163, 92, 1)&colors[]=rgba(128, 133, 233, 1)&colors[]=rgba(241, 92, 128, 1)&colors[]=rgba(228, 211, 84, 1)&colors[]=rgba(43, 144, 143, 1)&colors[]=rgba(244, 91, 91, 1)&colors[]=rgba(145, 232, 225, 1)&xlinew=0&ylinew=1&legends=true&tooltips=true'; this.viewsFrameUrl = OpenaireProperties.getFramesAPIURL()+'merge.php?com=query&data=[{"query":"projViewsTimeline","projTitle":"'+this.projectId+'","table":"","fields":[{"fld":"sum","agg":"sum","type":"column","yaxis":1,"c":false}],"xaxis":{"name":"month","agg":"sum"},"group":"","color":"","type":"chart","size":30,"sort":"xaxis","xStyle":{"r":-30,"s":"0","l":"-","ft":"-","wt":"-"},"title":"","subtitle":"","xaxistitle":"","yaxisheaders":["Monthly views"],"generalxaxis":"","theme":0,"in":[]}]&info_types=["spline"]&stacking=&steps=false&fontFamily=Courier&spacing=[5,0,0,0]&style=[{"color":"rgba(0, 0, 0, 1)","size":"18"},{"color":"rgba(0, 0, 0, 1)","size":"18"},{"color":"000000","size":""},{"color":"000000","size":""}]&backgroundColor=rgba(255,255,255,1)&colors[]=rgba(124, 181, 236, 1)&colors[]=rgba(67, 67, 72, 1)&colors[]=rgba(144, 237, 125, 1)&colors[]=rgba(247, 163, 92, 1)&colors[]=rgba(128, 133, 233, 1)&colors[]=rgba(241, 92, 128, 1)&colors[]=rgba(228, 211, 84, 1)&colors[]=rgba(43, 144, 143, 1)&colors[]=rgba(244, 91, 91, 1)&colors[]=rgba(145, 232, 225, 1)&xlinew=0&ylinew=1&legends=true&tooltips=true';
@ -236,6 +242,17 @@ export class ProjectComponent{
this.totalViews = $event.totalViews; this.totalViews = $event.totalViews;
this.totalDownloads = $event.totalDownloads; this.totalDownloads = $event.totalDownloads;
} }
updateDescription(description:string){
this._meta.updateMeta("description", description);
this._meta.updateMeta("og:description", description);
}
updateTitle(title:string){
var _suffix ="| OpenAIRE";
var _title = ((title.length> 50 ) ?title.substring(0,50):title) + _suffix;
this._meta.setTitle(_title );
this._meta.updateMeta("og:title",_title);
}
public openLoading(){ public openLoading(){
if(this.loading){ if(this.loading){

View File

@ -57,7 +57,7 @@
<!--div class="uk-clearfix uk-margin-top uk-margin-bottom"> <!--div class="uk-clearfix uk-margin-top uk-margin-bottom">
<a class="uk-float-right uk-button" [queryParams]="routerHelper.createQueryParams(['id','type','linkTo'],[articleId,'publication','publication'])" routerLinkActive="router-link-active" routerLink="/linking" > <i class="uk-icon-link"></i> Links to research Results</a> <a class="uk-float-right uk-button" [queryParams]="routerHelper.createQueryParams(['id','type','linkTo'],[articleId,'publication','publication'])" routerLinkActive="router-link-active" routerLink="/participate/claim" > <i class="uk-icon-link"></i> Links to research Results</a>
</div--> </div-->
<ul class="uk-tab" data-uk-switcher="{connect: '#tab-content'}"> <ul class="uk-tab" data-uk-switcher="{connect: '#tab-content'}">
@ -495,7 +495,7 @@
View more View more
</a> </a>
</dd> </dd>
<!--dd><a [queryParams]="routerHelper.createQueryParams(['id','type','linkTo'],[articleId,'publication','project'])" routerLinkActive="router-link-active" routerLink="/linking" > <i class="uk-icon-link"></i> Add links to projects</a></dd--> <!--dd><a [queryParams]="routerHelper.createQueryParams(['id','type','linkTo'],[articleId,'publication','project'])" routerLinkActive="router-link-active" routerLink="/participate/claim" > <i class="uk-icon-link"></i> Add links to projects</a></dd-->
</dl> </dl>
</li> </li>
@ -514,7 +514,7 @@
<span *ngIf="item['labelConcept'] != null">: {{item['labelConcept']}}</span> <span *ngIf="item['labelConcept'] != null">: {{item['labelConcept']}}</span>
</mark> </mark>
</dd> </dd>
<!--dd><a [queryParams]="routerHelper.createQueryParams(['id','type','linkTo'],[articleId,'publication','context'])" routerLinkActive="router-link-active" routerLink="/linking" > <i class="uk-icon-link"></i> Add links to contexts</a></dd--> <!--dd><a [queryParams]="routerHelper.createQueryParams(['id','type','linkTo'],[articleId,'publication','context'])" routerLinkActive="router-link-active" routerLink="/participate/claim" > <i class="uk-icon-link"></i> Add links to contexts</a></dd-->
</dl> </dl>
</li> </li>

View File

@ -5,8 +5,8 @@ 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';
import {RouterHelper} from '../../utils/routerHelper.class'; import {RouterHelper} from '../../utils/routerHelper.class';
// declare var switcher:any; import { Meta} from '../../../angular2-meta';
// declare var UIkit:any;
@Component({ @Component({
@ -49,16 +49,17 @@ export class PublicationComponent {
public routerHelper:RouterHelper = new RouterHelper(); public routerHelper:RouterHelper = new RouterHelper();
constructor (private _publicationService: PublicationService, constructor (private _publicationService: PublicationService,
private route: ActivatedRoute) { private route: ActivatedRoute, private _meta: Meta) { }
console.log("******CONSTR");
}
ngOnInit() { ngOnInit() {
this.sub = this.route.queryParams.subscribe(data => { this.sub = this.route.queryParams.subscribe(data => {
this.articleId = data['articleId']; this.articleId = data['articleId'];
console.info("Article id is :"+this.articleId); console.info("Article id is :"+this.articleId);
this.updateTitle("Publication");
this.updateDescription("Publication, open access, collected from");
if(this.articleId){ if(this.articleId){
this.getPublicationInfo(this.articleId); this.getPublicationInfo(this.articleId);
// if (typeof document !== 'undefined') { // if (typeof document !== 'undefined') {
// switcher(UIkit); // switcher(UIkit);
@ -89,7 +90,8 @@ export class PublicationComponent {
// this.result = [] // this.result = []
// this.result = {id: id, type :"dataset", source : "openaire", title: this.publicationInfo.title,url: '', result: '', accessRights: this.publicationInfo.bestlicense, embargoEndDate: ''}; // this.result = {id: id, type :"dataset", source : "openaire", title: this.publicationInfo.title,url: '', result: '', accessRights: this.publicationInfo.bestlicense, embargoEndDate: ''};
this.updateTitle(this.publicationInfo.title.name);
this.updateDescription("Dataset, search, repositories, open access,"+this.publicationInfo.title.name);
let bioentitiesNum = 0; let bioentitiesNum = 0;
if(this.publicationInfo.bioentities != undefined) { if(this.publicationInfo.bioentities != undefined) {
this.publicationInfo.bioentities.forEach(function (value, key, map) { this.publicationInfo.bioentities.forEach(function (value, key, map) {
@ -180,4 +182,14 @@ export class PublicationComponent {
</div> </div>
</div>*/ </div>*/
} }
updateDescription(description:string){
this._meta.updateMeta("description", description);
this._meta.updateMeta("og:description", description);
}
updateTitle(title:string){
var _suffix ="| OpenAIRE";
var _title = ((title.length> 50 ) ?title.substring(0,50):title) + _suffix;
this._meta.setTitle(_title );
this._meta.updateMeta("og:title",_title);
}
} }

View File

@ -3,6 +3,8 @@ 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 { Meta, MetaDefinition} from '../../../angular2-meta';
import { FetchPublications } from '../../utils/fetchEntitiesClasses/fetchPublications.class'; import { FetchPublications } from '../../utils/fetchEntitiesClasses/fetchPublications.class';
import { FetchDataproviders } from '../../utils/fetchEntitiesClasses/fetchDataproviders.class'; import { FetchDataproviders } from '../../utils/fetchEntitiesClasses/fetchDataproviders.class';
import { FetchProjects } from '../../utils/fetchEntitiesClasses/fetchProjects.class'; import { FetchProjects } from '../../utils/fetchEntitiesClasses/fetchProjects.class';
@ -250,13 +252,19 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
private _searchDatasetsService: SearchDatasetsService, private _searchDatasetsService: SearchDatasetsService,
private _searchOrganizationsService: SearchOrganizationsService, private _searchOrganizationsService: SearchOrganizationsService,
private _searchPeopleService: SearchPeopleService, private _searchPeopleService: SearchPeopleService,
private location: Location ) { private location: Location, private _meta: Meta ) {
this.fetchPublications = new FetchPublications(this._searchPublicationsService); this.fetchPublications = new FetchPublications(this._searchPublicationsService);
this.fetchDataproviders = new FetchDataproviders(this._searchDataprovidersService); this.fetchDataproviders = new FetchDataproviders(this._searchDataprovidersService);
this.fetchProjects = new FetchProjects(this._searchProjectsService); this.fetchProjects = new FetchProjects(this._searchProjectsService);
this.fetchDatasets = new FetchDatasets( this._searchDatasetsService); this.fetchDatasets = new FetchDatasets( this._searchDatasetsService);
this.fetchOrganizations = new FetchOrganizations( this._searchOrganizationsService); this.fetchOrganizations = new FetchOrganizations( this._searchOrganizationsService);
this.fetchPeople = new FetchPeople(this._searchPeopleService); this.fetchPeople = new FetchPeople(this._searchPeopleService);
var description = "open access, research, scientific publication, European Commission, EC, FP7, ERC, Horizon 2020, H2020, search, projects ";
var title = "Search publications, datasets, projects... | OpenAIRE";
this._meta.setTitle(title);
this._meta.updateMeta("description", description);
this._meta.updateMeta("og:description", description);
this._meta.updateMeta("og:title", title);
} }
public ngOnInit() { public ngOnInit() {
@ -268,6 +276,7 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
this.count(); this.count();
} }
}); });
} }
public ngOnDestroy() { public ngOnDestroy() {
this.sub.unsubscribe(); this.sub.unsubscribe();

View File

@ -7,6 +7,7 @@ import {SearchFields} from '../../utils/properties/searchFields';
import {SearchUtilsClass} from './searchUtils.class'; import {SearchUtilsClass} from './searchUtils.class';
import {ModalLoading} from '../../utils/modal/loading.component'; import {ModalLoading} from '../../utils/modal/loading.component';
import {StringUtils, Dates} from '../../utils/string-utils.class'; import {StringUtils, Dates} from '../../utils/string-utils.class';
import { Meta} from '../../../angular2-meta';
@Component({ @Component({
@ -66,15 +67,26 @@ export class AdvancedSearchPageComponent {
public baseURLWithParameters:string = ''; public baseURLWithParameters:string = '';
@Output() queryChange = new EventEmitter(); @Output() queryChange = new EventEmitter();
constructor (private location: Location) { constructor (private location: Location, private _meta: Meta) {
} }
ngOnInit() { ngOnInit() {
this.updateTitle("Advanced search "+this.pageTitle);
this.updateDescription("Openaire, search, repositories, open access, type, data provider, funder, project, "+ this.pageTitle);
this.searchUtils.baseUrl = "/" + this.searchUtils.baseUrl; this.searchUtils.baseUrl = "/" + this.searchUtils.baseUrl;
this.updateBaseUrlWithParameters(); this.updateBaseUrlWithParameters();
this.defineUrlParam(); this.defineUrlParam();
} }
updateDescription(description:string){
this._meta.updateMeta("description", description);
this._meta.updateMeta("og:description", description);
}
updateTitle(title:string){
var _suffix ="| OpenAIRE";
var _title = ((title.length> 50 ) ?title.substring(0,50):title) + _suffix;
this._meta.setTitle(_title );
this._meta.updateMeta("og:title",_title);
}
private defineUrlParam() { private defineUrlParam() {
if(this.entityType == "publication") { if(this.entityType == "publication") {
this.urlParam = "articleId"; this.urlParam = "articleId";

View File

@ -7,6 +7,7 @@ import {SearchFields} from '../../utils/properties/searchFields';
import {SearchUtilsClass} from './searchUtils.class'; import {SearchUtilsClass} from './searchUtils.class';
import {DOI, StringUtils} from '../../utils/string-utils.class'; import {DOI, StringUtils} from '../../utils/string-utils.class';
import {ModalLoading} from '../../utils/modal/loading.component'; import {ModalLoading} from '../../utils/modal/loading.component';
import { Meta} from '../../../angular2-meta';
@Component({ @Component({
selector: 'search-page', selector: 'search-page',
@ -93,19 +94,29 @@ export class SearchPageComponent {
public urlParam: string; public urlParam: string;
public parameterNames:string[] =[]; public parameterNames:string[] =[];
public parameterValues:string[] =[]; public parameterValues:string[] =[];
constructor (private location: Location ) { constructor (private location: Location , private _meta: Meta) {
} }
ngOnInit() { ngOnInit() {
this.updateBaseUrlWithParameters(this.filters); this.updateBaseUrlWithParameters(this.filters);
this.defineUrlParam(); this.defineUrlParam();
//console.info(this.entityType + " " + this.urlParam); this.updateTitle(this.pageTitle);
this.updateDescription("Openaire, search, repositories, open access, type, data provider, funder, project, " + this.type + "," +this.pageTitle);
// console.info(this.entityType + " " + this.urlParam + this.type);
} }
ngAfterViewChecked(){ ngAfterViewChecked(){
} }
updateDescription(description:string){
this._meta.updateMeta("description", description);
this._meta.updateMeta("og:description", description);
}
updateTitle(title:string){
var _suffix ="| OpenAIRE";
var _title = ((title.length> 50 ) ?title.substring(0,50):title) + _suffix;
this._meta.setTitle(_title );
this._meta.updateMeta("og:title",_title);
}
private defineUrlParam() { private defineUrlParam() {
if(this.entityType == "publication") { if(this.entityType == "publication") {
this.urlParam = "articleId"; this.urlParam = "articleId";

View File

@ -225,9 +225,9 @@ public getResultsForDeposit(id:string, type:string, page: number, size: number)
private _getResults(parameters:string,refine:boolean, page: number, size: number){ private _getResults(parameters:string,refine:boolean, page: number, size: number){
this.csvParams = parameters; this.csvParams = parameters;
if(!refine && !this.searchPage){ // if(!refine && !this.searchPage){
this.searchPage = new SearchPageComponent(this._location); // this.searchPage = new SearchPageComponent(this._location);
} // }
var errorCodes:ErrorCodes = new ErrorCodes(); var errorCodes:ErrorCodes = new ErrorCodes();
this.searchUtils.status = errorCodes.LOADING; this.searchUtils.status = errorCodes.LOADING;

View File

@ -170,9 +170,9 @@ public getResults(keyword:string,refine:boolean, page: number, size: number){
private _getResults(parameters:string,refine:boolean, page: number, size: number){ private _getResults(parameters:string,refine:boolean, page: number, size: number){
this.csvParams = parameters; this.csvParams = parameters;
if(!refine && !this.searchPage){ // if(!refine && !this.searchPage){
this.searchPage = new SearchPageComponent(this._location); // this.searchPage = new SearchPageComponent(this._location);
} // }
var errorCodes:ErrorCodes = new ErrorCodes(); var errorCodes:ErrorCodes = new ErrorCodes();
this.searchUtils.status = errorCodes.LOADING; this.searchUtils.status = errorCodes.LOADING;
this.searchPage.openLoading(); this.searchPage.openLoading();

View File

@ -87,9 +87,9 @@ export class SearchOrganizationsComponent {
private _getResults(parameters:string,refine:boolean, page: number, size: number){ private _getResults(parameters:string,refine:boolean, page: number, size: number){
this.csvParams = parameters; this.csvParams = parameters;
if(!refine && !this.searchPage){ // if(!refine && !this.searchPage){
this.searchPage = new SearchPageComponent(this._location); // this.searchPage = new SearchPageComponent(this._location);
} // }
var errorCodes:ErrorCodes = new ErrorCodes(); var errorCodes:ErrorCodes = new ErrorCodes();
this.searchUtils.status = errorCodes.LOADING; this.searchUtils.status = errorCodes.LOADING;
this.searchPage.openLoading(); this.searchPage.openLoading();

View File

@ -45,9 +45,9 @@ export class SearchPeopleComponent {
this.searchUtils.status =errorCodes.LOADING; this.searchUtils.status =errorCodes.LOADING;
this.baseUrl = OpenaireProperties.getLinkToSearchPeople(); this.baseUrl = OpenaireProperties.getLinkToSearchPeople();
//get refine field filters from url parameters //get refine field filters from url parameters
if(!this.searchPage){ // if(!this.searchPage){
this.searchPage = new SearchPageComponent(this._location); // this.searchPage = new SearchPageComponent(this._location);
} // }
} }
public ngOnInit() { public ngOnInit() {

View File

@ -90,9 +90,9 @@ export class SearchProjectsComponent {
private _getResults(parameters:string,refine:boolean, page: number, size: number){ private _getResults(parameters:string,refine:boolean, page: number, size: number){
this.csvParams = parameters; this.csvParams = parameters;
if(!refine && !this.searchPage){ // if(!refine && !this.searchPage){
this.searchPage = new SearchPageComponent(this._location); // this.searchPage = new SearchPageComponent(this._location);
} // }
var errorCodes:ErrorCodes = new ErrorCodes(); var errorCodes:ErrorCodes = new ErrorCodes();
this.searchUtils.status = errorCodes.LOADING; this.searchUtils.status = errorCodes.LOADING;

View File

@ -202,9 +202,9 @@ public getResults(keyword:string,refine:boolean, page: number, size: number){
private _getResults(parameters:string,refine:boolean, page: number, size: number){ private _getResults(parameters:string,refine:boolean, page: number, size: number){
this.csvParams = parameters; this.csvParams = parameters;
if(!refine && !this.searchPage){ // if(!refine && !this.searchPage){
this.searchPage = new SearchPageComponent(this._location); // this.searchPage = new SearchPageComponent(this._location);
} // }
var errorCodes:ErrorCodes = new ErrorCodes(); var errorCodes:ErrorCodes = new ErrorCodes();
this.searchUtils.status = errorCodes.LOADING; this.searchUtils.status = errorCodes.LOADING;

View File

@ -5,80 +5,39 @@ import 'rxjs/Rx';
selector: 'bottom', selector: 'bottom',
template: ` template: `
<div id="tm-bottom" class="tm-bottom uk-section uk-section-primary"> <div class="tm-footer uk-navbar custom-footer">
<div class="uk-container uk-container-expand"> <div class="uk-container uk-container-center uk-text-center uk-margin-top">
<div class="uk-child-width-expand@m uk-grid-divider uk-grid-match" uk-grid>
<div class="uk-width-1-5@m"> <ul class="uk-subnav uk-flex-center">
<div class="uk-card uk-card-body uk-uk-panel menu-line uk-width-small" id="module-113"> <li>
<ul class="uk-nav uk-nav-default uk-nav-parent-icon uk-nav-side uk-nav-accordion" uk-nav> <a href="http://www.facebook.com/groups/openaire/" target="_blank" class="uk-icon-button uk-icon-facebook"></a>
<li><a href="http://scoobydoo.di.uoa.gr:8083/joomlaNew/news-events/">News</a></li> </li>
<li><a href="http://scoobydoo.di.uoa.gr:8083/joomlaNew/events">Events</a></li> <li>
<li><a href="https://blogs.openaire.eu/" target="_blank">Blog</a></li> <a href="http://www.twitter.com/OpenAIRE_eu" target="_blank" class="uk-icon-button uk-icon-twitter"></a>
</li>
<li>
<a href="http://www.linkedin.com/groups/OpenAIRE-3893548" target="_blank" class="uk-icon-button uk-icon-linkedin"></a>
</li>
<li>
<a href="http://www.slideshare.net/OpenAIRE_eu" target="_blank" class="uk-icon-button uk-icon-slideshare"></a>
</li>
<li>
<a uk-icon="icon: vimeo" href="http://vimeo.com/openaire" target="_blank" class="uk-icon-button uk-icon-vimeo"></a>
</li>
</ul> </ul>
</div>
</div> <div class="uk-panel">
<div class="uk-width-1-5@m">
<div class="uk-card uk-card-body uk-uk-panel menu-line uk-width-small" id="module-112">
<ul class="uk-nav uk-nav-default uk-nav-parent-icon uk-nav-side uk-nav-accordion" uk-nav>
<li><a href="http://scoobydoo.di.uoa.gr:8083/joomlaNew/project-factsheets">About</a></li>
<li><a href="http://scoobydoo.di.uoa.gr:8083/joomlaNew/project-partners/">Partners</a></li>
<li><a href="http://scoobydoo.di.uoa.gr:8083/joomlaNew/contact-noads">NOADs</a></li>
</ul>
</div>
</div>
<div class="uk-width-1-5@m">
<div class="uk-card uk-card-body uk-uk-panel menu-line uk-width-small" id="module-114">
<ul class="uk-nav uk-nav-default uk-nav-parent-icon uk-nav-side uk-nav-accordion" uk-nav>
<li><a href="http://scoobydoo.di.uoa.gr:8083/joomlaNew/faq">FAQ</a></li>
<li><a href="http://scoobydoo.di.uoa.gr:8083/joomlaNew/support/helpdesk">Helpdesk</a></li>
<li><a href="http://scoobydoo.di.uoa.gr:8083/joomlaNew/contact-us">Contact us</a></li>
</ul>
</div>
</div>
<div class="uk-width-1-5@m">
<div class="uk-card uk-card-body uk-uk-panel menu-line uk-width-small" id="module-115">
<ul class="uk-nav uk-nav-default uk-nav-parent-icon uk-nav-side uk-nav-accordion" uk-nav>
<li><a href="http://scoobydoo.di.uoa.gr:8083/joomlaNew/public-documents">Documents</a></li>
<li><a href="https://guidelines.openaire.eu/wiki/Main_Page" target="_blank">Guidelines</a></li>
<li><a href="http://api.openaire.eu" target="_blank">APIs</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="uk-section uk-section-default">
<div class="uk-container">
<div class="uk-grid-collapse" uk-grid>
<div class="uk-width-1-1@m">
<div class="uk-margin-small uk-margin-remove-top">
<div class="uk-child-width-auto uk-flex-inline uk-grid-small" uk-grid>
<div>
<a uk-icon="icon: facebook" href="http://www.facebook.com/groups/openaire/" target="_blank" class="uk-icon-button"></a>
</div>
<div>
<a uk-icon="icon: twitter" href="http://www.twitter.com/OpenAIRE_eu" target="_blank" class="uk-icon-button"></a>
</div>
<div>
<a uk-icon="icon: linkedin" href="http://www.linkedin.com/groups/OpenAIRE-3893548" target="_blank" class="uk-icon-button"></a>
</div>
<div>
<a uk-icon="icon: social" href="http://www.slideshare.net/OpenAIRE_eu" target="_blank" class="uk-icon-button"></a>
</div>
<div>
<a uk-icon="icon: vimeo" href="http://vimeo.com/openaire" target="_blank" class="uk-icon-button"></a>
</div>
</div>
</div>
<div class="uk-margin-remove-top uk-margin-remove-bottom uk-text-left">
<img src="http://scoobydoo.di.uoa.gr:8083/joomlaNew/?hash=36b3ee0eb00bbe4eb81727501e4e2fb8&amp;p=theme%2Fimage&amp;src=aW1hZ2VzL0VDX2xvZ29fYmx1ZV9tb25vX2hvcml6b250YWwucG5nP3RodW1ibmFpbD0xMDAlMkMzMCZzaXplcz04MCUyNSUyQzIwMCUyNQ%3D%3D&amp;option=com_ajax&amp;style=26" srcset="http://scoobydoo.di.uoa.gr:8083/joomlaNew/?hash=05230339e57360ccf3930f7fe2db8209&amp;p=theme%2Fimage&amp;src=aW1hZ2VzL0VDX2xvZ29fYmx1ZV9tb25vX2hvcml6b250YWwucG5nP3RodW1ibmFpbD04MCUyQzI0&amp;option=com_ajax&amp;style=26 80w, /joomlaNew/?hash=d70cbf90c0284dd70817456c2b07d40a&amp;p=theme%2Fimage&amp;src=aW1hZ2VzL0VDX2xvZ29fYmx1ZV9tb25vX2hvcml6b250YWwucG5nP3RodW1ibmFpbD0yMDAlMkM2MA%3D%3D&amp;option=com_ajax&amp;style=26 200w, /joomlaNew/?hash=36b3ee0eb00bbe4eb81727501e4e2fb8&amp;p=theme%2Fimage&amp;src=aW1hZ2VzL0VDX2xvZ29fYmx1ZV9tb25vX2hvcml6b250YWwucG5nP3RodW1ibmFpbD0xMDAlMkMzMCZzaXplcz04MCUyNSUyQzIwMCUyNQ%3D%3D&amp;option=com_ajax&amp;style=26 100w" sizes="(min-width: 100px) 100px, 100vw" alt="European Commission">
</div>
<div class="uk-margin"> <div class="uk-margin">
<a href="#" uk-totop uk-scroll></a> <a rel="license" target="_blank" href="//creativecommons.org/licenses/by/4.0/">
<img alt="Creative" commons="" license="" style="border-width:0" src="//i.creativecommons.org/l/by/3.0/80x15.png"></a>
Unless otherwise indicated, all materials created by the OpenAIRE consortium are licensed under a
<a rel="license" target="_blank" href="//creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.
</div> </div>
<div class="uk-margin">OpenAIRE is powered by <a target="_blank" href="//www.d-net.research-infrastructures.eu">D-NET</a>.
</div> </div>
<a class="uk-margin" href="/"><img src="assets/newlogo.png" title="UIkit" alt="UIkit" width="90" height="30"></a>
</div> </div>
</div> </div>
</div> </div>
` `

View File

@ -0,0 +1,146 @@
/**
* angular2-cookie-law
*
* Copyright 2016-2017, @andreasonny83, All rights reserved.
*
* @author: @andreasonny83 <andreasonny83@gmail.com>
*/
import {
Component,
OnInit,
ViewEncapsulation,
HostBinding,
Input,
Output,
EventEmitter,
animate,
state,
trigger,
style,
transition,
AnimationTransitionEvent,
} from '@angular/core';
import {
DomSanitizer,
SafeHtml,
} from '@angular/platform-browser';
import {
CookieLawService,
} from './cookie-law.service';
// import {
// closeIcon,
// } from './icons';
export type CookieLawPosition = 'top' | 'bottom';
export type CookieLawAnimation = 'topIn' | 'bottomIn' | 'topOut' | 'bottomOut';
export type CookieLawTarget = '_blank' | '_self';
@Component({
selector: 'cookie-law',
// encapsulation: ViewEncapsulation.None,
animations: [
trigger('state', [
state('bottomOut', style({ transform: 'translateY(100%)' })),
state('topOut', style({ transform: 'translateY(-100%)' })),
state('*', style({ transform: 'translateY(0)' })),
transition('void => topIn', [
style({ transform: 'translateY(-100%)' }),
animate('1000ms ease-in-out'),
]),
transition('void => bottomIn', [
style({ transform: 'translateY(100%)' }),
animate('1000ms ease-in-out'),
]),
transition('* => *', animate('1000ms ease-out')),
])
],
styleUrls: [ './cookie-law.css' ],
templateUrl: './cookie-law.html',
})
export class CookieLawComponent implements OnInit {
public cookieLawSeen: boolean;
@Input('learnMore')
get learnMore() { return this._learnMore; }
set learnMore(value: string) {
this._learnMore = (value !== null && `${value}` !== 'false') ? value : null;
}
@Input('target')
get target() { return this._target; }
set target(value: CookieLawTarget) {
this._target = (value !== null && `${value}` !== 'false' &&
(`${value}` === '_blank' || `${value}` === '_self')
) ? value : '_blank';
}
@Input('position')
get position() { return this._position; }
set position(value: CookieLawPosition) {
this._position = (value !== null && `${value}` !== 'false' &&
(`${value}` === 'top' || `${value}` === 'bottom')
) ? value : 'bottom';
}
@Output('isSeen')
private isSeenEvt: EventEmitter<boolean>;
@HostBinding('attr.seen')
public isSeen: boolean;
private animation: CookieLawAnimation;
private closeSvg: SafeHtml;
private currentStyles: {};
private _learnMore: string;
private _target: CookieLawTarget;
private _position: CookieLawPosition;
constructor(
private _service: CookieLawService,
private domSanitizer: DomSanitizer,
) {
this.isSeenEvt = new EventEmitter<boolean>();
this.animation = 'topIn';
this._position = 'bottom';
this.cookieLawSeen = this._service.seen();
}
ngOnInit(): void {
this.animation = this.position === 'bottom' ? 'bottomIn' : 'topIn';
this.closeSvg = '<i class="uk-icon-close"></i>' ;
if (this.cookieLawSeen) {
this.isSeen = true;
}
this.currentStyles = {
'top': this.position === 'top' ? '0' : null,
'bottom': this.position === 'top' ? 'initial' : null,
};
}
afterDismissAnimation(evt: AnimationTransitionEvent) {
if (evt.toState === 'topOut' ||
evt.toState === 'bottomOut') {
this.isSeen = true;
this.isSeenEvt.emit(this.isSeen);
}
}
public dismiss(evt?: MouseEvent): void {
if (evt) {
evt.preventDefault();
}
this._service.storeCookie();
this.animation = this.position === 'top' ? 'topOut' : 'bottomOut';
}
}

View File

@ -0,0 +1,77 @@
.cookie-law-wrapper a {
color: #bbb;
-webkit-transition: color .2s;
transition: color .2s;
}
.cookie-law-wrapper a:hover {
color: #fff;
}
.cookie-law-wrapper a:hover svg {
fill: #fff;
}
.cookie-law-wrapper {
background: #333;
color: #bbb;
display: block;
/*font-family: Helvetica Neue,Helvetica,Arial,sans-serif;
font-size: 15px;
font-weight: 200;
line-height: 20px;*/
position: fixed;
bottom: 0;
left: 0;
width: 100%;
z-index: 999999999;
font-smooth: always;
-webkit-font-smoothing: antialiased;
text-align: center;
}
.dismiss {
display: block;
box-sizing: border-box;
padding: 10px;
position: absolute;
top: 0;
right: 10px;
text-decoration: none;
line-height: 20px;
}
.dismiss svg {
display: block;
fill: #bbb;
width: 20px;
height: 20px;
-webkit-transition: fill .2s;
transition: fill .2s;
}
.copy {
box-sizing: border-box;
padding: 10px 60px 10px 10px;
}
.copy span {
color: #fff;
/*font-weight: 400;*/
}
.copy a {
text-decoration: underline;
}
.copy a:active, .copy a:hover {
outline: 0;
}
@media (min-width: 600px) {
/* For bigger devices: */
.copy {
padding: 20px 60px 20px 20px;
/*font-size: 18px;
line-height: 24px;*/
}
.dismiss {
top: 10px;
right: 15px;
}
.dismiss svg {
width: 24px;
height: 24px;
}
}

View File

@ -0,0 +1,21 @@
<div class="cookie-law-wrapper"
[ngStyle]="currentStyles"
*ngIf="!cookieLawSeen"
[@state]="animation"
(@state.done)="afterDismissAnimation($event)">
<div class="copy">
<span #ref><ng-content></ng-content></span>
<span *ngIf="ref.childNodes.length == 0">
By continuing to browse the site, you're agreeing to our use of cookies.
<span *ngIf="learnMore">
Learn more in our <a [href]="learnMore" [target]="target">privacy policy</a>.
</span>
</span>
<a href="#" role="button"
class="dismiss"
[innerHTML]="closeSvg"
(click)="dismiss($event)"></a>
</div>

View File

@ -0,0 +1,25 @@
/**
* angular2-cookie-law
*
* Copyright 2016-2017, @andreasonny83, All rights reserved.
*
* @author: @andreasonny83 <andreasonny83@gmail.com>
*/
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { CookieLawComponent } from './cookie-law.component';
import { CookieLawService } from './cookie-law.service';
@NgModule({
imports: [ CommonModule ],
declarations: [ CookieLawComponent ],
providers: [ CookieLawService ],
exports: [ CookieLawComponent ]
})
export class CookieLawModule { }
export {
CookieLawComponent,
CookieLawService
};

View File

@ -0,0 +1,57 @@
/**
* angular2-cookie-law
*
* Copyright 2016-2017, @andreasonny83, All rights reserved.
*
* @author: @andreasonny83 <andreasonny83@gmail.com>
*/
import { Injectable } from '@angular/core';
@Injectable()
export class CookieLawService {
seen(): boolean {
return this.cookieExists('cookieLawSeen');
}
storeCookie(): void {
return this.setCookie('cookieLawSeen');
}
/**
* try to read a saved cookie
*
* @param {string} name [the cookie name]
*
* @return {string} [the cookie's value]
*/
private cookieExists(name: string): boolean {
if (typeof document !== 'undefined') {
let ca: Array<string> = document.cookie.split(';');
let caLen: number = ca.length;
let cookieName = name + '=';
let c: string;
for (let i: number = 0; i < caLen; i += 1) {
c = ca[i].replace(/^\s\+/g, '');
if (c.indexOf(cookieName) !== -1) {
return true;
}
}
}
return false;
}
/**
* store a new cookie in the browser
*
* @param {string} name [the name for the cookie]
*/
private setCookie(name: string): void {
if (typeof document !== 'undefined') {
document.cookie = encodeURIComponent(name) + '=true; path=/';
}
}
}

View File

@ -0,0 +1,13 @@
/**
* angular2-cookie-law
*
* Copyright 2016-2017, @andreasonny83, All rights reserved.
*
* @author: @andreasonny83 <andreasonny83@gmail.com>
*/
export const closeIcon: string = `
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path d="M377.047 184.198q0 8.26-6.037 14.297L313.505 256l57.505 57.505q6.037 6.037 6.037 14.297 0 8.578-6.037 14.615l-28.593 28.593q-6.037 6.037-14.615 6.037-8.26 0-14.297-6.037L256 313.505l-57.505 57.505q-6.037 6.037-14.297 6.037-8.578 0-14.615-6.037l-28.593-28.593q-6.037-6.037-6.037-14.615 0-8.26 6.037-14.297L198.495 256l-57.505-57.505q-6.037-6.037-6.037-14.297 0-8.578 6.037-14.615l28.593-28.593q6.037-6.037 14.615-6.037 8.26 0 14.297 6.037L256 198.495l57.505-57.505q6.037-6.037 14.297-6.037 8.578 0 14.615 6.037l28.593 28.593q6.037 6.037 6.037 14.615zM500 256q0-66.401-32.724-122.477-32.724-56.075-88.799-88.799Q322.401 12 256 12q-66.401 0-122.477 32.724-56.075 32.724-88.799 88.799Q12 189.599 12 256q0 66.401 32.724 122.477 32.724 56.075 88.799 88.799Q189.599 500 256 500q66.401 0 122.477-32.724 56.075-32.724 88.799-88.799Q500 322.401 500 256z"></path>
</svg>
`;

View File

@ -8,80 +8,80 @@ import 'rxjs/Rx';
<nav class="uk-navbar"> <nav class="uk-navbar">
<ul class="uk-navbar-nav uk-hidden-small"> <ul class="uk-navbar-nav uk-hidden-small">
<li class="uk-active"><a routerLinkActive="router-link-active" routerLink="" class="uk-logo uk-navbar-item"> <li class="uk-active"><a routerLinkActive="router-link-active" routerLink="/" class="uk-logo uk-navbar-item">
<img src="assets/newlogo.png" alt="OpenAIRE" class="uk-responsive-height"></a> <img src="assets/newlogo.png" alt="OpenAIRE" class="uk-responsive-height"></a>
</li> </li>
<li class="uk-active"><a routerLinkActive="router-link-active" routerLink="search/find"><i class="uk-icon-home"></i></a></li> <li class="uk-active"><a routerLinkActive="router-link-active" routerLink="/search/find"><i class="uk-icon-home"></i></a></li>
<li class="uk-parent" data-uk-dropdown="" aria-haspopup="true" aria-expanded="false"> <li class="uk-parent" data-uk-dropdown="" aria-haspopup="true" aria-expanded="false">
<a routerLinkActive="router-link-active" routerLink="search/find">Search</a> <a routerLinkActive="router-link-active" routerLink="/search/find">Search</a>
<div class="uk-dropdown uk-dropdown-navbar uk-dropdown-bottom" aria-hidden="true" style="top: 40px; left: 0px;" tabindex=""> <div class="uk-dropdown uk-dropdown-navbar uk-dropdown-bottom" aria-hidden="true" style="top: 40px; left: 0px;" tabindex="">
<ul class="uk-nav uk-nav-navbar"> <ul class="uk-nav uk-nav-navbar">
<!--li class="uk-nav-header">Search For</li--> <!--li class="uk-nav-header">Search For</li-->
<li><a routerLinkActive="router-link-active" routerLink="search/find/publications">Publications</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/find/publications">Publications</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/find/datasets">Datasets</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/find/datasets">Datasets</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/find/projects">Projects</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/find/projects">Projects</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/find/dataproviders">Data Providers</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/find/dataproviders">Data Providers</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/find/organizations">Organizations</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/find/organizations">Organizations</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/find/people">People</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/find/people">People</a></li>
<!--li class="uk-nav-divider"></li> <!--li class="uk-nav-divider"></li>
<li><a [queryParams]="{articleId: 'od_______908::3a5b2885656a91307156325644e73b92'}" routerLinkActive="router-link-active" routerLink="search/publication" >Publication </a></li> <li><a [queryParams]="{articleId: 'od_______908::3a5b2885656a91307156325644e73b92'}" routerLinkActive="router-link-active" routerLink="/search/publication" >Publication </a></li>
<li><a [queryParams]="{datasetId: 'datacite____::430ac1c41b7f99b7b543ef737dc41a74'}" routerLinkActive="router-link-active" routerLink="search/dataset" >Dataset </a></li> <li><a [queryParams]="{datasetId: 'datacite____::430ac1c41b7f99b7b543ef737dc41a74'}" routerLinkActive="router-link-active" routerLink="/search/dataset" >Dataset </a></li>
<li><a [queryParams]="{projectId: 'corda_______::2c37878a0cede85dbbd1081bb9b4a2f8'}" routerLinkActive="router-link-active" routerLink="search/project" >Project </a></li> <li><a [queryParams]="{projectId: 'corda_______::2c37878a0cede85dbbd1081bb9b4a2f8'}" routerLinkActive="router-link-active" routerLink="/search/project" >Project </a></li>
<li><a [queryParams]="{personId: 'datacite____::9da3a037961b36a634fcd40ab0bf6535'}" routerLinkActive="router-link-active" routerLink="search/person" >Person </a></li> <li><a [queryParams]="{personId: 'datacite____::9da3a037961b36a634fcd40ab0bf6535'}" routerLinkActive="router-link-active" routerLink="/search/person" >Person </a></li>
<li><a [queryParams]="{organizationId: 'dedup_wf_001::f686277c34bf457bbdf19e03589b5e81'}" routerLinkActive="router-link-active" routerLink="search/organization" >Organization </a></li> <li><a [queryParams]="{organizationId: 'dedup_wf_001::f686277c34bf457bbdf19e03589b5e81'}" routerLinkActive="router-link-active" routerLink="/search/organization" >Organization </a></li>
<li><a [queryParams]="{datasourceId: 'opendoar____::798ed7d4ee7138d49b8828958048130a'}" routerLinkActive="router-link-active" routerLink="search/dataprovider" >Data Provider </a></li--> <li><a [queryParams]="{datasourceId: 'opendoar____::798ed7d4ee7138d49b8828958048130a'}" routerLinkActive="router-link-active" routerLink="/search/dataprovider" >Data Provider </a></li-->
</ul> </ul>
</div> </div>
</li> </li>
<li class="uk-parent" data-uk-dropdown="" aria-haspopup="true" aria-expanded="false"> <li class="uk-parent" data-uk-dropdown="" aria-haspopup="true" aria-expanded="false">
<a routerLinkActive="router-link-active" routerLink="search/data-providers" >Data Providers</a> <a routerLinkActive="router-link-active" routerLink="/search/data-providers" >Data Providers</a>
<div class="uk-dropdown uk-dropdown-navbar uk-dropdown-bottom" aria-hidden="true" style="top: 40px; left: 0px;" tabindex=""> <div class="uk-dropdown uk-dropdown-navbar uk-dropdown-bottom" aria-hidden="true" style="top: 40px; left: 0px;" tabindex="">
<ul class="uk-nav uk-nav-navbar"> <ul class="uk-nav uk-nav-navbar">
<!--li class="uk-nav-header">Search for Data Providers</li--> <!--li class="uk-nav-header">Search for Data Providers</li-->
<li><a routerLinkActive="router-link-active" routerLink="search/data-providers">Compatible Data Providers</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/data-providers">Compatible Data Providers</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/entity-registries">Entity Registries</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/entity-registries">Entity Registries</a></li>
</ul> </ul>
</div> </div>
</li> </li>
<!--li class="uk-parent" data-uk-dropdown="" aria-haspopup="true" aria-expanded="false"> <!--li class="uk-parent" data-uk-dropdown="" aria-haspopup="true" aria-expanded="false">
<a routerLinkActive="router-link-active" routerLink="search/advanced/publications">Advanced Search</a> <a routerLinkActive="router-link-active" routerLink="/search/advanced/publications">Advanced Search</a>
<div class="uk-dropdown uk-dropdown-navbar uk-dropdown-bottom" aria-hidden="true" style="top: 40px; left: 0px;" tabindex=""> <div class="uk-dropdown uk-dropdown-navbar uk-dropdown-bottom" aria-hidden="true" style="top: 40px; left: 0px;" tabindex="">
<ul class="uk-nav uk-nav-navbar"> <ul class="uk-nav uk-nav-navbar">
<li><a routerLinkActive="router-link-active" routerLink="search/advanced/publications">Advanced Search Publications</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/advanced/publications">Advanced Search Publications</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/advanced/datasets">Advanced Search Research Data</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/advanced/datasets">Advanced Search Research Data</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/advanced/projects">Advanced Search Projects</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/advanced/projects">Advanced Search Projects</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/advanced/dataproviders">Advanced Search Data Providers</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/advanced/dataproviders">Advanced Search Data Providers</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/advanced/organizations">Advanced Search Organizations</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/advanced/organizations">Advanced Search Organizations</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/advanced/people">Advanced Search People</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/advanced/people">Advanced Search People</a></li>
</ul> </ul>
</div> </div>
</li--> </li-->
<li class="uk-parent" data-uk-dropdown="" aria-haspopup="true" aria-expanded="false"> <li class="uk-parent" data-uk-dropdown="" aria-haspopup="true" aria-expanded="false">
<a routerLinkActive="router-link-active" routerLink="deposit-publications" >Deposit</a> <a routerLinkActive="router-link-active" routerLink="/participate/deposit-publications" >Deposit</a>
<div class="uk-dropdown uk-dropdown-navbar uk-dropdown-bottom" aria-hidden="true" style="top: 40px; left: 0px;" tabindex=""> <div class="uk-dropdown uk-dropdown-navbar uk-dropdown-bottom" aria-hidden="true" style="top: 40px; left: 0px;" tabindex="">
<ul class="uk-nav uk-nav-navbar"> <ul class="uk-nav uk-nav-navbar">
<li><a routerLinkActive="router-link-active" routerLink="deposit-publications">Deposit Publications</a></li> <li><a routerLinkActive="router-link-active" routerLink="/participate/deposit-publications">Deposit Publications</a></li>
<li><a routerLinkActive="router-link-active" routerLink="deposit-datasets">Deposit Research Data</a></li> <li><a routerLinkActive="router-link-active" routerLink="/participate/deposit-datasets">Deposit Research Data</a></li>
</ul> </ul>
</div> </div>
</li> </li>
<!--li class="uk-parent" data-uk-dropdown="" aria-haspopup="true" aria-expanded="false"> <!--li class="uk-parent" data-uk-dropdown="" aria-haspopup="true" aria-expanded="false">
<a routerLinkActive="router-link-active" routerLink="linking" >Linking</a> <a routerLinkActive="router-link-active" routerLink="/participate/claim" >Linking</a>
<div class="uk-dropdown uk-dropdown-navbar uk-dropdown-bottom" aria-hidden="true" style="top: 40px; left: 0px;" tabindex=""> <div class="uk-dropdown uk-dropdown-navbar uk-dropdown-bottom" aria-hidden="true" style="top: 40px; left: 0px;" tabindex="">
<ul class="uk-nav uk-nav-navbar"> <ul class="uk-nav uk-nav-navbar">
<li><a routerLinkActive="router-link-active" routerLink="linking">Linking</a></li> <li><a routerLinkActive="router-link-active" routerLink="/participate/claim">Linking</a></li>
<li><a routerLinkActive="router-link-active" routerLink="bulk-linking">Bulk Linking</a></li> <li><a routerLinkActive="router-link-active" routerLink="/bulk-linking">Bulk Linking</a></li>
<li><a routerLinkActive="router-link-active" routerLink="claims">Claims Admin</a></li> <li><a routerLinkActive="router-link-active" routerLink="/claims">Claims Admin</a></li>
</ul> </ul>
</div> </div>
@ -102,21 +102,21 @@ import 'rxjs/Rx';
<div class="uk-offcanvas-bar uk-offcanvas-bar-show" mode="push"> <div class="uk-offcanvas-bar uk-offcanvas-bar-show" mode="push">
<!--ul class="uk-navbar-nav uk-hidden-small"--> <!--ul class="uk-navbar-nav uk-hidden-small"-->
<ul class="uk-nav uk-nav-offcanvas uk-nav-parent-icon" data-uk-nav="{multiple:true}"> <ul class="uk-nav uk-nav-offcanvas uk-nav-parent-icon" data-uk-nav="{multiple:true}">
<!--li class="uk-active"><a routerLinkActive="router-link-active" routerLink="" class="uk-logo uk-navbar-item"> <!--li class="uk-active"><a routerLinkActive="router-link-active" routerLink="/" class="uk-logo uk-navbar-item">
<img src="assets/newlogo.png" alt="OpenAIRE" class="uk-responsive-height"></a> <img src="assets/newlogo.png" alt="OpenAIRE" class="uk-responsive-height"></a>
</li--> </li-->
<li class="uk-active"><a routerLinkActive="router-link-active" routerLink="search/find"><i class="uk-icon-home"></i></a></li> <li class="uk-active"><a routerLinkActive="router-link-active" routerLink="/search/find"><i class="uk-icon-home"></i></a></li>
<li class="" aria-expanded="false" > <li class="" aria-expanded="false" >
<a href="#">Search</a> <a href="#">Search</a>
<div ><ul class="uk-nav-sub" role="menu"> <div ><ul class="uk-nav-sub" role="menu">
<li><a routerLinkActive="router-link-active" routerLink="search/find/publications">Publications</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/find/publications">Publications</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/find/datasets">Datasets</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/find/datasets">Datasets</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/find/projects">Projects</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/find/projects">Projects</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/find/dataproviders">Data Providers</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/find/dataproviders">Data Providers</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/find/organizations">Organizations</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/find/organizations">Organizations</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/find/people">People</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/find/people">People</a></li>
</ul> </ul>
</div> </div>
@ -125,8 +125,8 @@ import 'rxjs/Rx';
<a href="#">Data Providers</a> <a href="#">Data Providers</a>
<div ><ul class="uk-nav-sub" role="menu"> <div ><ul class="uk-nav-sub" role="menu">
<li><a routerLinkActive="router-link-active" routerLink="search/data-providers">Compatible Data Providers</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/data-providers">Compatible Data Providers</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/entity-registries">Entity Registries</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/entity-registries">Entity Registries</a></li>
</ul> </ul>
</div> </div>
@ -135,12 +135,12 @@ import 'rxjs/Rx';
<a href="#">Advanced Search</a> <a href="#">Advanced Search</a>
<div ><ul class="uk-nav-sub" role="menu"> <div ><ul class="uk-nav-sub" role="menu">
<li><a routerLinkActive="router-link-active" routerLink="search/advanced/publications">Advanced Search Publications</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/advanced/publications">Advanced Search Publications</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/advanced/datasets">Advanced Search Research Data</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/advanced/datasets">Advanced Search Research Data</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/advanced/projects">Advanced Search Projects</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/advanced/projects">Advanced Search Projects</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/advanced/dataproviders">Advanced Search Data Providers</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/advanced/dataproviders">Advanced Search Data Providers</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/advanced/organizations">Advanced Search Organizations</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/advanced/organizations">Advanced Search Organizations</a></li>
<li><a routerLinkActive="router-link-active" routerLink="search/advanced/people">Advanced Search People</a></li> <li><a routerLinkActive="router-link-active" routerLink="/search/advanced/people">Advanced Search People</a></li>
</ul> </ul>
</div> </div>
@ -150,8 +150,8 @@ import 'rxjs/Rx';
<a href="#">Deposit</a> <a href="#">Deposit</a>
<div ><ul class="uk-nav-sub" role="menu"> <div ><ul class="uk-nav-sub" role="menu">
<li><a routerLinkActive="router-link-active" routerLink="deposit-publications">Deposit Publications</a></li> <li><a routerLinkActive="router-link-active" routerLink="/participate/deposit-publications">Deposit Publications</a></li>
<li><a routerLinkActive="router-link-active" routerLink="deposit-datasets">Deposit Research Data</a></li> <li><a routerLinkActive="router-link-active" routerLink="/participate/deposit-datasets">Deposit Research Data</a></li>
</ul> </ul>
</div> </div>

View File

@ -27,13 +27,15 @@ import {EntitiesSearchService} from './entitySearch.service';
<div *ngIf="focus && showInput" class="uk-dropdown" aria-expanded="true" style="display:block" > <div *ngIf="focus && showInput" class="uk-dropdown" aria-expanded="true" style="display:block" >
<ul class="uk-nav uk-nav-autocomplete uk-autocomplete-results" > <ul class="uk-nav uk-nav-autocomplete uk-autocomplete-results" >
<li> <li>
<span *ngIf="showLoading" class="uk-alert uk-alert-primary" data-uk-alert=""> <i class="uk-icon-spinner"></i> Loading... </span> <span *ngIf="!_search.ready" class="uk-alert uk-alert-primary" data-uk-alert=""> <i class="uk-icon-spinner"></i> Loading..... </span>
<span *ngIf="warningMessage.length > 0" class="uk-alert uk-alert-warning" data-uk-alert="">{{warningMessage}}</span> <span *ngIf="warningMessage.length > 0" class="uk-alert uk-alert-warning" data-uk-alert="">{{warningMessage}}</span>
<span *ngIf="results > 0" > {{results}} results found:</span> <span *ngIf="results > 0" > {{results}} results found:</span>
<span *ngIf="results == 0 && !showLoading" class="uk-alert uk-alert-info" data-uk-alert=""> No results found</span> <!--span *ngIf="results == 0 && !showLoading" class="uk-alert uk-alert-info" data-uk-alert=""> No results found</span-->
</li> </li>
<li *ngFor=" let item of filtered | async"> <li *ngFor=" let item of filtered | async">
<a (click)="select(item)" [title]="showItem(item)" style="text-overflow: ellipsis; ">{{showItem(item)}}</a> <a *ngIf= "item.id !=-1 && item.id !=-2" (click)="select(item)" [title]="showItem(item)" style="text-overflow: ellipsis; ">{{showItem(item)}}</a>
<span *ngIf= "item.id ==-1" class="uk-alert uk-alert-info" data-uk-alert=""> No results found</span>
<span *ngIf= "item.id ==-2" class="uk-alert uk-alert-warning" data-uk-alert=""> An error occured</span>
</li> </li>
</ul> </ul>
@ -76,7 +78,7 @@ export class EntitiesAutocompleteComponent {
@Input() public depositType:string ; @Input() public depositType:string ;
public results = 0; public results = 0;
public focus:boolean = false; public focus:boolean = false;
constructor (private _search:EntitiesSearchService, private myElement: ElementRef) { constructor (public _search:EntitiesSearchService, private myElement: ElementRef) {
this.currentFieldId=this.fieldId; this.currentFieldId=this.fieldId;
} }

View File

@ -11,18 +11,25 @@ import {StringUtils} from '../string-utils.class';
@Injectable() @Injectable()
export class EntitiesSearchService { export class EntitiesSearchService {
private api ="https://beta.services.openaire.eu/provision/mvc/vocabularies/"; private api ="https://beta.services.openaire.eu/provision/mvc/vocabularies/";
public ready:boolean = false;
constructor(private http: Http, public _cache: CacheService) {} constructor(private http: Http, public _cache: CacheService) {}
searchProjectsByFunder(keyword:string, funderId:string):any { searchProjectsByFunder(keyword:string, funderId:string):any {
this.ready = false;
let url = OpenaireProperties. getSearchAPIURLLast()+"projects?"+((keyword && keyword.length > 0)?("q=" +keyword):"")+((funderId && funderId.length > 0 )?"&fq=funderid exact " + '"'+funderId+ '"':"")+"&size=10&page=0&format=json"; let url = OpenaireProperties. getSearchAPIURLLast()+"projects?"+((keyword && keyword.length > 0)?("q=" +keyword):"")+((funderId && funderId.length > 0 )?"&fq=funderid exact " + '"'+funderId+ '"':"")+"&size=10&page=0&format=json";
return this.http.get(url).toPromise() return this.http.get(url).toPromise()
.then(request => .then(request =>
{ {
request = request.json().results; request = request.json().results;
this.ready = true;
return this.parse(request,"oaf:project","project"); return this.parse(request,"oaf:project","project");
}).catch((ex) => {
console.error('An error occured', ex);
return [{id:'-2',label:'Error'}];;
}); });
} }
searchByDepositType(keyword:string, DepositType:string):any { searchByDepositType(keyword:string, DepositType:string):any {
this.ready = false;
console.info("In searchOrganizationsforDeposit"); console.info("In searchOrganizationsforDeposit");
let link = OpenaireProperties.getSearchResourcesAPIURL(); let link = OpenaireProperties.getSearchResourcesAPIURL();
@ -46,10 +53,11 @@ export class EntitiesSearchService {
{ {
request = request.json().results; request = request.json().results;
console.log(request); console.log(request);
this.ready = true;
return this.parse(request,"oaf:organization","organization"); return this.parse(request,"oaf:organization","organization");
}).catch((ex) => { }).catch((ex) => {
console.error('An error occured', ex); console.error('An error occured', ex);
return null; return [{id:'-2',label:'Error'}];;
}); });
} }
searchByType(keyword:string,type:string){ searchByType(keyword:string,type:string){
@ -96,16 +104,24 @@ private fetchEntity (id: string,APIname:string,oafEntityType:string, type:string
return this.fetch(link,id,oafEntityType,type) return this.fetch(link,id,oafEntityType,type)
} }
private fetch (link,id,oafEntityType,type){ private fetch (link,id,oafEntityType,type){
this.ready = false;
let url = link+"/"+id+"?format=json"; let url = link+"/"+id+"?format=json";
return this.http.get(url) return this.http.get(url)
.map(request => <any> request.json()) .map(request => <any> request.json())
// .do(res => console.info(res)) // .do(res => console.info(res))
.map(request => <any> this.parse(request,oafEntityType,type)); .map(request => {
this.ready = true;
this.parse(request,oafEntityType,type);
}).catch((ex) => {
console.error('An error occured', ex);
return [{id:'-2',label:'Error'}];;
});
} }
private search (link,keyword,oafEntityType,type){ private search (link,keyword,oafEntityType,type){
this.ready = false;
let url = link+"?"; let url = link+"?";
if(keyword!= null && keyword != '' ) { if(keyword!= null && keyword != '' ) {
url += "q="+ keyword; url += "q="+ keyword;
@ -116,10 +132,11 @@ private fetch (link,id,oafEntityType,type){
.then(request => .then(request =>
{ {
request = request.json().results; request = request.json().results;
this.ready = true;
return this.parse(request,oafEntityType,type); return this.parse(request,oafEntityType,type);
}).catch((ex) => { }).catch((ex) => {
console.error('An error occured', ex); console.error('An error occured', ex);
return null; return [{id:'-2',label:'Error'}];
}); });
@ -173,8 +190,8 @@ private fetch (link,id,oafEntityType,type){
value.projectName = value.label; value.projectName = value.label;
value.endDate = null; value.endDate = null;
value.startDate = null; value.startDate = null;
value.funderId = resData['fundingtree']['funder']['id']; value.funderId = (resData['fundingtree'] && resData['fundingtree']['funder'] && resData['fundingtree']['funder']['id'] )?resData['fundingtree']['funder']['id']:"";
value.funderName = resData['fundingtree']['funder']['shortname']; value.funderName = (resData['fundingtree'] && resData['fundingtree']['funder'] && resData['fundingtree']['funder']['shortname'] )?resData['fundingtree']['funder']['shortname']:"";
if(resData.hasOwnProperty("startdate")) { if(resData.hasOwnProperty("startdate")) {
value.startDate = resData.startdate.split('-')[0]; value.startDate = resData.startdate.split('-')[0];
} }
@ -187,6 +204,9 @@ private fetch (link,id,oafEntityType,type){
array.push(value); array.push(value);
} }
if(array.length == 0){
array.push({id:'-1',label:'No results found'});
}
console.info("Parsing results.... Size:"+array.length); console.info("Parsing results.... Size:"+array.length);
return array; return array;

View File

@ -0,0 +1,18 @@
import {Meta} from '../../../angular2-meta';
export class OpenaireMetaTags{
constructor (private _meta: Meta ) {
}
updateDescription(description:string){
this._meta.updateMeta("description", description);
this._meta.updateMeta("og:description", description);
}
updateTitle(title:string){
var _suffix ="| OpenAIRE";
var _title = ((title.length> 50 ) ?title.substring(0,50):title) + _suffix;
this._meta.setTitle(_title );
this._meta.updateMeta("og:title",_title);
}
}

View File

@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
<loc><![CDATA[https://demo.openaire.eu]]></loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc><![CDATA[https://demo.openaire.eu/participate/deposit-publications-data]]></loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc><![CDATA[https://demo.openaire.eu/participate/claim]]></loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc><![CDATA[https://demo.openaire.eu/search/find]]></loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc><![CDATA[https://demo.openaire.eu/search/find/publications]]></loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc><![CDATA[https://demo.openaire.eu/search/find/datasets]]></loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc><![CDATA[https://demo.openaire.eu/search/find/projects]]></loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc><![CDATA[https://demo.openaire.eu/search/find/people]]></loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc><![CDATA[https://demo.openaire.eu/search/find/organizations]]></loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc><![CDATA[https://demo.openaire.eu/search/find/dataproviders]]></loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc><![CDATA[https://demo.openaire.eu/search/advanced/publications]]></loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc><![CDATA[https://demo.openaire.eu/search/advanced/datasets]]></loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc><![CDATA[https://demo.openaire.eu/search/advanced/projects]]></loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc><![CDATA[https://demo.openaire.eu/search/advanced/people]]></loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc><![CDATA[https://demo.openaire.eu/search/advanced/organizations]]></loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc><![CDATA[https://demo.openaire.eu/search/advanced/dataproviders]]></loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc><![CDATA[https://demo.openaire.eu/search/data-providers]]></loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc><![CDATA[https://demo.openaire.eu/search/entity-registries]]></loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://demo.openaire.eu/participate/deposit-publications</loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://demo.openaire.eu/participate/deposit-datasets</loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
</urlset>

View File

@ -49,15 +49,11 @@ export const UNIVERSAL_KEY = 'UNIVERSAL_CACHE';
providers: [ providers: [
{ provide: 'isBrowser', useValue: isBrowser }, { provide: 'isBrowser', useValue: isBrowser },
{ provide: 'isNode', useValue: isNode }, { provide: 'isNode', useValue: isNode },
{ provide: 'req', useFactory: getRequest }, { provide: 'req', useFactory: getRequest },
{ provide: 'res', useFactory: getResponse }, { provide: 'res', useFactory: getResponse },
{ provide: 'LRU', useFactory: getLRU, deps: [] }, { provide: 'LRU', useFactory: getLRU, deps: [] },
CacheService, CacheService,
Meta,
//Meta,
// { provide: AUTO_PREBOOT, useValue: false } // turn off auto preboot complete // { provide: AUTO_PREBOOT, useValue: false } // turn off auto preboot complete
] ]

View File

@ -7,9 +7,11 @@
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<base href="/" /> <base href="/" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="author" content="Super User" /> <meta name="description" content="open access, research, scientific publication, European Commission, EC, FP7, ERC, Horizon 2020, H2020, search, projects ">
<meta name="description" content="open access infrastructure, research information, open data, scientific publication, scientific information system, European Commission, EC, FP7, ERC, Horizon 2020, H2020, linked data" /> <meta property="og:description" content="open access, research, scientific publication, European Commission, EC, FP7, ERC, Horizon 2020, H2020, search, projects ">
<title>OpenAIRE</title> <meta property="og:title" content="Search OpenAIRE">
<meta name="og:image" content="assets/newlogo.png">
<title>Search OpenAIRE</title>
<script src="assets/jquery/jquery.min.js" type="text/javascript"></script> <script src="assets/jquery/jquery.min.js" type="text/javascript"></script>
<!--uikit--> <!--uikit-->
<script src="assets/uikit-2.27.2/js/uikit.min.js" type="text/javascript"></script> <script src="assets/uikit-2.27.2/js/uikit.min.js" type="text/javascript"></script>
@ -64,7 +66,7 @@
} }
</script> </script>
<script src="https://cdn.jsdelivr.net/clipboard.js/1.5.16/clipboard.min.js"></script> <script src="//cdn.jsdelivr.net/clipboard.js/1.5.16/clipboard.min.js"></script>
<!--script type='text/javascript' src="node_modules/clipboard/dist/clipboard.min.js"></script--> <!--script type='text/javascript' src="node_modules/clipboard/dist/clipboard.min.js"></script-->
<!--script src="https://cdn.jsdelivr.net/clipboard.js/1.5.12/clipboard.min.js"></script--> <!--script src="https://cdn.jsdelivr.net/clipboard.js/1.5.12/clipboard.min.js"></script-->
@ -72,6 +74,15 @@
<!-- End of Google sitelinks search markup--> <!-- End of Google sitelinks search markup-->
<style> <style>
.custom-main-content{
height: 100%;
min-height: 750px;
}
.custom-footer{
/* position: absolute;
bottom: 0px;*/
width: 99.9%;
}
.custom-autocomplete .uk-nav-autocomplete > li > a:hover { .custom-autocomplete .uk-nav-autocomplete > li > a:hover {
background: #00a8e6 none repeat scroll 0 0; background: #00a8e6 none repeat scroll 0 0;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset; box-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;
@ -193,7 +204,7 @@
</div--> </div-->
<!-- Go to www.addthis.com/dashboard to customize your tools --> <!-- Go to www.addthis.com/dashboard to customize your tools -->
<!-- to update addThis: https://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-559d24521cd8c080--> <!-- to update addThis: https://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-559d24521cd8c080-->
<script type="text/javascript" src="https://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-559d24521cd8c080"></script> <script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-559d24521cd8c080"></script>
<script type="text/javascript" > <script type="text/javascript" >
function loadAltmetrics(e,t,n){ function loadAltmetrics(e,t,n){
var d="createElement",c="getElementsByTagName",m="setAttribute",n=document.getElementById(e); var d="createElement",c="getElementsByTagName",m="setAttribute",n=document.getElementById(e);

View File

@ -14,9 +14,9 @@ export const routes: string[] = [
'search/person','search/publication','search/project','search/dataset','search/dataprovider','search/organization', 'search/person','search/publication','search/project','search/dataset','search/dataprovider','search/organization',
'search/find/people','search/find/publications','search/find/projects','search/find/datasets','search/find/dataproviders','search/find/organizations', 'search/find/people','search/find/publications','search/find/projects','search/find/datasets','search/find/dataproviders','search/find/organizations',
'search/advanced/people','search/advanced/publications','search/advanced/projects','search/advanced/datasets','search/advanced/dataproviders','search/advanced/organizations', 'search/advanced/people','search/advanced/publications','search/advanced/projects','search/advanced/datasets','search/advanced/dataproviders','search/advanced/organizations',
'deposit-publications','deposit-datasets','deposit-publications-result','deposit-datasets-result', 'participate/deposit-publications','participate/deposit-datasets','participate/deposit-publications-result','participate/deposit-datasets-result',
'search/data-providers','search/entity-registries', 'project-report', 'search/data-providers','search/entity-registries', 'project-report',
'claims','myclaims','linking', 'bulk-linking', 'claims','myclaims','participate/claim', 'participate/bulk-claim',
'test', 'test',
'error', 'login' 'error', 'login'