From eb4dfc2f25e5a885ef5a6da32c85c6c941a51b78 Mon Sep 17 00:00:00 2001 From: Tom Robinson <tlrobinson@gmail.com> Date: Wed, 6 Jun 2018 14:00:40 -0700 Subject: [PATCH] Fix questions/card entity type issue --- frontend/src/metabase/components/CollectionLanding.jsx | 6 ++---- frontend/src/metabase/entities/search.js | 8 ++++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/frontend/src/metabase/components/CollectionLanding.jsx b/frontend/src/metabase/components/CollectionLanding.jsx index db9b7a0e67c..6bf25ce2489 100644 --- a/frontend/src/metabase/components/CollectionLanding.jsx +++ b/frontend/src/metabase/components/CollectionLanding.jsx @@ -3,6 +3,7 @@ import { Box, Flex, Subhead, Truncate } from "rebass"; import { t } from "c-3po"; import { connect } from "react-redux"; import { withRouter } from "react-router"; +import _ from "underscore"; import Question from "metabase/entities/questions"; import Dashboard from "metabase/entities/dashboards"; @@ -117,10 +118,7 @@ class DefaultLanding extends React.Component { return <CollectionEmptyState />; } - console.log(items); - - const pinned = items.filter(i => i.collection_position); - const other = items.filter(i => !i.collection_position); + const [pinned, other] = _.partition(items, i => i.collection_position != null); return ( <Box> diff --git a/frontend/src/metabase/entities/search.js b/frontend/src/metabase/entities/search.js index 7661a6689b9..9e1d594d7b3 100644 --- a/frontend/src/metabase/entities/search.js +++ b/frontend/src/metabase/entities/search.js @@ -15,6 +15,10 @@ import { CollectionsApi, } from "metabase/services"; +// backend returns type = "card" instead of "question" +const backendTypeToEntitiesName = object => + object.type === "card" ? "questions" : `${object.type}s`; + export default createEntity({ name: "search", path: "/api/search", @@ -26,14 +30,14 @@ export default createEntity({ pulses: PulseSchema, collections: CollectionSchema, }, - (object, parent, key) => `${object.type}s`, + (object, parent, key) => backendTypeToEntitiesName(object), ), // delegate to the actual object's entity wrapEntity wrapEntity(object, dispatch) { const entities = require("metabase/entities"); // NOTE: special case card -> questions - const type = object.type === "card" ? "questions" : `${object.type}s`; + const type = backendTypeToEntitiesName(object); const entity = entities[type]; return entity.wrapEntity(object, dispatch); }, -- GitLab