asset loading fix.

main_design2.0
Sikander Saleem 8 months ago
parent bddc7ded1f
commit e2750094d9

@ -43,7 +43,7 @@ class _AssetDetailPageState extends State<AssetDetailPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
assetId ??= ModalRoute.of(context).settings.arguments; assetId ??= ModalRoute.of(context).settings.arguments;
_assetProvider ??= Provider.of<AssetProvider>(context); _assetProvider ??= Provider.of<AssetProvider>(context, listen: false);
_assetProvider?.stateCode = null; _assetProvider?.stateCode = null;
return Scaffold( return Scaffold(
appBar: DefaultAppBar(title: context.translation.assetDetails), appBar: DefaultAppBar(title: context.translation.assetDetails),
@ -62,6 +62,7 @@ class _AssetDetailPageState extends State<AssetDetailPage> {
return const Center(child: ALoading()); return const Center(child: ALoading());
} else if (snapshot.hasData) {} } else if (snapshot.hasData) {}
if (snapshot.hasData) { if (snapshot.hasData) {
AssetByIdModel assetModel = snapshot.data;
return SingleChildScrollView( return SingleChildScrollView(
padding: const EdgeInsets.all(16), padding: const EdgeInsets.all(16),
child: Column( child: Column(
@ -80,7 +81,7 @@ class _AssetDetailPageState extends State<AssetDetailPage> {
image: DecorationImage( image: DecorationImage(
fit: BoxFit.cover, fit: BoxFit.cover,
image: NetworkImage( image: NetworkImage(
_assetProvider.assetById?.assetPhoto != null ? URLs.getFileUrl(_assetProvider.assetById.assetPhoto) : "https://www.lasteelcraft.com/images/no-image-available.png"), assetModel?.assetPhoto != null ? URLs.getFileUrl(assetModel.assetPhoto) : "https://www.lasteelcraft.com/images/no-image-available.png"),
)), )),
), ),
), ),
@ -89,14 +90,14 @@ class _AssetDetailPageState extends State<AssetDetailPage> {
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
if (_assetProvider.assetById.commissioningStatus != null) if (assetModel.commissioningStatus != null)
StatusLabel( StatusLabel(
label: _assetProvider.assetById.commissioningStatus.name, label: assetModel.commissioningStatus.name,
textColor: AppColor.getRequestStatusTextColorByName(context, _assetProvider.assetById.commissioningStatus.name), textColor: AppColor.getRequestStatusTextColorByName(context, assetModel.commissioningStatus.name),
backgroundColor: AppColor.getRequestStatusColorByName(context, _assetProvider.assetById.commissioningStatus.name), backgroundColor: AppColor.getRequestStatusColorByName(context, assetModel.commissioningStatus.name),
), ),
if (_assetProvider.assetById.commissioningStatus != null) 8.height, if (assetModel.commissioningStatus != null) 8.height,
(_assetProvider.assetById?.modelDefinition?.assetName?.cleanupWhitespace?.capitalizeFirstOfEach ?? "-").heading5(context), (assetModel?.modelDefinition?.assetName?.cleanupWhitespace?.capitalizeFirstOfEach ?? "-").heading5(context),
8.height, 8.height,
Row( Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@ -104,11 +105,11 @@ class _AssetDetailPageState extends State<AssetDetailPage> {
Column( Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
"${context.translation.assetNo}: ${_assetProvider.assetById.multiAssets.first.assetNumber}".bodyText(context), "${context.translation.assetNo}: ${assetModel.multiAssets.first.assetNumber}".bodyText(context),
"${context.translation.modelName}: ${_assetProvider.assetById.modelDefinition.modelName}".bodyText(context), "${context.translation.modelName}: ${assetModel.modelDefinition.modelName}".bodyText(context),
"${context.translation.supplier}: ${_assetProvider.assetById.supplier?.suppliername ?? "-"}".bodyText(context), "${context.translation.supplier}: ${assetModel.supplier?.suppliername ?? "-"}".bodyText(context),
"${context.translation.manufacture}: ${_assetProvider.assetById.modelDefinition.manufacturerName}".bodyText(context), "${context.translation.manufacture}: ${assetModel.modelDefinition.manufacturerName}".bodyText(context),
"${context.translation.location}: ${_assetProvider.assetById.site.custName?.cleanupWhitespace?.capitalizeFirstOfEach}".bodyText(context), "${context.translation.location}: ${assetModel.site.custName?.cleanupWhitespace?.capitalizeFirstOfEach}".bodyText(context),
], ],
).expanded, ).expanded,
8.width, 8.width,
@ -117,9 +118,9 @@ class _AssetDetailPageState extends State<AssetDetailPage> {
children: [ children: [
/// TODO: theres no [ORACLE CODE] available to preview /// TODO: theres no [ORACLE CODE] available to preview
// "${context.translation.oracleCode}: ${"-"}".bodyText(context), // "${context.translation.oracleCode}: ${"-"}".bodyText(context),
"${context.translation.snNo}: ${_assetProvider.assetById.multiAssets.first.assetSerialNo}".bodyText(context), "${context.translation.snNo}: ${assetModel.multiAssets.first.assetSerialNo}".bodyText(context),
"${context.translation.site}: ${_assetProvider.assetById?.site?.custName?.cleanupWhitespace?.capitalizeFirstOfEach ?? "-"}".bodyText(context), "${context.translation.site}: ${assetModel?.site?.custName?.cleanupWhitespace?.capitalizeFirstOfEach ?? "-"}".bodyText(context),
"${context.translation.md}: ${_assetProvider.assetById?.department?.departmentName?.cleanupWhitespace?.capitalizeFirstOfEach ?? "-"}".bodyText(context), "${context.translation.md}: ${assetModel?.department?.departmentName?.cleanupWhitespace?.capitalizeFirstOfEach ?? "-"}".bodyText(context),
], ],
).expanded, ).expanded,
], ],
@ -127,14 +128,14 @@ class _AssetDetailPageState extends State<AssetDetailPage> {
8.height, 8.height,
const Divider(color: AppColor.neutral30, height: 1, thickness: 1), const Divider(color: AppColor.neutral30, height: 1, thickness: 1),
8.height, 8.height,
"${context.translation.installationDate}: ${_assetProvider.assetById.installationDate.toAssetDetailsFormat ?? "-"}".bodyText(context), "${context.translation.installationDate}: ${assetModel.installationDate.toAssetDetailsFormat ?? "-"}".bodyText(context),
"${context.translation.nextPmDate}: ${_assetProvider.assetById.nextPMDate.toAssetDetailsFormat}".bodyText(context), "${context.translation.nextPmDate}: ${assetModel.nextPMDate.toAssetDetailsFormat}".bodyText(context),
"${context.translation.lastPmDate}: ${_assetProvider.assetById.lastPMDate.toAssetDetailsFormat}".bodyText(context), "${context.translation.lastPmDate}: ${assetModel.lastPMDate.toAssetDetailsFormat}".bodyText(context),
if ((_assetProvider.assetById.modelDefinition.assetDescription ?? "").isNotEmpty) ...[ if ((assetModel.modelDefinition.assetDescription ?? "").isNotEmpty) ...[
8.height, 8.height,
const Divider(color: AppColor.neutral30, height: 1, thickness: 1), const Divider(color: AppColor.neutral30, height: 1, thickness: 1),
8.height, 8.height,
_assetProvider.assetById.modelDefinition.assetDescription.bodyText(context), assetModel.modelDefinition.assetDescription.bodyText(context),
] ]
], ],
) )

