Change stakeholder page with the new theme. Some fixes in methodology and develop
This commit is contained in:
parent
fa77e9871f
commit
9c67703a2d
|
@ -1,25 +1,15 @@
|
|||
<div *ngIf="loading == true">
|
||||
<div *ngIf="loading">
|
||||
<loading [full]="true"></loading>
|
||||
</div>
|
||||
<div *ngIf="loading == false">
|
||||
<div *ngIf="!loading">
|
||||
<div class="sidebar_main_swipe" [class.sidebar_main_active]="open && hasSidebar"
|
||||
[class.sidebar_mini]="!open && hasSidebar" [class.stakeholderPage]="isFrontPage">
|
||||
<div *ngIf="hasHeader" style="right: 0; top: 0; position: fixed; width: 100%; z-index:981;">
|
||||
<div *ngIf="hasHeader" class="uk-position-fixed uk-width-1-1" style="z-index: 981">
|
||||
<navbar *ngIf="properties" [properties]="properties" portal="monitor_dashboard" [header]="menuHeader"
|
||||
[userMenuItems]=userMenuItems [menuItems]="menuItems" [user]="user" [offCanvasFlip]="true"></navbar>
|
||||
</div>
|
||||
<dashboard-sidebar *ngIf="stakeholder && isFrontPage && hasSidebar" [items]="sideBarItems"
|
||||
[activeItem]="activeTopic?activeTopic.alias:null" [showHeader]=true
|
||||
[specialMenuItem]="specialSideBarMenuItem"
|
||||
[searchParams]="{}"
|
||||
[headerUrl]="'https://' + (properties.environment == 'beta' ? 'beta.' : '') +
|
||||
'monitor.openaire.eu'" queryParamsHandling="merge"
|
||||
></dashboard-sidebar>
|
||||
<dashboard-sidebar *ngIf="hasAdminMenu" [items]="adminMenuItems" logoLabel="Admin"
|
||||
[headerUrl]="'https://' + (properties.environment == 'beta' ? 'beta.' : '') +
|
||||
'monitor.openaire.eu'" headerPosition="right"
|
||||
[specialMenuItem]="specialSideBarMenuItem"
|
||||
></dashboard-sidebar>
|
||||
<dashboard-sidebar *ngIf="stakeholder && isFrontPage && hasSidebar" [items]="sideBarItems" [activeItem]="activeTopic?activeTopic.alias:null"></dashboard-sidebar>
|
||||
<dashboard-sidebar *ngIf="hasAdminMenu" [items]="adminMenuItems" [specialMenuItem]="specialSideBarMenuItem"></dashboard-sidebar>
|
||||
<router-outlet></router-outlet>
|
||||
<bottom *ngIf="isFrontPage" [darkBackground]="false"
|
||||
[centered]="true" [properties]="properties" [showMenuItems]="true"></bottom>
|
||||
|
|
|
@ -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 = '<span uk-icon="search"></span>';
|
||||
} 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, [], [], {}, "<i uk-icon=\"image\"></i>"));
|
||||
this.adminMenuItems.push(new MenuItem("indicators", "Indicators", "", "/admin/" + this.stakeholder.alias + '/indicators', false, [], [], {}, "<i uk-icon=\"image\"></i>"));
|
||||
if(this.stakeholder.defaultId) {
|
||||
if (this.stakeholder.defaultId) {
|
||||
this.adminMenuItems.push(new MenuItem("users", "Users", "", "/admin/" + this.stakeholder.alias + "/users", false, [], [], {}, "<i uk-icon=\"users\"></i>"));
|
||||
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);
|
||||
|
|
|
@ -13,13 +13,11 @@ import {StakeholderUtils} from "../utils/indicator-utils";
|
|||
template: `
|
||||
<div page-content>
|
||||
<div inner>
|
||||
<div class="uk-section uk-container uk-container-large uk-margin-large-top">
|
||||
<div class="uk-padding-small">
|
||||
<div class="uk-container uk-container-large">
|
||||
<h1>Help developers <br> with OpenAIRE APIs<span class="uk-text-primary">.</span></h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-section uk-container uk-container-large uk-padding-remove-top">
|
||||
<div class="uk-padding-small uk-grid uk-grid-large uk-child-width-1-3@m uk-child-width-1-1" uk-grid>
|
||||
<div class="uk-section uk-container uk-container-large">
|
||||
<div class="uk-grid uk-grid-large uk-child-width-1-3@m uk-child-width-1-1" uk-grid>
|
||||
<div class="uk-text-center uk-margin-large-top">
|
||||
<div class="uk-icon-bg-shadow uk-margin-auto">
|
||||
<icon name="description" [flex]="true" ratio="2" visuallyHidden="For research outcomes"></icon>
|
||||
|
@ -64,7 +62,7 @@ import {StakeholderUtils} from "../utils/indicator-utils";
|
|||
</div>
|
||||
</div>
|
||||
<div class="uk-section uk-container uk-container-large">
|
||||
<div class="uk-padding-small uk-grid uk-grid-large uk-child-width-1-2@m uk-child-width-1-1" uk-grid>
|
||||
<div class="uk-grid uk-grid-large uk-child-width-1-2@m uk-child-width-1-1" uk-grid>
|
||||
<div>
|
||||
<div>Request examples for research outcomes:</div>
|
||||
<ul class="uk-list uk-list-disc">
|
||||
|
|
|
@ -12,211 +12,207 @@ import {ActivatedRoute, Router} from "@angular/router";
|
|||
template: `
|
||||
<div page-content>
|
||||
<div inner>
|
||||
<div class="uk-section uk-container uk-container-large uk-margin-large-top">
|
||||
<div class="uk-padding-small">
|
||||
<h1>Terminology and <br> construction<span class="uk-text-primary">.</span></h1>
|
||||
</div>
|
||||
<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 uk-padding-remove-top">
|
||||
<div class="uk-padding-small">
|
||||
<my-tabs>
|
||||
<my-tab [tabTitle]="'Entities'" [tabId]="'entities'" class="uk-active">
|
||||
<ng-container>
|
||||
<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">Research Outcomes</dt>
|
||||
<dd class="uk-width-expand">
|
||||
<div>There are currently four different types of research outcomes in the OpenAIRE Research <br> Graph:</div>
|
||||
<ul class="">
|
||||
<li>Publication</li>
|
||||
<li>Dataset</li>
|
||||
<li>Software</li>
|
||||
<li>Other Research Product</li>
|
||||
</ul>
|
||||
<div class="uk-margin-small-top">
|
||||
OpenAIRE deduplicates (merges) different records of research outcomes 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">Publication</dt>
|
||||
<dd class="uk-width-expand">
|
||||
Research outcomes 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">Dataset</dt>
|
||||
<dd class="uk-width-expand">
|
||||
<div>Research data</div>
|
||||
<div>Granularity is not defined by OpenAIRE, it reflects the granularity supported by
|
||||
the sources <br> from which the description of the dataset 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">Software</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">Other Research Product</dt>
|
||||
<dd class="uk-width-expand">
|
||||
Anything that does not fall in the previous categories (e.g. workflow, methods, protocols)
|
||||
</dd>
|
||||
</div>
|
||||
</dl>
|
||||
</ng-container>
|
||||
</my-tab>
|
||||
<my-tab [tabTitle]="'Attributes of Entities'" [tabId]="'attributes'">
|
||||
<ng-container>
|
||||
<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">Organization & Country</dt>
|
||||
<dd class="uk-width-expand">
|
||||
<p><span class="uk-text-bold">For research outcomes:</span> the affiliated organizations of its
|
||||
authors (and their country)</p>
|
||||
<p><span class="uk-text-bold">For projects:</span> the organizations participating in the project
|
||||
(i.e. beneficiaries of the grant) and
|
||||
their countries
|
||||
</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">Type</dt>
|
||||
<dd class="uk-width-expand">
|
||||
<p>The sub-type of a research outcome (e.g., a publication 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</dt>
|
||||
<dd class="uk-width-expand">
|
||||
<p>The best available (across all instances) access rights of a research outcome</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.</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 research community, 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 research outcome.
|
||||
</dd>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="uk-grid uk-padding-small" uk-grid>
|
||||
<dt class="uk-width-1-5@m uk-width-1-1">Content Providers (Datasources)</dt>
|
||||
<dd class="uk-width-expand">
|
||||
<p>The different data sources ingested in the OpenAIRE Research Graph.</p>
|
||||
<div class="uk-text-bold">Content Provider Types:</div>
|
||||
<ul class="portal-circle">
|
||||
<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
|
||||
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).
|
||||
</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 research products from multiple sources
|
||||
in order to enable cross-data source discovery of given research products (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 projects 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 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.
|
||||
</dd>
|
||||
</div>
|
||||
</dl>
|
||||
</ng-container>
|
||||
</my-tab>
|
||||
</my-tabs>
|
||||
<div class="uk-margin-large-top">
|
||||
<img src="assets/common-assets/graph.svg">
|
||||
<span class="uk-margin-small-left uk-text-baseline uk-text-muted">More information for <a
|
||||
href="https://graph.openaire.eu" class="graph-color">OpenAIRE Research Graph</a>.</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-section uk-container uk-container-large">
|
||||
<my-tabs>
|
||||
<my-tab [tabTitle]="'Entities'" [tabId]="'entities'" class="uk-active">
|
||||
<ng-container>
|
||||
<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">Research Outcomes</dt>
|
||||
<dd class="uk-width-expand">
|
||||
<div>There are currently four different types of research outcomes in the OpenAIRE Research <br> Graph:</div>
|
||||
<ul class="uk-list uk-list-disc">
|
||||
<li>Publication</li>
|
||||
<li>Dataset</li>
|
||||
<li>Software</li>
|
||||
<li>Other Research Product</li>
|
||||
</ul>
|
||||
<div class="uk-margin-small-top">
|
||||
OpenAIRE deduplicates (merges) different records of research outcomes 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">Publication</dt>
|
||||
<dd class="uk-width-expand">
|
||||
Research outcomes 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">Dataset</dt>
|
||||
<dd class="uk-width-expand">
|
||||
<div>Research data</div>
|
||||
<div>Granularity is not defined by OpenAIRE, it reflects the granularity supported by
|
||||
the sources <br> from which the description of the dataset 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">Software</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">Other Research Product</dt>
|
||||
<dd class="uk-width-expand">
|
||||
Anything that does not fall in the previous categories (e.g. workflow, methods, protocols)
|
||||
</dd>
|
||||
</div>
|
||||
</dl>
|
||||
</ng-container>
|
||||
</my-tab>
|
||||
<my-tab [tabTitle]="'Attributes of Entities'" [tabId]="'attributes'">
|
||||
<ng-container>
|
||||
<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">Organization & Country</dt>
|
||||
<dd class="uk-width-expand">
|
||||
<p><span class="uk-text-bold">For research outcomes:</span> the affiliated organizations of its
|
||||
authors (and their country)</p>
|
||||
<p><span class="uk-text-bold">For projects:</span> the organizations participating in the project
|
||||
(i.e. beneficiaries of the grant) and
|
||||
their countries
|
||||
</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">Type</dt>
|
||||
<dd class="uk-width-expand">
|
||||
<p>The sub-type of a research outcome (e.g., a publication 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</dt>
|
||||
<dd class="uk-width-expand">
|
||||
<p>The best available (across all instances) access rights of a research outcome</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.</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 research community, 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 research outcome.
|
||||
</dd>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="uk-grid uk-padding-small" uk-grid>
|
||||
<dt class="uk-width-1-5@m uk-width-1-1">Content Providers (Datasources)</dt>
|
||||
<dd class="uk-width-expand">
|
||||
<p>The different data sources ingested in the OpenAIRE Research Graph.</p>
|
||||
<div class="uk-text-bold">Content Provider 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
|
||||
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).
|
||||
</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 research products from multiple sources
|
||||
in order to enable cross-data source discovery of given research products (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 projects 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 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.
|
||||
</dd>
|
||||
</div>
|
||||
</dl>
|
||||
</ng-container>
|
||||
</my-tab>
|
||||
</my-tabs>
|
||||
<div class="uk-margin-medium-top">
|
||||
<img src="assets/common-assets/graph.svg">
|
||||
<span class="uk-margin-small-left uk-text-baseline uk-text-muted">More information for <a
|
||||
href="https://graph.openaire.eu" class="graph-color">OpenAIRE Research Graph</a>.</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id="how" class="uk-container uk-container-large uk-section-small">
|
||||
<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>
|
||||
|
|
|
@ -18,7 +18,7 @@ import {MonitorComponent} from "./monitor.component";
|
|||
canDeactivate: [PreviousRouteRecorder],
|
||||
data: {
|
||||
hasSidebar: false,
|
||||
isDashboard: false
|
||||
isDashboard: true
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -27,13 +27,17 @@ import {MonitorComponent} from "./monitor.component";
|
|||
canDeactivate: [PreviousRouteRecorder],
|
||||
data: {
|
||||
hasSidebar: false,
|
||||
isDashboard: false
|
||||
isDashboard: true
|
||||
}
|
||||
},
|
||||
{
|
||||
path: ':stakeholder/search',
|
||||
loadChildren: () => import('../search/search.module').then(m => m.SearchModule),
|
||||
canDeactivate: [PreviousRouteRecorder]
|
||||
canDeactivate: [PreviousRouteRecorder],
|
||||
data: {
|
||||
hasSidebar: false,
|
||||
isDashboard: true
|
||||
}
|
||||
},
|
||||
{
|
||||
path: ':stakeholder/:topic',
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
.uk-card {
|
||||
min-height: 270px;
|
||||
}
|
||||
|
||||
.uk-card.semiFiltered, .uk-card.semiFiltered > * > .highcharts-series-group {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<!-- <div class="uk-grid uk-grid-small uk-text-small" uk-grid>-->
|
||||
<span *ngIf="periodFilter.selectedFromAndToValues.length > 0" class="uk-grid-margin">
|
||||
<a (click)="clearPeriodFilter()" [class]="((loading)?' uk-disabled':' ')+' uk-link-text '"> <span
|
||||
class="selectedFilterLabel" [class.uk-margin-small-left]="margin"
|
||||
class="filter-tag" [class.uk-margin-small-left]="margin"
|
||||
title="Remove {{periodFilter.selectedFromAndToValues}}">
|
||||
<i uk-icon="close"></i>
|
||||
<span class="uk-margin-small-left">{{periodFilter.selectedFromAndToValues}}</span>
|
||||
|
@ -14,11 +14,11 @@
|
|||
<ng-container *ngIf="value.selected">
|
||||
<span class="uk-grid-margin">
|
||||
<!-- if no grid on the div above, remove it and move class 'selectedFilterLabel' on top span -->
|
||||
<span class="selectedFilterLabel " [class.uk-margin-small-left]="margin" [title]="'Remove '+value.name"
|
||||
<span class="filter-tag" [class.uk-margin-small-left]="margin" [title]="'Remove '+value.name"
|
||||
(click)="value.selected = false; filter.radioValue=''; filter.countSelectedValues=
|
||||
filter.countSelectedValues -1;
|
||||
filterChanged({value:filter}) ">
|
||||
<a [class]="((loading)?' uk-disabled':' ')+' uk-link-text '">
|
||||
<a [class.uk-disabled]="loading">
|
||||
<span class=" clickable" aria-hidden="true">
|
||||
<span class="uk-icon">
|
||||
<svg width="16" height="16" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"
|
||||
|
@ -40,25 +40,20 @@
|
|||
</ng-container>
|
||||
<!-- </div>-->
|
||||
</ng-template>
|
||||
<div page-content [class.greyOut]="filterToggle" (click)=" (filterToggle)?filterToggle = false:filterToggle">
|
||||
<div page-content>
|
||||
<div *ngIf="activeTopic && activeTopic.categories.length > 0" header>
|
||||
<nav class=" ">
|
||||
<div *ngIf="stakeholder && status === errorCodes.DONE && activeTopic"
|
||||
class="uk-grid uk-flex uk-flex-middle" uk-grid>
|
||||
<div class="uk-width-expand">
|
||||
<ul class="customTabs uk-tab">
|
||||
<ng-template ngFor [ngForOf]="activeTopic.categories" let-category let-i="index">
|
||||
<li *ngIf="isPublicOrIsMember(category.visibility)"
|
||||
[class.uk-active]="category.alias ===
|
||||
activeCategory.alias">
|
||||
<div *ngIf="stakeholder && status === errorCodes.DONE && activeTopic" class="uk-margin-medium">
|
||||
<ul class="uk-tab">
|
||||
<ng-template ngFor [ngForOf]="activeTopic.categories" let-category>
|
||||
<li *ngIf="isPublicOrIsMember(category.visibility)" [class.uk-active]="category.alias === activeCategory.alias">
|
||||
<a (click)="navigateTo(stakeholder.alias,activeTopic.alias, category.alias)">
|
||||
<span class="title">{{category.name}}</span>
|
||||
</a>
|
||||
</li>
|
||||
</ng-template>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="uk-width-auto@m uk-width-1-1 uk-flex uk-flex-center">
|
||||
<!-- TODO add Print on the right side -->
|
||||
<!--<div class="uk-width-auto@m uk-width-1-1 uk-flex uk-flex-center">
|
||||
<a class="uk-text-uppercase uk-flex uk-flex-middle uk-flex-center">
|
||||
<button class="uk-icon-button large uk-button-secondary" (click)="printReport()">
|
||||
<icon name="print"></icon>
|
||||
|
@ -67,20 +62,20 @@
|
|||
Print Report
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<ul *ngIf="activeCategory && countSubCategoriesToShow(activeCategory) > 1"
|
||||
class="uk-subnav uk-subnav-pill subCategoriesTabs ">
|
||||
<ng-template ngFor [ngForOf]="activeCategory.subCategories" let-subCategory let-i="index">
|
||||
<li *ngIf="isPublicOrIsMember(subCategory.visibility)"
|
||||
[ngClass]="(subCategory.alias === activeSubCategory.alias)?'uk-active':''">
|
||||
<a (click)="navigateTo(stakeholder.alias,activeTopic.alias,activeCategory.alias, subCategory.alias)"
|
||||
class="uk-margin-remove-bottom"
|
||||
><span>{{subCategory.name}}</span></a>
|
||||
</li>
|
||||
</ng-template>
|
||||
</ul>
|
||||
</div>-->
|
||||
</div>
|
||||
<div *ngIf="activeCategory && countSubCategoriesToShow(activeCategory) > 1" class="uk-flex uk-flex-right">
|
||||
<ul class="uk-subnav uk-subnav-pill">
|
||||
<ng-template ngFor [ngForOf]="activeCategory.subCategories" let-subCategory let-i="index">
|
||||
<li *ngIf="isPublicOrIsMember(subCategory.visibility)"
|
||||
[ngClass]="(subCategory.alias === activeSubCategory.alias)?'uk-active':''">
|
||||
<a (click)="navigateTo(stakeholder.alias,activeTopic.alias,activeCategory.alias, subCategory.alias)"
|
||||
class="uk-margin-remove-bottom"
|
||||
><span>{{subCategory.name}}</span></a>
|
||||
</li>
|
||||
</ng-template>
|
||||
</ul>
|
||||
</div>
|
||||
<div *ngIf="countSelectedFilters() > 0" class="uk-grid uk-grid-small uk-margin-bottom uk-text-small">
|
||||
<span class="uk-grid-margin">Filters: </span>
|
||||
<ng-container *ngTemplateOutlet="selected_filters_pills; context: {margin:true}"></ng-container>
|
||||
|
@ -90,24 +85,17 @@
|
|||
<div [class.uk-padding]="!isSmallScreen" class="uk-padding-remove-vertical">
|
||||
<div *ngIf="privateStakeholder" class="message">
|
||||
<div class="uk-text-center">
|
||||
<h3><i>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px">
|
||||
<path d="M0 0h24v24H0z" fill="none"/>
|
||||
<path
|
||||
d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"/>
|
||||
</svg>
|
||||
</i>
|
||||
Private data
|
||||
<h3 class="uk-flex uk-flex-middle">
|
||||
<icon name="incognito" ratio="2"></icon>
|
||||
<span class="uk-margin-left">Private data</span>
|
||||
</h3>
|
||||
<div class="uk-text-large "></div>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="!privateStakeholder && stakeholder">
|
||||
<div *ngIf="(activeSubCategory && (activeSubCategory.charts.length == 0 || countSectionsWithIndicatorsToShow(activeSubCategory.charts) == 0))
|
||||
&& ((activeSubCategory && activeSubCategory.description && activeSubCategory.description.length > 0) ||
|
||||
(activeCategory && activeCategory.description && activeCategory.description.length > 0) ||
|
||||
(activeTopic && activeTopic.description && activeTopic.description.length > 0))"
|
||||
class="uk-text-center">
|
||||
(activeTopic && activeTopic.description && activeTopic.description.length > 0))" class="uk-text-center">
|
||||
<div class="uk-height-small uk-margin-large-top uk-margin-xlarge-right uk-margin-xlarge-left">
|
||||
{{activeSubCategory && activeSubCategory.description && activeSubCategory.description.length > 0 ? activeSubCategory.description
|
||||
: (activeCategory && activeCategory.description && activeCategory.description.length > 0 ? activeCategory.description :
|
||||
|
@ -126,103 +114,95 @@
|
|||
</div>
|
||||
</ng-template>
|
||||
<ng-template #content>
|
||||
<div *ngFor="let number of activeSubCategory.numbers; let i = index;"
|
||||
class="uk-grid uk-grid-small uk-margin-bottom uk-margin-top"
|
||||
uk-height-match="target: .uk-card">
|
||||
<h5 *ngIf="countIndicatorsToShow(number.indicators)> 0 "
|
||||
class="uk-width-1-1 uk-margin-bottom">{{number.title}}</h5>
|
||||
<ng-template ngFor [ngForOf]="number.indicators" let-indicator let-j="index">
|
||||
<div *ngIf="isPublicOrIsMember(indicator.visibility)" [ngClass]="getNumberClassBySize(indicator.width)" class="uk-margin-bottom">
|
||||
<div class="uk-card uk-card-default uk-flex uk-flex-column uk-flex-center"
|
||||
[class.uk-disabled]="indicator.indicatorPaths[0].filtersApplied < countSelectedFilters()"
|
||||
[class.semiFiltered]="indicator.indicatorPaths[0].filtersApplied < countSelectedFilters()">
|
||||
<div class="uk-card-body uk-text-center">
|
||||
<div *ngIf="properties.environment === 'development'">Filtered:
|
||||
{{indicator.indicatorPaths[0].filtersApplied}}
|
||||
out of
|
||||
{{countSelectedFilters()}}</div>
|
||||
<div class="uk-text-bold ">{{indicator.name}}</div>
|
||||
<h3 class="uk-margin-medium-top uk-text-bold">
|
||||
<span *ngIf="numberResults.get(i + '-' + j)">{{numberResults.get(i + '-' + j) | number}}</span>
|
||||
<span *ngIf="!numberResults.get(i + '-' + j)">--</span>
|
||||
</h3>
|
||||
<!--<ng-container *ngTemplateOutlet="description; context: {indicator:indicator}"></ng-container>-->
|
||||
</div>
|
||||
<div *ngIf="indicator.description || indicator.additionalDescription" class="uk-overlay uk-position-bottom">
|
||||
<div class="uk-padding-small">
|
||||
<div *ngIf="indicator.description">
|
||||
{{indicator.description}}
|
||||
</div>
|
||||
<div *ngIf="indicator.additionalDescription">
|
||||
{{indicator.additionalDescription}}
|
||||
<ng-container *ngFor="let number of activeSubCategory.numbers; let i = index;">
|
||||
<div *ngIf="countIndicatorsToShow(number.indicators) > 0" class="uk-grid uk-margin-large-bottom" uk-grid uk-height-match="target: .uk-card">
|
||||
<h5 *ngIf="number.title" class="uk-width-1-1 uk-margin-bottom">{{number.title}}</h5>
|
||||
<ng-template ngFor [ngForOf]="number.indicators" let-indicator let-j="index">
|
||||
<div *ngIf="isPublicOrIsMember(indicator.visibility)" [ngClass]="getNumberClassBySize(indicator.width)" class="uk-margin-bottom">
|
||||
<div class="uk-card uk-card-default uk-flex uk-flex-column uk-flex-center"
|
||||
[class.semiFiltered]="indicator.indicatorPaths[0].filtersApplied < countSelectedFilters()">
|
||||
<div class="uk-text-center">
|
||||
<!--<div *ngIf="properties.environment === 'development'">
|
||||
Filtered:{{indicator.indicatorPaths[0].filtersApplied}}out of{{countSelectedFilters()}}
|
||||
</div>-->
|
||||
<div class="number uk-text-bold uk-text-primary-gradient">
|
||||
<span *ngIf="numberResults.get(i + '-' + j)">{{numberResults.get(i + '-' + j) | number}}</span>
|
||||
<span *ngIf="!numberResults.get(i + '-' + j)">--</span>
|
||||
</div>
|
||||
<div class="uk-text-uppercase uk-text-small uk-margin-top">{{indicator.name}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
</div>
|
||||
<div [class.uk-margin-large-top]="activeSubCategory.numbers.length > 0">
|
||||
<div *ngFor="let chart of activeSubCategory.charts; let i = index;"
|
||||
class="uk-grid uk-grid-small uk-margin-bottom uk-flex uk-flex-middle "
|
||||
uk-height-match="target: .uk-card">
|
||||
<h5 *ngIf="chart.title && chart.title.length > 0 && countIndicatorsToShow(chart.indicators) > 0 "
|
||||
class="uk-width-1-1 uk-margin-bottom">{{chart.title}}</h5>
|
||||
<ng-template ngFor [ngForOf]="chart.indicators" let-indicator let-j="index">
|
||||
<div
|
||||
*ngIf="isPublicOrIsMember(indicator.visibility) && chartsActiveType.get(i + '-' + j)"
|
||||
[ngClass]="getChartClassBySize(indicator.width)" class="uk-margin-bottom">
|
||||
<div class="uk-card uk-card-default"
|
||||
[class.uk-disabled]="chartsActiveType.get(i + '-' + j).filtersApplied < countSelectedFilters()"
|
||||
[class.semiFiltered]="chartsActiveType.get(i + '-' + j).filtersApplied < countSelectedFilters()">
|
||||
<div class="uk-card-body uk-text-center">
|
||||
<h4 class="uk-margin-bottom chartTitle uk-flex uk-flex-bottom ">
|
||||
<div>{{indicator.name + " "}}</div>
|
||||
</h4>
|
||||
<div *ngIf="indicator.indicatorPaths.length > 1" class="uk-button-group">
|
||||
<button *ngFor="let indicatorPath of indicator.indicatorPaths;"
|
||||
class="uk-button"
|
||||
(click)="setActiveChart(i, j, indicatorPath.type)"
|
||||
[class.uk-button-secondary]="chartsActiveType.get(i + '-' + j).url === indicatorPath.url">
|
||||
{{indicatorPath.type}}
|
||||
</button>
|
||||
</div>
|
||||
<div *ngIf="properties.environment === 'development'">
|
||||
Filtered: {{chartsActiveType.get(i + '-' + j).filtersApplied}} out of
|
||||
{{countSelectedFilters()}}</div>
|
||||
<iframe *ngIf=" !properties.disableFrameLoad && chartsActiveType.get(i + '-' + j).source !==
|
||||
'image'"
|
||||
[src]="chartsActiveType.get(i + '-' + j).safeResourceUrl"
|
||||
[class]="' uk-width-1-1 uk-height-' +
|
||||
(indicator.height?indicator.height.toLowerCase():'medium')"></iframe>
|
||||
<div *ngIf="properties.disableFrameLoad && chartsActiveType.get(i + '-' + j).source !==
|
||||
'image'" class="uk-alert uk-alert-danger uk-text-center">I frames preview is disabled</div>
|
||||
<!-- {{chartsActiveType.get(i).safeResourceUrl}}-->
|
||||
<!-- <a [href]="chartsActiveType.get(i).safeResourceUrl" target="_blank" > ChartuURL</a>-->
|
||||
<img *ngIf="chartsActiveType.get(i + '-' + j).source === 'image'"
|
||||
[src]="chartsActiveType.get(i + '-' + j).safeResourceUrl"
|
||||
[class]="' uk-width-1-1 uk-height-' +
|
||||
(indicator.height?indicator.height.toLowerCase():'medium')">
|
||||
<!--<ng-container *ngTemplateOutlet="description; context: {indicator:indicator}"></ng-container>-->
|
||||
</div>
|
||||
<div *ngIf="indicator.description || indicator.additionalDescription"
|
||||
class="uk-overlay uk-position-bottom">
|
||||
<div class="uk-padding multi-line-ellipsis lines-3">
|
||||
<p class="uk-margin-remove">
|
||||
<span *ngIf="indicator.description">
|
||||
{{indicator.description}}
|
||||
</span>
|
||||
<br>
|
||||
<span *ngIf="indicator.additionalDescription">
|
||||
{{indicator.additionalDescription}}
|
||||
</span>
|
||||
</p>
|
||||
<div *ngIf="indicator.description || indicator.additionalDescription" class="uk-overlay uk-position-bottom">
|
||||
<div class="uk-padding-small">
|
||||
<div *ngIf="indicator.description">
|
||||
{{indicator.description}}
|
||||
</div>
|
||||
<div *ngIf="indicator.additionalDescription">
|
||||
{{indicator.additionalDescription}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
</div>
|
||||
</ng-container>
|
||||
<div [class.uk-margin-large-top]="activeSubCategory.numbers.length > 0">
|
||||
<ng-container *ngFor="let chart of activeSubCategory.charts; let i = index;">
|
||||
<div *ngIf="countIndicatorsToShow(chart.indicators) > 0" class="uk-grid uk-margin-medium-bottom uk-flex uk-flex-middle" uk-height-match="target: .uk-card">
|
||||
<h5 *ngIf="chart.title" class="uk-width-1-1 uk-margin-bottom">{{chart.title}}</h5>
|
||||
<ng-template ngFor [ngForOf]="chart.indicators" let-indicator let-j="index">
|
||||
<div *ngIf="isPublicOrIsMember(indicator.visibility) && chartsActiveType.get(i + '-' + j)"
|
||||
[ngClass]="getChartClassBySize(indicator.width)" class="uk-margin-bottom">
|
||||
<div class="uk-card uk-card-default" [class.semiFiltered]="chartsActiveType.get(i + '-' + j).filtersApplied < countSelectedFilters()">
|
||||
<div class="uk-card-body uk-text-center">
|
||||
<h4 class="uk-margin-bottom chartTitle uk-flex uk-flex-bottom ">
|
||||
<div>{{indicator.name + " "}}</div>
|
||||
</h4>
|
||||
<div *ngIf="indicator.indicatorPaths.length > 1" class="uk-button-group">
|
||||
<button *ngFor="let indicatorPath of indicator.indicatorPaths;"
|
||||
class="uk-button"
|
||||
(click)="setActiveChart(i, j, indicatorPath.type)"
|
||||
[class.uk-button-secondary]="chartsActiveType.get(i + '-' + j).url === indicatorPath.url">
|
||||
{{indicatorPath.type}}
|
||||
</button>
|
||||
</div>
|
||||
<div *ngIf="properties.environment === 'development'">
|
||||
Filtered: {{chartsActiveType.get(i + '-' + j).filtersApplied}} out of
|
||||
{{countSelectedFilters()}}</div>
|
||||
<iframe *ngIf=" !properties.disableFrameLoad && chartsActiveType.get(i + '-' + j).source !==
|
||||
'image'"
|
||||
[src]="chartsActiveType.get(i + '-' + j).safeResourceUrl"
|
||||
[class]="' uk-width-1-1 uk-height-' +
|
||||
(indicator.height?indicator.height.toLowerCase():'medium')"></iframe>
|
||||
<div *ngIf="properties.disableFrameLoad && chartsActiveType.get(i + '-' + j).source !==
|
||||
'image'" class="uk-alert uk-alert-danger uk-text-center">I frames preview is disabled</div>
|
||||
<!-- {{chartsActiveType.get(i).safeResourceUrl}}-->
|
||||
<!-- <a [href]="chartsActiveType.get(i).safeResourceUrl" target="_blank" > ChartuURL</a>-->
|
||||
<img *ngIf="chartsActiveType.get(i + '-' + j).source === 'image'"
|
||||
[src]="chartsActiveType.get(i + '-' + j).safeResourceUrl"
|
||||
[class]="' uk-width-1-1 uk-height-' +
|
||||
(indicator.height?indicator.height.toLowerCase():'medium')">
|
||||
<!--<ng-container *ngTemplateOutlet="description; context: {indicator:indicator}"></ng-container>-->
|
||||
</div>
|
||||
<div *ngIf="indicator.description || indicator.additionalDescription"
|
||||
class="uk-overlay uk-position-bottom">
|
||||
<div class="uk-padding multi-line-ellipsis lines-3">
|
||||
<p class="uk-margin-remove">
|
||||
<span *ngIf="indicator.description">
|
||||
{{indicator.description}}
|
||||
</span>
|
||||
<br>
|
||||
<span *ngIf="indicator.additionalDescription">
|
||||
{{indicator.additionalDescription}}
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
</div>
|
||||
</ng-container>
|
||||
</div>
|
||||
<div class="uk-margin-medium-top uk-flex hideInfo">
|
||||
<!-- Last Stats Date-->
|
||||
|
|
|
@ -60,7 +60,6 @@ export class MonitorComponent implements OnInit, OnDestroy {
|
|||
public chartsActiveType: Map<string, IndicatorPath> = new Map<string, IndicatorPath>();
|
||||
private errorMessages: ErrorMessagesComponent;
|
||||
properties: EnvProperties = properties;
|
||||
filterToggle = false;
|
||||
public routerHelper: RouterHelper = new RouterHelper();
|
||||
filters: Filter[] = [];
|
||||
queryParams = {};
|
||||
|
@ -121,7 +120,6 @@ export class MonitorComponent implements OnInit, OnDestroy {
|
|||
this.activeTopic = null;
|
||||
this.activeCategory = null;
|
||||
this.activeSubCategory = null;
|
||||
this.filterToggle = false;
|
||||
if (subscription) {
|
||||
subscription.unsubscribe();
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ import {SearchFilterModule} from "../openaireLibrary/searchPages/searchUtils/sea
|
|||
import {PageContentModule} from "../openaireLibrary/dashboard/sharedComponents/page-content/page-content.module";
|
||||
import {IconsService} from '../openaireLibrary/utils/icons/icons.service';
|
||||
import {IconsModule} from '../openaireLibrary/utils/icons/icons.module';
|
||||
import {print} from "../openaireLibrary/utils/icons/icons";
|
||||
import {incognito, print} from "../openaireLibrary/utils/icons/icons";
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
|
@ -45,6 +45,6 @@ import {print} from "../openaireLibrary/utils/icons/icons";
|
|||
})
|
||||
export class MonitorModule {
|
||||
constructor(private iconsService: IconsService) {
|
||||
this.iconsService.registerIcons([print]);
|
||||
this.iconsService.registerIcons([incognito, print]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit c2b6547b4c36415ff2e9b1050dcdabc80bb34973
|
||||
Subproject commit 4698a5fafd51fa7d8a0969b0d4e2691cce53ccf4
|
|
@ -1 +1 @@
|
|||
Subproject commit a9e0079b207d8e2894f71fff5b683afe44d3eb57
|
||||
Subproject commit c66881b1d021db2ec99fb3e62fd179dcba6c0a10
|
|
@ -4,12 +4,39 @@
|
|||
/* --portal-dark-color: #7c9144;*/
|
||||
/*}*/
|
||||
|
||||
/*.stakeholderPage {*/
|
||||
/* --primary-color: var(--theme-secondary-color);*/
|
||||
/* --secondary-color: var(--theme-secondary-color);*/
|
||||
/* --primary-color-rgb: var(--theme-secondary-color-rgb);*/
|
||||
/* --secondary-color-rgb: var(--theme-secondary-color-rgb);*/
|
||||
/*}*/
|
||||
.stakeholderPage {
|
||||
/* Structure */
|
||||
--structure-background-color: #F1F1F1;
|
||||
|
||||
/* Dashboard */
|
||||
--dashboard-primary-color: var(--monitor-color);
|
||||
--dashboard-primary-color-rgb: var(--monitor-color-rgb);
|
||||
--dashboard-primary-image: linear-gradient(133deg, var(--monitor-light-color) 0%, var(--monitor-dark-color) 100%);
|
||||
--dashboard-primary-inverse-color: var(--light-color);
|
||||
|
||||
/* Buttons */
|
||||
--button-primary-background: var(--monitor-color);
|
||||
--button-primary-background-image: linear-gradient(110deg, var(--monitor-light-color) 50%, var(--monitor-dark-color) 100%);
|
||||
--button-secondary-background: var(--light-color);
|
||||
--button-secondary-color: var(--monitor-color);
|
||||
--button-secondary-border-color: var(--monitor-color);
|
||||
--button-secondary-background-hover: var(--secondary-color);
|
||||
--button-secondary-color-hover: var(--light-color);
|
||||
--button-secondary-border-color-hover: transparent;
|
||||
|
||||
/* Backgrounds */
|
||||
--primary-background: #2C2C2C;
|
||||
--primary-background-image:none;
|
||||
--secondary-background: var(--monitor-color);
|
||||
--secondary-background-image:none;
|
||||
|
||||
/* Fonts */
|
||||
--font-primary-color: var(--monitor-color);
|
||||
--font-gradient-color: linear-gradient(110deg, var(--monitor-light-color) 0%, var(--monitor-dark-color) 100%);
|
||||
|
||||
/* List */
|
||||
--list-disc-color: var(--monitor-color);
|
||||
}
|
||||
/*!*Stakeholder Specific*!*/
|
||||
/*.publicationsSearchForm {*/
|
||||
/* background-image: none;*/
|
||||
|
@ -48,19 +75,19 @@
|
|||
/* !*z-index: 981;*!*/
|
||||
/*}*/
|
||||
|
||||
/*#filters_switcher_toggle {*/
|
||||
/* top: 320px !important;*/
|
||||
/* position: fixed;*/
|
||||
/* height: 36px;*/
|
||||
/* background-color: var(--secondary-color);*/
|
||||
/* border-radius: 4px 0 0 4px;*/
|
||||
/* cursor: pointer;*/
|
||||
/* padding: 0 2px;*/
|
||||
/* box-shadow: -2px 2px 5px rgba(0, 0, 0, .26);*/
|
||||
/* box-sizing: border-box;*/
|
||||
/* !*z-index: 981;*!*/
|
||||
/* right: 0;*/
|
||||
/*}*/
|
||||
#filters_switcher_toggle {
|
||||
top: 320px !important;
|
||||
position: fixed;
|
||||
height: 36px;
|
||||
background-color: var(--secondary-color);
|
||||
border-radius: 4px 0 0 4px;
|
||||
cursor: pointer;
|
||||
padding: 0 2px;
|
||||
box-shadow: -2px 2px 5px rgba(0, 0, 0, .26);
|
||||
box-sizing: border-box;
|
||||
/*z-index: 981;*/
|
||||
right: 0;
|
||||
}
|
||||
|
||||
/*!*Sidebar*!*/
|
||||
/*!*Style*!*/
|
||||
|
@ -233,12 +260,7 @@
|
|||
/*.uk-modal-container .uk-modal-dialog {*/
|
||||
/* width: 900px;*/
|
||||
/*}*/
|
||||
/*.stakeholderPage .uk-card.uk-disabled, .stakeholderPage .uk-card.semiFiltered{*/
|
||||
/* opacity: 0.5;*/
|
||||
/*}*/
|
||||
/*.stakeholderPage .uk-card.semiFiltered > * > .highcharts-series-group{*/
|
||||
/* opacity: 0.5;*/
|
||||
/*}*/
|
||||
|
||||
/*.stakeholderPage .selectedFilterLabel {*/
|
||||
/* background-color: #E6EEF2;*/
|
||||
/* border-color: #E6EEF2;*/
|
|
@ -1 +1 @@
|
|||
Subproject commit fb13bcae2ffe56445eda67e2e48740dc5a1e12df
|
||||
Subproject commit 60be89ef464a3eb6a485b1f68bd9f3dcde0393a0
|
|
@ -3,5 +3,5 @@
|
|||
@import "assets/common-assets/library.css";
|
||||
@import "assets/common-assets/common/custom.css";
|
||||
@import "assets/dashboard-theme/main.css";
|
||||
@import "assets/new.css";
|
||||
@import "assets/monitor-dashboard-custom.css";
|
||||
@import "assets/print.css";
|
||||
|
|
Loading…
Reference in New Issue