fix issues#26 & 27 & 28

merge-update-with-lab-changes
Mohammad Aljmma 5 years ago
parent ed7b9d609f
commit 770d28033d

@ -840,4 +840,112 @@ const Map localizedValues = {
"Average": {"en": "Average", "ar": "المعدل"}, "Average": {"en": "Average", "ar": "المعدل"},
"DailyDoses": {"en": "Daily Doses", "ar": "جرعات يومية"}, "DailyDoses": {"en": "Daily Doses", "ar": "جرعات يومية"},
"Period": {"en": "Period", "ar": "الفترة"}, "Period": {"en": "Period", "ar": "الفترة"},
"cm": {
"en": "CM",
"ar": "سم"
},
"kg": {
"en": "kg",
"ar": "كجم"
},
"mass": {
"en": "Mass",
"ar": "كتلة"
},
"temp-c": {
"en": "°C",
"ar": "°س"
},
"bpm": {
"en": "bpm",
"ar": "نبضة"
},
"respiration-signs": {
"en": "Respiration",
"ar": "تنفس"
},
"sys-dias": {
"en": "SBP/DBP",
"ar": "إنقباض/إنبساط"
},
"body": {
"en": "Body \n Mass",
"ar": "كتلة\nالجسم"
},
"feedback": {
"en": "Feedback",
"ar": "رأيك يهمنا"
},
"send": {
"en": "Send",
"ar": "أرسل"
},
"status": {
"en": "Status",
"ar": "الحالة"
},
"like-to-hear": {
"en": "We would love to hear the feedback, concerns on healthcare services and eServices experience. Please use the below form",
"ar": "يسعدنا سماع ملاحظاتك حول خدمات الرعاية الصحية والخدمات الإلكترونية. يرجى تعبئة الحقول المطلوبة"
},
"subject": {
"en": "Subject",
"ar": "الموضوع"
},
"message": {
"en": "Message",
"ar": "رسالة"
},
"empty-subject": {
"en": "Please enter the subject",
"ar": "يرجى ادخال الموضوع"
},
"empty-message": {
"en": "Please enter message",
"ar": "يرجى ادخال الموضوع"
},
"select-attachment": {
"en": "Select Attachment",
"ar": "إختر المرفق"
},
"complain-appo": {
"en": "Complaint for appointment",
"ar": "شكوى على موعد"
},
"complain-without-appo": {
"en": "Complaint without appointment",
"ar": "شكوى بدون موعد"
},
"question": {
"en": "Question",
"ar": "سؤال"
},
"message-type": {
"en": "Message Type",
"ar": "نوع الرسالة"
},
"compliment": {
"en": "compliment",
"ar": "ثناء"
},
"suggestion": {
"en": "Suggestion",
"ar": "إقتراح"
},
"your-feedback": {
"en": "Your feedback was sent",
"ar": "إقتراح"
},
"select-part": {
"en": "Please select the part that complain about",
"ar": "يرجى تحديد الجزء الذي تشكو منه"
},
"number": {
"en": "Number",
"ar": "الرقم"
},
"not-classified": {
"en": "Not classified",
"ar": "غير محدد"
},
}; };

@ -3,6 +3,8 @@ import 'package:diplomaticquarterapp/core/model/feedback/COC_items.dart';
import 'package:diplomaticquarterapp/core/service/feedback/feedback_service.dart'; import 'package:diplomaticquarterapp/core/service/feedback/feedback_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:diplomaticquarterapp/pages/feedback/appointment_history.dart'; import 'package:diplomaticquarterapp/pages/feedback/appointment_history.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:flutter/cupertino.dart';
import '../../../locator.dart'; import '../../../locator.dart';
@ -22,7 +24,31 @@ class FeedbackViewModel extends BaseViewModel {
MessageType messageType = MessageType.NON; MessageType messageType = MessageType.NON;
MessageType messageTypeDialog = MessageType.NON; MessageType messageTypeDialog = MessageType.NON;
String selected = "not selected";
String getSelected(BuildContext context) {
switch (messageType) {
case MessageType.ComplaintOnAnAppointment:
return TranslationBase.of(context).complainAppo;
break;
case MessageType.ComplaintWithoutAppointment:
return TranslationBase.of(context).complainWithoutAppo;
break;
case MessageType.Question:
return TranslationBase.of(context).question;
break;
case MessageType.Compliment:
return TranslationBase.of(context).compliment;
break;
case MessageType.Suggestion:
return TranslationBase.of(context).suggestion;
break;
case MessageType.NON:
return TranslationBase.of(context).notClassified;
break;
}
return TranslationBase.of(context).notClassified;
}
setMessageDialogType(MessageType messageType) { setMessageDialogType(MessageType messageType) {
messageTypeDialog = messageType; messageTypeDialog = messageType;
@ -33,19 +59,14 @@ class FeedbackViewModel extends BaseViewModel {
this.messageType = messageType; this.messageType = messageType;
switch (messageType) { switch (messageType) {
case MessageType.ComplaintOnAnAppointment: case MessageType.ComplaintOnAnAppointment:
selected = "Complaint on an appointment";
break; break;
case MessageType.ComplaintWithoutAppointment: case MessageType.ComplaintWithoutAppointment:
selected = "Complaint without appointment";
break; break;
case MessageType.Question: case MessageType.Question:
selected = "Question";
break; break;
case MessageType.Compliment: case MessageType.Compliment:
selected = "Compliment";
break; break;
case MessageType.Suggestion: case MessageType.Suggestion:
selected = "Suggestion";
break; break;
case MessageType.NON: case MessageType.NON:
break; break;

@ -1,6 +1,7 @@
import 'dart:ui'; import 'dart:ui';
import 'package:diplomaticquarterapp/pages/feedback/send_feedback_page.dart'; import 'package:diplomaticquarterapp/pages/feedback/send_feedback_page.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.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/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@ -35,7 +36,7 @@ class _FeedbackHomePageState extends State<FeedbackHomePage>
isShowAppBar: true, isShowAppBar: true,
isBottomBar: false, isBottomBar: false,
isShowDecPage: false, isShowDecPage: false,
appBarTitle: 'Feedback', appBarTitle: TranslationBase.of(context).feedbackTitle,
body: Scaffold( body: Scaffold(
extendBodyBehindAppBar: true, extendBodyBehindAppBar: true,
appBar: PreferredSize( appBar: PreferredSize(
@ -82,13 +83,13 @@ class _FeedbackHomePageState extends State<FeedbackHomePage>
Container( Container(
width: MediaQuery.of(context).size.width * 0.30, width: MediaQuery.of(context).size.width * 0.30,
child: Center( child: Center(
child: Texts('Send'), child: Texts(TranslationBase.of(context).send),
), ),
), ),
Container( Container(
width: MediaQuery.of(context).size.width * 0.30, width: MediaQuery.of(context).size.width * 0.30,
child: Center( child: Center(
child: Texts('Status'), child: Texts(TranslationBase.of(context).status),
), ),
), ),
], ],

@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/core/viewModels/feedback/feedback_view_mode
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.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/widgets/avatar/large_avatar.dart'; import 'package:diplomaticquarterapp/widgets/avatar/large_avatar.dart';
import 'package:diplomaticquarterapp/widgets/bottom_options/BottomSheet.dart'; import 'package:diplomaticquarterapp/widgets/bottom_options/BottomSheet.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
@ -52,8 +53,7 @@ class _SendFeedbackPageState extends State<SendFeedbackPage> {
Container( Container(
margin: EdgeInsets.only(left: 20, right: 20, top: 8), margin: EdgeInsets.only(left: 20, right: 20, top: 8),
child: Texts( child: Texts(
'We\'d love to hear your feedback about the health care services and online services. Please fill in the required fields', TranslationBase.of(context).likeToHear,
//يسعدنا سماع ملاحظاتك حول خدمات الرعاية الصحية والخدمات الإلكترونية. يرجى تعبئة الحقول المطلوبة
textAlign: TextAlign.center, textAlign: TextAlign.center,
variant: 'body2Link', variant: 'body2Link',
), ),
@ -75,11 +75,12 @@ class _SendFeedbackPageState extends State<SendFeedbackPage> {
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[ children: <Widget>[
Container( Container(
child: Texts( child: Texts(
model.selected, model.getSelected(context),
variant: 'bodyText', variant: 'bodyText',
), ),
margin: EdgeInsets.only(left: 10), margin: EdgeInsets.only(left: 10,right: 10),
), ),
Icon( Icon(
Icons.arrow_drop_down, Icons.arrow_drop_down,
@ -278,14 +279,14 @@ class _SendFeedbackPageState extends State<SendFeedbackPage> {
Container( Container(
margin: EdgeInsets.only(left: 10, right: 10, top: 15), margin: EdgeInsets.only(left: 10, right: 10, top: 15),
child: TextFields( child: TextFields(
hintText: 'Title', hintText: TranslationBase.of(context).subject,
controller: titleController, controller: titleController,
fontSize: 13.5, fontSize: 13.5,
hintColor: Colors.black, hintColor: Colors.black,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
validator: (value) { validator: (value) {
if (value == null) if (value == null)
return "please Enter title"; return TranslationBase.of(context).emptySubject;
else else
return null; return null;
}, },
@ -294,7 +295,7 @@ class _SendFeedbackPageState extends State<SendFeedbackPage> {
Container( Container(
margin: EdgeInsets.only(left: 10, right: 10, top: 15), margin: EdgeInsets.only(left: 10, right: 10, top: 15),
child: TextFields( child: TextFields(
hintText: 'message', hintText: TranslationBase.of(context).message,
fontSize: 13.5, fontSize: 13.5,
hintColor: Colors.black, hintColor: Colors.black,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
@ -303,7 +304,7 @@ class _SendFeedbackPageState extends State<SendFeedbackPage> {
controller: messageController, controller: messageController,
validator: (value) { validator: (value) {
if (value == null) if (value == null)
return "please Enter message"; return TranslationBase.of(context).emptyMessage;
else else
return null; return null;
}), }),
@ -332,7 +333,7 @@ class _SendFeedbackPageState extends State<SendFeedbackPage> {
children: <Widget>[ children: <Widget>[
Icon(Icons.attach_file), Icon(Icons.attach_file),
Texts( Texts(
'selected attachment', TranslationBase.of(context).selectAttachment,
variant: 'bodyText', variant: 'bodyText',
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
@ -391,7 +392,7 @@ class _SendFeedbackPageState extends State<SendFeedbackPage> {
height: MediaQuery.of(context).size.height * 0.1, height: MediaQuery.of(context).size.height * 0.1,
width: MediaQuery.of(context).size.width * 0.8, width: MediaQuery.of(context).size.width * 0.8,
child: Button( child: Button(
label: 'Send', label: TranslationBase.of(context).send,
loading: model.state == ViewState.BusyLocal, loading: model.state == ViewState.BusyLocal,
onTap: () { onTap: () {
final form = formKey.currentState; final form = formKey.currentState;
@ -415,13 +416,13 @@ class _SendFeedbackPageState extends State<SendFeedbackPage> {
}); });
model.setMessageType(MessageType.NON); model.setMessageType(MessageType.NON);
AppToast.showSuccessToast( AppToast.showSuccessToast(
message: "Your feedback was send"); message: TranslationBase.of(context).yourFeedback);
} else { } else {
AppToast.showErrorToast(message: model.error); AppToast.showErrorToast(message: model.error);
} }
}); });
else { else {
AppToast.showErrorToast(message: "Please select COC"); AppToast.showErrorToast(message: TranslationBase.of(context).selectPart);
} }
}, },
), ),
@ -489,7 +490,7 @@ class FeedbackTypeDialogState extends State<FeedbackTypeDialog> {
return BaseView<FeedbackViewModel>( return BaseView<FeedbackViewModel>(
builder: (_, model, widge) => SimpleDialog( builder: (_, model, widge) => SimpleDialog(
title: Text( title: Text(
"Message Type", TranslationBase.of(context).messageType,
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
children: <Widget>[ children: <Widget>[
@ -509,7 +510,7 @@ class FeedbackTypeDialogState extends State<FeedbackTypeDialog> {
onTap: () => model.setMessageDialogType( onTap: () => model.setMessageDialogType(
MessageType.ComplaintOnAnAppointment), MessageType.ComplaintOnAnAppointment),
child: ListTile( child: ListTile(
title: const Text('Complaint on an appointment'), title: Texts(TranslationBase.of(context).complainAppo),
leading: Radio( leading: Radio(
value: MessageType.ComplaintOnAnAppointment, value: MessageType.ComplaintOnAnAppointment,
groupValue: model.messageTypeDialog, groupValue: model.messageTypeDialog,
@ -533,7 +534,7 @@ class FeedbackTypeDialogState extends State<FeedbackTypeDialog> {
onTap: () => model.setMessageDialogType( onTap: () => model.setMessageDialogType(
MessageType.ComplaintWithoutAppointment), MessageType.ComplaintWithoutAppointment),
child: ListTile( child: ListTile(
title: const Text('Complaint without appointment'), title: Texts(TranslationBase.of(context).complainWithoutAppo),
leading: Radio( leading: Radio(
value: MessageType.ComplaintWithoutAppointment, value: MessageType.ComplaintWithoutAppointment,
groupValue: model.messageTypeDialog, groupValue: model.messageTypeDialog,
@ -557,7 +558,7 @@ class FeedbackTypeDialogState extends State<FeedbackTypeDialog> {
onTap: () => onTap: () =>
model.setMessageDialogType(MessageType.Question), model.setMessageDialogType(MessageType.Question),
child: ListTile( child: ListTile(
title: const Text('Question'), title: Texts(TranslationBase.of(context).question),
leading: Radio( leading: Radio(
value: MessageType.Question, value: MessageType.Question,
groupValue: model.messageTypeDialog, groupValue: model.messageTypeDialog,
@ -581,7 +582,7 @@ class FeedbackTypeDialogState extends State<FeedbackTypeDialog> {
onTap: () => onTap: () =>
model.setMessageDialogType(MessageType.Compliment), model.setMessageDialogType(MessageType.Compliment),
child: ListTile( child: ListTile(
title: const Text('compliment'), title: Texts(TranslationBase.of(context).compliment),
leading: Radio( leading: Radio(
value: MessageType.Compliment, value: MessageType.Compliment,
groupValue: model.messageTypeDialog, groupValue: model.messageTypeDialog,
@ -605,7 +606,7 @@ class FeedbackTypeDialogState extends State<FeedbackTypeDialog> {
onTap: () => onTap: () =>
model.setMessageDialogType(MessageType.Suggestion), model.setMessageDialogType(MessageType.Suggestion),
child: ListTile( child: ListTile(
title: const Text('Suggestion'), title: Texts(TranslationBase.of(context).suggestion),
leading: Radio( leading: Radio(
value: MessageType.Suggestion, value: MessageType.Suggestion,
groupValue: model.messageTypeDialog, groupValue: model.messageTypeDialog,
@ -638,11 +639,11 @@ class FeedbackTypeDialogState extends State<FeedbackTypeDialog> {
Navigator.pop(context); Navigator.pop(context);
}, },
child: Padding( child: Padding(
padding: const EdgeInsets.all(8.0), padding: EdgeInsets.all(8.0),
child: Container( child: Container(
child: Center( child: Center(
child: Texts( child: Texts(
'cancel', TranslationBase.of(context).cancel,
color: Colors.red, color: Colors.red,
), ),
), ),
@ -666,7 +667,7 @@ class FeedbackTypeDialogState extends State<FeedbackTypeDialog> {
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Center( child: Center(
child: Texts( child: Texts(
'ok', TranslationBase.of(context).ok,
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
)), )),
), ),

@ -1,6 +1,7 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/viewModels/feedback/feedback_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/feedback/feedback_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.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/others/app_scaffold_widget.dart';
@ -52,7 +53,7 @@ class _StatusFeedbackPageState extends State<StatusFeedbackPage> {
children: <Widget>[ children: <Widget>[
Texts('${model.cOCItemList[index].cOCTitle}'), Texts('${model.cOCItemList[index].cOCTitle}'),
Texts( Texts(
'Number :${model.cOCItemList[index].itemID}', TranslationBase.of(context).number + ' : ${model.cOCItemList[index].itemID}',
variant: 'overline', variant: 'overline',
), ),
], ],

@ -55,7 +55,7 @@ class VitalSignDetailsScreen extends StatelessWidget {
mode.vitalSignResModelList.length - 1] mode.vitalSignResModelList.length - 1]
.heightCm .heightCm
.toString(), .toString(),
unit: ' Cm', unit: TranslationBase.of(context).cm,
), ),
), ),
), ),
@ -73,7 +73,7 @@ class VitalSignDetailsScreen extends StatelessWidget {
child: VitalSignItem( child: VitalSignItem(
des: TranslationBase.of(context).weight, des: TranslationBase.of(context).weight,
icon: DQIcons.weight_scale, icon: DQIcons.weight_scale,
unit: ' Kg', unit: TranslationBase.of(context).kg,
lastVal: mode lastVal: mode
.vitalSignResModelList[ .vitalSignResModelList[
mode.vitalSignResModelList.length - 1] mode.vitalSignResModelList.length - 1]
@ -98,12 +98,12 @@ class VitalSignDetailsScreen extends StatelessWidget {
), ),
), ),
child: VitalSignItem( child: VitalSignItem(
des: TranslationBase.of(context).bodyMeasurements, des: TranslationBase.of(context).body,
icon: DQIcons.bmi, icon: DQIcons.bmi,
lastVal: mode lastVal: mode
.vitalSignResModelList[0].pulseBeatPerMinute .vitalSignResModelList[0].pulseBeatPerMinute
.toString(), .toString(),
unit: 'BMI', unit: TranslationBase.of(context).mass,
), ),
), ),
InkWell( InkWell(
@ -125,7 +125,7 @@ class VitalSignDetailsScreen extends StatelessWidget {
lastVal: mode lastVal: mode
.vitalSignResModelList[0].temperatureCelcius .vitalSignResModelList[0].temperatureCelcius
.toString(), .toString(),
unit: 'C', unit: TranslationBase.of(context).tempC,
), ),
), ),
), ),
@ -152,7 +152,7 @@ class VitalSignDetailsScreen extends StatelessWidget {
mode.vitalSignResModelList.length - 1] mode.vitalSignResModelList.length - 1]
.pulseBeatPerMinute .pulseBeatPerMinute
.toString(), .toString(),
unit: ' bpm', unit: TranslationBase.of(context).bpm,
), ),
), ),
InkWell( InkWell(
@ -175,7 +175,7 @@ class VitalSignDetailsScreen extends StatelessWidget {
mode.vitalSignResModelList.length - 1] mode.vitalSignResModelList.length - 1]
.respirationBeatPerMinute .respirationBeatPerMinute
.toString(), .toString(),
unit: ' bmp', unit: TranslationBase.of(context).respirationSigns,
), ),
), ),
], ],
@ -202,7 +202,7 @@ class VitalSignDetailsScreen extends StatelessWidget {
mode.vitalSignResModelList.length - 1] mode.vitalSignResModelList.length - 1]
.bloodPressure .bloodPressure
.toString(), .toString(),
unit: ' SBP/DBP', unit: TranslationBase.of(context).sysDias,
), ),
), ),
], ],

@ -794,6 +794,33 @@ class TranslationBase {
String get average => localizedValues['Average'][locale.languageCode]; String get average => localizedValues['Average'][locale.languageCode];
String get dailyDoses => localizedValues['DailyDoses'][locale.languageCode]; String get dailyDoses => localizedValues['DailyDoses'][locale.languageCode];
String get period => localizedValues['Period'][locale.languageCode]; String get period => localizedValues['Period'][locale.languageCode];
String get cm => localizedValues['cm'][locale.languageCode];
String get kg => localizedValues['kg'][locale.languageCode];
String get mass => localizedValues['mass'][locale.languageCode];
String get tempC => localizedValues['temp-c'][locale.languageCode];
String get bpm => localizedValues['bpm'][locale.languageCode];
String get respirationSigns => localizedValues['respiration-signs'][locale.languageCode];
String get sysDias => localizedValues['sys-dias'][locale.languageCode];
String get body => localizedValues['body'][locale.languageCode];
String get feedbackTitle => localizedValues['feedback'][locale.languageCode];
String get send => localizedValues['send'][locale.languageCode];
String get status => localizedValues['status'][locale.languageCode];
String get likeToHear => localizedValues['like-to-hear'][locale.languageCode];
String get subject => localizedValues['subject'][locale.languageCode];
String get message => localizedValues['message'][locale.languageCode];
String get emptySubject => localizedValues['empty-subject'][locale.languageCode];
String get emptyMessage => localizedValues['empty-message'][locale.languageCode];
String get selectAttachment => localizedValues['select-attachment'][locale.languageCode];
String get complainAppo => localizedValues['complain-appo'][locale.languageCode];
String get complainWithoutAppo => localizedValues['complain-without-appo'][locale.languageCode];
String get question => localizedValues['question'][locale.languageCode];
String get messageType => localizedValues['message-type'][locale.languageCode];
String get compliment => localizedValues['compliment'][locale.languageCode];
String get suggestion => localizedValues['suggestion'][locale.languageCode];
String get yourFeedback => localizedValues['your-feedback'][locale.languageCode];
String get selectPart => localizedValues['select-part'][locale.languageCode];
String get number => localizedValues['number'][locale.languageCode];
String get notClassified => localizedValues['not-classified'][locale.languageCode];
} }

Loading…
Cancel
Save