Skip to content
Snippets Groups Projects
Commit 8fad7b1b authored by Tom Robinson's avatar Tom Robinson
Browse files

Format field names with parent field names, e.x. nested mongo fields. Resolves #3173

parent dfccfb82
Branches
Tags
No related merge requests found
......@@ -574,6 +574,20 @@ var Query = {
console.warn("Unknown field type: ", field);
},
getFieldPath(fieldId, tableDef) {
let path = [];
while (fieldId != null) {
let field = Table.getField(tableDef, fieldId);
path.unshift(field);
fieldId = field && field.parent_id;
}
return path;
},
getFieldPathName(fieldId, tableDef) {
return Query.getFieldPath(fieldId, tableDef).map(f => f && f.display_name).join(": ")
},
getDatetimeUnit(field) {
if (field.length === 4) {
return field[3]; // deprecated
......
......@@ -10,6 +10,7 @@ import QueryDefinitionTooltip from "./QueryDefinitionTooltip.jsx";
import { isDate, getIconForField } from 'metabase/lib/schema_metadata';
import { parseFieldBucketing, parseFieldTarget } from "metabase/lib/query_time";
import { stripId, singularize } from "metabase/lib/formatting";
import Query from "metabase/lib/query";
import _ from "underscore";
......@@ -61,7 +62,7 @@ export default class FieldList extends Component {
let mainSection = {
name: singularize(tableName),
items: specialOptions.concat(fieldOptions.fields.map(field => ({
name: field.display_name,
name: Query.getFieldPathName(field.id, tableMetadata),
value: field.id,
field: field
})))
......@@ -70,7 +71,7 @@ export default class FieldList extends Component {
let fkSections = fieldOptions.fks.map(fk => ({
name: stripId(fk.field.display_name),
items: fk.fields.map(field => ({
name: field.display_name,
name: Query.getFieldPathName(field.id, tableMetadata),
value: ["fk->", fk.field.id, field.id],
field: field
}))
......
......@@ -40,7 +40,7 @@ export default class FieldName extends Component {
}
// target field itself
// using i.getIn to avoid exceptions when field is undefined
parts.push(<span key="field">{i.getIn(fieldTarget, ['field', 'display_name'])}</span>);
parts.push(<span key="field">{Query.getFieldPathName(fieldTarget.field.id, tableMetadata)}</span>);
// datetime-field unit
if (fieldTarget.unit != null) {
parts.push(<span key="unit">{": " + formatBucketing(fieldTarget.unit)}</span>);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment