merge conflict resolved.

main_design2.0
Sikander Saleem 2 years ago
parent 47b863c479
commit 1ee58eeed9

@ -1,46 +1,46 @@
{ {
"login" : "تسجيل الدخول", "login": "تسجيل الدخول",
"enterCredsToLogin" : "أدخل بياناتك الخاصة لتسجيل الدخول", "enterCredsToLogin": "أدخل بياناتك الخاصة لتسجيل الدخول",
"forgotPassword" : "نسيت كلمة السر؟", "forgotPassword": "نسيت كلمة السر؟",
"password": "كلمة السر", "password": "كلمة السر",
"username" : "اسم المستخدم", "username": "اسم المستخدم",
"requiredField" : "الحقل مطلوب", "requiredField": "الحقل مطلوب",
"passwordLengthMessage" : "يجب أن تتكون كلمة السر من 6 خانات على الأقل", "passwordLengthMessage": "يجب أن تتكون كلمة السر من 6 خانات على الأقل",
"overview" : "نظرة عامة", "overview": "نظرة عامة",
"myRequests" : "طلباتي", "myRequests": "طلباتي",
"myAssets" : "أجهزتي", "myAssets": "أجهزتي",
"contactUs": "اتصل بنا", "contactUs": "اتصل بنا",
"welcome" : "مرحبا،", "welcome": "مرحبا،",
"openWhatsapp" : "الإنتقال الى الواتس اب", "openWhatsapp": "الإنتقال الى الواتس اب",
"callUs" : "إتصل بنا", "callUs": "إتصل بنا",
"liveChat" : "محادثة حية", "liveChat": "محادثة حية",
"gasRefillRequest" : "طلب إعادة تعبئة غاز", "gasRefillRequest": "طلب إعادة تعبئة غاز",
"transferRequest" : "طلب نقل", "transferRequest": "طلب نقل",
"serviceRequest" : "طلب خدمة", "serviceRequest": "طلب خدمة",
"newServiceRequest" : "طلب خدمة جديدة", "newServiceRequest": "طلب خدمة جديدة",
"newGasRefillRequest" : "طلب إعادة تعبئة غاز جديد", "newGasRefillRequest": "طلب إعادة تعبئة غاز جديد",
"newTransferRequest" : "طلب نقل جديد", "newTransferRequest": "طلب نقل جديد",
"submitRequest" : "تأكيد الطلب", "submitRequest": "تأكيد الطلب",
"select" : "إختر", "select": "إختر",
"gasType" : "نوع الغاز", "gasType": "نوع الغاز",
"quantity" : "الكمية", "quantity": "الكمية",
"cylinderType" : "نوع الأسطوانة", "cylinderType": "نوع الأسطوانة",
"cylinderSize" : "حجم الأسطوانة", "cylinderSize": "حجم الأسطوانة",
"department" : "القسم", "department": "القسم",
"httpError" : "خطأ فشل الطلب", "httpError": "خطأ فشل الطلب",
"tryAgain" : "أعد المحاولة", "tryAgain": "أعد المحاولة",
"destinationSite" : "موقع الوجهة", "destinationSite": "موقع الوجهة",
"add": "أضف", "add": "أضف",
"site" : "الموقع", "site": "الموقع",
"onlyNumbers": "يسمح بإدخال الأرقام فقط", "onlyNumbers": "يسمح بإدخال الأرقام فقط",
"youHaveToSelect" : "يجب عليك إختيار", "youHaveToSelect": "يجب عليك إختيار",
"building" : "المبنى", "building": "المبنى",
"floor" : "الطابق", "floor": "الطابق",
"youHaveToAddRequests" : "يجب إضافة طلبات", "youHaveToAddRequests": "يجب إضافة طلبات",
"createdSuccessfully" : "إكتمل الطلب بنجاح", "createdSuccessfully": "إكتمل الطلب بنجاح",
"failedToCompleteRequest" : "فشل إتمام الطلب", "failedToCompleteRequest": "فشل إتمام الطلب",
"assetNo" : "رقم الجهاز", "assetNo": "رقم الجهاز",
"manufacture" : "صناعة", "manufacture": "صناعة",
"model" : "الطراز", "model": "الطراز",
"serialNumber" : "الرقم التسلسلي" "serialNumber": "الرقم التسلسلي"
} }

