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/int_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; 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/new_views/pages/land_page/land_page.dart';
import '../app_style/app_color.dart'; import '../app_style/app_color.dart';
@ -10,10 +11,29 @@ class DefaultAppBar extends StatelessWidget implements PreferredSizeWidget {
final String? title; final String? title;
final List<Widget>? actions; final List<Widget>? actions;
final Function? onBackPress; 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 @override
Widget build(BuildContext context) { 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( return AppBar(
automaticallyImplyLeading: false, automaticallyImplyLeading: false,
titleSpacing: 16, titleSpacing: 16,
@ -33,7 +53,7 @@ class DefaultAppBar extends StatelessWidget implements PreferredSizeWidget {
).expanded, ).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.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), context.translation.account.customHeadingText(context).custom(color: Colors.white, fontSize: 27, fontWeight: FontWeight.w500),
15.height, 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}) { {required WorkOrderNextStepEnum workOrderNextStepStatus, List<Activities> activities = const [], required BuildContext context, required UserProvider userProvider}) {
ServiceRequestDetailProvider requestDetailProvider = Provider.of<ServiceRequestDetailProvider>(context, listen: false); 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) { if (userProvider.user?.type == UsersTypes.engineer) {
switch (workOrderNextStepStatus) { switch (workOrderNextStepStatus) {
case WorkOrderNextStepEnum.onlyView: 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/controllers/providers/api/user_provider.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.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/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';
@ -41,8 +40,6 @@ class ActivitiesListView extends StatefulWidget {
} }
class _ActivitiesListViewState extends State<ActivitiesListView> { class _ActivitiesListViewState extends State<ActivitiesListView> {
bool showReorderView = false;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@ -62,49 +59,54 @@ class _ActivitiesListViewState extends State<ActivitiesListView> {
UserProvider userProvider = Provider.of<UserProvider>(context); UserProvider userProvider = Provider.of<UserProvider>(context);
return Scaffold( return Scaffold(
appBar: DefaultAppBar( appBar: DefaultAppBar(
showHomeActionButton: true,
title: context.translation.activities, 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), //backgroundColor: const Color(0xfff8f9fb),
body: Consumer<ServiceRequestDetailProvider>(builder: (context, ServiceRequestDetailProvider requestDetailProvider, child) { 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( return Column(
children: [ children: [
(activities.isEmpty && reOrderActivities.isEmpty) (activities.isEmpty && reOrderActivities.isEmpty)
? NoDataFound(message: context.translation.noDataFound).expanded ? NoDataFound(message: context.translation.noDataFound).expanded
: showReorderView :
? ReorderableListView( // : showReorderView
padding: const EdgeInsets.all(16), // ? ReorderableListView(
children: [ // padding: const EdgeInsets.all(16),
for (int index = 0; index < reOrderActivities.length; index++) // children: [
if (reOrderActivities[index].activityMaintenance != null) // for (int index = 0; index < reOrderActivities.length; index++)
ReorderWidget( // if (reOrderActivities[index].activityMaintenance != null)
key: ValueKey(index), // ReorderWidget(
child: maintenanceActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: reOrderActivities[index]) // key: ValueKey(index),
.paddingOnly(top: 8, bottom: 8), // child: maintenanceActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: reOrderActivities[index])
) // .paddingOnly(top: 8, bottom: 8),
else // )
ReorderWidget( // else
key: ValueKey(index), // ReorderWidget(
child: sparePartActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: reOrderActivities[index]) // key: ValueKey(index),
.paddingOnly(top: 8, bottom: 8), // child: sparePartActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: reOrderActivities[index])
) // .paddingOnly(top: 8, bottom: 8),
], // )
onReorder: (oldIndex, newIndex) { // ],
setState(() { // onReorder: (oldIndex, newIndex) {
if (oldIndex < newIndex) { // setState(() {
newIndex -= 1; // if (oldIndex < newIndex) {
} // newIndex -= 1;
final Activities item = reOrderActivities.removeAt(oldIndex); // }
reOrderActivities.insert(newIndex, item); // final Activities item = reOrderActivities.removeAt(oldIndex);
}); // reOrderActivities.insert(newIndex, item);
}).expanded // });
: ListView.separated( // }).expanded
// :
ListView.separated(
padding: const EdgeInsets.all(16), padding: const EdgeInsets.all(16),
itemCount: activities.length, itemCount: activities.length,
separatorBuilder: (czt, index) => 16.height, separatorBuilder: (czt, index) => 16.height,
@ -120,22 +122,22 @@ class _ActivitiesListViewState extends State<ActivitiesListView> {
(requestDetailProvider.currentWorkOrder?.data?.status?.value != 5 && requestDetailProvider.currentWorkOrder?.data?.status?.value != 3)) (requestDetailProvider.currentWorkOrder?.data?.status?.value != 5 && requestDetailProvider.currentWorkOrder?.data?.status?.value != 3))
FooterActionButton.footerContainer( FooterActionButton.footerContainer(
child: AppFilledButton( child: AppFilledButton(
label: showReorderView ? "Confirm Order".addTranslation : context.translation.createNewActivity, label: context.translation.createNewActivity,
maxWidth: true, maxWidth: true,
buttonColor: AppColor.primary10, buttonColor: AppColor.primary10,
loading: requestDetailProvider.isLoading, loading: requestDetailProvider.isLoading,
onPressed: () async { onPressed: () async {
if (showReorderView) { // if (showReorderView) {
// requestDetailProvider.currentWorkOrder!.data!.activities = reOrderActivities; // // requestDetailProvider.currentWorkOrder!.data!.activities = reOrderActivities;
List<Map<String, dynamic>> data = []; // List<Map<String, dynamic>> data = [];
for (int i = 0; i < reOrderActivities.length; i++) { // for (int i = 0; i < reOrderActivities.length; i++) {
data.add({"id": reOrderActivities[i].id, "orderNo": i}); // data.add({"id": reOrderActivities[i].id, "orderNo": i});
} // }
reOrderActivities = []; // reOrderActivities = [];
requestDetailProvider.reOrderActivities(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, reOrderActivityDTOs: data); // requestDetailProvider.reOrderActivities(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, reOrderActivityDTOs: data);
showReorderView = false; // showReorderView = false;
return; // return;
} // }
ServiceRequestBottomSheet.activityTypeBottomSheet(context: context); ServiceRequestBottomSheet.activityTypeBottomSheet(context: context);
}, },
)) ))

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

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

Loading…
Cancel
Save