+
-
-
+
+
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index d4cc183..4c3047a 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -17,6 +17,7 @@ import {Option} from "./openaireLibrary/sharedComponents/input/input.component";
import {StakeholderUtils} from "./utils/indicator-utils";
import {SmoothScroll} from "./openaireLibrary/utils/smooth-scroll";
import {ConnectHelper} from "./openaireLibrary/connect/connectHelper";
+import {StringUtils} from "./openaireLibrary/utils/string-utils.class";
@Component({
@@ -47,7 +48,7 @@ export class AppComponent implements OnInit, OnDestroy {
logoUrl: null,
logoSmallUrl: null,
position: 'center',
- badge: false,
+ badge: true,
stickyAnimation: false,
menuPosition: "center"
};
@@ -67,7 +68,7 @@ export class AppComponent implements OnInit, OnDestroy {
private layoutService: LayoutService,
private smoothScroll: SmoothScroll,
private stakeholderService: StakeholderService,
- private cdr: ChangeDetectorRef, private configurationService: ConfigurationService) {
+ private cdr: ChangeDetectorRef, private configurationService: ConfigurationService) {
this.subscriptions.push(this.router.events.subscribe(event => {
if (event instanceof NavigationEnd) {
let r = this.route;
@@ -172,7 +173,7 @@ export class AppComponent implements OnInit, OnDestroy {
}
}));
this.subscriptions.push(this.data.subscribe(data => {
- if(data && data.portal) {
+ if (data && data.portal) {
this.setProperties(data.portal);
this.configurationService.initCommunityInformation(this.properties, this.properties.adminToolsCommunity);
}
@@ -181,7 +182,7 @@ export class AppComponent implements OnInit, OnDestroy {
this.user = user;
if (user) {
this.buildMenu();
- if(!this.notificationGroupsInitialized) {
+ if (!this.notificationGroupsInitialized) {
this.setNotificationGroups();
}
}
@@ -190,18 +191,24 @@ export class AppComponent implements OnInit, OnDestroy {
public setNotificationGroups() {
this.notificationGroups = [];
- if(Session.isPortalAdministrator(this.user)) {
+ if (Session.isPortalAdministrator(this.user)) {
this.notificationGroups.push({value: Role.PORTAL_ADMIN, label: 'Portal Administrators'});
}
- for(let type of this.stakeholderUtils.types) {
- if(Session.isCurator(type.value, this.user) || Session.isPortalAdministrator(this.user)) {
+ for (let type of this.stakeholderUtils.types) {
+ if (Session.isCurator(type.value, this.user) || Session.isPortalAdministrator(this.user)) {
this.notificationGroups.push({value: Role.curator(type.value), label: type.label + ' Curators'});
}
}
this.subscriptions.push(this.stakeholderService.getMyStakeholders(this.properties.monitorServiceAPIURL).subscribe(stakeholders => {
stakeholders.forEach(stakeholder => {
- this.notificationGroups.push({value: Role.manager(stakeholder.type, stakeholder.alias), label: stakeholder.name + ' Managers'});
- this.notificationGroups.push({value: Role.member(stakeholder.type, stakeholder.alias), label: stakeholder.name + ' Members'});
+ this.notificationGroups.push({
+ value: Role.manager(stakeholder.type, stakeholder.alias),
+ label: stakeholder.name + ' Managers'
+ });
+ this.notificationGroups.push({
+ value: Role.member(stakeholder.type, stakeholder.alias),
+ label: stakeholder.name + ' Members'
+ });
});
this.notificationGroupsInitialized = true;
}));
@@ -234,7 +241,7 @@ export class AppComponent implements OnInit, OnDestroy {
this.stakeholder.topics.forEach((topic) => {
if (this.isPublicOrIsMember(topic.visibility)) {
let topicItem: MenuItem = new MenuItem(topic.alias, topic.name, "", (
- '/' + this.stakeholder.alias + '/' + topic.alias),
+ '/' + this.stakeholder.alias + '/' + topic.alias),
null, [], [], {});
topicItem.icon = topic.icon;
items.push(topicItem);
@@ -259,22 +266,22 @@ export class AppComponent implements OnInit, OnDestroy {
this.userMenuItems.push(new MenuItem("", "Manage profiles",
"", "/admin", false, [], [], {}));
}
- if(Session.isPortalAdministrator(this.user) ) {
- this.userMenuItems.push( new MenuItem("adminOptions", "Super Admin options","", "/admin/admin-tools/portals", false, [], [], {}));
- this.userMenuItems.push(new MenuItem("monitorOptions", "Monitor portal options","", "/admin/monitor/admin-tools/pages", false, [], [], {}));
-
+ if (Session.isPortalAdministrator(this.user)) {
+ this.userMenuItems.push(new MenuItem("adminOptions", "Super Admin options", "", "/admin/admin-tools/portals", false, [], [], {}));
+ this.userMenuItems.push(new MenuItem("monitorOptions", "Monitor portal options", "", "/admin/monitor/admin-tools/pages", false, [], [], {}));
+
}
this.userMenuItems.push(new MenuItem("", "User information", "", "/user-info", false, [], [], {}));
}
if (this.stakeholder) {
- if (!this.isDashboard) {
+ if (!this.hasAdminMenu) {
this.menuHeader = {
- route: null,
- url: "https://" + (this.properties.environment == 'beta' ? 'beta.' : '') + 'monitor.openaire.eu',
- title: "Monitor",
- logoUrl: 'assets/common-assets/logo-large-monitor.png',
- logoSmallUrl: "assets/common-assets/logo-small-monitor.png",
- position: 'left',
+ route: "/" + this.stakeholder.alias,
+ url: null,
+ title: this.stakeholder.name,
+ logoUrl: StringUtils.getLogoUrl(this.stakeholder),
+ logoSmallUrl: StringUtils.getLogoUrl(this.stakeholder),
+ position: 'center',
badge: true,
stickyAnimation: false,
menuPosition: "center"
@@ -283,66 +290,33 @@ export class AppComponent implements OnInit, OnDestroy {
rootItem: new MenuItem("dashboard", "Dashboard",
"", "/" + this.stakeholder.alias, false, [], null, {}), items: []
});
- this.menuItems.push({
- rootItem: new MenuItem("methodology", "Methodology",
- "", "/" + this.stakeholder.alias + "/methodology", false, [], null, {}), items: [
- new MenuItem("methodology", "Terminology and construction",
- "", "/" + this.stakeholder.alias + "/methodology", false, [], null, {}),
- new MenuItem("methodology", "See how it works",
- "", "/" + this.stakeholder.alias + "/methodology", false, [], null, {}, null, "how"),
- ]
- });
- if(this.stakeholder.type === "funder") {
- this.menuItems.push({
- rootItem: new MenuItem("develop", "Develop",
- "", "/" + this.stakeholder.alias + "/develop", false, [], null, {}), items: []
- });
- }
- if (this.isCurator()) {
- this.menuItems.push({
- rootItem: new MenuItem("manage", "Manage",
- "", "/admin", false, [], null, {}), items: []
- });
- }
- }
- else if (this.isFrontPage) {
- this.menuHeader = {
- route: "/" + this.stakeholder.alias,
- url: null,
- title: this.stakeholder.name,
- logoUrl: null,
- logoSmallUrl: null,
- position: 'center',
- badge: false,
- stickyAnimation: false,
- menuPosition: "center"
- };
- this.menuItems.push({
- rootItem: new MenuItem("methodology", "Methodology",
- "", "/" + this.stakeholder.alias + "/methodology", false, [], null, {}), items: [
- new MenuItem("methodology", "Terminology and construction",
- "", "/" + this.stakeholder.alias + "/methodology", false, [], null, {}),
- new MenuItem("methodology", "See how it works",
- "", "/" + this.stakeholder.alias + "/methodology", false, [], null, {}, null, "how"),
- ]
- });
- if(this.stakeholder.type === "funder") {
- this.menuItems.push({
- rootItem: new MenuItem("develop", "Develop",
- "", "/" + this.stakeholder.alias + "/develop", false, [], null, {}), items: []
- });
- }
- if (this.isCurator()) {
- this.menuItems.push({
- rootItem: new MenuItem("manage", "Manage",
- "", "/admin", false, [], null, {}), items: []
- });
- }
if (this.isPublicOrIsMember(this.stakeholder.visibility)) {
- this.specialSideBarMenuItem = new MenuItem("search", "Search research outcomes", "", this.properties.searchLinkToResults, false, [], null, {resultbestaccessright: '"' + encodeURIComponent("Open Access") + '"'});
- this.specialSideBarMenuItem.icon = '
';
- } else {
- this.specialSideBarMenuItem = null;
+ this.menuItems.push({
+ rootItem: new MenuItem("search", "Search", "", this.properties.searchLinkToResults,
+ false, [], null, {resultbestaccessright: '"' + encodeURIComponent("Open Access") + '"'}),
+ items: []
+ });
+ }
+ this.menuItems.push({
+ rootItem: new MenuItem("methodology", "Methodology",
+ "", "/" + this.stakeholder.alias + "/methodology", false, [], null, {}), items: [
+ new MenuItem("methodology", "Terminology and construction",
+ "", "/" + this.stakeholder.alias + "/methodology", false, [], null, {}),
+ new MenuItem("methodology", "See how it works",
+ "", "/" + this.stakeholder.alias + "/methodology", false, [], null, {}, null, "how"),
+ ]
+ });
+ if (this.stakeholder.type === "funder") {
+ this.menuItems.push({
+ rootItem: new MenuItem("develop", "Develop",
+ "", "/" + this.stakeholder.alias + "/develop", false, [], null, {}), items: []
+ });
+ }
+ if (this.isManager(this.stakeholder)) {
+ this.menuItems.push({
+ rootItem: new MenuItem("manage", "Manage",
+ "", "/admin/" + this.stakeholder.alias, false, [], null, {}), items: []
+ });
}
} else {
this.menuHeader = {
@@ -362,7 +336,7 @@ export class AppComponent implements OnInit, OnDestroy {
});
this.adminMenuItems.push(new MenuItem("general", "General", "", "/admin/" + this.stakeholder.alias, false, [], [], {}, "
"));
this.adminMenuItems.push(new MenuItem("indicators", "Indicators", "", "/admin/" + this.stakeholder.alias + '/indicators', false, [], [], {}, "
"));
- if(this.stakeholder.defaultId) {
+ if (this.stakeholder.defaultId) {
this.adminMenuItems.push(new MenuItem("users", "Users", "", "/admin/" + this.stakeholder.alias + "/users", false, [], [], {}, "
"));
if (Session.isPortalAdministrator(this.user)) {
this.adminMenuItems.push(new MenuItem("admin-tools", "Pages & Entities", "", "/admin/" + this.stakeholder.alias + "/admin-tools/pages", false, [], [], {}, null, null, null, "/admin/" + this.stakeholder.alias + "/admin-tools"));
@@ -432,9 +406,9 @@ export class AppComponent implements OnInit, OnDestroy {
return !(visibility == "PRIVATE" || (this.isViewPublic && visibility != "PUBLIC"));
}
- setProperties(id, type = null){
+ setProperties(id, type = null) {
this.properties.adminToolsCommunity = id;
- if(type) {
+ if (type) {
this.properties.adminToolsPortalType = type;
} else {
ConnectHelper.setPortalTypeFromPid(id);
diff --git a/src/app/develop/develop.component.ts b/src/app/develop/develop.component.ts
index 1b83c16..88557b7 100644
--- a/src/app/develop/develop.component.ts
+++ b/src/app/develop/develop.component.ts
@@ -13,13 +13,11 @@ import {StakeholderUtils} from "../utils/indicator-utils";
template: `
-
-
+
Help developers
with OpenAIRE APIs.
-
-
-
+
+
@@ -64,7 +62,7 @@ import {StakeholderUtils} from "../utils/indicator-utils";
-
+
Request examples for research outcomes:
diff --git a/src/app/methodology/methodology.component.ts b/src/app/methodology/methodology.component.ts
index 9dffe8f..0d3a5ae 100644
--- a/src/app/methodology/methodology.component.ts
+++ b/src/app/methodology/methodology.component.ts
@@ -12,211 +12,207 @@ import {ActivatedRoute, Router} from "@angular/router";
template: `
-
-
-
Terminology and
construction.
-
+
+
Terminology and
construction.
-
-
-
-
-
-
-
-
- Research Outcomes
-
-
-
There are currently four different types of research outcomes in the OpenAIRE Research
Graph:
-
- - Publication
- - Dataset
- - Software
- - Other Research Product
-
-
- OpenAIRE deduplicates (merges) different records of research outcomes and keeps the
metadata of all instances.
-
-
-
-
-
-
- Publication
- -
- Research outcomes intended for human reading (published articles, pre-prints, conference
papers, presentations, technical reports, etc.)
-
-
-
-
-
- Dataset
-
-
-
Research data
- Granularity is not defined by OpenAIRE, it reflects the granularity supported by
- the sources
from which the description of the dataset has been collected.
-
-
-
-
-
- Software
- -
- Source code or software package developed and/or used in a research context
-
-
-
-
-
- Other Research Product
- -
- Anything that does not fall in the previous categories (e.g. workflow, methods, protocols)
-
-
-
-
-
-
-
-
-
-
- Organization & Country
-
-
-
For research outcomes: the affiliated organizations of its
- authors (and their country)
- For projects: the organizations participating in the project
- (i.e. beneficiaries of the grant) and
- their countries
-
-
- Country code mapping:
-
- https://api.openaire.eu/vocabularies/dnet:countries
-
-
-
-
-
-
-
-
- Access mode
-
-
-
The best available (across all instances) access rights of a research outcome
- Types: open, restricted, closed, embargo (= closed for a specific period of time, then open)
- Note: definition of restricted
- may vary by data source.
-
-
-
-
-
-
-
- Context
- -
- Related research community, initiative or infrastructure.
-
-
-
-
-
- Journal
- -
- The scientific journal an article is published in.
-
-
-
-
-
- Publisher
- -
- The publisher of the venue (journal, book, etc.) of a research outcome.
-
-
-
-
-
- Content Providers (Datasources)
-
-
-
The different data sources ingested in the OpenAIRE Research Graph.
- Content Provider Types:
-
- - Repositories
- - Open Access Publishers & Journals
- - Aggregators
- - Entity Registries
- - Journal Aggregators
- - CRIS (Current Research Information System)
-
-
-
-
-
-
- Repositories
- -
- Information systems where scientists upload the bibliographic metadata and payloads of their
- research outcomes (e.g. PDFs of their scientific articles, CSVs of their data, archive with their
- software), due to obligations from their organizations, their funders, or due to community practices
- (e.g. ArXiv, Europe PMC, Zenodo).
-
-
-
-
-
- Open Access Publishers & Journals
- -
- Information systems of open access publishers or relative journals, which offer bibliographic
- metadata and PDFs of their published articles.
-
-
-
-
-
- Aggregators
- -
- Information systems that collect descriptive metadata about research products from multiple sources
- in order to enable cross-data source discovery of given research products (e,g, DataCite,
- BASE, DOAJ).
-
-
-
-
-
- Entity Registries
- -
- 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 projects and funding information.
-
-
-
-
-
- CRIS (Current Research Information System)
- -
- Information systems adopted by research and academic organizations to keep track of their research
- administration records and relative results; examples of CRIS content are articles or datasets funded
- by projects, their principal investigators, facilities acquired thanks to funding, etc.
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
- Research Outcomes
+
-
+
There are currently four different types of research outcomes in the OpenAIRE Research
Graph:
+
+ - Publication
+ - Dataset
+ - Software
+ - Other Research Product
+
+
+ OpenAIRE deduplicates (merges) different records of research outcomes and keeps the
metadata of all instances.
+
+
+
+
+
+
- Publication
+ -
+ Research outcomes intended for human reading (published articles, pre-prints, conference
papers, presentations, technical reports, etc.)
+
+
+
+
+
- Dataset
+
-
+
Research data
+ Granularity is not defined by OpenAIRE, it reflects the granularity supported by
+ the sources
from which the description of the dataset has been collected.
+
+
+
+
+
- Software
+ -
+ Source code or software package developed and/or used in a research context
+
+
+
+
+
- Other Research Product
+ -
+ Anything that does not fall in the previous categories (e.g. workflow, methods, protocols)
+
+
+
+
+
+
+
+
+
+
- Organization & Country
+
-
+
For research outcomes: the affiliated organizations of its
+ authors (and their country)
+ For projects: the organizations participating in the project
+ (i.e. beneficiaries of the grant) and
+ their countries
+
+
+ Country code mapping:
+
+ https://api.openaire.eu/vocabularies/dnet:countries
+
+
+
+
+
+
+
+
- Access mode
+
-
+
The best available (across all instances) access rights of a research outcome
+ Types: open, restricted, closed, embargo (= closed for a specific period of time, then open)
+ Note: definition of restricted
+ may vary by data source.
+
+
+
+
+
+
+
- Context
+ -
+ Related research community, initiative or infrastructure.
+
+
+
+
+
- Journal
+ -
+ The scientific journal an article is published in.
+
+
+
+
+
- Publisher
+ -
+ The publisher of the venue (journal, book, etc.) of a research outcome.
+
+
+
+
+
- Content Providers (Datasources)
+
-
+
The different data sources ingested in the OpenAIRE Research Graph.
+ Content Provider Types:
+
+ - Repositories
+ - Open Access Publishers & Journals
+ - Aggregators
+ - Entity Registries
+ - Journal Aggregators
+ - CRIS (Current Research Information System)
+
+
+
+
+
+
- Repositories
+ -
+ Information systems where scientists upload the bibliographic metadata and payloads of their
+ research outcomes (e.g. PDFs of their scientific articles, CSVs of their data, archive with their
+ software), due to obligations from their organizations, their funders, or due to community practices
+ (e.g. ArXiv, Europe PMC, Zenodo).
+
+
+
+
+
- Open Access Publishers & Journals
+ -
+ Information systems of open access publishers or relative journals, which offer bibliographic
+ metadata and PDFs of their published articles.
+
+
+
+
+
- Aggregators
+ -
+ Information systems that collect descriptive metadata about research products from multiple sources
+ in order to enable cross-data source discovery of given research products (e,g, DataCite,
+ BASE, DOAJ).
+
+
+
+
+
- Entity Registries
+ -
+ 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 projects and funding information.
+
+
+
+
+
- CRIS (Current Research Information System)
+ -
+ Information systems adopted by research and academic organizations to keep track of their research
+ administration records and relative results; examples of CRIS content are articles or datasets funded
+ by projects, their principal investigators, facilities acquired thanks to funding, etc.
+
+
+
+
+
+
+
-