diff --git a/covas_mobile/lib/main.dart b/covas_mobile/lib/main.dart index cba45c4..46cf42b 100644 --- a/covas_mobile/lib/main.dart +++ b/covas_mobile/lib/main.dart @@ -25,18 +25,30 @@ class LoginDemo extends StatefulWidget { } class _LoginDemoState extends State { - Future _login() async { + TextEditingController inputPseudo = TextEditingController(); + TextEditingController inputPassword = TextEditingController(); + Future _login(BuildContext context) async { var url = Uri.parse("http://localhost:8083/api/token"); - String credentials = "peter93:toto"; - Codec stringToBase64 = utf8.fuse(base64); - String encoded = stringToBase64.encode(credentials); - var response = await http.get(url, headers: { - HttpHeaders.authorizationHeader: 'Basic $encoded', - }); + var pseudo = inputPseudo.text; + var password = inputPassword.text; + if ((pseudo.isNotEmpty) && (password.isNotEmpty)) { + String credentials = "${pseudo}:${password}"; + Codec stringToBase64 = utf8.fuse(base64); + String encoded = stringToBase64.encode(credentials); + var response = await http.get(url, headers: { + HttpHeaders.authorizationHeader: 'Basic $encoded', + }); - if ((response.statusCode == 200) || (response.statusCode == 201)) { - Navigator.push(context, - MaterialPageRoute(builder: (_) => MyHomePage(title: 'Flutter Demo'))); + if ((response.statusCode == 200) || (response.statusCode == 201)) { + Navigator.push( + context, + MaterialPageRoute( + builder: (_) => MyHomePage(title: 'Flutter Demo'))); + } else { + showErrorDialog(context, "Probleme d'authentification"); + } + } else { + showErrorDialog(context, "Champ vide"); } } @@ -66,6 +78,7 @@ class _LoginDemoState extends State { //padding: const EdgeInsets.only(left:15.0,right: 15.0,top:0,bottom: 0), padding: EdgeInsets.symmetric(horizontal: 15), child: TextField( + controller: inputPseudo, decoration: InputDecoration( border: OutlineInputBorder(), labelText: 'Email', @@ -77,6 +90,7 @@ class _LoginDemoState extends State { left: 15.0, right: 15.0, top: 15, bottom: 0), //padding: EdgeInsets.symmetric(horizontal: 15), child: TextField( + controller: inputPassword, obscureText: true, decoration: InputDecoration( border: OutlineInputBorder(), @@ -100,7 +114,7 @@ class _LoginDemoState extends State { color: Colors.blue, borderRadius: BorderRadius.circular(20)), child: FlatButton( onPressed: () { - _login(); + _login(context); }, child: Text( 'Login', @@ -117,4 +131,31 @@ class _LoginDemoState extends State { ), ); } + + showErrorDialog(BuildContext context, String text) { + // Create AlertDialog + AlertDialog dialog = AlertDialog( + title: Text("Error"), + content: Text(text), + actions: [ + ElevatedButton( + child: Text("OK"), + style: ElevatedButton.styleFrom( + primary: Colors.red, + padding: EdgeInsets.symmetric(horizontal: 50, vertical: 20), + textStyle: + TextStyle(fontSize: 15, fontWeight: FontWeight.normal)), + onPressed: () { + Navigator.of(context).pop("Yes, Of course!"); // Return value + }), + ], + ); + + // Call showDialog function to show dialog. + Future futureValue = showDialog( + context: context, + builder: (BuildContext context) { + return dialog; + }); + } }