Merge remote-tracking branch 'origin/new-theme' into new-theme
This commit is contained in:
commit
26d849693b
|
@ -256,9 +256,14 @@ export class RoleUsersComponent implements OnInit, OnDestroy, OnChanges {
|
||||||
NotificationHandler.rise('Group has been <b> successfully created</b>');
|
NotificationHandler.rise('Group has been <b> successfully created</b>');
|
||||||
this.updateLists();
|
this.updateLists();
|
||||||
}, error => {
|
}, error => {
|
||||||
NotificationHandler.rise('An error has occurred. Please try again later', 'danger');
|
if(error.status === 409) {
|
||||||
this.loadActive = false;
|
NotificationHandler.rise('Group already exists. You can try to invite a ' + this.role + ' instead.', 'warning');
|
||||||
this.loadPending = false;
|
this.updateLists();
|
||||||
|
} else {
|
||||||
|
NotificationHandler.rise('An error has occurred. Please try again later', 'danger');
|
||||||
|
this.loadActive = false;
|
||||||
|
this.loadPending = false;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,9 @@ export class AdminLoginGuard implements CanActivate, CanActivateChild {
|
||||||
}
|
}
|
||||||
return Session.isPortalAdministrator(user) ||
|
return Session.isPortalAdministrator(user) ||
|
||||||
(data.monitorCurator && Session.isMonitorCurator(user)) ||
|
(data.monitorCurator && Session.isMonitorCurator(user)) ||
|
||||||
(data.communityCurator && Session.isCommunityCurator(user))
|
(data.communityCurator && Session.isCommunityCurator(user)) ||
|
||||||
|
(data.monitorManager && Session.isKindOfMonitorManager(user)) ||
|
||||||
|
(data.communityManager && Session.isKindOfCommunityManager(user))
|
||||||
}),tap(isAdmin => {
|
}),tap(isAdmin => {
|
||||||
if(!isAdmin) {
|
if(!isAdmin) {
|
||||||
this.router.navigate(['/user-info'], {
|
this.router.navigate(['/user-info'], {
|
||||||
|
|
|
@ -3,8 +3,9 @@ import {Subscriber} from "rxjs";
|
||||||
import {properties} from "../../../../environments/environment";
|
import {properties} from "../../../../environments/environment";
|
||||||
import {ActivatedRoute, Router} from "@angular/router";
|
import {ActivatedRoute, Router} from "@angular/router";
|
||||||
import {HelperService} from "../../utils/helper/helper.service";
|
import {HelperService} from "../../utils/helper/helper.service";
|
||||||
import {StakeholderService} from "../services/stakeholder.service";
|
import {Meta, Title} from "@angular/platform-browser";
|
||||||
import {ConfigurationService} from "../../utils/configuration/configuration.service";
|
import {SEOService} from "../../sharedComponents/SEO/SEO.service";
|
||||||
|
import {ResourcesService} from "../services/resources.service";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'indicators-page',
|
selector: 'indicators-page',
|
||||||
|
@ -12,28 +13,43 @@ import {ConfigurationService} from "../../utils/configuration/configuration.serv
|
||||||
})
|
})
|
||||||
export class IndicatorsComponent implements OnInit, OnDestroy {
|
export class IndicatorsComponent implements OnInit, OnDestroy {
|
||||||
private subscriptions: any[] = [];
|
private subscriptions: any[] = [];
|
||||||
|
public types = ResourcesService.types;
|
||||||
public properties = properties;
|
public properties = properties;
|
||||||
public pageContents;
|
public pageContents;
|
||||||
|
|
||||||
constructor(private helper: HelperService,
|
constructor(private helper: HelperService,
|
||||||
private configurationService: ConfigurationService,
|
private resourcesService: ResourcesService,
|
||||||
private router: Router,
|
private router: Router,
|
||||||
private stakeholderService: StakeholderService,
|
private meta: Meta,
|
||||||
|
private title: Title,
|
||||||
|
private seoService: SEOService,
|
||||||
private route: ActivatedRoute) {
|
private route: ActivatedRoute) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.subscriptions.push(this.route.params.subscribe(params => {
|
this.subscriptions.push(this.route.params.subscribe(params => {
|
||||||
if(params['stakeholder']) {
|
if(params['type']){
|
||||||
this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
|
let type = this.types.find(type => type.value === params['type']);
|
||||||
this.getPageContents(stakeholder.type);
|
if(type) {
|
||||||
}));
|
this.getPageContents(type.value);
|
||||||
} else if(params['type']){
|
const description = "Monitor | Indicators " + type.label;
|
||||||
this.getPageContents(params['type']);
|
const title = "Monitor | Indicators " + type.label;
|
||||||
|
this.metaTags(title, description);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
ngOnDestroy() {
|
ngOnDestroy() {
|
||||||
this.subscriptions.forEach(subscription => {
|
this.subscriptions.forEach(subscription => {
|
||||||
if (subscription instanceof Subscriber) {
|
if (subscription instanceof Subscriber) {
|
||||||
|
@ -43,8 +59,8 @@ export class IndicatorsComponent implements OnInit, OnDestroy {
|
||||||
}
|
}
|
||||||
|
|
||||||
public getPageContents(type: string) {
|
public getPageContents(type: string) {
|
||||||
this.subscriptions.push(this.configurationService.isPageEnabled('monitor', '/indicators/' + type, 'monitor').subscribe(isEnabled => {
|
this.subscriptions.push(this.resourcesService.isPagesEnabled().subscribe(status => {
|
||||||
if(isEnabled) {
|
if(status[0]) {
|
||||||
this.subscriptions.push(this.helper.getPageHelpContents(this.properties, 'monitor', '/indicators/' + type, 'monitor').subscribe(contents => {
|
this.subscriptions.push(this.helper.getPageHelpContents(this.properties, 'monitor', '/indicators/' + type, 'monitor').subscribe(contents => {
|
||||||
this.pageContents = contents;
|
this.pageContents = contents;
|
||||||
}));
|
}));
|
||||||
|
|
|
@ -0,0 +1,465 @@
|
||||||
|
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 {StakeholderService} from "../services/stakeholder.service";
|
||||||
|
import {SEOService} from "../../sharedComponents/SEO/SEO.service";
|
||||||
|
import {properties} from "../../../../environments/environment";
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'methodology',
|
||||||
|
template: `
|
||||||
|
<div class="uk-section">
|
||||||
|
<div class="uk-container uk-container-large">
|
||||||
|
<h1>Terminology and <br> construction<span class="uk-text-primary">.</span></h1>
|
||||||
|
</div>
|
||||||
|
<div class="uk-section uk-container uk-container-large">
|
||||||
|
<ul class="uk-tab" uk-tab>
|
||||||
|
<li>
|
||||||
|
<a>Entities</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a>Inherited and Inferred Attributes</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a>Constructed Attributes</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<ul class="uk-switcher">
|
||||||
|
<li>
|
||||||
|
<dl class="uk-description-list uk-description-list-divider">
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1 uk-text-primary">{{openaireEntities.RESULTS}}</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
<div>There are currently four different types of {{openaireEntities.RESULTS | lowercase}} in the OpenAIRE Research <br> Graph:</div>
|
||||||
|
<ul class="uk-list uk-list-bullet uk-list-primary">
|
||||||
|
<li>{{openaireEntities.PUBLICATIONS}}</li>
|
||||||
|
<li>{{openaireEntities.DATASETS}}</li>
|
||||||
|
<li>{{openaireEntities.SOFTWARE}}</li>
|
||||||
|
<li>{{openaireEntities.OTHER}}.</li>
|
||||||
|
</ul>
|
||||||
|
<div class="uk-margin-small-top">
|
||||||
|
OpenAIRE deduplicates (merges) different records of {{openaireEntities.RESULTS | lowercase}} and keeps the <br> metadata of all instances.
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">{{openaireEntities.PUBLICATION}}</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
{{openaireEntities.RESULTS}} intended for human reading (published articles, pre-prints, conference <br> papers, presentations, technical reports, etc.)
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">{{openaireEntities.DATASET}}</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
<!-- <div>{{openaireEntities.DATASET}}</div>-->
|
||||||
|
<div>Granularity is not defined by OpenAIRE, it reflects the granularity supported by
|
||||||
|
the sources <br> from which the description of the {{openaireEntities.DATASET | lowercase}} has been collected.</div>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">{{openaireEntities.SOFTWARE_SINGULAR}}</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
Source code or software package developed and/or used in a research context
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">{{openaireEntities.OTHER_SINGULAR}}</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
Anything that does not fall in the previous categories (e.g. workflow, methods, protocols)
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
</dl>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="uk-text-center uk-padding">
|
||||||
|
The attributes of entities listed below are either inherited via entries in the harvested metadata records or automatically generated by our inference (text and data mining) algorithms.
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<dl class="uk-description-list uk-description-list-divider">
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">{{openaireEntities.ORGANIZATION}}</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
<p><span class="uk-text-bold">For {{openaireEntities.RESULTS | lowercase}},</span> this refers to the affiliated organizations of its authors</p>
|
||||||
|
<p><span class="uk-text-bold">For {{openaireEntities.PROJECTS | lowercase}}:</span> the {{openaireEntities.ORGANIZATIONS | lowercase}} participating in the {{openaireEntities.PROJECT | lowercase}}
|
||||||
|
(i.e. beneficiaries of the grant)</p>
|
||||||
|
<p>The OpenAIRE research graph is in the process of improving the {{openaireEntities.ORGANIZATION | lowercase}} database (disambiguation) with the newly developed <a href="https://www.openaire.eu/blogs/openorgs-bridging-registries-of-research-organisations" target="_blank">OpenOrgs</a> tool.</p>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">Country</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
<p>The country of the {{openaireEntities.ORGANIZATION | lowercase}}. </p>
|
||||||
|
<p>
|
||||||
|
<span class="uk-text-bold">Country code mapping: </span>
|
||||||
|
<a href="https://api.openaire.eu/vocabularies/dnet:countries" target="_blank">
|
||||||
|
https://api.openaire.eu/vocabularies/dnet:countries</a>
|
||||||
|
</p>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">Funder</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
<p>Funders that have joined OpenAIRE, i.e. their {{openaireEntities.PROJECT | lowercase}} data have gone through a validation process.</p>
|
||||||
|
<p>You can visit <a class="https://explore.openaire.eu/search/find" target="_blank">https://explore.openaire.eu/search/find</a> if you would like to explore the {{openaireEntities.RESULTS | lowercase}} and {{openaireEntities.PROJECTS | lowercase}} of all funders in OpenAIRE (the list of funders can be seen under the "Funder" Filter shown on the left side of the page).</p>
|
||||||
|
<p><span class="uk-text-bold">To join: </span><a href="https://www.openaire.eu/funders-how-to-join-guide" target="_blank">https://www.openaire.eu/funders-how-to-join-guide</a></p>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">Type</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
<p>The sub-type of a {{openaireEntities.RESULT | lowercase}} (e.g., a {{openaireEntities.PUBLICATION | lowercase}} can be a pre-print, conference proceeding,
|
||||||
|
article,
|
||||||
|
etc.)</p>
|
||||||
|
<p><span class="uk-text-bold">Resource type mapping: </span>
|
||||||
|
<a href="https://api.openaire.eu/vocabularies/dnet:result_typologies" target="_blank">https://api.openaire.eu/vocabularies/dnet:result_typologies</a>
|
||||||
|
(click on the code to see the specific types for each result type)
|
||||||
|
</p>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">Access mode or access rights</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
<p>The best available (across all instances) access rights of a {{openaireEntities.RESULT | lowercase}}</p>
|
||||||
|
<p>Types: open, restricted, closed, embargo (= closed for a specific period of time, then open)</p>
|
||||||
|
<p><span class="uk-text-bold">Note:</span> definition of <span class="uk-text-bold">restricted</span>
|
||||||
|
may vary by data source, it may refer to access rights being given to registered users, potentially behind a paywall.</p>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">CC license</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
<p>A Creative Commons copyright license <a href="(https://creativecommons.org/)" target="_blank">(https://creativecommons.org/)</a></p>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">PID (persistent identifier)</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
<p>A long-lasting reference to a resource</p>
|
||||||
|
<p><span class="uk-text-bold">Types: </span> <a
|
||||||
|
href="http://api.openaire.eu/vocabularies/dnet:pid_types" target="_blank">http://api.openaire.eu/vocabularies/dnet:pid_types</a>
|
||||||
|
</p>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">Context</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
Related {{openaireEntities.COMMUNITY | lowercase}}, initiative or infrastructure.
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">Journal</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
The scientific journal an article is published in.
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">Publisher</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
The publisher of the venue (journal, book, etc.) of a {{openaireEntities.RESULT | lowercase}}.
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1 uk-text-primary">{{openaireEntities.DATASOURCES}}</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
<p>The different data sources ingested in the OpenAIRE Research Graph.</p>
|
||||||
|
<div class="uk-text-bold">Data Source Types:</div>
|
||||||
|
<ul class="uk-list uk-list-disc">
|
||||||
|
<li>Repositories</li>
|
||||||
|
<li>Open Access Publishers & Journals</li>
|
||||||
|
<li>Aggregators</li>
|
||||||
|
<li>Entity Registries</li>
|
||||||
|
<li>Journal Aggregators</li>
|
||||||
|
<li>CRIS (Current Research Information System)</li>
|
||||||
|
</ul>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">Repositories</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
Information systems where scientists upload the bibliographic metadata and payloads of their
|
||||||
|
{{openaireEntities.RESULTS | lowercase}} (e.g. PDFs of their scientific articles, CSVs of their data, archive with their
|
||||||
|
software), due to obligations from their {{openaireEntities.ORGANIZATIONS | lowercase}}, their funders, or due to community practices
|
||||||
|
(e.g. ArXiv, Europe PMC, Zenodo).
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">Open Access Publishers & Journals</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
Information systems of open access publishers or relative journals, which offer bibliographic
|
||||||
|
metadata and PDFs of their published articles.
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">Aggregators</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
Information systems that collect descriptive metadata about {{openaireEntities.RESULTS | lowercase}} from multiple sources
|
||||||
|
in order to enable cross-data source discovery of given {{openaireEntities.RESULTS | lowercase}} (e,g, DataCite,
|
||||||
|
BASE, DOAJ).
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">Entity Registries</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
Information systems created with the intent of maintaining authoritative registries of given
|
||||||
|
entities in the scholarly communication, such as OpenDOAR for the institutional repositories, re3data
|
||||||
|
for the data repositories, CORDA and other funder databases for {{openaireEntities.PROJECTS | lowercase}} and funding information.
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-5@m uk-width-1-1">CRIS (Current Research Information System)</dt>
|
||||||
|
<dd class="uk-width-expand">
|
||||||
|
Information systems adopted by research and academic {{openaireEntities.ORGANIZATIONS | lowercase}} to keep track of their research
|
||||||
|
administration records and relative results; examples of CRIS content are articles or {{openaireEntities.DATASETS | lowercase}} funded
|
||||||
|
by {{openaireEntities.PROJECTS | lowercase}}, their principal investigators, facilities acquired thanks to funding, etc.
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
</dl>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="uk-text-center uk-padding">
|
||||||
|
The attributes of entities under this tab are constructed following the methodology described below.
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<dl class="uk-description-list uk-description-list-divider">
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-3@m uk-width-1-1">Attribute</dt>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1 uk-text-bold">Definition</dd>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1 uk-text-bold">Construction</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-padding-small uk-text-bold uk-text-primary">
|
||||||
|
Journal Business Models
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-3@m uk-width-1-1">Fully Open Access (OA)</dt>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>A journal that publishes only in open access.</p>
|
||||||
|
</dd>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>We construct the list of fully OA journals using Unpaywall data. </p>
|
||||||
|
<p>In brief, a journal is fully OA if </p>
|
||||||
|
<ol>
|
||||||
|
<li>It is in the Directory of Open Access Journals (DOAJ) </li>
|
||||||
|
<li>It has a known (curated list) fully OA Publisher. </li>
|
||||||
|
<li>It only publishes OA articles. </li>
|
||||||
|
</ol>
|
||||||
|
<p><a href="https://support.unpaywall.org/support/solutions/articles/44001792752-how-do-we-decide-if-a-given-journal-is-fully-oa-" target="_blank">More information</a></p>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-3@m uk-width-1-1">Subscription</dt>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>A journal that charges for access to its articles.</p>
|
||||||
|
</dd>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>Journals without any open access articles.</p>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-3@m uk-width-1-1">Hybrid</dt>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>A subscription journal where some of its articles are open access.</p>
|
||||||
|
</dd>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>Journals with open access articles that are not fully OA journals are hybrid.</p>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-3@m uk-width-1-1">Transformative</dt>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>"A Transformative Journal is a subscription/hybrid journal that is actively committed to transitioning to a fully Open Access journal.</p>
|
||||||
|
<p>In addition, a Transformative Journal must:</p>
|
||||||
|
<ul>
|
||||||
|
<li>gradually increase the share of Open Access content; and</li>
|
||||||
|
<li>offset subscription income from payments for publishing services (to avoid double payments)."</li>
|
||||||
|
</ul>
|
||||||
|
<p>Source:</p>
|
||||||
|
<p><a href="https://www.coalition-s.org/transformative-journals-faq/" target="_blank">https://www.coalition-s.org/transformative-journals-faq/</a></p>
|
||||||
|
</dd>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>Transformative Journals are identified by ISSN matching with the publicly available Transformative Journals data (<a href="https://journalcheckertool.org/transformative-journals/" target="_blank">https://journalcheckertool.org/transformative-journals/</a>)</p>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-padding-small uk-text-bold uk-text-primary">
|
||||||
|
Journal APC Business Models
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-3@m uk-width-1-1">Diamond OA</dt>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>A fully OA journal that does not charge article processing charges (APCs).</p>
|
||||||
|
</dd>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>APC information is obtained from DOAJ using DOAJ’s exportable version of the journal metadata (<a href="https://doaj.org/docs/public-data-dump/" target="_blank">https://doaj.org/docs/public-data-dump/</a>). We used it to determine whether a particular fully OA journal charges APCs. </p>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-padding-small uk-text-bold uk-text-primary">
|
||||||
|
Routes to Open Access (OA)
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-3@m uk-width-1-1">Green OA</dt>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>An open access scientific publication deposited in a repository</p>
|
||||||
|
</dd>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>As in definition</p>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-3@m uk-width-1-1">Gold OA</dt>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>A scientific publication published in a fully OA journal.</p>
|
||||||
|
</dd>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>Fully OA journals are defined above.</p>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-3@m uk-width-1-1">Hybrid OA</dt>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>An open access scientific publication published in a hybrid journal with an open license.</p>
|
||||||
|
</dd>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>Hybrid journals are defined above.</p>
|
||||||
|
<p>At this point we consider only CC licenses “open”, we are currently working on cleaning non-CC licenses as well to identify other open ones.</p>
|
||||||
|
<p>In principle, this means that we may be underestimating the number of hybrid OA articles and overestimating the number of bronze.</p>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-3@m uk-width-1-1">Bronze OA</dt>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>An open access scientific publication published in a hybrid journal without an open license.</p>
|
||||||
|
</dd>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-padding-small uk-text-bold uk-text-primary">
|
||||||
|
Miscellaneous
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="uk-grid uk-padding-small" uk-grid>
|
||||||
|
<dt class="uk-width-1-3@m uk-width-1-1">Downloads</dt>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>The number of downloads of a publication’s full text in a specific time frame, from a given set of data sources.</p>
|
||||||
|
</dd>
|
||||||
|
<dd class="uk-width-1-3@m uk-width-1-1">
|
||||||
|
<p>Data for downloads is taken from OpenAIRE’s Usage Counts service that harvests it from a set of repositories. The time range of available downloads varies for each repository.</p>
|
||||||
|
<p>
|
||||||
|
<a href="https://www.openaire.eu/guides-usage-counts" target="_blank">More information</a>
|
||||||
|
</p>
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
</dl>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="uk-margin-medium-top">
|
||||||
|
<icon name="graph" customClass="text-graph"></icon>
|
||||||
|
<span class="uk-margin-small-left uk-text-meta">More information for </span>
|
||||||
|
<a href="https://graph.openaire.eu" class="text-graph">OpenAIRE Research Graph</a>
|
||||||
|
<span class="uk-text-meta">.</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="how" class="uk-container uk-container-large uk-section uk-section-small uk-margin-large-top">
|
||||||
|
<h2 class="uk-h1">
|
||||||
|
Inclusion, transparency, <br> quality, state of the art <br> technology<span class="uk-text-primary">.</span>
|
||||||
|
</h2>
|
||||||
|
<div class="uk-margin-large-top uk-card uk-card-default uk-card-body">
|
||||||
|
<p class="uk-margin-top">Our methodological approach is based on the following operational quality criteria:</p>
|
||||||
|
<ul>
|
||||||
|
<li><span class="uk-text-bold">Openness and transparency:</span> Methodological assumptions are openly and clearly presented.</li>
|
||||||
|
<li><span class="uk-text-bold">Coverage and accuracy:</span> As detailed in <a href="https://graph.openaire.eu/" target="_blank">graph.openaire.eu</a>
|
||||||
|
multiple data sources are ingested in the OpenAIRE research graph for coverage to the fullest extent possible, in order to provide meaningful indicators.</li>
|
||||||
|
<li><span class="uk-text-bold">Clarity and replicability:</span> 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.</li>
|
||||||
|
<li><span class="uk-text-bold">Readiness and timeliness:</span> 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.</li>
|
||||||
|
<li><span class="uk-text-bold">Trust and robustness:</span> 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.</li>
|
||||||
|
</ul>
|
||||||
|
<div class="uk-text-small uk-text-italic uk-text-right">The text above is modified from <a href="https://op.europa.eu/en/publication-detail/-/publication/56cc104f-0ebb-11ec-b771-01aa75ed71a1"
|
||||||
|
target="_blank">this report</a> (DOI: 10.2777/268348).</div>
|
||||||
|
</div>
|
||||||
|
<div class="uk-margin-large-top uk-padding-small">
|
||||||
|
<h3 class="uk-h4">Step-by-step</h3>
|
||||||
|
<how></how>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`
|
||||||
|
})
|
||||||
|
export class MethodologyComponent implements OnInit, OnDestroy {
|
||||||
|
public stakeholder: Stakeholder;
|
||||||
|
public tab: 'entities' | 'attributes' = 'entities';
|
||||||
|
private subscriptions: any[] = [];
|
||||||
|
public openaireEntities = OpenaireEntities;
|
||||||
|
|
||||||
|
constructor(private stakeholderService: StakeholderService,
|
||||||
|
private seoService: SEOService,
|
||||||
|
private _meta: Meta,
|
||||||
|
private _router: Router,
|
||||||
|
private route: ActivatedRoute,
|
||||||
|
private _title: Title) {
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
|
||||||
|
this.stakeholder = stakeholder;
|
||||||
|
if (this.stakeholder) {
|
||||||
|
/* Metadata */
|
||||||
|
const url = properties.domain + properties.baseLink + this._router.url;
|
||||||
|
this.seoService.createLinkForCanonicalURL(url, false);
|
||||||
|
this._meta.updateTag({content: url}, "property='og:url'");
|
||||||
|
const description = "Methodology | " + this.stakeholder.name;
|
||||||
|
const title = "Methodology | " + this.stakeholder.name;
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnDestroy() {
|
||||||
|
this.subscriptions.forEach(subscription => {
|
||||||
|
if (subscription instanceof Subscription) {
|
||||||
|
subscription.unsubscribe();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
import {NgModule} from "@angular/core";
|
||||||
|
import {CommonModule} from "@angular/common";
|
||||||
|
import {MethodologyComponent} from "./methodology.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 "../../monitor/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";
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
declarations: [MethodologyComponent],
|
||||||
|
imports: [CommonModule, RouterModule.forChild([
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
component: MethodologyComponent,
|
||||||
|
canDeactivate: [PreviousRouteRecorder]
|
||||||
|
},
|
||||||
|
]), PageContentModule, HowModule, TabsModule, IconsModule],
|
||||||
|
exports: [MethodologyComponent]
|
||||||
|
})
|
||||||
|
export class MethodologyModule {
|
||||||
|
constructor(private iconsService: IconsService) {
|
||||||
|
this.iconsService.registerIcons([graph]);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,117 @@
|
||||||
|
import {Injectable} from "@angular/core";
|
||||||
|
import {MenuItem, RootMenuItem} from "../../sharedComponents/menu";
|
||||||
|
import {Option} from "../../sharedComponents/input/input.component";
|
||||||
|
import {StakeholderEntities} from "../entities/stakeholder";
|
||||||
|
import {from, Subscription} from "rxjs";
|
||||||
|
import {HttpClient} from "@angular/common/http";
|
||||||
|
import {properties} from "../../../../environments/environment";
|
||||||
|
import {Page} from "../../utils/entities/adminTool/page";
|
||||||
|
import {map} from "rxjs/operators";
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export class ResourcesService {
|
||||||
|
|
||||||
|
private subscription: Subscription;
|
||||||
|
private routes = ResourcesService.types.map(type => '/indicators/' + type.value);
|
||||||
|
|
||||||
|
public static readonly types: Option[] = [
|
||||||
|
{value: 'funder', label: StakeholderEntities.FUNDERS},
|
||||||
|
{value: 'ri', label: StakeholderEntities.RIS},
|
||||||
|
{value: 'project', label: StakeholderEntities.PROJECTS},
|
||||||
|
{value: 'organization', label: StakeholderEntities.ORGANIZATIONS}
|
||||||
|
];
|
||||||
|
|
||||||
|
constructor(private http: HttpClient) {
|
||||||
|
}
|
||||||
|
|
||||||
|
private async getResourcesItemsAsync(prefix = '', portal: string = null): Promise<MenuItem[]> {
|
||||||
|
let items = [];
|
||||||
|
let methodology = ResourcesService.setLink(new MenuItem("methodology", "Methodology", "", "", false, [],
|
||||||
|
null, {}, null, null, null, null, '_self'),
|
||||||
|
prefix + "/methodology", portal);
|
||||||
|
methodology.items = [ResourcesService.setLink(new MenuItem("methodology", "Terminology and construction",
|
||||||
|
"", "", false, [], null, {}, null, null, null, null, '_self'),
|
||||||
|
prefix + "/methodology", portal),
|
||||||
|
ResourcesService.setLink(new MenuItem("methodology", "See how it works",
|
||||||
|
"", "", false, [], null, {}, null, "how", null, null, '_self'),
|
||||||
|
prefix + "/methodology", portal)];
|
||||||
|
items.push(methodology);
|
||||||
|
let indicators = new MenuItem("indicators-page", "Indicators",
|
||||||
|
"", "", false, [], null, {}, null, null, null, null, '_self');
|
||||||
|
let promise = new Promise(resolve => {
|
||||||
|
this.isPagesEnabled().subscribe(status => {
|
||||||
|
ResourcesService.types.forEach((type, index) => {
|
||||||
|
if(status[index]) {
|
||||||
|
indicators.items.push(ResourcesService.setLink(
|
||||||
|
new MenuItem("indicators-" + type.value, type.label,
|
||||||
|
"", "", false, [], null, {}, null, null, null, null, '_self'),
|
||||||
|
prefix + "/indicators/" + type.value, portal)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
resolve();
|
||||||
|
}, error => {
|
||||||
|
console.error(error);
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
})
|
||||||
|
await promise;
|
||||||
|
if(indicators.items.length > 0) {
|
||||||
|
indicators.url = indicators.items[0].url;
|
||||||
|
indicators.route = indicators.items[0].route;
|
||||||
|
items.push(indicators);
|
||||||
|
}
|
||||||
|
return items;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated
|
||||||
|
* */
|
||||||
|
setResourcesDeprecated(items: RootMenuItem[], prefix = '', portal: string = null) {
|
||||||
|
if(this.subscription) {
|
||||||
|
this.subscription.unsubscribe();
|
||||||
|
}
|
||||||
|
let resources = new MenuItem('resources', 'Resources', "", "", false, [], null, {});
|
||||||
|
let index = items.push({rootItem: resources, items: []}) - 1;
|
||||||
|
this.subscription = from(this.getResourcesItemsAsync(prefix, portal)).subscribe(resourcesItems => {
|
||||||
|
items[index].items = resourcesItems;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
setResources(items: MenuItem[], prefix = '', portal: string = null) {
|
||||||
|
if(this.subscription) {
|
||||||
|
this.subscription.unsubscribe();
|
||||||
|
}
|
||||||
|
let resources = new MenuItem('resources', 'Resources', "", "", false, [], null, {});
|
||||||
|
let index = items.push(resources) - 1;
|
||||||
|
this.subscription = from(this.getResourcesItemsAsync(prefix, portal)).subscribe(resourcesItems => {
|
||||||
|
items[index].items = resourcesItems;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public isPagesEnabled() {
|
||||||
|
let url = properties.adminToolsAPIURL + "/monitor/monitor/pages";
|
||||||
|
return this.http.get<Page[]>((properties.useLongCache) ? (properties.cacheUrl + encodeURIComponent(url)) : url)
|
||||||
|
.pipe(map(pages => {
|
||||||
|
let result = this.routes.map(() => false);
|
||||||
|
pages.forEach(page => {
|
||||||
|
let index = this.routes.findIndex(route => route === page.route && page.isEnabled);
|
||||||
|
if(index !== -1) {
|
||||||
|
result[index] = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return result;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static setLink(item: MenuItem, route: string, portal: string = null) {
|
||||||
|
if(portal) {
|
||||||
|
item.url = portal + route + (item.fragment?'#' + item.fragment:'');
|
||||||
|
} else {
|
||||||
|
item.route = route;
|
||||||
|
}
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
}
|
|
@ -15,7 +15,7 @@ svg {
|
||||||
|
|
||||||
&.outlined {
|
&.outlined {
|
||||||
circle {
|
circle {
|
||||||
ill: white;
|
fill: white;
|
||||||
stroke: currentColor;
|
stroke: currentColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,7 @@ export class EntitiesSelectionComponent {
|
||||||
}
|
}
|
||||||
if(showPage[this.simpleView ? this.properties.searchLinkToResults : this.properties.searchLinkToAdvancedResults]
|
if(showPage[this.simpleView ? this.properties.searchLinkToResults : this.properties.searchLinkToAdvancedResults]
|
||||||
&& (showEntity["publication"] || showEntity["dataset"] || showEntity["software"] || showEntity["orp"])) {
|
&& (showEntity["publication"] || showEntity["dataset"] || showEntity["software"] || showEntity["orp"])) {
|
||||||
this.entities.push({label: OpenaireEntities.RESULTS, value: 'result'});
|
this.entities.push({label: OpenaireEntities.RESULTS, value: 'result', tooltip: OpenaireEntities.PUBLICATIONS+', '+OpenaireEntities.DATASETS+', '+OpenaireEntities.SOFTWARE+', '+OpenaireEntities.OTHER});
|
||||||
}
|
}
|
||||||
if(showPage[this.simpleView ? this.properties.searchLinkToProjects : this.properties.searchLinkToAdvancedProjects] && showEntity["project"]) {
|
if(showPage[this.simpleView ? this.properties.searchLinkToProjects : this.properties.searchLinkToAdvancedProjects] && showEntity["project"]) {
|
||||||
this.entities.push({label: OpenaireEntities.PROJECTS, value: 'project'});
|
this.entities.push({label: OpenaireEntities.PROJECTS, value: 'project'});
|
||||||
|
|
|
@ -27,6 +27,7 @@ export interface Option {
|
||||||
iconClass?: string,
|
iconClass?: string,
|
||||||
value: any,
|
value: any,
|
||||||
label: string,
|
label: string,
|
||||||
|
tooltip?: string,
|
||||||
disabled?: boolean
|
disabled?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,7 +144,7 @@ declare var UIkit;
|
||||||
<li *ngFor="let option of filteredOptions; let i=index" [class.uk-active]="(formControl.value === option.value) || selectedIndex === i">
|
<li *ngFor="let option of filteredOptions; let i=index" [class.uk-active]="(formControl.value === option.value) || selectedIndex === i">
|
||||||
<a (click)="selectOption(option, $event)"
|
<a (click)="selectOption(option, $event)"
|
||||||
[class]="option.disabled ? 'uk-disabled uk-text-muted' : ''">
|
[class]="option.disabled ? 'uk-disabled uk-text-muted' : ''">
|
||||||
<span [attr.uk-tooltip]="(tooltip)?('title: ' + option.label + '; delay: 500; pos:bottom-left'):null">{{option.label}}</span>
|
<span [attr.uk-tooltip]="(tooltip)?('title: ' + (option.tooltip ? option.tooltip : option.label) + '; delay: 500; pos:bottom-left'):null">{{option.label}}</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -64,13 +64,13 @@
|
||||||
target="{{submenu.target}}">{{submenu.title}}</a>
|
target="{{submenu.target}}">{{submenu.title}}</a>
|
||||||
<ul *ngIf="submenu.items && submenu.items.length > 0" class="uk-nav-sub">
|
<ul *ngIf="submenu.items && submenu.items.length > 0" class="uk-nav-sub">
|
||||||
<ng-container *ngFor="let subsubmenu of submenu.items">
|
<ng-container *ngFor="let subsubmenu of submenu.items">
|
||||||
<li>
|
<li [class.uk-active]="isTheActiveMenu(subsubmenu)">
|
||||||
<a *ngIf="subsubmenu.route.length > 0"
|
<a *ngIf="subsubmenu.route.length > 0"
|
||||||
routerLink="{{subsubmenu.route}}" [queryParams]="subsubmenu.params"
|
routerLink="{{subsubmenu.route}}" [queryParams]="subsubmenu.params"
|
||||||
[fragment]="subsubmenu.fragment" (click)="closeCanvas(canvas)">{{subsubmenu.title}}</a>
|
[fragment]="subsubmenu.fragment" (click)="closeCanvas(canvas)">{{subsubmenu.title}}</a>
|
||||||
<a *ngIf="subsubmenu.route.length == 0 && subsubmenu.url.length > 0"
|
<a *ngIf="subsubmenu.route.length == 0 && subsubmenu.url.length > 0"
|
||||||
href="{{subsubmenu.url}}" (click)="closeCanvas(canvas)" class="custom-external"
|
href="{{subsubmenu.url}}" (click)="closeCanvas(canvas)" [class.custom-external]="subsubmenu.target != '_self'"
|
||||||
target="_blank">{{subsubmenu.title}}</a>
|
target="{{subsubmenu.target}}">{{subsubmenu.title}}</a>
|
||||||
</li>
|
</li>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -160,12 +160,12 @@
|
||||||
target="{{submenu.target}}">{{submenu.title}}</a>
|
target="{{submenu.target}}">{{submenu.title}}</a>
|
||||||
<ul *ngIf="submenu.items && submenu.items.length > 0" class="uk-nav-sub">
|
<ul *ngIf="submenu.items && submenu.items.length > 0" class="uk-nav-sub">
|
||||||
<ng-container *ngFor="let subsubmenu of submenu.items">
|
<ng-container *ngFor="let subsubmenu of submenu.items">
|
||||||
<li>
|
<li [class.uk-active]="isTheActiveMenu(subsubmenu)">
|
||||||
<a *ngIf="subsubmenu.route.length > 0"
|
<a *ngIf="subsubmenu.route.length > 0"
|
||||||
routerLink="{{subsubmenu.route}}" [queryParams]="subsubmenu.params"
|
routerLink="{{subsubmenu.route}}" [queryParams]="subsubmenu.params"
|
||||||
[fragment]="subsubmenu.fragment">{{subsubmenu.title}}</a>
|
[fragment]="subsubmenu.fragment">{{subsubmenu.title}}</a>
|
||||||
<a *ngIf="subsubmenu.route.length == 0 && subsubmenu.url.length > 0"
|
<a *ngIf="subsubmenu.route.length == 0 && subsubmenu.url.length > 0"
|
||||||
href="{{subsubmenu.url}}" class="custom-external" target="_blank">{{subsubmenu.title}}</a>
|
href="{{subsubmenu.url}}" [class.custom-external]="subsubmenu.target != '_self'" target="{{subsubmenu.target}}">{{subsubmenu.title}}</a>
|
||||||
</li>
|
</li>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -532,12 +532,12 @@
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
<a href="#" class="uk-icon uk-slidenav-previous uk-slidenav">
|
<button href="#" class="uk-icon uk-slidenav-previous uk-slidenav">
|
||||||
<icon name="chevron_left" [flex]="true" ratio="1.5"></icon>
|
<icon name="chevron_left" [flex]="true" ratio="1.5"></icon>
|
||||||
</a>
|
</button>
|
||||||
<a href="#" class="uk-icon uk-slidenav-next uk-slidenav">
|
<button href="#" class="uk-icon uk-slidenav-next uk-slidenav">
|
||||||
<icon name="chevron_right" [flex]="true" ratio="1.5"></icon>
|
<icon name="chevron_right" [flex]="true" ratio="1.5"></icon>
|
||||||
</a>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<!--<div>
|
<!--<div>
|
||||||
|
|
||||||
|
@ -742,7 +742,7 @@
|
||||||
<div class="uk-modal-dialog">
|
<div class="uk-modal-dialog">
|
||||||
<div class="uk-modal-header uk-flex uk-flex-middle uk-flex-between uk-background-primary-opacity">
|
<div class="uk-modal-header uk-flex uk-flex-middle uk-flex-between uk-background-primary-opacity">
|
||||||
<h5 class="uk-modal-title uk-margin-remove">Headline</h5>
|
<h5 class="uk-modal-title uk-margin-remove">Headline</h5>
|
||||||
<button class="uk-modal-close-default uk-icon uk-close uk-margin-left" type="button">
|
<button class="uk-icon uk-close uk-margin-left" type="button">
|
||||||
<icon ratio="1.5" name="close"></icon>
|
<icon ratio="1.5" name="close"></icon>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue