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('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;
}

@ -235,9 +235,8 @@ class _ProgressFragmentState extends State<ProgressFragment> 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<ProgressFragment> 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<ProgressFragment> with SingleTickerPr
],
)
],
).paddingOnly(top: 4,bottom: 4),
).paddingOnly(top: 4, bottom: 4),
),
],
).expanded,

@ -116,47 +116,51 @@ class _RequestCategoryFragmentState extends State<RequestCategoryFragment> with
final bool isHouseKeeper = user?.type == UsersTypes.houseKeeper;
return Column(mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[
!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<UserProvider>(context, listen: false).user?.type,
),
FadeTransition(f
FadeTransition(
opacity: _headerFadeAnimation,
child: SlideTransition(
position: _headerSlideAnimation,
@ -187,7 +191,19 @@ class _RequestCategoryFragmentState extends State<RequestCategoryFragment> 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,

@ -77,12 +77,8 @@ class _OneTimeTaskViewState extends State<OneTimeTaskView> {
_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<OneTimeTaskView> {
appBar: DefaultAppBar(
title: 'One Time Task'.addTranslation,
onWillPopScope: null,
onBackPress: (){
onBackPress: () {
WidgetsBinding.instance.addPostFrameCallback((_) {
UserProvider userProvider = Provider.of<UserProvider>(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.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<OneTimeTaskView> {
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<OneTimeTaskView> {
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),

@ -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';

@ -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!)));

@ -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)));

Loading…
Cancel
Save