From 1db543710e801d2b0ecf6ba95f14e03078c2cec2 Mon Sep 17 00:00:00 2001 From: zaid_daoud Date: Sun, 15 Oct 2023 10:41:26 +0300 Subject: [PATCH] Working on gas request screen --- assets/translations/ar.json | 6 +++- assets/translations/en.json | 6 +++- lib/main.dart | 2 ++ lib/models/enums/translation_keys.dart | 4 +++ .../common_widgets/app_loading_manager.dart | 7 ++-- .../pages/new_gas_refill_request_page.dart | 10 ++++++ lib/providers/department_provider.dart | 34 +++++++++++++++++++ .../cylinder_size_provider.dart | 2 +- .../cylinder_type_provider.dart | 2 +- 9 files changed, 66 insertions(+), 7 deletions(-) create mode 100644 lib/providers/department_provider.dart diff --git a/assets/translations/ar.json b/assets/translations/ar.json index 44682580..e5cb7f49 100644 --- a/assets/translations/ar.json +++ b/assets/translations/ar.json @@ -25,5 +25,9 @@ "gasType" : "نوع الغاز", "quantity" : "الكمية", "cylinderType" : "نوع الأسطوانة", - "cylinderSize" : "حجم الأسطوانة" + "cylinderSize" : "حجم الأسطوانة", + "department" : "القسم", + "httpError" : "خطأ فشل الطلب", + "tryAgain" : "أعد المحاولة", + "destinationSite" : "موقع الوجهة" } \ No newline at end of file diff --git a/assets/translations/en.json b/assets/translations/en.json index 7ade24cb..db99e7b7 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -25,5 +25,9 @@ "gasType": "Gas Type", "quantity" : "Quantity", "cylinderType" : "Cylinder Type", - "cylinderSize" : "Cylinder Size" + "cylinderSize" : "Cylinder Size", + "department" : "Department", + "httpError" : "Error Request Failed", + "tryAgain" : "Try Again", + "destinationSite" : "Destination Site" } \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index d592e61e..dcb13855 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -12,6 +12,7 @@ import 'package:test_sa/new_views/pages/login_page.dart'; import 'package:test_sa/new_views/pages/new_service_request_page.dart'; import 'package:test_sa/new_views/pages/new_transfer_request_page.dart'; import 'package:test_sa/new_views/pages/splash_page.dart'; +import 'package:test_sa/providers/department_provider.dart'; import 'package:test_sa/providers/gas_request_providers/cylinder_size_provider.dart'; import 'package:test_sa/providers/gas_request_providers/cylinder_type_provider.dart'; import 'package:test_sa/providers/gas_request_providers/gas_types_provider.dart'; @@ -58,6 +59,7 @@ class MyApp extends StatelessWidget { ChangeNotifierProvider(create: (_) => GasTypesProvider()), ChangeNotifierProvider(create: (_) => CylinderTypesProvider()), ChangeNotifierProvider(create: (_) => CylinderSizeProvider()), + ChangeNotifierProvider(create: (_) => DepartmentProvider()), ], child: GestureDetector( onTap: () { diff --git a/lib/models/enums/translation_keys.dart b/lib/models/enums/translation_keys.dart index c4a099f7..552a83aa 100644 --- a/lib/models/enums/translation_keys.dart +++ b/lib/models/enums/translation_keys.dart @@ -26,4 +26,8 @@ enum TranslationKeys { quantity, cylinderType, cylinderSize, + department, + httpError, + tryAgain, + destinationSite, } diff --git a/lib/new_views/common_widgets/app_loading_manager.dart b/lib/new_views/common_widgets/app_loading_manager.dart index f29fef1e..eed936a0 100644 --- a/lib/new_views/common_widgets/app_loading_manager.dart +++ b/lib/new_views/common_widgets/app_loading_manager.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/int_extensions.dart'; +import 'package:test_sa/models/enums/translation_keys.dart'; import 'package:test_sa/new_views/common_widgets/app_lazy_loading.dart'; import '../app_style/app_color.dart'; @@ -69,11 +70,11 @@ class _AppLoadingManagerState extends State { child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ - Text("Error Request Failed", style: Theme.of(context).textTheme.titleMedium), - 16.height, + Text(context.translate(TranslationKeys.httpError), style: Theme.of(context).textTheme.titleMedium), + 4.height, OutlinedButton( onPressed: widget.onRefresh, - child: const Text("try again"), + child: Text(context.translate(TranslationKeys.tryAgain)), ) ], ), diff --git a/lib/new_views/pages/new_gas_refill_request_page.dart b/lib/new_views/pages/new_gas_refill_request_page.dart index 58e9a7ff..e445d074 100644 --- a/lib/new_views/pages/new_gas_refill_request_page.dart +++ b/lib/new_views/pages/new_gas_refill_request_page.dart @@ -45,6 +45,16 @@ class NewGasRefillRequestPage extends StatelessWidget { title: TranslationKeys.cylinderSize, ), 8.height, + // SingleItemDropDownMenu( + // context: context, + // title: TranslationKeys.department, + // ), + // 8.height, + // SingleItemDropDownMenu( + // context: context, + // title: TranslationKeys.destinationSite, + // ), + // 8.height, ], ), ), diff --git a/lib/providers/department_provider.dart b/lib/providers/department_provider.dart new file mode 100644 index 00000000..4575b580 --- /dev/null +++ b/lib/providers/department_provider.dart @@ -0,0 +1,34 @@ +import 'dart:convert'; + +import 'package:http/http.dart'; + +import '../../controllers/api_routes/api_manager.dart'; +import '../../controllers/api_routes/urls.dart'; +import '../../models/lookup.dart'; +import 'loading_list_notifier.dart'; + +class DepartmentProvider extends LoadingListNotifier { + @override + Future getDate() async { + if (loading ?? false) return -2; + loading = true; + notifyListeners(); + try { + Response response = await ApiManager.instance.get(URLs.getDepartments); + stateCode = response.statusCode; + if (response.statusCode >= 200 && response.statusCode < 300) { + // client's request was successfully received + List categoriesListJson = json.decode(response.body)["data"]; + items = categoriesListJson.map((item) => Lookup.fromJson(item)).toList(); + } + loading = false; + notifyListeners(); + return response.statusCode; + } catch (error) { + loading = false; + stateCode = -1; + notifyListeners(); + return -1; + } + } +} diff --git a/lib/providers/gas_request_providers/cylinder_size_provider.dart b/lib/providers/gas_request_providers/cylinder_size_provider.dart index 7f6a574b..c2c7e82f 100644 --- a/lib/providers/gas_request_providers/cylinder_size_provider.dart +++ b/lib/providers/gas_request_providers/cylinder_size_provider.dart @@ -14,7 +14,7 @@ class CylinderSizeProvider extends LoadingListNotifier { loading = true; notifyListeners(); try { - Response response = await ApiManager.instance.get(URLs.getGasTypes); + Response response = await ApiManager.instance.get(URLs.getGasCylinderSize); stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { // client's request was successfully received diff --git a/lib/providers/gas_request_providers/cylinder_type_provider.dart b/lib/providers/gas_request_providers/cylinder_type_provider.dart index 165c0dd9..8e17bbd6 100644 --- a/lib/providers/gas_request_providers/cylinder_type_provider.dart +++ b/lib/providers/gas_request_providers/cylinder_type_provider.dart @@ -14,7 +14,7 @@ class CylinderTypesProvider extends LoadingListNotifier { loading = true; notifyListeners(); try { - Response response = await ApiManager.instance.get(URLs.getGasTypes); + Response response = await ApiManager.instance.get(URLs.getGasCylinderType); stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { // client's request was successfully received