Add view and logik

This commit is contained in:
2026-04-01 14:28:38 +02:00
parent bf8fd37e51
commit 122ae48754
30 changed files with 1926 additions and 176 deletions

View File

@@ -0,0 +1,58 @@
import 'package:flutter/material.dart';
import 'package:flutter_mssql_node_filament_app/helpers/services_repos.dart';
import 'package:flutter_mssql_node_filament_app/pages/list_view.dart';
import 'package:flutter_mssql_node_filament_app/pages/signin_view.dart';
import 'package:get/get.dart';
class HomeController extends GetxController {
final benutzerController = TextEditingController();
final passwordController = TextEditingController();
final serviceRepos = ServiceRepos();
@override
void onClose() {
benutzerController.dispose();
passwordController.dispose();
super.onClose();
}
void navigateToSignIn() {
Get.toNamed(SignInPage.namedRoute);
}
bool validateLogin() {
final benutzer = benutzerController.text.trim();
final password = passwordController.text.trim();
if (benutzer.isEmpty || password.isEmpty) {
Get.snackbar(
'Fehler',
'Bitte alle Felder ausfüllen',
snackPosition: SnackPosition.BOTTOM,
backgroundColor: Get.theme.colorScheme.error.withAlpha(26),
colorText: Get.theme.colorScheme.error,
);
return false;
}
return true;
}
Future<void> logInAndloadFilaments() async {
if (!validateLogin()) return;
String benutzer = benutzerController.text.trim();
String password = passwordController.text.trim();
var response = await serviceRepos.getUserIsValide(benutzer, password);
if (response.statusCode == 200 && response.body['valid'] == true) {
// Navigiere zur Listenseite
Get.offAllNamed(ListPage.namedRoute);
} else {
Get.snackbar(
'Fehler',
'Ungültiger Benutzername oder Passwort',
snackPosition: SnackPosition.BOTTOM,
backgroundColor: Get.theme.colorScheme.error.withAlpha(26),
colorText: Get.theme.colorScheme.error,
);
}
}
}

View File

@@ -0,0 +1,18 @@
import 'package:get/get.dart';
class ListController extends GetxController {
@override
void onInit() {
super.onInit();
}
@override
void onClose() {
super.onClose();
}
}

View File

@@ -0,0 +1,39 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class SignInController extends GetxController {
final usernameController = TextEditingController();
final passwordController = TextEditingController();
@override
void onClose() {
usernameController.dispose();
passwordController.dispose();
super.onClose();
}
Future<void> registerUser() async {
final username = usernameController.text.trim();
final password = passwordController.text.trim();
if (username.isEmpty || password.isEmpty) {
Get.snackbar(
'Fehler',
'Bitte alle Felder ausfüllen',
snackPosition: SnackPosition.BOTTOM,
backgroundColor: Get.theme.colorScheme.error.withAlpha(26),
colorText: Get.theme.colorScheme.error,
);
return;
}
// TODO: Registrierungs-Logik implementieren
Get.snackbar(
'Erfolg',
'Benutzer "$username" wurde angelegt',
snackPosition: SnackPosition.BOTTOM,
backgroundColor: Get.theme.colorScheme.primary.withAlpha(26),
colorText: Get.theme.colorScheme.primary,
);
}
}