Commit Graph
77 Commits
Author SHA1 Message Date
gorkem-bwl ac94ae0fdd fix(client): make 16 the Icon default and size the stragglers
Third time this bug has surfaced, so this fixes the cause. Icon defaulted
to 20px, but 17 call sites already asked for 16 explicitly against 2 for
20, and the sidebar clamps to 16 in CSS - so 16 was the house size and
the 20 default was one nobody chose. Anything bare rendered above the cap
height of the 13px text beside it.

The default is now 16. Five sites that were relying on the old default
and sit next to labels are pinned explicitly anyway (team header, status
page controls, status page delete, theme toggle), and the public status
page's warning icon is pinned at 20 so the default change does not alter
a page users publish.

Sidebar icons are unaffected either way - their CSS already forced 16.

Claude-Session: https://claude.ai/code/session_01AbYLvwpEaZFXktHVcqrFRd
2026-09-03 01:24:44 -04:00
Alex Holliday caebb93748 derive options from roles, wire error state 2026-08-11 17:15:15 -07:00
Alex Holliday 350083d179 refactor Profile tab 2026-08-07 10:25:04 -07:00
Alex Holliday 11a6ee71e9 refacotr add team/invite team member 2026-08-07 10:22:43 -07:00
Alex Holliday eaf93668f5 refactor password tab 2026-08-07 10:13:56 -07:00
Alex Holliday 59267ef451 refactor edit user 2026-08-07 10:08:27 -07:00
Alex Holliday 3df85b7522 refacotr add team member dialog 2026-08-07 09:54:08 -07:00
Alex Holliday 62031a0ab1 add a CLIENT_CONFIG to the client, serve from BE with env vars 2026-07-09 09:49:45 -07:00
Alex Holliday 6d91efecad default client to same-origin /api/v1 and window.location.origin, drop UPTIME_APP_* placeholders 2026-07-08 11:04:47 -07:00
gorkem-bwl 93505f006c feat(account): side-by-side name and password fields in Add Member modal
- AddTeamMemberDialog: First name / Last name now share a row, and
  Password / Confirm password share a row. Each field uses sx={flex:1}
  so the row totals match the width of the email/role rows below.
- InviteTeamMemberDialog: drop the redundant mt={theme.spacing(...)}
  workaround on the form Stack (the new Dialog component provides this
  spacing).
- Constants conformance: spacing literals replaced with LAYOUT.XS.
2026-04-28 23:55:27 -04:00
gorkem-bwl 897204ead3 refactor(client): extract useClientPagination hook and clean up Select prop
- Replace duplicated page/rowsPerPage state in Team, Notifications and Status Pages tables with a shared useClientPagination hook
- Drop unused placeholderColor prop from Select; placeholder always uses secondary text
- Restore LAYOUT.MD constant for the account menu item gap
2026-04-26 00:22:14 -04:00
gorkem-bwl 995fc59299 feat(client): add pagination to team, notifications and status page tables 2026-04-26 00:13:23 -04:00
gorkem-bwl 262c4eee93 feat(client): PageHeader on every page; remove sidebar bottom menu
- New PageHeader component (variant D — grouped icon-pill toolbar):
  big title + muted description on the left, Support / Docs /
  Changelog as a 3-icon segmented pill on the right with tooltips.
  External links open in a new tab.
- BasePage / BasePageWithStates / MonitorBasePageWithStates accept
  a headerKey prop; when set, render PageHeader pulling
  pages.<headerKey>.header.title and .description from i18n.
  When unset, falls back to the existing breadcrumb (no behavior
  change for not-yet-migrated pages).
- All top-level pages (uptime, infrastructure, pageSpeed,
  notifications, maintenance, statusPages, incidents, logs, checks,
  account, settings) now pass their headerKey.
- Sidebar: removed the bottom menu (Support / Discussions / Docs /
  Changelog) since those links now live in the page header.
2026-04-25 23:27:22 -04:00
gorkem-bwl 031a6fdf3c feat(client): unified EmptyState across all pages and table empties
- New EmptyState + EmptyStateIllustration components: stacked-cards SVG
  with grid background, theme-aware light/dark palette.
- Variants: default (centered with title + description), compact
  (horizontal, in-section), fullscreen (vertically centers in viewport).
- Wired into Checks, Incidents, Logs (Logs+Queue tabs), Notifications,
  Maintenance, Status pages, and Team tab — each with i18n title +
  description and a fullscreen layout when truly empty.
- Table.EmptyView now wraps the EmptyState in a divider-bordered card
  so short messages no longer look orphaned.
- Incidents Option-A short-circuit: when summary.total === 0, replace
  the whole page chrome with EmptyState; otherwise keep filters + cards.
- Fallback.tsx (BaseFallback / EmptyFallback / EmptyMonitorFallback /
  ErrorFallback) refactored to delegate to EmptyState.
