activities reorder list removed, text remove from login page, rename text duplicate request.

design_3.0_latest
Sikander Saleem 11 months ago
parent f3d52eef52
commit bb4087a948

@ -3,6 +3,7 @@ import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/new_views/pages/land_page/land_page.dart';
import '../app_style/app_color.dart';
@ -10,10 +11,29 @@ class DefaultAppBar extends StatelessWidget implements PreferredSizeWidget {
final String? title;
final List<Widget>? actions;
final Function? onBackPress;
const DefaultAppBar({this.title, this.onBackPress, this.actions, Key? key}) : super(key: key);
final bool showHomeActionButton;
const DefaultAppBar({this.title, this.onBackPress, this.actions, this.showHomeActionButton = false, Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
List<Widget> _actions = [];
if (showHomeActionButton) {
_actions.add(
IconButton(
icon: const Icon(Icons.home),
onPressed: () {
// stopTimer();
Navigator.pop(context);
Navigator.popUntil(context, (ModalRoute.withName(LandPage.routeName)));
},
),
);
}
if (actions?.isNotEmpty ?? false) {
_actions.addAll(actions!);
}
return AppBar(
automaticallyImplyLeading: false,
titleSpacing: 16,
@ -33,7 +53,7 @@ class DefaultAppBar extends StatelessWidget implements PreferredSizeWidget {
).expanded,
],
),
actions: actions,
actions: _actions,
);
}

@ -224,7 +224,7 @@ class _LoginPageState extends State<LoginPage> {
context.translation.signInToYour.customHeadingText(context).custom(color: Colors.white, fontSize: 27, fontWeight: FontWeight.w500),
context.translation.account.customHeadingText(context).custom(color: Colors.white, fontSize: 27, fontWeight: FontWeight.w500),
15.height,
context.translation.letSignInToAccount.customHeadingText(context).custom(color: Colors.white, fontWeight: FontWeight.w500, fontSize: 12),
// context.translation.letSignInToAccount.customHeadingText(context).custom(color: Colors.white, fontWeight: FontWeight.w500, fontSize: 12),
],
),
),

