Erweiterungen
This commit is contained in:
1 parent
ab86295bd5
commit
d0892e552e
3 files changed
+49
-66
No files matched your search
@@ -91,6 +91,12 @@ class _MainPageState extends State<MainPage> {
|
|||||||
_initMessages();
|
_initMessages();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
super.dispose();
|
||||||
|
|
||||||
|
_exitMessages();
|
||||||
|
}
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Stack(
|
return Stack(
|
||||||
@@ -205,7 +211,7 @@ class _MainPageState extends State<MainPage> {
|
|||||||
getDefaultButton(
|
getDefaultButton(
|
||||||
'Abmelden',
|
'Abmelden',
|
||||||
image: Image.asset('assets/abmelden.png', width: 30, height: 30),
|
image: Image.asset('assets/abmelden.png', width: 30, height: 30),
|
||||||
() => {}),
|
() async => {showAcceptJobsPopup(context, await MyApp.isarInstance.jobs.filter().stateEqualTo(0).findAll())}),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Container(
|
child: Container(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
@@ -255,6 +261,12 @@ class _MainPageState extends State<MainPage> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _exitMessages() {
|
||||||
|
BroadcastReceiver().unsubscribe<StatusInfoUpdate>(Constants.messageTopicStatusInfoUpdate);
|
||||||
|
|
||||||
|
BroadcastReceiver().unsubscribe<StatusInfoUpdate>(Constants.messageTopicJobReceived);
|
||||||
|
}
|
||||||
|
|
||||||
void _refreshBadges() async {
|
void _refreshBadges() async {
|
||||||
_assignedJobsValueNotifier.value = await MyApp.isarInstance.jobs.filter().stateEqualTo(0).count();
|
_assignedJobsValueNotifier.value = await MyApp.isarInstance.jobs.filter().stateEqualTo(0).count();
|
||||||
_acceptedJobsValueNotifier.value = await MyApp.isarInstance.jobs.filter().stateEqualTo(1).count();
|
_acceptedJobsValueNotifier.value = await MyApp.isarInstance.jobs.filter().stateEqualTo(1).count();
|
||||||
@@ -268,7 +280,7 @@ class _MainPageState extends State<MainPage> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _showAcceptanceDialog(Job job) {
|
void _showAcceptanceDialog(Job job) async {
|
||||||
showAcceptJobsPopup(context);
|
await showAcceptJobsPopup(context, await MyApp.isarInstance.jobs.filter().stateEqualTo(0).findAll());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
import 'package:expandable/expandable.dart';
|
import 'package:expandable/expandable.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:isar/isar.dart';
|
|
||||||
import 'package:kumi_popup_window/kumi_popup_window.dart';
|
|
||||||
import 'package:stadtbote/main.dart';
|
import 'package:stadtbote/main.dart';
|
||||||
import 'package:stadtbote/protocoll_messages/accept_job_message.dart';
|
import 'package:stadtbote/protocoll_messages/accept_job_message.dart';
|
||||||
import 'package:stadtbote/model/job.dart';
|
import 'package:stadtbote/model/job.dart';
|
||||||
@@ -12,65 +10,34 @@ import 'package:stadtbote/tools/mqtt_core.dart';
|
|||||||
import 'package:stadtbote/tools/util.dart';
|
import 'package:stadtbote/tools/util.dart';
|
||||||
import 'package:badges/badges.dart' as badges;
|
import 'package:badges/badges.dart' as badges;
|
||||||
|
|
||||||
void showAcceptJobsPopup(BuildContext context) async {
|
Future<void> showAcceptJobsPopup(BuildContext context, List<Job> jobs) async {
|
||||||
await _createListEntries().then((value) => {
|
var jobsSet = jobs.toSet();
|
||||||
showPopupWindow(
|
|
||||||
context,
|
await showDialog<void>(
|
||||||
//childSize:Size(240, MediaQuery.of(context).size.width * 0.8),
|
context: context,
|
||||||
gravity: KumiPopupGravity.center,
|
builder: (BuildContext context) {
|
||||||
//curve: Curves.elasticOut,
|
return AlertDialog(
|
||||||
bgColor: Colors.grey.withOpacity(0.5),
|
contentPadding: EdgeInsets.zero,
|
||||||
clickOutDismiss: true,
|
shadowColor: Colors.transparent,
|
||||||
clickBackDismiss: true,
|
backgroundColor: Colors.white,
|
||||||
customAnimation: false,
|
content: StatefulBuilder(builder: (BuildContext context, StateSetter setState) {
|
||||||
customPop: false,
|
if (jobsSet.isEmpty) {
|
||||||
customPage: false,
|
Navigator.of(context).pop();
|
||||||
// targetRenderBox: (btnKey.currentContext.findRenderObject() as RenderBox),
|
}
|
||||||
//needSafeDisplay: true,
|
|
||||||
underStatusBar: false,
|
|
||||||
underAppBar: false,
|
|
||||||
//offsetX: -180,
|
|
||||||
//offsetY: 50,
|
|
||||||
duration: const Duration(milliseconds: 200),
|
|
||||||
onShowStart: (pop) {},
|
|
||||||
onShowFinish: (pop) {},
|
|
||||||
onDismissStart: (pop) {},
|
|
||||||
onDismissFinish: (pop) {},
|
|
||||||
onClickOut: (pop) {},
|
|
||||||
onClickBack: (pop) {},
|
|
||||||
childFun: (pop) {
|
|
||||||
_createListEntries();
|
|
||||||
|
|
||||||
return SizedBox(
|
return SizedBox(
|
||||||
key: GlobalKey(),
|
key: GlobalKey(),
|
||||||
height: MediaQuery.of(context).size.height * 0.85,
|
height: MediaQuery.of(context).size.height * 1,
|
||||||
width: MediaQuery.of(context).size.width * 0.85,
|
width: MediaQuery.of(context).size.width * 1.2,
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 100,
|
height: 100,
|
||||||
decoration: BoxDecoration(
|
padding: const EdgeInsets.all(5),
|
||||||
borderRadius: BorderRadius.circular(10),
|
child: ListView.builder(
|
||||||
color: Colors.white,
|
itemCount: jobsSet.length,
|
||||||
border: Border.all(
|
itemBuilder: (_, i) {
|
||||||
color: Colors.grey,
|
var job = jobsSet.toList()[i];
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
child: SingleChildScrollView(child: Column(children: value)),
|
|
||||||
));
|
|
||||||
},
|
|
||||||
)
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// "Ablehnen" : "Ignorieren";
|
return ExpandableNotifier(
|
||||||
|
|
||||||
Future<List<Widget>> _createListEntries() async {
|
|
||||||
List<Widget> entries = [];
|
|
||||||
|
|
||||||
var jobs = await MyApp.isarInstance.jobs.filter().stateEqualTo(0).findAll();
|
|
||||||
for (var job in jobs) {
|
|
||||||
entries.add(ExpandableNotifier(
|
|
||||||
child: ListTile(
|
child: ListTile(
|
||||||
contentPadding: const EdgeInsets.symmetric(horizontal: 8, vertical: 8),
|
contentPadding: const EdgeInsets.symmetric(horizontal: 8, vertical: 8),
|
||||||
title: Container(
|
title: Container(
|
||||||
@@ -102,7 +69,8 @@ Future<List<Widget>> _createListEntries() async {
|
|||||||
padding: const EdgeInsets.all(12.0),
|
padding: const EdgeInsets.all(12.0),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
Text(DateFormat('dd.MM.yyyy HH:mm').format(DateTime.parse(job.ordertime)).toString(), textAlign: TextAlign.left),
|
Text(DateFormat('dd.MM.yyyy HH:mm').format(DateTime.parse(job.ordertime)).toString(),
|
||||||
|
textAlign: TextAlign.left),
|
||||||
Text('Auftragsnummer: ${job.id}'),
|
Text('Auftragsnummer: ${job.id}'),
|
||||||
Text(job.tours[0].comp),
|
Text(job.tours[0].comp),
|
||||||
Text(job.tours[0].street),
|
Text(job.tours[0].street),
|
||||||
@@ -145,11 +113,12 @@ Future<List<Widget>> _createListEntries() async {
|
|||||||
const SizedBox(height: 20),
|
const SizedBox(height: 20),
|
||||||
Row(children: [
|
Row(children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: getDefaultButton(!job.global ? 'Ablehnen' : 'Ignorieren', () => {_sendAnswer(job, !job.global ? 2 : 3)}),
|
child: getDefaultButton(!job.global ? 'Ablehnen' : 'Ignorieren',
|
||||||
|
() => {_sendAnswer(job, !job.global ? 2 : 3), jobsSet.remove(job), setState(() {})}),
|
||||||
),
|
),
|
||||||
const SizedBox(width: 20),
|
const SizedBox(width: 20),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: getDefaultButton('Annehmen', () => {_sendAnswer(job, 1)}),
|
child: getDefaultButton('Annehmen', () => {_sendAnswer(job, 1), jobsSet.remove(job), setState(() {})}),
|
||||||
)
|
)
|
||||||
])
|
])
|
||||||
],
|
],
|
||||||
@@ -158,10 +127,12 @@ Future<List<Widget>> _createListEntries() async {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
));
|
);
|
||||||
}
|
},
|
||||||
|
)),
|
||||||
return entries;
|
);
|
||||||
|
}));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
_sendAnswer(Job job, int item) {
|
_sendAnswer(Job job, int item) {
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ class MqttCore {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'job_del':
|
case 'job_del':
|
||||||
_jobDeleteReceived(payloadData);
|
//_jobDeleteReceived(payloadData);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'sync_request':
|
case 'sync_request':
|
||||||
|
|||||||
Reference in new issue
Block a user