From b51e59a1c1bd8caa09012bea035f64813b8f8bf0 Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Wed, 13 May 2026 14:50:52 +0300 Subject: [PATCH] feat(UI): add Split Tunnel quick-setting to app profile view Adds a "Split Tunnel" toggle to the app profile quick-settings bar, mirroring splittun/use per-app setting. Shows an interference dot when: - splittun/usagePolicy has Exclude rules (yellow) - SPN is active and routes all traffic, fully bypassing Split Tunnel (red) - SPN is active and partially bypasses Split Tunnel (yellow) Dot and interference checks are suppressed when the Split Tunneling or SPN module is globally disabled. --- desktop/angular/src/app/app.module.ts | 2 + .../src/app/pages/app-view/app-view.html | 3 + .../qs-use-splittun/qs-use-splittun.html | 40 ++++++ .../qs-use-splittun/qs-use-splittun.ts | 119 ++++++++++++++++++ 4 files changed, 164 insertions(+) create mode 100644 desktop/angular/src/app/pages/app-view/qs-use-splittun/qs-use-splittun.html create mode 100644 desktop/angular/src/app/pages/app-view/qs-use-splittun/qs-use-splittun.ts diff --git a/desktop/angular/src/app/app.module.ts b/desktop/angular/src/app/app.module.ts index b083642c..257f33fa 100644 --- a/desktop/angular/src/app/app.module.ts +++ b/desktop/angular/src/app/app.module.ts @@ -29,6 +29,7 @@ import { AppOverviewComponent, AppViewComponent, QuickSettingInternetButtonCompo import { QsHistoryComponent } from './pages/app-view/qs-history/qs-history.component'; import { QuickSettingSelectExitButtonComponent } from './pages/app-view/qs-select-exit/qs-select-exit'; import { QuickSettingUseSPNButtonComponent } from './pages/app-view/qs-use-spn/qs-use-spn'; +import { QuickSettingUseSplitTunButtonComponent } from './pages/app-view/qs-use-splittun/qs-use-splittun'; import { DashboardPageComponent } from './pages/dashboard/dashboard.component'; import { FeatureCardComponent } from './pages/dashboard/feature-card/feature-card.component'; import { MonitorPageComponent } from './pages/monitor'; @@ -138,6 +139,7 @@ const localeConfig = { QuickSettingInternetButtonComponent, QuickSettingUseSPNButtonComponent, QuickSettingSelectExitButtonComponent, + QuickSettingUseSplitTunButtonComponent, AppOverviewComponent, PlaceholderComponent, LoadingComponent, diff --git a/desktop/angular/src/app/pages/app-view/app-view.html b/desktop/angular/src/app/pages/app-view/app-view.html index 72a7ad81..96235c8c 100644 --- a/desktop/angular/src/app/pages/app-view/app-view.html +++ b/desktop/angular/src/app/pages/app-view/app-view.html @@ -76,6 +76,9 @@ + + +