Funder page:

add message when there are no indicators & description
	hide search & menu items
	match height for indicators: title & frame stays at the bottom
	add link to admin
	add prototype badge

Indicator Creator:
	add more categories



git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-monitor-portal/trunk/monitor_dashboard@57812 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
Argiro Kokogiannaki 2019-12-04 17:01:55 +00:00
parent 0ea71ad361
commit c3838e06b8
9 changed files with 209 additions and 118 deletions

View File

@ -13,7 +13,7 @@ enableProdMode();
// Express server
const app = express();
const PORT = process.env.PORT || 4000;
const PORT = process.env.PORT || 5000;
const DIST_FOLDER = join(process.cwd(), 'dist');
// Our index.html we'll use as our template

View File

@ -3,7 +3,11 @@
<div class="">
<div id="header_menu" class="uk-width-1-1">
<nav class="uk-navbar">
<div class="uk-navbar-left">
<img class="large-badge"
src="assets/theme-assets/prototype_flag.svg"
alt="BETA">
<a *ngIf="stakeholder" class="uk-logo uk-navbar-item ng-star-inserted uk-link uk-margin-small-top"
routerlink="/"
routerlinkactive="uk-link" href="/">
@ -14,24 +18,13 @@
</a>
<div class="uk-margin-large-left uk-width-medium ng-star-inserted">
<div class="">
<!-- <form class="uk-search uk-search-default uk-width-1-1 ">
<a
class="uk-search-icon-flip uk-icon uk-search-icon" routerlinkactive="uk-link" uk-search-icon=""
>
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"
data-svg="search-icon">
<circle fill="none" stroke="#000" stroke-width="1.1" cx="9" cy="9" r="7"></circle>
<path fill="none" stroke="#000" stroke-width="1.1" d="M14,14 L18,18 L14,14 Z"></path>
</svg>
</a><input aria-describedby="sizing-addon2" class="uk-search-input "
name="keyword" type="search" placeholder="Search for..."></form>-->
<div dashboard-input label="Search for..." [formInput]="keyword"></div>
<!-- <div dashboard-input label="Search for..." [formInput]="keyword"></div>-->
</div>
</div>
</div>
<div *ngIf="stakeholder && status === errorCodes.DONE && activeTopic" class="uk-navbar-right uk-margin-right">
<ul class="uk-navbar-nav">
<!--<ul class="uk-navbar-nav">
<li class="uk-active">
<a class="uk-margin-remove-bottom "><span>Monitor</span></a>
</li>
@ -42,7 +35,7 @@
<a class="uk-margin-remove-bottom ">Help</a>
</li>
</ul>
</ul>-->
</div>
</nav>
</div>
@ -91,8 +84,33 @@
[(ngModel)]="endYear">
<button class="uk-button uk-button-primary" (click)="setIndicators()">Apply</button>
</div>-->
<h4 class="uk-margin uk-margin-top uk-text-bold">Indicators</h4>
<h4 *ngIf="activeSubCategory.numbers.length > 0 ||activeSubCategory.charts.length > 0; else noIndicators "
class="uk-margin uk-margin-top uk-text-bold">Indicators
</h4>
<ng-template #noIndicators>
<div class="">
<div class="">
<div class="uk-h3">
No indicators available yet. Stay tuned!
</div>
</div>
</div>
<div *ngIf="activeSubCategory.description && activeSubCategory.description.length > 0 ||
activeCategory.description && activeCategory.description.length > 0 ||
activeTopic.description && activeTopic.description.length > 0"
class="">
<div class="">
<div class="uk-h5">
{{activeSubCategory.description && activeSubCategory.description.length > 0 ? activeSubCategory.description
:(activeCategory.description && activeCategory.description.length > 0 ? activeCategory.description :
(activeTopic.description && activeTopic.description.length > 0 ? activeTopic.description : ""))}}
</div>
</div>
</div>
</ng-template>
<div class="uk-grid uk-grid-medium uk-margin-bottom" uk-height-match="target: div.md-card">
<ng-template ngFor [ngForOf]="activeSubCategory.numbers" let-number let-i="index">
<div *ngIf="number.isActive && number.isPublic"
[class.uk-width-1-3@m]="number.width === 'small'"
@ -110,16 +128,19 @@
</div>
</ng-template>
</div>
<div class="uk-grid uk-grid-medium uk-margin-bottom" uk-height-match="target: div > div > h5">
<div class="uk-grid uk-grid-medium uk-margin-bottom uk-flex uk-flex-bottom "
uk-height-match="target: div > div > .chartTitle">
<ng-template ngFor [ngForOf]="activeSubCategory.charts" let-chart let-i="index">
<div *ngIf="chart.isActive && chart.isPublic && chartsActiveType.get(i)"
[class.uk-width-1-3@m]="chart.width === 'small'"
[class.uk-width-1-2@m]="chart.width === 'medium'"
[class.uk-width-1-1]="chart.width === 'large'">
<div>
<h5 class="uk-margin-bottom uk-margin-top">{{chart.name}}</h5>
<div class="md-card"
[attr.uk-tooltip]="chart.description">
<div class="indicatorBox">
<h4 class="uk-margin-bottom uk-margin-top chartTitle uk-flex uk-flex-bottom ">
<div>{{chart.name + " "}}</div>
</h4>
<div class="md-card" [attr.uk-tooltip]="chart.description">
<div class="md-card-content uk-text-center">
<div *ngIf="chart.indicatorPaths.length > 1" class="uk-button-group">
<button *ngFor="let indicatorPath of chart.indicatorPaths;"
@ -129,11 +150,11 @@
{{indicatorPath.type}}
</button>
</div>
<iframe *ngIf="chartsActiveType.get(i).source !== 'fake'"
<iframe *ngIf="chartsActiveType.get(i).source !== 'image'"
[src]="chartsActiveType.get(i).safeResourceUrl"
class="uk-width-1-1 uk-height-medium"></iframe>
<!-- {{chartsActiveType.get(i).safeResourceUrl}}-->
<img *ngIf="chartsActiveType.get(i).source === 'fake'"
<img *ngIf="chartsActiveType.get(i).source === 'image'"
[src]="chartsActiveType.get(i).safeResourceUrl"
class="uk-width-1-1 uk-height-medium">
</div>
@ -145,4 +166,10 @@
</div>
</div>
</div>
<a id="style_switcher" class="" routerLinkActive="active"
[routerLink]="['/admin', this.stakeholder.alias]">
<div id="style_switcher_toggle"><i class="material-icons"></i></div>
</a>
</div>

