[Monitor Dashboard | Trunk]: Create terminology page. Add notifications on beta
git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-monitor-portal/trunk/monitor_dashboard@60754 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
parent
3dc53e06d9
commit
13cf0e0054
|
@ -25,7 +25,7 @@
|
||||||
[centered]="true" [properties]="properties" [showMenuItems]="true"></bottom>
|
[centered]="true" [properties]="properties" [showMenuItems]="true"></bottom>
|
||||||
<role-verification *ngIf="stakeholder"
|
<role-verification *ngIf="stakeholder"
|
||||||
[id]="stakeholder.alias" [name]="stakeholder.name" [type]="stakeholder.type"></role-verification>
|
[id]="stakeholder.alias" [name]="stakeholder.name" [type]="stakeholder.type"></role-verification>
|
||||||
<notification-sidebar *ngIf="properties.environment === 'development' && user && notificationGroupsInitialized"
|
<notification-sidebar *ngIf="properties.environment !== 'production' && user && notificationGroupsInitialized"
|
||||||
[user]="user" [availableGroups]="notificationGroups" service="monitor"></notification-sidebar>
|
[user]="user" [availableGroups]="notificationGroups" service="monitor"></notification-sidebar>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -174,7 +174,7 @@ export class AppComponent implements OnInit, OnDestroy {
|
||||||
this.user = user;
|
this.user = user;
|
||||||
if (user) {
|
if (user) {
|
||||||
this.buildMenu();
|
this.buildMenu();
|
||||||
if(!this.notificationGroupsInitialized && this.properties.environment === 'development') {
|
if(!this.notificationGroupsInitialized && this.properties.environment !== 'production') {
|
||||||
this.setNotificationGroups();
|
this.setNotificationGroups();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -274,6 +274,10 @@ export class AppComponent implements OnInit, OnDestroy {
|
||||||
rootItem: new MenuItem("dashboard", "Dashboard",
|
rootItem: new MenuItem("dashboard", "Dashboard",
|
||||||
"", "/" + this.stakeholder.alias, false, [], null, {}), items: []
|
"", "/" + this.stakeholder.alias, false, [], null, {}), items: []
|
||||||
});
|
});
|
||||||
|
this.menuItems.push({
|
||||||
|
rootItem: new MenuItem("terminology", "Terminology",
|
||||||
|
"", "/" + this.stakeholder.alias + "/terminology", false, [], null, {}), items: []
|
||||||
|
});
|
||||||
if(this.stakeholder.type === "funder") {
|
if(this.stakeholder.type === "funder") {
|
||||||
this.menuItems.push({
|
this.menuItems.push({
|
||||||
rootItem: new MenuItem("develop", "Develop",
|
rootItem: new MenuItem("develop", "Develop",
|
||||||
|
@ -298,6 +302,10 @@ export class AppComponent implements OnInit, OnDestroy {
|
||||||
badge: false,
|
badge: false,
|
||||||
stickyAnimation: false
|
stickyAnimation: false
|
||||||
};
|
};
|
||||||
|
this.menuItems.push({
|
||||||
|
rootItem: new MenuItem("terminology", "Terminology",
|
||||||
|
"", "/" + this.stakeholder.alias + "/terminology", false, [], null, {}), items: []
|
||||||
|
});
|
||||||
if(this.stakeholder.type === "funder") {
|
if(this.stakeholder.type === "funder") {
|
||||||
this.menuItems.push({
|
this.menuItems.push({
|
||||||
rootItem: new MenuItem("develop", "Develop",
|
rootItem: new MenuItem("develop", "Develop",
|
||||||
|
@ -310,7 +318,6 @@ export class AppComponent implements OnInit, OnDestroy {
|
||||||
"", "/admin", false, [], null, {}), items: []
|
"", "/admin", false, [], null, {}), items: []
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.isPublicOrIsMember(this.stakeholder.visibility)) {
|
if (this.isPublicOrIsMember(this.stakeholder.visibility)) {
|
||||||
this.specialSideBarMenuItem = new MenuItem("search", "Search research outcomes", "", this.properties.searchLinkToResults, false, [], null, {});
|
this.specialSideBarMenuItem = new MenuItem("search", "Search research outcomes", "", this.properties.searchLinkToResults, false, [], null, {});
|
||||||
this.specialSideBarMenuItem.icon = '<span uk-icon="search"></span>';
|
this.specialSideBarMenuItem.icon = '<span uk-icon="search"></span>';
|
||||||
|
@ -385,21 +392,6 @@ export class AppComponent implements OnInit, OnDestroy {
|
||||||
this.adminMenuItems = [];
|
this.adminMenuItems = [];
|
||||||
this.specialSideBarMenuItem = null;
|
this.specialSideBarMenuItem = null;
|
||||||
this.adminMenuItems.push(new MenuItem("stakeholders", "Manage profiles", "", "/admin", false, [], [], {}, "<i uk-icon=\"cog\"></i>"));
|
this.adminMenuItems.push(new MenuItem("stakeholders", "Manage profiles", "", "/admin", false, [], [], {}, "<i uk-icon=\"cog\"></i>"));
|
||||||
// if(Session.isPortalAdministrator(this.user) ) {
|
|
||||||
// let adminOptions = new MenuItem("adminOptions", "Admin Options","", "/admin-tools/admin-pages", false, [], [], {});
|
|
||||||
// /* adminOptions.items.push(new MenuItem("pages", "Pages", "", "/admin-tools/pages", false, [], [], {}));
|
|
||||||
// adminOptions.items.push(new MenuItem("portals", "Portals", "", "/admin-tools/portals", false, [], [], {}));
|
|
||||||
// adminOptions.items.push(new MenuItem("entities", "Entities", "", "/admin-tools/entities", false, [], [], {}));
|
|
||||||
// // adminOptions.items.push(new MenuItem("classes", "Class help texts", "", "/admin-tools/classes", false, [], [], {}));*/
|
|
||||||
// this.adminMenuItems.push(adminOptions);
|
|
||||||
// let monitorOptions = new MenuItem("monitorOptions", "Monitor Options","", "/admin-tools/admin-pages", false, [], [], {communityId: 'monitor'});
|
|
||||||
// /* monitorOptions.items.push(new MenuItem("pages", "Pages", "", "/admin-tools/pages", false, [], [], {communityId: 'monitor'}));
|
|
||||||
// monitorOptions.items.push(new MenuItem("entities", "Entities", "", "/admin-tools/entities", false, [], [], {communityId: 'monitor'}));
|
|
||||||
// // monitorOptions.items.push(new MenuItem("classes", "Class help texts", "", "/admin-tools/classContents", false, [], [], {communityId: 'monitor'}));
|
|
||||||
// monitorOptions.items.push(new MenuItem("helptexts", "Help texts", "", "/admin-tools/helptexts", false, [], [], {communityId: 'monitor'}));*/
|
|
||||||
// this.adminMenuItems.push(monitorOptions);
|
|
||||||
// }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,9 +14,9 @@ import {StakeholderUtils} from "../utils/indicator-utils";
|
||||||
<div page-content>
|
<div page-content>
|
||||||
<div inner>
|
<div inner>
|
||||||
<div *ngIf="stakeholder" class="uk-container uk-container-large uk-section-small">
|
<div *ngIf="stakeholder" class="uk-container uk-container-large uk-section-small">
|
||||||
<h2 class="uk-text-center">
|
<h1 class="uk-text-center uk-h2">
|
||||||
Develop
|
Develop
|
||||||
</h2>
|
</h1>
|
||||||
<div class="uk-margin-medium-top uk-card uk-card-body uk-card-default">
|
<div class="uk-margin-medium-top uk-card uk-card-body uk-card-default">
|
||||||
<h3 class="uk-text-center">Help developers with <span
|
<h3 class="uk-text-center">Help developers with <span
|
||||||
class="portal-color uk-text-bold">OpenAIRE APIs</span>
|
class="portal-color uk-text-bold">OpenAIRE APIs</span>
|
||||||
|
|
|
@ -99,7 +99,7 @@ declare var UIkit;
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div #notify notify-form [class.uk-hidden]="properties.environment !== 'development'" class="uk-width-1-1 uk-margin-medium-top uk-margin-medium-bottom"></div>
|
<div #notify notify-form [class.uk-hidden]="properties.environment === 'production'" class="uk-width-1-1 uk-margin-medium-top uk-margin-medium-bottom"></div>
|
||||||
</div>`,
|
</div>`,
|
||||||
styleUrls: ['edit-stakeholder.component.css']
|
styleUrls: ['edit-stakeholder.component.css']
|
||||||
})
|
})
|
||||||
|
|
|
@ -16,7 +16,16 @@ import {EnvironmentSpecificResolver} from "../openaireLibrary/utils/properties/e
|
||||||
{
|
{
|
||||||
path: ':stakeholder/develop',
|
path: ':stakeholder/develop',
|
||||||
loadChildren: '../develop/develop.module#DevelopModule',
|
loadChildren: '../develop/develop.module#DevelopModule',
|
||||||
resolve: {envSpecific: EnvironmentSpecificResolver},
|
canDeactivate: [PreviousRouteRecorder],
|
||||||
|
data: {
|
||||||
|
hasSidebar: false,
|
||||||
|
isDashboard: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: ':stakeholder/terminology',
|
||||||
|
loadChildren: '../terminology/terminology.module#TerminologyModule',
|
||||||
|
canDeactivate: [PreviousRouteRecorder],
|
||||||
data: {
|
data: {
|
||||||
hasSidebar: false,
|
hasSidebar: false,
|
||||||
isDashboard: false
|
isDashboard: false
|
||||||
|
@ -25,7 +34,7 @@ import {EnvironmentSpecificResolver} from "../openaireLibrary/utils/properties/e
|
||||||
{
|
{
|
||||||
path: ':stakeholder/search',
|
path: ':stakeholder/search',
|
||||||
loadChildren: '../search/search.module#SearchModule',
|
loadChildren: '../search/search.module#SearchModule',
|
||||||
resolve: {envSpecific: EnvironmentSpecificResolver}
|
canDeactivate: [PreviousRouteRecorder]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: ':stakeholder/:topic',
|
path: ':stakeholder/:topic',
|
||||||
|
|
|
@ -132,7 +132,7 @@
|
||||||
[class.uk-disabled]="indicator.indicatorPaths[0].filtersApplied < countSelectedFilters()"
|
[class.uk-disabled]="indicator.indicatorPaths[0].filtersApplied < countSelectedFilters()"
|
||||||
[class.semiFiltered]="indicator.indicatorPaths[0].filtersApplied < countSelectedFilters()">
|
[class.semiFiltered]="indicator.indicatorPaths[0].filtersApplied < countSelectedFilters()">
|
||||||
<div class="uk-card-body uk-text-center">
|
<div class="uk-card-body uk-text-center">
|
||||||
<div *ngIf="properties.environment == 'development'">Filtered:
|
<div *ngIf="properties.environment === 'development'">Filtered:
|
||||||
{{indicator.indicatorPaths[0].filtersApplied}}
|
{{indicator.indicatorPaths[0].filtersApplied}}
|
||||||
out of
|
out of
|
||||||
{{countSelectedFilters()}}</div>
|
{{countSelectedFilters()}}</div>
|
||||||
|
@ -172,7 +172,7 @@
|
||||||
{{indicatorPath.type}}
|
{{indicatorPath.type}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="properties.environment == 'development'">
|
<div *ngIf="properties.environment === 'development'">
|
||||||
Filtered: {{chartsActiveType.get(i + '-' + j).filtersApplied}} out of
|
Filtered: {{chartsActiveType.get(i + '-' + j).filtersApplied}} out of
|
||||||
{{countSelectedFilters()}}</div>
|
{{countSelectedFilters()}}</div>
|
||||||
<iframe *ngIf=" !properties.disableFrameLoad && chartsActiveType.get(i + '-' + j).source !==
|
<iframe *ngIf=" !properties.disableFrameLoad && chartsActiveType.get(i + '-' + j).source !==
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
table {
|
||||||
|
font-size: 14px;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
table th, table td {
|
||||||
|
border: 1px solid #DEDEDE;
|
||||||
|
padding: 25px 40px;
|
||||||
|
vertical-align: top;
|
||||||
|
text-align: start;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.portal-circle {
|
||||||
|
list-style: none;
|
||||||
|
padding-left: 40px;
|
||||||
|
font-family: "Open Sans", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.portal-circle li {
|
||||||
|
margin: 0 0 2px 0;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.portal-circle li:before {
|
||||||
|
content: "";
|
||||||
|
border: 5px var(--portal-main-color) solid !important;
|
||||||
|
border-radius: 50px;
|
||||||
|
line-height: 21px;
|
||||||
|
margin-left: -20px;
|
||||||
|
position: absolute;
|
||||||
|
top: 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 959px) {
|
||||||
|
ul.portal-circle {
|
||||||
|
padding-left: 20px;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,224 @@
|
||||||
|
import {Component, OnDestroy, OnInit} from "@angular/core";
|
||||||
|
import {StakeholderService} from "../openaireLibrary/monitor/services/stakeholder.service";
|
||||||
|
import {Stakeholder} from "../openaireLibrary/monitor/entities/stakeholder";
|
||||||
|
import {Subscription} from "rxjs";
|
||||||
|
import {Meta, Title} from "@angular/platform-browser";
|
||||||
|
import {SEOService} from "../openaireLibrary/sharedComponents/SEO/SEO.service";
|
||||||
|
import {properties} from "../../environments/environment";
|
||||||
|
import {ActivatedRoute, Router} from "@angular/router";
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'terminology',
|
||||||
|
template: `
|
||||||
|
<div page-content>
|
||||||
|
<div inner>
|
||||||
|
<div *ngIf="stakeholder" class="uk-container uk-container-large uk-section-small">
|
||||||
|
<h1 class="uk-text-center uk-h2">
|
||||||
|
Terminology and construction
|
||||||
|
</h1>
|
||||||
|
<div class="uk-margin-large-top">
|
||||||
|
<ul class="uk-tab admin customTabs uk-margin-medium-bottom" uk-tab>
|
||||||
|
<li [class.uk-active]="tab === 'entities'"><a (click)="tab = 'entities'"><span
|
||||||
|
class="title">Entities</span></a></li>
|
||||||
|
<li [class.uk-active]="tab === 'attributes'"><a (click)="tab = 'attributes'"><span class="title">Attributes of Research Results</span></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<table *ngIf="tab === 'entities'">
|
||||||
|
<tr>
|
||||||
|
<th>Research Outputs</th>
|
||||||
|
<td>
|
||||||
|
<div>There are currently four different types of research outputs types in the OpenAIRE Research
|
||||||
|
Graph:
|
||||||
|
</div>
|
||||||
|
<ul class="portal-circle">
|
||||||
|
<li>Publication</li>
|
||||||
|
<li>Dataset</li>
|
||||||
|
<li>Software</li>
|
||||||
|
<li>Other Research Products</li>
|
||||||
|
</ul>
|
||||||
|
<div class="uk-margin-small-top">
|
||||||
|
OpenAIRE deduplicates (merges) different records or research outputs and keeps the metadata of all
|
||||||
|
instances.
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Publication</th>
|
||||||
|
<td>Research outputs intended for human reading (published articles, pre-prints, conference papers,
|
||||||
|
presentations, technical reports, etc.)
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Dataset</th>
|
||||||
|
<td>Research data (granularity is not defined by OpenAIRE, which reflects the granularity supported by
|
||||||
|
the sources from which the description of the dataset has been collected)
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Software</th>
|
||||||
|
<td>Source code or software package developed and/or used in a research context.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Other Research Product</th>
|
||||||
|
<td>Anything that does not fall in the previous categories (e.g. workflow, methods, protocols).</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table *ngIf="tab === 'attributes'">
|
||||||
|
<tr>
|
||||||
|
<th>Organization & Country</th>
|
||||||
|
<td>
|
||||||
|
<p>For research output: The affiliated organizations of its authors (and their country).</p>
|
||||||
|
<p>For projects: The organizations participating in the project (i.e. beneficiaries of the grant), and
|
||||||
|
their countries (when available).
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Country code mapping:
|
||||||
|
<a href="https://api.openaire.eu/vocabularies/dnet:countries" target="_blank">
|
||||||
|
https://api.openaire.eu/vocabularies/dnet:countries</a>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Type</th>
|
||||||
|
<td>
|
||||||
|
<p>The type of research output (e.g. a publication can be a pre-print, conference proceeding, article,
|
||||||
|
etc.)</p>
|
||||||
|
<p>Resource type mapping:
|
||||||
|
<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>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Access mode</th>
|
||||||
|
<td>
|
||||||
|
<p>The best available (across all instances) access rights of a research output.</p>
|
||||||
|
<p>Types: open, restricted, closed, embargo (= closed for a specific period of time, then open)</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>PID (persistent identifier)</th>
|
||||||
|
<td>
|
||||||
|
<p>A long-lasting reference to a resource</p>
|
||||||
|
<p>Types: <a href="http://api.openaire.eu/vocabularies/dnet:pid_types" target="_blank">http://api.openaire.eu/vocabularies/dnet:pid_types</a>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Context</th>
|
||||||
|
<td>Related research community/initiative/infrastructure</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Journal</th>
|
||||||
|
<td>The scientific journal an article is published in.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Publisher</th>
|
||||||
|
<td>The publisher of the venue (journal, book, etc.) of a research output</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Content Provider (Datasources)</th>
|
||||||
|
<td>
|
||||||
|
<p>The different data sources ingested in the OpenAIRE Research Graph.</p>
|
||||||
|
<div>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>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Repository</th>
|
||||||
|
<td>Information systems where scientists upload the bibliographic metadata and payloads of their
|
||||||
|
research outputs (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).
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Open Access Publishers & Journals</th>
|
||||||
|
<td>Information systems of open access publishers or relative journals, which offer bibliographic
|
||||||
|
metadata and PDFs of their published articles.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Aggregators</th>
|
||||||
|
<td>Information systems that collect descriptive metadata about research products from multiple sources
|
||||||
|
in order to enable cross-data source discovery of given research products. Examples are DataCite,
|
||||||
|
BASE, DOAJ.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Entity Registries</th>
|
||||||
|
<td>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.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>CRIS (Current Research Information System)</th>
|
||||||
|
<td>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.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<div class="uk-text-small uk-margin-small-top">More information at <a href="https://graph.openaire.eu">https://graph.openaire.eu</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`,
|
||||||
|
styleUrls: ['terminology.component.css']
|
||||||
|
})
|
||||||
|
export class TerminologyComponent implements OnInit, OnDestroy {
|
||||||
|
|
||||||
|
public stakeholder: Stakeholder;
|
||||||
|
public tab: 'entities' | 'attributes' = 'entities';
|
||||||
|
private subscriptions: any[] = [];
|
||||||
|
|
||||||
|
constructor(private stakeholderService: StakeholderService,
|
||||||
|
private seoService: SEOService,
|
||||||
|
private _meta: Meta,
|
||||||
|
private _router: Router,
|
||||||
|
private route: ActivatedRoute,
|
||||||
|
private _title: Title) {
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.subscriptions.push(this.route.fragment.subscribe(tab => {
|
||||||
|
if (tab === 'attributes') {
|
||||||
|
this.tab = tab;
|
||||||
|
} else {
|
||||||
|
this.tab = 'entities';
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
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 = "Terminology | " + this.stakeholder.name;
|
||||||
|
const title = "Terminology | " + 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,21 @@
|
||||||
|
import {NgModule} from "@angular/core";
|
||||||
|
import {CommonModule} from "@angular/common";
|
||||||
|
import {TerminologyComponent} from "./terminology.component";
|
||||||
|
import {RouterModule} from "@angular/router";
|
||||||
|
import {PreviousRouteRecorder} from "../openaireLibrary/utils/piwik/previousRouteRecorder.guard";
|
||||||
|
import {PageContentModule} from "../openaireLibrary/dashboard/sharedComponents/page-content/page-content.module";
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
declarations: [TerminologyComponent],
|
||||||
|
imports: [CommonModule, RouterModule.forChild([
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
component: TerminologyComponent,
|
||||||
|
canDeactivate: [PreviousRouteRecorder]
|
||||||
|
},
|
||||||
|
]), PageContentModule],
|
||||||
|
exports: [TerminologyComponent]
|
||||||
|
})
|
||||||
|
export class TerminologyModule {
|
||||||
|
|
||||||
|
}
|
|
@ -353,7 +353,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div #editNumberNotify notify-form class="uk-width-1-1 uk-margin-medium-top"
|
<div #editNumberNotify notify-form class="uk-width-1-1 uk-margin-medium-top"
|
||||||
[class.uk-hidden]="properties.environment !== 'development'"></div>
|
[class.uk-hidden]="properties.environment === 'production'"></div>
|
||||||
</div>
|
</div>
|
||||||
</modal-alert>
|
</modal-alert>
|
||||||
<modal-alert #editChartModal
|
<modal-alert #editChartModal
|
||||||
|
@ -484,7 +484,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div #editChartNotify notify-form class="uk-width-1-1 uk-margin-medium-top"
|
<div #editChartNotify notify-form class="uk-width-1-1 uk-margin-medium-top"
|
||||||
[class.uk-hidden]="properties.environment !== 'development'"></div>
|
[class.uk-hidden]="properties.environment === 'production'"></div>
|
||||||
</div>
|
</div>
|
||||||
</modal-alert>
|
</modal-alert>
|
||||||
<modal-alert #deleteModal (alertOutput)="deleteIndicator()">
|
<modal-alert #deleteModal (alertOutput)="deleteIndicator()">
|
||||||
|
@ -498,7 +498,7 @@
|
||||||
<!-- </span>-->
|
<!-- </span>-->
|
||||||
Are you sure you want to proceed?
|
Are you sure you want to proceed?
|
||||||
<div #deleteNotify notify-form class="uk-width-1-1 uk-margin-medium-top"
|
<div #deleteNotify notify-form class="uk-width-1-1 uk-margin-medium-top"
|
||||||
[class.uk-hidden]="properties.environment !== 'development'"></div>
|
[class.uk-hidden]="properties.environment === 'production'"></div>
|
||||||
</modal-alert>
|
</modal-alert>
|
||||||
<!--<modal-alert #deleteAllModal (alertOutput)="deleteIndicator('delete')">
|
<!--<modal-alert #deleteAllModal (alertOutput)="deleteIndicator('delete')">
|
||||||
You are about to delete <span class="uk-text-bold" *ngIf="indicator && index !== -1">
|
You are about to delete <span class="uk-text-bold" *ngIf="indicator && index !== -1">
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<role-users *ngIf="!loading && alias" [id]="alias" [type]="type" [name]="name" [link]="link" [role]="tab" [message]="messages.get(tab)"
|
<role-users *ngIf="!loading && alias" [id]="alias" [type]="type" [name]="name" [link]="link" [role]="tab" [message]="messages.get(tab)"
|
||||||
[emailComposer]="emailComposer" [notificationFn]="(properties.environment === 'development')?notificationFn:null">
|
[emailComposer]="emailComposer" [notificationFn]="(properties.environment !== 'production')?notificationFn:null">
|
||||||
<ng-container [ngTemplateOutlet]="tabs"></ng-container>
|
<ng-container [ngTemplateOutlet]="tabs"></ng-container>
|
||||||
</role-users>
|
</role-users>
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,7 @@ export let properties: EnvProperties = {
|
||||||
// monitorServiceAPIURL: "https://services.openaire.eu/uoa-monitor-service",
|
// monitorServiceAPIURL: "https://services.openaire.eu/uoa-monitor-service",
|
||||||
monitorServiceAPIURL: "http://duffy.di.uoa.gr:8080/uoa-monitor-service",
|
monitorServiceAPIURL: "http://duffy.di.uoa.gr:8080/uoa-monitor-service",
|
||||||
adminToolsAPIURL: "http://duffy.di.uoa.gr:8080/uoa-monitor-service/",
|
adminToolsAPIURL: "http://duffy.di.uoa.gr:8080/uoa-monitor-service/",
|
||||||
notificationsAPIURL: "http://mpagasas.di.uoa.gr:8080/uoa-admin-tools/notification/",
|
notificationsAPIURL: "http://duffy.di.uoa.gr:8080/uoa-monitor-service/notification/",
|
||||||
adminToolsCommunity: "monitor",
|
adminToolsCommunity: "monitor",
|
||||||
useHelpTexts: false,
|
useHelpTexts: false,
|
||||||
datasourcesAPI: "https://beta.services.openaire.eu/openaire/ds/search/",
|
datasourcesAPI: "https://beta.services.openaire.eu/openaire/ds/search/",
|
||||||
|
|
Loading…
Reference in New Issue