widget.bubble_chart.property.xLogarithmic.name=X Logarithmic Scale
widget.bubble_chart.property.yLogarithmic.name=Y Logarithmic Scale
+widget.measure_filter.no_main_metric=The widget can not be rendered because no measure is available for the main metric.
+
widget.measure_filter_pie_chart.name=Measure Filter as Pie Chart
widget.measure_filter_pie_chart.description=Displays the result of a pre-configured measure filter as a pie chart.
widget.measure_filter_pie_chart.property.chartTitle.name=Chart Title
baseUrl: baseUrl + '/dashboard/index/',
xLog: <%= xLog -%>,
yLog: <%= yLog -%>,
- noData: '<%= message('no_data') -%>'
+ noData: '<%= message('no_data') -%>',
+ noMainMetric: '<%= message('widget.measure_filter.no_main_metric') -%>'
})
.render('#<%= containerId -%>');
baseUrl: baseUrl + '/dashboard/index/',
displayWorstBestValues: <%= displayWorstBestValues -%>,
maxItemsReachedMessage: '<%= message("widget.measure_filter_histogram.max_items_reached", :params => [maxItems]) -%>',
- noData: '<%= message('no_data') -%>'
+ noData: '<%= message('no_data') -%>',
+ noMainMetric: '<%= message('widget.measure_filter.no_main_metric') -%>'
})
.render('#<%= containerId -%>');
.height(<%= chartHeight %>)
.options({
baseUrl: baseUrl + '/dashboard/index/',
- noData: '<%= message('no_data') -%>'
+ noData: '<%= message('no_data') -%>',
+ noMainMetric: '<%= message('widget.measure_filter.no_main_metric') -%>'
})
.render('#<%= containerId -%>');
container = d3.select(container);
+ var validData = this.components().reduce(function(p, c) {
+ return p && !!c.measures[widget.metricsPriority()[0]] && !!c.measures[widget.metricsPriority()[1]];
+ }, true);
+
+ if (!validData) {
+ container.text(this.options().noMainMetric);
+ return;
+ }
+
+
this.width(container.property('offsetWidth'));
this.svg = container.append('svg')
this.sizeMetric = this.metricsPriority()[2];
this.getSizeMetric = function(d) {
- return d.measures[widget.sizeMetric].val;
+ return !!d.measures[widget.sizeMetric] ? d.measures[widget.sizeMetric].val : 0;
};
var metricLines = [
{ metric: widget.metrics()[widget.xMetric].name, value: d.measures[widget.xMetric].fval },
{ metric: widget.metrics()[widget.yMetric].name, value: d.measures[widget.yMetric].fval },
- { metric: widget.metrics()[widget.sizeMetric].name, value: d.measures[widget.sizeMetric].fval }
+ { metric: widget.metrics()[widget.sizeMetric].name, value: (!!d.measures[widget.sizeMetric] ? d.measures[widget.sizeMetric].fval : '–') }
];
var lastX = 0;
container = d3.select(container);
+ var validData = this.components().reduce(function(p, c) {
+ return p && !!c.measures[widget.metricsPriority()[0]]
+ }, true);
+
+ if (!validData) {
+ container.text(this.options().noMainMetric);
+ return;
+ }
+
+
this.width(container.property('offsetWidth'));
this.svg = container.append('svg')
// Configure metrics
this.mainMetric = this.metricsPriority()[0];
this.getMainMetric = function(d) {
- if (d.measures[widget.mainMetric]) {
- return d.measures[widget.mainMetric].val;
- } else {
- return 0;
- }
+ return d.measures[widget.mainMetric].val;
};
container = d3.select(container);
+
+ var validData = this.components().reduce(function(p, c) {
+ return p && !!c.measures[widget.metricsPriority()[0]]
+ }, true);
+
+ if (!validData) {
+ container.text(this.options().noMainMetric);
+ return;
+ }
+
+
this.width(container.property('offsetWidth'));
this.svg = container.append('svg')
// Configure metrics
this.mainMetric = this.metricsPriority()[0];
this.getMainMetric = function(d) {
- if (d.measures[widget.mainMetric]) {
- return d.measures[widget.mainMetric].val;
- } else {
- return 0;
- }
+ return d.measures[widget.mainMetric].val;
};
var metrics = widget.metricsPriority().map(function(m) {
return {
name: widget.metrics()[m].name,
- value: d.measures[m].fval
+ value: (!!d.measures[m] ? d.measures[m].fval : '–')
};
});
metrics.unshift({ name: d.name });