diff --git a/frontend/src/metabase/entities/revisions.js b/frontend/src/metabase/entities/revisions.js index 47fcb0fbc2e65806d6412cba6d8fddcd4e19bd93..20d79b3c2e617d719ec8b936704b092f89d168e9 100644 --- a/frontend/src/metabase/entities/revisions.js +++ b/frontend/src/metabase/entities/revisions.js @@ -2,9 +2,10 @@ import { createEntity } from "metabase/lib/entities"; import { GET, POST } from "metabase/lib/api"; -const listRevisions = GET("/api/revision"); +import Dashboards from "./dashboards"; +import Questions from "./questions"; -const ASSOCIATED_ENTITY_TYPES = ["questions", "dashboards"]; +const listRevisions = GET("/api/revision"); const Revision = createEntity({ name: "revisions", @@ -35,14 +36,11 @@ const Revision = createEntity({ }, actionShouldInvalidateLists(action) { - const entities = require("metabase/entities"); - for (const type of ASSOCIATED_ENTITY_TYPES) { - if (entities[type].actionShouldInvalidateLists(action)) { - return true; - } - } - - return action.type === this.actionTypes.INVALIDATE_LISTS_ACTION; + return ( + action.type === this.actionTypes.INVALIDATE_LISTS_ACTION || + Dashboards.actionShouldInvalidateLists(action) || + Questions.actionShouldInvalidateLists(action) + ); }, }); diff --git a/frontend/src/metabase/entities/search.js b/frontend/src/metabase/entities/search.js index 3d7dc6221ebe89450b6f5f8d9992b04025d4c5d4..4c8c119574eb68671502153ebe05b391e657fa22 100644 --- a/frontend/src/metabase/entities/search.js +++ b/frontend/src/metabase/entities/search.js @@ -3,11 +3,19 @@ import { createEntity } from "metabase/lib/entities"; import { GET } from "metabase/lib/api"; import { entityTypeForObject } from "metabase/lib/schema"; -import { ObjectUnionSchema, ENTITIES_SCHEMA_MAP } from "metabase/schema"; +import { ObjectUnionSchema } from "metabase/schema"; import { canonicalCollectionId } from "metabase/collections/utils"; -const ENTITIES_TYPES = Object.keys(ENTITIES_SCHEMA_MAP); +import Bookmarks from "./bookmarks"; +import Collections from "./collections"; +import Dashboards from "./dashboards"; +import Metrics from "./metrics"; +import Pulses from "./pulses"; +import Questions from "./questions"; +import Segments from "./segments"; +import Snippets from "./snippets"; +import SnippetCollections from "./snippet-collections"; const searchList = GET("/api/search"); const collectionList = GET("/api/collection/:collection/items"); @@ -82,12 +90,16 @@ export default createEntity({ // delegate to each entity's actionShouldInvalidateLists actionShouldInvalidateLists(action) { - const entities = require("metabase/entities"); - for (const type of ENTITIES_TYPES) { - if (entities[type].actionShouldInvalidateLists(action)) { - return true; - } - } - return false; + return ( + Bookmarks.actionShouldInvalidateLists(action) || + Collections.actionShouldInvalidateLists(action) || + Dashboards.actionShouldInvalidateLists(action) || + Metrics.actionShouldInvalidateLists(action) || + Pulses.actionShouldInvalidateLists(action) || + Questions.actionShouldInvalidateLists(action) || + Segments.actionShouldInvalidateLists(action) || + Snippets.actionShouldInvalidateLists(action) || + SnippetCollections.actionShouldInvalidateLists(action) + ); }, });