Indicator utils fixes - related to #8135
- count applied filters when the filter is applied to a field tha has a parameter filter - apply filters in all select fields not only in the 1st
This commit is contained in:
parent
1a13bd942c
commit
7347a06eea
|
@ -336,7 +336,10 @@ export class IndicatorUtils {
|
||||||
if (key == "index_shortName") {
|
if (key == "index_shortName") {
|
||||||
replacedValue = stakeholder.index_shortName.toLowerCase();
|
replacedValue = stakeholder.index_shortName.toLowerCase();
|
||||||
}
|
}
|
||||||
|
//if there is a parameter that is filtered and the value of the parameter changes, count the filter as applied
|
||||||
|
if(replacedValue !=indicatorPath.parameters[key]){
|
||||||
|
indicatorPath.filtersApplied++;
|
||||||
|
}
|
||||||
replacedUrl = replacedUrl.split(ChartHelper.prefix + key + ChartHelper.suffix).join(replacedValue)
|
replacedUrl = replacedUrl.split(ChartHelper.prefix + key + ChartHelper.suffix).join(replacedValue)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -459,43 +462,46 @@ export class IndicatorUtils {
|
||||||
if (!queries["query"]["filters"] || queries["query"]["filters"].length == 0) {
|
if (!queries["query"]["filters"] || queries["query"]["filters"].length == 0) {
|
||||||
queries["query"]["filters"] = [];
|
queries["query"]["filters"] = [];
|
||||||
}
|
}
|
||||||
let field = queries["query"]["select"][0]["field"];
|
//apply the filter in any select fields
|
||||||
let filterString = IndicatorFilterUtils.getFilter(field&&field.length > 0? field.split(".")[0]:"",filterType);
|
for (let select of queries["query"]["select"]) {
|
||||||
if(filterString){
|
let field = select["field"];
|
||||||
let filter = JSON.parse(filterString);
|
let filterString = IndicatorFilterUtils.getFilter(field&&field.length > 0? field.split(".")[0]:"",filterType);
|
||||||
let filterposition = IndicatorFilterUtils.filterIndexOf(filter,queries["query"]["filters"])
|
if (filterString) {
|
||||||
if(filterposition){
|
let filter = JSON.parse(filterString);
|
||||||
if(queries["query"]["filters"][filterposition.filter]['groupFilters'][filterposition.groupFilter]["values"][0] != filter['groupFilters'][0]["values"][0].replace(ChartHelper.prefix + filterType + ChartHelper.suffix, filterValue)){
|
let filterposition = IndicatorFilterUtils.filterIndexOf(filter, queries["query"]["filters"]);
|
||||||
//change filter value
|
if (filterposition) {
|
||||||
// queries["query"]["filters"][filterposition.filter]['groupFilters'][filterposition.groupFilter]["values"][0] = filter['groupFilters'][0]["values"][0].replace(ChartHelper.prefix + filterType + ChartHelper.suffix, filterValue);
|
if (queries["query"]["filters"][filterposition.filter]['groupFilters'][filterposition.groupFilter]["values"][0] != filter['groupFilters'][0]["values"][0].replace(ChartHelper.prefix + filterType + ChartHelper.suffix, filterValue)) {
|
||||||
//add user filter value
|
//change filter value
|
||||||
// queries["query"]["filters"].push(JSON.parse(filterString.replace(ChartHelper.prefix + filterType + ChartHelper.suffix, filterValue)));
|
// queries["query"]["filters"][filterposition.filter]['groupFilters'][filterposition.groupFilter]["values"][0] = filter['groupFilters'][0]["values"][0].replace(ChartHelper.prefix + filterType + ChartHelper.suffix, filterValue);
|
||||||
// update colors
|
//add user filter value
|
||||||
//if noit a pie, map and chart has more than one query
|
// queries["query"]["filters"].push(JSON.parse(filterString.replace(ChartHelper.prefix + filterType + ChartHelper.suffix, filterValue)));
|
||||||
//
|
// update colors
|
||||||
if(!newJsonObject.hasOwnProperty("mapDescription") && queries["type"]!="pie" && this.isComparingChart(newJsonObject, filter)) {
|
//if noit a pie, map and chart has more than one query
|
||||||
let activeColors = ["#7CB5EC", "#434348", "#8bbc21", "#910000", "#1aadce", "#492970", "#f28f43", "#77a1e5", "#c42525", "#a6c96a"];
|
//
|
||||||
let inActiveColors = ["#E4EFFB", "#D8D8D9", "#8bbc21", "#910000", "#1aadce", "#492970", "#f28f43", "#77a1e5", "#c42525", "#a6c96a"];
|
if (!newJsonObject.hasOwnProperty("mapDescription") && queries["type"] != "pie" && this.isComparingChart(newJsonObject, filter)) {
|
||||||
if (!newJsonObject[this.getDescriptionObjectName(newJsonObject)]["colors"]) {
|
let activeColors = ["#7CB5EC", "#434348", "#8bbc21", "#910000", "#1aadce", "#492970", "#f28f43", "#77a1e5", "#c42525", "#a6c96a"];
|
||||||
newJsonObject[this.getDescriptionObjectName(newJsonObject)]["colors"] = activeColors;
|
let inActiveColors = ["#E4EFFB", "#D8D8D9", "#8bbc21", "#910000", "#1aadce", "#492970", "#f28f43", "#77a1e5", "#c42525", "#a6c96a"];
|
||||||
|
if (!newJsonObject[this.getDescriptionObjectName(newJsonObject)]["colors"]) {
|
||||||
|
newJsonObject[this.getDescriptionObjectName(newJsonObject)]["colors"] = activeColors;
|
||||||
|
}
|
||||||
|
newJsonObject[this.getDescriptionObjectName(newJsonObject)]["colors"][queryIndex] = inActiveColors[queryIndex];
|
||||||
|
filterApplied = true;
|
||||||
|
} else if (filterType == "start_year" || filterType == "end_year") {
|
||||||
|
//if has date filter already
|
||||||
|
if (filterType == "start_year" && parseInt(filterValue) > parseInt(queries["query"]["filters"][filterposition.filter]['groupFilters'][filterposition.groupFilter]["values"][0])) {
|
||||||
|
queries["query"]["filters"][filterposition.filter]['groupFilters'][filterposition.groupFilter]["values"][0] = filterValue;
|
||||||
|
} else if (filterType == "end_year" && parseInt(filterValue) < parseInt(queries["query"]["filters"][filterposition.filter]['groupFilters'][filterposition.groupFilter]["values"][0])) {
|
||||||
|
queries["query"]["filters"][filterposition.filter]['groupFilters'][filterposition.groupFilter]["values"][0] = filterValue;
|
||||||
|
}
|
||||||
|
filterApplied = true;
|
||||||
}
|
}
|
||||||
newJsonObject[this.getDescriptionObjectName(newJsonObject)]["colors"][queryIndex] = inActiveColors[queryIndex];
|
} else {
|
||||||
filterApplied = true;
|
|
||||||
}else if (filterType == "start_year" || filterType == "end_year") {
|
|
||||||
//if has date filter already
|
|
||||||
if(filterType == "start_year" && parseInt(filterValue) > parseInt(queries["query"]["filters"][filterposition.filter]['groupFilters'][filterposition.groupFilter]["values"][0])){
|
|
||||||
queries["query"]["filters"][filterposition.filter]['groupFilters'][filterposition.groupFilter]["values"][0] = filterValue;
|
|
||||||
}else if(filterType == "end_year" && parseInt(filterValue) < parseInt(queries["query"]["filters"][filterposition.filter]['groupFilters'][filterposition.groupFilter]["values"][0])) {
|
|
||||||
queries["query"]["filters"][filterposition.filter]['groupFilters'][filterposition.groupFilter]["values"][0] = filterValue;
|
|
||||||
}
|
|
||||||
filterApplied = true;
|
filterApplied = true;
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
|
queries["query"]["filters"].push(JSON.parse(filterString.replace(ChartHelper.prefix + filterType + ChartHelper.suffix, filterValue)));
|
||||||
filterApplied = true;
|
filterApplied = true;
|
||||||
}
|
}
|
||||||
}else {
|
|
||||||
queries["query"]["filters"].push(JSON.parse(filterString.replace(ChartHelper.prefix + filterType + ChartHelper.suffix, filterValue)));
|
|
||||||
filterApplied = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
queryIndex++;
|
queryIndex++;
|
||||||
|
|
Loading…
Reference in New Issue