diff --git a/.dir-locals.el b/.dir-locals.el index 7a070d2fd9a1e62bb67ebd66b246c3695e832151..63008bd395e87a835bb05e3b74a4e31cfe4fe17b 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -41,4 +41,5 @@ ;; prefer keeping source width about ~118, GitHub seems to cut off stuff at either 119 or 120 and ;; it's nicer to look at code in GH when you don't have to scroll back and forth (fill-column . 118) - (clojure-docstring-fill-column . 118)))) + (clojure-docstring-fill-column . 118) + (cider-preferred-build-tool . lein)))) diff --git a/frontend/src/metabase/app.js b/frontend/src/metabase/app.js index 8d4a5f5d39f41d2138768942bf05fc1468b65b16..13e60ea0e94f8ff4d3eb4adbb69fe518b9547ea3 100644 --- a/frontend/src/metabase/app.js +++ b/frontend/src/metabase/app.js @@ -103,7 +103,7 @@ function _init(reducers, getRoutes, callback) { MetabaseSettings.on("anon-tracking-enabled", () => { window[ "ga-disable-" + MetabaseSettings.get("ga-code") - ] = MetabaseSettings.isTrackingEnabled() ? null : true; + ] = MetabaseSettings.trackingEnabled() ? null : true; }); MetabaseSettings.on("user-locale", async locale => { diff --git a/frontend/src/metabase/lib/settings.js b/frontend/src/metabase/lib/settings.js index 517b0912b51b3036b4d51284c54554cf5c8e7caa..40628ece4555971ca77ba7b3926b27b1c8b8dd19 100644 --- a/frontend/src/metabase/lib/settings.js +++ b/frontend/src/metabase/lib/settings.js @@ -23,6 +23,7 @@ export type SettingName = | "ldap-configured?" | "map-tile-server-url" | "password-complexity" + | "search-typeahead-enabled" | "setup-token" | "site-url" | "types" @@ -90,10 +91,6 @@ class Settings { return /.+\.metabaseapp.com\/?$/i.test(this.get("site-url")); } - isTrackingEnabled() { - return this.get("anon-tracking-enabled") || false; - } - googleAuthEnabled() { return this.get("google-auth-client-id") != null; } @@ -102,16 +99,24 @@ class Settings { return this.get("setup-token") != null; } - ssoEnabled() { - return this.get("google-auth-client-id") != null; + hideEmbedBranding() { + return this.get("hide-embed-branding?"); } ldapEnabled() { return this.get("ldap-configured?"); } - hideEmbedBranding() { - return this.get("hide-embed-branding?"); + searchTypeaheadEnabled() { + return this.get("search-typeahead-enabled"); + } + + ssoEnabled() { + return this.get("google-auth-client-id") != null; + } + + trackingEnabled() { + return this.get("anon-tracking-enabled") || false; } docsUrl(page = "", anchor = "") { diff --git a/frontend/src/metabase/nav/components/SearchBar.jsx b/frontend/src/metabase/nav/components/SearchBar.jsx index 514d2014fd223929edcf5e083ab95d4856b721f2..e858b4694d14deae77a7fc22be1ddaf85b683765 100644 --- a/frontend/src/metabase/nav/components/SearchBar.jsx +++ b/frontend/src/metabase/nav/components/SearchBar.jsx @@ -13,6 +13,7 @@ import OnClickOutsideWrapper from "metabase/components/OnClickOutsideWrapper"; import SearchResult from "metabase/search/components/SearchResult"; import { DefaultSearchColor } from "metabase/nav/constants"; +import MetabaseSettings from "metabase/lib/settings"; const ActiveSearchColor = lighten(color("nav"), 0.1); @@ -141,7 +142,7 @@ export default class SearchBar extends React.Component { } }} /> - {active && ( + {active && MetabaseSettings.searchTypeaheadEnabled() && ( <div className="absolute left right text-dark" style={{ top: 60 }}> {searchText.length > 0 ? ( <Card diff --git a/src/metabase/search/config.clj b/src/metabase/search/config.clj index ecc2c5837d9242a40d36664ad1ee8f1f6c4fcd08..4792cc9e04d1d7c8fb488432ada0a270bdc0f917 100644 --- a/src/metabase/search/config.clj +++ b/src/metabase/search/config.clj @@ -2,7 +2,14 @@ (:require [cheshire.core :as json] [clojure.string :as str] [honeysql.core :as hsql] - [metabase.models :refer [Card Collection Dashboard Metric Pulse Segment Table]])) + [metabase.models :refer [Card Collection Dashboard Metric Pulse Segment Table]] + [metabase.models.setting :refer [defsetting]] + [metabase.util.i18n :refer [deferred-tru]])) + +(defsetting search-typeahead-enabled + (deferred-tru "Enable typeahead search in the Metabase navbar?") + :type :boolean + :default true) (def ^:dynamic db-max-results "Number of raw results to fetch from the database. This number is in place to prevent massive application DB load by