379 lines
36 KiB
TypeScript
379 lines
36 KiB
TypeScript
import {SafeResourceUrl} from "@angular/platform-browser";
|
|
export const ChartHelper={
|
|
prefix : "((__",
|
|
suffix : "__))"
|
|
};
|
|
export class Stakeholder {
|
|
id: string;
|
|
type: string;
|
|
index_id;
|
|
index_name: string;
|
|
index_shortName:string;
|
|
alias: string;
|
|
isDefaultProfile: boolean;
|
|
isActive: boolean;
|
|
isPublic: boolean;
|
|
creationDate: string;
|
|
updateDate: string;
|
|
managers: string[];
|
|
topics:Topic[];
|
|
constructor( id: string, type: string, index_id, index_name: string, index_shortName:string , isDefaultProfile: boolean, alias:string , isActive: boolean, isPublic: boolean){
|
|
this.initializeFunder(id,type, index_id, index_name, index_shortName, isDefaultProfile, alias, isActive, isPublic);
|
|
this.topics =[];
|
|
this.managers =[];
|
|
}
|
|
initializeFunder( id: string, type: string, index_id, index_name: string, index_shortName:string , isDefaultProfile: boolean, alias:string , isActive: boolean, isPublic: boolean){
|
|
this.id = id;
|
|
this.type = type;
|
|
this.index_id = index_id;
|
|
this.index_name = index_name;
|
|
this.index_shortName = index_shortName;
|
|
this.isDefaultProfile = isDefaultProfile;
|
|
this.alias = alias;
|
|
this.isActive = isActive;
|
|
this.isPublic = isPublic;
|
|
}
|
|
static createECStakeholder():Stakeholder{
|
|
let ec:Stakeholder = new Stakeholder("ec","funder","ec__________::EC","European Commission","EC",false,"ec",true,true);
|
|
// new Stakeholder('wt','funder','wt__________::WT','Wellcome Trust','WT',false, 'wt',true,true);
|
|
ec.topics.push(ec.createOSTopic(ec));
|
|
ec.topics.push(ec.createImpactTopic());
|
|
ec.topics.push(ec.createCollaborationTopic());
|
|
return ec;
|
|
}
|
|
createOSTopic(stakeholder:Stakeholder):Topic{
|
|
let topic = new Topic("OpenScience","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do...","open-science",true,true);
|
|
|
|
/* let overview:Category = new Category("Overview","","overview",true,true);
|
|
topic.categories.push(overview);
|
|
let overviewDefSub = new SubCategory(null, null,null,true, true);
|
|
overview.subCategories.push(overviewDefSub);*/
|
|
|
|
|
|
|
|
let pubCategory:Category = new Category("Publications","","publications",true,true);
|
|
topic.categories.push(pubCategory);
|
|
let pubDefSub = new SubCategory(null, null,null,true, true);
|
|
pubCategory.subCategories.push(pubDefSub);
|
|
/* let pubOpenSub = new SubCategory("Openess","","openness",true,true);
|
|
pubCategory.subCategories.push(pubOpenSub);
|
|
let pubFundingSub = new SubCategory("Funding","","funding",true,true);
|
|
pubCategory.subCategories.push(pubFundingSub);
|
|
let pubDatasourceSub = new SubCategory("Content Providers","","content-providers",true,true);
|
|
pubCategory.subCategories.push(pubDatasourceSub);
|
|
let pubDocTypeSub = new SubCategory("Document Type","","doc-type",true,true);
|
|
pubCategory.subCategories.push(pubDocTypeSub);
|
|
let pubFindSub = new SubCategory("Findability","","dindability",true,true);
|
|
pubCategory.subCategories.push(pubFindSub);*/
|
|
|
|
|
|
let dataCategory:Category = new Category("Research data","","data",true,true);
|
|
topic.categories.push(dataCategory);
|
|
let dataDefSub = new SubCategory(null, null,null,true, true);
|
|
dataCategory.subCategories.push(dataDefSub);
|
|
|
|
let softwareCategory:Category = new Category("Software","","software",true,true);
|
|
topic.categories.push(softwareCategory);
|
|
let softDefSub = new SubCategory(null, null,null,true, true);
|
|
softwareCategory.subCategories.push(softDefSub);
|
|
|
|
let otherCategory:Category = new Category("Other research products","","other",true,true);
|
|
topic.categories.push(otherCategory);
|
|
let otherDefSub = new SubCategory(null, null,null,true, true);
|
|
otherCategory.subCategories.push(otherDefSub);
|
|
|
|
/* let datasourceCategory:Category = new Category("Content Providers","","content-providers",true,true);
|
|
topic.categories.push(datasourceCategory);
|
|
let datasourceDefSub = new SubCategory(null, null,null,true, true);
|
|
datasourceCategory.subCategories.push(datasourceDefSub);*/
|
|
|
|
let projectCategory:Category = new Category("Projects","","projects",true,true);
|
|
topic.categories.push(projectCategory);
|
|
let projectDefSub = new SubCategory(null, null,null,true, true);
|
|
projectCategory.subCategories.push(projectDefSub);
|
|
|
|
//Numbers
|
|
|
|
let n_total_pubs = new Indicator("Publications",'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do...', "number","small",true, true, [new IndicatorPath(null, "statistics","/funders/"+stakeholder.id, null, ["statistics","publications"])]);
|
|
let n_open_pubs = new Indicator("OA Publications",'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do...', "number","small",true, true, [new IndicatorPath(null, "statistics","/funders/"+stakeholder.id, null,["statistics","open_access"])]);
|
|
let n_total_projects = new Indicator("Projects",null, "number","small",true, true, [new IndicatorPath(null, "statistics","/funders/"+stakeholder.id, null, ["statistics","total_projects"])]);
|
|
let n_total_data = new Indicator("Reserach data",null, "number","small",true, true, [new IndicatorPath(null, "search",
|
|
"/datasets/count?fq="+(encodeURIComponent("relfunderid exact "+stakeholder.index_id))+"&format=json", null, ["total"])]);
|
|
let n_total_soft = new Indicator("Software",null, "number","small",true, true, [new IndicatorPath(null, "search",
|
|
"/software/count?fq="+(encodeURIComponent("relfunderid exact "+stakeholder.index_id))+"&format=json", null,["total"])]);
|
|
let n_total_other = new Indicator("Other research products",null, "number","small",true, true, [new IndicatorPath(null, "search",
|
|
"/other/count?fq="+(encodeURIComponent("relfunderid exact "+stakeholder.index_id))+"&format=json", null,["total"])]);
|
|
|
|
/*overviewDefSub.numbers.push(n_total_pubs);
|
|
overviewDefSub.numbers.push(n_open_pubs);
|
|
overviewDefSub.numbers.push(n_total_projects);
|
|
overviewDefSub.numbers.push(n_total_data);
|
|
overviewDefSub.numbers.push(n_total_soft);
|
|
overviewDefSub.numbers.push(n_total_other);*/
|
|
|
|
pubDefSub.numbers.push(n_total_pubs);
|
|
pubDefSub.numbers.push(n_open_pubs);
|
|
softDefSub.numbers.push(n_total_soft);
|
|
dataDefSub.numbers.push(n_total_data);
|
|
otherDefSub.numbers.push(n_total_other);
|
|
|
|
projectDefSub.numbers.push(n_total_projects);
|
|
|
|
//Charts
|
|
|
|
let c_pubs_per_project = new Indicator("Which are the top "+stakeholder.index_shortName+" projects?",'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do...', "chart","large",true, true, [
|
|
new IndicatorPath("bar", "old","chart.php?com=query&data=",'{"table":"result","fields":[{"fld":"number","agg":"count","type":"'+ChartHelper.prefix+'type'+ChartHelper.suffix+'","yaxis":1,"c":false}],"xaxis":{"name":"result_projects-project-acronym","agg":"avg"},"group":"","color":"","type":"chart","size":30,"sort":"count-number","yaxisheaders":[""],"fieldsheaders":["publications"],"in":[],"filters":[{"name":"result_projects-project-funder","values":["'+ChartHelper.prefix+'funder_name'+ChartHelper.suffix+'"],"to":"-1"},{"name":"type","values":["publication"],"to":"-1"}],"having":[],"xStyle":{"r":"-","s":"-","l":"-","ft":"-","wt":"-"},"title":"'+ChartHelper.prefix+'title'+ChartHelper.suffix+'","subtitle":"","xaxistitle":"project","order":"d"}', null )]);
|
|
c_pubs_per_project.indicatorPaths[0].parameters = IndicatorPath.createParameters(stakeholder.index_name,"Publications per project (top 30)","bar");
|
|
pubDefSub.charts.push(c_pubs_per_project);
|
|
|
|
//TO check
|
|
/* let c_pubs_per_datasource = new Indicator("Which are the top repositories containing "+stakeholder.index_shortName+" research outputs?",null, "chart","small",false,
|
|
true, [new IndicatorPath("column", "old", "chart.php?com=query&data="+encodeURIComponent('{"table":"result","fields":[{"fld":"number","agg":"count","type":"column","yaxis":1,"c":false}],"xaxis":{"name":"result_datasources-datasource-name","agg":"avg"},"group":"","color":"","type":"chart","size":"20","sort":"count-number","yaxisheaders":[""],"fieldsheaders":["publications"],"in":[],"filters":[{"name":"type","values":["publication"],"to":"-1"},{"name":"result_projects-project-funder","values":["'+ChartHelper.prefix+'funder_name'+ChartHelper.suffix+'"],"to":"-1"},{"name":"result_datasources-datasource-type","exvalues":["Publication Catalogue"]}],"having":[],"xStyle":{"r":-90,"s":"-","l":"-","ft":10,"wt":"-"},"title":"Publications by content provider (top 20)","subtitle":"","xaxistitle":"content providers","order":"d"}'), null)]);
|
|
pubDefSub.charts.push(c_pubs_per_datasource);
|
|
|
|
let c_pubs_per_doc_type = new Indicator("In what type of documents do your researchers used to publish?",null, "chart","small",true, true,
|
|
[new IndicatorPath("bar", "stats-tool", "chart?json="+encodeURIComponent('{"library":"HighCharts","chartDescription":{"colors":["#42a5f5","#26a69a","#90ed7d","#607d8b","#00838f","#689f38","#e4d354","#2b908f","#546e7a","#01579"],"queries":[{"name":"Data","type":"bar","query":{"select":[{"field":"result","aggregate":"count"},{"field":"result.classification","aggregate":null}],"filters":[{"groupFilters":[{"field":"result.project.funder","type":"=","values":["'+ChartHelper.prefix+'funder_name'+ChartHelper.suffix+'"]},{"field":"result.type","type":"=","values":["publication"]}],"op":"AND"}],"entity":"result","profile":"OpenAIRE original","limit":"0"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"publications"},"subtitle":{"text":"per document type"},"yAxis":{"title":{"text":"Publications"}},"xAxis":{"title":{"text":"Document Type"}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}'), null)]);
|
|
pubDefSub.charts.push(c_pubs_per_doc_type);
|
|
|
|
let c_pubs_funding_scheme = new Indicator("What is the percentage publications by funding scheme / programme?",null, "chart","small",true,
|
|
true, [new IndicatorPath("bar", "stats-tool", "chart?json="+encodeURIComponent('{"library":"HighCharts","chartDescription":{"colors":["#42a5f5","#26a69a","#90ed7d","#607d8b","#00838f","#689f38","#e4d354","#2b908f","#546e7a","#01579"],"queries":[{"name":"Open Access","type":"bar","query":{"select":[{"field":"result","aggregate":"count"},{"field":"result.project.funding level 1","aggregate":null}],"filters":[{"groupFilters":[{"field":"result.project.funder","type":"=","values":["'+ChartHelper.prefix+'funder_name'+ChartHelper.suffix+'"]},{"field":"result.project.funding level 0","type":"=","values":["H2020"]},{"field":"result.type","type":"=","values":["publication"]},{"field":"result.access mode","type":"=","values":["Open Access"]}],"op":"AND"}],"entity":"result","profile":"OpenAIRE original","limit":"0"}},{"name":"Total","type":"bar","query":{"select":[{"field":"result","aggregate":"count"},{"field":"result.project.funding level 1","aggregate":null}],"filters":[{"groupFilters":[{"field":"result.project.funder","type":"=","values":["'+ChartHelper.prefix+'funder_name'+ChartHelper.suffix+'"]},{"field":"result.type","type":"=","values":["publication"]}],"op":"AND"}],"entity":"result","profile":"OpenAIRE original","limit":"0"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Publications"},"subtitle":{"text":"by funding scheme"},"yAxis":{"title":{"text":"Publications"}},"xAxis":{"title":{"text":"Funding scheme"}},"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)]);
|
|
pubDefSub.charts.push(c_pubs_funding_scheme);
|
|
*/
|
|
/* //TODO check why doesn't load
|
|
let c_pubs_gg_funding_scheme = new Indicator("What is the percentage of green and gold publications by funding scheme / programme?",null, "chart","medium",true,
|
|
true, [new IndicatorPath("bar", "stats-tool", "chart?json="+encodeURIComponent('{"library":"HighCharts","chartDescription":{"colors":["#42a5f5","#26a69a","#90ed7d","#607d8b","#00838f","#689f38","#e4d354","#2b908f","#546e7a","#01579"],"queries":[{"name":"Gold","color":"#f8b500","type":"bar","query":{"select":[{"field":"result","aggregate":"count"},{"field":"result.project.funding level 1","aggregate":null}],"filters":[{"groupFilters":[{"field":"result.project.funder","type":"=","values":["'+ChartHelper.prefix+'funder_name'+ChartHelper.suffix+'"]},,{"field":"result.type","type":"=","values":["publication"]},{"field":"result.access mode","type":"=","values":["Open Access"]}],"op":"AND"},{"groupFilters":[{"field":"result.datasource.type","type":"=","values":["Journal"]},{"field":"result.datasource.type","type":"=","values":["Journal Aggregator/Publisher"]}],"op":"OR"}],"entity":"result","profile":"OpenAIRE original","limit":"0"}},{"name":"Green","color":"#239d60","type":"bar","query":{"select":[{"field":"result","aggregate":"count"},{"field":"result.project.funding level 1","aggregate":null}],"filters":[{"groupFilters":[{"field":"result.project.funder","type":"=","values":["'+ChartHelper.prefix+'funder_name'+ChartHelper.suffix+'"]},{"field":"result.project.funding level 0","type":"=","values":["H2020"]},{"field":"result.type","type":"=","values":["publication"]},{"field":"result.access mode","type":"=","values":["Open Access"]}],"op":"AND"},{"groupFilters":[{"field":"result.datasource.type","type":"=","values":["Institutional Repository"]},{"field":"result.datasource.type","type":"=","values":["Thematic Repository"]}],"op":"OR"}],"entity":"result","profile":"OpenAIRE original","limit":"0"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"H2020 green and gold publications"},"subtitle":{"text":"by funding scheme"},"yAxis":{"title":{"text":"Publications"}},"xAxis":{"title":{"text":"Funding scheme"}},"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)]);
|
|
//pubDefSub.charts.push(c_pubs_gg_funding_scheme);
|
|
*/
|
|
|
|
/* let c_pubs_open = new Indicator("Open Access publications timeline",null, "chart","small",true, true,
|
|
[new IndicatorPath("column", "stats-tool", "chart?json="+encodeURIComponent('{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"select":[{"field":"publication","aggregate":"count"},{"field":"publication.year","aggregate":null}],"filters":[{"groupFilters":[{"field":"publication.access mode","type":"=","values":["Open Access"]}],"op":"AND"},{"groupFilters":[{"field":"publication.year","type":">=","values":["2000"]},{"field":"publication.year","type":"<=","values":["2019"]}],"op":"AND"},{"groupFilters":[{"field":"publication.project.funder","type":"=","values":["'+ChartHelper.prefix+'funder_name'+ChartHelper.suffix+'"]}],"op":"AND"}],"entity":"publication","profile":"OpenAIRE All-inclusive","limit":"30"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Open Access Publications"},"subtitle":{},"yAxis":{"title":{"text":"publications"}},"xAxis":{"title":{"text":"year"}},"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"}}}'), null)]);
|
|
pubDefSub.charts.push(c_pubs_open);
|
|
|
|
let c_pubs_access_modes = new Indicator("How your Open Access publications are shaped over the years?",null, "chart","medium",true, true,
|
|
[new IndicatorPath("column", "stats-tool", "chart?json="+encodeURIComponent('{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"select":[{"field":"publication","aggregate":"count"},{"field":"publication.year","aggregate":null},{"field":"publication.access mode","aggregate":null}],"filters":[{"groupFilters":[{"field":"publication.year","type":">=","values":["2000"]},{"field":"publication.year","type":"<=","values":["2019"]}],"op":"AND"},{"groupFilters":[{"field":"publication.project.funder","type":"=","values":["'+ChartHelper.prefix+'funder_name'+ChartHelper.suffix+'"]}],"op":"AND"}],"entity":"publication","profile":"OpenAIRE All-inclusive","limit":"2000"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Publications by Access Mode"},"subtitle":{},"yAxis":{"title":{"text":"publications"}},"xAxis":{"title":{"text":"year"}},"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"}}}'), null)]);
|
|
pubDefSub.charts.push(c_pubs_access_modes);
|
|
|
|
// let c_pubs_av_embargo = new Indicator("Average period of embargoed publications",null, "chart","medium",true, true, [new IndicatorPath("?", "fake","https://visme.co/blog/wp-content/uploads/2017/03/Dogs-vs-Cats-How-much-they-miss-you-relative-to-the-time-you-are-gone.png", null)]);
|
|
// pubDefSub.charts.push(c_pubs_av_embargo);
|
|
|
|
let c_pubs_OA_journals = new Indicator("Publications in OA Journals over time",null, "chart","medium",true, true,
|
|
[new IndicatorPath("column", "stats-tool", "chart?json="+encodeURIComponent('{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"select":[{"field":"publication","aggregate":"count"},{"field":"publication.year","aggregate":null}],"filters":[{"groupFilters":[{"field":"publication.year","type":">=","values":["2000"]},{"field":"publication.year","type":"<=","values":["2019"]}],"op":"AND"},{"groupFilters":[{"field":"publication.project.funder","type":"=","values":["'+ChartHelper.prefix+'funder_name'+ChartHelper.suffix+'"]}],"op":"AND"},{"groupFilters":[{"field":"publication.datasource.id","type":"starts_with","values":["doaj"]}],"op":"AND"}],"entity":"publication","profile":"OpenAIRE All-inclusive","limit":"2000"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Publications by OA Journals"},"subtitle":{},"yAxis":{"title":{"text":"publications"}},"xAxis":{"title":{"text":"year"}},"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"}}}'), null)]);
|
|
pubDefSub.charts.push(c_pubs_OA_journals);
|
|
|
|
//from monitor
|
|
let c_pubs_repo = new Indicator("OA publications in repositories by year",null, "chart","medium",true, true,
|
|
[new IndicatorPath("column", "stats-tool", "chart?json="+encodeURIComponent('{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"select":[{"field":"publication","aggregate":"count"},{"field":"publication.year","aggregate":null}],"filters":[{"groupFilters":[{"field":"publication.project.funder","type":"=","values":["'+ChartHelper.prefix+'funder_name'+ChartHelper.suffix+'"]}],"op":"AND"},{"groupFilters":[{"field":"publication.datasource.type","type":"contains","values":["repo"]}],"op":"AND"}],"entity":"publication","profile":"OpenAIRE All-inclusive","limit":"2000"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Publications by OA Journals"},"subtitle":{},"yAxis":{"title":{"text":"publications"}},"xAxis":{"title":{"text":"year"}},"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"}}}'), null)]);
|
|
pubDefSub.charts.push(c_pubs_repo);
|
|
//
|
|
// let c_pubs_repo = new Indicator("OA publications in repositories by year",null, "chart","medium",true, true,
|
|
// [new IndicatorPath("column", "stats-tool", "chart?json="+encodeURIComponent('), null)]);
|
|
// pubDefSub.charts.push(c_pubs_repo);
|
|
|
|
// let c_pubs_green_year = new Indicator("How many OA publications have been submitted to repos per year?",null, "chart","medium",true, true,[new IndicatorPath("?", "fake","https://visme.co/blog/wp-content/uploads/2017/03/Dogs-vs-Cats-How-much-they-miss-you-relative-to-the-time-you-are-gone.png", null)]);
|
|
// pubDefSub.charts.push(c_pubs_green_year);
|
|
|
|
let c_pubs_datasource_country = new Indicator("What is the percentage of OA pubs by repositories over the years?",null, "chart","medium",true, true,
|
|
[new IndicatorPath("column", "stats-tool", "chart?json="+encodeURIComponent('{"library":"HighCharts","chartDescription":{"queries":[{"name":"Gold OA","type":"column","color":"#b8c91fff","query":{"select":[{"field":"publication","aggregate":"count"},{"field":"publication.year","aggregate":null}],"filters":[{"groupFilters":[{"field":"publication.datasource.id","type":"starts_with","values":["doaj"]}],"op":"AND"},{"groupFilters":[{"field":"publication.year","type":">","values":["2010"]},{"field":"publication.year","type":"<","values":["2020"]}],"op":"AND"},{"groupFilters":[{"field":"publication.access mode","type":"=","values":["Open Access"]}],"op":"AND"},{"groupFilters":[{"field":"publication.project.funder","type":"=","values":["'+ChartHelper.prefix+'funder_name'+ChartHelper.suffix+'"]}],"op":"AND"}],"entity":"publication","profile":"OpenAIRE All-inclusive","limit":"30"}},{"name":"Green OA","type":"column","color":"#0d9637ff","query":{"select":[{"field":"publication","aggregate":"count"},{"field":"publication.year","aggregate":null}],"filters":[{"groupFilters":[{"field":"publication.year","type":">","values":["2010"]},{"field":"publication.year","type":"<","values":["2020"]}],"op":"AND"},{"groupFilters":[{"field":"publication.access mode","type":"=","values":["Open Access"]}],"op":"AND"},{"groupFilters":[{"field":"publication.datasource.type","type":"starts_with","values":["Institu"]}],"op":"AND"},{"groupFilters":[{"field":"publication.project.funder","type":"=","values":["'+ChartHelper.prefix+'funder_name'+ChartHelper.suffix+'"]}],"op":"AND"}],"entity":"publication","profile":"OpenAIRE All-inclusive","limit":"30"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{},"subtitle":{},"yAxis":{"title":{}},"xAxis":{"title":{}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":false},"stacking":"percent"}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}'), null)]);
|
|
pubDefSub.charts.push(c_pubs_datasource_country);
|
|
|
|
let c_pubs_funding_country = new Indicator("What is the percentage of OA pubs by projects over the years?",null, "chart","medium",true, true,
|
|
[new IndicatorPath("column", "stats-tool", "chart?json="+encodeURIComponent('{"library":"HighCharts","chartDescription":{"queries":[{"name":"Gold OA","type":"column","color":"#b8c91fff","query":{"select":[{"field":"publication","aggregate":"count"},{"field":"publication.year","aggregate":null}],"filters":[{"groupFilters":[{"field":"publication.datasource.id","type":"starts_with","values":["doaj"]}],"op":"AND"},{"groupFilters":[{"field":"publication.year","type":">","values":["2010"]},{"field":"publication.year","type":"<","values":["2020"]}],"op":"AND"},{"groupFilters":[{"field":"publication.access mode","type":"=","values":["Open Access"]}],"op":"AND"},{"groupFilters":[{"field":"publication.project.funder","type":"=","values":["'+ChartHelper.prefix+'funder_name'+ChartHelper.suffix+'"]}],"op":"AND"}],"entity":"publication","profile":"OpenAIRE All-inclusive","limit":"30"}},{"name":"Green OA","type":"column","color":"#0d9637ff","query":{"select":[{"field":"publication","aggregate":"count"},{"field":"publication.year","aggregate":null}],"filters":[{"groupFilters":[{"field":"publication.year","type":">","values":["2010"]},{"field":"publication.year","type":"<","values":["2020"]}],"op":"AND"},{"groupFilters":[{"field":"publication.access mode","type":"=","values":["Open Access"]}],"op":"AND"},{"groupFilters":[{"field":"publication.datasource.type","type":"starts_with","values":["Institu"]}],"op":"AND"},{"groupFilters":[{"field":"publication.project.funder","type":"=","values":["'+ChartHelper.prefix+'funder_name'+ChartHelper.suffix+'"]}],"op":"AND"}],"entity":"publication","profile":"OpenAIRE All-inclusive","limit":"30"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{},"subtitle":{},"yAxis":{"title":{}},"xAxis":{"title":{}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":false},"stacking":"percent"}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}'), null)]);
|
|
pubDefSub.charts.push(c_pubs_funding_country);
|
|
|
|
let c_data_year = new Indicator("How your Open research data are shaped over the years?",null, "chart","medium",true, true,
|
|
[new IndicatorPath("column", "stats-tool",'/chart?json='+
|
|
encodeURIComponent('{"library":"HighCharts","chartDescription":{"colors":["#42a5f5","#26a69a","#90ed7d","#607d8b","#00838f","#689f38","#e4d354","#2b908f","#546e7a","#01579"],"queries":[{"name":"Data","type":"column","query":{"select":[{"field":"result","aggregate":"count"},{"field":"result.year","aggregate":null}],"filters":[{"groupFilters":[{"field":"result.project.funder","type":"=","values":["'+ChartHelper.prefix+'funder_name'+ChartHelper.suffix+'"]},{"field":"result.type","type":"=","values":["dataset"]},{"field":"result.year","type":">=","values":["2014"]},{"field":"result.year","type":"<=","values":["2019"]}],"op":"AND"}],"entity":"result","profile":"OpenAIRE original","limit":"0"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"'+stakeholder.index_shortName+' research data over time"},"subtitle":{},"yAxis":{"title":{"text":"Research data"}},"xAxis":{"title":{"text":"Year"}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":true,"text":"Created by OpenAIRE via HighCharts"}}}'), null)]);
|
|
dataDefSub.charts.push(c_data_year);*/
|
|
|
|
// let c_other_year = new Indicator("How your Open research data are shaped over the years?",null, "chart","medium",true, true, [new IndicatorPath("?", "fake","https://visme.co/blog/wp-content/uploads/2017/03/Dogs-vs-Cats-How-much-they-miss-you-relative-to-the-time-you-are-gone.png", null)]);
|
|
// otherDefSub.charts.push(c_other_year);
|
|
//
|
|
// let c_datasources_access_modes = new Indicator("What is the number of research data repositories by access mode?",null, "chart","medium",true, true, [new IndicatorPath("?", "fake","https://visme.co/blog/wp-content/uploads/2017/03/Dogs-vs-Cats-How-much-they-miss-you-relative-to-the-time-you-are-gone.png", null)]);
|
|
// pubDefSub.charts.push(c_datasources_access_modes);
|
|
//
|
|
// let c_pub_nometa_year = new Indicator("How many publications lack of abstract per year?",null, "chart","medium",true, true, [new IndicatorPath("?", "fake","https://visme.co/blog/wp-content/uploads/2017/03/Dogs-vs-Cats-How-much-they-miss-you-relative-to-the-time-you-are-gone.png", null)]);
|
|
// pubDefSub.charts.push(c_pub_nometa_year);
|
|
//
|
|
// let c_pub_meta_linked_year = new Indicator("??",null, "chart","medium",true, true, [new IndicatorPath("?", "fake","https://visme.co/blog/wp-content/uploads/2017/03/Dogs-vs-Cats-How-much-they-miss-you-relative-to-the-time-you-are-gone.png", null)]);
|
|
// pubDefSub.charts.push(c_pub_meta_linked_year);
|
|
//
|
|
// let c_pub_colocated_year = new Indicator("How many publications are submitted to more than one repos per year?",null, "chart","medium",true, true, [new IndicatorPath("?", "fake","https://visme.co/blog/wp-content/uploads/2017/03/Dogs-vs-Cats-How-much-they-miss-you-relative-to-the-time-you-are-gone.png", null)]);
|
|
// pubDefSub.charts.push(c_pub_colocated_year);
|
|
|
|
// let c_pub_pids = new Indicator("What is the most common PIDs by year?",null, "chart","medium",true, true, [new IndicatorPath("?", "fake","https://visme.co/blog/wp-content/uploads/2017/03/Dogs-vs-Cats-How-much-they-miss-you-relative-to-the-time-you-are-gone.png", null)]);
|
|
// pubDefSub.charts.push(c_pub_pids);
|
|
//
|
|
// let c_oai_pmh_datasources = new Indicator("What is the most common PIDs by year?",null, "chart","medium",true, true, [new IndicatorPath("?", "fake","https://visme.co/blog/wp-content/uploads/2017/03/Dogs-vs-Cats-How-much-they-miss-you-relative-to-the-time-you-are-gone.png", null)]);
|
|
// pubDefSub.charts.push(c_oai_pmh_datasources);
|
|
|
|
return topic;
|
|
}
|
|
createImpactTopic():Topic{
|
|
let topic = new Topic("Impact/Correlation","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do...","impact",true,true);
|
|
|
|
let pubCategory:Category = new Category("Publications","","publications",true,true);
|
|
topic.categories.push(pubCategory);
|
|
let pubDefSub = new SubCategory(null, null,null,true, true);
|
|
pubCategory.subCategories.push(pubDefSub);
|
|
|
|
let dataCategory:Category = new Category("Research data","","data",true,true);
|
|
topic.categories.push(dataCategory);
|
|
let dataDefSub = new SubCategory(null, null,null,true, true);
|
|
dataCategory.subCategories.push(dataDefSub);
|
|
|
|
let softwareCategory:Category = new Category("Software","","software",true,true);
|
|
topic.categories.push(softwareCategory);
|
|
let softDefSub = new SubCategory(null, null,null,true, true);
|
|
softwareCategory.subCategories.push(softDefSub);
|
|
|
|
/* let otherCategory:Category = new Category("Other research products","","other",true,true);
|
|
topic.categories.push(otherCategory);
|
|
let otherDefSub = new SubCategory(null, null,null,true, true);
|
|
otherCategory.subCategories.push(otherDefSub);*/
|
|
|
|
|
|
return topic;
|
|
}
|
|
createCollaborationTopic():Topic{
|
|
let topic = new Topic("Demo Topic","This is a demo topic","demo-topic",true,true);
|
|
|
|
let category1:Category = new Category("Category 1","This is ","cat-1",true,true);
|
|
topic.categories.push(category1);
|
|
|
|
|
|
let subCat1 = new SubCategory("Sub-category 1","","sub-cat-1",true,true);
|
|
category1.subCategories.push(subCat1);
|
|
|
|
|
|
let subCat2 = new SubCategory("Sub-category 2","","sub-cat-2",true,true);
|
|
category1.subCategories.push(subCat2);
|
|
|
|
|
|
|
|
let category2:Category = new Category("Category 2 - no subcategories","","cat-2",true,true);
|
|
topic.categories.push(category2);
|
|
let defSub = new SubCategory(null, null,null,true, true);
|
|
category2.subCategories.push(defSub);
|
|
|
|
let chart1 = new Indicator(
|
|
"Chart title goes here","Chart description goes here", "chart","medium",true, true,
|
|
[new IndicatorPath("?", "fake","https://visme.co/blog/wp-content/uploads/2017/03/Dogs-vs-Cats-How-much-they-miss-you-relative-to-the-time-you-are-gone.png", null, null)]);
|
|
let chart2 = new Indicator("Chart title goes here","Chart description goes here", "chart","medium",true, true, [new IndicatorPath("?", "fake","https://static.boredpanda.com/blog/wp-content/uuuploads/funny-graphs-2/funny-graphs-legs.jpg", null, null)]);
|
|
subCat1.charts.push(chart1);
|
|
subCat2.charts.push(chart2);
|
|
|
|
defSub.charts.push(chart1);
|
|
defSub.charts.push(chart2);
|
|
return topic;
|
|
}
|
|
}
|
|
|
|
export class Topic {
|
|
name: string;
|
|
alias: string;
|
|
description: string;
|
|
isActive: boolean;
|
|
isPublic: boolean;
|
|
categories: Category[];
|
|
constructor(name: string, description: string, alias:string , isActive: boolean, isPublic: boolean){
|
|
this.name = name;
|
|
this.description = description;
|
|
this.alias = alias;
|
|
this.isActive = isActive;
|
|
this.isPublic = isPublic;
|
|
this.categories = [];
|
|
}
|
|
}
|
|
export class Category {
|
|
name: string;
|
|
alias: string;
|
|
description: string;
|
|
isActive: boolean;
|
|
isPublic: boolean;
|
|
isOverview: boolean;
|
|
subCategories: SubCategory[];
|
|
constructor(name: string, description: string, alias:string , isActive: boolean, isPublic: boolean){
|
|
this.name = name;
|
|
this.description = description;
|
|
this.alias = alias;
|
|
this.isActive = isActive;
|
|
this.isPublic = isPublic;
|
|
this.subCategories = [];
|
|
}
|
|
}
|
|
|
|
export class SubCategory {
|
|
name: string;
|
|
alias: string;
|
|
description: string;
|
|
isActive: boolean;
|
|
isPublic: boolean;
|
|
charts: Indicator[];
|
|
numbers: Indicator[];
|
|
constructor(name: string, description: string, alias:string , isActive: boolean, isPublic: boolean){
|
|
this.name = name;
|
|
this.description = description;
|
|
this.alias = alias;
|
|
this.isActive = isActive;
|
|
this.isPublic = isPublic;
|
|
this.charts = [];
|
|
this.numbers = [];
|
|
}
|
|
|
|
}
|
|
export class Indicator {
|
|
id:string;
|
|
name: string;
|
|
description: string;
|
|
type:string; //number,chart
|
|
width:string; //small,medium,large
|
|
tags:string[];
|
|
isActive: boolean;
|
|
isPublic: boolean;
|
|
indicatorPaths:IndicatorPath[];
|
|
constructor(name: string, description: string, type:string , width:string, isActive: boolean, isPublic: boolean, indicatorPaths:IndicatorPath[]){
|
|
this.name = name;
|
|
this.description = description;
|
|
this.type = type;
|
|
this.width = width;
|
|
this.isActive = isActive;
|
|
this.isPublic = isPublic;
|
|
this.indicatorPaths = indicatorPaths;
|
|
}
|
|
|
|
}
|
|
|
|
export class IndicatorPath {
|
|
type: string; // for charts is type of chart {table, bar, column, etc}
|
|
source:string;// for numbers is the service {statistics, search, metrics} for charts is the tool {stats-tool,old,metrics, fake}
|
|
url: string;
|
|
safeResourceUrl: SafeResourceUrl; // initialize on front end
|
|
jsonPath:string[];
|
|
chartObject:string;
|
|
parameters:Map<string,string>;
|
|
filters:Map<string,Map<string,string>>;
|
|
constructor(type: string, source:string, url: string, chartObject:string, jsonPath:string[]){
|
|
this.type = type;
|
|
this.url = url;
|
|
this.source = source;
|
|
this.jsonPath = jsonPath;
|
|
this.chartObject =chartObject;
|
|
}
|
|
static createParameters(funderName:string=null, title:string=null, chartType:string=null):Map<string, string>{
|
|
let parameters = new Map<string, string>();
|
|
parameters.set("funder_name",funderName);
|
|
parameters.set("title",title);
|
|
parameters.set("type",chartType);
|
|
return parameters;
|
|
}
|
|
getFullUrl():string{
|
|
let replacedUrl = this.chartObject;
|
|
this.parameters.forEach((value: string, key: string) => {
|
|
replacedUrl = replacedUrl.replace(ChartHelper.prefix+key+ChartHelper.suffix,value);
|
|
});
|
|
|
|
return this.url + encodeURIComponent(replacedUrl);
|
|
}
|
|
|
|
}
|