Skip to content
Snippets Groups Projects
Commit 7321c3e2 authored by Atte Keinänen's avatar Atte Keinänen
Browse files

Fix binning drill-through

parent 7088192a
No related branches found
No related tags found
No related merge requests found
/* @flow weak */
import moment from "moment";
import _ from "underscore";
import Q from "metabase/lib/query"; // legacy query lib
import { fieldIdsEq } from "metabase/lib/query/util";
......@@ -13,7 +14,8 @@ import { rangeForValue } from "metabase/lib/dataset";
import {
isDate,
isState,
isCountry
isCountry,
isCoordinate
} from "metabase/lib/schema_metadata";
import Utils from "metabase/lib/utils";
......@@ -399,10 +401,13 @@ const guessVisualization = (card: CardObject, tableMetadata: Table) => {
if (!VISUALIZATIONS_TWO_BREAKOUTS.has(card.display)) {
if (isDate(breakoutFields[0])) {
card.display = "line";
// NOTE Atte Keinänen 8/2/17: Heat/grid maps disabled in the first merged version of binning
// } else if (_.all(breakoutFields, isCoordinate)) {
// card.display = "map";
// card.visualization_settings["map.type"] = "grid";
} else if (_.all(breakoutFields, isCoordinate)) {
card.display = "map";
// NOTE Atte Keinänen 8/2/17: Heat/grid maps disabled in the first merged version of binning
// Currently show a pin map instead of heat map for double coordinate breakout
// This way the binning drill-through works in a somewhat acceptable way (although it is designed for heat maps)
card.visualization_settings["map.type"] = "pin";
// card.visualization_settings["map.type"] = "grid";
} else {
card.display = "bar";
}
......
......@@ -62,7 +62,7 @@ const DEFAULT_DRILL_DOWN_PROGRESSIONS = [
// generic num-bins drill down
[
[["binning-strategy", isAny, "num-bins", () => true]],
[["binning-strategy", isAny, "num-bins", previous => previous]]
[["binning-strategy", isAny, "default"]]
],
// generic bin-width drill down
[
......@@ -213,19 +213,6 @@ function columnToBreakout(column) {
} else if (column.binning_info) {
let binningStrategy = column.binning_info.binning_strategy;
// HACK: `binning_strategy` currently always returns `num-bins`, so try to guess if it's actually `bin-width`
if (binningStrategy === "num-bins") {
const numBinsComputed = (column.binning_info.max_value -
column.binning_info.min_value) /
column.binning_info.bin_width;
const numBinsError = Math.abs(
column.binning_info.num_bins - numBinsComputed
) / numBinsComputed;
if (numBinsError > 0.0000001) {
binningStrategy = "bin-width";
}
}
switch (binningStrategy) {
case "bin-width":
return [
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment