import 'package:flutter/material.dart'; import 'package:stadtbote/content_views/task_list_page.dart'; import 'package:stadtbote/content_views/utils/content_view_widget.dart'; import 'package:stadtbote/content_views/utils/header_info.dart'; import 'package:stadtbote/model/job_tour.dart'; import 'package:stadtbote/tools/message_service.dart'; import '../model/job.dart'; import '../popups/map_popup.dart'; import '../tools/constants.dart'; import '../tools/util.dart'; class TourDetailsPage extends ContentViewWidget { const TourDetailsPage({super.key, required this.job, required this.tour, this.readOnly = false}); final Job job; final JobTour tour; final bool readOnly; @override State createState() => _TourDetailsPageState(); @override Future getHeaderInfo(BuildContext context) async { return HeaderInfo( titleWidget: const Text( 'Details der Station', style: TextStyle( color: Colors.white, fontSize: 24.0, ), ), rightButtonEnabled: false, rightButtonVisible: false, rightButtonImage: null, rightButtonOnPressed: () async { //BroadcastReceiver().publish(Constants.messageTopicPushContentView, arguments: EmployeeEditProfileWidget()); }); } } class _TourDetailsPageState extends State { late bool _initCompleted = false; @override void initState() { Future.delayed(const Duration(seconds: 0), () async { _initCompleted = true; setState(() {}); }); super.initState(); } @override Widget build(BuildContext context) { if (!_initCompleted) { return Util.getWaitWidget(context); } var remark = ""; if (widget.tour.rem.isNotEmpty) { for (var remRow in widget.tour.rem) { remark += "$remRow\n"; } } else { remark = "* Keine Bemerkung vorhanden *"; } return Padding( padding: const EdgeInsets.all(8.0), child: Column( children: [ Expanded( child: Container( padding: const EdgeInsets.all(10), decoration: BoxDecoration( border: Border.all(color: Colors.grey, width: 0.5), color: Colors.transparent, borderRadius: const BorderRadius.all(Radius.circular(13)) ), child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ Text( "${"Station ${widget.tour.sort}"} ${mapTourMode(widget.tour.mode)}", textAlign: TextAlign.left, ), Text( widget.tour.comp, textAlign: TextAlign.left, ), Text( widget.tour.person, textAlign: TextAlign.left, ), Text( widget.tour.street, textAlign: TextAlign.left, ), Text( widget.tour.city, textAlign: TextAlign.left, ), Text( "Tel.: ${widget.tour.phone}", textAlign: TextAlign.left, ), Text( "Komm-#: ${widget.tour.com}", textAlign: TextAlign.left, ), const SizedBox(height: 10), getDefaultButton('Karte', () => { showMapPopup(context, widget.tour, widget.job.tours) }), ], ), ) ), const SizedBox(height: 10), Expanded( child: Container( padding: const EdgeInsets.all(10), decoration: BoxDecoration( border: Border.all(color: Colors.grey, width: 0.5), color: Colors.transparent, borderRadius: const BorderRadius.all(Radius.circular(13)) ), child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ Text(remark), ] ), ), ), const SizedBox(height: 10), getDefaultButton('Weiter', () => { MessageService().publish(Constants.messageTopicPushContentView, arguments: TaskListPage(tour: widget.tour, readOnly: widget.readOnly)) }), ], ), ); } }