Assistant Engineer can be unselected

main_design2.0
zaid_daoud 2 years ago
parent bd954c6873
commit 4309c509e8

@ -69,6 +69,7 @@ class ServiceReportAssistantsEmployeeProvider extends ChangeNotifier {
List usersListJson = json.decode(response.body);
_assistantEmployees = [];
_assistantEmployees = usersListJson.map((type) => Engineer.fromJson(type ?? {})).map((e) => AssistantEmployees(user: AssignedEmployee(id: e.id, name: e.name))).toList();
_assistantEmployees.insert(0, AssistantEmployees(id: -1, user: AssignedEmployee(id: "-1", name: "-- Select --")));
}
_loading = false;
notifyListeners();

@ -135,10 +135,11 @@ class _SingleItemDropDownMenuState<T extends Base, X extends LoadingListNotifier
onChanged: widget.enabled == false
? null
: (T newValue) {
final isNull = newValue.identifier == "-1";
setState(() {
_selectedItem = newValue;
_selectedItem = isNull ? null : newValue;
});
widget.onSelect(newValue);
widget.onSelect(isNull ? null : newValue);
},
items: ((X == NullableLoadingProvider) ? widget.staticData : provider.items)?.map<DropdownMenuItem<T>>((value) {
return DropdownMenuItem<T>(

@ -317,7 +317,11 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
: null,
enabled: !isCurrentAssigned,
onSelect: (employee) {
_subWorkOrders.assistantEmployees = [employee?.copyWith(id: 0)];
if (employee == null) {
_subWorkOrders.assistantEmployees = [];
} else {
_subWorkOrders.assistantEmployees = [employee?.copyWith(id: 0)];
}
},
),
8.height,

@ -97,7 +97,11 @@ class _WorkOrderDetailsBottomSheetState extends State<WorkOrderDetailsBottomShee
assetId: widget.assetId,
initialValue: (_workOrder.assistantEmployees?.isNotEmpty ?? false) ? _workOrder.assistantEmployees?.first : null,
onSelect: (assistantsEmployee) {
_workOrder.assistantEmployees = [assistantsEmployee];
if (assistantsEmployee == null) {
_workOrder.assistantEmployees = [];
} else {
_workOrder.assistantEmployees = [assistantsEmployee];
}
},
),
const SizedBox(height: 8),

@ -238,7 +238,11 @@ class _CreateServiceReportState extends State<CreateServiceReport> with TickerPr
assetId: _serviceReport.callRequest?.asset?.id,
initialValue: (_serviceReport.assistantEmployees?.isNotEmpty ?? false) ? _serviceReport.assistantEmployees?.first : null,
onSelect: (employee) {
_serviceReport.assistantEmployees = [employee?.copyWith(id: 0)];
if (employee == null) {
_serviceReport.assistantEmployees = [];
} else {
_serviceReport.assistantEmployees = [employee?.copyWith(id: 0)];
}
},
),
8.height,

@ -223,7 +223,11 @@ class _EditServiceReportState extends State<EditServiceReport> with TickerProvid
assetId: _serviceReport.callRequest?.asset?.id,
initialValue: (_serviceReport.assistantEmployees?.isNotEmpty ?? false) ? _serviceReport.assistantEmployees?.first : null,
onSelect: (employee) {
_serviceReport.assistantEmployees = [employee?.copyWith(id: 0)];
if (employee == null) {
_serviceReport.assistantEmployees = [];
} else {
_serviceReport.assistantEmployees = [employee?.copyWith(id: 0)];
}
},
),
8.height,

@ -7,7 +7,7 @@ import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
import '../../../../controllers/providers/api/status_drop_down/report/service_report_assistants_employee_provider.dart';
import '../../../../models/new_models/assistant_employee.dart';
class ServiceReportAssistantEmployeeMenu extends StatelessWidget {
class ServiceReportAssistantEmployeeMenu extends StatefulWidget {
final Function(AssistantEmployees) onSelect;
final AssistantEmployees initialValue;
final String title;
@ -16,6 +16,28 @@ class ServiceReportAssistantEmployeeMenu extends StatelessWidget {
const ServiceReportAssistantEmployeeMenu({Key key, this.enabled = true, @required this.onSelect, @required this.assetId, this.title, this.initialValue}) : super(key: key);
@override
State<ServiceReportAssistantEmployeeMenu> createState() => _ServiceReportAssistantEmployeeMenuState();
}
class _ServiceReportAssistantEmployeeMenuState extends State<ServiceReportAssistantEmployeeMenu> {
AssistantEmployees _initialValue;
@override
void initState() {
_initialValue = widget.initialValue;
super.initState();
}
@override
void didUpdateWidget(covariant ServiceReportAssistantEmployeeMenu oldWidget) {
if (widget.initialValue != oldWidget.initialValue) {
_initialValue = widget.initialValue;
setState(() {});
}
super.didUpdateWidget(oldWidget);
}
@override
Widget build(BuildContext context) {
ServiceReportAssistantsEmployeeProvider menuProvider = Provider.of<ServiceReportAssistantsEmployeeProvider>(context);
@ -24,15 +46,15 @@ class ServiceReportAssistantEmployeeMenu extends StatelessWidget {
isFailedLoading: menuProvider.assistantEmployees == null,
stateCode: menuProvider.stateCode,
onRefresh: () async {
await menuProvider.getAssistantEmployees(assetId);
await menuProvider.getAssistantEmployees(widget.assetId);
},
child: SingleItemDropDownMenu<AssistantEmployees, NullableLoadingProvider>(
title: title,
title: widget.title,
context: context,
enabled: enabled,
initialValue: initialValue,
enabled: widget.enabled,
initialValue: _initialValue,
staticData: menuProvider.assistantEmployees,
onSelect: onSelect,
onSelect: widget.onSelect,
),
// child: AssistantEmployeeMenu(
// title: title,

Loading…
Cancel
Save