merge conflict resolved

ui_ux_rollout_merge
Sikander Saleem 1 week ago
parent d136fd990e
commit 3766c69368

@ -580,8 +580,11 @@ class CategoryTabs {
// tabs.add(CategoryTabs(label: 'Upcoming', tag: 0, id: 0)); // tabs.add(CategoryTabs(label: 'Upcoming', tag: 0, id: 0));
// tabs.add(CategoryTabs('Open', 1)); // tabs.add(CategoryTabs('Open', 1));
// tabs.add(CategoryTabs(label: 'UnAssigned', tag: 1, id: 1)); // tabs.add(CategoryTabs(label: 'UnAssigned', tag: 1, id: 1));
tabs.add(CategoryTabs(label: 'In Progress', tag: 2, id: 2)); // tabs.add(CategoryTabs(label: 'In Progress', tag: 2, id: 2));
tabs.add(CategoryTabs(label: 'Completed', tag: 4, id: 3)); // 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; return tabs;
} }

@ -235,9 +235,8 @@ class _ProgressFragmentState extends State<ProgressFragment> with SingleTickerPr
} else if (_userProvider.isHouseKeeper) { } else if (_userProvider.isHouseKeeper) {
total = (snapshot.dashboardCount?.data?.countClose ?? 0) + (snapshot.dashboardCount?.data?.countInprogress ?? 0) + (snapshot.dashboardCount?.data?.countOpen ?? 0); total = (snapshot.dashboardCount?.data?.countClose ?? 0) + (snapshot.dashboardCount?.data?.countInprogress ?? 0) + (snapshot.dashboardCount?.data?.countOpen ?? 0);
chartData = [ chartData = [
ChartData('In Progress', snapshot.dashboardCount?.data?.countInprogress?.toDouble() ?? 0.0, AppColor.orange70), 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.green70), ChartData('Completed', snapshot.dashboardCount?.data?.countClose?.toDouble() ?? 0.0, AppColor.completeChartColor, "dashboard/completed_icon"),
// ChartData('Open', snapshot.dashboardCount?.data?.countOpen?.toDouble() ?? 0.0, AppColor.blueStatus(context)),
]; ];
} else { } else {
total = (snapshot.dashboardCount?.data?.countComplete ?? 0) + (snapshot.dashboardCount?.data?.countInprogress ?? 0) + (snapshot.dashboardCount?.data?.countOpen ?? 0); total = (snapshot.dashboardCount?.data?.countComplete ?? 0) + (snapshot.dashboardCount?.data?.countInprogress ?? 0) + (snapshot.dashboardCount?.data?.countOpen ?? 0);
@ -319,7 +318,7 @@ class _ProgressFragmentState extends State<ProgressFragment> with SingleTickerPr
), ),
).toShimmer(isShow: snapshot.isAllCountLoading, radius: 250, context: context), ).toShimmer(isShow: snapshot.isAllCountLoading, radius: 250, context: context),
), ),
).paddingOnly(top: 16,bottom: 16), ).paddingOnly(top: 16, bottom: 16),
), ),
Expanded( Expanded(
flex: 2, flex: 2,
@ -347,7 +346,7 @@ class _ProgressFragmentState extends State<ProgressFragment> with SingleTickerPr
], ],
) )
], ],
).paddingOnly(top: 4,bottom: 4), ).paddingOnly(top: 4, bottom: 4),
), ),
], ],
).expanded, ).expanded,

