1- Service Request Type for end user profile should be by default Maintenance Request and locked field.

2- Through field in new service request should be by default APP and locked or hidden.

3- Rename text to speech to speech to text.
main_design2.0
zaid_daoud 2 years ago
parent 914a9e0057
commit 21f7986fa4

@ -66,4 +66,8 @@ class ServiceRequestedThroughProvider extends ChangeNotifier {
return -1;
}
}
Lookup getDefaultItem() {
return items?.firstWhere((element) => element.name.toLowerCase().contains("app"));
}
}

@ -66,4 +66,8 @@ class ServiceRequestTypeProvider extends ChangeNotifier {
return -1;
}
}
Lookup getDefaultItem() {
return items?.firstWhere((element) => element.name.toLowerCase().contains("maintenance"));
}
}

@ -31,6 +31,8 @@ import 'package:test_sa/views/widgets/status/service_request/service_request_thr
import 'package:test_sa/views/widgets/status/service_request/service_request_types_mune.dart';
import 'package:test_sa/views/widgets/titles/app_sub_title.dart';
import '../../../../controllers/providers/api/status_drop_down/service_reqest/service_request_through_provider.dart';
import '../../../../controllers/providers/api/status_drop_down/service_reqest/service_request_type_provider.dart';
import '../../../widgets/date_and_time/date_picker.dart';
import '../../../widgets/status/service_request/service_request_first_action.dart';
import '../../../widgets/status/service_request/service_request_loan_availability.dart';
@ -188,6 +190,7 @@ class CreateRequestPageState extends State<CreateRequestPage> {
),
ServiceRequestTypesMenu(
initialValue: _serviceRequest.type,
enabled: widget.serviceRequest != null,
onSelect: (status) {
_serviceRequest.type = status;
},
@ -201,9 +204,7 @@ class CreateRequestPageState extends State<CreateRequestPage> {
),
ServiceRequestedThroughMenu(
initialValue: _serviceRequest.requestedThrough,
onSelect: (status) {
_serviceRequest.requestedThrough = status;
},
enabled: false,
),
if (widget.serviceRequest != null) 12.height,
if (widget.serviceRequest != null) const ASubTitle("First Action"),
@ -316,6 +317,10 @@ class CreateRequestPageState extends State<CreateRequestPage> {
}
_formKey.currentState.save();
_serviceRequest.deviceId = _device?.id;
if (widget.serviceRequest == null) {
_serviceRequest.requestedThrough = Provider.of<ServiceRequestedThroughProvider>(context, listen: false).getDefaultItem();
_serviceRequest.type = Provider.of<ServiceRequestTypeProvider>(context, listen: false).getDefaultItem();
}
_isLoading = true;
setState(() {});
_serviceRequest.devicePhotos = _deviceImages.map((e) => "${e.path.split("/").last}|${base64Encode(e.readAsBytesSync())}").toList();

@ -5,9 +5,9 @@ import 'package:speech_to_text/speech_recognition_error.dart';
import 'package:speech_to_text/speech_recognition_result.dart';
import 'package:speech_to_text/speech_to_text.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
import 'package:test_sa/views/app_style/sizing.dart';
import 'package:test_sa/views/widgets/buttons/app_icon_button2.dart';
import 'package:test_sa/views/widgets/titles/app_sub_title.dart';
import 'package:test_sa/views/app_style/sizing.dart';
class SpeechToTextButton extends StatefulWidget {
final TextEditingController controller;
@ -86,7 +86,7 @@ class _SpeechToTextButtonState extends State<SpeechToTextButton> {
),
child: Row(
children: [
widget.mini ? SizedBox.shrink() : ASubTitle("Text To Speech"),
widget.mini ? const SizedBox.shrink() : const ASubTitle("Speech To Text"),
widget.controller.text.isNotEmpty
? AIconButton2(
iconData: Icons.delete,

@ -10,8 +10,9 @@ import 'package:test_sa/views/widgets/status/single_status_menu.dart';
class ServiceRequestedThroughMenu extends StatelessWidget {
final Function(Lookup) onSelect;
final Lookup initialValue;
final bool enabled;
const ServiceRequestedThroughMenu({Key key, this.onSelect, this.initialValue}) : super(key: key);
const ServiceRequestedThroughMenu({Key key, this.onSelect, this.initialValue, this.enabled = true}) : super(key: key);
@override
Widget build(BuildContext context) {
final settingProvider = Provider.of<SettingProvider>(context);
@ -26,9 +27,10 @@ class ServiceRequestedThroughMenu extends StatelessWidget {
await menuProvider.getData(user: userProvider.user, host: settingProvider.host);
},
child: SingleStatusMenu(
initialStatus: initialValue,
initialStatus: enabled ? initialValue : menuProvider.getDefaultItem(),
statuses: menuProvider.items,
onSelect: onSelect,
enabled: enabled,
));
}
}

@ -10,25 +10,28 @@ import 'package:test_sa/views/widgets/status/single_status_menu.dart';
class ServiceRequestTypesMenu extends StatelessWidget {
final Function(Lookup) onSelect;
final Lookup initialValue;
final bool enabled;
const ServiceRequestTypesMenu({Key key, this.onSelect, this.initialValue}) : super(key: key);
const ServiceRequestTypesMenu({Key key, this.onSelect, this.initialValue, this.enabled = true}) : super(key: key);
@override
Widget build(BuildContext context) {
final settingProvider = Provider.of<SettingProvider>(context);
final userProvider = Provider.of<UserProvider>(context);
final menuProvider = Provider.of<ServiceRequestTypeProvider>(context);
return LoadingManager(
isLoading: menuProvider.isLoading,
isFailedLoading: menuProvider.items == null,
stateCode: menuProvider.stateCode,
onRefresh: () async {
menuProvider.reset();
await menuProvider.getData(user: userProvider.user, host: settingProvider.host);
},
child: SingleStatusMenu(
initialStatus: initialValue,
statuses: menuProvider.items,
onSelect: onSelect,
));
isLoading: menuProvider.isLoading,
isFailedLoading: menuProvider.items == null,
stateCode: menuProvider.stateCode,
onRefresh: () async {
menuProvider.reset();
await menuProvider.getData(user: userProvider.user, host: settingProvider.host);
},
child: SingleStatusMenu(
initialStatus: enabled ? initialValue : menuProvider.getDefaultItem(),
statuses: menuProvider.items,
enabled: enabled,
onSelect: onSelect,
),
);
}
}

Loading…
Cancel
Save