Commit graph

5880 commits

Author SHA1 Message Date
Mike Cao
db637864f6 Move board component metadata editing into modal 2026-02-13 00:18:51 -08:00
Mike Cao
0123f7069b Use Panel instead of Box in boards. 2026-02-13 00:00:51 -08:00
Mike Cao
029814f81f Fix board edit size restoration and remove compare selector 2026-02-12 22:56:02 -08:00
Mike Cao
d8c41ac8a6 Split board view/edit rendering and isolate edit interactions 2026-02-12 22:36:23 -08:00
Mike Cao
b09694ddb6 Remove report components from boards and sanitize saved layouts 2026-02-12 21:32:14 -08:00
Mike Cao
57c4a6ed51 docs: add AGENTS.md contributor guidance 2026-02-12 21:13:54 -08:00
Mike Cao
903cccee7c Allow removing board component from column action 2026-02-12 21:13:49 -08:00
Mike Cao
b816e951a5 Fixed BarChart rendering in boards. 2026-02-12 18:10:04 -08:00
Mike Cao
9e9e44519d Keep sidenav menu scrollable with fixed user footer 2026-02-12 17:46:31 -08:00
Mike Cao
fee155c65b fix WeeklyTraffic header clipping in board panels
Separate day name headers into their own grid row instead of embedding
them inside the hourly data grid with marginBottom, which pushed the
text outside the fixed 16px row height.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 17:27:15 -08:00
Mike Cao
e2b391af28 Add board selector to top navigation 2026-02-12 17:26:52 -08:00
Mike Cao
a1f3ad89f6 Add link and pixel selectors to top nav 2026-02-12 17:01:37 -08:00
Mike Cao
dd2d6bca45 Move website selector into top navigation 2026-02-12 16:46:01 -08:00
Mike Cao
400a35d7af Prevent unnecessary chart and board component re-renders 2026-02-12 16:30:43 -08:00
Francis Cao
1f0de47c01 fix mobile nav
Some checks failed
Node.js CI / build (push) Has been cancelled
2026-02-10 13:22:40 -08:00
Francis Cao
02d28a9c53 Merge branch 'analytics' of https://github.com/umami-software/umami into dev
Some checks are pending
Node.js CI / build (push) Waiting to run
2026-02-09 17:52:00 -08:00
Francis Cao
078f082721 do not pass in shareId in websiteEditForm
Some checks failed
Create docker images (cloud) / Build, push, and deploy (push) Has been cancelled
Node.js CI / build (push) Has been cancelled
2026-02-09 17:49:10 -08:00
Francis Cao
f92aa025f6 do not pass in shareId in websiteEditForm 2026-02-09 17:48:28 -08:00
Francis Cao
9e94addada
Merge pull request #4006 from diogotcorreia/env-skip-build-geo
Some checks are pending
Node.js CI / build (push) Waiting to run
feat: add SKIP_BUILD_GEO env variable
2026-02-09 12:49:19 -08:00
Francis Cao
156222e0c9 Fix tooltip sizing for websitechart 2026-02-09 11:19:04 -08:00
Mike Cao
2c7ab2b734 Use i18n for board component strings, show controls in edit mode, require website before editing
Some checks are pending
Node.js CI / build (push) Waiting to run
- Replace raw strings with useMessages hook in BoardColumn and BoardComponentSelect
- Show WebsiteControls on edit screen so users can test filters
- Disable board body editing until a website is selected
- Scope website select to team websites when editing a team board

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 02:46:30 -08:00
Mike Cao
87bde9da1f Add board component selector with live preview
Allows users to select and inject analytics components into board cells.
Includes component registry, renderer, selector modal with category
menu, config fields for MetricsTable, and live preview. Also scopes
website select to team websites when editing a team board.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 00:52:46 -08:00
Mike Cao
fb6fd293fb Updated zod validation on date range.
Some checks are pending
Create docker images (cloud) / Build, push, and deploy (push) Waiting to run
Node.js CI / build (push) Waiting to run
2026-02-08 22:58:25 -08:00
Mike Cao
28246b8c52 Fix team boards not appearing after creation
Board creation from team context was not passing teamId to the API,
causing boards to be saved as personal boards instead of team boards.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:58:46 -08:00
Mike Cao
8cd3c03702 Added opacity to tooltips.
Some checks are pending
Node.js CI / build (push) Waiting to run
2026-02-08 00:04:13 -08:00
Mike Cao
d26ed3b949 Fixed collapse state of website select. 2026-02-07 23:56:06 -08:00
Mike Cao
08e4da27c1 Move settings nav into SideNav, matching WebsiteNav pattern
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:00:47 -08:00
Mike Cao
04c7216928 Add UserButton to SideNav, refactor NavButton into TeamsButton
- Create UserButton component at bottom of SideNav with Settings, Language,
  Theme, Admin, and Logout menu items
