feat: pre-existing local changes — fischerei, verband, modules, members, packages
Commits all remaining uncommitted local work: - apps/web: fischerei, verband, modules, members-cms, documents, newsletter, meetings, site-builder, courses, bookings, events, finance pages and components - apps/web: marketing page updates, layout, paths config, next.config.mjs, styles/makerkit.css - apps/web/i18n: documents, fischerei, marketing, verband (de+en) - packages/features: finance, fischerei, member-management, module-builder, newsletter, sitzungsprotokolle, verbandsverwaltung server APIs and components - packages/ui: button.tsx updates - pnpm-lock.yaml
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
|
||||
import { createFischereiApi } from '@kit/fischerei/api';
|
||||
import {
|
||||
FischereiTabNavigation,
|
||||
@@ -18,6 +20,7 @@ export default async function CatchBooksPage({ params, searchParams }: Props) {
|
||||
const { account } = await params;
|
||||
const search = await searchParams;
|
||||
const client = getSupabaseServerClient();
|
||||
const t = await getTranslations('fischerei');
|
||||
|
||||
const { data: acct } = await client
|
||||
.from('accounts')
|
||||
@@ -48,7 +51,7 @@ export default async function CatchBooksPage({ params, searchParams }: Props) {
|
||||
});
|
||||
|
||||
return (
|
||||
<CmsPageShell account={account} title="Fischerei - Fangbücher">
|
||||
<CmsPageShell account={account} title={t('pages.catchBooksTitle')}>
|
||||
<FischereiTabNavigation account={account} activeTab="catch-books" />
|
||||
<ListToolbar
|
||||
searchPlaceholder="Mitglied suchen..."
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
|
||||
import { createFischereiApi } from '@kit/fischerei/api';
|
||||
import {
|
||||
FischereiTabNavigation,
|
||||
@@ -15,6 +17,7 @@ interface Props {
|
||||
export default async function NewCompetitionPage({ params }: Props) {
|
||||
const { account } = await params;
|
||||
const client = getSupabaseServerClient();
|
||||
const t = await getTranslations('fischerei');
|
||||
|
||||
const { data: acct } = await client
|
||||
.from('accounts')
|
||||
@@ -33,7 +36,7 @@ export default async function NewCompetitionPage({ params }: Props) {
|
||||
}));
|
||||
|
||||
return (
|
||||
<CmsPageShell account={account} title="Neuer Wettbewerb">
|
||||
<CmsPageShell account={account} title={t('pages.newCompetitionTitle')}>
|
||||
<FischereiTabNavigation account={account} activeTab="competitions" />
|
||||
<CreateCompetitionForm
|
||||
accountId={acct.id}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
|
||||
import { createFischereiApi } from '@kit/fischerei/api';
|
||||
import {
|
||||
FischereiTabNavigation,
|
||||
@@ -21,6 +23,7 @@ export default async function CompetitionsPage({
|
||||
const { account } = await params;
|
||||
const search = await searchParams;
|
||||
const client = getSupabaseServerClient();
|
||||
const t = await getTranslations('fischerei');
|
||||
|
||||
const { data: acct } = await client
|
||||
.from('accounts')
|
||||
@@ -50,7 +53,7 @@ export default async function CompetitionsPage({
|
||||
});
|
||||
|
||||
return (
|
||||
<CmsPageShell account={account} title="Fischerei - Wettbewerbe">
|
||||
<CmsPageShell account={account} title={t('pages.competitionsTitle')}>
|
||||
<FischereiTabNavigation account={account} activeTab="competitions" />
|
||||
<ListToolbar
|
||||
showSearch={false}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
|
||||
import { createFischereiApi } from '@kit/fischerei/api';
|
||||
import {
|
||||
FischereiTabNavigation,
|
||||
@@ -15,6 +17,7 @@ interface Props {
|
||||
export default async function NewLeasePage({ params }: Props) {
|
||||
const { account } = await params;
|
||||
const client = getSupabaseServerClient();
|
||||
const t = await getTranslations('fischerei');
|
||||
|
||||
const { data: acct } = await client
|
||||
.from('accounts')
|
||||
@@ -33,7 +36,7 @@ export default async function NewLeasePage({ params }: Props) {
|
||||
}));
|
||||
|
||||
return (
|
||||
<CmsPageShell account={account} title="Neue Pacht">
|
||||
<CmsPageShell account={account} title={t('pages.newLeaseTitle')}>
|
||||
<FischereiTabNavigation account={account} activeTab="leases" />
|
||||
<CreateLeaseForm accountId={acct.id} account={account} waters={waters} />
|
||||
</CmsPageShell>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import Link from 'next/link';
|
||||
|
||||
import { Plus } from 'lucide-react';
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
|
||||
import { createFischereiApi } from '@kit/fischerei/api';
|
||||
import {
|
||||
@@ -23,6 +24,7 @@ export default async function LeasesPage({ params, searchParams }: Props) {
|
||||
const { account } = await params;
|
||||
const search = await searchParams;
|
||||
const client = getSupabaseServerClient();
|
||||
const t = await getTranslations('fischerei');
|
||||
|
||||
const { data: acct } = await client
|
||||
.from('accounts')
|
||||
@@ -58,22 +60,21 @@ export default async function LeasesPage({ params, searchParams }: Props) {
|
||||
];
|
||||
|
||||
return (
|
||||
<CmsPageShell account={account} title="Fischerei - Pachten">
|
||||
<CmsPageShell account={account} title={t('pages.leasesTitle')}>
|
||||
<FischereiTabNavigation account={account} activeTab="leases" />
|
||||
<div className="flex w-full flex-col gap-6">
|
||||
<div className="flex items-center justify-between">
|
||||
<div>
|
||||
<h1 className="text-2xl font-bold">Pachten</h1>
|
||||
<p className="text-muted-foreground">
|
||||
Gewässerpachtverträge verwalten
|
||||
</p>
|
||||
</div>
|
||||
<Link href={`/home/${account}/fischerei/leases/new`}>
|
||||
<Button size="sm" data-test="leases-new-btn">
|
||||
<Button size="sm" data-test="leases-new-btn" asChild>
|
||||
<Link href={`/home/${account}/fischerei/leases/new`}>
|
||||
<Plus className="mr-2 h-4 w-4" />
|
||||
Neue Pacht
|
||||
</Button>
|
||||
</Link>
|
||||
</Link>
|
||||
</Button>
|
||||
</div>
|
||||
<ListToolbar
|
||||
showSearch={false}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
|
||||
import { createFischereiApi } from '@kit/fischerei/api';
|
||||
import {
|
||||
FischereiTabNavigation,
|
||||
@@ -15,6 +17,7 @@ interface PageProps {
|
||||
export default async function FischereiPage({ params }: PageProps) {
|
||||
const { account } = await params;
|
||||
const client = getSupabaseServerClient();
|
||||
const t = await getTranslations('fischerei');
|
||||
|
||||
const { data: acct } = await client
|
||||
.from('accounts')
|
||||
@@ -28,7 +31,7 @@ export default async function FischereiPage({ params }: PageProps) {
|
||||
const stats = await api.getDashboardStats(acct.id);
|
||||
|
||||
return (
|
||||
<CmsPageShell account={account} title="Fischerei">
|
||||
<CmsPageShell account={account} title={t('pages.overviewTitle')}>
|
||||
<FischereiTabNavigation account={account} activeTab="overview" />
|
||||
<FischereiDashboard stats={stats} account={account} />
|
||||
</CmsPageShell>
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
|
||||
import { createFischereiApi } from '@kit/fischerei/api';
|
||||
import {
|
||||
FischereiTabNavigation,
|
||||
@@ -15,6 +17,7 @@ interface Props {
|
||||
export default async function NewPermitPage({ params }: Props) {
|
||||
const { account } = await params;
|
||||
const client = getSupabaseServerClient();
|
||||
const t = await getTranslations('fischerei');
|
||||
|
||||
const { data: acct } = await client
|
||||
.from('accounts')
|
||||
@@ -33,7 +36,7 @@ export default async function NewPermitPage({ params }: Props) {
|
||||
}));
|
||||
|
||||
return (
|
||||
<CmsPageShell account={account} title="Neuer Erlaubnisschein">
|
||||
<CmsPageShell account={account} title={t('pages.newPermitTitle')}>
|
||||
<FischereiTabNavigation account={account} activeTab="permits" />
|
||||
<CreatePermitForm accountId={acct.id} account={account} waters={waters} />
|
||||
</CmsPageShell>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import Link from 'next/link';
|
||||
|
||||
import { Plus } from 'lucide-react';
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
|
||||
import { createFischereiApi } from '@kit/fischerei/api';
|
||||
import {
|
||||
@@ -20,6 +21,7 @@ interface Props {
|
||||
export default async function PermitsPage({ params }: Props) {
|
||||
const { account } = await params;
|
||||
const client = getSupabaseServerClient();
|
||||
const t = await getTranslations('fischerei');
|
||||
|
||||
const { data: acct } = await client
|
||||
.from('accounts')
|
||||
@@ -33,22 +35,21 @@ export default async function PermitsPage({ params }: Props) {
|
||||
const permits = await api.listPermits(acct.id);
|
||||
|
||||
return (
|
||||
<CmsPageShell account={account} title="Fischerei - Erlaubnisscheine">
|
||||
<CmsPageShell account={account} title={t('pages.permitsTitle')}>
|
||||
<FischereiTabNavigation account={account} activeTab="permits" />
|
||||
<div className="flex w-full flex-col gap-6">
|
||||
<div className="flex items-center justify-between">
|
||||
<div>
|
||||
<h1 className="text-2xl font-bold">Erlaubnisscheine</h1>
|
||||
<p className="text-muted-foreground">
|
||||
Erlaubnisscheine und Gewässerkarten verwalten
|
||||
</p>
|
||||
</div>
|
||||
<Link href={`/home/${account}/fischerei/permits/new`}>
|
||||
<Button size="sm" data-test="permits-new-btn">
|
||||
<Button size="sm" data-test="permits-new-btn" asChild>
|
||||
<Link href={`/home/${account}/fischerei/permits/new`}>
|
||||
<Plus className="mr-2 h-4 w-4" />
|
||||
Neuer Erlaubnisschein
|
||||
</Button>
|
||||
</Link>
|
||||
</Link>
|
||||
</Button>
|
||||
</div>
|
||||
<PermitsDataTable
|
||||
data={permits as Array<Record<string, unknown>>}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import { notFound } from 'next/navigation';
|
||||
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
|
||||
import { createFischereiApi } from '@kit/fischerei/api';
|
||||
import {
|
||||
FischereiTabNavigation,
|
||||
@@ -17,6 +19,7 @@ interface Props {
|
||||
export default async function EditSpeciesPage({ params }: Props) {
|
||||
const { account, speciesId } = await params;
|
||||
const client = getSupabaseServerClient();
|
||||
const t = await getTranslations('fischerei');
|
||||
|
||||
const { data: acct } = await client
|
||||
.from('accounts')
|
||||
@@ -37,7 +40,7 @@ export default async function EditSpeciesPage({ params }: Props) {
|
||||
}
|
||||
|
||||
return (
|
||||
<CmsPageShell account={account} title="Fischart bearbeiten">
|
||||
<CmsPageShell account={account} title={t('pages.editSpeciesTitle')}>
|
||||
<FischereiTabNavigation account={account} activeTab="species" />
|
||||
<CreateSpeciesForm
|
||||
accountId={acct.id}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
|
||||
import {
|
||||
FischereiTabNavigation,
|
||||
CreateSpeciesForm,
|
||||
@@ -14,6 +16,7 @@ interface Props {
|
||||
export default async function NewSpeciesPage({ params }: Props) {
|
||||
const { account } = await params;
|
||||
const client = getSupabaseServerClient();
|
||||
const t = await getTranslations('fischerei');
|
||||
|
||||
const { data: acct } = await client
|
||||
.from('accounts')
|
||||
@@ -24,7 +27,7 @@ export default async function NewSpeciesPage({ params }: Props) {
|
||||
if (!acct) return <AccountNotFound />;
|
||||
|
||||
return (
|
||||
<CmsPageShell account={account} title="Neue Fischart">
|
||||
<CmsPageShell account={account} title={t('pages.newSpeciesTitle')}>
|
||||
<FischereiTabNavigation account={account} activeTab="species" />
|
||||
<CreateSpeciesForm accountId={acct.id} account={account} />
|
||||
</CmsPageShell>
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
|
||||
import { createFischereiApi } from '@kit/fischerei/api';
|
||||
import {
|
||||
FischereiTabNavigation,
|
||||
@@ -18,6 +20,7 @@ export default async function SpeciesPage({ params, searchParams }: Props) {
|
||||
const { account } = await params;
|
||||
const search = await searchParams;
|
||||
const client = getSupabaseServerClient();
|
||||
const t = await getTranslations('fischerei');
|
||||
|
||||
const { data: acct } = await client
|
||||
.from('accounts')
|
||||
@@ -41,7 +44,7 @@ export default async function SpeciesPage({ params, searchParams }: Props) {
|
||||
});
|
||||
|
||||
return (
|
||||
<CmsPageShell account={account} title="Fischerei - Fischarten">
|
||||
<CmsPageShell account={account} title={t('pages.speciesTitle')}>
|
||||
<FischereiTabNavigation account={account} activeTab="species" />
|
||||
<ListToolbar
|
||||
searchPlaceholder="Fischart suchen..."
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
|
||||
import { FischereiTabNavigation } from '@kit/fischerei/components';
|
||||
import { getSupabaseServerClient } from '@kit/supabase/server-client';
|
||||
import { Card, CardContent, CardHeader, CardTitle } from '@kit/ui/card';
|
||||
@@ -12,6 +14,7 @@ interface Props {
|
||||
export default async function StatisticsPage({ params }: Props) {
|
||||
const { account } = await params;
|
||||
const client = getSupabaseServerClient();
|
||||
const t = await getTranslations('fischerei');
|
||||
|
||||
const { data: acct } = await client
|
||||
.from('accounts')
|
||||
@@ -22,11 +25,10 @@ export default async function StatisticsPage({ params }: Props) {
|
||||
if (!acct) return <AccountNotFound />;
|
||||
|
||||
return (
|
||||
<CmsPageShell account={account} title="Fischerei - Statistiken">
|
||||
<CmsPageShell account={account} title={t('pages.statisticsTitle')}>
|
||||
<FischereiTabNavigation account={account} activeTab="statistics" />
|
||||
<div className="flex w-full flex-col gap-6">
|
||||
<div>
|
||||
<h1 className="text-2xl font-bold">Statistiken</h1>
|
||||
<p className="text-muted-foreground">
|
||||
Fangstatistiken und Auswertungen
|
||||
</p>
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import { notFound } from 'next/navigation';
|
||||
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
|
||||
import { createFischereiApi } from '@kit/fischerei/api';
|
||||
import {
|
||||
FischereiTabNavigation,
|
||||
@@ -17,6 +19,7 @@ interface Props {
|
||||
export default async function EditStockingPage({ params }: Props) {
|
||||
const { account, stockingId } = await params;
|
||||
const client = getSupabaseServerClient();
|
||||
const t = await getTranslations('fischerei');
|
||||
|
||||
const { data: acct } = await client
|
||||
.from('accounts')
|
||||
@@ -53,7 +56,7 @@ export default async function EditStockingPage({ params }: Props) {
|
||||
}));
|
||||
|
||||
return (
|
||||
<CmsPageShell account={account} title="Besatz bearbeiten">
|
||||
<CmsPageShell account={account} title={t('pages.editStockingTitle')}>
|
||||
<FischereiTabNavigation account={account} activeTab="stocking" />
|
||||
<CreateStockingForm
|
||||
accountId={acct.id}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
|
||||
import { createFischereiApi } from '@kit/fischerei/api';
|
||||
import {
|
||||
FischereiTabNavigation,
|
||||
@@ -15,6 +17,7 @@ interface Props {
|
||||
export default async function NewStockingPage({ params }: Props) {
|
||||
const { account } = await params;
|
||||
const client = getSupabaseServerClient();
|
||||
const t = await getTranslations('fischerei');
|
||||
|
||||
const { data: acct } = await client
|
||||
.from('accounts')
|
||||
@@ -43,7 +46,7 @@ export default async function NewStockingPage({ params }: Props) {
|
||||
}));
|
||||
|
||||
return (
|
||||
<CmsPageShell account={account} title="Besatz eintragen">
|
||||
<CmsPageShell account={account} title={t('pages.newStockingTitle')}>
|
||||
<FischereiTabNavigation account={account} activeTab="stocking" />
|
||||
<CreateStockingForm
|
||||
accountId={acct.id}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
|
||||
import { createFischereiApi } from '@kit/fischerei/api';
|
||||
import {
|
||||
FischereiTabNavigation,
|
||||
@@ -18,6 +20,7 @@ export default async function StockingPage({ params, searchParams }: Props) {
|
||||
const { account } = await params;
|
||||
const search = await searchParams;
|
||||
const client = getSupabaseServerClient();
|
||||
const t = await getTranslations('fischerei');
|
||||
|
||||
const { data: acct } = await client
|
||||
.from('accounts')
|
||||
@@ -71,7 +74,7 @@ export default async function StockingPage({ params, searchParams }: Props) {
|
||||
];
|
||||
|
||||
return (
|
||||
<CmsPageShell account={account} title="Fischerei - Besatz">
|
||||
<CmsPageShell account={account} title={t('pages.stockingTitle')}>
|
||||
<FischereiTabNavigation account={account} activeTab="stocking" />
|
||||
<ListToolbar
|
||||
showSearch={false}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import { notFound } from 'next/navigation';
|
||||
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
|
||||
import { createFischereiApi } from '@kit/fischerei/api';
|
||||
import {
|
||||
FischereiTabNavigation,
|
||||
@@ -17,6 +19,7 @@ interface Props {
|
||||
export default async function EditWaterPage({ params }: Props) {
|
||||
const { account, waterId } = await params;
|
||||
const client = getSupabaseServerClient();
|
||||
const t = await getTranslations('fischerei');
|
||||
|
||||
const { data: acct } = await client
|
||||
.from('accounts')
|
||||
@@ -37,7 +40,7 @@ export default async function EditWaterPage({ params }: Props) {
|
||||
}
|
||||
|
||||
return (
|
||||
<CmsPageShell account={account} title="Gewässer bearbeiten">
|
||||
<CmsPageShell account={account} title={t('pages.editWaterTitle')}>
|
||||
<FischereiTabNavigation account={account} activeTab="waters" />
|
||||
<CreateWaterForm accountId={acct.id} account={account} water={water} />
|
||||
</CmsPageShell>
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
|
||||
import {
|
||||
FischereiTabNavigation,
|
||||
CreateWaterForm,
|
||||
@@ -14,6 +16,7 @@ interface Props {
|
||||
export default async function NewWaterPage({ params }: Props) {
|
||||
const { account } = await params;
|
||||
const client = getSupabaseServerClient();
|
||||
const t = await getTranslations('fischerei');
|
||||
|
||||
const { data: acct } = await client
|
||||
.from('accounts')
|
||||
@@ -24,7 +27,7 @@ export default async function NewWaterPage({ params }: Props) {
|
||||
if (!acct) return <AccountNotFound />;
|
||||
|
||||
return (
|
||||
<CmsPageShell account={account} title="Neues Gewässer">
|
||||
<CmsPageShell account={account} title={t('pages.newWaterTitle')}>
|
||||
<FischereiTabNavigation account={account} activeTab="waters" />
|
||||
<CreateWaterForm accountId={acct.id} account={account} />
|
||||
</CmsPageShell>
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
|
||||
import { createFischereiApi } from '@kit/fischerei/api';
|
||||
import {
|
||||
FischereiTabNavigation,
|
||||
@@ -17,6 +19,7 @@ export default async function WatersPage({ params, searchParams }: Props) {
|
||||
const { account } = await params;
|
||||
const search = await searchParams;
|
||||
const client = getSupabaseServerClient();
|
||||
const t = await getTranslations('fischerei');
|
||||
|
||||
const { data: acct } = await client
|
||||
.from('accounts')
|
||||
@@ -36,7 +39,7 @@ export default async function WatersPage({ params, searchParams }: Props) {
|
||||
});
|
||||
|
||||
return (
|
||||
<CmsPageShell account={account} title="Fischerei - Gewässer">
|
||||
<CmsPageShell account={account} title={t('pages.watersTitle')}>
|
||||
<FischereiTabNavigation account={account} activeTab="waters" />
|
||||
<WatersDataTable
|
||||
data={result.data}
|
||||
|
||||
Reference in New Issue
Block a user