chore: erweitere Veranstaltungs-Wizard um Ansprechperson-Anzeige, verbessere Fehlerhandling bei fehlenden Stammdaten und implementiere MsStringDropdown

Signed-off-by: StefanMoCoAt <stefan.mo.co@gmail.com>
This commit is contained in:
2026-04-20 23:53:37 +02:00
parent 7a2c5700f9
commit c1327f3186
5 changed files with 135 additions and 13 deletions
@@ -52,7 +52,7 @@ class DeviceInitializationViewModel(
}
fun setNetworkRole(role: NetworkRole) {
if (uiState.value.settings.deviceName.isNotBlank() || uiState.value.settings.sharedKey.isNotBlank()) {
if (uiState.value.settings.networkRole != role && (uiState.value.settings.deviceName.isNotBlank() || uiState.value.settings.sharedKey.isNotBlank())) {
_uiState.update { it.copy(showRoleChangeWarning = true, pendingRole = role) }
} else {
println("[DeviceInit] Netzwerk-Rolle direkt gesetzt: $role")
@@ -30,9 +30,11 @@ import androidx.compose.ui.text.input.VisualTransformation
import androidx.compose.ui.unit.dp
import at.mocode.frontend.core.designsystem.components.MsEnumDropdown
import at.mocode.frontend.core.designsystem.components.MsFilePicker
import at.mocode.frontend.core.designsystem.components.MsStringDropdown
import at.mocode.frontend.core.designsystem.components.MsTextField
import at.mocode.frontend.features.device.initialization.domain.DeviceInitializationValidator
import at.mocode.frontend.features.device.initialization.domain.model.NetworkRole
import javax.print.PrintServiceLookup
@Composable
actual fun DeviceInitializationConfig(
@@ -94,14 +96,18 @@ actual fun DeviceInitializationConfig(
enabled = !uiState.isLocked
)
MsTextField(
value = settings.defaultPrinter,
onValueChange = { viewModel.updateSettings { s -> s.copy(defaultPrinter = it) } },
val printers = remember {
PrintServiceLookup.lookupPrintServices(null, null).map { it.name }.sorted()
}
MsStringDropdown(
label = "Standard-Drucker",
placeholder = "z.B. Brother-HL-L2350DW",
options = printers,
selectedOption = settings.defaultPrinter,
onOptionSelected = { viewModel.updateSettings { s -> s.copy(defaultPrinter = it) } },
placeholder = "Drucker auswählen...",
enabled = !uiState.isLocked,
imeAction = ImeAction.Done,
keyboardActions = KeyboardActions(onDone = { focusManager.clearFocus() })
modifier = Modifier.padding(bottom = 8.dp)
)
if (settings.networkRole == NetworkRole.MASTER) {