@ -28,10 +28,24 @@ class PentryTBSForm extends StatefulWidget {
} }
class _PentryTBSFormState extends State<PentryTBSForm> { class _PentryTBSFormState extends State<PentryTBSForm> {
Ppm _model;
@override
void initState() {
_model = widget.model;
super.initState();
}
@override
void dispose() {
print("disposeddddddd");
super.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
widget.model?.files ??= []; _model?.files ??= [];
widget.model?.files = (widget.model.files ?? []).where((element) => element.attachmentName != null && element.attachmentName.isNotEmpty).toList(); _model?.files = (_model.files ?? []).where((element) => element.attachmentName != null && element.attachmentName.isNotEmpty).toList();
return SingleChildScrollView( return SingleChildScrollView(
child: Column( child: Column(
@ -40,7 +54,7 @@ class _PentryTBSFormState extends State<PentryTBSForm> {
8.height, 8.height,
SingleItemDropDownMenu<Lookup, PPMVisitStatusProvider>( SingleItemDropDownMenu<Lookup, PPMVisitStatusProvider>(
context: context, context: context,
initialValue: widget.model.visitStatusId == null ? null : Lookup(name: widget.model.visitStatusName ?? "", id: widget.model.visitStatusId), initialValue: _model.visitStatusId == null ? null : Lookup(name: _model.visitStatusName ?? "", id: _model.visitStatusId),
title: context.translation.ppmVisit, title: context.translation.ppmVisit,
onSelect: (value) { onSelect: (value) {
if (value?.value == 4) { if (value?.value == 4) {
@ -50,93 +64,93 @@ class _PentryTBSFormState extends State<PentryTBSForm> {
} }
if (value != null) { if (value != null) {
widget.model.visitStatusName = value.name; _model.visitStatusName = value.name;
widget.model.visitStatusId = value.id; _model.visitStatusId = value.id;
} }
}, },
), ),
8.height, 8.height,
AppTimer( AppTimer(
label: context.translation.timer, label: context.translation.timer,
timer: widget.model.tbsTimer, timer: _model.tbsTimer,
enabled: widget.model.tbsTimer.endAt == null, enabled: _model.tbsTimer.endAt == null,
onChange: (timer) async { onChange: (timer) async {
widget.model.tbsTimer = timer; _model.tbsTimer = timer;
return true; return true;
}, },
), ),
8.height, 8.height,
SingleItemDropDownMenu<Lookup, PPMDeviceStatusProvider>( SingleItemDropDownMenu<Lookup, PPMDeviceStatusProvider>(
context: context, context: context,
initialValue: widget.model.deviceStatusId == null ? null : Lookup(name: widget.model.deviceStatusName ?? "", id: widget.model.deviceStatusId), initialValue: _model.deviceStatusId == null ? null : Lookup(name: _model.deviceStatusName ?? "", id: _model.deviceStatusId),
title: context.translation.deviceStatus, title: context.translation.deviceStatus,
onSelect: (value) { onSelect: (value) {
if (value != null) { if (value != null) {
widget.model.deviceStatusId = value.id; _model.deviceStatusId = value.id;
widget.model.deviceStatusName = value.name; _model.deviceStatusName = value.name;
} }
}, },
), ),
8.height, 8.height,
ADatePicker( ADatePicker(
label: context.translation.actualVisitDate, label: context.translation.actualVisitDate,
date: DateTime.tryParse(widget.model.actualDate ?? ""), date: DateTime.tryParse(_model.actualDate ?? ""),
from: DateTime.now().subtract(const Duration(days: 30)), from: DateTime.now().subtract(const Duration(days: 30)),
onDatePicker: (date) { onDatePicker: (date) {
if (date == null) return; if (date == null) return;
widget.model.actualDate = date?.toIso8601String(); _model.actualDate = date?.toIso8601String();
setState(() {}); setState(() {});
}, },
), ),
8.height, 8.height,
ADatePicker( ADatePicker(
label: context.translation.expectedVisitDate, label: context.translation.expectedVisitDate,
date: DateTime.tryParse(widget.model.expectedDate ?? ""), date: DateTime.tryParse(_model.expectedDate ?? ""),
from: DateTime.now().subtract(const Duration(days: 30)), from: DateTime.now().subtract(const Duration(days: 30)),
enable: false, enable: false,
onDatePicker: (date) { onDatePicker: (date) {
if (date == null) return; if (date == null) return;
widget.model.expectedDate = date?.toIso8601String(); _model.expectedDate = date?.toIso8601String();
setState(() {}); setState(() {});
}, },
), ),
8.height, 8.height,
AppTextFormField( AppTextFormField(
labelText: context.translation.travelingHours, labelText: context.translation.travelingHours,
initialValue: (widget.model.travelingHours ?? "").toString(), initialValue: (_model.travelingHours ?? "").toString(),
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: Theme.of(context).textTheme.titleMedium, style: Theme.of(context).textTheme.titleMedium,
textInputType: TextInputType.number, textInputType: TextInputType.number,
onChange: (value) { onChange: (value) {
widget.model.travelingHours = value; _model.travelingHours = value;
}, },
), ),
8.height, 8.height,
MultiFilesPicker( MultiFilesPicker(
label: context.translation.attachImage, label: context.translation.attachImage,
files: widget.model.files.map((e) => File(e.attachmentName)).toList(), files: _model.files.map((e) => File(e.attachmentName)).toList(),
onChange: (files) { onChange: (files) {
widget.model.files = files.map((e) => PpmAttachments(attachmentName: e.path)).toList(); _model.files = files.map((e) => PpmAttachments(attachmentName: e.path)).toList();
}, },
), ),
8.height, 8.height,
ESignature( ESignature(
title: context.translation.nurseSignature, title: context.translation.nurseSignature,
oldSignature: widget.model.nurseSignature, oldSignature: _model.nurseSignature,
newSignature: widget.model.localNurseSignature, newSignature: _model.localNurseSignature,
onChange: (signature) { onChange: (signature) {
widget.model.localNurseSignature = signature; _model.localNurseSignature = signature;
widget.model.nurseSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}"; _model.nurseSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
}, },
), ),
8.height, 8.height,
ESignature( ESignature(
title: context.translation.engSign, title: context.translation.engSign,
oldSignature: widget.model.engSignature, oldSignature: _model.engSignature,
newSignature: widget.model.localEngineerSignature, newSignature: _model.localEngineerSignature,
onChange: (signature) { onChange: (signature) {
widget.model.localEngineerSignature = signature; _model.localEngineerSignature = signature;
widget.model.engSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}"; _model.engSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
}, },
), ),
8.height, 8.height,

Loading…
Cancel
Save