@ -206,44 +206,48 @@
"pickFromFiles" : "اختر من الملفات", "pickFromFiles" : "اختر من الملفات",
"requiredFile" : "الملف مطلوب", "requiredFile" : "الملف مطلوب",
"pickFile" : "اختر ملف", "pickFile" : "اختر ملف",
"login" : "تسجيل الدخول", "login" : "تسجيل الدخول",
"enterCredsToLogin" : "أدخل بياناتك الخاصة لتسجيل الدخول", "enterCredsToLogin" : "أدخل بياناتك الخاصة لتسجيل الدخول",
"forgotPassword" : "نسيت كلمة السر؟", "forgotPassword" : "نسيت كلمة السر؟",
"password": "كلمة السر", "password": "كلمة السر",
"username" : "اسم المستخدم", "username" : "اسم المستخدم",
"requiredField" : "الحقل مطلوب", "requiredField" : "الحقل مطلوب",
"passwordLengthMessage" : "يجب أن تتكون كلمة السر من 6 خانات على الأقل", "passwordLengthMessage" : "يجب أن تتكون كلمة السر من 6 خانات على الأقل",
"overview" : "نظرة عامة", "overview" : "نظرة عامة",
"myRequests" : "طلباتي", "myRequests" : "طلباتي",
"myAssets" : "ممتلكاتي", "myAssets" : "ممتلكاتي",
"contactUs": "اتصل بنا", "contactUs": "اتصل بنا",
"welcome" : "مرحبا،", "welcome" : "مرحبا،",
"openWhatsapp" : "الإنتقال الى الواتس اب", "openWhatsapp" : "الإنتقال الى الواتس اب",
"callUs" : "إتصل بنا", "callUs" : "إتصل بنا",
"liveChat" : "محادثة حية", "liveChat" : "محادثة حية",
"gasRefillRequest" : "طلب إعادة تعبئة غاز", "gasRefillRequest" : "طلب إعادة تعبئة غاز",
"transferRequest" : "طلب نقل", "transferRequest" : "طلب نقل",
"serviceRequest" : "طلب خدمة", "serviceRequest" : "طلب خدمة",
"newServiceRequest" : "طلب خدمة جديدة", "newServiceRequest" : "طلب خدمة جديدة",
"newGasRefillRequest" : "طلب إعادة تعبئة غاز جديد", "newGasRefillRequest" : "طلب إعادة تعبئة غاز جديد",
"newTransferRequest" : "طلب نقل جديد", "newTransferRequest" : "طلب نقل جديد",
"submitRequest" : "تأكيد الطلب", "submitRequest" : "تأكيد الطلب",
"select" : "إختر", "select" : "إختر",
"gasType" : "نوع الغاز", "gasType" : "نوع الغاز",
"quantity" : "الكمية", "quantity" : "الكمية",
"cylinderType" : "نوع الأسطوانة", "cylinderType" : "نوع الأسطوانة",
"cylinderSize" : "حجم الأسطوانة", "cylinderSize" : "حجم الأسطوانة",
"department" : "القسم", "department" : "القسم",
"httpError" : "خطأ فشل الطلب", "httpError" : "خطأ فشل الطلب",
"tryAgain" : "أعد المحاولة", "tryAgain" : "أعد المحاولة",
"destinationSite" : "موقع الوجهة", "destinationSite" : "موقع الوجهة",
"add": "أضف", "add": "أضف",
"site" : "الموقع", "site" : "الموقع",
"onlyNumbers": "يسمح بإدخال الأرقام فقط", "onlyNumbers": "يسمح بإدخال الأرقام فقط",
"youHaveToSelect" : "يجب عليك إختيار", "youHaveToSelect" : "يجب عليك إختيار",
"building" : "المبنى", "building" : "المبنى",
"floor" : "الطابق", "floor" : "الطابق",
"youHaveToAddRequests" : "يجب إضافة طلبات", "youHaveToAddRequests" : "يجب إضافة طلبات",
"createdSuccessfully" : "إكتمل الطلب بنجاح", "createdSuccessfully" : "إكتمل الطلب بنجاح",
"failedToCompleteRequest" : "فشل إتمام الطلب" "failedToCompleteRequest" : "فشل إتمام الطلب",
"assetNo" : "رقم الجهاز",
"manufacture" : "صناعة",
"model" : "الطراز",
"serialNumber" : "الرقم التسلسلي"
} }

