diff --git a/client/.babelrc b/client/.babelrc index 4de7bd4792..0fe25a043c 100644 --- a/client/.babelrc +++ b/client/.babelrc @@ -10,7 +10,6 @@ "@babel/preset-react" ], "plugins": [ - "angularjs-annotate", "@babel/plugin-proposal-class-properties", "@babel/plugin-transform-object-assign", ["babel-plugin-transform-builtin-extend", { diff --git a/client/app/assets/less/inc/base.less b/client/app/assets/less/inc/base.less index 5da73fa7d0..3e293d5fba 100755 --- a/client/app/assets/less/inc/base.less +++ b/client/app/assets/less/inc/base.less @@ -29,12 +29,12 @@ body { font-family: @redash-font; position: relative; - app-view { + #application-root { padding-bottom: 15px; } &.headless { - app-view { + #application-root { padding-top: 10px; padding-bottom: 0; } @@ -45,11 +45,11 @@ body { } } -app-view { +#application-root { min-height: 100vh; } -app-view, +#application-root, #app-content { display: flex; flex-direction: column; @@ -93,11 +93,10 @@ strong { @media (min-width: 768px) { .settings-screen, .home-page, - page-dashboard-list, - page-queries-list, - page-alerts-list, - alert-page, - queries-search-results-page, + .page-dashboard-list, + .page-queries-list, + .page-alerts-list, + .alert-page, .fixed-container { .container { width: 750px; @@ -108,11 +107,10 @@ strong { @media (min-width: 992px) { .settings-screen, .home-page, - page-dashboard-list, - page-queries-list, - page-alerts-list, - alert-page, - queries-search-results-page, + .page-dashboard-list, + .page-queries-list, + .page-alerts-list, + .alert-page, .fixed-container { .container { width: 970px; @@ -123,11 +121,10 @@ strong { @media (min-width: 1200px) { .settings-screen, .home-page, - page-dashboard-list, - page-queries-list, - page-alerts-list, - alert-page, - queries-search-results-page, + .page-dashboard-list, + .page-queries-list, + .page-alerts-list, + .alert-page, .fixed-container { .container { width: 1170px; diff --git a/client/app/assets/less/redash/loading-indicator.less b/client/app/assets/less/redash/loading-indicator.less index ded814aecf..3070eeed4a 100644 --- a/client/app/assets/less/redash/loading-indicator.less +++ b/client/app/assets/less/redash/loading-indicator.less @@ -39,8 +39,8 @@ } } -// hide indicator when app-view has content -app-view:not(:empty) ~ .loading-indicator { +// hide indicator when application has content +#application-root:not(:empty) ~ .loading-indicator { opacity: 0; transform: scale(0.9); pointer-events: none; @@ -48,4 +48,4 @@ app-view:not(:empty) ~ .loading-indicator { * { animation: none !important; } -} \ No newline at end of file +} diff --git a/client/app/assets/less/redash/query.less b/client/app/assets/less/redash/query.less index f376be0cc9..8e626824a6 100644 --- a/client/app/assets/less/redash/query.less +++ b/client/app/assets/less/redash/query.less @@ -2,7 +2,7 @@ body.fixed-layout { padding: 0; overflow: hidden; - app-view { + #application-root { display: flex; flex-direction: column; padding-bottom: 0; @@ -692,9 +692,5 @@ nav .rg-bottom { h3 { font-size: 18px; } - - favorites-control { - margin-top: -3px; - } } } diff --git a/client/app/components/app-header/components/FavoritesDropdown.jsx b/client/app/components/ApplicationArea/ApplicationHeader/FavoritesDropdown.jsx similarity index 100% rename from client/app/components/app-header/components/FavoritesDropdown.jsx rename to client/app/components/ApplicationArea/ApplicationHeader/FavoritesDropdown.jsx diff --git a/client/app/components/app-header/AppHeader.jsx b/client/app/components/ApplicationArea/ApplicationHeader/index.jsx similarity index 94% rename from client/app/components/app-header/AppHeader.jsx rename to client/app/components/ApplicationArea/ApplicationHeader/index.jsx index 8a23893443..48718f2b0a 100644 --- a/client/app/components/app-header/AppHeader.jsx +++ b/client/app/components/ApplicationArea/ApplicationHeader/index.jsx @@ -1,6 +1,6 @@ /* eslint-disable no-template-curly-in-string */ -import React, { useRef } from "react"; +import React, { useCallback, useRef } from "react"; import Dropdown from "antd/lib/dropdown"; import Button from "antd/lib/button"; @@ -9,25 +9,28 @@ import Menu from "antd/lib/menu"; import Input from "antd/lib/input"; import Tooltip from "antd/lib/tooltip"; -import FavoritesDropdown from "./components/FavoritesDropdown"; import HelpTrigger from "@/components/HelpTrigger"; import CreateDashboardDialog from "@/components/dashboards/CreateDashboardDialog"; +import navigateTo from "@/components/ApplicationArea/navigateTo"; import { currentUser, Auth, clientConfig } from "@/services/auth"; -import { $location, $route } from "@/services/ng"; import { Dashboard } from "@/services/dashboard"; import { Query } from "@/services/query"; import frontendVersion from "@/version.json"; import logoUrl from "@/assets/images/redash_icon_small.png"; -import "./AppHeader.less"; +import FavoritesDropdown from "./FavoritesDropdown"; +import "./index.less"; function onSearch(q) { - $location.path("/queries").search({ q }); - $route.reload(); + navigateTo(`queries?q=${encodeURIComponent(q)}`); } function DesktopNavbar() { + const showCreateDashboardDialog = useCallback(() => { + CreateDashboardDialog.showModal().result.catch(() => {}); // ignore dismiss + }, []); + return (
@@ -62,7 +65,7 @@ function DesktopNavbar() { )} {currentUser.hasPermission("create_dashboard") && ( - CreateDashboardDialog.showModal()}>New Dashboard + New Dashboard )} {currentUser.hasPermission("list_alerts") && ( @@ -249,7 +252,7 @@ function MobileNavbar() { ); } -export default function AppHeader() { +export default function ApplicationHeader() { return (