Commit Graph
6132 Commits
Author SHA1 Message Date
Yan e63a2aec44 guard the localStorage read and drop the empty span placeholder
Address Greptile review on PR #4262.

P2 (line 62): the value read back from localStorage was typed as
any and trusted blindly, so a value written by an extension or a
manual edit could end up as the chart's displayMode. Read it once,
keep only 'table' or 'cards', otherwise fall back to null and let
the existing useMobile-driven default decide. Self-correcting on the
next click is no longer necessary because the next render is already
clean.

P2 (line 114): the empty <span /> was a flex placeholder that
existed only to make justify-content: space-between push the toggle
button to the right when allowSearch was false. Drop the span, drop
space-between, and put marginLeft: auto on the inner Row holding the
actions and the toggle. The toggle now hugs the right edge whether
search is rendered or not, with no extra DOM node. style={{}} is
used because the react-zen Row marginLeft prop only accepts spacing
tokens, not auto.

Verified in Playwright at 1400 viewport: the toggle is now flush
with the right edge of the action row, the toggle still flips
between table and cards on click, and a deliberately invalid
localStorage value ({"malicious":true}) is rejected on reload so
the page falls back to the table default.
2026-05-08 13:16:06 -04:00
Yan 6ff13544ce let users toggle DataGrid between table and card view
DataGrid was already injecting displayMode='cards' on small viewports
via useMobile() and leaving it undefined (default 'table') everywhere
else. The user had no way to override either side: someone on a wide
screen who preferred a denser card list could not get there, and
someone on a tablet with a tall narrow window could not force the
table view to keep their layout consistent.

Add a small icon toggle in the DataGrid header row that flips between
table and cards, and persist the choice in localStorage under
umami.datagrid.displayMode. The user choice wins; if there is none,
the existing useMobile-driven default applies. Every DataGrid
consumer (sessions, websites, links, pixels, boards, team admin,
etc.) gets the toggle automatically with no caller-side change.

Verified in playwright on the sessions page: at 1400 viewport the
default is table; clicking the toggle switches to cards and a reload
keeps cards. At 800 viewport the default is cards; clicking the
toggle switches to table even though useMobile would otherwise force
cards. Round trip in both directions works and the choice survives
navigation away and back.
2026-05-08 11:04:04 -04:00
Mike CaoandGitHub a9508e7aae Merge pull request #4200 from yhyasyrian/syrian-flag
The Syrian flag has changed
2026-05-04 19:40:36 -04:00
Mike Cao 62c214d7c5 Add CONTRIBUTING.md. 2026-05-01 15:34:07 -07:00
Yhya syrianandGitHub f60a9fd187 The Syrian flag has changed 2026-04-24 08:58:39 +03:00
Mike CaoandGitHub c78ff36db0 Merge pull request #4162 from umami-software/dev
v3.1.0
2026-04-16 18:57:37 -04:00
Mike CaoandGitHub f15547e92b Merge pull request #4147 from lawrence3699/fix/postgres-implicit-alias-syntax-error
fix: add explicit AS for column alias in session and event queries (Postgres syntax error)
2026-04-16 15:44:38 -04:00
Mike CaoandGitHub b16b30ca9f Merge branch 'dev' into fix/postgres-implicit-alias-syntax-error 2026-04-16 15:44:26 -04:00
Mike CaoandGitHub 6ae3ed5b19 Merge pull request #4158 from Mravuri96/patch-1
Update build-docker script to include recorder
2026-04-16 15:41:41 -04:00
Mahesh RavuriandGitHub c80f9f0aa2 Update build-docker script to include recorder 2026-04-16 06:18:32 -07:00
Mike Cao 8b04be48de Revert next config. 2026-04-15 22:02:48 -07:00
Mike Cao 5f314b9a95 Merge branch 'dev' of https://github.com/umami-software/umami into dev 2026-04-15 21:04:24 -07:00
Mike Cao 002a50ce8b Changed output for Vercel. 2026-04-15 21:04:05 -07:00
Francis Cao ea8ebb1a54 update RRWebplayer config to fix seek issues and warning suppression 2026-04-15 20:17:50 -07:00
Mike Cao 80fee9f321 fix blank screen by using router.replace instead of redirect in useEffect 2026-04-15 20:04:30 -07:00
Francis Cao 66a5881fde fix sessionreplay seek issues 2026-04-15 19:56:50 -07:00
Mike Cao 7b8403c0cc Updated nextjs. Changed middleware to proxy. 2026-04-15 18:25:14 -07:00
Francis Cao 137fd6fd5c fix ambiguoius session_id errors 2026-04-15 15:12:02 -07:00
Francis Cao 9d477b25b4 Fix share page permissions 2026-04-15 14:55:28 -07:00
Mike Cao f41c0221c4 fix docker prisma migrate and remove stray query log 2026-04-15 14:22:04 -07:00
Mike Cao 1b6fc1bd51 Use local Link wrapper with cloud-mode prefetch default 2026-04-15 11:21:49 -07:00
Francis Cao 0b4d8040b7 Merge branch 'analytics' of https://github.com/umami-software/umami into dev 2026-04-15 11:03:19 -07:00
Francis Cao 28cfcd0c80 disable active link 2026-04-15 11:02:46 -07:00
Francis Cao 17a31820fa fix filters persisting across website change 2026-04-15 10:55:30 -07:00
Francis Cao 04eb4b675e 3.1 relational bug fixes 2026-04-15 10:31:21 -07:00
Francis Cao b7f51b3b01 clean-up stylelint dependencies. using biome 2026-04-14 09:42:54 -07:00
Francis Cao d116cf2b1f fix boards migration drift 2026-04-14 09:27:07 -07:00
Francis Cao a87d899e17 fix sharetoken permissions on mixed boards 2026-04-13 11:32:47 -07:00
Francis Cao 5e6f88f123 fix board share permissions 2026-04-13 11:15:28 -07:00
Francis Cao 3a31ad35b0 revert tracker double init logic 2026-04-11 10:48:22 -07:00
lawrence3699 3f44ec7b7d fix: add explicit AS keyword for PostgreSQL column alias in session and event queries
The session and event expanded metrics queries use implicit column
aliasing (`${column} name`) which causes a PostgreSQL syntax error
when the column name (like `os`) is followed by `name` without `AS`.