@ -38,7 +38,7 @@ class FooterActionButton {
{required WorkOrderNextStepEnum workOrderNextStepStatus, List<Activities> activities = const [], required BuildContext context, required UserProvider userProvider}) {
ServiceRequestDetailProvider requestDetailProvider = Provider.of<ServiceRequestDetailProvider>(context, listen: false);
bool showMarkAsFixedButton = activities.isEmpty ? false : activities.any((object) => object.activityStatus!.name!.toLowerCase() == "fixed");
bool showMarkAsFixedButton = activities.isEmpty ? false : activities.any((object) => object.activityStatus!.value == 14 || object.activityStatus!.value == 14);// 14 = Fixed and 14 = Out of scope //todo Ask backend for out of scope value
if (userProvider.user?.type == UsersTypes.engineer) {
switch (workOrderNextStepStatus) {
case WorkOrderNextStepEnum.onlyView:

@ -4,7 +4,6 @@ import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart';
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';
@ -41,8 +40,6 @@ class ActivitiesListView extends StatefulWidget {
}
class _ActivitiesListViewState extends State<ActivitiesListView> {
bool showReorderView = false;
@override
void initState() {
super.initState();
@ -62,80 +59,85 @@ class _ActivitiesListViewState extends State<ActivitiesListView> {
UserProvider userProvider = Provider.of<UserProvider>(context);
return Scaffold(
appBar: DefaultAppBar(
showHomeActionButton: true,
title: context.translation.activities,
actions: [if (!showReorderView) IconButton(onPressed: () => activities.isEmpty ? null : setState(() => showReorderView = true), icon: const Icon(Icons.reorder_rounded))],
// actions: [if (!showReorderView) IconButton(onPressed: () => activities.isEmpty ? null : setState(() => showReorderView = true), icon: const Icon(Icons.reorder_rounded))],
),
//backgroundColor: const Color(0xfff8f9fb),
body: Consumer<ServiceRequestDetailProvider>(builder: (context, ServiceRequestDetailProvider requestDetailProvider, child) {
if (showReorderView && reOrderActivities.isEmpty) {
reOrderActivities = requestDetailProvider.currentWorkOrder!.data!.activities;
} else {
activities = requestDetailProvider.currentWorkOrder!.data!.activities;
}
activities = requestDetailProvider.currentWorkOrder!.data!.activities;
// if (showReorderView && reOrderActivities.isEmpty) {
// reOrderActivities = requestDetailProvider.currentWorkOrder!.data!.activities;
// } else {
//
// }
return Column(
children: [
(activities.isEmpty && reOrderActivities.isEmpty)
? NoDataFound(message: context.translation.noDataFound).expanded
: showReorderView
? ReorderableListView(
padding: const EdgeInsets.all(16),
children: [
for (int index = 0; index < reOrderActivities.length; index++)
if (reOrderActivities[index].activityMaintenance != null)
ReorderWidget(
key: ValueKey(index),
child: maintenanceActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: reOrderActivities[index])
.paddingOnly(top: 8, bottom: 8),
)
else
ReorderWidget(
key: ValueKey(index),
child: sparePartActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: reOrderActivities[index])
.paddingOnly(top: 8, bottom: 8),
)
],
onReorder: (oldIndex, newIndex) {
setState(() {
if (oldIndex < newIndex) {
newIndex -= 1;
}
final Activities item = reOrderActivities.removeAt(oldIndex);
reOrderActivities.insert(newIndex, item);
});
}).expanded
: ListView.separated(
padding: const EdgeInsets.all(16),
itemCount: activities.length,
separatorBuilder: (czt, index) => 16.height,
itemBuilder: (context, index) {
if (activities[index].activityMaintenance != null) {
return maintenanceActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: activities[index])
.paddingOnly(top: 8, bottom: 8);
}
return sparePartActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: activities[index]);
},
).expanded,
:
// : showReorderView
// ? ReorderableListView(
// padding: const EdgeInsets.all(16),
// children: [
// for (int index = 0; index < reOrderActivities.length; index++)
// if (reOrderActivities[index].activityMaintenance != null)
// ReorderWidget(
// key: ValueKey(index),
// child: maintenanceActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: reOrderActivities[index])
// .paddingOnly(top: 8, bottom: 8),
// )
// else
// ReorderWidget(
// key: ValueKey(index),
// child: sparePartActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: reOrderActivities[index])
// .paddingOnly(top: 8, bottom: 8),
// )
// ],
// onReorder: (oldIndex, newIndex) {
// setState(() {
// if (oldIndex < newIndex) {
// newIndex -= 1;
// }
// final Activities item = reOrderActivities.removeAt(oldIndex);
// reOrderActivities.insert(newIndex, item);
// });
// }).expanded
// :
ListView.separated(
padding: const EdgeInsets.all(16),
itemCount: activities.length,
separatorBuilder: (czt, index) => 16.height,
itemBuilder: (context, index) {
if (activities[index].activityMaintenance != null) {
return maintenanceActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: activities[index])
.paddingOnly(top: 8, bottom: 8);
}
return sparePartActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: activities[index]);
},
).expanded,
if (userProvider.user!.type == UsersTypes.engineer &&
(requestDetailProvider.currentWorkOrder?.data?.status?.value != 5 && requestDetailProvider.currentWorkOrder?.data?.status?.value != 3))
FooterActionButton.footerContainer(
child: AppFilledButton(
label: showReorderView ? "Confirm Order".addTranslation : context.translation.createNewActivity,
label: context.translation.createNewActivity,
maxWidth: true,
buttonColor: AppColor.primary10,
loading: requestDetailProvider.isLoading,
onPressed: () async {
if (showReorderView) {
// requestDetailProvider.currentWorkOrder!.data!.activities = reOrderActivities;
List<Map<String, dynamic>> data = [];
for (int i = 0; i < reOrderActivities.length; i++) {
data.add({"id": reOrderActivities[i].id, "orderNo": i});
}
reOrderActivities = [];
requestDetailProvider.reOrderActivities(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, reOrderActivityDTOs: data);
showReorderView = false;
return;
}
// if (showReorderView) {
// // requestDetailProvider.currentWorkOrder!.data!.activities = reOrderActivities;
// List<Map<String, dynamic>> data = [];
// for (int i = 0; i < reOrderActivities.length; i++) {
// data.add({"id": reOrderActivities[i].id, "orderNo": i});
// }
// reOrderActivities = [];
// requestDetailProvider.reOrderActivities(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, reOrderActivityDTOs: data);
// showReorderView = false;
// return;
// }
ServiceRequestBottomSheet.activityTypeBottomSheet(context: context);
},
))

@ -224,7 +224,7 @@ class _VerifyArrivalViewState extends State<VerifyArrivalView> {
ServiceRequestBottomSheet.waitingForApprovalBottomSheet(context: context).then((value){
requestDetailProvider.isVerifyArrivalBottomSheetOpen=false;
});
bool ?isArrived = await ServiceRequestUtils.listenForApproval();
bool? isArrived = await ServiceRequestUtils.listenForApproval();
if (requestDetailProvider.isVerifyArrivalBottomSheetOpen) {
if (isArrived == null) {
"Requester not confirmed you arrival".showToast;

@ -166,9 +166,10 @@ class _CreateNewRequestState extends State<CreateNewRequest> with TickerProvider
child: AppFilledButton(
// label: context.translation.submitRequest,
buttonColor: AppColor.primary10,
label: (pendingAssetServiceRequest != null && (pendingAssetServiceRequest!.details?.isNotEmpty ?? false))
? context.translation.duplicateRequest
: context.translation.createWorkOrder,
label:
// (pendingAssetServiceRequest != null && (pendingAssetServiceRequest!.details?.isNotEmpty ?? false))
// ? context.translation.duplicateRequest : // @FM said show create work order button text to create request not duplicate request
context.translation.createWorkOrder,
onPressed: checkPendingRequest ? null : _submit,
// buttonColor: AppColor.primary10,
),

Loading…
Cancel
Save