View File

@ -5,68 +5,36 @@ export class StakeholderCreator {
static createFunderDefaultProfile():Stakeholder{
let funder:Stakeholder = new Stakeholder(null,"funder","_funder_id_","_funder_name_","_FSN_",true,"deafult_funder",true,true, null);
funder.topics.push(StakeholderCreator.createResearchProductionTopic(funder));
funder.topics.push(StakeholderCreator.createOpenAccessTopic(funder));
funder.topics.push(StakeholderCreator.createOSTopic(funder));
funder.topics.push(funder.createImpactTopic());
funder.topics.push(funder.createCollaborationTopic());
let collaboration = new Topic("Collaboration","Indexes for collaboration","collaboration", true, true);
collaboration.categories.push(this.createEmptyCategory("Academic Impact","","academic-impact"));
collaboration.categories.push(this.createEmptyCategory("Economic Impact","","economic-impact"));
collaboration.categories.push(this.createEmptyCategory("Societal Impact","","societal-impact"));
funder.topics.push(collaboration);
funder.topics.push(StakeholderCreator.createEmptyTopic("Diffusion","","diffusion"));
let impact = new Topic("Impact", "", "impact", true, true);
impact.categories.push(this.createEmptyCategory("Academic Impact","","academic-impact"));
impact.categories.push(this.createEmptyCategory("Economic Impact","","economic-impact"));
impact.categories.push(this.createEmptyCategory("Societal Impact","","societal-impact"));
funder.topics.push(impact);
return funder;
}
static createFunderFromDefaultProfile(id: string, type: string, index_id, index_name: string, index_shortName:string , isDefaultProfile: boolean, alias:string , isActive: boolean, isPublic: boolean, logoUrl:string):Stakeholder{
let funder:Stakeholder = StakeholderCreator.createFunderDefaultProfile();
funder.initializeFunder(id,type, index_id, index_name, index_shortName, isDefaultProfile, alias, isActive, isPublic, logoUrl);
for (let topic of funder.topics) {
for (let category of topic.categories) {
let subTokeep: SubCategory[] = [];
for (let subCategory of category.subCategories) {
let chartsTokeep: Indicator[] = [];
if (subCategory.recommendedFor.length == 0 || subCategory.recommendedFor.indexOf(id) != -1) {
subTokeep.push(subCategory);
}
for (let indicator of subCategory.charts) {
if (indicator.recommendedFor.length == 0 || indicator.recommendedFor.indexOf(id) != -1) {
chartsTokeep.push(indicator);
}
for (let indicatorPath of indicator.indicatorPaths) {
if (indicatorPath.parameters) {
Object.keys(indicatorPath.parameters).forEach(key => {
if (indicatorPath.parameters[key].indexOf("_funder_name_") != -1) {
indicatorPath.parameters[key] = indicatorPath.parameters[key].replace("_funder_name_", funder.index_name);
} else if (indicatorPath.parameters[key].indexOf("_fsn_") != -1) {
indicatorPath.parameters[key] = indicatorPath.parameters[key].toString().replace("_fsn_", funder.index_shortName.toLowerCase());
}
});
}
}
}
subCategory.charts = chartsTokeep;
for (let indicator of subCategory.numbers) {
for (let indicatorPath of indicator.indicatorPaths) {
indicatorPath.url = indicatorPath.url.replace("_funder_id_", funder.index_id);
// if(indicatorPath.parameters) {
// indicatorPath.parameters.forEach((value: string, key: string) => {
// if (value.indexOf("_funder_name_")!=-1) {
// indicatorPath.parameters.set(key,value.toString().replace("_funder_name_", funder.index_name));
// }else if (value.indexOf("_fsn_")!=-1) {
// indicatorPath.parameters.set(key,value.toString().replace("_fsn_", funder.index_shortName.toLowerCase()));
// }
// });
// }
}
}
}
category.subCategories = subTokeep;
}
}
console.log(funder);
return funder;
static createEmptyTopic(name: string, description: string, alias: string):Topic{
let topic = new Topic(name, description, alias, true, true);
topic.categories.push(this.createEmptyCategory("Overview","","overview"));
return topic;
}
static createEmptyCategory(name: string, description: string, alias: string):Category{
let cat:Category = new Category(name, description, alias,true,true);
cat.subCategories.push(new SubCategory("Overview","","overview",true,true,true));
return cat;
}
static createResearchProductionTopic(stakeholder:Stakeholder):Topic {
let topic = new Topic("Research production", "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do...", "research-production", true, true);
let topic = new Topic("Throughput / Output", "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do...", "research-production", true, true);
let pubCategory:Category = new Category("Publications","","publications",true,true);
topic.categories.push(pubCategory);
@ -74,7 +42,6 @@ export class StakeholderCreator {
pubCategory.subCategories.push(StakeholderCreator.createResearchProductionPerType(stakeholder,"Publications", "Publication","publication", "publications",0));
pubCategory.subCategories.push(StakeholderCreator.createResearchProductionPerType(stakeholder,"Publications", "Publication","publication", "publications",1));
pubCategory.subCategories.push(StakeholderCreator.createResearchProductionPerType(stakeholder,"Publications", "Publication","publication", "publications",2));
let dataCategory:Category = new Category("Research data","","data",true,true);
topic.categories.push(dataCategory);
dataCategory.subCategories.push(StakeholderCreator.createResearchProductionPerType(stakeholder,"Research data", "Research data","dataset", "datasets",0));
@ -161,32 +128,32 @@ export class StakeholderCreator {
//{"library":"HighCharts","chartDescription":{"queries":[{"name":"Research Data","type":"bar","query":{"select":[{"field":"dataset","aggregate":"count"},{"field":"dataset.project.funding level 1","aggregate":null}],"filters":[{"groupFilters":[{"field":"dataset.project.funder","type":"=","values":["European Commission"]}],"op":"AND"}],"entity":"dataset","profile":"OpenAIRE All-inclusive","limit":"30"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Scientific Area"},"subtitle":{},"yAxis":{"title":{}},"xAxis":{"title":{}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}
let datasource = new Indicator("",null, "chart","small",true, true,[new IndicatorPath("bar", "stats-tool", "chart?json=",
'{"library":"HighCharts","chartDescription":{"queries":[{"name":"'+typePlural+'","type":"'+ChartHelper.prefix+'type'+ChartHelper.suffix+'","query":{"name":"monitor.'+ChartHelper.prefix+'id'+ChartHelper.suffix+(index==1?".h2020":(index==2?".fp7":""))+'.'+dbTypePlural+'.datasources"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"'+ChartHelper.prefix+'title'+ChartHelper.suffix+'"},"subtitle":{},"yAxis":{"title":{"text":"'+typePlural+'"}},"xAxis":{"title":{"text":"Content provider"}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}', null)]);
'{"library":"HighCharts","chartDescription":{"queries":[{"name":"'+typePlural+'","type":"'+ChartHelper.prefix+'type'+ChartHelper.suffix+'","query":{"name":"monitor.'+ChartHelper.prefix+'id'+ChartHelper.suffix+(index==2?".h2020":(index==1?".fp7":""))+'.'+dbTypePlural+'.datasources"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"'+ChartHelper.prefix+'title'+ChartHelper.suffix+'"},"subtitle":{},"yAxis":{"title":{"text":"'+typePlural+'"}},"xAxis":{"title":{"text":"Content provider"}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}', null)]);
datasource.indicatorPaths[0].parameters = IndicatorPath.createParameters(stakeholder.index_name,chartTitle[index] + typeSingl+" content provider","bar");
datasource.indicatorPaths[0].parameters["id"] = stakeholder.index_shortName.toLowerCase();
pubDefSub.charts.push(datasource);
if(dbType == "publication") {
let journal = new Indicator("", null, "chart", "small", true, true, [new IndicatorPath("bar", "stats-tool", "chart?json=",
'{"library":"HighCharts","chartDescription":{"queries":[{"name":"' + typePlural + '","type":"' + ChartHelper.prefix + 'type' + ChartHelper.suffix + '","query":{"name":"monitor.' + ChartHelper.prefix + 'id' + ChartHelper.suffix +(index==1?".h2020":(index==2?".fp7":""))+ '.' + dbTypePlural + '.journals"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"' + ChartHelper.prefix + 'title' + ChartHelper.suffix + '"},"subtitle":{},"yAxis":{"title":{"text":"' + typePlural + '"}},"xAxis":{"title":{"text":"Journal"}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}', null)]);
'{"library":"HighCharts","chartDescription":{"queries":[{"name":"' + typePlural + '","type":"' + ChartHelper.prefix + 'type' + ChartHelper.suffix + '","query":{"name":"monitor.' + ChartHelper.prefix + 'id' + ChartHelper.suffix +(index==2?".h2020":(index==1?".fp7":""))+ '.' + dbTypePlural + '.journals"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"' + ChartHelper.prefix + 'title' + ChartHelper.suffix + '"},"subtitle":{},"yAxis":{"title":{"text":"' + typePlural + '"}},"xAxis":{"title":{"text":"Journal"}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}', null)]);
journal.indicatorPaths[0].parameters = IndicatorPath.createParameters(stakeholder.index_name, chartTitle[index] + typeSingl + " journal", "bar");
journal.indicatorPaths[0].parameters["id"] = stakeholder.index_shortName.toLowerCase();
pubDefSub.charts.push(journal);
let repo = new Indicator("", null, "chart", "small", true, true, [new IndicatorPath("bar", "stats-tool", "chart?json=",
'{"library":"HighCharts","chartDescription":{"queries":[{"name":"' + typePlural + '","type":"' + ChartHelper.prefix + 'type' + ChartHelper.suffix + '","query":{"name":"monitor.' + ChartHelper.prefix + 'id' + ChartHelper.suffix +(index==1?".h2020":(index==2?".fp7":""))+ '.' + dbTypePlural + '.repositories"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"' + ChartHelper.prefix + 'title' + ChartHelper.suffix + '"},"subtitle":{},"yAxis":{"title":{"text":"' + typePlural + '"}},"xAxis":{"title":{"text":"Repositories"}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}', null)]);
'{"library":"HighCharts","chartDescription":{"queries":[{"name":"' + typePlural + '","type":"' + ChartHelper.prefix + 'type' + ChartHelper.suffix + '","query":{"name":"monitor.' + ChartHelper.prefix + 'id' + ChartHelper.suffix +(index==2?".h2020":(index==1?".fp7":""))+ '.' + dbTypePlural + '.repositories"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"' + ChartHelper.prefix + 'title' + ChartHelper.suffix + '"},"subtitle":{},"yAxis":{"title":{"text":"' + typePlural + '"}},"xAxis":{"title":{"text":"Repositories"}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}', null)]);
repo.indicatorPaths[0].parameters = IndicatorPath.createParameters(stakeholder.index_name, chartTitle[index] + typeSingl + " repositories", "bar");
repo.indicatorPaths[0].parameters["id"] = stakeholder.index_shortName.toLowerCase();
pubDefSub.charts.push(repo);
}
if(dbType == "dataset") {
let repo = new Indicator("", null, "chart", "small", true, true, [new IndicatorPath("bar", "stats-tool", "chart?json=",
'{"library":"HighCharts","chartDescription":{"queries":[{"name":"' + typePlural + '","type":"' + ChartHelper.prefix + 'type' + ChartHelper.suffix + '","query":{"name":"monitor.' + ChartHelper.prefix + 'id' + ChartHelper.suffix + (index==1?".h2020":(index==2?".fp7":""))+'.' + dbTypePlural + '.drepositories"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"' + ChartHelper.prefix + 'title' + ChartHelper.suffix + '"},"subtitle":{},"yAxis":{"title":{"text":"' + typePlural + '"}},"xAxis":{"title":{"text":"Data Repositories"}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}', null)]);
'{"library":"HighCharts","chartDescription":{"queries":[{"name":"' + typePlural + '","type":"' + ChartHelper.prefix + 'type' + ChartHelper.suffix + '","query":{"name":"monitor.' + ChartHelper.prefix + 'id' + ChartHelper.suffix + (index==2?".h2020":(index==1?".fp7":""))+'.' + dbTypePlural + '.drepositories"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"' + ChartHelper.prefix + 'title' + ChartHelper.suffix + '"},"subtitle":{},"yAxis":{"title":{"text":"' + typePlural + '"}},"xAxis":{"title":{"text":"Data Repositories"}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}', null)]);
repo.indicatorPaths[0].parameters = IndicatorPath.createParameters(stakeholder.index_name, chartTitle[index] + typeSingl + " repositories", "bar");
repo.indicatorPaths[0].parameters["id"] = stakeholder.index_shortName.toLowerCase();
pubDefSub.charts.push(repo);
let irepo = new Indicator("", null, "chart", "small", true, true, [new IndicatorPath("bar", "stats-tool", "chart?json=",
'{"library":"HighCharts","chartDescription":{"queries":[{"name":"' + typePlural + '","type":"' + ChartHelper.prefix + 'type' + ChartHelper.suffix + '","query":{"name":"monitor.' + ChartHelper.prefix + 'id' + ChartHelper.suffix +(index==1?".h2020":(index==2?".fp7":""))+ '.' + dbTypePlural + '.irepositories"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"' + ChartHelper.prefix + 'title' + ChartHelper.suffix + '"},"subtitle":{},"yAxis":{"title":{"text":"' + typePlural + '"}},"xAxis":{"title":{"text":"Institutional repositories"}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}', null)]);
'{"library":"HighCharts","chartDescription":{"queries":[{"name":"' + typePlural + '","type":"' + ChartHelper.prefix + 'type' + ChartHelper.suffix + '","query":{"name":"monitor.' + ChartHelper.prefix + 'id' + ChartHelper.suffix +(index==2?".h2020":(index==1?".fp7":""))+ '.' + dbTypePlural + '.irepositories"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"' + ChartHelper.prefix + 'title' + ChartHelper.suffix + '"},"subtitle":{},"yAxis":{"title":{"text":"' + typePlural + '"}},"xAxis":{"title":{"text":"Institutional repositories"}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}', null)]);
irepo.indicatorPaths[0].parameters = IndicatorPath.createParameters(stakeholder.index_name, chartTitle[index] + typeSingl + " institutional repositories", "bar");
irepo.indicatorPaths[0].parameters["id"] = stakeholder.index_shortName.toLowerCase();
pubDefSub.charts.push(irepo);
@ -202,7 +169,7 @@ export class StakeholderCreator {
}
return pubDefSub;
}
static createOASub(){
/* static createOASub(){
let subCategories:SubCategory[] = [];
let overviewSub = new SubCategory("Overview", null,"overview",true, true);
subCategories.push(overviewSub);
@ -211,42 +178,32 @@ export class StakeholderCreator {
let byProgramSub = new SubCategory("By Programme", null,"programme",true, true);
subCategories.push(byProgramSub);
return subCategories;
}*/
static createOpenAccessTopic(stakeholder:Stakeholder):Category {
let category = new Category("Open Access", "", "open-access", true, true);
category.subCategories.push(this.createOASub(stakeholder,"Publications","Publication","publication","publications"));
category.subCategories.push(this.createOASub(stakeholder,"Research data","Research data","dataset","datasets"));
category.subCategories.push(this.createOASub(stakeholder,"Software","Software","software","software"));
category.subCategories.push(this.createOASub(stakeholder,"Other research products","Other research product","other","other"));
return category;
}
static createOpenAccessTopic(stakeholder:Stakeholder):Topic {
let topic = new Topic("Open Access", "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do...", "open-access", true, true);
let pubCategory:Category = new Category("Publications","","publications",true,true);
topic.categories.push(pubCategory);
pubCategory.subCategories = StakeholderCreator.createOASub();
let dataCategory:Category = new Category("Research data","","data",true,true);
topic.categories.push(dataCategory);
dataCategory.subCategories = StakeholderCreator.createOASub();
let softwareCategory:Category = new Category("Software","","software",true,true);
topic.categories.push(softwareCategory);
softwareCategory.subCategories = StakeholderCreator.createOASub();
let otherCategory:Category = new Category("Other research products","","other",true,true);
topic.categories.push(otherCategory);
otherCategory.subCategories = StakeholderCreator.createOASub();
return topic;
static createOASub(stakeholder:Stakeholder,typePlural, typeSingl, dbType, dbTypePlural ):SubCategory {
let sub:SubCategory = new SubCategory(typePlural, null, dbTypePlural, true, true);
return sub;
}
static createOSTopic(stakeholder:Stakeholder):Topic{
let topic = new Topic("Open Science","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do...","open-science",true,true);
topic.categories.push(this.createOpenAccessTopic(stakeholder));
let linked:Category = new Category("Fair / Linked","","linked",true,true);
topic.categories.push(linked);
linked.subCategories.push(this.createOSOverviewPerType(stakeholder,"Publications","Publication","publication","publications"));
linked.subCategories.push(this.createOSOverviewPerType(stakeholder,"Research data","Research data","dataset","datasets"));
linked.subCategories.push(this.createOSOverviewPerType(stakeholder,"Software","Software","software","software"));
linked.subCategories.push(this.createOSOverviewPerType(stakeholder,"Other research products","Other research product","other","other"));
let overview:Category = new Category("Overview","","overview",true,true);
topic.categories.push(overview);
overview.subCategories.push(this.createOSOverviewPerType(stakeholder,"Publications","Publication","publication","publications"));
overview.subCategories.push(this.createOSOverviewPerType(stakeholder,"Research data","Research data","dataset","datasets"));
overview.subCategories.push(this.createOSOverviewPerType(stakeholder,"Software","Software","software","software"));
overview.subCategories.push(this.createOSOverviewPerType(stakeholder,"Other research products","Other research product","other","other"));
let openInfra:Category = new Category("Open Infrastructures","","open-infrastructures",true,true);
openInfra.subCategories.push(new SubCategory("Overview","","overview",true,true,true));
topic.categories.push(openInfra);
return topic;
}

View File

@ -37,11 +37,11 @@ export class StakeholderUtils {
let subTokeep: SubCategory[] = [];
for (let subCategory of category.subCategories) {
let chartsTokeep: Indicator[] = [];
if (subCategory.recommendedFor.length == 0 || subCategory.recommendedFor.indexOf(funder.index_id) != -1) {
if (subCategory.recommendedFor.length == 0 || subCategory.recommendedFor.indexOf(funder._id) != -1) {
subTokeep.push(subCategory);
}
for (let indicator of subCategory.charts) {
if (indicator.recommendedFor.length == 0 || indicator.recommendedFor.indexOf(funder.index_id) != -1) {
if (indicator.recommendedFor.length == 0 || indicator.recommendedFor.indexOf(funder._id) != -1) {
chartsTokeep.push(indicator);
}
for (let indicatorPath of indicator.indicatorPaths) {

View File

@ -95,3 +95,7 @@
.double-header .uk-logo img{
max-height: 80px;
}
.stakeholderPage #style_switcher{
top:200px;
}

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 118 118" style="enable-background:new 0 0 118 118;" xml:space="preserve">
<style type="text/css">
.st0{clip-path:url(#SVGID_2_);}
.st1{fill:#FFE250;}
.st2{fill:none;stroke:#EFC82A;stroke-width:3;stroke-dasharray:8;}
.st3{enable-background:new ;}
</style>
<g>
<defs>
<rect id="SVGID_1_" y="0" width="118" height="118"/>
</defs>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_1_" style="overflow:visible;"/>
</clipPath>
<g class="st0">
<g transform="translate(27 32)">
<g transform="translate(-161.906 166.693) rotate(-45)">
<rect x="0" y="0" transform="matrix(-1 2.535182e-06 -2.535182e-06 -1 523.3979 37.2033)" class="st1" width="523.4" height="37.2"/>
<rect x="1.5" y="1.5" transform="matrix(-1 2.535182e-06 -2.535182e-06 -1 523.3979 37.2033)" class="st2" width="520.4" height="34.2"/>
</g>
<g class="st3">
<path d="M3.9,21.3l2.2-2.2c1-1,1.9-1.6,2.6-1.8c0.7-0.2,1.4,0.1,2,0.7c0.4,0.4,0.7,0.9,0.7,1.3s0,0.9-0.3,1.3l0,0
c0.5-0.3,1.1-0.5,1.5-0.4c0.5,0.1,0.9,0.3,1.4,0.8c0.6,0.6,0.9,1.4,0.8,2.2c-0.1,0.8-0.6,1.6-1.4,2.4L11,28.4L3.9,21.3z
M8.2,22.6l0.9-0.9c0.4-0.4,0.6-0.8,0.7-1.1s-0.1-0.6-0.3-0.9c-0.3-0.3-0.6-0.4-0.9-0.3c-0.3,0.1-0.7,0.3-1.1,0.8l-0.8,0.8
L8.2,22.6z M9.4,23.8l1.8,1.8l1-1c0.4-0.4,0.6-0.8,0.7-1.2c0-0.4-0.1-0.7-0.4-1c-0.6-0.6-1.3-0.5-2.1,0.4L9.4,23.8z"/>
<path d="M21.7,17.7l-4.1,4.1l-7.1-7.1l4.1-4.1l1.2,1.2l-2.6,2.6l1.6,1.6l2.4-2.4l1.2,1.2l-2.4,2.4l1.8,1.8l2.6-2.6L21.7,17.7z"
/>
<path d="M25.9,13.5L24.4,15l-5.8-5.8l-1.9,1.9l-1.2-1.2l5.3-5.3L22,5.7l-1.9,1.9L25.9,13.5z"/>
<path d="M33.3,6.1L31.1,5l-2.6,2.6l1.2,2.2L28,11.4l-4.6-9.6l1.8-1.8l9.6,4.6L33.3,6.1z M29.4,4.1c-2-1.1-3.1-1.6-3.4-1.8
c-0.3-0.1-0.5-0.3-0.6-0.3c0.3,0.5,1,1.8,2.1,4L29.4,4.1z"/>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -204,3 +204,11 @@ body.dashboard {
.dashboard .uk-dropdown .uk-nav.uk-dropdown-nav > li > a {
padding: 5px 10px;
}
.large-badge {
height: 104px;
position: absolute;
top: 0;
left: 0;
z-index: 1;
}

View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 118 118" style="enable-background:new 0 0 118 118;" xml:space="preserve">
<style type="text/css">
.st0{clip-path:url(#SVGID_2_);}
.st1{fill:#92A3D2;}
.st2{fill:none;stroke:#222080;stroke-width:3;stroke-dasharray:8;}
.st3{enable-background:new ;}
.st4{fill:#FFFFFF;}
</style>
<g>
<defs>
<rect id="SVGID_1_" y="0" width="118" height="118"/>
</defs>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_1_" style="overflow:visible;"/>
</clipPath>
<g class="st0">
<g transform="translate(27 32)">
<g transform="translate(-161.906 166.693) rotate(-45)">
<rect x="0" y="0" transform="matrix(-1 2.535182e-06 -2.535182e-06 -1 523.3979 37.2033)" class="st1" width="523.4" height="37.2"/>
<rect x="1.5" y="1.5" transform="matrix(-1 2.535182e-06 -2.535182e-06 -1 523.3979 37.2033)" class="st2" width="520.4" height="34.2"/>
</g>
<g class="st3">
<path class="st4" d="M-5.6,35.2c0.8,0.8,1.1,1.6,1,2.5c-0.1,0.9-0.5,1.8-1.4,2.6L-6.6,41l2.5,2.5L-5.6,45l-7.1-7.1l2.3-2.3
c0.9-0.9,1.7-1.3,2.5-1.4C-7.1,34.2-6.3,34.5-5.6,35.2z M-7.8,39.7l0.5-0.5c0.5-0.5,0.7-0.9,0.8-1.3c0-0.4-0.1-0.8-0.5-1.1
c-0.4-0.4-0.7-0.5-1.1-0.5c-0.4,0-0.7,0.2-1.2,0.6l-0.7,0.7L-7.8,39.7z"/>
<path class="st4" d="M-0.6,34.6l2.7,2.7l-1.5,1.5l-7.1-7.1l2.1-2.1c1-1,1.8-1.5,2.7-1.6c0.8-0.1,1.6,0.2,2.3,0.9
c0.4,0.4,0.7,0.9,0.8,1.5c0.1,0.6,0,1.1-0.2,1.7c2.7,0.5,4.4,0.9,5.2,1l-1.7,1.7l-4.4-1L-0.6,34.6z M-1.8,33.3l0.5-0.5
c0.5-0.5,0.7-0.9,0.8-1.3c0.1-0.4-0.1-0.7-0.4-1.1C-1.2,30.1-1.6,30-2,30.1c-0.4,0.1-0.8,0.4-1.3,0.9l-0.5,0.5L-1.8,33.3z"/>
<path class="st4" d="M10,22.3c1.2,1.2,1.8,2.4,1.8,3.6c0,1.2-0.5,2.4-1.6,3.4c-1.1,1.1-2.2,1.6-3.4,1.6c-1.2,0-2.4-0.7-3.6-1.8
c-1.2-1.2-1.8-2.4-1.8-3.6c0-1.2,0.5-2.3,1.6-3.4s2.2-1.6,3.4-1.6C7.7,20.5,8.9,21.1,10,22.3z M4.9,27.4
c0.8,0.8,1.5,1.2,2.2,1.3s1.3-0.1,1.9-0.7c1.2-1.2,1-2.6-0.6-4.2c-1.6-1.6-3-1.8-4.2-0.6c-0.6,0.6-0.8,1.2-0.7,2
C3.7,25.9,4.1,26.6,4.9,27.4z"/>
<path class="st4" d="M17.8,21.6l-1.5,1.5l-5.8-5.8l-1.9,1.9L7.3,18l5.3-5.3l1.2,1.2L12,15.8L17.8,21.6z"/>
<path class="st4" d="M23.7,8.7c1.2,1.2,1.8,2.4,1.8,3.6c0,1.2-0.5,2.4-1.6,3.4c-1.1,1.1-2.2,1.6-3.4,1.6c-1.2,0-2.4-0.7-3.6-1.8
c-1.2-1.2-1.8-2.4-1.8-3.6c0-1.2,0.5-2.3,1.6-3.4c1.1-1.1,2.2-1.6,3.4-1.6S22.5,7.5,23.7,8.7z M18.5,13.8
c0.8,0.8,1.5,1.2,2.2,1.3c0.7,0.1,1.3-0.1,1.9-0.7c1.2-1.2,1-2.6-0.6-4.2c-1.6-1.6-3-1.8-4.2-0.6c-0.6,0.6-0.8,1.2-0.7,2
C17.3,12.3,17.7,13,18.5,13.8z"/>
<path class="st4" d="M31.4,8l-1.5,1.5l-5.8-5.8l-1.9,1.9l-1.2-1.2L26.2-1l1.2,1.2l-1.9,1.9L31.4,8z"/>
<path class="st4" d="M32.4-1.4L31-5.7l1.6-1.6l2,6.7l2.8,2.8l-1.5,1.5l-2.7-2.7l-6.7-2l1.6-1.6L32.4-1.4z"/>
<path class="st4" d="M40.6-10.9c0.8,0.8,1.1,1.6,1,2.5c-0.1,0.9-0.5,1.8-1.4,2.6l-0.6,0.6l2.5,2.5l-1.5,1.5l-7.1-7.1l2.3-2.3
c0.9-0.9,1.7-1.3,2.5-1.4C39.1-12,39.9-11.7,40.6-10.9z M38.3-6.4l0.5-0.5c0.5-0.5,0.7-0.9,0.8-1.3c0-0.4-0.1-0.8-0.5-1.1
c-0.4-0.4-0.7-0.5-1.1-0.5c-0.4,0-0.7,0.2-1.2,0.7l-0.7,0.7L38.3-6.4z"/>
<path class="st4" d="M50.9-11.5l-4.1,4.1l-7.1-7.1l4.1-4.1l1.2,1.2l-2.6,2.6l1.6,1.6l2.4-2.4l1.2,1.2L45.2-12l1.8,1.8l2.6-2.6
L50.9-11.5z"/>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -6,6 +6,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<base href="/"/>
<!-- <base href="/monitor/dashboard/"/>-->
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<meta name="description" content="OpenAIRE Monitor, funder, funding, research, "/>