mirror of
https://github.com/kremalicious/umami.git
synced 2024-12-04 06:54:47 +01:00
handle page titles
This commit is contained in:
parent
157e80fec5
commit
db3a9525b9
2
app.json
2
app.json
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "Umami",
|
"name": "analytics",
|
||||||
"description": "Umami is a simple, fast, website analytics alternative to Google Analytics.",
|
"description": "Umami is a simple, fast, website analytics alternative to Google Analytics.",
|
||||||
"keywords": ["analytics", "charts", "statistics", "web-analytics"],
|
"keywords": ["analytics", "charts", "statistics", "web-analytics"],
|
||||||
"website": "https://umami.is",
|
"website": "https://umami.is",
|
||||||
|
@ -10,6 +10,7 @@ import useMessages from 'components/hooks/useMessages';
|
|||||||
import HamburgerButton from 'components/common/HamburgerButton';
|
import HamburgerButton from 'components/common/HamburgerButton';
|
||||||
import { usePathname } from 'next/navigation';
|
import { usePathname } from 'next/navigation';
|
||||||
import styles from './NavBar.module.css';
|
import styles from './NavBar.module.css';
|
||||||
|
import appMeta from '../../../app.json';
|
||||||
|
|
||||||
export function NavBar() {
|
export function NavBar() {
|
||||||
const pathname = usePathname();
|
const pathname = usePathname();
|
||||||
@ -63,7 +64,7 @@ export function NavBar() {
|
|||||||
<Icon size="lg">
|
<Icon size="lg">
|
||||||
<Icons.Logo />
|
<Icons.Logo />
|
||||||
</Icon>
|
</Icon>
|
||||||
<Text>umami</Text>
|
<Text>{appMeta.name}</Text>
|
||||||
</div>
|
</div>
|
||||||
<div className={styles.links}>
|
<div className={styles.links}>
|
||||||
{links.map(({ url, label }) => {
|
{links.map(({ url, label }) => {
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
import Dashboard from 'app/(main)/dashboard/Dashboard';
|
import Dashboard from 'app/(main)/dashboard/Dashboard';
|
||||||
import { Metadata } from 'next';
|
import { Metadata } from 'next';
|
||||||
|
import appMeta from '../../../../app.json';
|
||||||
|
|
||||||
export default function () {
|
export default function () {
|
||||||
return <Dashboard />;
|
return <Dashboard />;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'Dashboard | umami',
|
title: `Dashboard | ${appMeta.name}`,
|
||||||
};
|
};
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import ReportDetails from './ReportDetails';
|
import ReportDetails from './ReportDetails';
|
||||||
import { Metadata } from 'next';
|
import { Metadata } from 'next';
|
||||||
|
import appMeta from '../../../../../app.json';
|
||||||
|
|
||||||
export default function ReportDetailsPage({ params: { id } }) {
|
export default function ReportDetailsPage({ params: { id } }) {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
@ -10,5 +11,5 @@ export default function ReportDetailsPage({ params: { id } }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'Reports | umami',
|
title: `Reports | ${appMeta.name}`,
|
||||||
};
|
};
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
import ReportTemplates from './ReportTemplates';
|
import ReportTemplates from './ReportTemplates';
|
||||||
import { Metadata } from 'next';
|
import { Metadata } from 'next';
|
||||||
|
import appMeta from '../../../../../app.json';
|
||||||
|
|
||||||
export default function ReportsCreatePage() {
|
export default function ReportsCreatePage() {
|
||||||
return <ReportTemplates />;
|
return <ReportTemplates />;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'Create Report | umami',
|
title: `Create Report | ${appMeta.name}`,
|
||||||
};
|
};
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import ReportsHeader from './ReportsHeader';
|
import ReportsHeader from './ReportsHeader';
|
||||||
import ReportsDataTable from './ReportsDataTable';
|
import ReportsDataTable from './ReportsDataTable';
|
||||||
|
import appMeta from '../../../../app.json';
|
||||||
|
|
||||||
export default function () {
|
export default function () {
|
||||||
return (
|
return (
|
||||||
@ -10,5 +11,5 @@ export default function () {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
export const metadata = {
|
export const metadata = {
|
||||||
title: 'Reports | umami',
|
title: `Reports | ${appMeta.name}`,
|
||||||
};
|
};
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import ProfileHeader from './ProfileHeader';
|
import ProfileHeader from './ProfileHeader';
|
||||||
import ProfileSettings from './ProfileSettings';
|
import ProfileSettings from './ProfileSettings';
|
||||||
import { Metadata } from 'next';
|
import { Metadata } from 'next';
|
||||||
|
import appMeta from '../../../../../app.json';
|
||||||
|
|
||||||
export default function () {
|
export default function () {
|
||||||
return (
|
return (
|
||||||
@ -12,5 +13,5 @@ export default function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'Profile Settings | umami',
|
title: `Profile Settings | ${appMeta.name}`,
|
||||||
};
|
};
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import TeamsDataTable from './TeamsDataTable';
|
import TeamsDataTable from './TeamsDataTable';
|
||||||
import TeamsHeader from './TeamsHeader';
|
import TeamsHeader from './TeamsHeader';
|
||||||
import { Metadata } from 'next';
|
import { Metadata } from 'next';
|
||||||
|
import appMeta from '../../../../../app.json';
|
||||||
|
|
||||||
export default function () {
|
export default function () {
|
||||||
if (process.env.cloudMode) {
|
if (process.env.cloudMode) {
|
||||||
@ -16,5 +17,5 @@ export default function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'Teams Settings | umami',
|
title: `Team Settings | ${appMeta.name}`,
|
||||||
};
|
};
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import UsersDataTable from './UsersDataTable';
|
import UsersDataTable from './UsersDataTable';
|
||||||
import { Metadata } from 'next';
|
import { Metadata } from 'next';
|
||||||
|
import appMeta from '../../../../../app.json';
|
||||||
|
|
||||||
export default function () {
|
export default function () {
|
||||||
return <UsersDataTable />;
|
return <UsersDataTable />;
|
||||||
}
|
}
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'Users | umami',
|
title: `Users | ${appMeta.name}`,
|
||||||
};
|
};
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
import { Metadata } from 'next';
|
import { Metadata } from 'next';
|
||||||
import Websites from './Websites';
|
import Websites from './Websites';
|
||||||
|
import appMeta from '../../../../../app.json';
|
||||||
|
|
||||||
export default function () {
|
export default function () {
|
||||||
return <Websites />;
|
return <Websites />;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'Websites Settings | umami',
|
title: `Website Settings | ${appMeta.name}`,
|
||||||
};
|
};
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import WebsitesHeader from 'app/(main)/settings/websites/WebsitesHeader';
|
import WebsitesHeader from 'app/(main)/settings/websites/WebsitesHeader';
|
||||||
import WebsitesBrowse from './WebsitesBrowse';
|
import WebsitesBrowse from './WebsitesBrowse';
|
||||||
import { Metadata } from 'next';
|
import { Metadata } from 'next';
|
||||||
|
import appMeta from '../../../../app.json';
|
||||||
|
|
||||||
export default function WebsitesPage() {
|
export default function WebsitesPage() {
|
||||||
return (
|
return (
|
||||||
@ -12,5 +13,5 @@ export default function WebsitesPage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'Websites | umami',
|
title: `Websites | ${appMeta.name}`,
|
||||||
};
|
};
|
||||||
|
@ -30,5 +30,5 @@ export default function ({ children }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'umami',
|
title: 'analytics',
|
||||||
};
|
};
|
||||||
|
@ -16,6 +16,7 @@ import { setClientAuthToken } from 'lib/client';
|
|||||||
import useMessages from 'components/hooks/useMessages';
|
import useMessages from 'components/hooks/useMessages';
|
||||||
import Logo from 'assets/logo.svg';
|
import Logo from 'assets/logo.svg';
|
||||||
import styles from './LoginForm.module.css';
|
import styles from './LoginForm.module.css';
|
||||||
|
import appMeta from '../../../app.json';
|
||||||
|
|
||||||
export function LoginForm() {
|
export function LoginForm() {
|
||||||
const { formatMessage, labels, getMessage } = useMessages();
|
const { formatMessage, labels, getMessage } = useMessages();
|
||||||
@ -41,7 +42,7 @@ export function LoginForm() {
|
|||||||
<Icon className={styles.icon} size="xl">
|
<Icon className={styles.icon} size="xl">
|
||||||
<Logo />
|
<Logo />
|
||||||
</Icon>
|
</Icon>
|
||||||
<div className={styles.title}>umami</div>
|
<div className={styles.title}>{appMeta.name}</div>
|
||||||
<Form className={styles.form} onSubmit={handleSubmit} error={getMessage(error)}>
|
<Form className={styles.form} onSubmit={handleSubmit} error={getMessage(error)}>
|
||||||
<FormRow label={formatMessage(labels.username)}>
|
<FormRow label={formatMessage(labels.username)}>
|
||||||
<FormInput name="username" rules={{ required: formatMessage(labels.required) }}>
|
<FormInput name="username" rules={{ required: formatMessage(labels.required) }}>
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import LoginForm from './LoginForm';
|
import LoginForm from './LoginForm';
|
||||||
import { Metadata } from 'next';
|
import { Metadata } from 'next';
|
||||||
import styles from './page.module.css';
|
import styles from './page.module.css';
|
||||||
|
import appMeta from '../../../app.json';
|
||||||
|
|
||||||
async function getDisabled() {
|
async function getDisabled() {
|
||||||
return !!process.env.LOGIN_DISABLED;
|
return !!process.env.LOGIN_DISABLED;
|
||||||
@ -21,5 +22,5 @@ export default async function LoginPage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'Login | umami',
|
title: `Login | ${appMeta.name}`,
|
||||||
};
|
};
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
import Logout from './Logout';
|
import Logout from './Logout';
|
||||||
import { Metadata } from 'next';
|
import { Metadata } from 'next';
|
||||||
|
import appMeta from '../../../app.json';
|
||||||
|
|
||||||
export default function () {
|
export default function () {
|
||||||
return <Logout />;
|
return <Logout />;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'Logout | umami',
|
title: `Logout | ${appMeta.name}`,
|
||||||
};
|
};
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
import Share from './Share';
|
import Share from './Share';
|
||||||
import { Metadata } from 'next';
|
import { Metadata } from 'next';
|
||||||
|
import appMeta from '../../../../app.json';
|
||||||
|
|
||||||
export default function ({ params: { id } }) {
|
export default function ({ params: { id } }) {
|
||||||
return <Share shareId={id[0]} />;
|
return <Share shareId={id[0]} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'umami',
|
title: appMeta.name,
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user