Commit Graph

144 Commits

Author SHA1 Message Date
Zoltan Papp
47ecc41bf4 Merge main into ui-refactor; port MDM support to the Wails UI
Integrates main's MDM configuration-profile feature and adapts it to the
Wails UI (this branch had already replaced the Fyne UI).

Conflict resolution:
- go.mod/go.sum: take main's deps; howett.net/plist pinned to v1.0.2-... (tidy)
- client/proto/daemon.pb.go: regenerated from the merged daemon.proto
- client/internal/peer/status.go: union of ipToKey (main) + sessionExpiresAt (HEAD)
- client/server/server.go: main's intent/liveness model (connectionGoroutineRunning,
  clientRunning no longer cleared by the goroutine) + empty-PSK guard
- client/ui/client_ui.go, client/ui/profile.go: removed (dead Fyne UI)

MDM port (backend + tray):
- services/settings.go: expose MDMManagedFields plus a managedFields map keyed
  by Config field names so the settings form can gate a control without
  translating mdm.Key* names
- tray: gate Profiles / Exit Node menus on DisableProfiles / DisableNetworks via
  GetFeatures, refreshed on the config_changed system event (replaces the legacy
  2s poll); localized MDM policy-applied toast in all shipped locales
- client/proto/metadata.go: shared constants for the config_changed /
  policy_applied event markers

PreSharedKey: GetConfig now returns preSharedKeySet (bool) instead of the masked
value; the settings form provides its own placeholder and sends a new key only
when the user types one.
2026-06-12 15:27:23 +02:00
Eduard Gert
29a165a586 bind saves to loaded profile to prevent cross-profile clobber 2026-06-12 12:19:30 +02:00
Eduard Gert
860be01ebe update debug bundle setting page 2026-06-12 12:09:10 +02:00
Zoltán Papp
ff6aef5e2a feat(ui): GUI debug logging follows daemon log level + debug bundle
When the daemon is set to debug/trace, the GUI now automatically writes a
rotated gui-client.log in the user's config dir and the daemon's debug bundle
collects it. The UI learns the level both at startup (daemon already in debug)
and live, by piggybacking the existing SubscribeEvents stream: the daemon
publishes a marked log-level-changed SystemEvent (and a per-subscription
snapshot), which DaemonFeed routes to guilog.DebugLog instead of an OS toast.
The UI registers its log path via a new RegisterUILog RPC so the root daemon,
which can't resolve the user's config dir, knows where to find the file.

Manual --log-file (any value) disables the daemon-driven file logging.

