mirror of
https://github.com/kremalicious/umami.git
synced 2025-02-14 21:10:34 +01:00
add cloud_mode
This commit is contained in:
parent
9147415761
commit
db1ae3f2c7
@ -14,7 +14,7 @@ import useUser from 'hooks/useUser';
|
|||||||
import Logo from 'assets/logo.svg';
|
import Logo from 'assets/logo.svg';
|
||||||
import styles from './Header.module.css';
|
import styles from './Header.module.css';
|
||||||
|
|
||||||
export default function Header() {
|
export default function Header({ settingsDisabled }) {
|
||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
const { pathname } = useRouter();
|
const { pathname } = useRouter();
|
||||||
const { updatesDisabled } = useConfig();
|
const { updatesDisabled } = useConfig();
|
||||||
@ -38,15 +38,17 @@ export default function Header() {
|
|||||||
<Link href="/realtime">
|
<Link href="/realtime">
|
||||||
<FormattedMessage id="label.realtime" defaultMessage="Realtime" />
|
<FormattedMessage id="label.realtime" defaultMessage="Realtime" />
|
||||||
</Link>
|
</Link>
|
||||||
|
{!settingsDisabled && (
|
||||||
<Link href="/settings">
|
<Link href="/settings">
|
||||||
<FormattedMessage id="label.settings" defaultMessage="Settings" />
|
<FormattedMessage id="label.settings" defaultMessage="Settings" />
|
||||||
</Link>
|
</Link>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
<div className={styles.buttons}>
|
<div className={styles.buttons}>
|
||||||
<ThemeButton />
|
<ThemeButton />
|
||||||
<LanguageButton menuAlign="right" />
|
<LanguageButton menuAlign="right" />
|
||||||
{user && <UserButton />}
|
{user && <UserButton settingsDisabled={settingsDisabled} />}
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
</>
|
</>
|
||||||
|
@ -4,7 +4,13 @@ import Header from 'components/layout/Header';
|
|||||||
import Footer from 'components/layout/Footer';
|
import Footer from 'components/layout/Footer';
|
||||||
import useLocale from 'hooks/useLocale';
|
import useLocale from 'hooks/useLocale';
|
||||||
|
|
||||||
export default function Layout({ title, children, header = true, footer = true }) {
|
export default function Layout({
|
||||||
|
title,
|
||||||
|
children,
|
||||||
|
header = true,
|
||||||
|
footer = true,
|
||||||
|
settingsDisabled = false,
|
||||||
|
}) {
|
||||||
const { dir } = useLocale();
|
const { dir } = useLocale();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -13,7 +19,7 @@ export default function Layout({ title, children, header = true, footer = true }
|
|||||||
<title>umami{title && ` - ${title}`}</title>
|
<title>umami{title && ` - ${title}`}</title>
|
||||||
</Head>
|
</Head>
|
||||||
|
|
||||||
{header && <Header />}
|
{header && <Header settingsDisabled={settingsDisabled} />}
|
||||||
<main>{children}</main>
|
<main>{children}</main>
|
||||||
{footer && <Footer />}
|
{footer && <Footer />}
|
||||||
<div id="__modals" dir={dir} />
|
<div id="__modals" dir={dir} />
|
||||||
|
@ -9,7 +9,7 @@ import styles from './UserButton.module.css';
|
|||||||
import { AUTH_TOKEN } from 'lib/constants';
|
import { AUTH_TOKEN } from 'lib/constants';
|
||||||
import useUser from 'hooks/useUser';
|
import useUser from 'hooks/useUser';
|
||||||
|
|
||||||
export default function UserButton() {
|
export default function UserButton({ settingsDisabled }) {
|
||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
@ -25,7 +25,11 @@ export default function UserButton() {
|
|||||||
value: 'username',
|
value: 'username',
|
||||||
className: styles.username,
|
className: styles.username,
|
||||||
},
|
},
|
||||||
{ label: <FormattedMessage id="label.profile" defaultMessage="Profile" />, value: 'profile' },
|
{
|
||||||
|
label: <FormattedMessage id="label.profile" defaultMessage="Profile" />,
|
||||||
|
value: 'profile',
|
||||||
|
hidden: settingsDisabled,
|
||||||
|
},
|
||||||
{ label: <FormattedMessage id="label.logout" defaultMessage="Logout" />, value: 'logout' },
|
{ label: <FormattedMessage id="label.logout" defaultMessage="Logout" />, value: 'logout' },
|
||||||
];
|
];
|
||||||
|
|
||||||
|
12
pages/404.js
12
pages/404.js
@ -2,9 +2,9 @@ import React from 'react';
|
|||||||
import Layout from 'components/layout/Layout';
|
import Layout from 'components/layout/Layout';
|
||||||
import { FormattedMessage } from 'react-intl';
|
import { FormattedMessage } from 'react-intl';
|
||||||
|
|
||||||
export default function Custom404() {
|
export default function Custom404({ settingsDisabled }) {
|
||||||
return (
|
return (
|
||||||
<Layout>
|
<Layout settingsDisabled={settingsDisabled}>
|
||||||
<div className="row justify-content-center">
|
<div className="row justify-content-center">
|
||||||
<h1>
|
<h1>
|
||||||
<FormattedMessage id="message.page-not-found" defaultMessage="Page not found" />
|
<FormattedMessage id="message.page-not-found" defaultMessage="Page not found" />
|
||||||
@ -13,3 +13,11 @@ export default function Custom404() {
|
|||||||
</Layout>
|
</Layout>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function getServerSideProps() {
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
settingsDisabled: !!process.env.CLOUD_MODE,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
@ -4,7 +4,7 @@ import TestConsole from 'components/pages/TestConsole';
|
|||||||
import useRequireLogin from 'hooks/useRequireLogin';
|
import useRequireLogin from 'hooks/useRequireLogin';
|
||||||
import useUser from 'hooks/useUser';
|
import useUser from 'hooks/useUser';
|
||||||
|
|
||||||
export default function ConsolePage({ enabled }) {
|
export default function ConsolePage({ enabled, settingsDisabled }) {
|
||||||
const { loading } = useRequireLogin();
|
const { loading } = useRequireLogin();
|
||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
|
|
||||||
@ -13,7 +13,7 @@ export default function ConsolePage({ enabled }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Layout>
|
<Layout settingsDisabled={settingsDisabled}>
|
||||||
<TestConsole />
|
<TestConsole />
|
||||||
</Layout>
|
</Layout>
|
||||||
);
|
);
|
||||||
|
@ -3,7 +3,7 @@ import Layout from 'components/layout/Layout';
|
|||||||
import Dashboard from 'components/pages/Dashboard';
|
import Dashboard from 'components/pages/Dashboard';
|
||||||
import useRequireLogin from 'hooks/useRequireLogin';
|
import useRequireLogin from 'hooks/useRequireLogin';
|
||||||
|
|
||||||
export default function DashboardPage() {
|
export default function DashboardPage({ settingsDisabled }) {
|
||||||
const { loading } = useRequireLogin();
|
const { loading } = useRequireLogin();
|
||||||
|
|
||||||
if (loading) {
|
if (loading) {
|
||||||
@ -11,8 +11,16 @@ export default function DashboardPage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Layout>
|
<Layout settingsDisabled={settingsDisabled}>
|
||||||
<Dashboard />
|
<Dashboard />
|
||||||
</Layout>
|
</Layout>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function getServerSideProps() {
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
settingsDisabled: !!process.env.CLOUD_MODE,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
@ -16,6 +16,6 @@ export default function LoginPage({ loginDisabled }) {
|
|||||||
|
|
||||||
export async function getServerSideProps() {
|
export async function getServerSideProps() {
|
||||||
return {
|
return {
|
||||||
props: { loginDisabled: !!process.env.DISABLE_LOGIN },
|
props: { loginDisabled: !!process.env.DISABLE_LOGIN || process.env.CLOUD_MODE },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ import Layout from 'components/layout/Layout';
|
|||||||
import RealtimeDashboard from 'components/pages/RealtimeDashboard';
|
import RealtimeDashboard from 'components/pages/RealtimeDashboard';
|
||||||
import useRequireLogin from 'hooks/useRequireLogin';
|
import useRequireLogin from 'hooks/useRequireLogin';
|
||||||
|
|
||||||
export default function RealtimePage() {
|
export default function RealtimePage({ settingsDisabled }) {
|
||||||
const { loading } = useRequireLogin();
|
const { loading } = useRequireLogin();
|
||||||
|
|
||||||
if (loading) {
|
if (loading) {
|
||||||
@ -11,8 +11,16 @@ export default function RealtimePage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Layout>
|
<Layout settingsDisabled={settingsDisabled}>
|
||||||
<RealtimeDashboard />
|
<RealtimeDashboard />
|
||||||
</Layout>
|
</Layout>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function getServerSideProps() {
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
settingsDisabled: !!process.env.CLOUD_MODE,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
import Index from './index';
|
import Index from './index';
|
||||||
|
|
||||||
export default Index;
|
export default Index;
|
||||||
|
|
||||||
|
export async function getServerSideProps() {
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
settingsDisabled: !!process.env.CLOUD_MODE,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
@ -3,16 +3,26 @@ import Layout from 'components/layout/Layout';
|
|||||||
import Settings from 'components/pages/Settings';
|
import Settings from 'components/pages/Settings';
|
||||||
import useRequireLogin from 'hooks/useRequireLogin';
|
import useRequireLogin from 'hooks/useRequireLogin';
|
||||||
|
|
||||||
export default function SettingsPage() {
|
export default function SettingsPage({ settingsDisabled }) {
|
||||||
const { loading } = useRequireLogin();
|
const { loading } = useRequireLogin();
|
||||||
|
|
||||||
if (loading) {
|
if (settingsDisabled || loading) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Layout>
|
<Layout settingsDisabled={settingsDisabled}>
|
||||||
|
TEST TEST TEST
|
||||||
|
{settingsDisabled}
|
||||||
<Settings />
|
<Settings />
|
||||||
</Layout>
|
</Layout>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function getServerSideProps() {
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
settingsDisabled: !!process.env.CLOUD_MODE,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
import Index from './index';
|
import Index from './index';
|
||||||
|
|
||||||
export default Index;
|
export default Index;
|
||||||
|
|
||||||
|
export async function getServerSideProps() {
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
settingsDisabled: !!process.env.CLOUD_MODE,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
@ -4,7 +4,7 @@ import Layout from 'components/layout/Layout';
|
|||||||
import WebsiteDetails from 'components/pages/WebsiteDetails';
|
import WebsiteDetails from 'components/pages/WebsiteDetails';
|
||||||
import useShareToken from 'hooks/useShareToken';
|
import useShareToken from 'hooks/useShareToken';
|
||||||
|
|
||||||
export default function SharePage() {
|
export default function SharePage({ settingsDisabled }) {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { id } = router.query;
|
const { id } = router.query;
|
||||||
const shareId = id?.[0];
|
const shareId = id?.[0];
|
||||||
@ -17,8 +17,16 @@ export default function SharePage() {
|
|||||||
const { websiteId } = shareToken;
|
const { websiteId } = shareToken;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Layout>
|
<Layout settingsDisabled={settingsDisabled}>
|
||||||
<WebsiteDetails websiteId={websiteId} />
|
<WebsiteDetails websiteId={websiteId} />
|
||||||
</Layout>
|
</Layout>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function getServerSideProps() {
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
settingsDisabled: !!process.env.CLOUD_MODE,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
@ -4,7 +4,7 @@ import Layout from 'components/layout/Layout';
|
|||||||
import WebsiteDetails from 'components/pages/WebsiteDetails';
|
import WebsiteDetails from 'components/pages/WebsiteDetails';
|
||||||
import useRequireLogin from 'hooks/useRequireLogin';
|
import useRequireLogin from 'hooks/useRequireLogin';
|
||||||
|
|
||||||
export default function DetailsPage() {
|
export default function DetailsPage({ settingsDisabled }) {
|
||||||
const { loading } = useRequireLogin();
|
const { loading } = useRequireLogin();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { id } = router.query;
|
const { id } = router.query;
|
||||||
@ -16,8 +16,16 @@ export default function DetailsPage() {
|
|||||||
const [websiteId] = id;
|
const [websiteId] = id;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Layout>
|
<Layout settingsDisabled={settingsDisabled}>
|
||||||
<WebsiteDetails websiteId={websiteId} />
|
<WebsiteDetails websiteId={websiteId} />
|
||||||
</Layout>
|
</Layout>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function getServerSideProps() {
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
settingsDisabled: !!process.env.CLOUD_MODE,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user