Initial commit
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mensaappbackend/modules/ratingCard.dart';
|
||||
import 'package:mensaappbackend/providers/pageProvider.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:supabase_flutter/supabase_flutter.dart';
|
||||
|
||||
class PageDashboard extends StatelessWidget {
|
||||
const PageDashboard({super.key});
|
||||
|
||||
Future<List<dynamic>> requestSupaBase7Days() async {
|
||||
var supabase = Supabase.instance.client;
|
||||
var result = await supabase.from("ratings_database").select("ratings");
|
||||
return result;
|
||||
}
|
||||
|
||||
final ratingNames = const {
|
||||
"page1": {"title": "Essen", "q1": "Geschmack", "q2": "Qualität"},
|
||||
"page2": {"title": "Service", "q1": "Undefined", "q2": "Undefined"},
|
||||
"page3": {"title": "Wünsche", "q1": "Undefined", "q2": "Undefined"}
|
||||
};
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
backgroundColor: Theme.of(context).colorScheme.primary,
|
||||
title: Text(
|
||||
"Dashboard - Bewertungen",
|
||||
style: TextStyle(color: Theme.of(context).colorScheme.onPrimary),
|
||||
),
|
||||
centerTitle: false,
|
||||
actions: [
|
||||
TextButton.icon(
|
||||
onPressed: () {
|
||||
var supabase = Supabase.instance.client;
|
||||
supabase.auth.signOut();
|
||||
Provider.of<PageProvider>(context, listen: false)
|
||||
.setSelectedPage(0);
|
||||
},
|
||||
label: Text(
|
||||
"Logout",
|
||||
style: TextStyle(color: Theme.of(context).colorScheme.onPrimary),
|
||||
),
|
||||
icon: Icon(
|
||||
Icons.logout,
|
||||
color: Theme.of(context).colorScheme.onPrimary,
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
body: FutureBuilder(
|
||||
future: requestSupaBase7Days(),
|
||||
builder: (context, snapshot) {
|
||||
var data = snapshot.data;
|
||||
List<Widget> cards = [];
|
||||
|
||||
if (data == null) {
|
||||
return Center();
|
||||
}
|
||||
|
||||
for (var map in data) {
|
||||
var ratings = map["ratings"];
|
||||
|
||||
for (var key in ratings.keys) {
|
||||
var rating = ratings[key];
|
||||
|
||||
if (rating["q1"] != 0) {
|
||||
cards.add(RatingCard(
|
||||
rating1: rating["q1"],
|
||||
rating2: rating["q2"],
|
||||
text: rating["t1"],
|
||||
title: ratingNames[key]!["title"]!,
|
||||
rating1Title: ratingNames[key]!["q1"]!,
|
||||
rating2Title: ratingNames[key]!["q2"]!,
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return SingleChildScrollView(
|
||||
child: Center(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
Text(
|
||||
"Letze 7 Tage:",
|
||||
style: TextStyle(fontSize: 25),
|
||||
),
|
||||
SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
for (var card in cards) card
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_login/flutter_login.dart';
|
||||
import 'package:mensaappbackend/providers/pageProvider.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:supabase_flutter/supabase_flutter.dart';
|
||||
|
||||
class PageLogin extends StatelessWidget {
|
||||
const PageLogin({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return FlutterLogin(
|
||||
title: "Dashboard",
|
||||
hideForgotPasswordButton: true,
|
||||
onSubmitAnimationCompleted: () {
|
||||
Provider.of<PageProvider>(context, listen: false).setSelectedPage(Provider.of<PageProvider>(context, listen: false).selectedPage);
|
||||
},
|
||||
onLogin: (p0) async {
|
||||
var supabase = Supabase.instance.client;
|
||||
try {
|
||||
await supabase.auth.signInWithPassword(
|
||||
email: p0.name,
|
||||
password: p0.password
|
||||
);
|
||||
Provider.of<PageProvider>(context, listen: false).selectedPage = 1;
|
||||
print("correct login");
|
||||
} on Exception catch (_) {
|
||||
Provider.of<PageProvider>(context, listen: false).selectedPage = 2;
|
||||
print("wrong login!");
|
||||
}
|
||||
},
|
||||
onRecoverPassword: (p0) {},
|
||||
theme: LoginTheme(
|
||||
pageColorLight: Theme.of(context).colorScheme.surface,
|
||||
pageColorDark: Theme.of(context).colorScheme.surface,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mensaappbackend/providers/pageProvider.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class WrongLogin extends StatelessWidget {
|
||||
const WrongLogin({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
const Text("Deine Login-Daten sind leider falsch!", style: TextStyle(fontSize: 25),),
|
||||
SizedBox(height: 25,),
|
||||
FilledButton.icon(
|
||||
onPressed: () {
|
||||
Provider.of<PageProvider>(context, listen: false).setSelectedPage(0);
|
||||
},
|
||||
style: const ButtonStyle(padding: WidgetStatePropertyAll(EdgeInsets.all(20))),
|
||||
label: const Text("Erneut versuchen...", style: TextStyle(fontSize: 18),),
|
||||
icon: const Icon(Icons.circle_outlined),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user