[Monitor Dashnoard]: Add stakeholder utils and move function from stakeholderCreator.
git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-monitor-portal/trunk/monitor_dashboard@57770 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
parent
b3fdeb99c5
commit
9d10f6e745
|
@ -4,7 +4,7 @@ import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties"
|
||||||
import {EnvironmentSpecificService} from "../openaireLibrary/utils/properties/environment-specific.service";
|
import {EnvironmentSpecificService} from "../openaireLibrary/utils/properties/environment-specific.service";
|
||||||
import {Stakeholder} from "../utils/entities/stakeholder";
|
import {Stakeholder} from "../utils/entities/stakeholder";
|
||||||
import {Subscriber, zip} from "rxjs";
|
import {Subscriber, zip} from "rxjs";
|
||||||
import {IndicatorUtils, Option, StakeholderUtils} from "../utils/indicator-utils";
|
import {Option, StakeholderUtils} from "../utils/indicator-utils";
|
||||||
import {FormBuilder, FormGroup, Validators} from "@angular/forms";
|
import {FormBuilder, FormGroup, Validators} from "@angular/forms";
|
||||||
import {AlertModal} from "../openaireLibrary/utils/modal/alert";
|
import {AlertModal} from "../openaireLibrary/utils/modal/alert";
|
||||||
|
|
||||||
|
@ -168,7 +168,7 @@ export class HomeComponent implements OnInit, OnDestroy {
|
||||||
type: this.fb.control(stakeholder.type, Validators.required),
|
type: this.fb.control(stakeholder.type, Validators.required),
|
||||||
topics: this.fb.control(stakeholder.topics)
|
topics: this.fb.control(stakeholder.topics)
|
||||||
});
|
});
|
||||||
if(this.index !== -1) {
|
if(this.index !== -1 && this.stakeholderFb.value.type) {
|
||||||
this.stakeholderFb.get('type').disable();
|
this.stakeholderFb.get('type').disable();
|
||||||
}
|
}
|
||||||
this.editStakeholderModal.cancelButtonText = 'Cancel';
|
this.editStakeholderModal.cancelButtonText = 'Cancel';
|
||||||
|
@ -179,7 +179,28 @@ export class HomeComponent implements OnInit, OnDestroy {
|
||||||
}
|
}
|
||||||
|
|
||||||
public saveStakeholder() {
|
public saveStakeholder() {
|
||||||
|
if(this.index === -1) {
|
||||||
|
this.stakeholderService.getDefaultStakeholders(this.properties.monitorServiceAPIURL,
|
||||||
|
this.stakeholderFb.value.type).subscribe( stakeholders => {
|
||||||
|
this.stakeholderFb.setControl('topic', this.fb.control(stakeholders[0].topics));
|
||||||
|
this.stakeholderService.saveElement(this.properties.monitorServiceAPIURL, this.stakeholderFb.value).subscribe(stakeholder => {
|
||||||
|
if(stakeholder.isDefaultProfile) {
|
||||||
|
this.defaultStakeholders.push(stakeholder);
|
||||||
|
} else {
|
||||||
|
this.stakeholders.push(stakeholder);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.stakeholderFb.get('type').enable();
|
||||||
|
this.stakeholderService.saveElement(this.properties.monitorServiceAPIURL, this.stakeholderFb.value).subscribe(stakeholder => {
|
||||||
|
if(stakeholder.isDefaultProfile) {
|
||||||
|
this.defaultStakeholders[this.index] = stakeholder;
|
||||||
|
} else {
|
||||||
|
this.stakeholders[this.index] = stakeholder;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public deleteStakeholderOpen(stakeholder: Stakeholder, isDefault = false) {
|
public deleteStakeholderOpen(stakeholder: Stakeholder, isDefault = false) {
|
||||||
|
|
|
@ -33,7 +33,7 @@ export class InputComponent implements OnInit, OnDestroy {
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.initValue = HelperFunctions.copy(this.formControl.value);
|
this.initValue = HelperFunctions.copy(this.formControl.value);
|
||||||
this.formControl.valueChanges.subscribe(value => {
|
this.formControl.valueChanges.subscribe(value => {
|
||||||
if(this.initValue.toString() === value.toString()) {
|
if(this.initValue === value) {
|
||||||
this.formControl.markAsPristine();
|
this.formControl.markAsPristine();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -14,7 +14,7 @@ import {StakeholderService} from "../services/stakeholder.service";
|
||||||
import {Category, ChartHelper, IndicatorPath, Stakeholder, SubCategory, Topic} from "../utils/entities/stakeholder";
|
import {Category, ChartHelper, IndicatorPath, Stakeholder, SubCategory, Topic} from "../utils/entities/stakeholder";
|
||||||
import {StatisticsService} from "../utils/services/statistics.service";
|
import {StatisticsService} from "../utils/services/statistics.service";
|
||||||
import {Item, Sidebar} from "../utils/entities/sidebar";
|
import {Item, Sidebar} from "../utils/entities/sidebar";
|
||||||
import {IndicatorUtils} from "../utils/indicator-utils";
|
import {IndicatorUtils, StakeholderUtils} from "../utils/indicator-utils";
|
||||||
import {StakeholderCreator} from "../utils/entities/stakeholderCreator";
|
import {StakeholderCreator} from "../utils/entities/stakeholderCreator";
|
||||||
import {LayoutService} from "../library/sharedComponents/sidebar/layout.service";
|
import {LayoutService} from "../library/sharedComponents/sidebar/layout.service";
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@ export class MonitorComponent implements OnInit, OnDestroy {
|
||||||
public status: number;
|
public status: number;
|
||||||
public loading: boolean = true;
|
public loading: boolean = true;
|
||||||
public indicatorUtils: IndicatorUtils = new IndicatorUtils();
|
public indicatorUtils: IndicatorUtils = new IndicatorUtils();
|
||||||
|
public stakeholderUtils: StakeholderUtils = new StakeholderUtils();
|
||||||
public activeTopic: Topic = null;
|
public activeTopic: Topic = null;
|
||||||
public activeCategory: Category = null;
|
public activeCategory: Category = null;
|
||||||
public activeSubCategory: SubCategory = null;
|
public activeSubCategory: SubCategory = null;
|
||||||
|
@ -76,19 +77,19 @@ export class MonitorComponent implements OnInit, OnDestroy {
|
||||||
// this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
|
// this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
|
||||||
let stakeholder:Stakeholder = null;
|
let stakeholder:Stakeholder = null;
|
||||||
if(params['stakeholder']=="fwf"){
|
if(params['stakeholder']=="fwf"){
|
||||||
stakeholder = StakeholderCreator.createFunderFromDefaultProfile("fwf","funder","fwf_________::FWF",
|
stakeholder = this.stakeholderUtils.createFunderFromDefaultProfile("fwf","funder","fwf_________::FWF",
|
||||||
"Austrian Science Fund (FWF)","FWF",
|
"Austrian Science Fund (FWF)","FWF",
|
||||||
false,"fwf",true,true, null);
|
false,"fwf",true,true, null, StakeholderCreator.createFunderDefaultProfile());
|
||||||
stakeholder.logoUrl = "./assets/fwf.png";
|
stakeholder.logoUrl = "./assets/fwf.png";
|
||||||
}else if(params['stakeholder']=="arc"){
|
}else if(params['stakeholder']=="arc"){
|
||||||
stakeholder = StakeholderCreator.createFunderFromDefaultProfile("arc","funder","arc_________::ARC",
|
stakeholder = this.stakeholderUtils.createFunderFromDefaultProfile("arc","funder","arc_________::ARC",
|
||||||
"Australian Research Council (ARC)","ARC",
|
"Australian Research Council (ARC)","ARC",
|
||||||
false,"arc",true,true, null);
|
false,"arc",true,true, null, StakeholderCreator.createFunderDefaultProfile());
|
||||||
stakeholder.logoUrl = "./assets/arc1.gif";
|
stakeholder.logoUrl = "./assets/arc1.gif";
|
||||||
}else{
|
}else{
|
||||||
stakeholder = StakeholderCreator.createFunderFromDefaultProfile("ec","funder","ec__________::EC",
|
stakeholder = this.stakeholderUtils.createFunderFromDefaultProfile("ec","funder","ec__________::EC",
|
||||||
"European Commission","EC",
|
"European Commission","EC",
|
||||||
false,"ec",true,true, null);
|
false,"ec",true,true, null, StakeholderCreator.createFunderDefaultProfile());
|
||||||
stakeholder.logoUrl = "./assets/ec.png";
|
stakeholder.logoUrl = "./assets/ec.png";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import {ChartHelper, Indicator, IndicatorPath} from "./entities/stakeholder";
|
import {ChartHelper, Indicator, IndicatorPath, Stakeholder, SubCategory} from "./entities/stakeholder";
|
||||||
import {Validators} from "@angular/forms";
|
import {Validators} from "@angular/forms";
|
||||||
|
|
||||||
export interface Option {
|
export interface Option {
|
||||||
|
@ -13,12 +13,12 @@ export class StakeholderUtils {
|
||||||
{value: 'funder', label: 'Funder'}
|
{value: 'funder', label: 'Funder'}
|
||||||
];
|
];
|
||||||
|
|
||||||
isPublic: Option[] = [
|
isPublic: Option[] = [
|
||||||
{icon: 'public', value: true, label: 'Public'},
|
{icon: 'public', value: true, label: 'Public'},
|
||||||
{icon: 'lock', value: false, label: 'Private'},
|
{icon: 'lock', value: false, label: 'Private'},
|
||||||
];
|
];
|
||||||
|
|
||||||
isActive: Option[] = [
|
isActive: Option[] = [
|
||||||
{icon: 'brightness_1', iconClass: '', value: true, label: 'Active'},
|
{icon: 'brightness_1', iconClass: '', value: true, label: 'Active'},
|
||||||
{icon: 'brightness_1', value: false, label: 'Inactive'},
|
{icon: 'brightness_1', value: false, label: 'Inactive'},
|
||||||
];
|
];
|
||||||
|
@ -29,6 +29,59 @@ export class StakeholderUtils {
|
||||||
]);
|
]);
|
||||||
|
|
||||||
isActiveIcon: string = 'brightness_1';
|
isActiveIcon: string = 'brightness_1';
|
||||||
|
|
||||||
|
public createFunderFromDefaultProfile(id: string, type: string, index_id, index_name: string, index_shortName: string,
|
||||||
|
isDefaultProfile: boolean, alias: string, isActive: boolean, isPublic: boolean,
|
||||||
|
logoUrl: string, funder: Stakeholder): Stakeholder {
|
||||||
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class IndicatorUtils {
|
export class IndicatorUtils {
|
||||||
|
@ -48,12 +101,12 @@ export class IndicatorUtils {
|
||||||
{value: 'large', label: 'Large'}
|
{value: 'large', label: 'Large'}
|
||||||
];
|
];
|
||||||
|
|
||||||
isPublic: Option[] = [
|
isPublic: Option[] = [
|
||||||
{icon: 'public', value: true, label: 'Public'},
|
{icon: 'public', value: true, label: 'Public'},
|
||||||
{icon: 'lock', value: false, label: 'Private'},
|
{icon: 'lock', value: false, label: 'Private'},
|
||||||
];
|
];
|
||||||
|
|
||||||
isActive: Option[] = [
|
isActive: Option[] = [
|
||||||
{icon: 'brightness_1', iconClass: '', value: true, label: 'Active'},
|
{icon: 'brightness_1', iconClass: '', value: true, label: 'Active'},
|
||||||
{icon: 'brightness_1', value: false, label: 'Inactive'},
|
{icon: 'brightness_1', value: false, label: 'Inactive'},
|
||||||
];
|
];
|
||||||
|
@ -104,8 +157,7 @@ export class IndicatorUtils {
|
||||||
queries["query"]["filters"] = [];
|
queries["query"]["filters"] = [];
|
||||||
}
|
}
|
||||||
//TODO check how it works if the query already has a filter
|
//TODO check how it works if the query already has a filter
|
||||||
queries["query"]["filters"].push(JSON.parse(indicatorPath.filters["fundingL0"].
|
queries["query"]["filters"].push(JSON.parse(indicatorPath.filters["fundingL0"].replace(ChartHelper.prefix + "fundingL0" + ChartHelper.suffix, fundingL0)));
|
||||||
replace(ChartHelper.prefix + "fundingL0" + ChartHelper.suffix, fundingL0)));
|
|
||||||
}
|
}
|
||||||
replacedUrl = JSON.stringify(newJsonObject);
|
replacedUrl = JSON.stringify(newJsonObject);
|
||||||
}
|
}
|
||||||
|
@ -120,7 +172,7 @@ export class IndicatorUtils {
|
||||||
form.indicatorPaths.forEach((indicatorPath, index) => {
|
form.indicatorPaths.forEach((indicatorPath, index) => {
|
||||||
indicatorPath.parameters.forEach(parameter => {
|
indicatorPath.parameters.forEach(parameter => {
|
||||||
indicator.indicatorPaths[index].parameters[parameter.key] = parameter.value;
|
indicator.indicatorPaths[index].parameters[parameter.key] = parameter.value;
|
||||||
if(parameter.key === 'type') {
|
if (parameter.key === 'type') {
|
||||||
indicator.indicatorPaths[index].type = parameter.value;
|
indicator.indicatorPaths[index].type = parameter.value;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -181,7 +233,7 @@ export class IndicatorUtils {
|
||||||
if (filter["groupFilters"][0]["field"].indexOf(".funder") != -1) {
|
if (filter["groupFilters"][0]["field"].indexOf(".funder") != -1) {
|
||||||
funderName = filter["groupFilters"][0]["values"][0];
|
funderName = filter["groupFilters"][0]["values"][0];
|
||||||
filter["groupFilters"][0]["values"][0] = ChartHelper.prefix + "funder_name" + ChartHelper.suffix;
|
filter["groupFilters"][0]["values"][0] = ChartHelper.prefix + "funder_name" + ChartHelper.suffix;
|
||||||
indicatorPath.parameters["funder_name"] = funderName;
|
indicatorPath.parameters["funder_name"] = funderName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -198,7 +250,7 @@ export class IndicatorUtils {
|
||||||
if (gfilter["field"].indexOf(".year") != -1 && gfilter["type"].indexOf(">") != -1) {
|
if (gfilter["field"].indexOf(".year") != -1 && gfilter["type"].indexOf(">") != -1) {
|
||||||
start_year = gfilter["values"][0];
|
start_year = gfilter["values"][0];
|
||||||
gfilter["values"][0] = ChartHelper.prefix + "start_year" + ChartHelper.suffix;
|
gfilter["values"][0] = ChartHelper.prefix + "start_year" + ChartHelper.suffix;
|
||||||
indicatorPath.parameters["start_year"] = start_year;
|
indicatorPath.parameters["start_year"] = start_year;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -216,7 +268,7 @@ export class IndicatorUtils {
|
||||||
if (gfilter["field"].indexOf(".year") != -1 && gfilter["type"].indexOf("<") != -1) {
|
if (gfilter["field"].indexOf(".year") != -1 && gfilter["type"].indexOf("<") != -1) {
|
||||||
end_year = gfilter["values"][0];
|
end_year = gfilter["values"][0];
|
||||||
gfilter["values"][0] = ChartHelper.prefix + "end_year" + ChartHelper.suffix;
|
gfilter["values"][0] = ChartHelper.prefix + "end_year" + ChartHelper.suffix;
|
||||||
indicatorPath.parameters["end_year"] = end_year;
|
indicatorPath.parameters["end_year"] = end_year;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -228,7 +280,7 @@ export class IndicatorUtils {
|
||||||
if (obj["chartDescription"]["title"]) {
|
if (obj["chartDescription"]["title"]) {
|
||||||
title = obj["chartDescription"]["title"]["text"];
|
title = obj["chartDescription"]["title"]["text"];
|
||||||
obj["chartDescription"]["title"]["text"] = ChartHelper.prefix + "title" + ChartHelper.suffix;
|
obj["chartDescription"]["title"]["text"] = ChartHelper.prefix + "title" + ChartHelper.suffix;
|
||||||
indicatorPath.parameters["title"] = title;
|
indicatorPath.parameters["title"] = title;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue