[Trunk | Graph]:

1. app.component.ts: Update menu to include page fragments.
2. resources.component.html & resources.component.ts: Add page fragment (schema).
3. contact.component.html & contact.component.ts: Add page fragments (documentation, faq) | Add breadcrumb.
4. about.component.html & about.component.ts & about.module.ts: Add page fragments (architecture, metrics, infrastructure, team) | Add breadcrumb.


git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-graph-portal/trunk@59534 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
Konstantina Galouni 2020-10-09 09:35:22 +00:00
parent 02ecf896ba
commit 1dc0040f1f
8 changed files with 726 additions and 647 deletions

File diff suppressed because it is too large Load Diff

View File

@ -2,6 +2,7 @@ import {AfterViewChecked, Component, ElementRef, OnInit, ViewChild} from '@angul
import {faqs} from './faqs'; import {faqs} from './faqs';
import {ActivatedRoute} from '@angular/router'; import {ActivatedRoute} from '@angular/router';
import {Title} from '@angular/platform-browser'; import {Title} from '@angular/platform-browser';
import {Breadcrumb} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.component";
declare var UIkit: any; declare var UIkit: any;
@ -19,17 +20,27 @@ export class AboutComponent implements OnInit {
public enrichmentPropagationReadMore: boolean = false; public enrichmentPropagationReadMore: boolean = false;
public enrichmentMiningReadMore: boolean = false; public enrichmentMiningReadMore: boolean = false;
public breadcrumbs: Breadcrumb[] = [
{
name: 'home',
route: '/'
},
{
name: 'about'
}
];
constructor(private title: Title, constructor(private title: Title,
private route: ActivatedRoute) { private route: ActivatedRoute) {
} }
ngOnInit() { ngOnInit() {
this.title.setTitle('OpenAIRE - Research Graph | About'); this.title.setTitle('OpenAIRE - Research Graph | About');
// this.route.fragment.subscribe(fragment => { this.route.fragment.subscribe(fragment => {
// setTimeout(() => { setTimeout(() => {
// this.goTo(fragment); this.goTo(fragment);
// }, 100); }, 100);
// }); });
} }
goTo(id: string) { goTo(id: string) {

View File

@ -3,13 +3,15 @@ import {CommonModule} from "@angular/common";
import {RouterModule} from "@angular/router"; import {RouterModule} from "@angular/router";
import {AboutComponent} from "./about.component"; import {AboutComponent} from "./about.component";
import {BreadcrumbsModule} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.module";
@NgModule({ @NgModule({
imports: [ imports: [
CommonModule, CommonModule,
RouterModule.forChild([{ RouterModule.forChild([{
path: '', component: AboutComponent path: '', component: AboutComponent
}]) }]),
BreadcrumbsModule
], ],
declarations: [AboutComponent], declarations: [AboutComponent],
exports: [AboutComponent] exports: [AboutComponent]

View File

@ -38,22 +38,28 @@ export class AppComponent implements OnInit {
{ {
rootItem: new MenuItem("about", "About", "", "/about", false, [], null, {}), rootItem: new MenuItem("about", "About", "", "/about", false, [], null, {}),
items: [ items: [
// new MenuItem("architecture", "Architecture", "", "/about", false, [], null, {}, null, 'architecture'), new MenuItem("overview", "Overview", "", "/about", false, [], null, {}),
/* new MenuItem("architecture", "Architecture", "", "/about", false, [], null, {}, null, 'architecture'),
new MenuItem("faqs", "FAQs", "", "/about", false, [], null, {}, null, 'faqs') new MenuItem("metrics", "Data and Metrics", "", "/about", false, [], null, {}, null, 'metrics'),
*/ new MenuItem("infrastructure", "Infrastructure", "", "/about", false, [], null, {}, null, 'infrastructure'),
new MenuItem("team", "Team", "", "/about", false, [], null, {}, null, 'team')
] ]
}, },
{ {
rootItem: new MenuItem("resources", "Resources", "", "/resources", false, [], null, {}), rootItem: new MenuItem("resources", "Resources", "", "/resources", false, [], null, {}),
items: [ items: [
// new MenuItem("provide", "OpenAIRE Provide", "", "/resources", false, [], null, {}), new MenuItem("api", "API", "", "/resources", false, [], null, {}),
// new MenuItem("apis", "APIs and Reports", "", "/resources", false, [], null, {}, null, 'apis') new MenuItem("schema", "Metadata Schema", "", "/resources", false, [], null, {}, null, "schema"),
// new MenuItem("sources", "Sources", "", "/resources", false, [], null, {}, null, "sources"),
] ]
}, },
{ {
rootItem: new MenuItem("contact", "Support", "", "/support", false, [], null, {}), rootItem: new MenuItem("contact", "Support", "", "/support", false, [], null, {}),
items: [] items: [
new MenuItem("contact", "Contact", "", "/support", false, [], null, {}),
new MenuItem("documentation", "Documentation", "", "/support", false, [], null, {}, null, "documentation"),
new MenuItem("faq", "FAQs", "", "/support", false, [], null, {}, null, "faq"),
]
} }
]; ];
if(!isHome) { if(!isHome) {

View File

@ -1,116 +1,129 @@
<div class="uk-section uk-section-small uk-container uk-container-large contact"> <!--<div class="uk-section uk-section-small uk-container uk-container-large contact">-->
<div class="uk-container uk-align-center"> <div class="contact">
<h2 class="uk-text-center">Support</h2> <!-- <div class="uk-align-center">-->
<div class="uk-grid uk-flex uk-flex-center" uk-grid> <div class="uk-section">
<div class="uk-width-2-3"> <div class="uk-margin-large-left uk-margin-medium-bottom">
<h3 class="uk-margin-top">Do you have a question? <span class="portal-color">Contact us</span>.</h3> <breadcrumbs [breadcrumbs]="breadcrumbs"></breadcrumbs>
</div>
<div *ngIf="showLoading" class="uk-margin-large"> <div class="uk-container">
<div class="uk-animation-fade uk-margin-top uk-width-1-1" role="alert"><span <h2 class="uk-text-center">Support</h2>
class="loading-gif uk-align-center"></span></div> <div class="uk-grid uk-flex uk-flex-center" uk-grid>
</div> <div class="uk-width-2-3">
<div *ngIf="!showLoading"> <h3 class="uk-margin-top">Do you have a question? <span class="portal-color">Contact us</span>.</h3>
<contact-us [properties]="properties" [errorMessage]="errorMessage"
[right]="false"
[contactForm]="contactForm" (sendEmitter)="send($event)"></contact-us>
</div>
</div>
<div class="uk-width-1-1 uk-margin-xlarge-top"> <div *ngIf="showLoading" class="uk-margin-large">
<div class="uk-child-width-1-3@m uk-child-width-1-1@s uk-grid-large uk-grid-match uk-grid" uk-grid="" uk-height-match=".target"> <div class="uk-animation-fade uk-margin-top uk-width-1-1" role="alert"><span
<div class="uk-first-column"> class="loading-gif uk-align-center"></span></div>
<div class="uk-card uk-card-default uk-card-body link-card">
<div class="uk-card-media-top uk-flex uk-flex-middle uk-flex-center uk-margin-small-top">
<div class="target" style="min-height: 110px;"><img src="assets/graph-assets/contact/documentation.svg" style="height:80px; width:94px"></div>
</div>
<div class="uk-margin-top">
<div class="target uk-text-center">
<a class="uk-link uk-button uk-text-capitalize uk-text-small"
href="https://develop.openaire.eu" target="_blank">
Documentation
<span class="space">
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="M12.578,4.244,5.667,11.155V8.167A.833.833,0,1,0,4,8.167v5A.832.832,0,0,0,4.833,14h5a.833.833,0,0,0,0-1.667H6.845l6.911-6.911a.833.833,0,1,0-1.178-1.178h0Z"
fill="#2D72D6" id="arrow-down-left2" transform="translate(7.071 19.799) rotate(-135)">
</path>
</svg>
</span>
</a>
</div>
</div>
</div>
</div> </div>
<div *ngIf="!showLoading">
<div> <contact-us [properties]="properties" [errorMessage]="errorMessage"
<div class="uk-card uk-card-default uk-card-body link-card"> [right]="false"
<div class="uk-card-media-top uk-flex uk-flex-middle uk-flex-center uk-margin-small-top"> [contactForm]="contactForm" (sendEmitter)="send($event)"></contact-us>
<div class="target"><img src="assets/graph-assets/contact/webinars.svg" style="height:110px; width:101px"></div>
</div>
<div class="uk-margin-top">
<div class="target uk-text-center" style="">
<a class="uk-link uk-button uk-text-capitalize uk-text-small"
href="https://www.openaire.eu/item/webinar-on-the-openaire-research-graph?highlight=WyJncmFwaCIsIndlYmluYXIiLCJ3ZWJpbmFyJyJd"
target="_blank">
Webinars
<span class="space">
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="M12.578,4.244,5.667,11.155V8.167A.833.833,0,1,0,4,8.167v5A.832.832,0,0,0,4.833,14h5a.833.833,0,0,0,0-1.667H6.845l6.911-6.911a.833.833,0,1,0-1.178-1.178h0Z"
fill="#2D72D6" id="arrow-down-left2" transform="translate(7.071 19.799) rotate(-135)">
</path>
</svg>
</span>
</a>
</div>
</div>
</div>
</div> </div>
<div>
<div class="uk-card uk-card-default uk-card-body link-card">
<div class="uk-card-media-top uk-flex uk-flex-middle uk-flex-center uk-margin-small-top">
<div class="target" style="min-height: 110px;"><img src="assets/graph-assets/contact/howto.svg" style="height:100px; width:107px"></div>
</div>
<div class="uk-margin-top">
<div class="target uk-text-center" style="">
<a class="uk-link uk-button uk-text-capitalize uk-text-small"
href="https://subugoe.github.io/scholcomm_analytics/posts/oaire_graph_2020/"
target="_blank">
How to
<span class="space">
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="M12.578,4.244,5.667,11.155V8.167A.833.833,0,1,0,4,8.167v5A.832.832,0,0,0,4.833,14h5a.833.833,0,0,0,0-1.667H6.845l6.911-6.911a.833.833,0,1,0-1.178-1.178h0Z"
fill="#2D72D6" id="arrow-down-left2" transform="translate(7.071 19.799) rotate(-135)">
</path>
</svg>
</span>
</a>
<!-- <h5 class="uk-text-bold">How to</h5>-->
</div>
</div>
</div>
</div>
</div>
</div>
<div class="uk-width-5-6 uk-margin-xlarge-top uk-margin-xlarge-bottom">
<h3 class="uk-text-center uk-margin-top portal-color">FAQs</h3>
<div class="uk-container">
<ul class="uk-accordion" uk-accordion="">
<li *ngFor="let faq of faqs" class="uk-card uk-card-default uk-card-body faq-card uk-margin-small uk-padding-small">
<a class="uk-accordion-title color" href="#">
<h5 class="uk-margin-remove-bottom">{{faq.question}}</h5>
</a>
<div class="uk-accordion-content color" aria-hidden="true" hidden="">
<p>{{faq.answer}}</p>
</div>
</li>
</ul>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div id="documentation" class="uk-container uk-section">
<div class="uk-width-1-1">
<div class="uk-child-width-1-3@m uk-child-width-1-1@s uk-grid-large uk-grid-match uk-grid" uk-grid="" uk-height-match=".target">
<div class="uk-first-column">
<div class="uk-card uk-card-default uk-card-body link-card">
<div class="uk-card-media-top uk-flex uk-flex-middle uk-flex-center uk-margin-small-top">
<div class="target" style="min-height: 110px;"><img src="assets/graph-assets/contact/documentation.svg" style="height:80px; width:94px"></div>
</div>
<div class="uk-margin-top">
<div class="target uk-text-center">
<a class="uk-link uk-button uk-text-capitalize uk-text-small"
href="https://develop.openaire.eu" target="_blank">
Documentation
<span class="space">
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="M12.578,4.244,5.667,11.155V8.167A.833.833,0,1,0,4,8.167v5A.832.832,0,0,0,4.833,14h5a.833.833,0,0,0,0-1.667H6.845l6.911-6.911a.833.833,0,1,0-1.178-1.178h0Z"
fill="#2D72D6" id="arrow-down-left2" transform="translate(7.071 19.799) rotate(-135)">
</path>
</svg>
</span>
</a>
</div>
</div>
</div>
</div>
<div>
<div class="uk-card uk-card-default uk-card-body link-card">
<div class="uk-card-media-top uk-flex uk-flex-middle uk-flex-center uk-margin-small-top">
<div class="target"><img src="assets/graph-assets/contact/webinars.svg" style="height:110px; width:101px"></div>
</div>
<div class="uk-margin-top">
<div class="target uk-text-center" style="">
<a class="uk-link uk-button uk-text-capitalize uk-text-small"
href="https://www.openaire.eu/item/webinar-on-the-openaire-research-graph?highlight=WyJncmFwaCIsIndlYmluYXIiLCJ3ZWJpbmFyJyJd"
target="_blank">
Webinars
<span class="space">
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="M12.578,4.244,5.667,11.155V8.167A.833.833,0,1,0,4,8.167v5A.832.832,0,0,0,4.833,14h5a.833.833,0,0,0,0-1.667H6.845l6.911-6.911a.833.833,0,1,0-1.178-1.178h0Z"
fill="#2D72D6" id="arrow-down-left2" transform="translate(7.071 19.799) rotate(-135)">
</path>
</svg>
</span>
</a>
</div>
</div>
</div>
</div>
<div>
<div class="uk-card uk-card-default uk-card-body link-card">
<div class="uk-card-media-top uk-flex uk-flex-middle uk-flex-center uk-margin-small-top">
<div class="target" style="min-height: 110px;"><img src="assets/graph-assets/contact/howto.svg" style="height:100px; width:107px"></div>
</div>
<div class="uk-margin-top">
<div class="target uk-text-center" style="">
<a class="uk-link uk-button uk-text-capitalize uk-text-small"
href="https://subugoe.github.io/scholcomm_analytics/posts/oaire_graph_2020/"
target="_blank">
How to
<span class="space">
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="M12.578,4.244,5.667,11.155V8.167A.833.833,0,1,0,4,8.167v5A.832.832,0,0,0,4.833,14h5a.833.833,0,0,0,0-1.667H6.845l6.911-6.911a.833.833,0,1,0-1.178-1.178h0Z"
fill="#2D72D6" id="arrow-down-left2" transform="translate(7.071 19.799) rotate(-135)">
</path>
</svg>
</span>
</a>
<!-- <h5 class="uk-text-bold">How to</h5>-->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="faq" class="uk-container uk-section uk-flex uk-flex-center">
<div class="uk-width-5-6 uk-margin-xlarge-bottom">
<h3 class="uk-text-center uk-margin-top portal-color">FAQs</h3>
<div>
<ul class="uk-accordion" uk-accordion="">
<li *ngFor="let faq of faqs" class="uk-card uk-card-default uk-card-body faq-card uk-margin-small uk-padding-small">
<a class="uk-accordion-title color" href="#">
<h5 class="uk-margin-remove-bottom">{{faq.question}}</h5>
</a>
<div class="uk-accordion-content color" aria-hidden="true" hidden="">
<p>{{faq.answer}}</p>
</div>
</li>
</ul>
</div>
</div>
</div>
<!-- </div>-->
</div> </div>
<modal-alert #AlertModal (alertOutput)="goToHome()"> <modal-alert #AlertModal (alertOutput)="goToHome()">
<div class="uk-text-center"> <div class="uk-text-center">

View File

@ -1,5 +1,5 @@
import {Component, OnInit, ViewChild} from '@angular/core'; import {Component, OnInit, ViewChild} from '@angular/core';
import {Router} from '@angular/router'; import {ActivatedRoute, Router} from '@angular/router';
import {EmailService} from '../openaireLibrary/utils/email/email.service'; import {EmailService} from '../openaireLibrary/utils/email/email.service';
import {Email} from '../openaireLibrary/utils/email/email'; import {Email} from '../openaireLibrary/utils/email/email';
import {EnvProperties} from '../openaireLibrary/utils/properties/env-properties'; import {EnvProperties} from '../openaireLibrary/utils/properties/env-properties';
@ -9,6 +9,7 @@ import {HelperFunctions} from '../openaireLibrary/utils/HelperFunctions.class';
import {FormBuilder, FormGroup, Validators} from '@angular/forms'; import {FormBuilder, FormGroup, Validators} from '@angular/forms';
import {properties} from '../../environments/environment'; import {properties} from '../../environments/environment';
import {FAQ} from "../openaireLibrary/utils/entities/FAQ"; import {FAQ} from "../openaireLibrary/utils/entities/FAQ";
import {Breadcrumb} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.component";
@Component({ @Component({
selector: 'contact', selector: 'contact',
@ -26,8 +27,19 @@ export class ContactComponent implements OnInit {
public contactForm: FormGroup; public contactForm: FormGroup;
@ViewChild('AlertModal') modal; @ViewChild('AlertModal') modal;
@ViewChild('recaptcha') recaptcha; @ViewChild('recaptcha') recaptcha;
public breadcrumbs: Breadcrumb[] = [
{
name: 'home',
route: '/'
},
{
name: 'support'
}
];
constructor(private router: Router, constructor(private router: Router,
private route: ActivatedRoute,
private emailService: EmailService, private emailService: EmailService,
private title: Title, private title: Title,
private fb: FormBuilder) { private fb: FormBuilder) {
@ -36,6 +48,11 @@ export class ContactComponent implements OnInit {
ngOnInit() { ngOnInit() {
this.title.setTitle('OpenAIRE - Research Graph | Contact Us'); this.title.setTitle('OpenAIRE - Research Graph | Contact Us');
this.route.fragment.subscribe(fragment => {
setTimeout(() => {
this.goTo(fragment);
}, 100);
});
this.email = {body: '', subject: '', recipients: []}; this.email = {body: '', subject: '', recipients: []};
this.reset(); this.reset();
this.showLoading = false; this.showLoading = false;
@ -122,4 +139,13 @@ export class ContactComponent implements OnInit {
"For each field you can know if they have been collected from one of our sources, if it has been inferred (and with which algorithm and with which confidence level)" "For each field you can know if they have been collected from one of our sources, if it has been inferred (and with which algorithm and with which confidence level)"
}); });
} }
goTo(id: string) {
const yOffset = -100;
const element = document.getElementById(id);
if(element) {
const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;
window.scrollTo({top: y, behavior: 'smooth'});
}
}
} }

View File

@ -52,7 +52,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="uk-margin-large-bottom"> <div id="schema" class="uk-margin-large-bottom">
<div class="uk-section uk-container uk-container-large"> <div class="uk-section uk-container uk-container-large">
<h3 class="uk-text-center">Metadata Schema</h3> <h3 class="uk-text-center">Metadata Schema</h3>
<div class="uk-margin-large-top uk-grid uk-grid-large uk-child-width-1-2@m"> <div class="uk-margin-large-top uk-grid uk-grid-large uk-child-width-1-2@m">

View File

@ -1,6 +1,7 @@
import {Component, OnInit} from '@angular/core'; import {Component, OnInit} from '@angular/core';
import {Title} from '@angular/platform-browser'; import {Title} from '@angular/platform-browser';
import {Breadcrumb} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.component"; import {Breadcrumb} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.component";
import {ActivatedRoute} from "@angular/router";
@Component({ @Component({
selector: 'resources', selector: 'resources',
@ -19,10 +20,24 @@ export class ResourcesComponent implements OnInit {
} }
]; ];
constructor(private title: Title) { constructor(private title: Title, private route: ActivatedRoute) {
} }
ngOnInit() { ngOnInit() {
this.title.setTitle('OpenAIRE - Research Graph | Resources'); this.title.setTitle('OpenAIRE - Research Graph | Resources');
this.route.fragment.subscribe(fragment => {
setTimeout(() => {
this.goTo(fragment);
}, 100);
});
}
goTo(id: string) {
const yOffset = -100;
const element = document.getElementById(id);
if(element) {
const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;
window.scrollTo({top: y, behavior: 'smooth'});
}
} }
} }