preVersionfinish

This commit is contained in:
atseirjo
2026-07-23 09:15:37 +02:00
parent 3c4c6f8222
commit 9f7ee3f356
27 changed files with 944 additions and 193 deletions
+148
View File
@@ -0,0 +1,148 @@
import 'package:get/get.dart';
import 'package:flutter/material.dart';
import 'package:get_storage/get_storage.dart';
import '../helper/constants.dart';
enum MainView { dashboard, traun, sarleinsbach, lannach, settings }
class HomeController extends GetxController {
// Der Key, mit dem wir das Scaffold von hier aus steuern
final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
final boxSettings = GetStorage();
final currentView = MainView.dashboard.obs;
//--------------Settings View---------------------------
final askiUserController = TextEditingController().obs;
final askiPasswordController = TextEditingController().obs;
final loginUrlController = TextEditingController().obs;
final powerUrlController = TextEditingController().obs;
final pvTraunDeviceController = TextEditingController().obs;
final pvTraunDeviceMeterIdPVController = TextEditingController().obs;
final pvTraunDeviceMeterIdImportController = TextEditingController().obs;
final pvSarleinsbachDeviceController = TextEditingController().obs;
final pvSarleinsbachDeviceMeterIdPV01Controller = TextEditingController().obs;
final pvSarleinsbachDeviceMeterIdPV02Controller = TextEditingController().obs;
final pvSarleinsbachDeviceMeterIdPV03Controller = TextEditingController().obs;
final pvSarleinsbachDeviceMeterIdImportController = TextEditingController().obs;
final pvLannachDeviceController = TextEditingController().obs;
final pvLannachDeviceMeterIdPVController = TextEditingController().obs;
final pvLannachDeviceMeterIdImportController = TextEditingController().obs;
void saveSettings() {
String askiUser = askiUserController.value.text;
String askiPassword = askiPasswordController.value.text;
String loginUrl = loginUrlController.value.text;
String powerUrl = powerUrlController.value.text;
//traun
String pvTraunDevice = pvTraunDeviceController.value.text;
int pvTraunDeviceMeterIdPV = int.parse(pvTraunDeviceMeterIdPVController.value.text);
int pvTraunDeviceMeterIdImport = int.parse(pvTraunDeviceMeterIdImportController.value.text);
//sarleinsbach
String pvSarleinsbachDevice = pvSarleinsbachDeviceController.value.text;
int pvSarleinsbachDeviceMeterIdPV01 = int.parse(pvSarleinsbachDeviceMeterIdPV01Controller.value.text);
int pvSarleinsbachDeviceMeterIdPV02 = int.parse(pvSarleinsbachDeviceMeterIdPV02Controller.value.text);
int pvSarleinsbachDeviceMeterIdPV03 = int.parse(pvSarleinsbachDeviceMeterIdPV03Controller.value.text);
int pvSarleinsbachDeviceMeterIdImport = int.parse(pvSarleinsbachDeviceMeterIdImportController.value.text);
//lannach
String pvLannachDevice = pvLannachDeviceController.value.text;
int pvLannachDeviceMeterIdPV = int.parse(pvLannachDeviceMeterIdPVController.value.text);
int pvLannachDeviceMeterIdImport = int.parse(pvLannachDeviceMeterIdImportController.value.text);
boxSettings.write('askiUser', askiUser);
boxSettings.write('askiPassword', askiPassword);
boxSettings.write('loginUrl', loginUrl);
boxSettings.write('powerUrl', powerUrl);
boxSettings.write('pvTraunDevice', pvTraunDevice);
boxSettings.write('pvTraunDeviceMeterIdPV', pvTraunDeviceMeterIdPV);
boxSettings.write('pvTraunDeviceMeterIdImport', pvTraunDeviceMeterIdImport);
boxSettings.write('pvSarleinsbachDevice', pvSarleinsbachDevice);
boxSettings.write('pvSarleinsbachDeviceMeterIdPV01', pvSarleinsbachDeviceMeterIdPV01);
boxSettings.write('pvSarleinsbachDeviceMeterIdPV02', pvSarleinsbachDeviceMeterIdPV02);
boxSettings.write('pvSarleinsbachDeviceMeterIdPV03', pvSarleinsbachDeviceMeterIdPV03);
boxSettings.write('pvSarleinsbachDeviceMeterIdImport', pvSarleinsbachDeviceMeterIdImport);
boxSettings.write('pvLannachDevice', pvLannachDevice);
boxSettings.write('pvLannachDeviceMeterIdPV', pvLannachDeviceMeterIdPV);
boxSettings.write('pvLannachDeviceMeterIdImport', pvLannachDeviceMeterIdImport);
kDisplaySnackBarGreen("Settings saved successfully!");
print('Einstellungen gespeichert:');
print('ASKI User: $askiUser');
print('ASKI Password: $askiPassword');
print('Login URL: $loginUrl');
print('Power URL: $powerUrl');
}
//------------------------------------------------------
void changeView(MainView view) {
currentView.value = view;
}
void toggleDrawer() {
final ScaffoldState? state = scaffoldKey.currentState;
if (state != null) {
if (state.isDrawerOpen) {
print("Schließe Drawer...");
state.closeDrawer(); // Wartet auf das Ende der Schließ-Animation
print("Drawer geschlossen.");
} else {
print("Öffne Drawer...");
state.openDrawer(); // Wartet auf das Ende der Öffnen-Animation
print("Drawer geöffnet.");
}
}
}
@override
void onInit() {
super.onInit();
_readStorageData();
}
void _readStorageData() {
bool hasAskiUser = boxSettings.hasData('askiUser');
if (hasAskiUser) {
askiUserController.value.text = boxSettings.read('askiUser');
}
bool hasAskiPassword = boxSettings.hasData('askiPassword');
if (hasAskiPassword) {
askiPasswordController.value.text = boxSettings.read('askiPassword');
}
bool hasLoginUrl = boxSettings.hasData('loginUrl');
if (hasLoginUrl) {
loginUrlController.value.text = boxSettings.read('loginUrl');
}
bool hasPowerUrl = boxSettings.hasData('powerUrl');
if (hasPowerUrl) {
powerUrlController.value.text = boxSettings.read('powerUrl');
}
}
@override
void onClose() {
askiUserController.close();
askiPasswordController.close();
loginUrlController.close();
powerUrlController.close();
pvTraunDeviceController.close();
pvTraunDeviceMeterIdPVController.close();
pvTraunDeviceMeterIdImportController.close();
pvSarleinsbachDeviceController.close();
pvSarleinsbachDeviceMeterIdPV01Controller.close();
pvSarleinsbachDeviceMeterIdPV02Controller.close();
pvSarleinsbachDeviceMeterIdPV03Controller.close();
pvSarleinsbachDeviceMeterIdImportController.close();
pvLannachDeviceController.close();
pvLannachDeviceMeterIdPVController.close();
pvLannachDeviceMeterIdImportController.close();
super.onClose();
}
}