family file changes

merge-requests/34/merge
Sultan Khan 4 years ago
parent 6af7ac54ba
commit 621870eca1

@ -160,5 +160,11 @@ const Map<String, Map<String, String>> localizedValues = {
"sent-requests": {"en": "Sent Requests", "ar": "الطلبات المرسلة"}, "sent-requests": {"en": "Sent Requests", "ar": "الطلبات المرسلة"},
"recieved-requests": {"en": "Recieved Requests", "ar": "الطلبات المستلمة"}, "recieved-requests": {"en": "Recieved Requests", "ar": "الطلبات المستلمة"},
"manage-files": {"en": "Manage Family Files", "ar": "إدارة ملفات العائلة"}, "manage-files": {"en": "Manage Family Files", "ar": "إدارة ملفات العائلة"},
// "my-family": {"en": "MY FAMILY", "ar": "عائلتي"}, "request": {"en": "Request", "ar": "طلبات الاضافة"},
"member-name": {"en": "Member Name", "ar": "اسم العضو"},
"switch-login": {"en": "Switch User", "ar": "تغير المستخدم"},
"remove-member": {"en": "Remove", "ar": "حذف"},
"allow-view": {"en": "Allow", "ar": "قبول"},
"reject-view": {"en": "Reject", "ar": "رفض"},
"delete-view": {"en": "Delete", "ar": "حذف"},
}; };