@ -206,44 +206,48 @@
"pickFromFiles" : "Pick From Files", "pickFromFiles" : "Pick From Files",
"requiredFile" : "File Required", "requiredFile" : "File Required",
"pickFile" : "Pick File", "pickFile" : "Pick File",
"login" : "Login", "login" : "Login",
"enterCredsToLogin" : "Enter your credential to login", "enterCredsToLogin" : "Enter your credential to login",
"forgotPassword" : "Forgot Password?", "forgotPassword" : "Forgot Password?",
"password" : "Password", "password" : "Password",
"username" : "Username", "username" : "Username",
"requiredField" : "Required Field", "requiredField" : "Required Field",
"passwordLengthMessage" : "Password must has at least 6 characters", "passwordLengthMessage" : "Password must has at least 6 characters",
"overview" : "Overview", "overview" : "Overview",
"myRequests" : "My Request", "myRequests" : "My Request",
"myAssets" : "My Assets", "myAssets" : "My Assets",
"contactUs": "Contact Us", "contactUs": "Contact Us",
"welcome" : "Welcome,", "welcome" : "Welcome,",
"openWhatsapp" : "Open WhatsApp", "openWhatsapp" : "Open WhatsApp",
"callUs" : "Call Us", "callUs" : "Call Us",
"liveChat" : "Live Chat", "liveChat" : "Live Chat",
"gasRefillRequest" : "Gas Refill Request", "gasRefillRequest" : "Gas Refill Request",
"transferRequest" : "Transfer Request", "transferRequest" : "Transfer Request",
"serviceRequest" : "Service Request", "serviceRequest" : "Service Request",
"newServiceRequest" : "New Service Request", "newServiceRequest" : "New Service Request",
"newGasRefillRequest" : "New Gas Refill Request", "newGasRefillRequest" : "New Gas Refill Request",
"newTransferRequest" : "New Transfer Request", "newTransferRequest" : "New Transfer Request",
"submitRequest" : "Submit Request", "submitRequest" : "Submit Request",
"select" : "Select", "select" : "Select",
"gasType": "Gas Type", "gasType": "Gas Type",
"quantity" : "Quantity", "quantity" : "Quantity",
"cylinderType" : "Cylinder Type", "cylinderType" : "Cylinder Type",
"cylinderSize" : "Cylinder Size", "cylinderSize" : "Cylinder Size",
"department" : "Department", "department" : "Department",
"httpError" : "Error Request Failed", "httpError" : "Error Request Failed",
"tryAgain" : "Try Again", "tryAgain" : "Try Again",
"destinationSite" : "Destination Site", "destinationSite" : "Destination Site",
"add": "Add", "add": "Add",
"site" : "Site", "site" : "Site",
"onlyNumbers": "Only Numbers Allowed", "onlyNumbers": "Only Numbers Allowed",
"youHaveToSelect" : "You have to select", "youHaveToSelect" : "You have to select",
"building" : "Building", "building" : "Building",
"floor" : "Floor", "floor" : "Floor",
"youHaveToAddRequests" : "You have to add requests", "youHaveToAddRequests" : "You have to add requests",
"createdSuccessfully" : "Created successfully", "createdSuccessfully" : "Created successfully",
"failedToCompleteRequest" : "Failed to complete request" "failedToCompleteRequest" : "Failed to complete request",
"assetNo" : "Asset No.",
"manufacture" : "Manufacture",
"model" : "Model",
"serialNumber" : "Serial Number"
} }