PostgreSQL parses `os name` ambiguously and fails with:
  syntax error at or near "name"

The sibling file getPageviewExpandedMetrics.ts already uses the correct
`${column} as name` pattern. This applies the same fix to the session
and event queries.

Fixes #3970
2026-04-10 11:46:53 +10:00
Francis Cao 18a6c2995a move multiple init guard to be per website ID not window 2026-04-08 10:45:32 -07:00
Francis Cao 54d3c43300 Revert "Merge pull request #4048 from AlejandroGispert/fix/3981-login-email-case"
This reverts commit b6341596bf, reversing
changes made to 07356323c1.
2026-04-07 11:26:58 -07:00
Francis Cao 6b13b1cc13 Fix catchall nav issue 2026-04-07 10:56:19 -07:00
Mike CaoandGitHub 4ca7d53f81 Merge pull request #3642 from hilja/tracker-fetch-priority-low
Set tracker’s fetch call priority to low
2026-04-04 17:13:20 -04:00
Mike CaoandGitHub f8f86d72aa Merge branch 'dev' into tracker-fetch-priority-low 2026-04-04 17:12:29 -04:00
Mike Cao 14ab228572 Revert next and next-intl patch updates 2026-04-02 14:03:59 -04:00
Mike CaoandGitHub b6341596bf Merge pull request #4048 from AlejandroGispert/fix/3981-login-email-case
fix: make signin email case-insensitive
2026-04-01 23:25:56 -04:00
Mike Cao 07356323c1 Updated packages. 2026-03-31 21:15:12 -04:00
Mike Cao a24eb91046 Merge branch 'dev' of https://github.com/umami-software/umami into dev 2026-03-31 18:56:00 -04:00
Mike Cao 030f842242 Updated packages. 2026-03-31 18:55:44 -04:00
Francis Cao edbb291628 fix undefined share params allowing access to pages 2026-03-31 15:15:39 -07:00
Francis Cao fc5edff02d Merge branch 'analytics' of https://github.com/umami-software/umami into dev 2026-03-31 14:08:01 -07:00
Francis Cao 1d04a02fd8 Hide replays from share page 2026-03-31 13:43:03 -07:00
Francis Cao c0b17f7787 Fix session avatar href 2026-03-31 13:36:49 -07:00
Francis Cao 163e46d1f1 Fix session avatar href 2026-03-31 13:36:23 -07:00
Francis Cao 726ee586b0 sharePage hotfix 2026-03-31 13:20:46 -07:00
Francis Cao 26ced6cdf2 sharePage hotfix 2026-03-31 13:17:33 -07:00
Mike CaoandGitHub 3f673557a9 Merge pull request #4112 from sputnik-mac/fix/revenue-chart-timezone-4107
fix: use settings timezone in revenue chart date range
2026-03-29 20:25:10 -07:00
Mike Cao c4e52e7dcd Remove fs-extra dependency in favor of native node:fs 2026-03-29 23:12:45 -04:00