import 'package:flutter/material.dart'; import 'package:mymuseum_visitapp/Components/check_input_container.dart'; import 'package:mymuseum_visitapp/Components/rounded_button.dart'; import 'package:mymuseum_visitapp/Helpers/DatabaseHelper.dart'; import 'package:mymuseum_visitapp/Helpers/translationHelper.dart'; import 'package:mymuseum_visitapp/Models/visitContext.dart'; import 'package:mymuseum_visitapp/app_context.dart'; import 'package:provider/provider.dart'; import '../constants.dart'; class AdminPopup extends StatefulWidget { const AdminPopup({ Key? key, }) : super(key: key); @override State createState() => _AdminPopupState(); } class _AdminPopupState extends State { final TextEditingController _controller = TextEditingController(); bool isPasswordOk = false; String password = "ADMIN2024!"; //FORT2023! VisitAppContext? visitAppContext; @override Widget build(BuildContext context) { Size size = MediaQuery.of(context).size; final appContext = Provider.of(context); visitAppContext = appContext.getContext() as VisitAppContext; isPasswordOk = visitAppContext!.isAdmin!; return Container( width: size.width*0.7, height: isPasswordOk ? size.height*0.5 : size.height*0.15, margin: const EdgeInsets.all(kDefaultPadding), child: isPasswordOk ? Column( children: [ SizedBox( height: size.height*0.06, child: Padding( padding: const EdgeInsets.all(8.0), child: CheckInputContainer(label: "Mode admin", isChecked: visitAppContext!.isAdmin, onChanged: (value) { visitAppContext!.isAdmin = value; appContext.setContext(visitAppContext!); DatabaseHelper.instance.updateTableMain(DatabaseTableType.main, visitAppContext!); }), ), ), SizedBox( height: size.height*0.06, child: Padding( padding: const EdgeInsets.all(8.0), child: CheckInputContainer(label: "Langues", isChecked: visitAppContext!.isAllLanguages, onChanged: (value) { visitAppContext!.isAllLanguages = value; appContext.setContext(visitAppContext!); DatabaseHelper.instance.updateTableMain(DatabaseTableType.main, visitAppContext!); }), ), ), const Text("Audios qui ne fonctionnent pas :"), const SizedBox( height: 15, ), Container( decoration: BoxDecoration( shape: BoxShape.rectangle, border: Border.all(width: 1.5, color: kSecondGrey), borderRadius: BorderRadius.circular(10.0), ), height: size.height*0.25, width: size.width*0.7, child: SingleChildScrollView( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ if(visitAppContext!.audiosNotWorking.isEmpty) const Padding( padding: EdgeInsets.all(8.0), child: Text("Rien mais téléchargez la visite pour être sûr"), ), if(visitAppContext!.audiosNotWorking.isNotEmpty) for(var audio in visitAppContext!.audiosNotWorking) Padding( padding: const EdgeInsets.all(8.0), child: Text(audio.label!.isNotEmpty ? audio.label! : audio.id!), ) ], ) ), ), SizedBox( height: size.height*0.06, child: Padding( padding: const EdgeInsets.all(8.0), child: RoundedButton( text: "Reset articles lu", color: kBackgroundSecondGrey, textColor: kBackgroundLight, icon: Icons.refresh, press: () { DatabaseHelper.instance.clearTable(DatabaseTableType.articleRead); visitAppContext!.readSections = []; appContext.setContext(visitAppContext!); }, fontSize: 18, horizontal: 20, vertical: 5 ), ), ) ], ) : Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ Text("Mot de passe admin"), SizedBox( width: size.width*0.65, height: size.height *0.1, child: TextFormField( controller: _controller, onChanged: (value) { if(value == password) { setState(() { isPasswordOk = true; visitAppContext!.isAdmin = true; appContext.setContext(visitAppContext!); DatabaseHelper.instance.updateTableMain(DatabaseTableType.main, visitAppContext!); }); } }, //style: const TextStyle(color: Colors.white), obscureText: true, enableSuggestions: false, autocorrect: false, ), ), ], ), ); } }