Files
geutebruck/geutebruck-api/stop-services.ps1
Administrator c9e83e4277 feat: Add compact table views with advanced filtering and batch operations
- Enhanced Flutter web app management in PowerShell scripts
  - Added Flutter web server to start-services.ps1 as 4th service
  - Updated stop-services.ps1 to stop Flutter web server
  - Improved service orchestration and startup sequence

- Implemented server caching for improved resilience
  - Added ServerCacheService for browser localStorage caching
  - Server lists persist across service restarts
  - Automatic fallback to cached data when API unavailable
  - Action picker categories always visible regardless of server status

- Redesigned Action Mappings view with compact table layout
  - Replaced card-based ListView with DataTable for higher density
  - Added real-time search across name, input, output, description
  - Implemented multi-filter support (status: enabled/disabled)
  - Added column sorting (name, input, output, status, executions)
  - Batch operations: select all/multiple, batch delete
  - Reduced row height from ~120px to 56px for better overview

- Redesigned Servers Management view with compact table layout
  - Replaced card-based ListView with DataTable
  - Added search by alias, host, user
  - Multi-filter support (type: all/G-Core/GeViScope, status: all/enabled/disabled)
  - Column sorting (alias, host, user, type, status)
  - Batch operations: select all/multiple, batch delete
  - Color-coded type and status badges

- Improved action picker dialog for GSC/G-Core actions
  - GSC and G-Core categories always visible
  - Server validation with clear error messages
  - Fixed duplicate checkbox issue in table headers
  - Debug logging for troubleshooting server parameter issues

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-02 22:52:51 +01:00

77 lines
2.9 KiB
PowerShell

# Stop Geutebruck API Services
# This script stops Flutter Web, Python API, SDK Bridge, and GeViServer
#
# Usage:
# .\stop-services.ps1 # Stop all services
# .\stop-services.ps1 -KeepGeViServer # Stop only API/Bridge, keep GeViServer running
param(
[switch]$KeepGeViServer
)
$ErrorActionPreference = "SilentlyContinue"
Write-Host "========================================" -ForegroundColor Cyan
if ($KeepGeViServer) {
Write-Host "Stopping API Services (keeping GeViServer)" -ForegroundColor Cyan
} else {
Write-Host "Stopping Geutebruck API Services" -ForegroundColor Cyan
}
Write-Host "========================================" -ForegroundColor Cyan
Write-Host ""
# Stop Flutter Web Server
$flutterPort = Get-NetTCPConnection -LocalPort 8081 -State Listen -ErrorAction SilentlyContinue
if ($flutterPort) {
$flutterPid = $flutterPort | Select-Object -First 1 -ExpandProperty OwningProcess
Write-Host "[1/4] Stopping Flutter Web (PID: $flutterPid)..." -ForegroundColor Yellow
Stop-Process -Id $flutterPid -Force
Write-Host " [OK] Flutter Web stopped" -ForegroundColor Green
} else {
Write-Host "[1/4] Flutter Web is not running" -ForegroundColor Gray
}
# Stop Python API
$uvicorn = Get-Process -Name "uvicorn"
if ($uvicorn) {
Write-Host "[2/4] Stopping Python API (PID: $($uvicorn.Id))..." -ForegroundColor Yellow
Stop-Process -Name "uvicorn" -Force
Write-Host " [OK] Python API stopped" -ForegroundColor Green
} else {
Write-Host "[2/4] Python API is not running" -ForegroundColor Gray
}
# Stop SDK Bridge
$sdkBridge = Get-Process -Name "GeViScopeBridge"
if ($sdkBridge) {
Write-Host "[3/4] Stopping SDK Bridge (PID: $($sdkBridge.Id))..." -ForegroundColor Yellow
Stop-Process -Name "GeViScopeBridge" -Force
Write-Host " [OK] SDK Bridge stopped" -ForegroundColor Green
} else {
Write-Host "[3/4] SDK Bridge is not running" -ForegroundColor Gray
}
# Stop GeViServer (unless -KeepGeViServer flag is set)
if (-not $KeepGeViServer) {
$geviServer = Get-Process -Name "GeViServer"
if ($geviServer) {
Write-Host "[4/4] Stopping GeViServer (PID: $($geviServer.Id))..." -ForegroundColor Yellow
Stop-Process -Name "GeViServer" -Force
Write-Host " [OK] GeViServer stopped" -ForegroundColor Green
} else {
Write-Host "[4/4] GeViServer is not running" -ForegroundColor Gray
}
} else {
$geviServer = Get-Process -Name "GeViServer"
if ($geviServer) {
Write-Host "[4/4] Keeping GeViServer running (PID: $($geviServer.Id))" -ForegroundColor Green
} else {
Write-Host "[4/4] GeViServer is not running (cannot keep)" -ForegroundColor Yellow
}
}
Write-Host ""
Write-Host "========================================" -ForegroundColor Green
Write-Host "Services Stopped" -ForegroundColor Green
Write-Host "========================================" -ForegroundColor Green