2026-04-25 23:26:34 -04:00
Alex Holliday be3b7c2e86 add demo role to list of roles 2026-04-15 13:54:05 -07:00
Alex Holliday 9903c72ff5 merge 2026-03-06 12:36:26 -08:00
Alex Holliday d7d237d37b move button strings to correct location, flex-end 2026-03-06 12:35:38 -08:00
gorkem-bwl 172467c0a6 fix: address PR review feedback
- Use useIsAdmin and useIsSuperAdmin hooks instead of manual role checks
- Close delete dialog on failure, not just on success
2026-03-06 15:19:01 -05:00
gorkem-bwl 7c953978ed refactor: simplify EditUser imports and canDeleteUser logic
- Merge duplicate react-router-dom imports into one
- Replace useIsAdmin + useIsSuperAdmin + useSelector with single useSelector
- Remove redundant !includes("superadmin") check from canDeleteUser
2026-03-06 14:31:59 -05:00
gorkem-bwl 82998a7795 feat: add ability to remove team members
## Changes
- Add DELETE /api/v1/auth/users/:userId endpoint (admin + superadmin)
- Add deleteUserById service method with role hierarchy enforcement
- Superadmins can remove admins and regular users
- Admins can only remove regular users
- No one can remove superadmins, demo users, or themselves via this endpoint
- Add "Remove user" button with confirmation dialog on edit user page
- Allow admins to view user details and access the edit user page
- Add i18n strings for remove user button and confirmation dialog

## Access control
- superadmin -> can remove admin, user
- admin -> can remove user only
- admin cannot remove superadmin or other admins (enforced on both backend and frontend)
2026-03-06 14:18:27 -05:00
Alex Holliday d45e6ec97c remove v2 dir 2026-02-20 18:13:39 +00:00
Alex Holliday 442fc2ce22 account tab fix 2026-02-10 23:24:51 +00:00
Alex Holliday 48081d85ee cleanup 2026-02-09 20:48:12 +00:00
Alex Holliday ece6970fa7 hook up role 2026-02-09 20:38:04 +00:00
Alex Holliday 4434189c72 remove breadcrumb 2026-02-09 20:09:08 +00:00
Alex Holliday 197e075ba1 strings 2026-02-09 20:07:45 +00:00
Alex Holliday c4ab56095e strings 2026-02-09 19:46:11 +00:00
Alex Holliday 550d5cc555 initial commit 2026-02-09 19:26:58 +00:00
Alex Holliday 08e4b0c39e remove unused 2026-02-09 19:15:22 +00:00
Alex Holliday a46e282633 role column 2026-02-09 18:57:24 +00:00
Alex Holliday 8b7fd826b3 createUser endpoint 2026-02-09 18:49:31 +00:00
Alex Holliday 264e6f7d1f form submission 2026-02-09 18:29:36 +00:00
Alex Holliday fafd581f06 add team member initial commit 2026-02-09 18:14:06 +00:00
Alex Holliday d69cec9730 dialog 2026-02-09 17:52:14 +00:00
Alex Holliday 1552018796 optional additionalButtons 2026-02-08 16:30:51 +00:00
Alex Holliday 3fc4160b88 add buttons 2026-02-08 16:23:24 +00:00
Alex Holliday 9ca79ea793 team initial commit 2026-02-08 16:14:35 +00:00
Alex Holliday 7e527b8eb2 submit 2026-02-07 21:05:45 +00:00
Alex Holliday 021b4e8ae5 controllers 2026-02-07 20:57:03 +00:00
Alex Holliday b6004241e7 validation 2026-02-07 20:54:17 +00:00
Alex Holliday af4c9d8f91 fix unset 2026-02-07 20:33:11 +00:00
Alex Holliday b26d135a4f submit 2026-02-07 20:11:30 +00:00
Alex Holliday 4f4203dbb3 remove delete 2026-02-07 19:59:28 +00:00
Alex Holliday 4945b29334 wire up form 2026-02-07 01:13:58 +00:00
Alex Holliday 31cc9cd294 fix strings 2026-02-07 00:51:04 +00:00
Alex Holliday 19b370d89b initial commit 2026-02-07 00:49:49 +00:00
llpingll 88d539b2a4 Hard coded strings to avoid en.json conflicts 2026-02-04 23:32:14 +00:00
llpingll 090d002578 Add comment to PasswordPanel to encourage additional error handling and remove helperText comments | Remove explicit special characters from en.json 2026-02-03 16:44:15 +00:00
llpingll 69f95723f1 Combine useNavigate and useLocation into one import 2026-02-02 22:23:48 +00:00
Lui Duarte 464b16ec9d Merge branch 'develop' into change-password 2026-02-02 15:49:30 +00:00