Merge branch 'development_new_design_2.0' into haroon-new-design

# Conflicts:
#	lib/pages/medical/my_trackers/Weight/WeightWeeklyPage.dart
merge-update-with-lab-changes
haroon amjad 4 years ago
commit 8001c0140c

@ -12,8 +12,8 @@ const PACKAGES_PRODUCTS = '/api/products';
const PACKAGES_CUSTOMER = '/api/customers'; const PACKAGES_CUSTOMER = '/api/customers';
const PACKAGES_SHOPPING_CART = '/api/shopping_cart_items'; const PACKAGES_SHOPPING_CART = '/api/shopping_cart_items';
const PACKAGES_ORDERS = '/api/orders'; const PACKAGES_ORDERS = '/api/orders';
// const BASE_URL = 'https://uat.hmgwebservices.com/'; const BASE_URL = 'https://uat.hmgwebservices.com/';
const BASE_URL = 'https://hmgwebservices.com/'; // const BASE_URL = 'https://hmgwebservices.com/';
// Pharmacy UAT URLs // Pharmacy UAT URLs
const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/'; const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/';

@ -1,7 +1,7 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/weight_pressure_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/weight_pressure_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/TabBarWidget.dart';
import 'package:diplomaticquarterapp/theme/colors.dart'; import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
@ -12,8 +12,7 @@ import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'AddWeightPage.dart'; import 'AddWeightPage.dart';
import 'WeightMonthlyPage.dart'; import 'WeightMonthlyPage.dart';
import 'WeightWeeklyPage.dart'; import 'WeightWeeklyPage.dart';
@ -82,49 +81,64 @@ class _WeightHomePageState extends State<WeightHomePage> with SingleTickerProvid
), ),
], ],
baseViewModel: model, baseViewModel: model,
body: Scaffold( body: Column(
extendBodyBehindAppBar: true, children: <Widget>[
appBar: TabBarWidget( TabBar(
tabController: _tabController, controller: _tabController,
), indicatorWeight: 3.0,
body: Column( indicatorSize: TabBarIndicatorSize.tab,
children: <Widget>[ labelColor: Color(0xff2B353E),
Expanded( unselectedLabelColor: Color(0xff575757),
child: TabBarView( labelPadding: EdgeInsets.only(top: 15, bottom: 13, left: 20, right: 20),
physics: BouncingScrollPhysics(), labelStyle: TextStyle(
controller: _tabController, fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins',
children: <Widget>[ fontSize: 16,
WeightWeeklyPage( fontWeight: FontWeight.w600,
model: model, letterSpacing: -0.48,
), ),
WeightMonthlyPage( unselectedLabelStyle: TextStyle(
model: model, fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins',
), fontSize: 16,
WeightYearPage( fontWeight: FontWeight.w600,
model: model, letterSpacing: -0.48,
) ),
], tabs: [Text(TranslationBase.of(context).weekly), Text(TranslationBase.of(context).monthlyT), Text(TranslationBase.of(context).yearly)],
),
)
],
),
floatingActionButton: FloatingActionButton(
child: Icon(
Icons.add,
color: Colors.white,
), ),
backgroundColor: CustomColors.accentColor, Expanded(
onPressed: () { child: TabBarView(
Navigator.push( physics: BouncingScrollPhysics(),
context, controller: _tabController,
FadePage( children: <Widget>[
page: AddWeightPage( WeightWeeklyPage(
model: model, model: model,
), ),
), WeightMonthlyPage(
); model: model,
}, ),
WeightYearPage(
model: model,
)
],
),
)
],
),
floatingActionButton: FloatingActionButton(
child: Icon(
Icons.add,
color: Colors.white,
), ),
backgroundColor: CustomColors.accentColor,
onPressed: () {
Navigator.push(
context,
FadePage(
page: AddWeightPage(
model: model,
),
),
);
},
), ),
), ),
); );

@ -1,16 +1,16 @@
import "package:collection/collection.dart"; import "package:collection/collection.dart";
import 'package:diplomaticquarterapp/core/viewModels/medical/weight_pressure_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/weight_pressure_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/MonthLineChartCurved.dart'; import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/MonthLineChartCurved.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart'; import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/charts/app_time_series_chart.dart'; import 'package:diplomaticquarterapp/widgets/charts/app_time_series_chart.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class WeightMonthlyPage extends StatelessWidget { class WeightMonthlyPage extends StatelessWidget {
final WeightPressureViewModel model; final WeightPressureViewModel model;
@ -20,75 +20,73 @@ class WeightMonthlyPage extends StatelessWidget {
this.model, this.model,
}) : super(key: key); }) : super(key: key);
List<List> monthlyGroup = []; List<List> monthlyGroup = [];
ProjectViewModel projectViewModel;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (projectViewModel == null) projectViewModel = Provider.of(context);
groupData(); groupData();
return AppScaffold( return ListView(
isShowDecPage: false, children: [
backgroundColor: CustomColors.appBackgroudGrey2Color, Card(
body: ListView( shape: cardRadius(12),
children: [ elevation: 1,
Card( margin: EdgeInsets.only(left: 16, top: 16, right: 16, bottom: 8),
shape: cardRadius(12), child: MonthLineChartCurved(
elevation: 1, horizontalInterval: 1.0,
margin: EdgeInsets.only(left: 16, top: 16, right: 16, bottom: 8), title: TranslationBase.of(context).weight,
child: MonthLineChartCurved( timeSeries: model.weighMonthTimeSeriesData.isEmpty ? [TimeSeriesSales3(0, 0.0)] : model.weighMonthTimeSeriesData,
horizontalInterval: 1.0, indexes: model.weighMonthTimeSeriesData.length ~/ 5.5,
title: TranslationBase.of(context).weight,
timeSeries: model.weighMonthTimeSeriesData.isEmpty ? [TimeSeriesSales3(0, 0.0)] : model.weighMonthTimeSeriesData,
indexes: model.weighMonthTimeSeriesData.length ~/ 5.5,
),
), ),
Card( ),
shape: cardRadius(12), Card(
elevation: 1, shape: cardRadius(12),
margin: EdgeInsets.only(left: 16, top: 16, right: 16, bottom: 8), elevation: 1,
child: Column( margin: EdgeInsets.only(left: 16, top: 16, right: 16, bottom: 8),
crossAxisAlignment: CrossAxisAlignment.start, child: Column(
children: [ crossAxisAlignment: CrossAxisAlignment.start,
Padding( children: [
padding: const EdgeInsets.all(8.0), Padding(
child: Texts(TranslationBase.of(context).details), padding: const EdgeInsets.all(8.0),
child: Texts(TranslationBase.of(context).details),
),
Container(
padding: EdgeInsets.all(10),
color: Colors.transparent,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
model.weighMonthTimeSeriesData.isEmpty
? Container(
child: Center(
child: Texts(TranslationBase.of(context).noDataAvailable),
),
)
: Column(children: [
for (var monthly in monthlyGroup)
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Container(
width: double.maxFinite,
padding: EdgeInsets.only(top: 10, bottom: 10, left: 5, right: 5),
decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(5)),
child: Texts(monthly[0])),
Table(
columnWidths: {
0: FlexColumnWidth(2.5),
// 2: FlexColumnWidth(1.8),
},
children: fullData(context, monthly[1]),
)
])
])
],
), ),
Container( )
padding: EdgeInsets.all(10), ],
color: Colors.transparent,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
model.weighMonthTimeSeriesData.isEmpty
? Container(
child: Center(
child: Texts(TranslationBase.of(context).noDataAvailable),
),
)
: Column(children: [
for (var monthly in monthlyGroup)
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Container(
width: double.maxFinite,
padding: EdgeInsets.only(top: 10, bottom: 10, left: 5, right: 5),
decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(5)),
child: Texts(monthly[0])),
Table(
columnWidths: {
0: FlexColumnWidth(2.5),
// 2: FlexColumnWidth(1.8),
},
children: fullData(context, monthly[1]),
)
])
])
],
),
)
],
),
), ),
mHeight(80), ),
], mHeight(80),
), ],
); );
} }
@ -108,9 +106,9 @@ class WeightMonthlyPage extends StatelessWidget {
tableRow.add( tableRow.add(
TableRow( TableRow(
children: [ children: [
Utils.tableColumnValue('${DateUtil.getDayMonthYearDateFormatted(diabtec.weightDate)} ', isCapitable: false), Utils.tableColumnValue('${DateUtil.getDayMonthYearDateFormatted(diabtec.weightDate)} ', isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue('${diabtec.weightDate.hour}:${diabtec.weightDate.minute}', isCapitable: false), Utils.tableColumnValue('${diabtec.weightDate.hour}:${diabtec.weightDate.minute}', isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue('${diabtec.weightMeasured}', isCapitable: false), Utils.tableColumnValue('${diabtec.weightMeasured}', isCapitable: false, mProjectViewModel: projectViewModel),
], ],
), ),
); );

@ -1,6 +1,6 @@
import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/weight_pressure_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/weight_pressure_view_model.dart';
import 'package:diplomaticquarterapp/theme/colors.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart';
@ -8,74 +8,73 @@ import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/charts/app_time_series_chart.dart'; import 'package:diplomaticquarterapp/widgets/charts/app_time_series_chart.dart';
import 'package:diplomaticquarterapp/widgets/charts/show_chart.dart'; import 'package:diplomaticquarterapp/widgets/charts/show_chart.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'AddWeightPage.dart'; import 'AddWeightPage.dart';
class WeightWeeklyPage extends StatelessWidget { class WeightWeeklyPage extends StatelessWidget {
final WeightPressureViewModel model; final WeightPressureViewModel model;
const WeightWeeklyPage({Key key, this.model}) : super(key: key); WeightWeeklyPage({Key key, this.model}) : super(key: key);
ProjectViewModel projectViewModel;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AppScaffold( if (projectViewModel == null) projectViewModel = Provider.of(context);
isShowDecPage: false, return ListView(
backgroundColor: CustomColors.appBackgroudGrey2Color, children: [
body: ListView( Card(
children: [ shape: cardRadius(12),
Card( elevation: 1,
shape: cardRadius(12), margin: EdgeInsets.only(left: 16, top: 16, right: 16, bottom: 8),
elevation: 1, child: ShowChart(
margin: EdgeInsets.only(left: 16, top: 16, right: 16, bottom: 8), title: TranslationBase.of(context).weight,
child: ShowChart( timeSeries: model.weightWeekTimeSeriesData.isEmpty ? [TimeSeriesSales2(DateTime.now(), 0.0)] : model.weightWeekTimeSeriesData,
title: TranslationBase.of(AppGlobal.context).weight, indexes: model.weightWeekTimeSeriesData.length ~/ 5.5 ?? 0,
timeSeries: model.weightWeekTimeSeriesData.isEmpty ? [TimeSeriesSales2(DateTime.now(), 0.0)] : model.weightWeekTimeSeriesData, horizontalInterval: 2,
indexes: model.weightWeekTimeSeriesData.length ~/ 5.5 ?? 0,
horizontalInterval: 2,
),
), ),
Card( ),
shape: cardRadius(12), Card(
elevation: 1, shape: cardRadius(12),
margin: EdgeInsets.only(left: 16, top: 16, right: 16, bottom: 8), elevation: 1,
child: Column( margin: EdgeInsets.only(left: 16, top: 16, right: 16, bottom: 8),
crossAxisAlignment: CrossAxisAlignment.start, child: Column(
children: [ crossAxisAlignment: CrossAxisAlignment.start,
Padding( children: [
padding: const EdgeInsets.all(8.0), Padding(
child: Texts(TranslationBase.of(AppGlobal.context).details), padding: const EdgeInsets.all(8.0),
), child: Texts(TranslationBase.of(context).details),
Container( ),
padding: EdgeInsets.all(10), Container(
color: Colors.transparent, padding: EdgeInsets.all(10),
child: Column( color: Colors.transparent,
crossAxisAlignment: CrossAxisAlignment.start, child: Column(
children: <Widget>[ crossAxisAlignment: CrossAxisAlignment.start,
model.weightWeekTimeSeriesData.isEmpty children: <Widget>[
? Container( model.weightWeekTimeSeriesData.isEmpty
child: Center( ? Container(
child: Texts(TranslationBase.of(AppGlobal.context).noDataAvailable), child: Center(
), child: Texts(TranslationBase.of(context).noDataAvailable),
)
: Table(
columnWidths: {
0: FlexColumnWidth(2.5),
},
children: fullData(AppGlobal.context, model),
), ),
], )
), : Table(
) columnWidths: {
], 0: FlexColumnWidth(2.5),
), },
children: fullData(context, model),
),
],
),
)
],
), ),
mHeight(80), ),
], mHeight(80),
), ],
); );
} }
@ -96,9 +95,9 @@ class WeightWeeklyPage extends StatelessWidget {
tableRow.add( tableRow.add(
TableRow( TableRow(
children: [ children: [
Utils.tableColumnValue('${DateUtil.getDayMonthYearDateFormatted(diabtec.weightDate)} ', isCapitable: false), Utils.tableColumnValue('${DateUtil.getDayMonthYearDateFormatted(diabtec.weightDate)} ', isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue('${diabtec.weightDate.hour}:${diabtec.weightDate.minute}', isCapitable: false), Utils.tableColumnValue('${diabtec.weightDate.hour}:${diabtec.weightDate.minute}', isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue('${diabtec.weightMeasured}', isCapitable: false), Utils.tableColumnValue('${diabtec.weightMeasured}', isCapitable: false, mProjectViewModel: projectViewModel),
Column(crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ Column(crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [
SizedBox(height: 12), SizedBox(height: 12),
Container( Container(

@ -23,70 +23,68 @@ class WeightYearPage extends StatelessWidget {
this.model, this.model,
}) : super(key: key); }) : super(key: key);
List<List> monthlyGroup = []; List<List> monthlyGroup = [];
ProjectViewModel projectViewModel;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (projectViewModel == null) projectViewModel = Provider.of(context);
groupData(); groupData();
return AppScaffold( return ListView(
isShowDecPage: false, children: [
backgroundColor: CustomColors.appBackgroudGrey2Color, Card(
body: ListView(
children: [
Card(
shape: cardRadius(12),
elevation: 1,
margin: EdgeInsets.only(left: 16, top: 16, right: 16, bottom: 8),
child: ShowChart(
horizontalInterval: 2.0,
title: TranslationBase.of(context).weight,
timeSeries: model.weightYearTimeSeriesData.isEmpty ? [TimeSeriesSales2(DateTime.now(), 0.0)] : model.weightYearTimeSeriesData,
indexes: model.weightYearTimeSeriesData.length ~/ 5.5 ?? "",
)),
Card(
shape: cardRadius(12), shape: cardRadius(12),
elevation: 1, elevation: 1,
margin: EdgeInsets.only(left: 16, top: 16, right: 16, bottom: 8), margin: EdgeInsets.only(left: 16, top: 16, right: 16, bottom: 8),
child: Column( child: ShowChart(
crossAxisAlignment: CrossAxisAlignment.start,children: [ Padding( horizontalInterval: 2.0,
padding: const EdgeInsets.all(8.0), title: TranslationBase.of(context).weight,
child: Texts(TranslationBase.of(context).details), timeSeries: model.weightYearTimeSeriesData.isEmpty ? [TimeSeriesSales2(DateTime.now(), 0.0)] : model.weightYearTimeSeriesData,
), indexes: model.weightYearTimeSeriesData.length ~/ 5.5 ?? "",
Container( )),
padding: EdgeInsets.all(10),
color: Colors.transparent, Card(
child: Column( shape: cardRadius(12),
crossAxisAlignment: CrossAxisAlignment.start, elevation: 1,
children: <Widget>[ margin: EdgeInsets.only(left: 16, top: 16, right: 16, bottom: 8),
model.weightYearTimeSeriesData.isEmpty child: Column(
? Container( crossAxisAlignment: CrossAxisAlignment.start,children: [ Padding(
child: Center( padding: const EdgeInsets.all(8.0),
child: Texts(TranslationBase.of(context).noDataAvailable), child: Texts(TranslationBase.of(context).details),
),
)
: Column(children: [
for (var monthly in monthlyGroup)
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Container(
width: double.maxFinite,
padding: EdgeInsets.only(top: 10, bottom: 10, left: 5, right: 5),
decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(5)),
child: Texts(monthly[0])),
Table(
columnWidths: {
0: FlexColumnWidth(2.5),
},
children: fullData(context, monthly[1]),
)
])
]),
],
),
)],
),
), ),
mHeight(80), Container(
], padding: EdgeInsets.all(10),
), color: Colors.transparent,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
model.weightYearTimeSeriesData.isEmpty
? Container(
child: Center(
child: Texts(TranslationBase.of(context).noDataAvailable),
),
)
: Column(children: [
for (var monthly in monthlyGroup)
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Container(
width: double.maxFinite,
padding: EdgeInsets.only(top: 10, bottom: 10, left: 5, right: 5),
decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(5)),
child: Texts(monthly[0])),
Table(
columnWidths: {
0: FlexColumnWidth(2.5),
},
children: fullData(context, monthly[1]),
)
])
]),
],
),
)],
),
),
mHeight(80),
],
); );
} }
@ -107,9 +105,9 @@ class WeightYearPage extends StatelessWidget {
TableRow( TableRow(
children: [ children: [
Utils.tableColumnValue('${DateUtil.getDayMonthYearDateFormatted(diabtec.weightDate)} ', Utils.tableColumnValue('${DateUtil.getDayMonthYearDateFormatted(diabtec.weightDate)} ',
isCapitable: false), isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue('${diabtec.weightDate.hour}:${diabtec.weightDate.minute}', isCapitable: false), Utils.tableColumnValue('${diabtec.weightDate.hour}:${diabtec.weightDate.minute}', isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue('${diabtec.weightMeasured}', isCapitable: false), Utils.tableColumnValue('${diabtec.weightMeasured}', isCapitable: false, mProjectViewModel: projectViewModel),
], ],
), ),
); );

@ -2,7 +2,6 @@ import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/blood_pressure_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/blood_pressure_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/TabBarWidget.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
@ -45,100 +44,116 @@ class _BloodPressureHomePageState extends State<BloodPressureHomePage> with Sing
return BaseView<BloodPressureViewMode>( return BaseView<BloodPressureViewMode>(
onModelReady: (model) => model.getBloodPressure(), onModelReady: (model) => model.getBloodPressure(),
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
isShowAppBar: true, isShowAppBar: true,
appBarTitle: TranslationBase.of(context).bloodPressure, appBarTitle: TranslationBase.of(context).bloodPressure,
showNewAppBar: true, showNewAppBar: true,
showNewAppBarTitle: true, showNewAppBarTitle: true,
baseViewModel: model, baseViewModel: model,
body: Scaffold( body: Column(
extendBodyBehindAppBar: true, children: <Widget>[
appBar: TabBarWidget( TabBar(
tabController: _tabController, controller: _tabController,
indicatorWeight: 3.0,
indicatorSize: TabBarIndicatorSize.tab,
labelColor: Color(0xff2B353E),
unselectedLabelColor: Color(0xff575757),
labelPadding: EdgeInsets.only(top: 15, bottom: 13, left: 20, right: 20),
labelStyle: TextStyle(
fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins',
fontSize: 16,
fontWeight: FontWeight.w600,
letterSpacing: -0.48,
),
unselectedLabelStyle: TextStyle(
fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins',
fontSize: 16,
fontWeight: FontWeight.w600,
letterSpacing: -0.48,
),
tabs: [Text(TranslationBase.of(context).weekly), Text(TranslationBase.of(context).monthlyT), Text(TranslationBase.of(context).yearly)],
), ),
body: Column( Expanded(
children: <Widget>[ child: TabBarView(
Expanded( physics: BouncingScrollPhysics(),
child: TabBarView( controller: _tabController,
physics: BouncingScrollPhysics(), children: <Widget>[
controller: _tabController, BloodPressureWeeklyPage(
children: <Widget>[ model: model,
BloodPressureWeeklyPage( ),
model: model, BloodPressureMonthlyPage(
), model: model,
BloodPressureMonthlyPage( ),
BloodPressureYearPage(
model: model,
)
],
),
)
],
),
floatingActionButton: Stack(children: [
Positioned(
bottom: 60,
right: projectViewModel.isArabic ? MediaQuery.of(context).size.width * .85 : 0,
child: InkWell(
onTap: () {
Navigator.push(
context,
FadePage(
page: AddBloodPressurePage(
model: model, model: model,
))).then((value) {
model.getBloodPressure();
});
},
child: Container(
width: 50,
height: 50,
decoration: BoxDecoration(shape: BoxShape.circle, color: Theme.of(context).primaryColor),
child: Center(
child: Icon(
Icons.add,
color: Colors.white,
), ),
BloodPressureYearPage( )),
model: model, ))
) ]),
], bottomSheet: Container(
), color: Theme.of(context).scaffoldBackgroundColor,
) child: Padding(
], padding: const EdgeInsets.all(12.0),
), child: DefaultButton(
floatingActionButton: Stack(children: [ TranslationBase.of(context).sendEmail,
Positioned( () {
bottom: 60, showDialog(
right: projectViewModel.isArabic ? MediaQuery.of(context).size.width * .85 : 0, context: context,
child: InkWell( child: ConfirmSendEmailDialog(
onTap: () { email: model.user.emailAddress,
Navigator.push( onTapSendEmail: () async {
context, GifLoaderDialogUtils.showMyDialog(context);
FadePage( model.sendReportByEmail().then((value) {
page: AddBloodPressurePage( GifLoaderDialogUtils.hideDialog(context);
model: model, if (model.state == ViewState.ErrorLocal) {
))).then((value) { AppToast.showErrorToast(message: model.error);
model.getBloodPressure(); } else {
AppToast.showSuccessToast(
message: TranslationBase.of(context).emailSentSuccessfully,
);
}
}).catchError((e) {
GifLoaderDialogUtils.hideDialog(context);
AppToast.showErrorToast(message: model.error);
}); });
}, },
child: Container( ),
width: 50, );
height: 50, },
decoration: BoxDecoration(shape: BoxShape.circle, color: Theme.of(context).primaryColor), // label: TranslationBase.of(context).sendEmail,
child: Center( // backgroundColor: Colors.red[900],
child: Icon(
Icons.add,
color: Colors.white,
),
)),
))
]),
bottomSheet: Container(
color: Theme.of(context).scaffoldBackgroundColor,
child: Padding(
padding: const EdgeInsets.all(12.0),
child: DefaultButton(
TranslationBase.of(context).sendEmail,
() {
showDialog(
context: context,
child: ConfirmSendEmailDialog(
email: model.user.emailAddress,
onTapSendEmail: () async {
GifLoaderDialogUtils.showMyDialog(context);
model.sendReportByEmail().then((value) {
GifLoaderDialogUtils.hideDialog(context);
if (model.state == ViewState.ErrorLocal) {
AppToast.showErrorToast(message: model.error);
} else {
AppToast.showSuccessToast(
message: TranslationBase.of(context).emailSentSuccessfully,
);
}
}).catchError((e) {
GifLoaderDialogUtils.hideDialog(context);
AppToast.showErrorToast(message: model.error);
});
},
),
);
},
// label: TranslationBase.of(context).sendEmail,
// backgroundColor: Colors.red[900],
),
),
), ),
)), ),
),
),
); );
} }
} }