Fix: client/ui SetLogLevel looked up proto.LogLevel_value with the lowercase
logrus name, which never matched the uppercase enum keys and silently fell back
to INFO — so trace/debug requests from the bundle flow had no effect.
2026-06-11 18:34:48 +02:00
Eduard Gert
96f0c7a165 Revert "keep right panel always mounted"
This reverts commit 9328558dbb.
2026-06-11 17:59:25 +02:00
Eduard Gert
3f66fafb8e treat old wiretrustee domain as cloud 2026-06-11 17:46:54 +02:00
Eduard Gert
a8462e3f9b make trace disabled default and add link to report bugs and issues 2026-06-11 16:21:20 +02:00
Eduard Gert
9328558dbb keep right panel always mounted 2026-06-11 15:04:17 +02:00
Eduard Gert
13b4bf93b9 fix settings provider order 2026-06-11 14:34:20 +02:00
Eduard Gert
cdcdd6a44f remove close animation from dialogs 2026-06-10 17:36:29 +02:00
Eduard Gert
7648aa7015 remove close animation from language picker 2026-06-10 16:58:52 +02:00
Eduard Gert
4b705d472c fix copy to clipboard for resources 2026-06-10 16:53:15 +02:00
Eduard Gert
7eaea03bc9 hide password toggle for saved psk 2026-06-10 16:46:50 +02:00
Eduard Gert
eb788cad88 fix dynamic window height on linux 2026-06-10 16:37:07 +02:00
Eduard Gert
11281b681b fix unclassified errors 2026-06-10 09:54:48 +02:00
Eduard Gert
d70b3a3fa4 update debug bundle text 2026-06-09 18:23:07 +02:00
Eduard Gert
dac2ca4088 fix dropdown animation 2026-06-09 18:08:47 +02:00
Eduard Gert
4e1e7f9518 add common languages 2026-06-09 18:04:59 +02:00
Eduard Gert
9049974f26 lint 2026-06-09 16:33:30 +02:00
Eduard Gert
f8e3ac6d92 refactor, lint, cleanup 2026-06-09 16:31:52 +02:00
Eduard Gert
32be58cb24 add description to translations 2026-06-09 11:33:54 +02:00
Eduard Gert
aaa5dbb606 forward ui browser logs to go 2026-06-09 10:55:56 +02:00
Eduard Gert
727e6d3004 update position of not connected text 2026-06-08 18:13:37 +02:00
Eduard Gert
6b2ae1c34c update session expiration dialog texts, add monitor aware position 2026-06-08 18:09:22 +02:00
Eduard Gert
b067544c8a update padding and text 2026-06-08 16:02:42 +02:00
Eduard Gert
10d84b758f add ipv6 2026-06-08 15:22:35 +02:00
Eduard Gert
0e4d0128b6 add custom error dialog 2026-06-08 12:44:33 +02:00
Eduard Gert
9ecc083139 update missing translations 2026-06-05 14:57:32 +02:00
Eduard Gert
efd874efac add cloud / selfhosted segment in profile creation 2026-06-05 14:38:00 +02:00
Eduard Gert
5877880789 replace native confirm dialog with modals in settings 2026-06-05 13:16:39 +02:00
Eduard Gert
4427aaa31f update advanced port margin, update settings bottom bar height 2026-06-05 12:29:18 +02:00
Eduard Gert
296d3f124b truncate dns in main screen 2026-06-05 09:55:50 +02:00
Eduard Gert
adf1fe1858 add ready prop to autosize hook 2026-06-05 09:48:17 +02:00
Zoltán Papp
ca6f6d88cb Merge branch 'main' into ui-refactor 2026-06-04 17:06:11 +02:00
Zoltán Papp
cba4a8a63b [client/ui] Fix login wedging until restart after a failed SSO attempt
startLogin held both guards (the module-level loginInFlight and the
caller's React-level loginGuard) across the post-failure errorDialog
await. The native Windows MessageBox disables its parent for its whole
lifetime while the main window's WindowClosing hook hides instead of
closing, so the dialog promise can outlive the click — and even a clean
dismissal kept the guards held until the promise settled. Until then
every later Connect click and tray trigger-login was silently dropped at
the guard check, so the only way back was a client restart.

Release both guards the instant the flow itself settles, before the
dialog: startLogin now takes an onSettled callback fired in its finally
(driveLogin releases loginGuard through it), and the errorDialog await
moved out of the try/finally so no guard is ever gated on the dialog.
2026-06-04 13:42:29 +02:00
Eduard Gert
64199209cf add onboarding 2026-06-03 17:33:13 +02:00
Eduard Gert
1710868a09 add exit node switcher 2026-06-02 17:23:56 +02:00
Eduard Gert
48265a0143 add profile switch into settings, scroll to top after profile switch, add netbird icon to linux windows 2026-06-02 14:20:36 +02:00
Eduard Gert
c3a0c1beeb update language switcher, remove flags 2026-06-02 12:36:29 +02:00
Eduard Gert
45095818bc update paddings and icons 2026-06-02 12:04:55 +02:00
Eduard Gert
fefd0da7bf Adjust peers and resources tabs 2026-06-02 11:37:56 +02:00
Eduard Gert
88bd1f91a8 update session expire dialog to account for hours, days etc. 2026-06-01 17:50:21 +02:00
Eduard Gert
acfd680560 remove icons from profile dropdown 2026-06-01 17:37:05 +02:00
Eduard Gert
daf9a74d8f update dialog error for connection switch 2026-06-01 17:18:31 +02:00
Eduard Gert
8af90e40d5 Merge remote-tracking branch 'origin/ui-refactor' into ui-refactor
# Conflicts:
#	client/ui/frontend/src/contexts/SettingsContext.tsx
2026-06-01 17:15:38 +02:00
Eduard Gert
3f989f69cb update about gui version, add mock data, truncate some strings 2026-06-01 17:14:30 +02:00
Zoltan Papp
53d43980ad fix(ui): keep main window closable after a native dialog on Windows (#6319)
A native Windows MessageBox attached to a parent window disables that
window (WS_DISABLED) for its lifetime and re-enables it on dismissal.
When the parent is the main window — whose WindowClosing hook hides
instead of closes — the enable/hide sequence races and leaves the window
unable to process its close (X) button afterwards, so e.g. a rejected
login error dialog left the main window stuck open.

Route all native dialogs through src/lib/dialogs.ts, which forces
Detached: true on Windows (NULL owner, no window ever disabled) and is a
no-op on macOS/Linux (keeps the attached sheet-style presentation).
2026-06-01 17:03:53 +02:00
Eduard Gert
a4ad93008b add skeleton to launch netbird ui at login and own context 2026-06-01 14:57:31 +02:00
Eduard Gert
710d5c6182 apply different window width on windows 2026-06-01 11:07:33 +02:00
Eduard Gert
7538a9a133 update window width and dialogs top padding on macos 2026-06-01 09:51:59 +02:00