@ -23,22 +23,25 @@ class BaseAppClient {
String url = BASE_URL + endPoint; String url = BASE_URL + endPoint;
try { try {
//Map profile = await sharedPref.getObj(DOCTOR_PROFILE); //Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
// String token = await sharedPref.getString(TOKEN); String token = await sharedPref.getString(TOKEN);
var user = await sharedPref.getObject(USER_PROFILE);
body['SetupID'] = SETUP_ID; body['SetupID'] = SETUP_ID;
body['VersionID'] = VERSION_ID; body['VersionID'] = VERSION_ID;
body['Channel'] = CHANNEL; body['Channel'] = CHANNEL;
body['LanguageID'] = LANGUAGE; body['LanguageID'] = LANGUAGE;
body['IPAdress'] = IP_ADDRESS; body['IPAdress'] = IP_ADDRESS;
body['generalid'] = GENERAL_ID; body['generalid'] = GENERAL_ID;
body['PatientOutSA'] = PATIENT_OUT_SA; // body['PatientOutSA'] = PATIENT_OUT_SA;
body['SessionID'] = SESSION_ID; body['SessionID'] = SESSION_ID;
body['isDentalAllowedBackend'] = IS_DENTAL_ALLOWED_BACKEND; body['isDentalAllowedBackend'] = IS_DENTAL_ALLOWED_BACKEND;
body['DeviceTypeID'] = DeviceTypeID; body['DeviceTypeID'] = DeviceTypeID;
body['PatientType'] = PATIENT_TYPE; body['PatientType'] = PATIENT_TYPE;
body['PatientTypeID'] = PATIENT_TYPE_ID; body['PatientTypeID'] = PATIENT_TYPE_ID;
body['TokenID'] = '@dm!n'; if (user != null) {
body['PatientID'] = 1231755; body['TokenID'] = token; //user['TokenID'];
body['PatientID'] = user['PatientID'];
body['PatientOutSA'] = user['OutSA'];
}
print("URL : $url"); print("URL : $url");
print("Body : ${json.encode(body)}"); print("Body : ${json.encode(body)}");
@ -67,7 +70,6 @@ class BaseAppClient {
statusCode); statusCode);
logout(); logout();
} }
} else if (parsed['MessageStatus'] == 1 || } else if (parsed['MessageStatus'] == 1 ||
parsed['SMSLoginRequired'] == true) { parsed['SMSLoginRequired'] == true) {
onSuccess(parsed, statusCode); onSuccess(parsed, statusCode);

@ -0,0 +1,347 @@
class GetAllSharedRecordsByStatusResponse {
Null date;
int languageID;
int serviceName;
Null time;
Null androidLink;
Null authenticationTokenID;
Null data;
bool dataw;
int dietType;
Null errorCode;
Null errorEndUserMessage;
Null errorEndUserMessageN;
Null errorMessage;
int errorType;
int foodCategory;
Null iOSLink;
bool isAuthenticated;
int mealOrderStatus;
int mealType;
int messageStatus;
int numberOfResultRecords;
Null patientBlodType;
Null successMsg;
Null successMsgN;
Null doctorInformationList;
Null getAllPendingRecordsList;
List<GetAllSharedRecordsByStatusList> getAllSharedRecordsByStatusList;
Null getResponseFileList;
bool isHMGPatient;
bool isLoginSuccessfully;
bool isNeedUpdateIdintificationNo;
bool kioskSendSMS;
Null list;
Null listAskHabibMobileLoginInfo;
Null listAskHabibPatientFile;
Null listMergeFiles;
Null listMobileLoginInfo;
Null listPatientCount;
Null logInTokenID;
Null mohemmPrivilegeList;
int pateintID;
Null patientBloodType;
Null patientERDriverFile;
Null patientERDriverFileList;
bool patientHasFile;
Null patientMergedIDs;
bool patientOutSA;
int patientShareRequestID;
int patientType;
int projectIDOut;
Null returnMessage;
bool sMSLoginRequired;
Null servicePrivilegeList;
Null sharePatientName;
Null verificationCode;
Null email;
Null errorList;
bool hasFile;
bool isActiveCode;
bool isMerged;
bool isNeedUserAgreement;
bool isSMSSent;
Null memberList;
Null message;
int statusCode;
GetAllSharedRecordsByStatusResponse(
{this.date,
this.languageID,
this.serviceName,
this.time,
this.androidLink,
this.authenticationTokenID,
this.data,
this.dataw,
this.dietType,
this.errorCode,
this.errorEndUserMessage,
this.errorEndUserMessageN,
this.errorMessage,
this.errorType,
this.foodCategory,
this.iOSLink,
this.isAuthenticated,
this.mealOrderStatus,
this.mealType,
this.messageStatus,
this.numberOfResultRecords,
this.patientBlodType,
this.successMsg,
this.successMsgN,
this.doctorInformationList,
this.getAllPendingRecordsList,
this.getAllSharedRecordsByStatusList,
this.getResponseFileList,
this.isHMGPatient,
this.isLoginSuccessfully,
this.isNeedUpdateIdintificationNo,
this.kioskSendSMS,
this.list,
this.listAskHabibMobileLoginInfo,
this.listAskHabibPatientFile,
this.listMergeFiles,
this.listMobileLoginInfo,
this.listPatientCount,
this.logInTokenID,
this.mohemmPrivilegeList,
this.pateintID,
this.patientBloodType,
this.patientERDriverFile,
this.patientERDriverFileList,
this.patientHasFile,
this.patientMergedIDs,
this.patientOutSA,
this.patientShareRequestID,
this.patientType,
this.projectIDOut,
this.returnMessage,
this.sMSLoginRequired,
this.servicePrivilegeList,
this.sharePatientName,
this.verificationCode,
this.email,
this.errorList,
this.hasFile,
this.isActiveCode,
this.isMerged,
this.isNeedUserAgreement,
this.isSMSSent,
this.memberList,
this.message,
this.statusCode});
GetAllSharedRecordsByStatusResponse.fromJson(Map<String, dynamic> json) {
date = json['Date'];
languageID = json['LanguageID'];
serviceName = json['ServiceName'];
time = json['Time'];
androidLink = json['AndroidLink'];
authenticationTokenID = json['AuthenticationTokenID'];
data = json['Data'];
dataw = json['Dataw'];
dietType = json['DietType'];
errorCode = json['ErrorCode'];
errorEndUserMessage = json['ErrorEndUserMessage'];
errorEndUserMessageN = json['ErrorEndUserMessageN'];
errorMessage = json['ErrorMessage'];
errorType = json['ErrorType'];
foodCategory = json['FoodCategory'];
iOSLink = json['IOSLink'];
isAuthenticated = json['IsAuthenticated'];
mealOrderStatus = json['MealOrderStatus'];
mealType = json['MealType'];
messageStatus = json['MessageStatus'];
numberOfResultRecords = json['NumberOfResultRecords'];
patientBlodType = json['PatientBlodType'];
successMsg = json['SuccessMsg'];
successMsgN = json['SuccessMsgN'];
doctorInformationList = json['DoctorInformation_List'];
getAllPendingRecordsList = json['GetAllPendingRecordsList'];
if (json['GetAllSharedRecordsByStatusList'] != null) {
getAllSharedRecordsByStatusList =
new List<GetAllSharedRecordsByStatusList>();
json['GetAllSharedRecordsByStatusList'].forEach((v) {
getAllSharedRecordsByStatusList
.add(new GetAllSharedRecordsByStatusList.fromJson(v));
});
}
getResponseFileList = json['GetResponseFileList'];
isHMGPatient = json['IsHMGPatient'];
isLoginSuccessfully = json['IsLoginSuccessfully'];
isNeedUpdateIdintificationNo = json['IsNeedUpdateIdintificationNo'];
kioskSendSMS = json['KioskSendSMS'];
list = json['List'];
listAskHabibMobileLoginInfo = json['List_AskHabibMobileLoginInfo'];
listAskHabibPatientFile = json['List_AskHabibPatientFile'];
listMergeFiles = json['List_MergeFiles'];
listMobileLoginInfo = json['List_MobileLoginInfo'];
listPatientCount = json['List_PatientCount'];
logInTokenID = json['LogInTokenID'];
mohemmPrivilegeList = json['MohemmPrivilege_List'];
pateintID = json['PateintID'];
patientBloodType = json['PatientBloodType'];
patientERDriverFile = json['PatientER_DriverFile'];
patientERDriverFileList = json['PatientER_DriverFileList'];
patientHasFile = json['PatientHasFile'];
patientMergedIDs = json['PatientMergedIDs'];
patientOutSA = json['PatientOutSA'];
patientShareRequestID = json['PatientShareRequestID'];
patientType = json['PatientType'];
projectIDOut = json['ProjectIDOut'];
returnMessage = json['ReturnMessage'];
sMSLoginRequired = json['SMSLoginRequired'];
servicePrivilegeList = json['ServicePrivilege_List'];
sharePatientName = json['SharePatientName'];
verificationCode = json['VerificationCode'];
email = json['email'];
errorList = json['errorList'];
hasFile = json['hasFile'];
isActiveCode = json['isActiveCode'];
isMerged = json['isMerged'];
isNeedUserAgreement = json['isNeedUserAgreement'];
isSMSSent = json['isSMSSent'];
memberList = json['memberList'];
message = json['message'];
statusCode = json['statusCode'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['Date'] = this.date;
data['LanguageID'] = this.languageID;
data['ServiceName'] = this.serviceName;
data['Time'] = this.time;
data['AndroidLink'] = this.androidLink;
data['AuthenticationTokenID'] = this.authenticationTokenID;
data['Data'] = this.data;
data['Dataw'] = this.dataw;
data['DietType'] = this.dietType;
data['ErrorCode'] = this.errorCode;
data['ErrorEndUserMessage'] = this.errorEndUserMessage;
data['ErrorEndUserMessageN'] = this.errorEndUserMessageN;
data['ErrorMessage'] = this.errorMessage;
data['ErrorType'] = this.errorType;
data['FoodCategory'] = this.foodCategory;
data['IOSLink'] = this.iOSLink;
data['IsAuthenticated'] = this.isAuthenticated;
data['MealOrderStatus'] = this.mealOrderStatus;
data['MealType'] = this.mealType;
data['MessageStatus'] = this.messageStatus;
data['NumberOfResultRecords'] = this.numberOfResultRecords;
data['PatientBlodType'] = this.patientBlodType;
data['SuccessMsg'] = this.successMsg;
data['SuccessMsgN'] = this.successMsgN;
data['DoctorInformation_List'] = this.doctorInformationList;
data['GetAllPendingRecordsList'] = this.getAllPendingRecordsList;
if (this.getAllSharedRecordsByStatusList != null) {
data['GetAllSharedRecordsByStatusList'] =
this.getAllSharedRecordsByStatusList.map((v) => v.toJson()).toList();
}
data['GetResponseFileList'] = this.getResponseFileList;
data['IsHMGPatient'] = this.isHMGPatient;
data['IsLoginSuccessfully'] = this.isLoginSuccessfully;
data['IsNeedUpdateIdintificationNo'] = this.isNeedUpdateIdintificationNo;
data['KioskSendSMS'] = this.kioskSendSMS;
data['List'] = this.list;
data['List_AskHabibMobileLoginInfo'] = this.listAskHabibMobileLoginInfo;
data['List_AskHabibPatientFile'] = this.listAskHabibPatientFile;
data['List_MergeFiles'] = this.listMergeFiles;
data['List_MobileLoginInfo'] = this.listMobileLoginInfo;
data['List_PatientCount'] = this.listPatientCount;
data['LogInTokenID'] = this.logInTokenID;
data['MohemmPrivilege_List'] = this.mohemmPrivilegeList;
data['PateintID'] = this.pateintID;
data['PatientBloodType'] = this.patientBloodType;
data['PatientER_DriverFile'] = this.patientERDriverFile;
data['PatientER_DriverFileList'] = this.patientERDriverFileList;
data['PatientHasFile'] = this.patientHasFile;
data['PatientMergedIDs'] = this.patientMergedIDs;
data['PatientOutSA'] = this.patientOutSA;
data['PatientShareRequestID'] = this.patientShareRequestID;
data['PatientType'] = this.patientType;
data['ProjectIDOut'] = this.projectIDOut;
data['ReturnMessage'] = this.returnMessage;
data['SMSLoginRequired'] = this.sMSLoginRequired;
data['ServicePrivilege_List'] = this.servicePrivilegeList;
data['SharePatientName'] = this.sharePatientName;
data['VerificationCode'] = this.verificationCode;
data['email'] = this.email;
data['errorList'] = this.errorList;
data['hasFile'] = this.hasFile;
data['isActiveCode'] = this.isActiveCode;
data['isMerged'] = this.isMerged;
data['isNeedUserAgreement'] = this.isNeedUserAgreement;
data['isSMSSent'] = this.isSMSSent;
data['memberList'] = this.memberList;
data['message'] = this.message;
data['statusCode'] = this.statusCode;
return data;
}
}
class GetAllSharedRecordsByStatusList {
int iD;
int patientID;
int responseID;
int regionID;
int status;
Null isActive;
String editedOn;
String createdOn;
String emaiLAddress;
String mobileNumber;
String patientIdenficationNumber;
String patientName;
String statusDescription;
GetAllSharedRecordsByStatusList(
{this.iD,
this.patientID,
this.responseID,
this.regionID,
this.status,
this.isActive,
this.editedOn,
this.createdOn,
this.emaiLAddress,
this.mobileNumber,
this.patientIdenficationNumber,
this.patientName,
this.statusDescription});
GetAllSharedRecordsByStatusList.fromJson(Map<String, dynamic> json) {
iD = json['ID'];
patientID = json['PatientID'];
responseID = json['ResponseID'];
regionID = json['RegionID'];
status = json['Status'];
isActive = json['IsActive'];
editedOn = json['EditedOn'];
createdOn = json['CreatedOn'];
emaiLAddress = json['EmaiLAddress'];
mobileNumber = json['MobileNumber'];
patientIdenficationNumber = json['PatientIdenficationNumber'];
patientName = json['PatientName'];
statusDescription = json['StatusDescription'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ID'] = this.iD;
data['PatientID'] = this.patientID;
data['ResponseID'] = this.responseID;
data['RegionID'] = this.regionID;
data['Status'] = this.status;
data['IsActive'] = this.isActive;
data['EditedOn'] = this.editedOn;
data['CreatedOn'] = this.createdOn;
data['EmaiLAddress'] = this.emaiLAddress;
data['MobileNumber'] = this.mobileNumber;
data['PatientIdenficationNumber'] = this.patientIdenficationNumber;
data['PatientName'] = this.patientName;
data['StatusDescription'] = this.statusDescription;
return data;
}
}

@ -0,0 +1,68 @@
class GetAllSharedRecordsByStatusReq {
double versionID;
int channel;
int languageID;
String iPAdress;
String generalid;
int patientOutSA;
String sessionID;
bool isDentalAllowedBackend;
int deviceTypeID;
int patientID;
String tokenID;
int patientTypeID;
int patientType;
int status;
GetAllSharedRecordsByStatusReq(
{this.versionID,
this.channel,
this.languageID,
this.iPAdress,
this.generalid,
this.patientOutSA,
this.sessionID,
this.isDentalAllowedBackend,
this.deviceTypeID,
this.patientID,
this.tokenID,
this.patientTypeID,
this.patientType,
this.status});
GetAllSharedRecordsByStatusReq.fromJson(Map<String, dynamic> json) {
versionID = json['VersionID'];
channel = json['Channel'];
languageID = json['LanguageID'];
iPAdress = json['IPAdress'];
generalid = json['generalid'];
patientOutSA = json['PatientOutSA'];
sessionID = json['SessionID'];
isDentalAllowedBackend = json['isDentalAllowedBackend'];
deviceTypeID = json['DeviceTypeID'];
patientID = json['PatientID'];
tokenID = json['TokenID'];
patientTypeID = json['PatientTypeID'];
patientType = json['PatientType'];
status = json['Status'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['VersionID'] = this.versionID;
data['Channel'] = this.channel;
data['LanguageID'] = this.languageID;
data['IPAdress'] = this.iPAdress;
data['generalid'] = this.generalid;
data['PatientOutSA'] = this.patientOutSA;
data['SessionID'] = this.sessionID;
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
data['DeviceTypeID'] = this.deviceTypeID;
data['PatientID'] = this.patientID;
data['TokenID'] = this.tokenID;
data['PatientTypeID'] = this.patientTypeID;
data['PatientType'] = this.patientType;
data['Status'] = this.status;
return data;
}
}

@ -1,15 +1,10 @@
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/service/client/base_app_client.dart'; import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart';
import 'package:diplomaticquarterapp/models/Authentication/select_device_imei_res.dart'; import 'package:diplomaticquarterapp/services/family_files/family_files_provider.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/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/routes.dart';
class MyFamily extends StatefulWidget { class MyFamily extends StatefulWidget {
@override @override
@ -18,6 +13,7 @@ class MyFamily extends StatefulWidget {
class _MyFamily extends State<MyFamily> { class _MyFamily extends State<MyFamily> {
bool isLoading = true; bool isLoading = true;
var familyFileProvider = FamilyFilesProvider();
@override @override
void initState() { void initState() {
isLoading = true; isLoading = true;
@ -29,23 +25,101 @@ class _MyFamily extends State<MyFamily> {
return AppScaffold( return AppScaffold(
appBarTitle: TranslationBase.of(context).myFamilyFiles, appBarTitle: TranslationBase.of(context).myFamilyFiles,
isShowAppBar: true, isShowAppBar: true,
body: SingleChildScrollView( body: DefaultTabController(
padding: EdgeInsets.all(20), length: 2,
child: Stack( child: SingleChildScrollView(
padding: EdgeInsets.all(20),
child: Container(
height: SizeConfig.realScreenHeight * .9,
width: SizeConfig.realScreenWidth,
child: Stack(
children: <Widget>[
TabBar(
indicatorColor: Colors.red,
tabs: [
Padding(
padding: EdgeInsets.all(6),
child:
Text(TranslationBase.of(context).family)),
Padding(
padding: EdgeInsets.all(6),
child:
Text(TranslationBase.of(context).request)),
],
),
TabBarView(
children: [myFamilyDetails(), myFamilyRequest()],
)
],
)))));
}
Widget myFamilyDetails() {
return Padding(
padding: EdgeInsets.only(top: 40),
child: Column(
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[ children: <Widget>[
TabBar( Expanded(
tabs: [ flex: 3, child: Text(TranslationBase.of(context).request)),
Tab(icon: Icon(Icons.directions_car)), Expanded(
Tab(icon: Icon(Icons.directions_transit)), flex: 2,
], child: Text(
), TranslationBase.of(context).switchUser,
TabBarView( )),
children: [ Expanded(
Icon(Icons.directions_car), flex: 1,
Icon(Icons.directions_transit), child: Text(
], TranslationBase.of(context).deleteView,
) )),
], ],
))); ),
FutureBuilder(
future: getFamilyFiles(), // async work
builder: (BuildContext context,
AsyncSnapshot<GetAllSharedRecordsByStatusResponse> snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.waiting:
return Padding(
padding: EdgeInsets.all(10),
child: Text('Loading....'));
default:
if (snapshot.hasError)
return Padding(
padding: EdgeInsets.all(10),
child: Text(snapshot.error));
else
return Column(
children: snapshot
.data.getAllSharedRecordsByStatusList
.map<Widget>((result) {
return Padding(
padding: EdgeInsets.all(10),
child: Row(
children: <Widget>[
Expanded(
flex: 3, child: Text(result.patientName)),
Expanded(flex: 2, child: Icon(Icons.group)),
Expanded(flex: 1, child: Icon(Icons.delete)),
],
));
}).toList());
}
},
)
],
));
}
Widget myFamilyRequest() {
return Column(
children: <Widget>[],
);
}
Future<GetAllSharedRecordsByStatusResponse> getFamilyFiles() {
return familyFileProvider.getSharedRecordByStatus();
} }
} }

@ -0,0 +1,39 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/service/client/base_app_client.dart';
import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart';
import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordsByStatusReq.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:flutter/cupertino.dart';
// SharedPreferences sharedPref = new SharedPreferences();
enum APP_STATUS { LOADING, UNAUTHENTICATED, AUTHENTICATED }
AppSharedPreferences sharedPref = new AppSharedPreferences();
const String GET_SHARED_RECORD_BY_STATUS =
'/Authentication.svc/REST/GetAllSharedRecordsByStatus';
class FamilyFilesProvider with ChangeNotifier {
bool isLogin = false;
bool isLoading = true;
dynamic authenticatedUser;
Future<GetAllSharedRecordsByStatusResponse> getSharedRecordByStatus() async {
try {
dynamic localRes;
var request = GetAllSharedRecordsByStatusReq();
request.status = 0;
await new BaseAppClient().post(GET_SHARED_RECORD_BY_STATUS,
onSuccess: (dynamic response, int statusCode) {
localRes = response;
}, onFailure: (String error, int statusCode) {
throw error;
}, body: request.toJson());
return Future.value(
GetAllSharedRecordsByStatusResponse.fromJson(localRes));
} catch (error) {
print(error);
throw error;
}
}
}

@ -194,6 +194,14 @@ class TranslationBase {
String get family => localizedValues['family'][locale.languageCode]; String get family => localizedValues['family'][locale.languageCode];
String get myFamilyFiles => String get myFamilyFiles =>
localizedValues['family-title'][locale.languageCode]; localizedValues['family-title'][locale.languageCode];
String get request => localizedValues['request'][locale.languageCode];
String get memberName => localizedValues['member-name'][locale.languageCode];
String get switchUser => localizedValues['switch-login'][locale.languageCode];
String get removeMember =>
localizedValues['remove-membe'][locale.languageCode];
String get allowView => localizedValues['allow-view'][locale.languageCode];
String get rejectView => localizedValues['reject-view'][locale.languageCode];
String get deleteView => localizedValues['delete-view'][locale.languageCode];
} }
class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> { class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> {

@ -1,7 +1,9 @@
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/service/client/base_app_client.dart'; import 'package:diplomaticquarterapp/core/service/client/base_app_client.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart'; import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart';
import 'package:diplomaticquarterapp/routes.dart'; import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/services/family_files/family_files_provider.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/data_display/list/flexible_container.dart'; import 'package:diplomaticquarterapp/widgets/data_display/list/flexible_container.dart';
@ -25,6 +27,7 @@ class _AppDrawerState extends State<AppDrawer> {
} }
var sharedPref = new AppSharedPreferences(); var sharedPref = new AppSharedPreferences();
var familyFileProvider = FamilyFilesProvider();
AuthenticatedUser user; AuthenticatedUser user;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -54,52 +57,55 @@ class _AppDrawerState extends State<AppDrawer> {
user != null user != null
? Padding( ? Padding(
padding: EdgeInsets.all(15), padding: EdgeInsets.all(15),
child: Column(children: <Widget>[ child: Column(
Row( mainAxisAlignment:
MainAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Padding( Row(
padding: children: <Widget>[
EdgeInsets.only(right: 5), Padding(
child: Icon( padding: EdgeInsets.only(
Icons.account_circle, right: 5),
child: Icon(
Icons.account_circle,
color: Colors.red,
)),
AppText(
user.firstName +
' ' +
user.lastName,
color: Colors.red, color: Colors.red,
)), )
AppText( ],
user.firstName + ),
' ' + Row(children: <Widget>[
user.lastName, Padding(
color: Colors.red, padding: EdgeInsets.only(
) left: 30, top: 5),
], child: Column(
), children: <Widget>[
Row(children: <Widget>[ AppText(
Padding( 'File No:' +
padding: EdgeInsets.only( user.patientID
left: 30, top: 5), .toString(),
child: Column( color: Colors.red,
children: <Widget>[ fontSize: SizeConfig
AppText( .textMultiplier *
'File No:' + 1.5,
user.patientID ),
.toString(), AppText(
color: Colors.red, user.bloodGroup != null
fontSize: SizeConfig ? 'Blood Group: ' +
.textMultiplier * user.bloodGroup
1.5, : '',
), fontSize: SizeConfig
AppText( .textMultiplier *
user.bloodGroup != null 1.5,
? 'Blood Group: ' + ),
user.bloodGroup ],
: '', ))
fontSize: SizeConfig ])
.textMultiplier * ]))
1.5,
),
],
))
])
]))
: SizedBox(), : SizedBox(),
], ],
), ),
@ -107,7 +113,7 @@ class _AppDrawerState extends State<AppDrawer> {
), ),
), ),
Column( Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[ children: <Widget>[
InkWell( InkWell(
child: DrawerItem( child: DrawerItem(
@ -121,26 +127,15 @@ class _AppDrawerState extends State<AppDrawer> {
), ),
user != null user != null
? Column( ? Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[ children: <Widget>[
InkWell( InkWell(
child: Row( child: DrawerItem(
mainAxisAlignment: TranslationBase.of(context).family,
MainAxisAlignment.spaceBetween, Icons.group,
children: <Widget>[ textColor: Colors.red,
DrawerItem( iconColor: Colors.red,
TranslationBase.of(context).family, bottomLine: false,
Icons.group,
textColor: Colors.red,
iconColor: Colors.red,
),
Padding(
padding: EdgeInsets.only(
bottom: 10, right: 30),
child: Icon(
Icons.chevron_right,
color: Colors.red,
))
],
), ),
onTap: () { onTap: () {
Navigator.of(context).pushNamed( Navigator.of(context).pushNamed(
@ -148,6 +143,72 @@ class _AppDrawerState extends State<AppDrawer> {
); );
}, },
), ),
FutureBuilder(
future: getFamilyFiles(), // async work
builder: (BuildContext context,
AsyncSnapshot<
GetAllSharedRecordsByStatusResponse>
snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.waiting:
return Padding(
padding: EdgeInsets.all(10),
child: Text('Loading....'));
default:
if (snapshot.hasError)
return Padding(
padding: EdgeInsets.all(10),
child: Text(snapshot.error));
else
return Container(
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
// <--- left side
color: Colors.grey[200],
width: 1.0,
),
)),
child: Column(
mainAxisAlignment:
MainAxisAlignment.start,
mainAxisSize:
MainAxisSize.min,
children: snapshot.data
.getAllSharedRecordsByStatusList
.map<Widget>((result) {
return Padding(
padding:
EdgeInsets.only(
bottom: 5),
child: Row(
crossAxisAlignment:
CrossAxisAlignment
.start,
children: <Widget>[
Expanded(
child: Icon(Icons
.person),
),
Expanded(
flex: 7,
child: Column(
crossAxisAlignment:
CrossAxisAlignment
.start,
children: <
Widget>[
Text(result
.patientName),
Text('File No:' +
result.iD.toString()),
])),
],
));
}).toList()));
}
},
),
InkWell( InkWell(
child: DrawerItem( child: DrawerItem(
TranslationBase.of(context) TranslationBase.of(context)
@ -270,4 +331,8 @@ class _AppDrawerState extends State<AppDrawer> {
); );
} }
} }
Future<GetAllSharedRecordsByStatusResponse> getFamilyFiles() {
return familyFileProvider.getSharedRecordByStatus();
}
} }

@ -11,11 +11,12 @@ class DrawerItem extends StatefulWidget {
final IconData icon; final IconData icon;
final Color textColor; final Color textColor;
final Color iconColor; final Color iconColor;
final bool bottomLine;
DrawerItem(this.title, this.icon, DrawerItem(this.title, this.icon,
{this.textColor = Colors.black, {this.textColor = Colors.black,
this.iconColor = Colors.black87, this.iconColor = Colors.black87,
this.subTitle = ''}); this.subTitle = '',
this.bottomLine = true});
@override @override
_DrawerItemState createState() => _DrawerItemState(); _DrawerItemState createState() => _DrawerItemState();
@ -25,45 +26,48 @@ class _DrawerItemState extends State<DrawerItem> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
decoration: BoxDecoration( decoration: widget.bottomLine == true
border: Border( ? BoxDecoration(
bottom: BorderSide( border: Border(
// <--- left side bottom: BorderSide(
color: Colors.grey[200], // <--- left side
width: 1.0, color: Colors.grey[200],
), width: 1.0,
)),
margin: EdgeInsets.only(left: 10, right: 10, top: 5),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Padding(
padding: EdgeInsets.only(bottom: 30),
child: Icon(
widget.icon,
color: widget.iconColor,
size: SizeConfig.imageSizeMultiplier * 5,
)),
Padding(
padding: EdgeInsets.only(left: 5, right: 5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Texts(
widget.title,
color: widget.textColor,
fontSize: SizeConfig.textMultiplier * 2.3,
),
Texts(
widget.subTitle,
color: widget.textColor,
fontSize: SizeConfig.textMultiplier * 2.5,
), ),
], ))
), : BoxDecoration(),
) child: Padding(
], padding: EdgeInsets.all(10),
), child: Row(
); children: <Widget>[
Expanded(
flex: 1,
child: Icon(
widget.icon,
color: widget.iconColor,
size: SizeConfig.imageSizeMultiplier * 5,
)),
Expanded(
flex: 7,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Texts(
widget.title,
color: widget.textColor,
fontSize: SizeConfig.textMultiplier * 2.3,
),
widget.subTitle != ''
? Texts(
widget.subTitle,
color: widget.textColor,
fontSize: SizeConfig.textMultiplier * 2.5,
)
: SizedBox(),
])),
],
),
));
} }
} }

Loading…
Cancel
Save