- Move Settings/Logout/Admin/Docs/Support out of NavButton into UserButton
- Remove LanguageButton and ThemeButton from SideNav bottom
- Refactor NavButton into TeamsButton with simplified team switching
- Simplify WebsiteNav and move TeamsButton to App top bar

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 21:34:42 -08:00
Mike Cao
f1b314e90b Added dotenv-cli.
Some checks are pending
Node.js CI / build (push) Waiting to run
2026-02-07 19:42:19 -08:00
Mike Cao
cee391f024 Removed translations scripts. 2026-02-07 19:36:08 -08:00
Mike Cao
e1ee5eba27 Translate all 51 locale files, reducing untranslated keys from 6,017 to 862.
Some checks are pending
Node.js CI / build (push) Waiting to run
12 batch translation scripts covering all language families: East Asian, Romance,
Germanic, Nordic, Slavic, Other European, South/Southeast Asian, Tamil, Sinhala,
Urdu, and Burmese. Remaining untranslated keys are intentional loanwords (URL, UTM,
SMS, etc.) and en-GB which is intentionally identical to en-US.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:04:45 -08:00
Mike Cao
a954824f65 Add 46 missing translation keys to all locale files.
These keys existed in messages.ts but were missing from the JSON files,
previously relying on react-intl defaultMessage fallback.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 11:24:01 -08:00
Mike Cao
50edb71687 Simplify i18n: remove old react-intl artifacts, rename formatMessage to t, replace FormattedMessage with t.rich().
- Rewrite messages.ts to plain string key maps (remove MessageDescriptor)
- Rewrite useMessages hook to expose t from useTranslations() directly
- Rename formatMessage → t across 193 consumer files
- Replace custom FormattedMessage component with next-intl t.rich()
- Update 52 language files to use rich text tags (<b>, <a>)
- Remove all direct imports from @/components/messages in favor of useMessages()

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 11:19:04 -08:00
Mike Cao
80cad6ea65 Merge remote-tracking branch 'origin/dev' into dev
Some checks are pending
Node.js CI / build (push) Waiting to run
2026-02-07 03:40:11 -08:00
Mike Cao
af2c823c1b Fixed tooltip text sizes. 2026-02-07 03:39:56 -08:00
Mike Cao
f595da612c Fix website reports route type error and pass teamId to board WebsiteSelect.
Remove invalid 3rd parameter from GET handler and parse report type from
query params instead. Pass teamId to WebsiteSelect in BoardEditHeader so
it shows team websites in team context.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 03:25:24 -08:00
Mike Cao
a1890e9261 Replace react-intl with next-intl and consolidate lang files.
Migrate i18n from react-intl to next-intl, eliminating the formatjs
compilation pipeline. Translation files now live as nested JSON in
public/intl/messages/ (single source of truth), removing the duplicated
src/lang/ directory and the copy/compile build steps. The useMessages()
hook API is preserved so all 195+ consumer components are unchanged.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 01:51:29 -08:00
Mike Cao
fed8d4c71a Fixed maximize button on Panel. 2026-02-07 00:16:15 -08:00
Francis Cao
795a1caadf fix panel and metrics card css
Some checks are pending
Node.js CI / build (push) Waiting to run
2026-02-06 17:24:11 -08:00
Francis Cao
895abdbbaf Clean up colors and Selects 2026-02-06 16:48:45 -08:00
Francis Cao
9b814aa1ca revert prisma schema to latest, add global css for scroll-bar, fix css 2026-02-06 15:06:10 -08:00
Mike Cao
c479a20cc0 Migrate old CSS variables to new react-zen design system.
Some checks are pending
Node.js CI / build (push) Waiting to run
Journey component, global.css, and variables.css all referenced old
CSS custom properties (--base-color-*, --primary-color, --text-base)
that no longer exist in @umami/react-zen. Mapped them to the new
variable names and removed the dead variables.css file.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 11:47:53 -08:00
Mike Cao
b9eb5f9800 Fix missing back button in WebsiteNav by defaulting sidenav-collapsed state to false.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 05:01:11 -08:00
Mike Cao
ce8c108fac Fix team boards endpoint calling getTeamPixels instead of getTeamBoards.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 04:56:42 -08:00
Mike Cao
18702e130e Decompose BoardPage into individual components and remove debug logging.
Extract BoardRow, BoardColumn, BoardViewHeader, BoardEditHeader, and
boardConstants into separate files. Remove 9 console.log statements
from BoardBody and BoardProvider.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 04:47:23 -08:00
Mike Cao
5f404f62d8 Bold text for selected items in SideNav and WebsiteNav.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 04:43:21 -08:00
Mike Cao
3467184b8f Consolidate WebsiteNavSection into WebsiteNav and fix scrollbar flash.
Move sidebar rendering logic into WebsiteNav with isCollapsed prop so
SideNav uses WebsiteNav directly instead of duplicating code. Add
overflow hidden to prevent horizontal scrollbar during expand transition.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 04:27:37 -08:00
Mike Cao
dea3c41ecc Fix WebsiteSelect showing empty value on initial load.
Some checks are pending
Node.js CI / build (push) Waiting to run
Fall back to queried website name when local state hasn't been set yet,
since useState only captures the initial value which is undefined before
the query resolves.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 04:04:53 -08:00
Mike Cao
b3a77d7c04 Fix CompareTables select width, WebsiteSelect min height, and MetricCard gap.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 04:00:42 -08:00
Mike Cao
635317ecfb Combine WebsiteNav into SideNav when viewing a website.
Replace the separate 240px WebsiteNav sidebar with website navigation
integrated into the main SideNav. When a websiteId is active, SideNav
shows a back arrow, WebsiteSelect dropdown, and grouped nav items
instead of the main links. Extract shared useWebsiteNavItems hook used
by both SideNav and WebsiteNav (still used by MobileNav).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 03:57:28 -08:00