@ -116,47 +116,51 @@ class _RequestCategoryFragmentState extends State<RequestCategoryFragment> with
final bool isHouseKeeper = user?.type == UsersTypes.houseKeeper; final bool isHouseKeeper = user?.type == UsersTypes.houseKeeper;
return Column(mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[ return Column(mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[
!isNurse && dashboardProvider.tabs.isNotEmpty && dashboardProvider.tabs[dashboardProvider.currentListIndex].tag == 0
? Column(
crossAxisAlignment: CrossAxisAlignment.start, // !isNurse && dashboardProvider.tabs.isNotEmpty && dashboardProvider.tabs[dashboardProvider.currentListIndex].tag == 0
children: [ // ? Column(
context.translation.allWorkOrder.heading4(context), // crossAxisAlignment: CrossAxisAlignment.start,
// Row( // children: [
// mainAxisAlignment: MainAxisAlignment.spaceBetween, // context.translation.allWorkOrder.heading4(context),
// children: [ // // Row(
// context.translation.allWorkOrder.heading4(context), // // mainAxisAlignment: MainAxisAlignment.spaceBetween,
// GestureDetector( // // children: [
// onTap: () { // // context.translation.allWorkOrder.heading4(context),
// dashboardProvider.isShowDashBoardCalendar = !dashboardProvider.isShowDashBoardCalendar; // // GestureDetector(
// }, // // onTap: () {
// child: dashboardProvider.isShowDashBoardCalendar ? AppAsset.listIcon.toSvgAsset() : AppAsset.calendarIcon.toSvgAsset()) // // dashboardProvider.isShowDashBoardCalendar = !dashboardProvider.isShowDashBoardCalendar;
// ], // // },
// ), // // child: dashboardProvider.isShowDashBoardCalendar ? AppAsset.listIcon.toSvgAsset() : AppAsset.calendarIcon.toSvgAsset())
dashboardProvider.isShowDashBoardCalendar // // ],
? Padding( // // ),
padding: EdgeInsets.only(top: 12.toScreenHeight), // dashboardProvider.isShowDashBoardCalendar
child: const WeeklyCalendarFragment(), // ? Padding(
) // padding: EdgeInsets.only(top: 12.toScreenHeight),
: const SizedBox(), // child: const WeeklyCalendarFragment(),
], // )
).paddingOnly(start: 14, end: 12) // : const SizedBox(),
: isHouseKeeper // ],
? Row( // ).paddingOnly(start: 14, end: 12)
mainAxisAlignment: MainAxisAlignment.spaceBetween, // : isHouseKeeper
children: [ // ? Row(
'All Tasks'.addTranslation.heading4(context), // mainAxisAlignment: MainAxisAlignment.spaceBetween,
'add_icon'.toSvgAsset(width: 20, height: 20).onPress(() { // children: [
Navigator.of(context).pushNamed('/cleaner_search'); // '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), // ],
// ).paddingOnly(start: 16, end: 16)
// : context.translation.allWorkOrder.heading4(context).paddingOnly(start: 16, end: 16),
//
getTabs( getTabs(
requestsProvider: dashboardProvider, requestsProvider: dashboardProvider,
context: context, context: context,
userType: Provider.of<UserProvider>(context, listen: false).user?.type, userType: Provider.of<UserProvider>(context, listen: false).user?.type,
), ),
FadeTransition(f FadeTransition(
opacity: _headerFadeAnimation, opacity: _headerFadeAnimation,
child: SlideTransition( child: SlideTransition(
position: _headerSlideAnimation, position: _headerSlideAnimation,
@ -187,7 +191,19 @@ class _RequestCategoryFragmentState extends State<RequestCategoryFragment> with
// ], // ],
// ).paddingOnly(start: 14, end: 12) // ).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, spacing: 16,
children: [ children: [
Text(context.translation.allWorkOrder, style: AppTextStyles.heading4.copyWith(color: AppColor.headingTextColor(context))).expanded, Text(context.translation.allWorkOrder, style: AppTextStyles.heading4.copyWith(color: AppColor.headingTextColor(context))).expanded,

@ -77,12 +77,8 @@ class _OneTimeTaskViewState extends State<OneTimeTaskView> {
_taskData?.imageRooms ??= []; _taskData?.imageRooms ??= [];
// Convert attachments from API to imageRooms format for display // Convert attachments from API to imageRooms format for display
if ((_taskData?.imageRooms?.isEmpty ?? true) && if ((_taskData?.imageRooms?.isEmpty ?? true) && (_taskData?.attachments != null && _taskData!.attachments!.isNotEmpty)) {
(_taskData?.attachments != null && _taskData!.attachments!.isNotEmpty)) { _taskData!.imageRooms = _taskData!.attachments!.map((attachment) => URLs.getFileUrl(attachment.name ?? '') ?? '').where((url) => url.isNotEmpty).toList();
_taskData!.imageRooms = _taskData!.attachments!
.map((attachment) => URLs.getFileUrl(attachment.name ?? '') ?? '')
.where((url) => url.isNotEmpty)
.toList();
} }
_isLoading = false; _isLoading = false;
@ -135,13 +131,13 @@ class _OneTimeTaskViewState extends State<OneTimeTaskView> {
appBar: DefaultAppBar( appBar: DefaultAppBar(
title: 'One Time Task'.addTranslation, title: 'One Time Task'.addTranslation,
onWillPopScope: null, onWillPopScope: null,
onBackPress: (){ onBackPress: () {
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
UserProvider userProvider = Provider.of<UserProvider>(context, listen: false); UserProvider userProvider = Provider.of<UserProvider>(context, listen: false);
DashBoardProvider dashBoardProvider = Provider.of<DashBoardProvider>(context, listen: false); DashBoardProvider dashBoardProvider = Provider.of<DashBoardProvider>(context, listen: false);
dashBoardProvider.getDashBoardCount(usersType:userProvider.user!.type!); dashBoardProvider.getDashBoardCount(usersType: userProvider.user!.type!);
dashBoardProvider.resetRequestDataList(); 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); Navigator.pop(context);
}, },
@ -219,8 +215,8 @@ class _OneTimeTaskViewState extends State<OneTimeTaskView> {
StatusLabel( StatusLabel(
radius: 4, radius: 4,
label: _taskData!.statusName!, label: _taskData!.statusName!,
textColor: AppColor.getHistoryLogStatusTextColorByName(_taskData!.statusName!), textColor: AppColor.getHistoryLogStatusTextColorByName(context, _taskData!.statusName!),
backgroundColor: AppColor.getHistoryLogStatusColorByName(_taskData!.statusName!), backgroundColor: AppColor.getHistoryLogStatusColorByName(context, _taskData!.statusName!),
), ),
if (_taskData?.createdDate != null) if (_taskData?.createdDate != null)
Text( Text(
@ -265,7 +261,8 @@ class _OneTimeTaskViewState extends State<OneTimeTaskView> {
endAt: null, endAt: null,
durationInSecond: 0, durationInSecond: 0,
), ),
enabled: false, // Disable controls, just show the timer enabled: false,
// Disable controls, just show the timer
showTimer: true, showTimer: true,
decoration: BoxDecoration( decoration: BoxDecoration(
color: context.isDark ? AppColor.neutral20.withValues(alpha: 0.5) : AppColor.neutral10.withValues(alpha: 0.1), color: context.isDark ? AppColor.neutral20.withValues(alpha: 0.5) : AppColor.neutral10.withValues(alpha: 0.1),

@ -11,6 +11,7 @@ import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/enums/user_types.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/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/new_views/common_widgets/default_app_bar.dart';
import 'package:test_sa/views/widgets/images/files_list.dart'; import 'package:test_sa/views/widgets/images/files_list.dart';
import 'package:test_sa/views/widgets/loaders/app_loading.dart'; import 'package:test_sa/views/widgets/loaders/app_loading.dart';

@ -44,24 +44,9 @@ class TrafRequestItemView extends StatelessWidget {
], ],
), ),
8.height, 8.height,
(requestData?.typeTransaction ?? "Assessment of Need & Technology").heading5(context), // todo replace to info header InfoHeaderWidget(requestData?.typeTransaction ?? "Assessment of Need & Technology"),
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"),
InfoTextWidget(label: context.translation.requestType, value: requestData?.requestTypeName), 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 { ).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.push(context, MaterialPageRoute(builder: (context) => TrafRequestDetailPage(trafId: requestData!.id!))); Navigator.push(context, MaterialPageRoute(builder: (context) => TrafRequestDetailPage(trafId: requestData!.id!)));
@ -90,27 +75,10 @@ class TrafRequestItemView extends StatelessWidget {
], ],
), ),
8.height, 8.height,
(requestDetails?.nameOfType ?? "Assessment of Need & Technology").heading5(context), InfoHeaderWidget(requestDetails?.nameOfType ?? "Assessment of Need & Technology"),
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"),
InfoTextWidget(label: context.translation.requestType, value: requestDetails!.requestType), InfoTextWidget(label: context.translation.requestType, value: requestDetails!.requestType),
InfoTextWidget(label: "TRAF No", value: requestDetails!.requestNo), InfoTextWidget(label: "Request No", value: requestDetails!.requestNo),
InfoTextWidget(label: context.translation.site, value: requestDetails!.site, showEmptyValue: true,showArrow: true), InfoTextWidget(label: context.translation.site, value: requestDetails!.site, showEmptyValue: true, showArrow: true),
], ],
).toShadowContainer(context, withShadow: showShadow).onPress(() async { ).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.push(context, MaterialPageRoute(builder: (context) => TrafRequestDetailPage(trafId: requestDetails!.id!))); Navigator.push(context, MaterialPageRoute(builder: (context) => TrafRequestDetailPage(trafId: requestDetails!.id!)));

@ -49,31 +49,15 @@ class RecurrentWoItemView extends StatelessWidget {
], ],
), ),
8.height, 8.height,
(requestData?.typeTransaction ?? context.translation.recurrentWo).heading5(context),
8.height, InfoHeaderWidget(requestData?.typeTransaction ?? context.translation.recurrentWo),
// '${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),
InfoTextWidget(label: context.translation.taskNo, value: requestData!.requestNo, showArrow: true), 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(() { ).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => RecurrentWorkOrderView(taskId: requestData!.id))); Navigator.of(context).push(MaterialPageRoute(builder: (_) => RecurrentWorkOrderView(taskId: requestData!.id)));
@ -103,32 +87,16 @@ class RecurrentWoItemView extends StatelessWidget {
], ],
), ),
8.height, 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), InfoHeaderWidget(requestDetails?.nameOfType ?? context.translation.recurrentWo),
InfoTextWidget(label: context.translation.site, value: requestDetails!.site), InfoTextWidget(label: context.translation.site, value: requestDetails!.site),
InfoTextWidget(label: context.translation.taskNo, value: requestDetails!.requestNo, showArrow: true), 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 { ).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => RecurrentWorkOrderView(taskId: requestDetails!.id))); Navigator.of(context).push(MaterialPageRoute(builder: (_) => RecurrentWorkOrderView(taskId: requestDetails!.id)));

Loading…
Cancel
Save