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
*/
import {Injectable} from '@angular/core';
import {Injectable, Inject} from '@angular/core';
// es6-modules are used here
import {DomAdapter, getDOM} from '@angular/platform-browser/src/dom/dom_adapter';
import {DOCUMENT} from '@angular/platform-browser';
/**
* Represent meta element.
*
@ -54,7 +54,13 @@ export interface MetaDefinition {
@Injectable()
export class Meta {
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.
*
@ -119,6 +125,19 @@ export class 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.
*
@ -168,11 +187,14 @@ export class Meta {
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 {
const head = this._dom.getElementsByTagName(this._dom.defaultDoc(), 'head')[0];
const head = this._document.head;
this._dom.appendChild(head, meta);
}
private _removeMetaElement(meta: HTMLMetaElement): void {
const head = this._dom.parentElement(meta);
this._dom.removeChild(head, meta);

View File

@ -126,25 +126,36 @@ export function getBulkLinkingModule() {
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', redirectTo: '/search/find', pathMatch: 'full' },
{ path: '', redirectTo: '/search/find', pathMatch: 'full' },
{ path: 'search/publication', loadChildren: getPublicationModule },
{ path: 'search/dataset', loadChildren: getDatasetModule },
{ path: 'search/person', loadChildren: getPersonModule },
{ path: 'search/organization', loadChildren: getOrganizationModule },
{ path: 'search/project', loadChildren: getProjectModule },
{ path: 'search/dataprovider', loadChildren: getDataProviderModule },
{ path: 'deposit-datasets', loadChildren: getDepositDatasetsModule },
{ path: 'deposit-datasets-result', loadChildren: getDepositDatasetsResultsModule },
{ path: 'deposit-publications', loadChildren: getDepositPublicationsModule },
{ path: 'deposit-publications-result', loadChildren: getDepositPublicationsResultsModule },
{ path: 'search/find', loadChildren: getMainSearchModule },
{ path: 'participate/deposit-datasets', loadChildren: getDepositDatasetsModule },
{ path: 'participate/deposit-datasets-result', loadChildren: getDepositDatasetsResultsModule },
{ path: 'participate/deposit-publications', loadChildren: getDepositPublicationsModule },
{ path: 'participate/deposit-publications-result', loadChildren: getDepositPublicationsResultsModule },
{ 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/datasets', loadChildren: getSearchDatasetsModule },
{ path: 'search/find/projects', loadChildren: getSearchProjectsModule },
{ path: 'search/find/dataproviders', loadChildren: getSearchDataProvidersModule },
{ path: 'search/find/organizations', loadChildren: getSearchOrganizationsModule },
{ path: 'search/find/people', loadChildren: getSearchPeopleModule },
{ path: 'search/data-providers', loadChildren: getCompatibleDataProvidersModule },
{ path: 'search/data-providers', loadChildren: getCompatibleDataProvidersModule,
data: {
meta: {
title: 'Home page',
description: 'Description of the home page'
}
}},
{ path: 'search/entity-registries', loadChildren: getEntityRegistriesModule },
{ path: 'search/advanced/publications', loadChildren: getAdvancedSearchPublicationsModule },
{ path: 'search/advanced/datasets', loadChildren: getAdvancedSearchDatasetsModule },
@ -155,8 +166,8 @@ export function getBulkLinkingModule() {
{ path: 'project-report', loadChildren: gethtmlProjectReportModule },
// { path: 'myclaims', loadChildren: getMyClaimsModule },
// { path: 'claims', loadChildren: getClaimsAdminModule },
// { path: 'bulk-linking', loadChildren: getBulkLinkingModule },
// { path: 'linking', loadChildren: getLinkingModule },
// { path: 'participate/bulk-claim', loadChildren: getBulkLinkingModule },
// { 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-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>
<router-outlet></router-outlet>
@ -51,7 +51,12 @@ export class XLargeDirective {
</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 { ErrorModule } from './error/error.module';
import { CacheService } from './shared/cache.service';
import { CookieLawModule } from './sharedComponents/cookie-law/cookie-law.module';
@NgModule({
declarations: [ AppComponent, XLargeDirective ],
@ -19,7 +19,8 @@ import { CacheService } from './shared/cache.service';
SharedComponentsModule,
AppRoutingModule,
ErrorModule
ErrorModule,
CookieLawModule
], exports:[], providers:[CacheService]
})
export class AppModule {

View File

@ -10,7 +10,7 @@ import {Observable} from 'rxjs/Observable';
<h1> Claims Administrator </h1>
</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>
</div>
</div>

View File

@ -11,7 +11,7 @@ import {Observable} from 'rxjs/Observable';
<h1> My Linked research resutls</h1>
</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>
</div>
</div>

View File

@ -2,6 +2,7 @@ import {Component, Input} from '@angular/core';
import {Observable} from 'rxjs/Observable';
import { Router } from '@angular/router';
import {OpenaireProperties, ErrorCodes} from '../utils/properties/openaireProperties';
import { Meta} from '../../angular2-meta';
@Component({
@ -63,7 +64,7 @@ export class DepositComponent {
public selectedId: string = "";
public warningMessage: string = "";
constructor (private _router: Router) {
constructor (private _router: Router, private _meta: Meta) {
this.openAccess = OpenaireProperties.getOpenAccess();
this.openAccessRepo = OpenaireProperties.getOpenAccessRepo();
@ -71,17 +72,28 @@ export class DepositComponent {
this.h2020Guidlines = OpenaireProperties.getH2020Guidlines();
this.ercGuidlines = OpenaireProperties.getERCGuidlines();
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) {
console.info("organization selected");
if(id && id.length > 0){
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") {
this._router.navigate( ['deposit-datasets-result'], { queryParams: { "organizationId": id } } );
this._router.navigate( ['participate/deposit-datasets-result'], { queryParams: { "organizationId": id } } );
}
} else {
this.warningMessage = "No organization selected";

View File

@ -7,6 +7,7 @@ import { FetchDataproviders } from '../utils/fetchEntitiesClasses/fetchDataprovi
import { SearchDataprovidersService } from '../services/searchDataproviders.service';
import {OrganizationService} from '../services/organization.service';
import { Meta} from '../../angular2-meta';
import {RouterHelper} from '../utils/routerHelper.class';
@ -112,15 +113,27 @@ export class DepositResultComponent {
constructor (private _router: Router,
private route: ActivatedRoute,
private _searchDataprovidersService: SearchDataprovidersService,
private _organizationService: OrganizationService) {
private _organizationService: OrganizationService, private _meta: Meta) {
console.info("depositResult constructor");
this.zenodo = OpenaireProperties.getZenodoURL();
this.fetchDataproviders = new FetchDataproviders(this._searchDataprovidersService);
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() {
console.info('depositResult init');

View File

@ -3,9 +3,9 @@ import {Observable} from 'rxjs/Observable';
import {DataProviderService} from './dataProvider.service';
import {DataProviderInfo} from '../../utils/entities/dataProviderInfo';
import {ActivatedRoute} from '@angular/router';
import { Meta} from '../../../angular2-meta';
import{TabsComponent} from './tabs.component';
@Component({
selector: 'dataprovider',
templateUrl: 'dataProvider.component.html',
@ -14,8 +14,9 @@ import{TabsComponent} from './tabs.component';
})
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() {
this.sub = this.route.queryParams.subscribe(data => {
@ -63,6 +64,8 @@ export class DataProviderComponent {
this._dataproviderService.getDataproviderInfo(this.datasourceId).subscribe(
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);
},
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>
</div>
</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">
<a class="uk-text-muted" (click)="showAllFundedBy = !showAllFundedBy;">
View less
@ -235,7 +235,7 @@
<span *ngIf="item['labelConcept'] != null">: {{item['labelConcept']}}</span>
</mark>
</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>
</li>

View File

@ -5,6 +5,7 @@ import {DatasetInfo} from '../../utils/entities/datasetInfo';
import {ActivatedRoute} from '@angular/router';
import {OpenaireProperties} from '../../utils/properties/openaireProperties'
import {RouterHelper} from '../../utils/routerHelper.class';
import { Meta} from '../../../angular2-meta';
@Component({
selector: 'dataset',
@ -38,12 +39,14 @@ export class DatasetComponent {
public errorMessage = "";
public routerHelper:RouterHelper = new RouterHelper();
constructor (private _datasetService: DatasetService, private route: ActivatedRoute) {}
constructor (private _datasetService: DatasetService, private route: ActivatedRoute, private _meta: Meta) {}
ngOnInit() {
this.sub = this.route.queryParams.subscribe(params => {
this.datasetId = params['datasetId'];
console.info("Id is :"+this.datasetId);
this.updateTitle("Dataset");
this.updateDescription("Dataset, search, open access");
if(this.datasetId){
this.getDatasetInfo(this.datasetId);
}else{
@ -68,7 +71,8 @@ export class DatasetComponent {
this._datasetService.getDatasetInfo(id).subscribe(
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 = {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.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 {SearchDataprovidersService} from '../../services/searchDataproviders.service';
import {SearchProjectsService} from '../../services/searchProjects.service';
import { Meta} from '../../../angular2-meta';
import {OpenaireProperties} from '../../utils/properties/openaireProperties';
import {SearchingProjectsTabComponent} from '../searchingProjectsInTab.component';
import {RouterHelper} from '../../utils/routerHelper.class';
@ -61,8 +61,9 @@ export class OrganizationComponent {
private _searchDataprovidersService: SearchDataprovidersService,
private _reportsService: ReportsService,
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');
this.fetchDataproviders = new FetchDataproviders(this._searchDataprovidersService);
}
@ -119,7 +120,8 @@ export class OrganizationComponent {
this.errorMessage = 'No organization found';
} else {
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;
if(this.organizationInfo.projects != undefined) {
this.fundersSet = new Set<string>();
@ -315,6 +317,16 @@ export class OrganizationComponent {
// 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(){
if(this.loading){

View File

@ -10,6 +10,7 @@ import { FetchDatasets } from '../../utils/fetchEntitiesClasses/fetchDatasets.cl
import { SearchDatasetsService } from '../../services/searchDatasets.service';
import {OpenaireProperties} from '../../utils/properties/openaireProperties';
import { Meta} from '../../../angular2-meta';
@Component({
selector: 'person',
@ -35,7 +36,10 @@ export class PersonComponent {
constructor (private _personService: PersonService,
private route: ActivatedRoute,
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');
this.fetchPublications = new FetchPublications( this._searchPublicationsService);
this.fetchDatasets = new FetchDatasets( this._searchDatasetsService);
@ -49,7 +53,7 @@ export class PersonComponent {
if(this.personId){
this.fetchPersonInfo();
this.searchPublications();
}else{
this.warningMessage="No valid person id";
}
@ -97,6 +101,8 @@ export class PersonComponent {
this._personService.getPersonInfo(this.personId).subscribe(
data => {
this.personInfo = data;
this.updateTitle(this.personInfo.fullname);
this.updateDescription("person, publication, research data, search, open access, "+this.personInfo.fullname);
},
err => {
@ -117,4 +123,14 @@ export class PersonComponent {
this.fetchDatasets.getResultsForEntity("person", this.personId, 1, 10);
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>
</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
</a>
</li-->
<li>
<a routerLinkActive="router-link-active" routerLink="/deposit-publications">
<a routerLinkActive="router-link-active" routerLink="/participate/deposit-publications">
Deposit Publications
</a>
</li>

View File

@ -14,6 +14,8 @@ import {ModalLoading} from '../../utils/modal/loading.component';
import {ReportsService} from '../../services/reports.service';
import {OpenaireProperties} from '../../utils/properties/openaireProperties';
import { Meta} from '../../../angular2-meta';
@Component({
selector: 'project',
@ -62,11 +64,13 @@ export class ProjectComponent{
private route: ActivatedRoute,
private _searchPublicationsService: SearchPublicationsService,
private _searchDatasetsService: SearchDatasetsService,
private _reportsService: ReportsService) {
private _reportsService: ReportsService, private _meta: Meta) {
console.info('project constructor.');
this.fetchPublications = new FetchPublications( this._searchPublicationsService);
this.fetchDatasets = new FetchDatasets(this._searchDatasetsService);
this.updateTitle("Project");
this.updateDescription("project, funding, open access, publications, datasets, ");
}
ngOnInit() {
@ -166,6 +170,8 @@ export class ProjectComponent{
if(this.projectName == undefined || this.projectName == '') {
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.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.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(){
if(this.loading){

View File

@ -57,7 +57,7 @@
<!--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-->
<ul class="uk-tab" data-uk-switcher="{connect: '#tab-content'}">
@ -495,7 +495,7 @@
View more
</a>
</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>
</li>
@ -514,7 +514,7 @@
<span *ngIf="item['labelConcept'] != null">: {{item['labelConcept']}}</span>
</mark>
</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>
</li>

View File

@ -5,8 +5,8 @@ import {PublicationInfo} from '../../utils/entities/publicationInfo';
import {ActivatedRoute} from '@angular/router';
import {OpenaireProperties} from '../../utils/properties/openaireProperties';
import {RouterHelper} from '../../utils/routerHelper.class';
// declare var switcher:any;
// declare var UIkit:any;
import { Meta} from '../../../angular2-meta';
@Component({
@ -49,16 +49,17 @@ export class PublicationComponent {
public routerHelper:RouterHelper = new RouterHelper();
constructor (private _publicationService: PublicationService,
private route: ActivatedRoute) {
console.log("******CONSTR");
}
private route: ActivatedRoute, private _meta: Meta) { }
ngOnInit() {
this.sub = this.route.queryParams.subscribe(data => {
this.articleId = data['articleId'];
console.info("Article id is :"+this.articleId);
this.updateTitle("Publication");
this.updateDescription("Publication, open access, collected from");
if(this.articleId){
this.getPublicationInfo(this.articleId);
// if (typeof document !== 'undefined') {
// switcher(UIkit);
@ -89,7 +90,8 @@ export class PublicationComponent {
// this.result = []
// 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;
if(this.publicationInfo.bioentities != undefined) {
this.publicationInfo.bioentities.forEach(function (value, key, map) {
@ -180,4 +182,14 @@ export class PublicationComponent {
</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 {Location} from '@angular/common';
import { Meta, MetaDefinition} from '../../../angular2-meta';
import { FetchPublications } from '../../utils/fetchEntitiesClasses/fetchPublications.class';
import { FetchDataproviders } from '../../utils/fetchEntitiesClasses/fetchDataproviders.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 _searchOrganizationsService: SearchOrganizationsService,
private _searchPeopleService: SearchPeopleService,
private location: Location ) {
private location: Location, private _meta: Meta ) {
this.fetchPublications = new FetchPublications(this._searchPublicationsService);
this.fetchDataproviders = new FetchDataproviders(this._searchDataprovidersService);
this.fetchProjects = new FetchProjects(this._searchProjectsService);
this.fetchDatasets = new FetchDatasets( this._searchDatasetsService);
this.fetchOrganizations = new FetchOrganizations( this._searchOrganizationsService);
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() {
@ -268,6 +276,7 @@ public subPub;public subData;public subProjects;public subOrg;public subPeople;
this.count();
}
});
}
public ngOnDestroy() {
this.sub.unsubscribe();

View File

@ -7,6 +7,7 @@ import {SearchFields} from '../../utils/properties/searchFields';
import {SearchUtilsClass} from './searchUtils.class';
import {ModalLoading} from '../../utils/modal/loading.component';
import {StringUtils, Dates} from '../../utils/string-utils.class';
import { Meta} from '../../../angular2-meta';
@Component({
@ -66,15 +67,26 @@ export class AdvancedSearchPageComponent {
public baseURLWithParameters:string = '';
@Output() queryChange = new EventEmitter();
constructor (private location: Location) {
constructor (private location: Location, private _meta: Meta) {
}
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.updateBaseUrlWithParameters();
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() {
if(this.entityType == "publication") {
this.urlParam = "articleId";

View File

@ -7,6 +7,7 @@ import {SearchFields} from '../../utils/properties/searchFields';
import {SearchUtilsClass} from './searchUtils.class';
import {DOI, StringUtils} from '../../utils/string-utils.class';
import {ModalLoading} from '../../utils/modal/loading.component';
import { Meta} from '../../../angular2-meta';
@Component({
selector: 'search-page',
@ -93,19 +94,29 @@ export class SearchPageComponent {
public urlParam: string;
public parameterNames:string[] =[];
public parameterValues:string[] =[];
constructor (private location: Location ) {
constructor (private location: Location , private _meta: Meta) {
}
ngOnInit() {
this.updateBaseUrlWithParameters(this.filters);
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(){
}
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() {
if(this.entityType == "publication") {
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){
this.csvParams = parameters;
if(!refine && !this.searchPage){
this.searchPage = new SearchPageComponent(this._location);
}
// if(!refine && !this.searchPage){
// this.searchPage = new SearchPageComponent(this._location);
// }
var errorCodes:ErrorCodes = new ErrorCodes();
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){
this.csvParams = parameters;
if(!refine && !this.searchPage){
this.searchPage = new SearchPageComponent(this._location);
}
// if(!refine && !this.searchPage){
// this.searchPage = new SearchPageComponent(this._location);
// }
var errorCodes:ErrorCodes = new ErrorCodes();
this.searchUtils.status = errorCodes.LOADING;
this.searchPage.openLoading();

View File

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

View File

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

View File

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

View File

@ -5,82 +5,41 @@ import 'rxjs/Rx';
selector: 'bottom',
template: `
<div id="tm-bottom" class="tm-bottom uk-section uk-section-primary">
<div class="uk-container uk-container-expand">
<div class="uk-child-width-expand@m uk-grid-divider uk-grid-match" uk-grid>
<div class="tm-footer uk-navbar custom-footer">
<div class="uk-container uk-container-center uk-text-center uk-margin-top">
<div class="uk-width-1-5@m">
<div class="uk-card uk-card-body uk-uk-panel menu-line uk-width-small" id="module-113">
<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/news-events/">News</a></li>
<li><a href="http://scoobydoo.di.uoa.gr:8083/joomlaNew/events">Events</a></li>
<li><a href="https://blogs.openaire.eu/" target="_blank">Blog</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-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>
<ul class="uk-subnav uk-flex-center">
<li>
<a href="http://www.facebook.com/groups/openaire/" target="_blank" class="uk-icon-button uk-icon-facebook"></a>
</li>
<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>
<div class="uk-panel">
<div class="uk-margin">
<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 class="uk-margin">OpenAIRE is powered by <a target="_blank" href="//www.d-net.research-infrastructures.eu">D-NET</a>.
</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 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">
<a href="#" uk-totop uk-scroll></a>
</div>
</div>
</div>
</div>
</div>
`
})
export class BottomComponent {

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">
<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>
</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">
<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="">
<ul class="uk-nav uk-nav-navbar">
<!--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/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/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/people">People</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/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/organizations">Organizations</a></li>
<li><a routerLinkActive="router-link-active" routerLink="/search/find/people">People</a></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]="{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]="{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]="{datasourceId: 'opendoar____::798ed7d4ee7138d49b8828958048130a'}" routerLinkActive="router-link-active" routerLink="search/dataprovider" >Data Provider </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]="{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]="{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-->
</ul>
</div>
</li>
<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="">
<ul class="uk-nav uk-nav-navbar">
<!--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/entity-registries">Entity Registries</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>
</ul>
</div>
</li>
<!--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="">
<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/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/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/people">Advanced Search People</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/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/organizations">Advanced Search Organizations</a></li>
<li><a routerLinkActive="router-link-active" routerLink="/search/advanced/people">Advanced Search People</a></li>
</ul>
</div>
</li-->
<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="">
<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="deposit-datasets">Deposit Research Data</a></li>
<li><a routerLinkActive="router-link-active" routerLink="/participate/deposit-publications">Deposit Publications</a></li>
<li><a routerLinkActive="router-link-active" routerLink="/participate/deposit-datasets">Deposit Research Data</a></li>
</ul>
</div>
</li>
<!--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="">
<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="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="/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="/claims">Claims Admin</a></li>
</ul>
</div>
@ -102,21 +102,21 @@ import 'rxjs/Rx';
<div class="uk-offcanvas-bar uk-offcanvas-bar-show" mode="push">
<!--ul class="uk-navbar-nav uk-hidden-small"-->
<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>
</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" >
<a href="#">Search</a>
<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/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/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/people">People</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/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/organizations">Organizations</a></li>
<li><a routerLinkActive="router-link-active" routerLink="/search/find/people">People</a></li>
</ul>
</div>
@ -125,8 +125,8 @@ import 'rxjs/Rx';
<a href="#">Data Providers</a>
<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/entity-registries">Entity Registries</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>
</ul>
</div>
@ -135,12 +135,12 @@ import 'rxjs/Rx';
<a href="#">Advanced Search</a>
<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/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/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/people">Advanced Search People</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/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/organizations">Advanced Search Organizations</a></li>
<li><a routerLinkActive="router-link-active" routerLink="/search/advanced/people">Advanced Search People</a></li>
</ul>
</div>
@ -150,8 +150,8 @@ import 'rxjs/Rx';
<a href="#">Deposit</a>
<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="deposit-datasets">Deposit Research Data</a></li>
<li><a routerLinkActive="router-link-active" routerLink="/participate/deposit-publications">Deposit Publications</a></li>
<li><a routerLinkActive="router-link-active" routerLink="/participate/deposit-datasets">Deposit Research Data</a></li>
</ul>
</div>

View File

@ -27,14 +27,16 @@ import {EntitiesSearchService} from './entitySearch.service';
<div *ngIf="focus && showInput" class="uk-dropdown" aria-expanded="true" style="display:block" >
<ul class="uk-nav uk-nav-autocomplete uk-autocomplete-results" >
<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="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 *ngFor=" let item of filtered | async">
<a (click)="select(item)" [title]="showItem(item)" style="text-overflow: ellipsis; ">{{showItem(item)}}</a>
</li>
<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>
</ul>
</div>
@ -76,7 +78,7 @@ export class EntitiesAutocompleteComponent {
@Input() public depositType:string ;
public results = 0;
public focus:boolean = false;
constructor (private _search:EntitiesSearchService, private myElement: ElementRef) {
constructor (public _search:EntitiesSearchService, private myElement: ElementRef) {
this.currentFieldId=this.fieldId;
}

View File

@ -11,18 +11,25 @@ import {StringUtils} from '../string-utils.class';
@Injectable()
export class EntitiesSearchService {
private api ="https://beta.services.openaire.eu/provision/mvc/vocabularies/";
public ready:boolean = false;
constructor(private http: Http, public _cache: CacheService) {}
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";
return this.http.get(url).toPromise()
.then(request =>
{
request = request.json().results;
this.ready = true;
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 {
this.ready = false;
console.info("In searchOrganizationsforDeposit");
let link = OpenaireProperties.getSearchResourcesAPIURL();
@ -46,10 +53,11 @@ export class EntitiesSearchService {
{
request = request.json().results;
console.log(request);
this.ready = true;
return this.parse(request,"oaf:organization","organization");
}).catch((ex) => {
console.error('An error occured', ex);
return null;
return [{id:'-2',label:'Error'}];;
});
}
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)
}
private fetch (link,id,oafEntityType,type){
this.ready = false;
let url = link+"/"+id+"?format=json";
return this.http.get(url)
.map(request => <any> request.json())
// .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){
this.ready = false;
let url = link+"?";
if(keyword!= null && keyword != '' ) {
url += "q="+ keyword;
@ -116,10 +132,11 @@ private fetch (link,id,oafEntityType,type){
.then(request =>
{
request = request.json().results;
this.ready = true;
return this.parse(request,oafEntityType,type);
}).catch((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.endDate = null;
value.startDate = null;
value.funderId = resData['fundingtree']['funder']['id'];
value.funderName = resData['fundingtree']['funder']['shortname'];
value.funderId = (resData['fundingtree'] && resData['fundingtree']['funder'] && resData['fundingtree']['funder']['id'] )?resData['fundingtree']['funder']['id']:"";
value.funderName = (resData['fundingtree'] && resData['fundingtree']['funder'] && resData['fundingtree']['funder']['shortname'] )?resData['fundingtree']['funder']['shortname']:"";
if(resData.hasOwnProperty("startdate")) {
value.startDate = resData.startdate.split('-')[0];
}
@ -187,6 +204,9 @@ private fetch (link,id,oafEntityType,type){
array.push(value);
}
if(array.length == 0){
array.push({id:'-1',label:'No results found'});
}
console.info("Parsing results.... Size:"+array.length);
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: [
{ provide: 'isBrowser', useValue: isBrowser },
{ provide: 'isNode', useValue: isNode },
{ provide: 'req', useFactory: getRequest },
{ provide: 'res', useFactory: getResponse },
{ provide: 'LRU', useFactory: getLRU, deps: [] },
CacheService,
//Meta,
Meta,
// { 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">
<base href="/" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="author" content="Super User" />
<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" />
<title>OpenAIRE</title>
<meta name="description" content="open access, research, scientific publication, European Commission, EC, FP7, ERC, Horizon 2020, H2020, search, projects ">
<meta property="og:description" content="open access, research, scientific publication, European Commission, EC, FP7, ERC, Horizon 2020, H2020, search, projects ">
<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>
<!--uikit-->
<script src="assets/uikit-2.27.2/js/uikit.min.js" type="text/javascript"></script>
@ -64,7 +66,7 @@
}
</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 src="https://cdn.jsdelivr.net/clipboard.js/1.5.12/clipboard.min.js"></script-->
@ -72,6 +74,15 @@
<!-- End of Google sitelinks search markup-->
<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 {
background: #00a8e6 none repeat scroll 0 0;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;
@ -193,7 +204,7 @@
</div-->
<!-- 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-->
<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" >
function loadAltmetrics(e,t,n){
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/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',
'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',
'claims','myclaims','linking', 'bulk-linking',
'claims','myclaims','participate/claim', 'participate/bulk-claim',
'test',
'error', 'login'