diff --git a/monitor/methodology/methodological-approach.component.ts b/monitor/methodology/methodological-approach.component.ts new file mode 100644 index 00000000..6aa95421 --- /dev/null +++ b/monitor/methodology/methodological-approach.component.ts @@ -0,0 +1,137 @@ +import {Component, OnDestroy, OnInit} from "@angular/core"; +import {Subscription} from "rxjs"; +import {Meta, Title} from "@angular/platform-browser"; +import {ActivatedRoute, Router} from "@angular/router"; +import {Stakeholder} from "../entities/stakeholder"; +import {OpenaireEntities} from "../../utils/properties/searchFields"; +import {SEOService} from "../../sharedComponents/SEO/SEO.service"; +import {properties} from "../../../../environments/environment"; +import {Breadcrumb} from "../../utils/breadcrumbs/breadcrumbs.component"; + +@Component({ + selector: 'methodological-approach', + template: ` +
+
+ +
+
+
+
+

+ Inclusion, transparency,
quality, state of the art
technology. +

+
+
+

Our methodological approach is based on the following operational quality + criteria:

+
    +
  • Openness and transparency: Methodological assumptions are openly and + clearly presented. +
  • +
  • Coverage and accuracy: As detailed in graph.openaire.eu + multiple data sources are ingested in the OpenAIRE research graph for coverage to the fullest extent + possible, in order to provide meaningful indicators. +
  • +
  • Clarity and replicability: We describe our construction methodology in + detail, so that + it can be verified and used by the scholarly communication community to create ongoing updates to our + proposed statistics and indicators. +
  • +
  • Readiness and timeliness: The methodology is built around + well-established open databases + and already tested knowledge extraction technologies - natural language processing (NLP)/machine-learning + (ML) - using operational + workflows in OpenAIRE to warrant timely results. +
  • +
  • Trust and robustness: Our methodology also strives to be reliable, + robust, and aligned + to other assessment methods so that it can be operationalized, used and reused, in conjunction with other + assessment methods. +
  • +
+
The text above is modified from this report (DOI: 10.2777/268348). +
+
+
+
+
+
+
+
+
+
+ Completeness, inclusion, transparency and replicability +

How? It’s about open data and collaboration.

+
    +
  • + Built on the OpenAire Research Graph + Linked scholarly information from open initiatives around the world. Beyond publications. +
  • +
  • + Based on Open Science principles + Open data sources, Open APIs, well documented metrics and indicators. +
  • +
  • + Relevance for the Community + Indicators development and visualizations to meet community requirements. +
  • +
+
+
+
+ OpenAIRE Research Graph +
+
+
+
+ + ` +}) +export class MethodolocigalApproachComponent implements OnInit, OnDestroy { + public stakeholder: Stakeholder; + public tab: 'entities' | 'attributes' = 'entities'; + private subscriptions: any[] = []; + public openaireEntities = OpenaireEntities; + public breadcrumbs: Breadcrumb[] = [{name: 'home', route: '/'}, {name: 'Resources - Methodological approach', keepFormat: true}]; + + constructor(private seoService: SEOService, + private meta: Meta, + private router: Router, + private route: ActivatedRoute, + private title: Title) { + } + + ngOnInit() { + this.subscriptions.push(this.route.params.subscribe(params => { + const description = "Monitor | Methodological approach"; + const title = "Monitor | Methodological approach"; + this.metaTags(title, description); + this.breadcrumbs[0].route = '/' + (params['stakeholder']?params['stakeholder']:''); + this.breadcrumbs[0].name = (params['stakeholder']?'dashboard':'home'); + })); + } + + ngOnDestroy() { + this.subscriptions.forEach(subscription => { + if (subscription instanceof Subscription) { + subscription.unsubscribe(); + } + }); + } + + metaTags(title, description) { + const url = properties.domain + properties.baseLink + this.router.url; + this.seoService.createLinkForCanonicalURL(url, false); + this.meta.updateTag({content: url}, "property='og:url'"); + this.meta.updateTag({content: description}, "name='description'"); + this.meta.updateTag({content: description}, "property='og:description'"); + this.meta.updateTag({content: title}, "property='og:title'"); + this.title.setTitle(title); + } +} diff --git a/monitor/methodology/methodology.module.ts b/monitor/methodology/methodology.module.ts index 6b497146..21a5aa2e 100644 --- a/monitor/methodology/methodology.module.ts +++ b/monitor/methodology/methodology.module.ts @@ -2,11 +2,11 @@ import {NgModule} from "@angular/core"; import {CommonModule} from "@angular/common"; import {TerminologyComponent} from "./terminology.component"; import {SeeHowItWorksComponent} from "./see-how-it-works.component"; +import {MethodolocigalApproachComponent} from "./methodological-approach.component"; import {RouterModule} from "@angular/router"; import {PreviousRouteRecorder} from "../../utils/piwik/previousRouteRecorder.guard"; import {PageContentModule} from "../../dashboard/sharedComponents/page-content/page-content.module"; import {HowModule} from "../how/how.module"; -import {TabsModule} from "../../utils/tabs/tabs.module"; import {IconsModule} from "../../utils/icons/icons.module"; import {IconsService} from "../../utils/icons/icons.service"; import {graph} from "../../utils/icons/icons"; @@ -15,7 +15,7 @@ import {SliderTabsModule} from "../../sharedComponents/tabs/slider-tabs.module"; import {HelperModule} from "../../utils/helper/helper.module"; @NgModule({ - declarations: [TerminologyComponent, SeeHowItWorksComponent], + declarations: [TerminologyComponent, SeeHowItWorksComponent, MethodolocigalApproachComponent], imports: [CommonModule, RouterModule.forChild([ { path: '', @@ -33,8 +33,13 @@ import {HelperModule} from "../../utils/helper/helper.module"; component: SeeHowItWorksComponent, canDeactivate: [PreviousRouteRecorder] }, - ]), PageContentModule, HowModule, SliderTabsModule, IconsModule, BreadcrumbsModule, SliderTabsModule, HelperModule], - exports: [TerminologyComponent, SeeHowItWorksComponent] + { + path: 'methodological-approach', + component: MethodolocigalApproachComponent, + canDeactivate: [PreviousRouteRecorder] + } + ]), PageContentModule, HowModule, IconsModule, BreadcrumbsModule, SliderTabsModule, HelperModule], + exports: [TerminologyComponent, SeeHowItWorksComponent, MethodolocigalApproachComponent] }) export class MethodologyModule { constructor(private iconsService: IconsService) { diff --git a/sharedComponents/tabs/slider-tabs.component.ts b/sharedComponents/tabs/slider-tabs.component.ts index d53f56cf..cd69e003 100644 --- a/sharedComponents/tabs/slider-tabs.component.ts +++ b/sharedComponents/tabs/slider-tabs.component.ts @@ -19,16 +19,22 @@ declare var UIkit; selector: 'slider-tabs', template: `
+ [ngClass]="customClass">
@@ -62,11 +68,16 @@ export class SliderTabsComponent implements AfterViewInit, OnDestroy { * */ @Input() public position: 'horizontal' | 'left' | 'right' = 'horizontal'; + /** + * Tabs flex position: Left is the default. + * */ + @Input() + public flexPosition: 'center' | 'left' | 'right' = 'left'; /** - * Tabs background + * Tabs custom class * */ @Input() - public background: string; + public customClass: string; @ContentChildren(SliderTabComponent) tabs: QueryList; @ViewChild('tabsElement') tabsElement: ElementRef; /**