@ -1,80 +1,81 @@
import "package:collection/collection.dart"; import "package:collection/collection.dart";
import 'package:diplomaticquarterapp/core/viewModels/medical/blood_pressure_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/blood_pressure_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/MonthCurvedChartBloodPressure.dart'; import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/MonthCurvedChartBloodPressure.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/charts/app_time_series_chart.dart'; import 'package:diplomaticquarterapp/widgets/charts/app_time_series_chart.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class BloodPressureMonthlyPage extends StatelessWidget { class BloodPressureMonthlyPage extends StatelessWidget {
final BloodPressureViewMode model; final BloodPressureViewMode model;
BloodPressureMonthlyPage({Key key, this.model}) : super(key: key); BloodPressureMonthlyPage({Key key, this.model}) : super(key: key);
List<List> monthlyGroup = []; List<List> monthlyGroup = [];
ProjectViewModel projectViewModel;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (projectViewModel == null) projectViewModel = Provider.of(context);
groupData(); groupData();
return AppScaffold( return ListView(
body: ListView( children: [
children: [ Container(
Container( margin: EdgeInsets.only(top: 12, left: 8, right: 8),
margin: EdgeInsets.only(top: 12, left: 8, right: 8), color: Colors.white,
color: Colors.white, child: MonthCurvedChartBloodPressure(
child: MonthCurvedChartBloodPressure( horizontalInterval: 20.0,
horizontalInterval: 20.0, title: TranslationBase.of(context).bloodPressure,
title: TranslationBase.of(context).bloodPressure, timeSeries1: model.weighMonthTimeSeriesDataTop.isEmpty ? [TimeSeriesSales3(0, 0.0)] : model.weighMonthTimeSeriesDataTop,
timeSeries1: model.weighMonthTimeSeriesDataTop.isEmpty ? [TimeSeriesSales3(0, 0.0)] : model.weighMonthTimeSeriesDataTop, timeSeries2: model.weighMonthTimeSeriesDataLow.isEmpty ? [TimeSeriesSales3(0, 0.0)] : model.weighMonthTimeSeriesDataLow,
timeSeries2: model.weighMonthTimeSeriesDataLow.isEmpty ? [TimeSeriesSales3(0, 0.0)] : model.weighMonthTimeSeriesDataLow, indexes: model.weightWeekTimeSeriesDataLow.length ~/ 5.5,
indexes: model.weightWeekTimeSeriesDataLow.length ~/ 5.5,
),
), ),
SizedBox( ),
height: 12, SizedBox(
height: 12,
),
// Padding(
// padding: const EdgeInsets.all(8.0),
// child: Texts(TranslationBase.of(context).details),
// ),
Container(
padding: EdgeInsets.all(10),
color: Colors.transparent,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
model.weighMonthTimeSeriesDataTop.isEmpty
? Container(
child: Center(
child: Texts(TranslationBase.of(context).noDataAvailable),
),
)
: Column(children: [
for (var monthly in monthlyGroup)
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Container(
width: double.maxFinite,
padding: EdgeInsets.only(top: 10, bottom: 10, left: 5, right: 5),
decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(5)),
child: Texts(monthly[0])),
Table(
columnWidths: {
0: FlexColumnWidth(1.8),
2: FlexColumnWidth(1.8),
},
children: fullData(context, monthly[1]),
)
])
]),
SizedBox(height: 80)
],
), ),
// Padding( )
// padding: const EdgeInsets.all(8.0), ],
// child: Texts(TranslationBase.of(context).details),
// ),
Container(
padding: EdgeInsets.all(10),
color: Colors.transparent,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
model.weighMonthTimeSeriesDataTop.isEmpty
? Container(
child: Center(
child: Texts(TranslationBase.of(context).noDataAvailable),
),
)
: Column(children: [
for (var monthly in monthlyGroup)
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Container(
width: double.maxFinite,
padding: EdgeInsets.only(top: 10, bottom: 10, left: 5, right: 5),
decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(5)),
child: Texts(monthly[0])),
Table(
columnWidths: {
0: FlexColumnWidth(1.8),
2: FlexColumnWidth(1.8),
},
children: fullData(context, monthly[1]),
)
])
]),
SizedBox(height: 80)
],
),
)
],
),
); );
} }
@ -86,7 +87,7 @@ class BloodPressureMonthlyPage extends StatelessWidget {
Utils.tableColumnTitle(TranslationBase.of(context).date), Utils.tableColumnTitle(TranslationBase.of(context).date),
Utils.tableColumnTitle(TranslationBase.of(context).time), Utils.tableColumnTitle(TranslationBase.of(context).time),
Utils.tableColumnTitle(TranslationBase.of(context).arm), Utils.tableColumnTitle(TranslationBase.of(context).arm),
Utils.tableColumnTitle(TranslationBase.of(context).sysdias), Utils.tableColumnTitle(TranslationBase.of(context).value),
], ],
), ),
); );
@ -95,10 +96,10 @@ class BloodPressureMonthlyPage extends StatelessWidget {
tableRow.add( tableRow.add(
TableRow( TableRow(
children: [ children: [
Utils.tableColumnValue('${DateUtil.getDayMonthYearDateFormatted(diabtec.bloodPressureDate)}', isCapitable: false), Utils.tableColumnValue('${DateUtil.getDayMonthYearDateFormatted(diabtec.bloodPressureDate)}', isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue('${diabtec.bloodPressureDate.hour}:${diabtec.bloodPressureDate.minute}', isCapitable: false), Utils.tableColumnValue('${diabtec.bloodPressureDate.hour}:${diabtec.bloodPressureDate.minute}', isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue(diabtec.measuredArmDesc, isCapitable: false), Utils.tableColumnValue(diabtec.measuredArmDesc, isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue('${diabtec.systolicePressure}/${diabtec.diastolicPressure}', isCapitable: false), Utils.tableColumnValue('${diabtec.systolicePressure}/${diabtec.diastolicPressure}', isCapitable: false, mProjectViewModel: projectViewModel),
], ],
), ),
); );

@ -1,6 +1,8 @@
import "package:collection/collection.dart"; import "package:collection/collection.dart";
import 'package:diplomaticquarterapp/core/viewModels/medical/blood_pressure_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/blood_pressure_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/CurvedChartBloodPressure.dart'; import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/CurvedChartBloodPressure.dart';
import 'package:diplomaticquarterapp/pages/medical/vital_sign/LineChartCurvedBloodPressure.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart';
@ -9,69 +11,68 @@ import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class BloodPressureYearPage extends StatelessWidget { class BloodPressureYearPage extends StatelessWidget {
final BloodPressureViewMode model; final BloodPressureViewMode model;
BloodPressureYearPage({Key key, this.model}) : super(key: key); BloodPressureYearPage({Key key, this.model}) : super(key: key);
List<List> monthlyGroup = []; List<List> monthlyGroup = [];
ProjectViewModel projectViewModel;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (projectViewModel == null) projectViewModel = Provider.of(context);
groupData(); groupData();
return AppScaffold( return ListView(
body: ListView( children: [
children: [ Container(
Container( margin: EdgeInsets.only(top: 12, left: 8, right: 8),
margin: EdgeInsets.only(top: 12, left: 8, right: 8), color: Colors.white,
color: Colors.white, child: LineChartCurvedBloodPressure(
child: CurvedChartBloodPressure( title: TranslationBase.of(context).bloodPressure,
horizontalInterval: 3.0, timeSeries1: model.weightYearTimeSeriesDataTop.isEmpty ? [TimeSeriesSales2(DateTime.now(), 0.0)] : model.weightYearTimeSeriesDataTop,
// model.weightWeekTimeSeriesDataLow.length==1 ?1 :20.0, timeSeries2: model.weightYearTimeSeriesDataLow.isEmpty ? [TimeSeriesSales2(DateTime.now(), 0.0)] : model.weightYearTimeSeriesDataLow,
title: TranslationBase.of(context).bloodPressure, indexes: model.weightWeekTimeSeriesDataLow.length ~/ 5.5,
timeSeries1: model.weightYearTimeSeriesDataTop.isEmpty ? [TimeSeriesSales2(DateTime.now(), 0.0)] : model.weightYearTimeSeriesDataTop,
timeSeries2: model.weightYearTimeSeriesDataLow.isEmpty ? [TimeSeriesSales2(DateTime.now(), 0.0)] : model.weightYearTimeSeriesDataLow,
indexes: model.weightWeekTimeSeriesDataLow.length ~/ 5.5,
),
), ),
SizedBox( ),
height: 12, SizedBox(
height: 12,
),
Container(
padding: EdgeInsets.all(10),
color: Colors.transparent,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
model.weightYearTimeSeriesDataTop.isEmpty
? Container(
child: Center(
child: Texts(TranslationBase.of(context).noDataAvailable),
),
)
: Column(children: [
for (var monthly in monthlyGroup)
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Container(
width: double.maxFinite,
padding: EdgeInsets.only(top: 10, bottom: 10, left: 5, right: 5),
decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(5)),
child: Texts(monthly[0])),
Table(
columnWidths: {
0: FlexColumnWidth(1.8),
2: FlexColumnWidth(1.8),
},
children: fullData(context, monthly[1]),
)
])
]),
SizedBox(height: 80)
],
), ),
Container( )
padding: EdgeInsets.all(10), ],
color: Colors.transparent,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
model.weightYearTimeSeriesDataTop.isEmpty
? Container(
child: Center(
child: Texts(TranslationBase.of(context).noDataAvailable),
),
)
: Column(children: [
for (var monthly in monthlyGroup)
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Container(
width: double.maxFinite,
padding: EdgeInsets.only(top: 10, bottom: 10, left: 5, right: 5),
decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(5)),
child: Texts(monthly[0])),
Table(
columnWidths: {
0: FlexColumnWidth(1.8),
2: FlexColumnWidth(1.8),
},
children: fullData(context, monthly[1]),
)
])
]),
SizedBox(height: 80)
],
),
)
],
),
); );
} }
@ -83,7 +84,7 @@ class BloodPressureYearPage extends StatelessWidget {
Utils.tableColumnTitle(TranslationBase.of(context).date), Utils.tableColumnTitle(TranslationBase.of(context).date),
Utils.tableColumnTitle(TranslationBase.of(context).time), Utils.tableColumnTitle(TranslationBase.of(context).time),
Utils.tableColumnTitle(TranslationBase.of(context).arm), Utils.tableColumnTitle(TranslationBase.of(context).arm),
Utils.tableColumnTitle(TranslationBase.of(context).sysdias), Utils.tableColumnTitle(TranslationBase.of(context).value),
], ],
), ),
); );
@ -92,10 +93,10 @@ class BloodPressureYearPage extends StatelessWidget {
tableRow.add( tableRow.add(
TableRow( TableRow(
children: [ children: [
Utils.tableColumnValue('${DateUtil.getDayMonthYearDateFormatted(diabtec.bloodPressureDate)}', isCapitable: false), Utils.tableColumnValue('${DateUtil.getDayMonthYearDateFormatted(diabtec.bloodPressureDate)}', isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue('${diabtec.bloodPressureDate.hour}:${diabtec.bloodPressureDate.minute}', isCapitable: false), Utils.tableColumnValue('${diabtec.bloodPressureDate.hour}:${diabtec.bloodPressureDate.minute}', isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue(diabtec.measuredArmDesc, isCapitable: false), Utils.tableColumnValue(diabtec.measuredArmDesc, isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue('${diabtec.systolicePressure}/${diabtec.diastolicPressure}', isCapitable: false), Utils.tableColumnValue('${diabtec.systolicePressure}/${diabtec.diastolicPressure}', isCapitable: false, mProjectViewModel: projectViewModel),
], ],
), ),
); );

@ -1,70 +1,72 @@
import 'package:diplomaticquarterapp/core/viewModels/medical/blood_pressure_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/blood_pressure_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/medical/vital_sign/LineChartCurvedBloodPressure.dart'; import 'package:diplomaticquarterapp/pages/medical/vital_sign/LineChartCurvedBloodPressure.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/charts/app_time_series_chart.dart'; import 'package:diplomaticquarterapp/widgets/charts/app_time_series_chart.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'AddBloodPressurePage.dart'; import 'AddBloodPressurePage.dart';
class BloodPressureWeeklyPage extends StatelessWidget { class BloodPressureWeeklyPage extends StatelessWidget {
final BloodPressureViewMode model; final BloodPressureViewMode model;
const BloodPressureWeeklyPage({Key key, this.model}) : super(key: key); BloodPressureWeeklyPage({Key key, this.model}) : super(key: key);
ProjectViewModel projectViewModel;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AppScaffold( if (projectViewModel == null) projectViewModel = Provider.of(context);
body: ListView( return ListView(
children: [ children: [
Container( Container(
margin: EdgeInsets.only(top: 12, left: 8, right: 8, bottom: 12.0), margin: EdgeInsets.only(top: 12, left: 8, right: 8, bottom: 12.0),
padding: EdgeInsets.only(bottom: 12.0), padding: EdgeInsets.only(bottom: 12.0),
color: Colors.white, color: Colors.white,
child: LineChartCurvedBloodPressure( child: LineChartCurvedBloodPressure(
title: TranslationBase.of(context).bloodPressure, title: TranslationBase.of(context).bloodPressure,
timeSeries1: model.weightWeekTimeSeriesDataTop.isEmpty ? [TimeSeriesSales2(DateTime.now(), 0.0)] : model.weightWeekTimeSeriesDataTop, timeSeries1: model.weightWeekTimeSeriesDataTop.isEmpty ? [TimeSeriesSales2(DateTime.now(), 0.0)] : model.weightWeekTimeSeriesDataTop,
timeSeries2: model.weightWeekTimeSeriesDataLow.isEmpty ? [TimeSeriesSales2(DateTime.now(), 0.0)] : model.weightWeekTimeSeriesDataLow, timeSeries2: model.weightWeekTimeSeriesDataLow.isEmpty ? [TimeSeriesSales2(DateTime.now(), 0.0)] : model.weightWeekTimeSeriesDataLow,
indexes: model.weightWeekTimeSeriesDataLow.length ~/ 5.5, indexes: model.weightWeekTimeSeriesDataLow.length ~/ 5.5,
),
),
SizedBox(
height: 12,
), ),
// Padding( ),
// padding: const EdgeInsets.all(8.0), SizedBox(
// child: Texts(TranslationBase.of(context).details), height: 12,
// ), ),
Container( // Padding(
padding: EdgeInsets.all(10), // padding: const EdgeInsets.all(8.0),
color: Colors.transparent, // child: Texts(TranslationBase.of(context).details),
child: Column( // ),
crossAxisAlignment: CrossAxisAlignment.start, Container(
children: <Widget>[ padding: EdgeInsets.all(10),
model.bloodPressureService.weekDiabtecPatientResult.isEmpty color: Colors.transparent,
? Container( child: Column(
child: Center( crossAxisAlignment: CrossAxisAlignment.start,
child: Texts(TranslationBase.of(context).noDataAvailable), children: <Widget>[
), model.bloodPressureService.weekDiabtecPatientResult.isEmpty
) ? Container(
: Table( child: Center(
columnWidths: { child: Texts(TranslationBase.of(context).noDataAvailable),
0: FlexColumnWidth(1.8),
2: FlexColumnWidth(1.8),
},
children: fullData(context, model),
), ),
SizedBox(height: 80) )
], : Table(
), columnWidths: {
) 0: FlexColumnWidth(1.8),
], 2: FlexColumnWidth(1.8),
), },
children: fullData(context, model),
),
SizedBox(height: 80)
],
),
)
],
); );
} }
@ -86,10 +88,10 @@ class BloodPressureWeeklyPage extends StatelessWidget {
tableRow.add( tableRow.add(
TableRow( TableRow(
children: [ children: [
Utils.tableColumnValue('${DateUtil.getDayMonthYearDateFormatted(diabtec.bloodPressureDate)} ', isCapitable: false), Utils.tableColumnValue('${DateUtil.getDayMonthYearDateFormatted(diabtec.bloodPressureDate)} ', isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue(diabtec.bloodPressureDate.hour.toString() + ':' + diabtec.bloodPressureDate.minute.toString(), isCapitable: false), Utils.tableColumnValue(diabtec.bloodPressureDate.hour.toString() + ':' + diabtec.bloodPressureDate.minute.toString(), isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue('${diabtec.measuredArmDesc}', isCapitable: false), Utils.tableColumnValue('${diabtec.measuredArmDesc}', isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue('${diabtec.systolicePressure}/${diabtec.diastolicPressure}', isCapitable: false), Utils.tableColumnValue('${diabtec.systolicePressure}/${diabtec.diastolicPressure}', isCapitable: false, mProjectViewModel: projectViewModel),
Column(crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ Column(crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [
SizedBox(height: 12), SizedBox(height: 12),
Container( Container(

@ -1,6 +1,7 @@
import "package:collection/collection.dart"; import "package:collection/collection.dart";
import 'package:diplomaticquarterapp/core/model/my_trakers/blood_sugar/DiabtecPatientResult.dart'; import 'package:diplomaticquarterapp/core/model/my_trakers/blood_sugar/DiabtecPatientResult.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/blood_sugar_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/blood_sugar_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/MonthLineChartCurved.dart'; import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/MonthLineChartCurved.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
@ -10,6 +11,7 @@ import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class BloodMonthlyPage extends StatelessWidget { class BloodMonthlyPage extends StatelessWidget {
final List<DiabtecPatientResult> diabtecPatientResult; final List<DiabtecPatientResult> diabtecPatientResult;
@ -19,9 +21,11 @@ class BloodMonthlyPage extends StatelessWidget {
BloodMonthlyPage({Key key, this.diabtecPatientResult, this.timeSeriesData, this.bloodSugarViewMode}) : super(key: key); BloodMonthlyPage({Key key, this.diabtecPatientResult, this.timeSeriesData, this.bloodSugarViewMode}) : super(key: key);
List<List> monthlyGroup = []; List<List> monthlyGroup = [];
ProjectViewModel projectViewModel;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (projectViewModel == null) projectViewModel = Provider.of(context);
groupData(); groupData();
return AppScaffold( return AppScaffold(
body: ListView( body: ListView(
@ -92,10 +96,10 @@ class BloodMonthlyPage extends StatelessWidget {
tableRow.add( tableRow.add(
TableRow( TableRow(
children: [ children: [
Utils.tableColumnValue(DateUtil.getDayMonthYearDateFormatted(diabtec.dateChart), isCapitable: false), Utils.tableColumnValue(DateUtil.getDayMonthYearDateFormatted(diabtec.dateChart), isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue(diabtec.dateChart.hour.toString() + ':' + diabtec.dateChart.minute.toString(), isCapitable: false), Utils.tableColumnValue(diabtec.dateChart.hour.toString() + ':' + diabtec.dateChart.minute.toString(), isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue(diabtec.measuredDesc, isCapitable: false), Utils.tableColumnValue(diabtec.measuredDesc, isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue(diabtec.resultValue.toString(), isCapitable: false), Utils.tableColumnValue(diabtec.resultValue.toString(), isCapitable: false, mProjectViewModel: projectViewModel),
], ],
), ),
); );

@ -1,15 +1,16 @@
import "package:collection/collection.dart"; import "package:collection/collection.dart";
import 'package:diplomaticquarterapp/core/model/my_trakers/blood_sugar/DiabtecPatientResult.dart'; import 'package:diplomaticquarterapp/core/model/my_trakers/blood_sugar/DiabtecPatientResult.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/blood_sugar_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/blood_sugar_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/charts/app_time_series_chart.dart'; import 'package:diplomaticquarterapp/widgets/charts/app_time_series_chart.dart';
import 'package:diplomaticquarterapp/widgets/charts/show_chart.dart'; import 'package:diplomaticquarterapp/widgets/charts/show_chart.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class BloodYearPage extends StatelessWidget { class BloodYearPage extends StatelessWidget {
final List<DiabtecPatientResult> diabtecPatientResult; final List<DiabtecPatientResult> diabtecPatientResult;
@ -18,66 +19,67 @@ class BloodYearPage extends StatelessWidget {
BloodYearPage({Key key, this.diabtecPatientResult, this.timeSeriesData, this.bloodSugarViewMode}) : super(key: key); BloodYearPage({Key key, this.diabtecPatientResult, this.timeSeriesData, this.bloodSugarViewMode}) : super(key: key);
List<List> yearlyGroup = []; List<List> yearlyGroup = [];
ProjectViewModel projectViewModel;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (projectViewModel == null) projectViewModel = Provider.of(context);
groupData(); groupData();
return AppScaffold( return ListView(
body: ListView( children: [
children: [ Container(
Container( margin: EdgeInsets.only(top: 12, left: 8, right: 8),
margin: EdgeInsets.only(top: 12, left: 8, right: 8), width: double.maxFinite,
width: double.maxFinite, color: Colors.white,
color: Colors.white, child: ShowChart(
child: ShowChart( title: TranslationBase.of(context).weight,
title: TranslationBase.of(context).weight, timeSeries: timeSeriesData.isEmpty ? [TimeSeriesSales2(DateTime.now(), 0.0)] : timeSeriesData,
timeSeries: timeSeriesData.isEmpty ? [TimeSeriesSales2(DateTime.now(), 0.0)] : timeSeriesData, indexes: timeSeriesData.length ~/ 5.5,
indexes: timeSeriesData.length ~/ 5.5, horizontalInterval: 2,
horizontalInterval: 2,
),
),
SizedBox(
height: 12,
), ),
Padding( ),
padding: const EdgeInsets.all(8.0), SizedBox(
child: Texts(TranslationBase.of(context).details), height: 12,
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Texts(TranslationBase.of(context).details),
),
Container(
padding: EdgeInsets.all(10),
color: Colors.transparent,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
timeSeriesData.isEmpty
? Container(
child: Center(
child: Texts(TranslationBase.of(context).noDataAvailable),
),
)
: Column(children: [
for (var monthly in yearlyGroup)
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Container(
width: double.maxFinite,
padding: EdgeInsets.only(top: 10, bottom: 10, left: 5, right: 5),
decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(5)),
child: Texts(monthly[0])),
Table(
columnWidths: {
0: FlexColumnWidth(1.8),
2: FlexColumnWidth(1.8),
},
children: fullData(context, monthly[1]),
)
])
]),
SizedBox(height: 80)
],
), ),
Container( )
padding: EdgeInsets.all(10), ],
color: Colors.transparent,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
timeSeriesData.isEmpty
? Container(
child: Center(
child: Texts(TranslationBase.of(context).noDataAvailable),
),
)
: Column(children: [
for (var monthly in yearlyGroup)
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Container(
width: double.maxFinite,
padding: EdgeInsets.only(top: 10, bottom: 10, left: 5, right: 5),
decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(5)),
child: Texts(monthly[0])),
Table(
columnWidths: {
0: FlexColumnWidth(1.8),
2: FlexColumnWidth(1.8),
},
children: fullData(context, monthly[1]),
)
])
]),
SizedBox(height: 80)
],
),
)
],
),
); );
} }
@ -98,10 +100,10 @@ class BloodYearPage extends StatelessWidget {
tableRow.add( tableRow.add(
TableRow( TableRow(
children: [ children: [
Utils.tableColumnValue(DateUtil.getDayMonthYearDateFormatted(diabtec.dateChart), isCapitable: false), Utils.tableColumnValue(DateUtil.getDayMonthYearDateFormatted(diabtec.dateChart), isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue(diabtec.dateChart.hour.toString() + ':' + diabtec.dateChart.minute.toString(), isCapitable: false), Utils.tableColumnValue(diabtec.dateChart.hour.toString() + ':' + diabtec.dateChart.minute.toString(), isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue(diabtec.measuredDesc, isCapitable: false), Utils.tableColumnValue(diabtec.measuredDesc, isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue(diabtec.resultValue.toString(), isCapitable: false), Utils.tableColumnValue(diabtec.resultValue.toString(), isCapitable: false, mProjectViewModel: projectViewModel),
], ],
), ),
); );

@ -1,11 +1,10 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/blood_sugar_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/blood_sugar_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/TabBarWidget.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_send_email_dialog.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/confirm_send_email_dialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@ -13,10 +12,10 @@ import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'AddBloodSugarPage.dart'; import 'AddBloodSugarPage.dart';
import 'BloodMonthly.dart'; import 'BloodMonthly.dart';
import 'BloodYeaPage.dart'; import 'BloodYeaPage.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'blood_sugar_weekly_page.dart'; import 'blood_sugar_weekly_page.dart';
class BloodSugarHomePage extends StatefulWidget { class BloodSugarHomePage extends StatefulWidget {
@ -51,98 +50,113 @@ class _BloodSugarHomePageState extends State<BloodSugarHomePage> with SingleTick
baseViewModel: model, baseViewModel: model,
appBarTitle: TranslationBase.of(context).bloodSugar, appBarTitle: TranslationBase.of(context).bloodSugar,
// baseViewModel: model, // baseViewModel: model,
body: Scaffold( body: Column(
extendBodyBehindAppBar: true, children: <Widget>[
appBar: TabBarWidget( TabBar(
tabController: _tabController, controller: _tabController,
), indicatorWeight: 3.0,
body: Column( indicatorSize: TabBarIndicatorSize.tab,
children: <Widget>[ labelColor: Color(0xff2B353E),
Expanded( unselectedLabelColor: Color(0xff575757),
child: TabBarView( labelPadding: EdgeInsets.only(top: 15, bottom: 13, left: 20, right: 20),
physics: BouncingScrollPhysics(), labelStyle: TextStyle(
controller: _tabController, fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins',
children: <Widget>[ fontSize: 16,
BloodSugarWeeklyPage( fontWeight: FontWeight.w600,
timeSeriesData: model.bloodWeekTimeSeriesData, letterSpacing: -0.48,
diabtecPatientResult: model.weekDiabtecPatientResult,
bloodSugarViewMode: model,
),
BloodMonthlyPage(
timeSeriesData: model.monthTimeSeriesData,
diabtecPatientResult: model.monthDiabtecPatientResult,
bloodSugarViewMode: model,
),
BloodYearPage(
timeSeriesData: model.yearTimeSeriesData,
diabtecPatientResult: model.yearDiabtecPatientResult,
bloodSugarViewMode: model,
)
],
),
)
],
),
floatingActionButton: Stack(
children: [
Positioned(
bottom: 60,
right: projectViewModel.isArabic ? MediaQuery.of(context).size.width * .85 : 0,
child: InkWell(
onTap: () {
Navigator.push(
context,
FadePage(
page: AddBloodSugarPage(
bloodSugarViewMode: model,
)));
},
child: Container(
width: 50,
height: 50,
decoration: BoxDecoration(shape: BoxShape.circle, color: Theme.of(context).primaryColor),
child: Center(
child: Icon(
Icons.add,
color: Colors.white,
),
)),
),
), ),
], unselectedLabelStyle: TextStyle(
), fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins',
bottomSheet: Container( fontSize: 16,
color: Theme.of(context).scaffoldBackgroundColor, fontWeight: FontWeight.w600,
child: Padding( letterSpacing: -0.48,
padding: const EdgeInsets.all(12.0), ),
child: DefaultButton( tabs: [Text(TranslationBase.of(context).weekly), Text(TranslationBase.of(context).monthlyT), Text(TranslationBase.of(context).yearly)],
TranslationBase.of(context).sendEmail, ),
() { Expanded(
showDialog( child: TabBarView(
context: context, physics: BouncingScrollPhysics(),
child: ConfirmSendEmailDialog( controller: _tabController,
email: model.user.emailAddress, children: <Widget>[
onTapSendEmail: () async { BloodSugarWeeklyPage(
GifLoaderDialogUtils.showMyDialog(context); timeSeriesData: model.bloodWeekTimeSeriesData,
model.sendReportByEmail().then((value) { diabtecPatientResult: model.weekDiabtecPatientResult,
GifLoaderDialogUtils.hideDialog(context); bloodSugarViewMode: model,
if (model.state == ViewState.ErrorLocal) { ),
AppToast.showErrorToast(message: model.error); BloodMonthlyPage(
} else { timeSeriesData: model.monthTimeSeriesData,
AppToast.showSuccessToast( diabtecPatientResult: model.monthDiabtecPatientResult,
message: TranslationBase.of(context).emailSentSuccessfully, bloodSugarViewMode: model,
); ),
} BloodYearPage(
}).catchError((e) { timeSeriesData: model.yearTimeSeriesData,
GifLoaderDialogUtils.hideDialog(context); diabtecPatientResult: model.yearDiabtecPatientResult,
AppToast.showErrorToast(message: model.error); bloodSugarViewMode: model,
}); )
}, ],
), ),
); )
],
),
floatingActionButton: Stack(
children: [
Positioned(
bottom: 60,
right: projectViewModel.isArabic ? MediaQuery.of(context).size.width * .85 : 0,
child: InkWell(
onTap: () {
Navigator.push(
context,
FadePage(
page: AddBloodSugarPage(
bloodSugarViewMode: model,
)));
}, },
child: Container(
width: 50,
height: 50,
decoration: BoxDecoration(shape: BoxShape.circle, color: Theme.of(context).primaryColor),
child: Center(
child: Icon(
Icons.add,
color: Colors.white,
),
)),
), ),
), ),
],
),
bottomSheet: Container(
color: Theme.of(context).scaffoldBackgroundColor,
child: Padding(
padding: const EdgeInsets.all(12.0),
child: DefaultButton(
TranslationBase.of(context).sendEmail,
() {
showDialog(
context: context,
child: ConfirmSendEmailDialog(
email: model.user.emailAddress,
onTapSendEmail: () async {
GifLoaderDialogUtils.showMyDialog(context);
model.sendReportByEmail().then((value) {
GifLoaderDialogUtils.hideDialog(context);
if (model.state == ViewState.ErrorLocal) {
AppToast.showErrorToast(message: model.error);
} else {
AppToast.showSuccessToast(
message: TranslationBase.of(context).emailSentSuccessfully,
);
}
}).catchError((e) {
GifLoaderDialogUtils.hideDialog(context);
AppToast.showErrorToast(message: model.error);
});
},
),
);
},
),
), ),
), ),
), ),

@ -1,6 +1,7 @@
import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/model/my_trakers/blood_sugar/DiabtecPatientResult.dart'; import 'package:diplomaticquarterapp/core/model/my_trakers/blood_sugar/DiabtecPatientResult.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/blood_sugar_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/blood_sugar_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart';
@ -11,6 +12,7 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'AddBloodSugarPage.dart'; import 'AddBloodSugarPage.dart';
@ -18,11 +20,13 @@ class BloodSugarWeeklyPage extends StatelessWidget {
final List<DiabtecPatientResult> diabtecPatientResult; final List<DiabtecPatientResult> diabtecPatientResult;
final BloodSugarViewMode bloodSugarViewMode; final BloodSugarViewMode bloodSugarViewMode;
final List<TimeSeriesSales2> timeSeriesData; final List<TimeSeriesSales2> timeSeriesData;
ProjectViewModel projectViewModel;
BloodSugarWeeklyPage({Key key, this.diabtecPatientResult, this.bloodSugarViewMode, this.timeSeriesData}) : super(key: key); BloodSugarWeeklyPage({Key key, this.diabtecPatientResult, this.bloodSugarViewMode, this.timeSeriesData}) : super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (projectViewModel == null) projectViewModel = Provider.of(context);
return AppScaffold( return AppScaffold(
body: ListView( body: ListView(
children: [ children: [
@ -41,7 +45,7 @@ class BloodSugarWeeklyPage extends StatelessWidget {
), ),
Padding( Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Texts(TranslationBase.of(AppGlobal.context).details), child: Texts(TranslationBase.of(context).details),
), ),
Container( Container(
padding: EdgeInsets.all(10), padding: EdgeInsets.all(10),
@ -91,10 +95,10 @@ class BloodSugarWeeklyPage extends StatelessWidget {
tableRow.add( tableRow.add(
TableRow( TableRow(
children: [ children: [
Utils.tableColumnValue(DateUtil.getDayMonthYearDateFormatted(diabtec.dateChart), isCapitable: false), Utils.tableColumnValue(DateUtil.getDayMonthYearDateFormatted(diabtec.dateChart), isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue(diabtec.dateChart.hour.toString() + ':' + diabtec.dateChart.minute.toString(), isCapitable: false), Utils.tableColumnValue(diabtec.dateChart.hour.toString() + ':' + diabtec.dateChart.minute.toString(), isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue(diabtec.measuredDesc, isCapitable: false), Utils.tableColumnValue(diabtec.measuredDesc, isCapitable: false, mProjectViewModel: projectViewModel),
Utils.tableColumnValue(diabtec.resultValue.toString(), isCapitable: false), Utils.tableColumnValue(diabtec.resultValue.toString(), isCapitable: false, mProjectViewModel: projectViewModel),
Column(crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ Column(crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [
SizedBox(height: 12), SizedBox(height: 12),
Container( Container(

@ -209,8 +209,8 @@ class PrescriptionDetailsPage extends StatelessWidget {
pageBuilder: (context, animation1, animation2) {}); pageBuilder: (context, animation1, animation2) {});
}, },
iconData: Icons.notifications_active, iconData: Icons.notifications_active,
color: Color(0xffEAEAEA), color: Color(0xffD02127),
textColor: Color(0xff2B353E), //textColor: Color(0xff2B353E),
), ),
), ),
], ],

@ -114,6 +114,7 @@ class _ConfirmSendEmailDialogState extends State<ConfirmSendEmailDialog> {
Navigator.pop(context); Navigator.pop(context);
widget.onTapSendEmail(); widget.onTapSendEmail();
}, },
color: Color(0xff359846),
), ),
), ),
], ],

Loading…
Cancel
Save