From 3766c6936857cea2fc5b4578fb00dffb96e6bcf7 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Sun, 21 Jun 2026 12:43:38 +0300 Subject: [PATCH] merge conflict resolved --- lib/dashboard_latest/dashboard_provider.dart | 7 +- .../widgets/progress_fragment.dart | 9 +- .../widgets/request_category_fragment.dart | 90 +++++++++++-------- .../pages/cleaner_request_item_view.dart | 0 .../pages/one_time_task_view.dart | 21 ++--- .../traf_module/traf_request_detail_page.dart | 1 + .../traf_module/traf_request_item_view.dart | 42 ++------- .../requests/recurrent_wo_item_view.dart | 62 ++++--------- 8 files changed, 92 insertions(+), 140 deletions(-) delete mode 100644 lib/modules/cleaner_module/pages/cleaner_request_item_view.dart diff --git a/lib/dashboard_latest/dashboard_provider.dart b/lib/dashboard_latest/dashboard_provider.dart index 4f8df139..77896468 100644 --- a/lib/dashboard_latest/dashboard_provider.dart +++ b/lib/dashboard_latest/dashboard_provider.dart @@ -580,8 +580,11 @@ class CategoryTabs { // tabs.add(CategoryTabs(label: 'Upcoming', tag: 0, id: 0)); // tabs.add(CategoryTabs('Open', 1)); // tabs.add(CategoryTabs(label: 'UnAssigned', tag: 1, id: 1)); - tabs.add(CategoryTabs(label: 'In Progress', tag: 2, id: 2)); - tabs.add(CategoryTabs(label: 'Completed', tag: 4, id: 3)); + // tabs.add(CategoryTabs(label: 'In Progress', tag: 2, id: 2)); + // tabs.add(CategoryTabs(label: 'Completed', tag: 4, id: 3)); + + tabs.add(CategoryTabs(label: 'In Progress', tag: 2, id: 2, requestType: RequestTypeEnum.inProgress, icon: "dashboard/inprogress_icon", iconColor: AppColor.primary10)); + tabs.add(CategoryTabs(label: 'Completed', tag: 4, id: 3, requestType: RequestTypeEnum.completed, icon: "complete_request", iconColor: AppColor.completedColor)); return tabs; } diff --git a/lib/dashboard_latest/widgets/progress_fragment.dart b/lib/dashboard_latest/widgets/progress_fragment.dart index f3cd90b8..70d2dfcf 100644 --- a/lib/dashboard_latest/widgets/progress_fragment.dart +++ b/lib/dashboard_latest/widgets/progress_fragment.dart @@ -235,9 +235,8 @@ class _ProgressFragmentState extends State with SingleTickerPr } else if (_userProvider.isHouseKeeper) { total = (snapshot.dashboardCount?.data?.countClose ?? 0) + (snapshot.dashboardCount?.data?.countInprogress ?? 0) + (snapshot.dashboardCount?.data?.countOpen ?? 0); chartData = [ - ChartData('In Progress', snapshot.dashboardCount?.data?.countInprogress?.toDouble() ?? 0.0, AppColor.orange70), - ChartData('Completed', snapshot.dashboardCount?.data?.countClose?.toDouble() ?? 0.0, AppColor.green70), - // ChartData('Open', snapshot.dashboardCount?.data?.countOpen?.toDouble() ?? 0.0, AppColor.blueStatus(context)), + ChartData('In Progress', snapshot.dashboardCount?.data?.countInprogress?.toDouble() ?? 0.0, AppColor.inProgressChartColor, "dashboard/inprogress_icon"), + ChartData('Completed', snapshot.dashboardCount?.data?.countClose?.toDouble() ?? 0.0, AppColor.completeChartColor, "dashboard/completed_icon"), ]; } else { total = (snapshot.dashboardCount?.data?.countComplete ?? 0) + (snapshot.dashboardCount?.data?.countInprogress ?? 0) + (snapshot.dashboardCount?.data?.countOpen ?? 0); @@ -319,7 +318,7 @@ class _ProgressFragmentState extends State with SingleTickerPr ), ).toShimmer(isShow: snapshot.isAllCountLoading, radius: 250, context: context), ), - ).paddingOnly(top: 16,bottom: 16), + ).paddingOnly(top: 16, bottom: 16), ), Expanded( flex: 2, @@ -347,7 +346,7 @@ class _ProgressFragmentState extends State with SingleTickerPr ], ) ], - ).paddingOnly(top: 4,bottom: 4), + ).paddingOnly(top: 4, bottom: 4), ), ], ).expanded, diff --git a/lib/dashboard_latest/widgets/request_category_fragment.dart b/lib/dashboard_latest/widgets/request_category_fragment.dart index e20da541..52cbf259 100644 --- a/lib/dashboard_latest/widgets/request_category_fragment.dart +++ b/lib/dashboard_latest/widgets/request_category_fragment.dart @@ -116,47 +116,51 @@ class _RequestCategoryFragmentState extends State with final bool isHouseKeeper = user?.type == UsersTypes.houseKeeper; return Column(mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ - !isNurse && dashboardProvider.tabs.isNotEmpty && dashboardProvider.tabs[dashboardProvider.currentListIndex].tag == 0 - ? Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - context.translation.allWorkOrder.heading4(context), - // Row( - // mainAxisAlignment: MainAxisAlignment.spaceBetween, - // children: [ - // context.translation.allWorkOrder.heading4(context), - // GestureDetector( - // onTap: () { - // dashboardProvider.isShowDashBoardCalendar = !dashboardProvider.isShowDashBoardCalendar; - // }, - // child: dashboardProvider.isShowDashBoardCalendar ? AppAsset.listIcon.toSvgAsset() : AppAsset.calendarIcon.toSvgAsset()) - // ], - // ), - dashboardProvider.isShowDashBoardCalendar - ? Padding( - padding: EdgeInsets.only(top: 12.toScreenHeight), - child: const WeeklyCalendarFragment(), - ) - : const SizedBox(), - ], - ).paddingOnly(start: 14, end: 12) - : isHouseKeeper - ? Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - 'All Tasks'.addTranslation.heading4(context), - 'add_icon'.toSvgAsset(width: 20, height: 20).onPress(() { - Navigator.of(context).pushNamed('/cleaner_search'); - }), - ], - ).paddingOnly(start: 16, end: 16) - : context.translation.allWorkOrder.heading4(context).paddingOnly(start: 16, end: 16), + + + // !isNurse && dashboardProvider.tabs.isNotEmpty && dashboardProvider.tabs[dashboardProvider.currentListIndex].tag == 0 + // ? Column( + // crossAxisAlignment: CrossAxisAlignment.start, + // children: [ + // context.translation.allWorkOrder.heading4(context), + // // Row( + // // mainAxisAlignment: MainAxisAlignment.spaceBetween, + // // children: [ + // // context.translation.allWorkOrder.heading4(context), + // // GestureDetector( + // // onTap: () { + // // dashboardProvider.isShowDashBoardCalendar = !dashboardProvider.isShowDashBoardCalendar; + // // }, + // // child: dashboardProvider.isShowDashBoardCalendar ? AppAsset.listIcon.toSvgAsset() : AppAsset.calendarIcon.toSvgAsset()) + // // ], + // // ), + // dashboardProvider.isShowDashBoardCalendar + // ? Padding( + // padding: EdgeInsets.only(top: 12.toScreenHeight), + // child: const WeeklyCalendarFragment(), + // ) + // : const SizedBox(), + // ], + // ).paddingOnly(start: 14, end: 12) + // : isHouseKeeper + // ? Row( + // mainAxisAlignment: MainAxisAlignment.spaceBetween, + // children: [ + // 'All Tasks'.addTranslation.heading4(context), + // 'add_icon'.toSvgAsset(width: 20, height: 20).onPress(() { + // Navigator.of(context).pushNamed('/cleaner_search'); + // }), + // ], + // ).paddingOnly(start: 16, end: 16) + // : context.translation.allWorkOrder.heading4(context).paddingOnly(start: 16, end: 16), + // + getTabs( requestsProvider: dashboardProvider, context: context, userType: Provider.of(context, listen: false).user?.type, ), - FadeTransition(f + FadeTransition( opacity: _headerFadeAnimation, child: SlideTransition( position: _headerSlideAnimation, @@ -187,7 +191,19 @@ class _RequestCategoryFragmentState extends State with // ], // ).paddingOnly(start: 14, end: 12) // : - Row( + + + isHouseKeeper + ? Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + 'All Tasks'.addTranslation.heading4(context), + 'add_icon'.toSvgAsset(width: 20, height: 20).onPress(() { + Navigator.of(context).pushNamed('/cleaner_search'); + }), + ], + ).paddingOnly(start: 16, end: 16) : + Row( spacing: 16, children: [ Text(context.translation.allWorkOrder, style: AppTextStyles.heading4.copyWith(color: AppColor.headingTextColor(context))).expanded, diff --git a/lib/modules/cleaner_module/pages/cleaner_request_item_view.dart b/lib/modules/cleaner_module/pages/cleaner_request_item_view.dart deleted file mode 100644 index e69de29b..00000000 diff --git a/lib/modules/cleaner_module/pages/one_time_task_view.dart b/lib/modules/cleaner_module/pages/one_time_task_view.dart index d40921cb..85636944 100644 --- a/lib/modules/cleaner_module/pages/one_time_task_view.dart +++ b/lib/modules/cleaner_module/pages/one_time_task_view.dart @@ -77,12 +77,8 @@ class _OneTimeTaskViewState extends State { _taskData?.imageRooms ??= []; // Convert attachments from API to imageRooms format for display - if ((_taskData?.imageRooms?.isEmpty ?? true) && - (_taskData?.attachments != null && _taskData!.attachments!.isNotEmpty)) { - _taskData!.imageRooms = _taskData!.attachments! - .map((attachment) => URLs.getFileUrl(attachment.name ?? '') ?? '') - .where((url) => url.isNotEmpty) - .toList(); + if ((_taskData?.imageRooms?.isEmpty ?? true) && (_taskData?.attachments != null && _taskData!.attachments!.isNotEmpty)) { + _taskData!.imageRooms = _taskData!.attachments!.map((attachment) => URLs.getFileUrl(attachment.name ?? '') ?? '').where((url) => url.isNotEmpty).toList(); } _isLoading = false; @@ -135,13 +131,13 @@ class _OneTimeTaskViewState extends State { appBar: DefaultAppBar( title: 'One Time Task'.addTranslation, onWillPopScope: null, - onBackPress: (){ + onBackPress: () { WidgetsBinding.instance.addPostFrameCallback((_) { UserProvider userProvider = Provider.of(context, listen: false); DashBoardProvider dashBoardProvider = Provider.of(context, listen: false); - dashBoardProvider.getDashBoardCount(usersType:userProvider.user!.type!); + dashBoardProvider.getDashBoardCount(usersType: userProvider.user!.type!); dashBoardProvider.resetRequestDataList(); - dashBoardProvider.getRequestDetail(usersType: userProvider.user!.type!, status: dashBoardProvider.tabs[dashBoardProvider.currentListIndex].tag); + dashBoardProvider.getRequestDetail(usersType: userProvider.user!.type!, status: dashBoardProvider.tabs[dashBoardProvider.currentListIndex!].tag); }); Navigator.pop(context); }, @@ -219,8 +215,8 @@ class _OneTimeTaskViewState extends State { StatusLabel( radius: 4, label: _taskData!.statusName!, - textColor: AppColor.getHistoryLogStatusTextColorByName(_taskData!.statusName!), - backgroundColor: AppColor.getHistoryLogStatusColorByName(_taskData!.statusName!), + textColor: AppColor.getHistoryLogStatusTextColorByName(context, _taskData!.statusName!), + backgroundColor: AppColor.getHistoryLogStatusColorByName(context, _taskData!.statusName!), ), if (_taskData?.createdDate != null) Text( @@ -265,7 +261,8 @@ class _OneTimeTaskViewState extends State { endAt: null, durationInSecond: 0, ), - enabled: false, // Disable controls, just show the timer + enabled: false, + // Disable controls, just show the timer showTimer: true, decoration: BoxDecoration( color: context.isDark ? AppColor.neutral20.withValues(alpha: 0.5) : AppColor.neutral10.withValues(alpha: 0.1), diff --git a/lib/modules/traf_module/traf_request_detail_page.dart b/lib/modules/traf_module/traf_request_detail_page.dart index 73543037..d6d428d6 100644 --- a/lib/modules/traf_module/traf_request_detail_page.dart +++ b/lib/modules/traf_module/traf_request_detail_page.dart @@ -11,6 +11,7 @@ import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/models/enums/user_types.dart'; import 'package:test_sa/modules/traf_module/traf_request_provider.dart'; +import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/common_widgets/default_app_bar.dart'; import 'package:test_sa/views/widgets/images/files_list.dart'; import 'package:test_sa/views/widgets/loaders/app_loading.dart'; diff --git a/lib/modules/traf_module/traf_request_item_view.dart b/lib/modules/traf_module/traf_request_item_view.dart index 4f4cce3e..3e74c425 100644 --- a/lib/modules/traf_module/traf_request_item_view.dart +++ b/lib/modules/traf_module/traf_request_item_view.dart @@ -44,24 +44,9 @@ class TrafRequestItemView extends StatelessWidget { ], ), 8.height, - (requestData?.typeTransaction ?? "Assessment of Need & Technology").heading5(context), // todo replace to info header - infoWidget(label: context.translation.requestType, value: requestData?.requestTypeName, context: context), - infoWidget(label: "Request No", value: requestData?.requestNo, context: context), - 8.height, - Row( - mainAxisSize: MainAxisSize.min, - children: [ - Text( - context.translation.viewDetails, - style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)), - ), - 4.width, - Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14) - ], - ), - InfoHeaderWidget(requestData?.typeTransaction ?? "TRAF Request"), + InfoHeaderWidget(requestData?.typeTransaction ?? "Assessment of Need & Technology"), InfoTextWidget(label: context.translation.requestType, value: requestData?.requestTypeName), - InfoTextWidget(label: "TRAF No", value: requestData?.requestNo, showArrow: true), + InfoTextWidget(label: "Request No", value: requestData?.requestNo, showArrow: true), ], ).toShadowContainer(context, withShadow: showShadow).onPress(() async { Navigator.push(context, MaterialPageRoute(builder: (context) => TrafRequestDetailPage(trafId: requestData!.id!))); @@ -90,27 +75,10 @@ class TrafRequestItemView extends StatelessWidget { ], ), 8.height, - (requestDetails?.nameOfType ?? "Assessment of Need & Technology").heading5(context), - 8.height, - infoWidget(label: context.translation.requestType, value: requestDetails!.requestType, context: context), - infoWidget(label: "Request No", value: requestDetails!.requestNo, context: context), - infoWidget(label: context.translation.site, value: requestDetails!.site, context: context), - 8.height, - Row( - mainAxisSize: MainAxisSize.min, - children: [ - Text( - context.translation.viewDetails, - style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)), - ), - 4.width, - Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14) - ], - ), - InfoHeaderWidget(requestDetails?.nameOfType ?? "TRAF Request"), + InfoHeaderWidget(requestDetails?.nameOfType ?? "Assessment of Need & Technology"), InfoTextWidget(label: context.translation.requestType, value: requestDetails!.requestType), - InfoTextWidget(label: "TRAF No", value: requestDetails!.requestNo), - InfoTextWidget(label: context.translation.site, value: requestDetails!.site, showEmptyValue: true,showArrow: true), + InfoTextWidget(label: "Request No", value: requestDetails!.requestNo), + InfoTextWidget(label: context.translation.site, value: requestDetails!.site, showEmptyValue: true, showArrow: true), ], ).toShadowContainer(context, withShadow: showShadow).onPress(() async { Navigator.push(context, MaterialPageRoute(builder: (context) => TrafRequestDetailPage(trafId: requestDetails!.id!))); diff --git a/lib/new_views/pages/land_page/requests/recurrent_wo_item_view.dart b/lib/new_views/pages/land_page/requests/recurrent_wo_item_view.dart index 9ee7b760..d7ee1e9f 100644 --- a/lib/new_views/pages/land_page/requests/recurrent_wo_item_view.dart +++ b/lib/new_views/pages/land_page/requests/recurrent_wo_item_view.dart @@ -49,31 +49,15 @@ class RecurrentWoItemView extends StatelessWidget { ], ), 8.height, - (requestData?.typeTransaction ?? context.translation.recurrentWo).heading5(context), - 8.height, - // '${context.translation.assetNumber}: ${requestData!.assetNumber}'.bodyText(context), - // '${context.translation.assetSN}: ${request.assetSN}'.bodyText(context),//todo ask ahmed - // '${context.translation.code}: ${request.code}'.bodyText(context), - '${context.translation.taskNo}: ${requestData!.requestNo}'.bodyText(context), - if (requestData?.siteName != null) '${context.translation.site}: ${requestData!.siteName}'.bodyText(context), - if (requestData!.buildingName != null) '${context.translation.building}: ${requestData!.buildingName}'.bodyText(context), - if (requestData!.departmentName != null) '${context.translation.department}: ${requestData!.departmentName}'.bodyText(context), - if (requestData!.floorName != null) '${context.translation.floor}: ${requestData!.floorName}'.bodyText(context), - if (requestData!.roomName != null) '${context.translation.room}: ${requestData!.roomName}'.bodyText(context), - 8.height, - Row( - mainAxisSize: MainAxisSize.min, - children: [ - Text( - context.translation.viewDetails, - style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)), - ), - 4.width, - Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14) - ], - ), - InfoHeaderWidget(requestData?.typeTransaction ?? context.translation.ppmRequest), + + InfoHeaderWidget(requestData?.typeTransaction ?? context.translation.recurrentWo), InfoTextWidget(label: context.translation.taskNo, value: requestData!.requestNo, showArrow: true), + // todo @waseem replace below code to infotextwidget + // if (requestData?.siteName != null) '${context.translation.site}: ${requestData!.siteName}'.bodyText(context), + // if (requestData!.buildingName != null) '${context.translation.building}: ${requestData!.buildingName}'.bodyText(context), + // if (requestData!.departmentName != null) '${context.translation.department}: ${requestData!.departmentName}'.bodyText(context), + // if (requestData!.floorName != null) '${context.translation.floor}: ${requestData!.floorName}'.bodyText(context), + // if (requestData!.roomName != null) '${context.translation.room}: ${requestData!.roomName}'.bodyText(context), ], ).toShadowContainer(context, withShadow: showShadow).onPress(() { Navigator.of(context).push(MaterialPageRoute(builder: (_) => RecurrentWorkOrderView(taskId: requestData!.id))); @@ -103,32 +87,16 @@ class RecurrentWoItemView extends StatelessWidget { ], ), 8.height, - (requestDetails?.nameOfType ?? context.translation.recurrentWo).heading5(context), - 8.height, - // '${context.translation.taskNo}: ${requestDetails!.id}'.bodyText(context), - '${context.translation.site}: ${requestDetails!.site}'.bodyText(context), - // '${context.translation.code}: ${request.code}'.bodyText(context), - '${context.translation.taskNo}: ${requestDetails!.requestNo}'.bodyText(context), - if (requestDetails!.siteName != null) '${context.translation.site}: ${requestDetails!.siteName}'.bodyText(context), - if (requestDetails!.buildingName != null) '${context.translation.building}: ${requestDetails!.buildingName}'.bodyText(context), - if (requestDetails!.departmentName != null) '${context.translation.department}: ${requestDetails!.departmentName}'.bodyText(context), - if (requestDetails!.floorName != null) '${context.translation.floor}: ${requestDetails!.floorName}'.bodyText(context), - if (requestDetails!.roomName != null) '${context.translation.room}: ${requestDetails!.roomName}'.bodyText(context), - 8.height, - Row( - mainAxisSize: MainAxisSize.min, - children: [ - Text( - context.translation.viewDetails, - style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)), - ), - 4.width, - Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14) - ], - ), InfoHeaderWidget(requestDetails?.nameOfType ?? context.translation.recurrentWo), InfoTextWidget(label: context.translation.site, value: requestDetails!.site), InfoTextWidget(label: context.translation.taskNo, value: requestDetails!.requestNo, showArrow: true), + + // todo @waseem replace below code to infotextwidget + // if (requestDetails!.siteName != null) '${context.translation.site}: ${requestDetails!.siteName}'.bodyText(context), + // if (requestDetails!.buildingName != null) '${context.translation.building}: ${requestDetails!.buildingName}'.bodyText(context), + // if (requestDetails!.departmentName != null) '${context.translation.department}: ${requestDetails!.departmentName}'.bodyText(context), + // if (requestDetails!.floorName != null) '${context.translation.floor}: ${requestDetails!.floorName}'.bodyText(context), + // if (requestDetails!.roomName != null) '${context.translation.room}: ${requestDetails!.roomName}'.bodyText(context), ], ).toShadowContainer(context, withShadow: showShadow).onPress(() async { Navigator.of(context).push(MaterialPageRoute(builder: (_) => RecurrentWorkOrderView(taskId: requestDetails!.id)));