@ -1,11 +1,9 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/device_transfer_provider.dart';
import 'package:test_sa/controllers/localization/localization.dart'; import 'package:test_sa/controllers/localization/localization.dart';
import 'package:test_sa/controllers/providers/api/asset_transfer_provider.dart'; import 'package:test_sa/controllers/providers/api/asset_transfer_provider.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/models/device/device_transfer.dart';
import 'package:test_sa/models/device/asset_transfer.dart'; import 'package:test_sa/models/device/asset_transfer.dart';
import 'package:test_sa/views/app_style/colors.dart'; import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/app_style/sizing.dart'; import 'package:test_sa/views/app_style/sizing.dart';

@ -127,7 +127,7 @@ class CreateRequestPageState extends State<CreateRequestPage> {
return Scaffold( return Scaffold(
key: _scaffoldKey, key: _scaffoldKey,
appBar: const DefaultAppBar(title: TranslationKeys.newServiceRequest), appBar: DefaultAppBar(title: context.translation.newServiceRequest),
body: SafeArea( body: SafeArea(
child: LoadingManager( child: LoadingManager(
isLoading: _isLoading, isLoading: _isLoading,
@ -252,7 +252,7 @@ class CreateRequestPageState extends State<CreateRequestPage> {
ATextFormField( ATextFormField(
controller: _reviewCommentController, controller: _reviewCommentController,
initialValue: _serviceRequest.reviewComment, initialValue: _serviceRequest.reviewComment,
hintText: _subtitle.comment, hintText: context.translation.comment,
style: Theme.of(context).textTheme.titleMedium, style: Theme.of(context).textTheme.titleMedium,
textInputType: TextInputType.multiline, textInputType: TextInputType.multiline,
onSaved: (value) { onSaved: (value) {
@ -262,7 +262,7 @@ class CreateRequestPageState extends State<CreateRequestPage> {
), ),
12.height, 12.height,
MultiFilesPicker( MultiFilesPicker(
label: _subtitle.deviceFiles, label: context.translation.deviceFiles,
files: _deviceImages, files: _deviceImages,
enabled: widget.serviceRequest == null ? true : false, enabled: widget.serviceRequest == null ? true : false,
), ),
@ -275,11 +275,11 @@ class CreateRequestPageState extends State<CreateRequestPage> {
ATextFormField( ATextFormField(
controller: _maintenanceController, controller: _maintenanceController,
initialValue: _serviceRequest.callComments, initialValue: _serviceRequest.callComments,
hintText: _subtitle.maintenanceIssue, hintText: context.translation.maintenanceIssue,
prefixIconData: FontAwesomeIcons.triangleExclamation, prefixIconData: FontAwesomeIcons.triangleExclamation,
style: Theme.of(context).textTheme.titleLarge, style: Theme.of(context).textTheme.titleLarge,
textInputType: TextInputType.multiline, textInputType: TextInputType.multiline,
validator: (value) => widget.serviceRequest != null || Validator.hasValue(value) ? null : _subtitle.maintenanceIssueRequired, validator: (value) => widget.serviceRequest != null || Validator.hasValue(value) ? null : context.translation.maintenanceIssueRequired,
onSaved: (value) { onSaved: (value) {
_serviceRequest.callComments = value; _serviceRequest.callComments = value;
}, },
@ -302,7 +302,7 @@ class CreateRequestPageState extends State<CreateRequestPage> {
ATextFormField( ATextFormField(
controller: _commentController, controller: _commentController,
initialValue: _serviceRequest.comments, initialValue: _serviceRequest.comments,
hintText: _subtitle.comment, hintText: context.translation.comment,
style: Theme.of(context).textTheme.titleMedium, style: Theme.of(context).textTheme.titleMedium,
textInputType: TextInputType.multiline, textInputType: TextInputType.multiline,
onSaved: (value) { onSaved: (value) {
@ -316,7 +316,7 @@ class CreateRequestPageState extends State<CreateRequestPage> {
onPressed: () async { onPressed: () async {
if (!_formKey.currentState.validate()) return; if (!_formKey.currentState.validate()) return;
if (_asset?.id == null) { if (_asset?.id == null) {
Fluttertoast.showToast(msg: _subtitle.pickDevice); Fluttertoast.showToast(msg: context.translation.pickDevice);
return; return;
} }
if (_serviceRequest.firstAction?.name == "Need a visit" && _dateTime == null) { if (_serviceRequest.firstAction?.name == "Need a visit" && _dateTime == null) {
@ -361,17 +361,17 @@ class CreateRequestPageState extends State<CreateRequestPage> {
setState(() {}); setState(() {});
if (status >= 200 && status < 300) { if (status >= 200 && status < 300) {
Fluttertoast.showToast( Fluttertoast.showToast(
msg: _subtitle.requestCompleteSuccessfully, msg: context.translation.successfulRequestMessage,
); );
Navigator.of(context).pop(); Navigator.of(context).pop();
} else { } else {
String errorMessage = HttpStatusManger.getStatusMessage(status: status, subtitle: _subtitle); String errorMessage = HttpStatusManger.getStatusMessage(status: status, subtitle: context.translation);
ScaffoldMessenger.of(context).showSnackBar(SnackBar( ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(errorMessage), content: Text(errorMessage),
)); ));
} }
}, },
label: TranslationKeys.submitRequest), label: context.translation.submitRequest),
], ],
), ),
).paddingOnly(start: 16, end: 16, bottom: 24, top: 16), ).paddingOnly(start: 16, end: 16, bottom: 24, top: 16),

@ -5,6 +5,7 @@ import 'package:test_sa/controllers/localization/localization.dart';
import 'package:test_sa/controllers/providers/api/service_requests_provider.dart'; import 'package:test_sa/controllers/providers/api/service_requests_provider.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/controllers/providers/settings/setting_provider.dart'; import 'package:test_sa/controllers/providers/settings/setting_provider.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/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';

@ -21,8 +21,8 @@ class PickAsset extends StatelessWidget {
children: [ children: [
AppTextFormField( AppTextFormField(
enable: false, enable: false,
labelText: TranslationKeys.device, labelText: context.translation.device,
initialValue: context.translate(TranslationKeys.site), initialValue: context.translation.site,
suffixIcon: "qr".toSvgAsset(height: 24, fit: BoxFit.fitHeight).paddingOnly(end: 16), suffixIcon: "qr".toSvgAsset(height: 24, fit: BoxFit.fitHeight).paddingOnly(end: 16),
).onPress(() async { ).onPress(() async {
Device device = await Navigator.of(context).pushNamed(SingleDevicePicker.id) as Device; Device device = await Navigator.of(context).pushNamed(SingleDevicePicker.id) as Device;
@ -34,15 +34,15 @@ class PickAsset extends StatelessWidget {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch, crossAxisAlignment: CrossAxisAlignment.stretch,
children: [ children: [
context.translate(TranslationKeys.myAssets).heading5(context), context.translation.myAssets.heading5(context),
8.height, 8.height,
"${context.translate(TranslationKeys.assetNo)}: ${device.assetNumber}".bodyText(context), "${context.translation.assetNo}: ${device.assetNumber}".bodyText(context),
"${context.translate(TranslationKeys.manufacture)}: ${device.modelDefinition?.manufacturerName}".bodyText(context), "${context.translation.manufacture}: ${device.modelDefinition?.manufacturerName}".bodyText(context),
"${context.translate(TranslationKeys.model)}: ${device.modelDefinition?.modelName}".bodyText(context), "${context.translation.model}: ${device.modelDefinition?.modelName}".bodyText(context),
"${context.translate(TranslationKeys.serialNumber)}: ${device.assetNumber}".bodyText(context), "${context.translation.serialNumber}: ${device.assetNumber}".bodyText(context),
const Divider().defaultStyle(context), const Divider().defaultStyle(context),
"${context.translate(TranslationKeys.department)}: ${device.department?.departmentName}".bodyText(context), "${context.translation.department}: ${device.department?.departmentName}".bodyText(context),
"${context.translate(TranslationKeys.site)}: ${device.site?.custName}".bodyText(context), "${context.translation.site}: ${device.site?.custName}".bodyText(context),
], ],
).paddingAll(16), ).paddingAll(16),
), ),

Loading…
Cancel
Save