Skip to content
Snippets Groups Projects
Commit cda0f5b4 authored by Tom Robinson's avatar Tom Robinson Committed by GitHub
Browse files

Merge pull request #3716 from metabase/details-only-in-table-field-setting

Usable table column enable/disabling with default disabled for "detail-only"
parents 8e4d1135 7f12457e
Branches
Tags
No related merge requests found
......@@ -7,31 +7,6 @@ function compareNumbers(a, b) {
return a - b;
}
export function filterOnPreviewDisplay(data) {
// find any columns where visibility_type = details-only
var hiddenColumnIdxs = _.map(data.cols, function(col, idx) { if(col.visibility_type === "details-only") return idx; });
hiddenColumnIdxs = _.filter(hiddenColumnIdxs, function(val) { return val !== undefined; });
// filter out our data grid using the indexes of the hidden columns
var filteredRows = data.rows.map(function(row, rowIdx) {
return row.filter(function(cell, cellIdx) {
if (_.contains(hiddenColumnIdxs, cellIdx)) {
return false;
} else {
return true;
}
});
});
return {
cols: _.filter(data.cols, function(col) { return col.visibility_type !== "details-only"; }),
columns: _.map(data.cols, function(col) { return col.display_name; }),
rows: filteredRows,
rows_truncated: data.rows_truncated,
native_form: data.native_form
};
}
export function pivot(data) {
// find the lowest cardinality dimension and make it our "pivoted" column
// TODO: we assume dimensions are in the first 2 columns, which is less than ideal
......
......@@ -530,7 +530,7 @@ const SETTINGS = {
columnsAreValid(card.visualization_settings["table.columns"].map(x => x.name), data),
getDefault: ([{ data: { cols }}]) => cols.map(col => ({
name: col.name,
enabled: true
enabled: col.visibility_type !== "details-only"
})),
getProps: ([{ data: { cols }}]) => ({
columnNames: cols.reduce((o, col) => ({ ...o, [col.name]: getFriendlyName(col)}), {})
......
......@@ -5,8 +5,6 @@ import _ from "underscore";
import { getTemplateTags } from "metabase/meta/Card";
import { isCardDirty, isCardRunnable } from "metabase/lib/card";
import * as DataGrid from "metabase/lib/data_grid";
import Query from "metabase/lib/query";
import { parseFieldTarget } from "metabase/lib/query_time";
import { isPK } from "metabase/lib/types";
import { applyParameters } from "metabase/meta/Card";
......@@ -132,18 +130,8 @@ export const isObjectDetail = createSelector(
);
export const queryResult = createSelector(
[state => state.qb.queryResult, isObjectDetail],
(queryResult, isObjectDetail) => {
// if we are display bare rows, filter out columns with visibility_type = details-only
if (queryResult && queryResult.json_query && !isObjectDetail &&
Query.isStructured(queryResult.json_query) &&
Query.isBareRowsAggregation(queryResult.json_query.query)) {
// TODO: mutability?
queryResult.data = DataGrid.filterOnPreviewDisplay(queryResult.data);
}
return queryResult;
}
[state => state.qb.queryResult],
(queryResult) => queryResult
);
export const getImplicitParameters = createSelector(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment