From 7be1bdcdc203cede471b1bc4a511c1cb880569dc Mon Sep 17 00:00:00 2001 From: Fatimah Alshammari Date: Sun, 19 Jun 2022 12:02:14 +0300 Subject: [PATCH] fix family member --- lib/api/profile_api_client.dart | 1 + lib/config/routes.dart | 3 + lib/ui/profile/contact_details.dart | 2 +- lib/ui/profile/delete_familyMember.dart | 74 +++++++++++++++++ .../dynamic_input_familyMembers_screen.dart | 83 +++++++++++++++++++ .../dynamic_input_profile_screen.dart | 2 + lib/ui/profile/family_members.dart | 52 ++++++++++-- 7 files changed, 210 insertions(+), 7 deletions(-) create mode 100644 lib/ui/profile/delete_familyMember.dart create mode 100644 lib/ui/profile/dynamic_screens/dynamic_input_familyMembers_screen.dart diff --git a/lib/api/profile_api_client.dart b/lib/api/profile_api_client.dart index 3e254b4..ec79fd7 100644 --- a/lib/api/profile_api_client.dart +++ b/lib/api/profile_api_client.dart @@ -27,6 +27,7 @@ class ProfileApiClient { postParams.addAll(AppState().postParamsJson); return await ApiClient().postJsonForObject((json) { GenericResponseModel? responseData = GenericResponseModel.fromJson(json); + print(responseData); return responseData.getEmployeeContactsList ?? []; }, url, postParams); } diff --git a/lib/config/routes.dart b/lib/config/routes.dart index e377b8a..75f4293 100644 --- a/lib/config/routes.dart +++ b/lib/config/routes.dart @@ -8,6 +8,7 @@ import 'package:mohem_flutter_app/ui/login/verify_last_login_screen.dart'; import 'package:mohem_flutter_app/ui/login/verify_login_screen.dart'; import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_input_screen.dart'; import 'package:mohem_flutter_app/ui/my_attendance/my_attendance_screen.dart'; +import 'package:mohem_flutter_app/ui/profile/delete_familyMember.dart'; import 'package:mohem_flutter_app/ui/profile/dynamic_screens/dynamic_input_profile_screen.dart'; // import 'package:mohem_flutter_app/ui/my_attendance/work_from_home_screen.dart'; import 'package:mohem_flutter_app/ui/screens/eit/add_eit.dart'; @@ -69,6 +70,7 @@ class AppRoutes { static const String basicDetails = "/basicDetails"; static const String contactDetails = "/contactDetails"; static const String familyMembers = "/familyMembers"; + static const String deleteFamilyMember = "/deleteFamilyMember"; static final Map routes = { login: (context) => LoginScreen(), @@ -110,5 +112,6 @@ class AppRoutes { dynamicScreen: (context) => DynamicListViewScreen(), addDynamicInput: (context) => DynamicInputScreen(), addDynamicInputProfile: (context) => DynamicInputScreenProfile(), + deleteFamilyMember: (context) => DeleteFamilyMember(), }; } diff --git a/lib/ui/profile/contact_details.dart b/lib/ui/profile/contact_details.dart index c387047..a67283d 100644 --- a/lib/ui/profile/contact_details.dart +++ b/lib/ui/profile/contact_details.dart @@ -210,7 +210,7 @@ class _ContactDetailsState extends State { //]), //), //], - ])); + ]))); } footer() { diff --git a/lib/ui/profile/delete_familyMember.dart b/lib/ui/profile/delete_familyMember.dart new file mode 100644 index 0000000..4876ef3 --- /dev/null +++ b/lib/ui/profile/delete_familyMember.dart @@ -0,0 +1,74 @@ + + +import 'package:easy_localization/src/public_ext.dart'; +import 'package:flutter/material.dart'; +import 'package:mohem_flutter_app/api/profile_api_client.dart'; +import 'package:mohem_flutter_app/classes/colors.dart'; +import 'package:mohem_flutter_app/classes/utils.dart'; +import 'package:mohem_flutter_app/config/routes.dart'; +import 'package:mohem_flutter_app/dialogs/otp_dialog.dart'; +import 'package:mohem_flutter_app/extensions/int_extensions.dart'; +import 'package:mohem_flutter_app/extensions/string_extensions.dart'; +import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; +import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; +import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart'; +import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart'; +import 'package:mohem_flutter_app/ui/profile/dynamic_screens/dynamic_input_familyMembers_screen.dart'; +import 'package:mohem_flutter_app/ui/profile/dynamic_screens/dynamic_input_profile_screen.dart'; +import 'package:mohem_flutter_app/ui/profile/profile.dart'; +import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; +import 'package:mohem_flutter_app/widgets/button/default_button.dart'; + +class DeleteFamilyMember extends StatefulWidget { + const DeleteFamilyMember({Key? key}) : super(key: key); + + @override + _DeleteFamilyMemberState createState() => _DeleteFamilyMemberState(); +} + +class _DeleteFamilyMemberState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBarWidget( + context, + title: "Dependents And Beneficiaries", + ), + backgroundColor: MyColors.backgroundColor, + bottomSheet: footer(), + body:Column( + children: [ + + ], + ) + + ); + } + footer() { + return Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + color: MyColors.gradiantEndColor, + // margin: EdgeInsets.only(left: 50,right: 20), + padding: EdgeInsets.only(left: 50,right: 50), + child: TextButton( + style: TextButton.styleFrom( + primary:MyColors.white, + onSurface: MyColors.white, + backgroundColor: MyColors.gradiantEndColor, + ), + onPressed: (){}, + child: Text('Next', + style: TextStyle( + fontStyle: FontStyle.normal, + fontSize: 16, + color: Colors.white, + fontWeight: FontWeight.w600 + ),), + ) + ), + ], + ); + } +} diff --git a/lib/ui/profile/dynamic_screens/dynamic_input_familyMembers_screen.dart b/lib/ui/profile/dynamic_screens/dynamic_input_familyMembers_screen.dart new file mode 100644 index 0000000..0fa6845 --- /dev/null +++ b/lib/ui/profile/dynamic_screens/dynamic_input_familyMembers_screen.dart @@ -0,0 +1,83 @@ + +import 'dart:io'; + + +import 'package:easy_localization/easy_localization.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:mohem_flutter_app/api/my_attendance_api_client.dart'; +import 'package:mohem_flutter_app/api/profile_api_client.dart'; +import 'package:mohem_flutter_app/classes/utils.dart'; +import 'package:mohem_flutter_app/extensions/int_extensions.dart'; +import 'package:mohem_flutter_app/extensions/string_extensions.dart'; +import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; +import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; +import 'package:mohem_flutter_app/models/dyanmic_forms/get_set_values_request_model.dart'; +import 'package:mohem_flutter_app/models/generic_response_model.dart'; +import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart'; +import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart'; +import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart'; +import 'package:mohem_flutter_app/models/profile/basic_details_cols_structions.dart'; +import 'package:mohem_flutter_app/models/profile/basic_details_dff_structure.dart'; +import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart'; +import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; +import 'package:mohem_flutter_app/widgets/button/default_button.dart'; +import 'package:mohem_flutter_app/widgets/dynamic_forms/dynamic_textfield_widget.dart'; + +class DynamicFamilyMembersParams { + String title; + //String dynamicId; + // String uRL; + // String requestID; + // String colsURL; + List? getEmployeeContactsList; + + DynamicFamilyMembersParams(this.title, + {this.getEmployeeContactsList = const []}); +} + +class DynamicFamilyMembersScreen extends StatefulWidget { + DynamicFamilyMembersScreen({Key? key}) : super(key: key); + + @override + _DynamicFamilyMembersScreenState createState() { + return _DynamicFamilyMembersScreenState(); + } +} + +class _DynamicFamilyMembersScreenState extends State { + // GenericResponseModel? genericResponseModel; + DynamicFamilyMembersParams? dynamicFamilyParams; + + @override + void initState() { + super.initState(); + } + + + @override + void dispose() { + super.dispose(); + } + + @override + Widget build(BuildContext context) { + if(dynamicFamilyParams == null) { + dynamicFamilyParams = ModalRoute.of(context)!.settings.arguments as DynamicFamilyMembersParams; + } + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBarWidget( + context, + title: dynamicFamilyParams!.title, + ), + body: Column( + children: [ + + ], + ), + ); + } + + +} diff --git a/lib/ui/profile/dynamic_screens/dynamic_input_profile_screen.dart b/lib/ui/profile/dynamic_screens/dynamic_input_profile_screen.dart index 6e054c9..3e25917 100644 --- a/lib/ui/profile/dynamic_screens/dynamic_input_profile_screen.dart +++ b/lib/ui/profile/dynamic_screens/dynamic_input_profile_screen.dart @@ -15,6 +15,7 @@ import 'package:mohem_flutter_app/models/dyanmic_forms/get_set_values_request_mo import 'package:mohem_flutter_app/models/generic_response_model.dart'; import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart'; import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart'; +import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart'; import 'package:mohem_flutter_app/models/profile/basic_details_cols_structions.dart'; import 'package:mohem_flutter_app/models/profile/basic_details_dff_structure.dart'; import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart'; @@ -30,6 +31,7 @@ class DynamicProfileParams { String colsURL; List? getEmployeeBasicDetailsList; + DynamicProfileParams(this.title, this.dynamicId, {this.uRL = 'GET_EIT_DFF_STRUCTURE', this.requestID = '', this.colsURL = '', this.getEmployeeBasicDetailsList = const []}); } diff --git a/lib/ui/profile/family_members.dart b/lib/ui/profile/family_members.dart index 6f50c51..bcc5b32 100644 --- a/lib/ui/profile/family_members.dart +++ b/lib/ui/profile/family_members.dart @@ -8,6 +8,7 @@ import 'package:flutter/material.dart'; import 'package:mohem_flutter_app/api/profile_api_client.dart'; import 'package:mohem_flutter_app/classes/colors.dart'; import 'package:mohem_flutter_app/classes/utils.dart'; +import 'package:mohem_flutter_app/config/routes.dart'; import 'package:mohem_flutter_app/dialogs/otp_dialog.dart'; import 'package:mohem_flutter_app/extensions/int_extensions.dart'; import 'package:mohem_flutter_app/extensions/string_extensions.dart'; @@ -15,6 +16,8 @@ import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart'; import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart'; +import 'package:mohem_flutter_app/ui/profile/dynamic_screens/dynamic_input_familyMembers_screen.dart'; +import 'package:mohem_flutter_app/ui/profile/dynamic_screens/dynamic_input_profile_screen.dart'; import 'package:mohem_flutter_app/ui/profile/profile.dart'; import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; import 'package:mohem_flutter_app/widgets/button/default_button.dart'; @@ -30,7 +33,7 @@ class _FamilyMembersState extends State { List getEmployeeContactsList = []; - + int? relationId; @override void initState() { super.initState(); @@ -111,7 +114,7 @@ class _FamilyMembersState extends State { Container( child: InkWell( onTap: () { - + showUpdateAlertDialog(context); }, child: RichText( text: TextSpan( @@ -148,7 +151,7 @@ class _FamilyMembersState extends State { Container( child: InkWell( onTap: () { - showAlertDialog(context); + showRemoveAlertDialog(context, getEmployeeContactsList[index]!.cONTACTRELATIONSHIPID!.toInt()); }, child: RichText( text: TextSpan( @@ -214,14 +217,42 @@ class _FamilyMembersState extends State { BoxShadow(color: MyColors.lightGreyEFColor, spreadRadius: 3), ], ), - child: DefaultButton(LocaleKeys.update.tr(), () async { + child: DefaultButton("Add New Family Member", () async { // context.setLocale(const Locale("en", "US")); // to change Loacle Profile(); }).insideContainer, ); } - showAlertDialog(BuildContext context) { + showUpdateAlertDialog(BuildContext context) { + Widget cancelButton = TextButton( + child: Text(LocaleKeys.cancel.tr(),), + onPressed: () { + Navigator.pop(context); + }, + ); + Widget continueButton = TextButton( + child: Text(LocaleKeys.ok.tr(),), + onPressed: () { + continueDynamicForms(); + }, + ); + AlertDialog alert = AlertDialog( + title: Text(LocaleKeys.confirm.tr(),), + content: Text("Are You Sure You Want to Update this Member?"), + actions: [ + cancelButton, + continueButton, + ], + ); + showDialog( + context: context, + builder: (BuildContext context) { + return alert; + }, + ); + } + showRemoveAlertDialog(BuildContext context,int relationId) { Widget cancelButton = TextButton( child: Text(LocaleKeys.cancel.tr(),), onPressed: () { @@ -230,7 +261,10 @@ class _FamilyMembersState extends State { ); Widget continueButton = TextButton( child: Text(LocaleKeys.ok.tr(),), - onPressed: () {}, + onPressed: () { + Navigator.pushNamed(context, AppRoutes.deleteFamilyMember); + // continueDynamicForms(); + }, ); AlertDialog alert = AlertDialog( title: Text(LocaleKeys.confirm.tr(),), @@ -248,4 +282,10 @@ class _FamilyMembersState extends State { ); } + + void continueDynamicForms() { + Navigator.pushNamed(context, AppRoutes.addDynamicInputProfile, + arguments: DynamicFamilyMembersParams(LocaleKeys.profile_familyDetails.tr(), getEmployeeContactsList: getEmployeeContactsList)); + } + }