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); List usersListJson = json.decode(response.body);
_assistantEmployees = []; _assistantEmployees = [];
_assistantEmployees = usersListJson.map((type) => Engineer.fromJson(type ?? {})).map((e) => AssistantEmployees(user: AssignedEmployee(id: e.id, name: e.name))).toList(); _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; _loading = false;
notifyListeners(); notifyListeners();

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

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

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

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

@ -223,7 +223,11 @@ class _EditServiceReportState extends State<EditServiceReport> with TickerProvid
assetId: _serviceReport.callRequest?.asset?.id, assetId: _serviceReport.callRequest?.asset?.id,
initialValue: (_serviceReport.assistantEmployees?.isNotEmpty ?? false) ? _serviceReport.assistantEmployees?.first : null, initialValue: (_serviceReport.assistantEmployees?.isNotEmpty ?? false) ? _serviceReport.assistantEmployees?.first : null,
onSelect: (employee) { onSelect: (employee) {
_serviceReport.assistantEmployees = [employee?.copyWith(id: 0)]; if (employee == null) {
_serviceReport.assistantEmployees = [];
} else {
_serviceReport.assistantEmployees = [employee?.copyWith(id: 0)];
}
}, },
), ),
8.height, 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 '../../../../controllers/providers/api/status_drop_down/report/service_report_assistants_employee_provider.dart';
import '../../../../models/new_models/assistant_employee.dart'; import '../../../../models/new_models/assistant_employee.dart';
class ServiceReportAssistantEmployeeMenu extends StatelessWidget { class ServiceReportAssistantEmployeeMenu extends StatefulWidget {
final Function(AssistantEmployees) onSelect; final Function(AssistantEmployees) onSelect;
final AssistantEmployees initialValue; final AssistantEmployees initialValue;
final String title; 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); 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 @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
ServiceReportAssistantsEmployeeProvider menuProvider = Provider.of<ServiceReportAssistantsEmployeeProvider>(context); ServiceReportAssistantsEmployeeProvider menuProvider = Provider.of<ServiceReportAssistantsEmployeeProvider>(context);
@ -24,15 +46,15 @@ class ServiceReportAssistantEmployeeMenu extends StatelessWidget {
isFailedLoading: menuProvider.assistantEmployees == null, isFailedLoading: menuProvider.assistantEmployees == null,
stateCode: menuProvider.stateCode, stateCode: menuProvider.stateCode,
onRefresh: () async { onRefresh: () async {
await menuProvider.getAssistantEmployees(assetId); await menuProvider.getAssistantEmployees(widget.assetId);
}, },
child: SingleItemDropDownMenu<AssistantEmployees, NullableLoadingProvider>( child: SingleItemDropDownMenu<AssistantEmployees, NullableLoadingProvider>(
title: title, title: widget.title,
context: context, context: context,
enabled: enabled, enabled: widget.enabled,
initialValue: initialValue, initialValue: _initialValue,
staticData: menuProvider.assistantEmployees, staticData: menuProvider.assistantEmployees,
onSelect: onSelect, onSelect: widget.onSelect,
), ),
// child: AssistantEmployeeMenu( // child: AssistantEmployeeMenu(
// title: title, // title: title,

Loading…
Cancel
Save