mirror of
https://github.com/umami-software/umami.git
synced 2025-12-08 05:12:36 +01:00
Merge remote-tracking branch 'origin/dev' into dev
# Conflicts: # src/app/(main)/teams/TeamsDataTable.tsx # src/app/(main)/teams/TeamsJoinButton.tsx # src/app/(main)/teams/[teamId]/TeamSettings.tsx
This commit is contained in:
commit
8115709a8b
10 changed files with 43 additions and 32 deletions
2
pnpm-lock.yaml
generated
2
pnpm-lock.yaml
generated
|
|
@ -364,8 +364,6 @@ importers:
|
||||||
specifier: ^5.9.2
|
specifier: ^5.9.2
|
||||||
version: 5.9.2
|
version: 5.9.2
|
||||||
|
|
||||||
dist: {}
|
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
'@ampproject/remapping@2.3.0':
|
'@ampproject/remapping@2.3.0':
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,13 @@ import { WebsiteChart } from '@/app/(main)/websites/[websiteId]/WebsiteChart';
|
||||||
import { LinkMetricsBar } from '@/app/(main)/links/[linkId]/LinkMetricsBar';
|
import { LinkMetricsBar } from '@/app/(main)/links/[linkId]/LinkMetricsBar';
|
||||||
import { LinkControls } from '@/app/(main)/links/[linkId]/LinkControls';
|
import { LinkControls } from '@/app/(main)/links/[linkId]/LinkControls';
|
||||||
import { LinkPanels } from '@/app/(main)/links/[linkId]/LinkPanels';
|
import { LinkPanels } from '@/app/(main)/links/[linkId]/LinkPanels';
|
||||||
|
import { Column, Grid } from '@umami/react-zen';
|
||||||
|
|
||||||
export function LinkPage({ linkId }: { linkId: string }) {
|
export function LinkPage({ linkId }: { linkId: string }) {
|
||||||
return (
|
return (
|
||||||
<LinkProvider linkId={linkId}>
|
<LinkProvider linkId={linkId}>
|
||||||
|
<Grid width="100%" height="100%">
|
||||||
|
<Column margin="2">
|
||||||
<PageBody gap>
|
<PageBody gap>
|
||||||
<LinkHeader />
|
<LinkHeader />
|
||||||
<LinkControls linkId={linkId} />
|
<LinkControls linkId={linkId} />
|
||||||
|
|
@ -20,6 +23,8 @@ export function LinkPage({ linkId }: { linkId: string }) {
|
||||||
</Panel>
|
</Panel>
|
||||||
<LinkPanels linkId={linkId} />
|
<LinkPanels linkId={linkId} />
|
||||||
</PageBody>
|
</PageBody>
|
||||||
|
</Column>
|
||||||
|
</Grid>
|
||||||
</LinkProvider>
|
</LinkProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,13 @@ import { WebsiteChart } from '@/app/(main)/websites/[websiteId]/WebsiteChart';
|
||||||
import { PixelMetricsBar } from '@/app/(main)/pixels/[pixelId]/PixelMetricsBar';
|
import { PixelMetricsBar } from '@/app/(main)/pixels/[pixelId]/PixelMetricsBar';
|
||||||
import { PixelControls } from '@/app/(main)/pixels/[pixelId]/PixelControls';
|
import { PixelControls } from '@/app/(main)/pixels/[pixelId]/PixelControls';
|
||||||
import { PixelPanels } from '@/app/(main)/pixels/[pixelId]/PixelPanels';
|
import { PixelPanels } from '@/app/(main)/pixels/[pixelId]/PixelPanels';
|
||||||
|
import { Column, Grid } from '@umami/react-zen';
|
||||||
|
|
||||||
export function PixelPage({ pixelId }: { pixelId: string }) {
|
export function PixelPage({ pixelId }: { pixelId: string }) {
|
||||||
return (
|
return (
|
||||||
<PixelProvider pixelId={pixelId}>
|
<PixelProvider pixelId={pixelId}>
|
||||||
|
<Grid width="100%" height="100%">
|
||||||
|
<Column margin="2">
|
||||||
<PageBody gap>
|
<PageBody gap>
|
||||||
<PixelHeader />
|
<PixelHeader />
|
||||||
<PixelControls pixelId={pixelId} />
|
<PixelControls pixelId={pixelId} />
|
||||||
|
|
@ -20,6 +23,8 @@ export function PixelPage({ pixelId }: { pixelId: string }) {
|
||||||
</Panel>
|
</Panel>
|
||||||
<PixelPanels pixelId={pixelId} />
|
<PixelPanels pixelId={pixelId} />
|
||||||
</PageBody>
|
</PageBody>
|
||||||
|
</Column>
|
||||||
|
</Grid>
|
||||||
</PixelProvider>
|
</PixelProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import Link from 'next/link';
|
|
||||||
import { DataGrid } from '@/components/common/DataGrid';
|
import { DataGrid } from '@/components/common/DataGrid';
|
||||||
import { TeamsTable } from './TeamsTable';
|
|
||||||
import { useLoginQuery, useNavigation, useUserTeamsQuery } from '@/components/hooks';
|
import { useLoginQuery, useNavigation, useUserTeamsQuery } from '@/components/hooks';
|
||||||
|
import Link from 'next/link';
|
||||||
|
import { TeamsTable } from './TeamsTable';
|
||||||
|
|
||||||
export function TeamsDataTable() {
|
export function TeamsDataTable() {
|
||||||
const { user } = useLoginQuery();
|
const { user } = useLoginQuery();
|
||||||
|
|
|
||||||
|
|
@ -20,12 +20,12 @@ export function TeamsTable({
|
||||||
<DataColumn id="owner" label={formatMessage(labels.owner)}>
|
<DataColumn id="owner" label={formatMessage(labels.owner)}>
|
||||||
{(row: any) => row?.members?.find(({ role }) => role === ROLES.teamOwner)?.user?.username}
|
{(row: any) => row?.members?.find(({ role }) => role === ROLES.teamOwner)?.user?.username}
|
||||||
</DataColumn>
|
</DataColumn>
|
||||||
<DataColumn id="websites" label={formatMessage(labels.websites)} align="end">
|
|
||||||
{(row: any) => row?._count?.websites}
|
|
||||||
</DataColumn>
|
|
||||||
<DataColumn id="members" label={formatMessage(labels.members)} align="end">
|
<DataColumn id="members" label={formatMessage(labels.members)} align="end">
|
||||||
{(row: any) => row?._count?.members}
|
{(row: any) => row?._count?.members}
|
||||||
</DataColumn>
|
</DataColumn>
|
||||||
|
<DataColumn id="websites" label={formatMessage(labels.websites)} align="end">
|
||||||
|
{(row: any) => row?._count?.websites}
|
||||||
|
</DataColumn>
|
||||||
</DataTable>
|
</DataTable>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ export function CohortsTable({ data = [] }) {
|
||||||
<DataTable data={data}>
|
<DataTable data={data}>
|
||||||
<DataColumn id="name" label={formatMessage(labels.name)}>
|
<DataColumn id="name" label={formatMessage(labels.name)}>
|
||||||
{(row: any) => (
|
{(row: any) => (
|
||||||
<Link href={renderUrl(`/websites/${websiteId}?cohort=${row.id}`)}>{row.name}</Link>
|
<Link href={renderUrl(`/websites/${websiteId}?cohort=${row.id}`, false)}>{row.name}</Link>
|
||||||
)}
|
)}
|
||||||
</DataColumn>
|
</DataColumn>
|
||||||
<DataColumn id="created" label={formatMessage(labels.created)}>
|
<DataColumn id="created" label={formatMessage(labels.created)}>
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,9 @@ export function SegmentsTable({ data = [] }) {
|
||||||
<DataTable data={data}>
|
<DataTable data={data}>
|
||||||
<DataColumn id="name" label={formatMessage(labels.name)}>
|
<DataColumn id="name" label={formatMessage(labels.name)}>
|
||||||
{(row: any) => (
|
{(row: any) => (
|
||||||
<Link href={renderUrl(`/websites/${websiteId}?segment=${row.id}`)}>{row.name}</Link>
|
<Link href={renderUrl(`/websites/${websiteId}?segment=${row.id}`, false)}>
|
||||||
|
{row.name}
|
||||||
|
</Link>
|
||||||
)}
|
)}
|
||||||
</DataColumn>
|
</DataColumn>
|
||||||
<DataColumn id="created" label={formatMessage(labels.created)}>
|
<DataColumn id="created" label={formatMessage(labels.created)}>
|
||||||
|
|
|
||||||
|
|
@ -10,4 +10,5 @@ export {
|
||||||
Network as NetworkSvg,
|
Network as NetworkSvg,
|
||||||
Path as PathSvg,
|
Path as PathSvg,
|
||||||
Target as TargetSvg,
|
Target as TargetSvg,
|
||||||
|
AddUser as AddUserSvg,
|
||||||
} from '@/components/svg';
|
} from '@/components/svg';
|
||||||
|
|
|
||||||
|
|
@ -127,12 +127,12 @@ export const DATA_TYPES = {
|
||||||
|
|
||||||
export const ROLES = {
|
export const ROLES = {
|
||||||
admin: 'admin',
|
admin: 'admin',
|
||||||
teamManager: 'team-manager',
|
|
||||||
teamMember: 'team-member',
|
|
||||||
teamOwner: 'team-owner',
|
|
||||||
teamViewOnly: 'team-view-only',
|
|
||||||
user: 'user',
|
user: 'user',
|
||||||
viewOnly: 'view-only',
|
viewOnly: 'view-only',
|
||||||
|
teamOwner: 'team-owner',
|
||||||
|
teamManager: 'team-manager',
|
||||||
|
teamMember: 'team-member',
|
||||||
|
teamViewOnly: 'team-view-only',
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
export const PERMISSIONS = {
|
export const PERMISSIONS = {
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,7 @@ export async function getQueryFilters(
|
||||||
}));
|
}));
|
||||||
|
|
||||||
cohortFilters.push({
|
cohortFilters.push({
|
||||||
name: cohortParams.action.type,
|
name: `cohort_${cohortParams.action.type}`,
|
||||||
operator: 'eq',
|
operator: 'eq',
|
||||||
value: cohortParams.action.value,
|
value: cohortParams.action.value,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue