Revision 54750
Added by Konstantina Galouni about 5 years ago
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/login/loginGuard.guard.ts | ||
---|---|---|
1 | 1 |
import { Injectable } from '@angular/core'; |
2 |
import { Router,CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot} from '@angular/router';
|
|
2 |
import {Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Route, CanLoad} from '@angular/router';
|
|
3 | 3 |
import {Observable} from 'rxjs/Observable'; |
4 | 4 |
import {Session} from './utils/helper.class'; |
5 | 5 |
import {LoginErrorCodes} from './utils/guardHelper.class'; |
6 | 6 |
|
7 | 7 |
@Injectable() |
8 |
export class LoginGuard implements CanActivate { |
|
8 |
export class LoginGuard implements CanActivate, CanLoad {
|
|
9 | 9 |
|
10 | 10 |
constructor(private router: Router) {} |
11 | 11 |
|
12 |
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
|
|
13 |
var user; |
|
14 |
var loggedIn = false;
|
|
15 |
var errorCode = LoginErrorCodes.NOT_LOGGIN;
|
|
12 |
check(path: string): boolean{
|
|
13 |
//var user;
|
|
14 |
let loggedIn = false;
|
|
15 |
let errorCode = LoginErrorCodes.NOT_LOGIN;
|
|
16 | 16 |
|
17 |
if(Session.isLoggedIn()){ |
|
17 |
if(Session.isLoggedIn()) {
|
|
18 | 18 |
loggedIn = true; |
19 |
if(!Session.isLoggedIn()){ |
|
20 |
loggedIn = false; |
|
21 |
errorCode = LoginErrorCodes.NOT_VALID; |
|
22 |
} |
|
23 |
}else{ |
|
24 |
errorCode = LoginErrorCodes.NOT_LOGGIN; |
|
25 | 19 |
} |
26 | 20 |
if(!loggedIn){ |
27 | 21 |
// this.guardHelper.redirect("/user-info",errorCode,state.url); |
28 |
this.router.navigate(['/user-info'], { queryParams: { "errorCode": errorCode, "redirectUrl": state.url } }); |
|
29 |
return false; |
|
30 |
}else{ |
|
31 |
return true; |
|
22 |
this.router.navigate(['/user-info'], { queryParams: { "errorCode": errorCode, path} }); |
|
32 | 23 |
} |
24 |
return loggedIn; |
|
33 | 25 |
} |
26 |
|
|
27 |
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean { |
|
28 |
return this.check(state.url); |
|
29 |
} |
|
30 |
|
|
31 |
canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean { |
|
32 |
return this.check('/' + route.path); |
|
33 |
} |
|
34 | 34 |
} |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/claims/claimsAdmin/claimsAdmin.component.ts | ||
---|---|---|
19 | 19 |
<div> |
20 | 20 |
<!--div class="uk-text-right"> |
21 | 21 |
<a *ngIf="!fetchBy || fetchBy != 'Context'" routerLink="/participate/claim">Claim more links?</a> |
22 |
<a *ngIf="isConnect && fetchBy && fetchBy == 'Context' && fetchId" [href]="'https://beta.'+fetchId+'.openaire.eu/participate/claim'" target="_blank">Claim more links?</a>
|
|
22 |
<a *ngIf="isConnect && fetchBy && fetchBy == 'Context' && externalPortalUrl" [href]="externalPortalUrl+'/participate/claim'" target="_blank">Claim more links?</a>
|
|
23 | 23 |
</div--> |
24 |
<displayClaims [enableDelete]=true [myClaims]=false [isAdmin]=true [fetchBy]= fetchBy [fetchId]=fetchId
|
|
25 |
[communityId]="(fetchBy && fetchBy == 'Context')?fetchId:null" [moreClaimsURL]=moreClaimsURL [claimsInfoURL]=claimsInfoURL></displayClaims>
|
|
24 |
<displayClaims [enableDelete]=true [myClaims]=false [isAdmin]=true [fetchBy]= "(fetchId=='openaire')?null:fetchBy" [fetchId]="(fetchId=='openaire')?null:fetchId"
|
|
25 |
[communityId]="(fetchBy && fetchBy == 'Context' && fetchId && fetchId!='openaire')?fetchId:null" [externalPortalUrl]=externalPortalUrl [claimsInfoURL]=claimsInfoURL></displayClaims>
|
|
26 | 26 |
</div> |
27 | 27 |
</div> |
28 | 28 |
</div> |
... | ... | |
36 | 36 |
@Input() fetchBy:string; |
37 | 37 |
@Input() fetchId:string; |
38 | 38 |
@Input() isConnect:boolean = false; |
39 |
@Input() moreClaimsURL:string;
|
|
39 |
@Input() externalPortalUrl:string;
|
|
40 | 40 |
@Input() claimsInfoURL:string; |
41 | 41 |
constructor ( private _meta: Meta, private _title: Title) { |
42 | 42 |
var titleConnect = "OpenAIRE Connect | Manage links "; |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/searchPages/find/search.component.ts | ||
---|---|---|
145 | 145 |
this._meta.updateTag({content:description},"property='og:description'"); |
146 | 146 |
this._meta.updateTag({content:title},"property='og:title'"); |
147 | 147 |
this._meta.updateTag({content:url},"property='og:url'"); |
148 |
this.seoService.createLinkForCanonicalURL(false); |
|
148 |
this.seoService.createLinkForCanonicalURL(this.properties.baseLink+this._router.url,false);
|
|
149 | 149 |
if(this.properties.enablePiwikTrack && (typeof document !== 'undefined')){ |
150 | 150 |
this.piwiksub = this._piwikService.trackView(this.properties, "OpenAIRE |Search publications, research data, projects...", this.piwikSiteId).subscribe(); |
151 | 151 |
|
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/claims/claim-utils/entityFormatter/claimEntityFormatter.component.ts | ||
---|---|---|
9 | 9 |
template: ` |
10 | 10 |
<div *ngIf="type == 'publication'" title="Publication"> |
11 | 11 |
<span class="uk-margin-small-right uk-icon" ><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" ratio="1"><rect fill="none" stroke="#000" x="3.5" y="2.5" width="12" height="16"></rect><polyline fill="none" stroke="#000" points="5 0.5 17.5 0.5 17.5 17"></polyline></svg></span> |
12 |
<publication-title [title]="entity.title" [url]="entity.externalUrl" [id]="entity.openaireId" param="articleId" path="/search/publication"></publication-title> |
|
12 |
<publication-title [title]="entity.title" [url]="entity.externalUrl" [id]="entity.openaireId" param="articleId" path="/search/publication" [externalPortalUrl]=externalPortalUrl></publication-title>
|
|
13 | 13 |
</div> |
14 | 14 |
<div *ngIf="type == 'dataset'" title="Dataset"> |
15 | 15 |
<span class="uk-margin-small-right uk-icon" ><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" ratio="1"><ellipse fill="none" stroke="#000" cx="10" cy="4.64" rx="7.5" ry="3.14"></ellipse><path fill="none" stroke="#000" d="M17.5,8.11 C17.5,9.85 14.14,11.25 10,11.25 C5.86,11.25 2.5,9.84 2.5,8.11"></path><path fill="none" stroke="#000" d="M17.5,11.25 C17.5,12.99 14.14,14.39 10,14.39 C5.86,14.39 2.5,12.98 2.5,11.25"></path><path fill="none" stroke="#000" d="M17.49,4.64 L17.5,14.36 C17.5,16.1 14.14,17.5 10,17.5 C5.86,17.5 2.5,16.09 2.5,14.36 L2.5,4.64"></path></svg></span> |
16 |
<publication-title [title]="entity.title" [url]="entity.externalUrl" [id]="entity.openaireId" param="datasetId" path="/search/dataset"></publication-title> |
|
16 |
<publication-title [title]="entity.title" [url]="entity.externalUrl" [id]="entity.openaireId" param="datasetId" path="/search/dataset" [externalPortalUrl]=externalPortalUrl></publication-title>
|
|
17 | 17 |
</div> |
18 | 18 |
<div *ngIf="type == 'software'" title="Software"> |
19 | 19 |
<span class="uk-margin-small-right uk-icon" > |
20 | 20 |
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" ratio="1"> <circle fill="none" stroke="#000" cx="9.997" cy="10" r="3.31"></circle> <path fill="none" stroke="#000" d="M18.488,12.285 L16.205,16.237 C15.322,15.496 14.185,15.281 13.303,15.791 C12.428,16.289 12.047,17.373 12.246,18.5 L7.735,18.5 C7.938,17.374 7.553,16.299 6.684,15.791 C5.801,15.27 4.655,15.492 3.773,16.237 L1.5,12.285 C2.573,11.871 3.317,10.999 3.317,9.991 C3.305,8.98 2.573,8.121 1.5,7.716 L3.765,3.784 C4.645,4.516 5.794,4.738 6.687,4.232 C7.555,3.722 7.939,2.637 7.735,1.5 L12.263,1.5 C12.072,2.637 12.441,3.71 13.314,4.22 C14.206,4.73 15.343,4.516 16.225,3.794 L18.487,7.714 C17.404,8.117 16.661,8.988 16.67,10.009 C16.672,11.018 17.415,11.88 18.488,12.285 L18.488,12.285 Z"></path></svg> |
21 | 21 |
</span> |
22 |
<publication-title [title]="entity.title" [url]="entity.externalUrl" [id]="entity.openaireId" param="softwareId" path="/search/software"></publication-title> |
|
22 |
<publication-title [title]="entity.title" [url]="entity.externalUrl" [id]="entity.openaireId" param="softwareId" path="/search/software" [externalPortalUrl]=externalPortalUrl></publication-title>
|
|
23 | 23 |
</div> |
24 | 24 |
<div *ngIf="type == 'other'" title="Other reserch product"> |
25 | 25 |
<span class="uk-margin-small-right uk-icon" > |
26 | 26 |
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> <polygon fill="none" stroke="#000" points="2.5,5.7 10,1.3 17.5,5.7 17.5,14.3 10,18.7 2.5,14.3"></polygon> <circle fill="none" stroke="#000" cx="10" cy="10" r="3.5"></circle></svg> |
27 | 27 |
</span> |
28 |
<publication-title [title]="entity.title" [url]="entity.externalUrl" [id]="entity.openaireId" param="orpId" path="/search/other" ></publication-title> |
|
28 |
<publication-title [title]="entity.title" [url]="entity.externalUrl" [id]="entity.openaireId" param="orpId" path="/search/other" [externalPortalUrl]=externalPortalUrl ></publication-title>
|
|
29 | 29 |
</div> |
30 | 30 |
<div *ngIf="type == 'project' " title="Project"> |
31 | 31 |
<span class="uk-margin-small-right uk-icon" ><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" ratio="1"><rect x="5" y="2" width="10" height="1"></rect><rect x="3" y="4" width="14" height="1"></rect><rect fill="none" stroke="#000" x="1.5" y="6.5" width="17" height="11"></rect></svg></span> |
32 |
<project-title [project]="entity" [(searchLink)]=properties.searchLinkToProject></project-title> |
|
32 |
<project-title [project]="entity" [(searchLink)]=properties.searchLinkToProject [externalPortalUrl]=externalPortalUrl></project-title>
|
|
33 | 33 |
</div> |
34 | 34 |
<div *ngIf="type == 'context' " title="Concept"> |
35 | 35 |
<span class="uk-margin-small-right uk-icon" ><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" ratio="1"><circle fill="none" stroke="#000" stroke-width="1.1" cx="7.7" cy="8.6" r="3.5"></circle><path fill="none" stroke="#000" stroke-width="1.1" d="M1,18.1 C1.7,14.6 4.4,12.1 7.6,12.1 C10.9,12.1 13.7,14.8 14.3,18.3"></path><path fill="none" stroke="#000" stroke-width="1.1" d="M11.4,4 C12.8,2.4 15.4,2.8 16.3,4.7 C17.2,6.6 15.7,8.9 13.6,8.9 C16.5,8.9 18.8,11.3 19.2,14.1"></path></svg></span> |
... | ... | |
42 | 42 |
@Input() entity: string[]; |
43 | 43 |
@Input() type: string; |
44 | 44 |
@Input() properties: EnvProperties; |
45 |
@Input() externalPortalUrl:string = null; |
|
45 | 46 |
|
46 | 47 |
constructor () {} |
47 | 48 |
|
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/utils/properties/searchFields.ts | ||
---|---|---|
8 | 8 |
"relfunder", |
9 | 9 |
"relfundinglevel0_id","relfundinglevel1_id","relfundinglevel2_id", |
10 | 10 |
"relproject","resultacceptanceyear", |
11 |
"resultbestaccessright", "instancetypename", "resultlanguagename", "community","resulthostingdatasource"]; |
|
11 |
"resultbestaccessright", "instancetypename", "resultlanguagename", "community","resulthostingdatasource","collectedfrom" ];
|
|
12 | 12 |
|
13 | 13 |
public RESULT_ADVANCED_FIELDS:string[] = ["q","resulttitle","resultauthor","resultsubject","resultpublisher", |
14 | 14 |
"resultbestaccessright","community","collectedfromdatasourceid","resulthostingdatasourceid", "resultdateofacceptance", |
... | ... | |
36 | 36 |
["resultacceptanceyear"]:{name:"Publication Date", type:"keyword", param:"year", operator: "ya", equalityOperator: " exact "}, |
37 | 37 |
["resultdateofacceptance"]:{name:"Publication Date", type:"date", param:"date", operator: "dt", equalityOperator: " within "}, |
38 | 38 |
["resultbestaccessright"]:{name:"Access Mode", type:"vocabulary", param:"access", operator: "ac", equalityOperator: " exact "}, |
39 |
["collectedfrom"]:{name:"Content Provider", type:"refine", param:"datasource", operator: "cl", equalityOperator: " exact "},
|
|
39 |
["collectedfrom"]:{name:"Collected From", type:"refine", param:"datasource", operator: "cl", equalityOperator: " exact "},
|
|
40 | 40 |
["relorganizationid"]:{name:"Organization", type:"entity", param:"organization", operator: "og", equalityOperator: " exact "}, |
41 | 41 |
["collectedfromdatasourceid"]:{name:"Collected from Content Provider", type:"entity", param:"collectedFrom", operator: "cl", equalityOperator: " exact "} |
42 | 42 |
}; |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/utils/entitiesAutoComplete/entitySearch.service.ts | ||
---|---|---|
140 | 140 |
this.ready = false; |
141 | 141 |
let url = link+"?"; |
142 | 142 |
if(keyword!= null && keyword != '' ) { |
143 |
url += "q="+ keyword; |
|
143 |
if(type=="project") { |
|
144 |
//name, title, acronym, grantid |
|
145 |
url += "fq="+'(projectcode_nt="'+keyword+'" ) or (fundershortname='+'"'+keyword+ '"'+') or (projectacronym="'+keyword+'" ) or (projecttitle="'+keyword+'")'; |
|
146 |
} else if(type=="organization") { |
|
147 |
//name fields |
|
148 |
url += "fq="+'(organizationlegalname="'+keyword+'" ) or (organizationlegalshortname='+'"'+keyword+ '")'; |
|
149 |
} else { |
|
150 |
url += "q="+ keyword; |
|
151 |
} |
|
144 | 152 |
} |
145 | 153 |
|
146 | 154 |
url += "&page=0&size="+10+"&format=json"; |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/deposit/datasets/depositBySubjectResult.component.ts | ||
---|---|---|
39 | 39 |
|
40 | 40 |
constructor (private route: ActivatedRoute) {} |
41 | 41 |
|
42 |
constructor (private _router: Router, |
|
43 |
private route: ActivatedRoute, |
|
44 |
private _searchDataprovidersService: SearchDataprovidersService, |
|
45 |
private _meta: Meta, |
|
46 |
private _title: Title, |
|
47 |
private _piwikService:PiwikService, |
|
48 |
private seoService: SEOService) { |
|
49 |
|
|
50 |
this.fetchDataproviders = new FetchDataproviders(this._searchDataprovidersService); |
|
51 |
|
|
52 |
this.status = this.errorCodes.LOADING; |
|
53 |
|
|
54 |
var description = "Openaire, repositories, open access, content provider, compatibility, organization, deposit "+ this.requestFor; |
|
55 |
var title = "Deposit "+this.requestFor; |
|
56 |
|
|
57 |
this.updateTitle(title); |
|
58 |
this.updateDescription(description); |
|
59 |
this.seoService.createLinkForCanonicalURL(this.properties.baseLink+this._router.url, false); |
|
60 |
|
|
61 |
} |
|
62 |
|
|
42 | 63 |
ngOnInit() { |
43 | 64 |
this.route.data |
44 | 65 |
.subscribe((data: { envSpecific: EnvProperties }) => { |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/deposit/deposit.component.ts | ||
---|---|---|
51 | 51 |
|
52 | 52 |
var title = "Deposit "+this.requestFor; |
53 | 53 |
var description = "Openaire, repositories, open access, content provider, compatibility, organization, deposit "+ this.requestFor; |
54 |
this.seoService.createLinkForCanonicalURL(false); |
|
54 |
this.seoService.createLinkForCanonicalURL(this.properties.baseLink+this._router.url, false);
|
|
55 | 55 |
this.updateTitle(title); |
56 | 56 |
this.updateDescription(description); |
57 | 57 |
} |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/login/claimsCuratorGuard.guard.ts | ||
---|---|---|
1 | 1 |
import { Injectable } from '@angular/core'; |
2 |
import { Router,CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot} from '@angular/router';
|
|
2 |
import {Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanLoad, Route} from '@angular/router';
|
|
3 | 3 |
import {Observable} from 'rxjs/Observable'; |
4 | 4 |
import {Session} from './utils/helper.class'; |
5 | 5 |
import {LoginErrorCodes} from './utils/guardHelper.class'; |
6 | 6 |
|
7 | 7 |
@Injectable() |
8 |
export class ClaimsCuratorGuard implements CanActivate { |
|
8 |
export class ClaimsCuratorGuard implements CanActivate, CanLoad {
|
|
9 | 9 |
|
10 | 10 |
constructor(private router: Router) {} |
11 | 11 |
|
12 |
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
|
|
13 |
var user; |
|
14 |
var role = route.data['role'] |
|
15 |
var loggedIn = false;
|
|
16 |
var isAuthorized = false;
|
|
17 |
var errorCode = LoginErrorCodes.NOT_LOGGIN;
|
|
12 |
check(path: string) : boolean{
|
|
13 |
//var user;
|
|
14 |
//var role = route.data['role']
|
|
15 |
let loggedIn = false;
|
|
16 |
let isAuthorized = false;
|
|
17 |
let errorCode = LoginErrorCodes.NOT_LOGIN;
|
|
18 | 18 |
|
19 | 19 |
if(Session.isLoggedIn()){ |
20 | 20 |
loggedIn = true; |
21 |
if(!Session.isLoggedIn()){ |
|
22 |
loggedIn = false; |
|
23 |
errorCode = LoginErrorCodes.NOT_VALID; |
|
24 |
}else { |
|
25 |
if(Session.isClaimsCurator() || Session.isPortalAdministrator()){ |
|
26 |
isAuthorized =true; |
|
27 |
} |
|
28 |
if(!Session.isClaimsCurator() && !Session.isPortalAdministrator()){ |
|
29 |
errorCode = LoginErrorCodes.NOT_ADMIN; |
|
30 |
} |
|
31 |
} |
|
32 |
}else{ |
|
33 |
errorCode =LoginErrorCodes.NOT_LOGGIN; |
|
21 |
if(Session.isClaimsCurator() || Session.isPortalAdministrator()){ |
|
22 |
isAuthorized = true; |
|
23 |
} |
|
24 |
else { |
|
25 |
errorCode = LoginErrorCodes.NOT_ADMIN; |
|
26 |
} |
|
34 | 27 |
} |
35 |
|
|
36 |
if(!loggedIn){ |
|
28 |
if(!loggedIn || !isAuthorized){ |
|
37 | 29 |
// this.guardHelper.redirect("/user-info",errorCode,state.url); |
38 |
this.router.navigate(['/user-info'], { queryParams: { "errorCode": errorCode, "redirectUrl": state.url } }); |
|
39 |
|
|
40 |
return false; |
|
41 |
}else if(!isAuthorized){ |
|
42 |
// this.guardHelper.redirect("/user-info",errorCode,state.url); |
|
43 |
this.router.navigate(['/user-info'], { queryParams: { "errorCode": errorCode, "redirectUrl": state.url } }); |
|
44 |
return false; |
|
45 |
}else{ |
|
46 |
return true; |
|
30 |
this.router.navigate(['/user-info'], {queryParams: {"errorCode": errorCode, "redirectUrl": path}}); |
|
47 | 31 |
} |
32 |
return loggedIn && isAuthorized; |
|
48 | 33 |
} |
34 |
|
|
35 |
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean { |
|
36 |
return this.check(state.url); |
|
37 |
} |
|
38 |
|
|
39 |
canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean { |
|
40 |
return this.check('/' + route.path); |
|
41 |
} |
|
49 | 42 |
} |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/login/freeGuard.guard.ts | ||
---|---|---|
1 | 1 |
import { Injectable } from '@angular/core'; |
2 |
import { Router,CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, ActivatedRoute} from '@angular/router'; |
|
2 |
import { |
|
3 |
Router, |
|
4 |
CanActivate, |
|
5 |
ActivatedRouteSnapshot, |
|
6 |
RouterStateSnapshot, |
|
7 |
Route, |
|
8 |
CanLoad |
|
9 |
} from '@angular/router'; |
|
3 | 10 |
import {Observable} from 'rxjs/Observable'; |
4 | 11 |
import {Session} from './utils/helper.class'; |
5 | 12 |
import {LoginErrorCodes} from './utils/guardHelper.class'; |
6 | 13 |
|
7 | 14 |
@Injectable() |
8 |
export class FreeGuard implements CanActivate {
|
|
15 |
export class FreeGuard implements CanActivate, CanLoad{
|
|
9 | 16 |
|
10 | 17 |
constructor(private router: Router) {} |
11 | 18 |
|
12 |
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean { |
|
13 |
var user; |
|
14 |
var valid = true; |
|
15 |
var loggedIn = false; |
|
16 |
var errorCode = LoginErrorCodes.NOT_LOGGIN; |
|
17 |
|
|
18 |
if(Session.isLoggedIn()){ |
|
19 |
loggedIn = true; |
|
20 |
if(!Session.isLoggedIn()){ |
|
21 |
loggedIn = false; |
|
22 |
valid = false; |
|
23 |
errorCode = LoginErrorCodes.NOT_VALID; |
|
24 |
} |
|
25 |
} |
|
26 |
|
|
19 |
check(path: string) :boolean { |
|
20 |
//var user; |
|
21 |
let valid = true; |
|
22 |
let errorCode = LoginErrorCodes.NOT_LOGIN; |
|
27 | 23 |
if(!valid){ |
28 |
// this.guardHelper.redirect("/user-info",errorCode,state.url); |
|
29 |
|
|
30 |
this.router.navigate(['/user-info'], { queryParams: { "errorCode": errorCode, "redirectUrl": state.url } }); |
|
31 |
return false; |
|
24 |
this.router.navigate(['/user-info'], {queryParams: {"errorCode": errorCode, "redirectUrl": path}}); |
|
32 | 25 |
} |
33 |
return true; |
|
26 |
return valid; |
|
27 |
} |
|
34 | 28 |
|
29 |
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean { |
|
30 |
return this.check(state.url); |
|
35 | 31 |
} |
32 |
|
|
33 |
canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean { |
|
34 |
return this.check('/' + route.path); |
|
35 |
} |
|
36 | 36 |
} |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/claims/claim-utils/entityFormatter/publicationTitleFormatter.component.ts | ||
---|---|---|
6 | 6 |
@Component({ |
7 | 7 |
selector: 'publication-title', |
8 | 8 |
template: ` |
9 |
<span class="publication-title"> |
|
9 |
<span *ngIf="!externalPortalUrl" class="publication-title">
|
|
10 | 10 |
|
11 | 11 |
<span *ngIf="id" ><a [queryParams]="routerHelper.createQueryParam(param,id)" routerLinkActive="router-link-active" [routerLink]="path" > {{title}}</a></span> |
12 | 12 |
<!--span *ngIf="url" class="uk-margin-small-left" ><a target="_blank" href="{{url}}" > |
13 | 13 |
(<span class="custom-external custom-icon" ></span>link)</a></span--> |
14 | 14 |
</span> |
15 |
<span *ngIf="externalPortalUrl" class="publication-title"> |
|
16 |
|
|
17 |
<span *ngIf="id" ><a [href] = "externalPortalUrl + path+'?'+param+'='+id" > {{title}}</a></span> |
|
18 |
</span> |
|
15 | 19 |
` |
16 | 20 |
}) |
17 | 21 |
|
... | ... | |
21 | 25 |
@Input() id: string; |
22 | 26 |
@Input() param: string; |
23 | 27 |
@Input() path: string; |
28 |
@Input() externalPortalUrl:string = null; |
|
24 | 29 |
public routerHelper:RouterHelper = new RouterHelper(); |
25 | 30 |
constructor () {} |
26 | 31 |
|
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/searchPages/searchUtils/searchPaging.component.ts | ||
---|---|---|
5 | 5 |
@Component({ |
6 | 6 |
selector: 'search-paging', |
7 | 7 |
template: ` |
8 |
<div class= "searchPaging uk-panel uk-margin-top uk-grid"> |
|
8 |
<div class= "searchPaging uk-panel uk-margin-small-top uk-grid"> |
|
9 |
<!--div class="uk-width-1-1@s uk-width-1-2@m" *ngIf="results && searchUtils.totalResults > 0"> |
|
10 |
<span class="portal-color">{{searchUtils.totalResults|number}}</span> {{type}}, page <span class="portal-color">{{searchUtils.page | number}}</span> of <span class="portal-color">{{(totalPages(searchUtils.totalResults)|number)}}</span> |
|
11 |
</div> |
|
12 |
<div class="uk-width-1-1@s uk-width-1-2@m" *ngIf="!loadPaging && oldTotalResults > 0 && searchUtils.status == errorCodes.LOADING"> |
|
13 |
<span class="portal-color">{{oldTotalResults|number}}</span> {{type}}, page <span class="portal-color">{{searchUtils.page | number}}</span> of <span class="portal-color">{{(totalPages(oldTotalResults)|number)}}</span> |
|
14 |
</div--> |
|
9 | 15 |
<div class="uk-width-1-1@s uk-width-1-2@m" *ngIf="results && searchUtils.totalResults > 0"> |
10 | 16 |
{{searchUtils.totalResults|number}} {{type}}, page {{searchUtils.page | number}} of {{(totalPages(searchUtils.totalResults)|number)}} |
11 | 17 |
</div> |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/searchPages/searchUtils/searchPage.component.ts | ||
---|---|---|
108 | 108 |
this.updateTitle(this.pageTitle); |
109 | 109 |
var description = "Openaire, search, repositories, open access, type, content provider, funder, project, " + this.type + "," +this.pageTitle; |
110 | 110 |
this.updateDescription(description); |
111 |
this.seoService.createLinkForCanonicalURL(false); |
|
111 |
this.seoService.createLinkForCanonicalURL(this.properties.baseLink+this.router.url,false);
|
|
112 | 112 |
} |
113 | 113 |
ngAfterViewChecked(){ |
114 | 114 |
|
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/searchPages/searchUtils/searchPageTableView.component.ts | ||
---|---|---|
3 | 3 |
import {EventEmitter, ViewEncapsulation} from '@angular/core'; |
4 | 4 |
import {OnInit, AfterViewInit} from '@angular/core'; |
5 | 5 |
import {Location} from '@angular/common'; |
6 |
import {ActivatedRoute} from '@angular/router'; |
|
6 |
import {ActivatedRoute, Router} from '@angular/router';
|
|
7 | 7 |
import {Title, Meta} from '@angular/platform-browser'; |
8 | 8 |
|
9 | 9 |
import {Observable} from 'rxjs/Observable'; |
... | ... | |
81 | 81 |
properties:EnvProperties; |
82 | 82 |
url = null; |
83 | 83 |
constructor (private route: ActivatedRoute, |
84 |
private router: Router, |
|
84 | 85 |
private location: Location, |
85 | 86 |
private _meta: Meta, |
86 | 87 |
private _title: Title, |
... | ... | |
110 | 111 |
this.updateTitle(this.pageTitle); |
111 | 112 |
var description = "Openaire, search, repositories, open access, type, content provider, funder, project, " + this.type + "," +this.pageTitle; |
112 | 113 |
this.updateDescription(description); |
113 |
this.seoService.createLinkForCanonicalURL(false); |
|
114 |
this.seoService.createLinkForCanonicalURL(this.properties.baseLink+this.router.url,false);
|
|
114 | 115 |
|
115 | 116 |
|
116 | 117 |
} |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/searchPages/searchUtils/advancedSearchPage.component.ts | ||
---|---|---|
94 | 94 |
this.searchUtils.baseUrl = "/" + this.searchUtils.baseUrl; |
95 | 95 |
|
96 | 96 |
this.updateBaseUrlWithParameters(); |
97 |
this.seoService.createLinkForCanonicalURL(false); |
|
97 |
this.seoService.createLinkForCanonicalURL(this.properties.baseLink+this.router.url,false);
|
|
98 | 98 |
|
99 | 99 |
|
100 | 100 |
} |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/connect/communityGuard/connectSubscriber.guard.ts | ||
---|---|---|
16 | 16 |
console.log(state.url); |
17 | 17 |
var user; |
18 | 18 |
var authorized = false; |
19 |
var errorCode = LoginErrorCodes.NOT_SUBSCIBER; |
|
19 |
var errorCode = LoginErrorCodes.NOT_SUBSCRIBER;
|
|
20 | 20 |
|
21 | 21 |
let community = (route.queryParams["communityId"]); |
22 | 22 |
if(!community){ |
23 | 23 |
community = ConnectHelper.getCommunityFromDomain(document.location.hostname); |
24 | 24 |
} |
25 | 25 |
if(!Session.isLoggedIn()){ |
26 |
errorCode = LoginErrorCodes.NOT_LOGGIN;
|
|
26 |
errorCode = LoginErrorCodes.NOT_LOGIN; |
|
27 | 27 |
this.router.navigate(['/user-info'], { queryParams: { "errorCode": errorCode, "redirectUrl": state.url } }); |
28 | 28 |
return false; |
29 | 29 |
} |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/connect/communityGuard/connectAdminLoginGuard.guard.ts | ||
---|---|---|
16 | 16 |
var user; |
17 | 17 |
var loggedIn = false; |
18 | 18 |
var isAdmin = false; |
19 |
var errorCode = LoginErrorCodes.NOT_LOGGIN;
|
|
19 |
var errorCode = LoginErrorCodes.NOT_LOGIN; |
|
20 | 20 |
|
21 | 21 |
let community = (route.queryParams["communityId"]); |
22 | 22 |
if(Session.isLoggedIn()){ |
... | ... | |
39 | 39 |
return obs; |
40 | 40 |
} |
41 | 41 |
}else{ |
42 |
errorCode =LoginErrorCodes.NOT_LOGGIN;
|
|
42 |
errorCode =LoginErrorCodes.NOT_LOGIN; |
|
43 | 43 |
this.router.navigate(['/user-info'], { queryParams: { "errorCode": errorCode, "redirectUrl": state.url } }); |
44 | 44 |
|
45 | 45 |
return false; |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/connect/communityGuard/connectRIGuard.guard.ts | ||
---|---|---|
16 | 16 |
var user; |
17 | 17 |
var loggedIn = false; |
18 | 18 |
var isAdmin = false; |
19 |
var errorCode = LoginErrorCodes.NOT_LOGGIN;
|
|
19 |
var errorCode = LoginErrorCodes.NOT_LOGIN; |
|
20 | 20 |
|
21 | 21 |
let community = (route.queryParams["communityId"]); |
22 | 22 |
if(Session.isLoggedIn()){ |
... | ... | |
39 | 39 |
return obs; |
40 | 40 |
} |
41 | 41 |
}else{ |
42 |
errorCode =LoginErrorCodes.NOT_LOGGIN;
|
|
42 |
errorCode =LoginErrorCodes.NOT_LOGIN; |
|
43 | 43 |
this.router.navigate(['/user-info'], { queryParams: { "errorCode": errorCode, "redirectUrl": state.url } }); |
44 | 44 |
|
45 | 45 |
return false; |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/connect/userEmailPreferences/mailPrefs.component.html | ||
---|---|---|
45 | 45 |
<div class="uk-form-label inherit-color">Frequency:</div> |
46 | 46 |
<div class="uk-form-controls"> |
47 | 47 |
<select [class]="notification.notify ? 'uk-select' : 'uk-select uk-disabled'" id="form-horizontal-select" |
48 |
[(ngModel)]="notification.frequency" name="select_frequency"> |
|
49 |
<option (click)="changeFrequency(24, i)" [ngValue]="24" >Daily</option>
|
|
50 |
<option (click)="changeFrequency(48, i)" [ngValue]="48" >Every two days</option>
|
|
51 |
<option (click)="changeFrequency(168, i)" [ngValue]="168">Weekly</option>
|
|
48 |
[(ngModel)]="notification.frequency" (ngModelChange)="changeFrequency(i)" name="select_frequency">
|
|
49 |
<option [ngValue]="24" >Daily</option> |
|
50 |
<option [ngValue]="48" >Every two days</option> |
|
51 |
<option [ngValue]="168">Weekly</option> |
|
52 | 52 |
</select> |
53 | 53 |
</div> |
54 | 54 |
</div> |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/connect/userEmailPreferences/mailPrefs.component.ts | ||
---|---|---|
136 | 136 |
} |
137 | 137 |
} |
138 | 138 |
|
139 |
changeFrequency(value: number, index: number) {
|
|
139 |
changeFrequency(index: number) { |
|
140 | 140 |
if(!Session.isLoggedIn()){ |
141 | 141 |
//this.userValidMessage = "User session has expired. Please login again."; |
142 | 142 |
if(this.showSaveResetButtons) { |
... | ... | |
145 | 145 |
} else { |
146 | 146 |
this.savedMessage = ""; |
147 | 147 |
this.status = this.errorCodes.DONE; |
148 |
if(this.initialNotifications[index].frequency != value) {
|
|
148 |
if(this.initialNotifications[index].frequency != this.notifications[index].frequency) {
|
|
149 | 149 |
this.prefsChanged[index] = true; |
150 | 150 |
} |
151 | 151 |
} |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/landingPages/orp/orp.service.ts | ||
---|---|---|
176 | 176 |
let length = Array.isArray(authors) ? authors.length : 1; |
177 | 177 |
for(let i=0; i<length; i++) { |
178 | 178 |
let author = Array.isArray(authors) ? authors[i] : authors; |
179 |
this.orpInfo.authors[author.rank-1] = author.content;
|
|
179 |
this.orpInfo.authors[author.rank] = author.content; |
|
180 | 180 |
|
181 | 181 |
} |
182 | 182 |
|
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/landingPages/orp/orp.component.ts | ||
---|---|---|
69 | 69 |
.subscribe((data: { envSpecific: EnvProperties }) => { |
70 | 70 |
this.properties = data.envSpecific; |
71 | 71 |
this.updateUrl(data.envSpecific.baseLink+this._router.url); |
72 |
this.seoService.createLinkForCanonicalURL(this.properties.baseLink+this._router.url); |
|
72 | 73 |
|
73 | 74 |
}); |
74 | 75 |
this.sub = this.route.queryParams.subscribe(params => { |
75 | 76 |
this.orpInfo = null; |
76 | 77 |
this.updateTitle("Other Research Product"); |
77 |
this.updateDescription("Other Research Product, search, open access"); |
|
78 |
this.seoService.createLinkForCanonicalURL(); |
|
78 |
this.updateDescription(""); |
|
79 | 79 |
this.orpId = params['orpId']; |
80 | 80 |
console.info("Id is :"+this.orpId); |
81 | 81 |
|
... | ... | |
123 | 123 |
this.orpInfo = data; |
124 | 124 |
if(this.orpInfo.title){ |
125 | 125 |
this.updateTitle(this.orpInfo.title); |
126 |
this.updateDescription("Other Research Product, search, repositories, open access,"+this.orpInfo.title);
|
|
126 |
this.updateDescription((this.orpInfo.description?(this.orpInfo.description):(","+this.orpInfo.title)));
|
|
127 | 127 |
} |
128 | 128 |
if(this.properties.enablePiwikTrack && (typeof document !== 'undefined')){ |
129 | 129 |
this.piwiksub = this._piwikService.trackView(this.properties, this.orpInfo.title, this.piwikSiteId).subscribe(); |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/landingPages/dataProvider/dataProvider.component.ts | ||
---|---|---|
131 | 131 |
.subscribe((data: { envSpecific: EnvProperties }) => { |
132 | 132 |
this.properties = data.envSpecific; |
133 | 133 |
this.updateUrl(data.envSpecific.baseLink+this._router.url); |
134 |
this.seoService.createLinkForCanonicalURL(this.properties.baseLink+this._router.url); |
|
134 | 135 |
|
135 | 136 |
}); |
136 | 137 |
this.sub = this.route.queryParams.subscribe(data => { |
137 | 138 |
this.updateTitle("Content provider"); |
138 |
this.updateDescription("Content provider, search, repositories, open access"); |
|
139 |
this.seoService.createLinkForCanonicalURL(); |
|
139 |
this.updateDescription(""); |
|
140 | 140 |
this.datasourceId = data['datasourceId']; |
141 | 141 |
if(this.datasourceId){ |
142 | 142 |
this.getDataProviderInfo(this.datasourceId); |
... | ... | |
186 | 186 |
this.initTabs(); |
187 | 187 |
this.showTabs = true ; |
188 | 188 |
this.updateTitle(this.dataProviderInfo.title.name); |
189 |
this.updateDescription("Content provider, search, repositories, open access,"+this.dataProviderInfo.title.name);
|
|
189 |
this.updateDescription("Content provider, "+this.dataProviderInfo.title.name); |
|
190 | 190 |
if(this.properties.enablePiwikTrack && (typeof document !== 'undefined')){ |
191 | 191 |
this.piwiksub = this._piwikService.trackView(this.properties, this.dataProviderInfo.title.name, this.piwikSiteId).subscribe(); |
192 | 192 |
} |
... | ... | |
244 | 244 |
this.reloadRelatedDatasources = true; |
245 | 245 |
this.statsClicked = false; |
246 | 246 |
|
247 |
this.search(this.dataProviderInfo.tabs[0].content, 1, 10); |
|
247 |
//this.search(this.dataProviderInfo.tabs[0].content, 1, 10);
|
|
248 | 248 |
this.count(1, 0); |
249 | 249 |
|
250 | 250 |
this.metricsClicked = false; |
... | ... | |
288 | 288 |
} |
289 | 289 |
|
290 | 290 |
private count(page: number, size: number) { |
291 |
for(let i=1; i<this.dataProviderInfo.tabs.length; i++) {
|
|
291 |
for(let i=0; i<this.dataProviderInfo.tabs.length; i++) {
|
|
292 | 292 |
let content: string = this.dataProviderInfo.tabs[i].content; |
293 | 293 |
|
294 | 294 |
if(content=='publicationsTab') { |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/landingPages/organization/organization.component.ts | ||
---|---|---|
124 | 124 |
.subscribe((data: { envSpecific: EnvProperties }) => { |
125 | 125 |
this.properties = data.envSpecific; |
126 | 126 |
this.updateUrl(data.envSpecific.baseLink+this._router.url); |
127 |
|
|
127 |
this.seoService.createLinkForCanonicalURL(this.properties.baseLink+this._router.url); |
|
128 | 128 |
}); |
129 | 129 |
console.info('organization init'); |
130 | 130 |
this.sub = this.route.queryParams.subscribe(params => { |
131 | 131 |
this.organizationInfo=null; |
132 | 132 |
this.updateTitle("Organization"); |
133 |
this.updateDescription("Organization, country, projects, search, repositories, open access"); |
|
134 |
this.seoService.createLinkForCanonicalURL(); |
|
133 |
this.updateDescription(""); |
|
135 | 134 |
this.projectsClicked = false; |
136 | 135 |
|
137 | 136 |
this.organizationId = params['organizationId']; |
... | ... | |
206 | 205 |
} else { |
207 | 206 |
this.organizationInfo = data; |
208 | 207 |
this.updateTitle(this.organizationInfo.title.name); |
209 |
this.updateDescription("Organization, country, projects, search, repositories, open access"+this.organizationInfo.title.name);
|
|
208 |
this.updateDescription("Organization, country, "+this.organizationInfo.title.name +((this.organizationInfo.title.name && this.organizationInfo.title.name != this.organizationInfo.name)?(", "+this.organizationInfo.name):"") );
|
|
210 | 209 |
if(this.properties.enablePiwikTrack && (typeof document !== 'undefined')){ |
211 | 210 |
this.piwiksub = this._piwikService.trackView(this.properties, this.organizationInfo.title.name, this.piwikSiteId).subscribe(); |
212 | 211 |
} |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/landingPages/dataset/dataset.service.ts | ||
---|---|---|
197 | 197 |
let length = Array.isArray(authors) ? authors.length : 1; |
198 | 198 |
for(let i=0; i<length; i++) { |
199 | 199 |
let author = Array.isArray(authors) ? authors[i] : authors; |
200 |
this.datasetInfo.authors[author.rank-1] = author.content;
|
|
200 |
this.datasetInfo.authors[author.rank] = author.content; |
|
201 | 201 |
|
202 | 202 |
} |
203 | 203 |
|
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/landingPages/dataset/dataset.component.ts | ||
---|---|---|
69 | 69 |
.subscribe((data: { envSpecific: EnvProperties }) => { |
70 | 70 |
this.properties = data.envSpecific; |
71 | 71 |
this.updateUrl(data.envSpecific.baseLink+this._router.url); |
72 |
this.seoService.createLinkForCanonicalURL(this.properties.baseLink+this._router.url); |
|
72 | 73 |
|
73 | 74 |
}); |
74 | 75 |
this.sub = this.route.queryParams.subscribe(params => { |
75 | 76 |
this.datasetInfo = null; |
76 | 77 |
this.updateTitle("Dataset"); |
77 |
this.updateDescription("Dataset, search, open access"); |
|
78 |
this.seoService.createLinkForCanonicalURL(); |
|
78 |
this.updateDescription(""); |
|
79 | 79 |
|
80 | 80 |
this.datasetId = params['datasetId']; |
81 | 81 |
console.info("Id is :"+this.datasetId); |
... | ... | |
133 | 133 |
*/ |
134 | 134 |
if(this.datasetInfo.title){ |
135 | 135 |
this.updateTitle(this.datasetInfo.title); |
136 |
this.updateDescription("Dataset, search, repositories, open access,"+this.datasetInfo.title);
|
|
136 |
this.updateDescription((this.datasetInfo.description?(this.datasetInfo.description):(","+this.datasetInfo.title)));
|
|
137 | 137 |
} |
138 | 138 |
if(this.properties.enablePiwikTrack && (typeof document !== 'undefined')){ |
139 | 139 |
this.piwiksub = this._piwikService.trackView(this.properties, this.datasetInfo.title/*.name*/, this.piwikSiteId).subscribe(); |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/landingPages/project/project.component.ts | ||
---|---|---|
132 | 132 |
this.fetchOrps = new FetchOrps(this._searchOrpsService); |
133 | 133 |
|
134 | 134 |
var title = "Project"; |
135 |
var description = "project, funding, open access, publications, research data, software, other research products";
|
|
135 |
var description = ""; |
|
136 | 136 |
|
137 | 137 |
this.updateTitle(title); |
138 |
this.updateDescription(description); |
|
139 |
this.seoService.createLinkForCanonicalURL(); |
|
140 |
|
|
138 |
this.updateDescription(description); |
|
139 |
this.seoService.createLinkForCanonicalURL(this.properties.baseLink+this._router.url); |
|
141 | 140 |
this.projectId = params['projectId']; |
142 | 141 |
var grantId = params['grantId']; |
143 | 142 |
var funder = params['funder']; |
... | ... | |
358 | 357 |
this.projectName = this.projectInfo.title; |
359 | 358 |
} |
360 | 359 |
this.updateTitle(this.projectName); |
361 |
this.updateDescription("project, funding, open access, publications, research data, "+this.projectName+ ","+this.projectInfo.funder);
|
|
360 |
this.updateDescription("project, "+this.projectName+ ","+this.projectInfo.funder+","+this.projectInfo.acronym);
|
|
362 | 361 |
if(this.properties.enablePiwikTrack && (typeof document !== 'undefined')){ |
363 | 362 |
this.piwiksub = this._piwikService.trackView(this.properties, this.projectName, this.piwikSiteId).subscribe(); |
364 | 363 |
} |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/landingPages/htmlProjectReport/htmlProjectReport.component.ts | ||
---|---|---|
79 | 79 |
.subscribe((data: { envSpecific: EnvProperties }) => { |
80 | 80 |
this.properties = data.envSpecific; |
81 | 81 |
this.updateUrl(data.envSpecific.baseLink+this._router.url); |
82 |
this.seoService.createLinkForCanonicalURL(this.properties.baseLink+this._router.url); |
|
82 | 83 |
|
83 | 84 |
}); |
84 | 85 |
this.sub = this.route.queryParams.subscribe(params => { |
... | ... | |
106 | 107 |
var description = "project, project "+ this.resultsType +" report, funding, open access, publications, research data, software, other research products"; |
107 | 108 |
this.updateTitle(title); |
108 | 109 |
this.updateDescription(description); |
109 |
this.seoService.createLinkForCanonicalURL(); |
|
110 | 110 |
|
111 |
|
|
111 | 112 |
} else { |
112 | 113 |
this.showLoading = false; |
113 | 114 |
this.warningMessage="Requested type should be publication or research data or software or other research product"; |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/landingPages/publication/publication.component.ts | ||
---|---|---|
90 | 90 |
this.sub = this.route.queryParams.subscribe(data => { |
91 | 91 |
this.publicationInfo = null; |
92 | 92 |
this.updateTitle("Publication"); |
93 |
this.updateDescription("Publication, open access, collected from"); |
|
94 |
this.seoService.createLinkForCanonicalURL(); |
|
95 |
|
|
93 |
this.updateDescription(""); |
|
94 |
this.seoService.createLinkForCanonicalURL(this.properties.baseLink+this._router.url); |
|
96 | 95 |
this.articleId = data['articleId']; |
97 | 96 |
console.info("Article id is :"+this.articleId); |
98 | 97 |
|
... | ... | |
166 | 165 |
}*/ |
167 | 166 |
if(this.publicationInfo.title){ |
168 | 167 |
this.updateTitle(this.publicationInfo.title); |
169 |
this.updateDescription("Dataset, search, repositories, open access,"+this.publicationInfo.title);
|
|
168 |
this.updateDescription((this.publicationInfo.description?(this.publicationInfo.description):(","+this.publicationInfo.title)));
|
|
170 | 169 |
} |
171 | 170 |
if(this.properties.enablePiwikTrack && (typeof document !== 'undefined')){ |
172 | 171 |
this.piwiksub = this._piwikService.trackView(this.properties, this.publicationInfo.title/*.name*/, this.piwikSiteId).subscribe(); |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/landingPages/publication/publication.component.html | ||
---|---|---|
87 | 87 |
</li> |
88 | 88 |
</ul> |
89 | 89 |
<hr *ngIf="publicationInfo.description"> |
90 |
<!-- <div *ngIf="publicationInfo.description" class="uk-margin-bottom uk-text-justify descriptionText">
|
|
90 |
<div *ngIf="publicationInfo.description" class="uk-margin-bottom uk-text-justify descriptionText"> |
|
91 | 91 |
{{publicationInfo.description}} |
92 |
</div> -->
|
|
92 |
</div> |
|
93 | 93 |
|
94 | 94 |
|
95 | 95 |
|
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/landingPages/publication/publication.service.ts | ||
---|---|---|
240 | 240 |
|
241 | 241 |
for(let i=0; i<length; i++) { |
242 | 242 |
let author = Array.isArray(authors) ? authors[i] : authors; |
243 |
this.publicationInfo.authors[author.rank-1] = author.content;
|
|
243 |
this.publicationInfo.authors[author.rank] = author.content; |
|
244 | 244 |
} |
245 | 245 |
this.publicationInfo.authors = this.publicationInfo.authors.filter(function (item) { |
246 | 246 |
return (item != undefined); |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/landingPages/software/software.component.ts | ||
---|---|---|
68 | 68 |
.subscribe((data: { envSpecific: EnvProperties }) => { |
69 | 69 |
this.properties = data.envSpecific; |
70 | 70 |
this.updateUrl(data.envSpecific.baseLink+this._router.url); |
71 |
this.seoService.createLinkForCanonicalURL(this.properties.baseLink+this._router.url); |
|
71 | 72 |
|
72 | 73 |
}); |
73 | 74 |
this.sub = this.route.queryParams.subscribe(params => { |
74 | 75 |
this.softwareInfo = null; |
75 | 76 |
this.updateTitle("Software"); |
76 | 77 |
this.updateDescription("Software, search, open access"); |
77 |
this.seoService.createLinkForCanonicalURL(); |
|
78 |
|
|
78 |
|
|
79 | 79 |
this.softwareId = params['softwareId']; |
80 | 80 |
console.info("Id is :"+this.softwareId); |
81 | 81 |
|
... | ... | |
130 | 130 |
}*/ |
131 | 131 |
if(this.softwareInfo.title){ |
132 | 132 |
this.updateTitle(this.softwareInfo.title); |
133 |
this.updateDescription("Software, search, repositories, open access,"+this.softwareInfo.title);
|
|
133 |
this.updateDescription("Software, "+this.softwareInfo.title); |
|
134 | 134 |
} |
135 | 135 |
if( this.properties.enablePiwikTrack && (typeof document !== 'undefined')){ |
136 | 136 |
this.piwiksub = this._piwikService.trackView(this.properties, this.softwareInfo.title/*.name*/, this.piwikSiteId).subscribe(); |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/claims/directLinking/directLinking.component.ts | ||
---|---|---|
51 | 51 |
|
52 | 52 |
this._meta.updateTag({content:title},"property='og:title'"); |
53 | 53 |
this._title.setTitle(title); |
54 |
this.seoService.createLinkForCanonicalURL(false); |
|
55 | 54 |
|
56 | 55 |
} |
57 | 56 |
ngOnInit() { |
... | ... | |
59 | 58 |
.subscribe((data: { envSpecific: EnvProperties }) => { |
60 | 59 |
this.properties = data.envSpecific; |
61 | 60 |
this.url = data.envSpecific.baseLink+this._router.url; |
61 |
this.seoService.createLinkForCanonicalURL(this.properties.baseLink+this._router.url, false); |
|
62 | 62 |
|
63 | 63 |
}); |
64 | 64 |
|
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/claims/claim-utils/displayClaims/displayClaims.component.ts | ||
---|---|---|
34 | 34 |
|
35 | 35 |
}); |
36 | 36 |
this.sub = this.route.queryParams.subscribe(params => { |
37 |
this.seoService.createLinkForCanonicalURL(false);
|
|
37 |
this.seoService.createLinkForCanonicalURL(this.properties.baseLink+this._router.url, false);
|
|
38 | 38 |
|
39 | 39 |
if( this.myClaims){ |
40 | 40 |
this.fetchBy = "User"; |
... | ... | |
96 | 96 |
navigateTo: string = "Claims"; |
97 | 97 |
resultsNum: number ; |
98 | 98 |
claims: string[]; |
99 |
@Input() moreClaimsURL:string;// ="/participate/claim";
|
|
99 |
@Input() externalPortalUrl:string = null;
|
|
100 | 100 |
@Input() claimsInfoURL:string;// ="https://www.openaire.eu/linking"; |
101 | 101 |
|
102 | 102 |
@ViewChild (ModalLoading) loading : ModalLoading ; |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/landingPages/software/software.service.ts | ||
---|---|---|
199 | 199 |
|
200 | 200 |
for(let i=0; i<length; i++) { |
201 | 201 |
let author = Array.isArray(authors) ? authors[i] : authors; |
202 |
this.softwareInfo.authors[author.rank-1] = author.content;
|
|
202 |
this.softwareInfo.authors[author.rank] = author.content; |
|
203 | 203 |
} |
204 | 204 |
|
205 | 205 |
this.softwareInfo.authors = this.softwareInfo.authors.filter(function (item) { |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/utils/pagingFormatter.component.ts | ||
---|---|---|
9 | 9 |
template: ` |
10 | 10 |
|
11 | 11 |
|
12 |
<ul *ngIf=" ( getTotalPages() > 0 ) && (getTotalPages() > 1) && ( 0 < currentPage && currentPage <= getTotalPages() ) " class="uk-pagination"> |
|
12 |
<ul *ngIf=" ( getTotalPages() > 0 ) && (getTotalPages() > 1) && ( 0 < currentPage && currentPage <= getTotalPages() ) " class="uk-pagination uk-margin-bottom-remove">
|
|
13 | 13 |
|
14 | 14 |
<!--li *ngIf=" currentPage > 1" ><a [queryParams]="routerHelper.createQueryParamsPaging(parameterNames,parameterValues,'page',1)" routerLinkActive="router-link-active" [routerLink]=baseUrl aria-label="Previous"> |
15 | 15 |
<span><span class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="chevron-left" ratio="1"><polyline fill="none" stroke="#000" stroke-width="1.03" points="13 16 7 10 13 4"></polyline></svg></span></span></a></li--> |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/utils/email/validator.ts | ||
---|---|---|
2 | 2 |
|
3 | 3 |
export class Validator { |
4 | 4 |
|
5 |
private static regex = "^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$"; |
|
5 |
//private static regex = "^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$"; |
|
6 |
private static regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; |
|
7 |
/* |
|
8 |
private static regex2= /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; |
|
9 |
// for expanation paste it in https://www.regextester.com/ |
|
10 |
// RFC5322 https://emailregex.com/ |
|
11 |
*/ |
|
6 | 12 |
|
7 | 13 |
public static hasValidEmails(data: any): boolean { |
8 | 14 |
for(let i = 0; i < data.length; i++) { |
9 | 15 |
if (!this.emailValidator(data[i])) { |
10 | 16 |
// TODO remove console message after final testing |
11 |
console.log("INVALID EMAIL");
|
|
17 |
console.log("INVALID EMAIL: "+data[i]);
|
|
12 | 18 |
return false; |
13 | 19 |
} |
14 | 20 |
} |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/utils/properties/env-properties.ts | ||
---|---|---|
70 | 70 |
|
71 | 71 |
cookieDomain; |
72 | 72 |
|
73 |
|
|
73 |
feedbackQuestionaire; |
|
74 | 74 |
feedbackmail; |
75 | 75 |
feedbackmailForMissingEntities; |
76 | 76 |
|
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/utils/errorMessages.component.ts | ||
---|---|---|
30 | 30 |
[class]="(tab_error_class ? 'uk-margin-top' : 'uk-animation-fade') + ' uk-alert uk-alert-warning'" role="alert">Changes could not be saved |
31 | 31 |
</div> |
32 | 32 |
<div *ngIf="status.some(checkErroCode(errorCodes.FORBIDDEN))" |
33 |
[class]="(tab_error_class ? 'uk-margin-top' : 'uk-animation-fade') + 'uk-alert uk-alert-danger'" role="alert">You are not allowed to access this page |
|
33 |
[class]="(tab_error_class ? 'uk-margin-top' : 'uk-animation-fade') + ' uk-alert uk-alert-danger'" role="alert">You are not allowed to access this page
|
|
34 | 34 |
</div> |
35 | 35 |
` |
36 | 36 |
}) |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/deposit/depositResult.component.ts | ||
---|---|---|
275 | 275 |
|
276 | 276 |
var title = "Deposit "+this.requestFor; |
277 | 277 |
var description = "Openaire, repositories, open access, content provider, compatibility, organization, deposit "+ this.requestFor; |
278 |
this.seoService.createLinkForCanonicalURL(false); |
|
279 | 278 |
|
280 | 279 |
this.updateTitle(title); |
281 | 280 |
this.updateDescription(description); |
... | ... | |
285 | 284 |
this.route.data |
286 | 285 |
.subscribe((data: { envSpecific: EnvProperties }) => { |
287 | 286 |
this.properties = data.envSpecific; |
287 |
this.seoService.createLinkForCanonicalURL(this.properties.baseLink+this._router.url, false); |
|
288 | 288 |
this.updateUrl(data.envSpecific.baseLink+this._router.url); |
289 | 289 |
this.url = data.envSpecific.baseLink+this._router.url; |
290 | 290 |
|
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/login/utils/guardHelper.class.ts | ||
---|---|---|
11 | 11 |
// |
12 | 12 |
// } |
13 | 13 |
export class LoginErrorCodes { |
14 |
public static NOT_LOGGIN:number =1;
|
|
14 |
public static NOT_LOGIN:number =1; |
|
15 | 15 |
public static NOT_ADMIN:number =2; |
16 | 16 |
public static NOT_VALID:number =3; |
17 | 17 |
public static NOT_CONNECT_ADMIN:number =4; |
18 | 18 |
public static NO_COMMUNITY:number =5; |
19 |
public static NOT_SUBSCIBER:number =6; |
|
19 |
public static NOT_SUBSCRIBER:number =6;
|
|
20 | 20 |
|
21 | 21 |
} |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/login/adminLoginGuard.guard.ts | ||
---|---|---|
1 | 1 |
import { Injectable } from '@angular/core'; |
2 |
import { Router,CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot} from '@angular/router';
|
|
2 |
import {Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanLoad, Route} from '@angular/router';
|
|
3 | 3 |
import {Observable} from 'rxjs/Observable'; |
4 | 4 |
import {Session} from './utils/helper.class'; |
5 | 5 |
import {LoginErrorCodes} from './utils/guardHelper.class'; |
6 | 6 |
|
7 | 7 |
@Injectable() |
8 |
export class AdminLoginGuard implements CanActivate { |
|
8 |
export class AdminLoginGuard implements CanActivate, CanLoad {
|
|
9 | 9 |
|
10 | 10 |
constructor(private router: Router) {} |
11 | 11 |
|
12 |
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean { |
|
13 |
var user; |
|
14 |
var loggedIn = false; |
|
15 |
var isAdmin = false; |
|
16 |
var errorCode = LoginErrorCodes.NOT_LOGGIN; |
|
12 |
check(path: string) : boolean{ |
|
13 |
let loggedIn = false; |
|
14 |
let isAdmin = false; |
|
15 |
let errorCode = LoginErrorCodes.NOT_LOGIN; |
|
17 | 16 |
if(Session.isLoggedIn()){ |
18 | 17 |
loggedIn = true; |
19 |
if(!Session.isLoggedIn()){ |
|
20 |
loggedIn = false; |
|
21 |
errorCode = LoginErrorCodes.NOT_VALID; |
|
22 |
}else { |
|
23 |
isAdmin = Session.isPortalAdministrator(); |
|
24 |
if(!isAdmin){ |
|
25 |
errorCode = LoginErrorCodes.NOT_ADMIN; |
|
26 |
} |
|
18 |
isAdmin = Session.isPortalAdministrator(); |
|
19 |
if(!isAdmin){ |
|
20 |
errorCode = LoginErrorCodes.NOT_ADMIN; |
|
27 | 21 |
} |
28 |
}else{ |
|
29 |
errorCode =LoginErrorCodes.NOT_LOGGIN; |
|
30 | 22 |
} |
23 |
if(!loggedIn || !isAdmin) { |
|
24 |
this.router.navigate(['/user-info'], {queryParams: {"errorCode": errorCode, "redirectUrl": path}}); |
|
25 |
} |
|
26 |
return loggedIn && isAdmin; |
|
27 |
} |
|
31 | 28 |
|
32 |
if(!loggedIn){
|
|
33 |
// this.guardHelper.redirect("/user-info",errorCode,state.url);
|
|
34 |
this.router.navigate(['/user-info'], { queryParams: { "errorCode": errorCode, "redirectUrl": state.url } });
|
|
29 |
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
|
|
30 |
return this.check(state.url);
|
|
31 |
}
|
|
35 | 32 |
|
36 |
return false; |
|
37 |
}else if(!isAdmin){ |
|
38 |
// this.guardHelper.redirect("/user-info",errorCode,state.url); |
|
39 |
this.router.navigate(['/user-info'], { queryParams: { "errorCode": errorCode, "redirectUrl": state.url } }); |
|
40 |
return false; |
|
41 |
}else{ |
|
42 |
return true; |
|
43 |
} |
|
33 |
canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean { |
|
34 |
return this.check('/' + route.path); |
|
44 | 35 |
} |
45 | 36 |
} |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/claims/claim-utils/entityFormatter/projectTitleFormatter.component.ts | ||
---|---|---|
6 | 6 |
@Component({ |
7 | 7 |
selector: 'project-title', |
8 | 8 |
template: ` |
9 |
<span class="project-title"> |
|
9 |
<span *ngIf="externalPortalUrl" class="project-title"> |
|
10 |
<span ><a [href] = "externalPortalUrl + '/search/project?projectId='+project['openaireId']" >{{project['name']}} ({{project['funderName']}})</a></span> |
|
11 |
</span> |
|
12 |
<span *ngIf="!externalPortalUrl" class="project-title"> |
|
10 | 13 |
<span ><a [queryParams]="routerHelper.createQueryParam('projectId',project['openaireId'])" routerLinkActive="router-link-active" routerLink="/search/project" >{{project['name']}} ({{project['funderName']}})</a></span> |
11 | 14 |
</span> |
12 | 15 |
` |
... | ... | |
15 | 18 |
export class ProjectTitleFormatter { |
16 | 19 |
@Input() project: string[]; |
17 | 20 |
@Input() searchLink: string; |
21 |
@Input() externalPortalUrl:string = null; |
|
18 | 22 |
public url:string; |
19 | 23 |
public routerHelper:RouterHelper = new RouterHelper(); |
20 | 24 |
constructor () {} |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/claims/claim-utils/displayClaims/displayClaims.component.html | ||
---|---|---|
153 | 153 |
<tr *ngFor="let claim of claims " > |
154 | 154 |
<td *ngIf="enableDelete"><input [id]="claim.id" type="checkbox" (click)="select(claim,$event)" [ngModel]="isSelected(claim.id)"/></td> |
155 | 155 |
<td></td> |
156 |
<td><claim-entity [entity]="claim.target" [type]="claim.targetType" [(properties)]=properties> </claim-entity></td> |
|
157 |
<td><claim-entity [entity]="claim.source" [type]="claim.sourceType" [(properties)]=properties> </claim-entity></td> |
|
156 |
<td><claim-entity [entity]="claim.target" [type]="claim.targetType" [(properties)]=properties [externalPortalUrl]=externalPortalUrl> </claim-entity></td>
|
|
157 |
<td><claim-entity [entity]="claim.source" [type]="claim.sourceType" [(properties)]=properties [externalPortalUrl]=externalPortalUrl> </claim-entity></td>
|
|
158 | 158 |
<td *ngIf="showUserEmail">{{claim.userMail}}</td> |
159 | 159 |
<td>{{claim.date}}</td> |
160 | 160 |
</tr> |
... | ... | |
165 | 165 |
|
166 | 166 |
</div> |
167 | 167 |
<div class="uk-width-1-5"> |
168 |
<div class="uk-card portal-card uk-padding" *ngIf="moreClaimsURL || claimsInfoURL">
|
|
169 |
<h6 *ngIf="moreClaimsURL.indexOf('http')==-1" class="uk-h6">
|
|
170 |
<a class="el-content uk-link-text" [routerLink]="moreClaimsURL">Claim more links?</a>
|
|
168 |
<div class="uk-card portal-card uk-padding" *ngIf="externalPortalUrl || claimsInfoURL">
|
|
169 |
<h6 *ngIf="!externalPortalUrl || externalPortalUrl.indexOf('http')==-1" class="uk-h6">
|
|
170 |
<a class="el-content uk-link-text" routerLink="/participate/claim">Claim more links?</a>
|
|
171 | 171 |
</h6> |
172 |
<h6 *ngIf="moreClaimsURL.indexOf('http')!=-1" class="uk-h6">
|
|
173 |
<a class="el-content uk-link-text" [href]="moreClaimsURL" target="_blank">Claim more links?</a>
|
|
172 |
<h6 *ngIf="externalPortalUrl && externalPortalUrl.indexOf('http')!=-1" class="uk-h6">
|
|
173 |
<a class="el-content uk-link-text" [href]="externalPortalUrl+'/participate/claim'" target="_blank">Claim more links?</a>
|
|
174 | 174 |
</h6> |
175 | 175 |
<h6 *ngIf="claimsInfoURL" class="uk-h6 uk-margin-small-top"> |
176 | 176 |
<a class="el-content uk-link-text" [href]="claimsInfoURL" target="_blank">Learn more</a> |
177 | 177 |
</h6> |
178 |
<!-- <div *ngIf="moreClaimsURL.indexOf('http')==-1"><a [routerLink]="moreClaimsURL">Claim more links?</a></div> |
|
179 |
<div *ngIf="moreClaimsURL.indexOf('http')!=-1" ><a [href]="moreClaimsURL" target="_blank">Claim more links?</a></div> |
|
180 |
<div><a [href]="claimsInfoURL" target="_blank">Learn more</a></div> --> |
|
181 | 178 |
</div> |
182 | 179 |
<helper position="right" styleName=" uk-width-1-5"></helper> |
183 | 180 |
</div> |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/sharedComponents/bottom.component.html | ||
---|---|---|
6 | 6 |
<div *ngIf="showOpenaire" class="uk-margin-small uk-margin-remove-top uk-text-left@s uk-text-center"> |
7 | 7 |
<img [src]="assetsPath + 'common/Logo_Horizontal_white_small.png'" data-width="126" data-height="30" class="el-image" alt="OpenAIRE"> |
8 | 8 |
</div> |
9 |
<div *ngIf="showDnet" id="footer#5" class="uk-margin uk-text-left@s uk-text-center"> |
|
10 |
<img [src]="assetsPath + 'common/commission.jpg'" sizes="(min-width: 50px) 50px" data-width="427" data-height="285" class="el-image" alt="European Commission"> |
|
9 |
<div *ngIf="showCommision" id="footer#5" class="uk-margin uk-text-left@s uk-text-center"> |
|
10 |
<div class="uk-margin"> |
|
11 |
<img style="margin-right: 8px; float: left;" [src]="assetsPath + 'common/commission.jpg'" alt="flag black white low" width="50" height="33"> |
|
12 |
<span style="font-size: 8pt; line-height: 0.7!important;" [innerHtml] = "(grantAdvance)?grantAdvanceText:grantConenctText"></span> |
|
13 |
</div> |
|
14 |
<!--img [src]="assetsPath + 'common/commission.jpg'" sizes="(min-width: 50px) 50px" data-width="427" data-height="285" class="el-image" alt="European Commission"--> |
|
11 | 15 |
</div> |
12 |
<div *ngIf="showSocialButton" id="footer#6" class="newsletter uk-margin uk-margin-remove-bottom uk-text-left@s uk-text-center uk-panel"> |
|
16 |
<div *ngIf="showSocialButtons" id="footer#6" class="newsletter uk-margin uk-margin-remove-bottom uk-text-left@s uk-text-center uk-panel">
|
|
13 | 17 |
<h5 class="el-title uk-margin uk-h5"> |
14 | 18 |
Newsletter |
15 | 19 |
</h5> |
16 |
<a target="_blank" href="https://www.openaire.eu/newsletter/view" class="el-link">
|
|
20 |
<a target="_blank" href="https://www.openaire.eu/past-newsletters/listing" class="el-link">
|
|
17 | 21 |
<span class="el-image uk-icon"> |
18 | 22 |
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> |
19 | 23 |
<circle cx="3.12" cy="16.8" r="1.85"></circle> |
... | ... | |
23 | 27 |
</span> |
24 | 28 |
</a> |
25 | 29 |
</div> |
26 |
<div *ngIf="showSocialButton" id="footer#7" class="newsletter uk-margin-small uk-margin-remove-top uk-text-left@s uk-panel"> |
|
30 |
<div *ngIf="showSocialButtons" id="footer#7" class="newsletter uk-margin-small uk-margin-remove-top uk-text-left@s uk-panel">
|
|
27 | 31 |
|
28 | 32 |
<div class="acymailing_module" id="acymailing_module_formAcymailing60611"> |
29 | 33 |
<div class="" id="acymailing_toggle_formAcymailing60611"> |
... | ... | |
32 | 36 |
</div> |
33 | 37 |
</div> |
34 | 38 |
</div> |
35 |
<div *ngIf="showSocialButton"class="uk-margin-small uk-margin-remove-top uk-text-left@s uk-text-center">
|
|
39 |
<div *ngIf="showSocialButtons" class="uk-margin-small uk-margin-remove-top uk-text-left@s uk-text-center">
|
|
36 | 40 |
<div class="uk-child-width-auto uk-grid-small uk-flex-left@s uk-flex-center uk-grid" uk-grid=""> |
37 | 41 |
<div class="uk-first-column"> |
38 | 42 |
<a href="https://www.facebook.com/groups/openaire/" target="_blank" class="el-link uk-icon-button uk-icon"> |
... | ... | |
77 | 81 |
</div> |
78 | 82 |
</div> |
79 | 83 |
</div> |
80 |
<div *ngIf="!showMenu" class="uk-width-expand@m uk-light">
|
|
84 |
<div *ngIf="showMenuItems" class="uk-width-expand@m uk-light">
|
|
81 | 85 |
<div id="footer#7" class="uk-text-right@m uk-text-center"> |
82 | 86 |
|
83 | 87 |
<ul class="uk-subnav uk-margin-remove-bottom uk-subnav-divider" uk-margin=""> |
... | ... | |
91 | 95 |
|
92 | 96 |
</div> |
93 | 97 |
</div> |
94 |
<div *ngIf="showMenu" id="footer#9" class="uk-width-expand@s uk-visible@m">
|
|
98 |
<div *ngIf="!showMenuItems" id="footer#9" class="uk-width-expand@s uk-visible@m">
|
|
95 | 99 |
<div id="footer#10" class="uk-width-medium uk-text-left@s uk-text-center uk-panel"> |
96 | 100 |
<h3 class="el-title uk-h6">Dashboards</h3> |
97 | 101 |
<ul class="uk-nav uk-nav-default uk-nav-parent-icon uk-nav-accordion" uk-nav=""> |
... | ... | |
103 | 107 |
</ul> |
104 | 108 |
</div> |
105 | 109 |
</div> |
106 |
<div *ngIf="showMenu" id="footer#11" class="uk-width-expand@s uk-visible@m">
|
|
110 |
<div *ngIf="!showMenuItems" id="footer#11" class="uk-width-expand@s uk-visible@m">
|
|
107 | 111 |
<div id="footer#12" class="uk-width-medium uk-text-left@s uk-text-center uk-panel"> |
108 | 112 |
<h3 class="el-title uk-h6">Support</h3> |
109 | 113 |
<ul class="uk-nav uk-nav-default uk-nav-parent-icon uk-nav-accordion" uk-nav=""> |
... | ... | |
116 | 120 |
</ul> |
117 | 121 |
</div> |
118 | 122 |
</div> |
119 |
<div *ngIf="showMenu" id="footer#13" class="uk-width-expand@s uk-visible@m">
|
|
123 |
<div *ngIf="!showMenuItems" id="footer#13" class="uk-width-expand@s uk-visible@m">
|
|
120 | 124 |
<div id="footer#14" class="uk-width-medium uk-text-left@s uk-text-center uk-panel"> |
121 | 125 |
<h3 class="el-title uk-h6">Updates</h3> |
122 | 126 |
<ul class="uk-nav uk-nav-default uk-nav-parent-icon uk-nav-accordion" uk-nav=""> |
123 | 127 |
<li><a target="_blank" href="https://www.openaire.eu/news/">News</a></li> |
124 | 128 |
<li><a target="_blank" href="https://www.openaire.eu/events">Events</a></li> |
125 | 129 |
<li><a target="_blank" href="https://www.openaire.eu/blogs/magazine">Blogs</a></li> |
130 |
<li><a target="_blank" href="https://www.openaire.eu/newsletter/listing">Newsletters</a></li> |
|
126 | 131 |
<li><a target="_blank" href="https://www.openaire.eu/documents">Documents</a></li> |
127 | 132 |
</ul> |
128 | 133 |
</div> |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/sharedComponents/SEO/SEO.service.ts | ||
---|---|---|
1 | 1 |
import { Injectable, Inject } from '@angular/core'; |
2 | 2 |
import { DOCUMENT } from '@angular/common'; |
3 |
import { Optional, RendererFactory2, ViewEncapsulation } from '@angular/core'; |
|
3 | 4 |
|
4 |
// @Injectable({ |
|
5 |
// providedIn: 'root' |
|
6 |
// }) |
|
7 | 5 |
@Injectable() |
8 | 6 |
export class SEOService { |
9 |
constructor( @Inject(DOCUMENT) private doc) { |
|
7 |
constructor( @Inject(DOCUMENT) private doc, |
|
8 |
private rendererFactory: RendererFactory2, |
|
9 |
@Inject(DOCUMENT) private document) { |
|
10 | 10 |
} |
11 | 11 |
|
12 |
createLinkForCanonicalURL(addParameters:boolean=true) { |
|
13 |
var url = ""; |
|
14 |
if(this.doc ){ |
|
12 |
createLinkForCanonicalURL(url:string, addParameters:boolean=true) { |
|
13 |
if(this.doc && (typeof this.doc.getElementById === "function" || typeof this.doc.createElement === "function") ){ |
|
15 | 14 |
if(addParameters || !this.doc.URL || this.doc.URL.indexOf("?") == -1){ |
16 | 15 |
url = this.doc.URL; |
17 | 16 |
}else{ |
18 | 17 |
url = this.doc.URL.substring(0,this.doc.URL.indexOf("?")); |
19 | 18 |
} |
20 |
console.log("createLinkForCanonicalURL"); |
|
21 |
|
|
22 | 19 |
if (typeof this.doc.getElementById === "function") { |
23 | 20 |
let currentLink: HTMLLinkElement = this.doc.getElementById("relcan"); |
24 | 21 |
if(currentLink ){ |
25 | 22 |
currentLink.setAttribute('href', url); |
26 |
console.log("update canonical url:" + url); |
|
27 |
|
|
28 | 23 |
return ; |
29 | 24 |
} |
30 | 25 |
} |
... | ... | |
33 | 28 |
link.setAttribute('id', 'relcan'); |
34 | 29 |
link.setAttribute('rel', 'canonical'); |
35 | 30 |
this.doc.head.appendChild(link); |
36 |
console.log("create new canonical url:" + url); |
|
37 |
|
|
38 | 31 |
link.setAttribute('href', url); |
39 | 32 |
} |
40 | 33 |
|
41 |
} |
|
34 |
}else{ |
|
35 |
try { |
|
36 |
const renderer = this.rendererFactory.createRenderer(this.document, { |
|
37 |
id: '-1', |
|
38 |
encapsulation: ViewEncapsulation.None, |
|
39 |
styles: [], |
|
40 |
data: {} |
|
41 |
}); |
|
42 |
|
|
43 |
const link = renderer.createElement('link'); |
|
44 |
const head = this.document.head; |
|
45 |
|
|
46 |
if (head === null) { |
|
47 |
throw new Error('<head> not found within DOCUMENT.'); |
|
48 |
} |
|
49 |
renderer.setAttribute(link, "rel", "canonical"); |
|
50 |
renderer.setAttribute(link, "href", (addParameters)?url:this.doc.URL.split("?")[0]); |
|
51 |
renderer.setAttribute(link, "id", "relcan"); |
|
52 |
// [TODO]: get them to update the existing one (if it exists) ? |
|
53 |
renderer.appendChild(head, link); |
|
54 |
} catch (e) { |
|
55 |
console.error('Error within linkService : ', e); |
|
56 |
} |
|
57 |
} |
|
58 |
|
|
42 | 59 |
} |
43 | 60 |
|
44 | 61 |
} |
62 |
|
|
63 |
/* |
|
64 |
* -- LinkService -- [Temporary] |
|
65 |
* @MarkPieszak |
|
66 |
* |
|
67 |
* Similar to Meta service but made to handle <link> creation for SEO purposes |
|
68 |
* -- NOTE: Soon there will be an overall DocumentService within Angular that handles Meta/Link everything |
|
69 |
*/ |
|
70 |
// |
|
71 |
// import { Injectable, Optional, RendererFactory2, ViewEncapsulation, Inject } from '@angular/core'; |
|
72 |
// import { DOCUMENT } from '@angular/platform-browser'; |
|
73 |
// |
|
74 |
// @Injectable() |
|
75 |
// export class LinkService { |
|
76 |
// |
|
77 |
// constructor( |
|
78 |
// private rendererFactory: RendererFactory2, |
|
79 |
// @Inject(DOCUMENT) private document |
|
80 |
// ) { |
|
81 |
// } |
|
82 |
|
|
83 |
/** |
|
84 |
* Inject the State into the bottom of the <head> |
|
85 |
*/ |
|
86 |
// addTag(tag: LinkDefinition, forceCreation?: boolean) { |
|
87 |
// |
|
88 |
// try { |
|
89 |
// const renderer = this.rendererFactory.createRenderer(this.document, { |
|
90 |
// id: '-1', |
|
91 |
// encapsulation: ViewEncapsulation.None, |
|
92 |
// styles: [], |
|
93 |
// data: {} |
|
94 |
// }); |
|
95 |
// |
|
96 |
// const link = renderer.createElement('link'); |
|
97 |
// const head = this.document.head; |
|
98 |
// const selector = this._parseSelector(tag); |
|
99 |
// |
|
100 |
// if (head === null) { |
|
101 |
// throw new Error('<head> not found within DOCUMENT.'); |
|
102 |
// } |
|
103 |
// |
|
104 |
// Object.keys(tag).forEach((prop: string) => { |
|
105 |
// return renderer.setAttribute(link, prop, tag[prop]); |
|
106 |
// }); |
|
107 |
// |
|
108 |
// // [TODO]: get them to update the existing one (if it exists) ? |
|
109 |
// renderer.appendChild(head, link); |
|
110 |
// |
|
111 |
// } catch (e) { |
|
112 |
// console.error('Error within linkService : ', e); |
|
113 |
// } |
|
114 |
// } |
|
115 |
// |
|
116 |
// private _parseSelector(tag: LinkDefinition): string { |
|
117 |
// // Possibly re-work this |
|
118 |
// const attr: string = tag.rel ? 'rel' : 'hreflang'; |
|
119 |
// return `${attr}="${tag[attr]}"`; |
|
120 |
// } |
|
121 |
// } |
|
122 |
|
|
123 |
export declare type LinkDefinition = { |
|
124 |
charset?: string; |
|
125 |
crossorigin?: string; |
|
126 |
href?: string; |
|
127 |
hreflang?: string; |
|
128 |
media?: string; |
|
129 |
rel?: string; |
|
130 |
rev?: string; |
|
131 |
sizes?: string; |
|
132 |
target?: string; |
|
133 |
type?: string; |
|
134 |
} & { |
|
135 |
[prop: string]: string; |
|
136 |
}; |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/assets/library.css | ||
---|---|---|
446 | 446 |
margin-right: 10px; |
447 | 447 |
/* border-left: 8px solid #e5e5e5; */ |
448 | 448 |
margin-top: 8px; |
449 |
color: #666666 !important; |
|
449 | 450 |
|
450 | 451 |
} |
451 | 452 |
|
... | ... | |
712 | 713 |
text-decoration: underline; */ |
713 | 714 |
border-bottom: 1px solid var(--portal-main-color) !important; |
714 | 715 |
padding: 5px 0px; |
716 |
/* color: var(--portal-main-color); */ |
|
715 | 717 |
} |
716 | 718 |
|
717 | 719 |
.sideInfoTitle{ |
... | ... | |
748 | 750 |
color: var(--portal-main-contrast) !important; |
749 | 751 |
border-color:var(--portal-main-color) !important; |
750 | 752 |
border-bottom-color: var(--portal-main-color) !important; |
753 |
border-radius: 500px; |
|
754 |
line-height: 12px !important; |
|
751 | 755 |
} |
752 | 756 |
.portal-color{ |
753 | 757 |
color: var(--portal-main-color) !important; |
... | ... | |
1015 | 1019 |
.inherit-color { |
1016 | 1020 |
color: inherit; |
1017 | 1021 |
} |
1022 |
|
|
1023 |
.uk-label { |
|
1024 |
border-radius: 15px; |
|
1025 |
line-height: 15px; |
|
1026 |
} |
|
1027 |
|
|
1028 |
a:hover, .uk-link:hover , .uk-link:hover, a:hover { |
|
1029 |
color: var(--portal-main-color); |
|
1030 |
} |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/sharedComponents/feedback/feedback.component.ts | ||
---|---|---|
7 | 7 |
selector: 'feedback', |
8 | 8 |
template: ` |
9 | 9 |
<div id="feedback" class="" (click) = "initialize()"> |
10 |
<a [href]="'mailto:' + feedbackmail +'?Subject=' + subject + '&body=' + body" target="_top" type="button" class=""> |
|
10 |
<a [href]="feedbackQuestionaire ? feedbackQuestionaire : ('mailto:' + feedbackmail +'?Subject=' + subject + '&body=' + body)" |
|
11 |
[target]="feedbackQuestionaire ? '_blank' : '_top'" type="button" class=""> |
|
11 | 12 |
<img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI5LjI5OXB4IiBoZWlnaHQ9IjUwLjYyNXB4IiB2aWV3Qm94PSIwIDAgOS4yOTkgNTAuNjI1IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA5LjI5OSA1MC42MjUiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0zLjUxNiw0Ni44N3YxLjYzNWg1LjY2N3YwLjk3NEgzLjUxNnYxLjE0N2gtMC40NGwtMC4zNTItMS4xNDdIMi4zNjdDMC43ODksNDkuNDc4LDAsNDguNzg4LDAsNDcuNDA5YzAtMC4zNCwwLjA2OC0wLjczOCwwLjIwNS0xLjE5NWwwLjc3OSwwLjI1MmMtMC4xMjEsMC4zNzUtMC4xODIsMC42OTUtMC4xODIsMC45NjFjMCwwLjM2NywwLjEyMiwwLjY0LDAuMzY2LDAuODE0YzAuMjQ0LDAuMTc2LDAuNjM2LDAuMjY0LDEuMTc1LDAuMjY0SDIuNzZWNDYuODdIMy41MTZ6Ii8+PHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTkuMjk5LDQyLjk4NWMwLDAuOTQ5LTAuMjg5LDEuNjk3LTAuODY2LDIuMjQ2Yy0wLjU3OCwwLjU0OS0xLjM4MiwwLjgyNC0yLjQwOCwwLjgyNGMtMS4wMzYsMC0xLjg1Ny0wLjI1Ni0yLjQ2Ny0wLjc2NmMtMC42MS0wLjUxMS0wLjkxNC0xLjE5My0wLjkxNC0yLjA1NGMwLTAuODA1LDAuMjY1LTEuNDQsMC43OTQtMS45MDljMC41MjktMC40NywxLjIyOC0wLjcwMywyLjA5NS0wLjcwM2gwLjYxNXY0LjQyNGMwLjc1NC0wLjAyMSwxLjMyNi0wLjIxMSwxLjcxNy0wLjU3MlM4LjQ1LDQzLjYwNiw4LjQ1LDQyLjk1YzAtMC42OTEtMC4xNDUtMS4zNzUtMC40MzQtMi4wNTFoMC44NjZjMC4xNDgsMC4zNDQsMC4yNTUsMC42NjgsMC4zMTksMC45NzVDOS4yNjcsNDIuMTgxLDkuMjk5LDQyLjU1MSw5LjI5OSw0Mi45ODV6IE0zLjQ1Nyw0My4yNDljMCwwLjUxNywwLjE2OCwwLjkyNiwwLjUwNCwxLjIzMnMwLjgwMSwwLjQ4OCwxLjM5NiwwLjU0M3YtMy4zNTdjLTAuNjEzLDAtMS4wODMsMC4xMzgtMS40MSwwLjQxQzMuNjIxLDQyLjM1LDMuNDU3LDQyLjc0MSwzLjQ1Nyw0My4yNDl6Ii8+PHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTkuMjk5LDM2LjI1MmMwLDAuOTQ5LTAuMjg5LDEuNjk3LTAuODY2LDIuMjQ2Yy0wLjU3OCwwLjU0OS0xLjM4MiwwLjgyNC0yLjQwOCwwLjgyNGMtMS4wMzYsMC0xLjg1Ny0wLjI1Ni0yLjQ2Ny0wLjc2NmMtMC42MS0wLjUxLTAuOTE0LTEuMTkzLTAuOTE0LTIuMDUzYzAtMC44MDUsMC4yNjUtMS40NDEsMC43OTQtMS45MXMxLjIyOC0wLjcwMywyLjA5NS0wLjcwM2gwLjYxNXY0LjQyNGMwLjc1NC0wLjAyLDEuMzI2LTAuMjExLDEuNzE3LTAuNTcyczAuNTg2LTAuODY5LDAuNTg2LTEuNTI1YzAtMC42OTEtMC4xNDUtMS4zNzUtMC40MzQtMi4wNTFoMC44NjZjMC4xNDgsMC4zNDQsMC4yNTUsMC42NjgsMC4zMTksMC45NzZTOS4yOTksMzUuODE5LDkuMjk5LDM2LjI1MnogTTMuNDU3LDM2LjUxNmMwLDAuNTE2LDAuMTY4LDAuOTI2LDAuNTA0LDEuMjMyYzAuMzM2LDAuMzA4LDAuODAxLDAuNDg4LDEuMzk2LDAuNTQzdi0zLjM1N2MtMC42MTMsMC0xLjA4MywwLjEzNy0xLjQxLDAuNDFDMy42MjEsMzUuNjE4LDMuNDU3LDM2LjAwOCwzLjQ1NywzNi41MTZ6Ii8+PHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTguMzE5LDI3Ljg2MnYwLjA1M2MwLjY1MiwwLjQ0OSwwLjk3OSwxLjEyMSwwLjk3OSwyLjAxN2MwLDAuODQtMC4yODYsMS40OTMtMC44NiwxLjk2UzcuMDQ3LDMyLjU5LDUuOTg5LDMyLjU5Yy0xLjA1OCwwLTEuODgxLTAuMjMzLTIuNDY3LTAuNzAyYy0wLjU4Ni0wLjQ3LTAuODc5LTEuMTIxLTAuODc5LTEuOTU3YzAtMC44NzEsMC4zMTYtMS41MzksMC45NDktMi4wMDVWMjcuODVsLTAuNDYzLDAuMDQxbC0wLjQ1MSwwLjAyM0gwLjA2NHYtMC45NzRoOS4xMTd2MC43OTFMOC4zMTksMjcuODYyeiBNOC40ODMsMjkuODA3YzAtMC42NjQtMC4xOC0xLjE0Ni0wLjU0MS0xLjQ0NHMtMC45NDQtMC40NDgtMS43NS0wLjQ0OEg1Ljk4N2MtMC45MDksMC0xLjU1OSwwLjE1MS0xLjk0NywwLjQ1NWMtMC4zODgsMC4zMDMtMC41ODMsMC43ODUtMC41ODMsMS40NDljMCwwLjU3LDAuMjIyLDEuMDA4LDAuNjY1LDEuMzExUzUuMTksMzEuNTgzLDYsMzEuNTgzYzAuODE5LDAsMS40MzgtMC4xNDksMS44NTYtMC40NTFDOC4yNzQsMzAuODMxLDguNDgzLDMwLjM4OSw4LjQ4MywyOS44MDd6Ii8+PHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTIuNjU0LDIxLjg5MWMwLTAuODQ0LDAuMjg4LTEuNDk5LDAuODY0LTEuOTY2YzAuNTc2LTAuNDY3LDEuMzkyLTAuNywyLjQ0Ni0wLjdjMS4wNTUsMCwxLjg3NCwwLjIzNSwyLjQ1OCwwLjcwNmMwLjU4NCwwLjQ3MSwwLjg3NiwxLjEyNCwwLjg3NiwxLjk2YzAsMC40MTgtMC4wNzYsMC44LTAuMjMsMS4xNDZjLTAuMTU0LDAuMzQ2LTAuMzkzLDAuNjM2LTAuNzEzLDAuODd2MC4wN2wwLjgyNiwwLjIwNXYwLjY5N0gwLjA2NHYtMC45NzNoMi4yMTVjMC40OTYsMCwwLjk0MSwwLjAxNiwxLjMzNiwwLjA0N3YtMC4wNDdDMi45NzUsMjMuNDU0LDIuNjU0LDIyLjc4MiwyLjY1NCwyMS44OTF6IE0zLjQ2OSwyMi4wMzJjMCwwLjY2NCwwLjE5LDEuMTQzLDAuNTcxLDEuNDM2czEuMDIyLDAuNDM5LDEuOTI1LDAuNDM5YzAuOTAzLDAsMS41NDgtMC4xNSwxLjkzNy0wLjQ1MWMwLjM5LTAuMzAxLDAuNTg0LTAuNzgzLDAuNTg0LTEuNDQ3YzAtMC41OTgtMC4yMTktMS4wNDMtMC42NTMtMS4zMzZzLTEuMDYyLTAuNDM5LTEuODc4LTAuNDM5Yy0wLjgzNiwwLTEuNDU5LDAuMTQ2LTEuODY5LDAuNDM5UzMuNDY5LDIxLjQxOCwzLjQ2OSwyMi4wMzJ6Ii8+PHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTkuMTgzLDEzLjU3N0w4LjI2OSwxMy43N3YwLjA0N2MwLjQwMSwwLjMyLDAuNjc0LDAuNjQsMC44MTYsMC45NThzMC4yMTQsMC43MTYsMC4yMTQsMS4xOTJjMCwwLjYzNy0wLjE2NCwxLjEzNi0wLjQ5MSwxLjQ5N2MtMC4zMjgsMC4zNjEtMC43OTUsMC41NDItMS40LDAuNTQyYy0xLjI5NywwLTEuOTc3LTEuMDM3LTIuMDM5LTMuMTExbC0wLjAzNS0xLjA5SDQuOTM0Yy0wLjUwNCwwLTAuODc2LDAuMTA4LTEuMTE2LDAuMzI1Yy0wLjI0LDAuMjE3LTAuMzYsMC41NjMtMC4zNiwxLjA0YzAsMC41MzUsMC4xNjQsMS4xNDEsMC40OTIsMS44MTZsLTAuNzQ0LDAuMjk5Yy0wLjE3Mi0wLjMxNi0wLjMwNy0wLjY2My0wLjQwNC0xLjA0Yy0wLjA5Ny0wLjM3Ny0wLjE0Ni0wLjc1NS0wLjE0Ni0xLjEzNGMwLTAuNzY2LDAuMTctMS4zMzMsMC41MS0xLjcwMmMwLjM0LTAuMzY5LDAuODg1LTAuNTU0LDEuNjM1LTAuNTU0aDQuMzg0djAuNzIySDkuMTgzeiBNOC40OTYsMTUuNzc0YzAtMC42MDUtMC4xNjYtMS4wODEtMC40OTgtMS40MjdjLTAuMzMyLTAuMzQ2LTAuNzk3LTAuNTE5LTEuMzk2LTAuNTE5aC0wLjU4bDAuMDQxLDAuOTczYzAuMDI3LDAuNzczLDAuMTQ3LDEuMzMxLDAuMzYsMS42NzNjMC4yMTQsMC4zNDIsMC41NDQsMC41MTMsMC45OTMsMC41MTNjMC4zNTIsMCwwLjYxOS0wLjEwNiwwLjgwMy0wLjMxOVM4LjQ5NiwxNi4xNTcsOC40OTYsMTUuNzc0eiIvPjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik05LjI5OSw4LjI4NWMwLDAuOTMtMC4yODYsMS42NDktMC44NTgsMi4xNTljLTAuNTcxLDAuNTEtMS4zODEsMC43NjUtMi40MjgsMC43NjVjLTEuMDc1LDAtMS45MDUtMC4yNTktMi40OTEtMC43NzZTMi42NDMsOS4xNzgsMi42NDMsOC4yMjFjMC0wLjMwOSwwLjAzMy0wLjYxNywwLjEtMC45MjZDMi44MSw2Ljk4NiwyLjg4OCw2Ljc0NCwyLjk3Nyw2LjU2OGwwLjgyNiwwLjI5OUMzLjcxNyw3LjA4MiwzLjY0Niw3LjMxNiwzLjU4OSw3LjU3QzMuNTMyLDcuODI0LDMuNTA0LDguMDQ5LDMuNTA0LDguMjQ0YzAsMS4zMDUsMC44MzIsMS45NTcsMi40OTYsMS45NTdjMC43ODksMCwxLjM5Ni0wLjE1OSwxLjgxNS0wLjQ3OGMwLjQyMi0wLjMxOSwwLjYzNC0wLjc5LDAuNjM0LTEuNDE1YzAtMC41MzUtMC4xMTUtMS4wODQtMC4zNDctMS42NDZoMC44NjFDOS4xODgsNy4wOTIsOS4yOTksNy42MzMsOS4yOTksOC4yODV6Ii8+PHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTUuODk2LDQuMTc4QzUuNjU2LDQuMDEsNS4zNDQsMy43NTQsNC45NTcsMy40MUwyLjc2LDEuMzM2VjAuMTgybDIuNzM2LDIuNjAyTDkuMTgzLDB2MS4xNzhMNi4xNDYsMy40NDVsMC42MzMsMC43MzJoMi40MDJ2MC45NjFIMC4wNjR2LTAuOTZoNC44MzRjMC4yMTUsMCwwLjU0NiwwLjAxNiwwLjk5NiwwLjA0N1Y0LjE3OEg1Ljg5NnoiLz48L2c+PC9zdmc+" alt="Feedback" title="Feedback Button" height="70px"> |
12 | 13 |
</a> |
13 | 14 |
</div> |
... | ... | |
16 | 17 |
` |
17 | 18 |
}) |
18 | 19 |
export class FeedbackComponent { |
20 |
@Input()feedbackQuestionaire:string = ""; |
|
19 | 21 |
@Input()feedbackmail:string = "someone@example.com"; |
20 | 22 |
@Input()portalName:string = "Explore"; |
21 | 23 |
public subject:string; |
modules/uoa-services-library/branches/changeDeposit/ng-openaire-library/src/app/sharedComponents/bottom.component.ts | ||
---|---|---|
10 | 10 |
}) |
11 | 11 |
export class BottomComponent { |
12 | 12 |
|
13 |
@Input() showSocialButton:boolean = true; |
|
13 |
@Input() showSocialButtons:boolean = true;
|
|
14 | 14 |
@Input() showOpenaire:boolean = true; |
15 |
@Input() showMenu:boolean = true;
|
|
16 |
@Input() showDnet:boolean = true;
|
|
15 |
@Input() showMenuItems:boolean = false;
|
|
16 |
@Input() showCommision:boolean = true;
|
|
17 | 17 |
@Input() assetsPath:string ='assets/common-assets/'; |
18 | 18 |
@Input() menuItems:MenuItem []; |
19 | 19 |
|
... | ... | |
21 | 21 |
@Input() communityId; |
22 | 22 |
@Input() environment:string = "beta"; |
23 | 23 |
showPage ={}; |
24 |
@Input() grantAdvance:boolean = true; |
|
25 |
grantAdvanceText = "OpenAIRE-Advance receives funding from the European Union's Horizon 2020 Research and Innovation programme under Grant Agreement No. 777541." |
Also available in: Unified diff
[changeDeposit]: Merging trunk into branch 'changeDeposit' for revisions 54527:54749