This commit is contained in:
jantunesmesias 2024-08-06 17:00:57 -03:00
parent 6a2bda3b38
commit 87e092a070
6 changed files with 550 additions and 165 deletions

View File

@ -343,8 +343,9 @@ Future<bool> visitRequestComponentAction(
); );
if (respondeSolicitacaoCall.statusCode == 200) { if (respondeSolicitacaoCall.statusCode == 200) {
log('jsonBody: ${respondeSolicitacaoCall.jsonBody}; actionValue: $actionValue; refUUID: $refUUID; responseValue: $responseValue; vteUUID: $vteUUID'); log('jsonBody: ${respondeSolicitacaoCall.jsonBody}; actionValue: $actionValue; refUUID: $refUUID; responseValue: $responseValue; vteUUID: $vteUUID; status: ${respondeSolicitacaoCall.jsonBody['error']}');
return true;
return !respondeSolicitacaoCall.jsonBody['error'];
} else { } else {
log('headers: ${respondeSolicitacaoCall.headers}'); log('headers: ${respondeSolicitacaoCall.headers}');
log('bodyText: ${respondeSolicitacaoCall.bodyText}'); log('bodyText: ${respondeSolicitacaoCall.bodyText}');
@ -464,8 +465,10 @@ Future changeStatusAction(
if (!context.mounted) return; if (!context.mounted) return;
if (approveVisitRequest == true) { if (approveVisitRequest == true) {
log('Aprovado'); log('Aprovado');
context.pop();
} else { } else {
log('Erro ao aprovar'); log('Erro ao aprovar');
context.pop();
} }
break; break;
case 'B': case 'B':

View File

@ -15,6 +15,7 @@ import 'package:hub/backend/api_requests/api_manager.dart';
import 'package:hub/components/templates_components/access_notification_modal_template_component/access_notification_modal_template_component_widget.dart'; import 'package:hub/components/templates_components/access_notification_modal_template_component/access_notification_modal_template_component_widget.dart';
import 'package:hub/components/templates_components/message_notificaion_modal_template_component/message_notification_widget.dart'; import 'package:hub/components/templates_components/message_notificaion_modal_template_component/message_notification_widget.dart';
import 'package:hub/components/templates_components/details_component/details_component_widget.dart'; import 'package:hub/components/templates_components/details_component/details_component_widget.dart';
import 'package:hub/flutter_flow/flutter_flow_icon_button.dart';
import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart';
import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart';
import 'package:hub/flutter_flow/flutter_flow_widgets.dart'; import 'package:hub/flutter_flow/flutter_flow_widgets.dart';
@ -448,7 +449,176 @@ class NotificationHandler {
vteUUID: message['idVisitante'].toString(), vteUUID: message['idVisitante'].toString(),
vawRef: message['referencia'].toString(), vawRef: message['referencia'].toString(),
vawStatus: 'S', vawStatus: 'S',
buttons: [], buttons: [
FlutterFlowIconButton(
icon: const Icon(Icons.done),
onPressed: () async {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text(
FFLocalizations.of(context).getVariableText(
ptText: 'Aprovar Visita',
enText: 'Approve Visit',
),
),
content: Text(
FFLocalizations.of(context).getVariableText(
ptText:
'Você tem certeza que deseja aprovar essa visita?',
enText:
'Are you sure you want to approve this visit?',
),
),
backgroundColor:
FlutterFlowTheme.of(context).primaryBackground,
actions: [
FFButtonWidget(
text: FFLocalizations.of(context).getVariableText(
enText: 'No',
ptText: 'Não',
),
onPressed: () {
Navigator.pop(context);
},
options: FFButtonOptions(
width: 100,
height: 40,
color: FlutterFlowTheme.of(context)
.primaryBackground,
textStyle: TextStyle(
color: FlutterFlowTheme.of(context)
.primaryText,
),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground,
width: 1,
),
borderRadius: BorderRadius.circular(10)),
),
FFButtonWidget(
text: FFLocalizations.of(context).getVariableText(
enText: 'Yes',
ptText: 'Sim',
),
onPressed: () async {
await changeStatusAction.call(
context,
'L',
message['referencia'].toString(),
'Mensagem',
message['idVisitante'].toString(),
);
},
options: FFButtonOptions(
width: 100,
height: 40,
color: FlutterFlowTheme.of(context)
.primaryBackground,
textStyle: TextStyle(
color:
FlutterFlowTheme.of(context).primaryText,
),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground,
width: 1,
),
borderRadius: BorderRadius.circular(10),
),
),
],
);
});
},
),
FlutterFlowIconButton(
icon: const Icon(Icons.close),
onPressed: () async {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text(
FFLocalizations.of(context).getVariableText(
ptText: 'Bloquear Visita',
enText: 'Block Visit',
),
),
content: Text(
FFLocalizations.of(context).getVariableText(
ptText:
'Você tem certeza que deseja bloquear essa visita?',
enText:
'Are you sure you want to block this visit?',
),
),
backgroundColor:
FlutterFlowTheme.of(context).primaryBackground,
actions: [
FFButtonWidget(
text: FFLocalizations.of(context).getVariableText(
enText: 'No',
ptText: 'Não',
),
onPressed: () {
Navigator.pop(context);
},
options: FFButtonOptions(
width: 100,
height: 40,
color: FlutterFlowTheme.of(context)
.primaryBackground,
textStyle: TextStyle(
color: FlutterFlowTheme.of(context)
.primaryText,
),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground,
width: 1,
),
borderRadius: BorderRadius.circular(10)),
),
FFButtonWidget(
text: FFLocalizations.of(context).getVariableText(
enText: 'Yes',
ptText: 'Sim',
),
onPressed: () async {
await changeStatusAction.call(
context,
'B',
message['referencia'].toString(),
'Mensagem',
message['idVisitante'].toString(),
);
},
options: FFButtonOptions(
width: 100,
height: 40,
color: FlutterFlowTheme.of(context)
.primaryBackground,
textStyle: TextStyle(
color:
FlutterFlowTheme.of(context).primaryText,
),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground,
width: 1,
),
borderRadius: BorderRadius.circular(10),
),
),
],
);
});
},
),
],
labelsHashMap: Map<String, String>.from({ labelsHashMap: Map<String, String>.from({
FFLocalizations.of(context).getVariableText( FFLocalizations.of(context).getVariableText(
enText: 'Visitor', enText: 'Visitor',
@ -470,8 +640,8 @@ class NotificationHandler {
statusHashMap: [ statusHashMap: [
{ {
FFLocalizations.of(context).getVariableText( FFLocalizations.of(context).getVariableText(
enText: 'Pending', enText: 'Active',
ptText: 'Pendente', ptText: 'Ativo',
): FlutterFlowTheme.of(context).warning, ): FlutterFlowTheme.of(context).warning,
}, },
], ],

View File

@ -13,17 +13,16 @@ import 'package:flutter/material.dart';
import 'menu_component_model.dart'; import 'menu_component_model.dart';
export 'menu_component_model.dart'; export 'menu_component_model.dart';
class MenuComponentWidget extends StatefulWidget { class MenuComponentWidget extends StatefulWidget {
const MenuComponentWidget({ const MenuComponentWidget({
Key? key, Key? key,
required this.style, required this.style,
required this.item, required this.item,
required this.expandable, required this.expandable,
}); });
final MenuView style; final MenuView style;
final MenuItem item; final MenuItem item;
final bool expandable; final bool expandable;
@override @override
State<MenuComponentWidget> createState() => _MenuComponentWidgetState(); State<MenuComponentWidget> createState() => _MenuComponentWidgetState();
} }
@ -31,11 +30,8 @@ class MenuComponentWidget extends StatefulWidget {
class _MenuComponentWidgetState extends State<MenuComponentWidget> { class _MenuComponentWidgetState extends State<MenuComponentWidget> {
late MenuComponentModel _model; late MenuComponentModel _model;
@override @override
void setState(VoidCallback callback) { void setState(VoidCallback callback) {
super.setState(callback); super.setState(callback);
_model.onUpdate(); _model.onUpdate();
} }
@ -44,7 +40,6 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
void initState() { void initState() {
super.initState(); super.initState();
_model = createModel(context, () => MenuComponentModel()); _model = createModel(context, () => MenuComponentModel());
} }
@override @override
@ -57,43 +52,165 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final options = widget.item == MenuItem.button final options = widget.item == MenuItem.button
? <MenuEntry>[ ? <MenuEntry>[
MenuButtonWidget(icon: FFIcons.kvector1, action: () async { await _model.scheduleVisitOptAction(context);setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Schedule\nVisit' , ptText:'Agendar\nVisita' ,),), MenuButtonWidget(
icon: FFIcons.kvector1,
action: () async {
await _model.scheduleVisitOptAction(context);
setState(() {});
},
title: FFLocalizations.of(context).getVariableText(
enText: 'Schedule\nVisit',
ptText: 'Agendar\nVisita',
),
),
MenuButtonWidget(icon: FFIcons.khome, action: () async {await _model.registerVisitorOptAction(context); setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Register\nVisitor' , ptText:'Cadastro\nde Visitante' ,),), MenuButtonWidget(
icon: FFIcons.khome,
action: () async {
await _model.registerVisitorOptAction(context);
setState(() {});
},
title: FFLocalizations.of(context).getVariableText(
enText: 'Register\nVisitor',
ptText: 'Cadastro\nde Visitante',
),
),
// MenuButtonWidget(icon: FFIcons.kvector2, action: () async {setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Link\nCondominum' , ptText:'' ,),), // MenuButtonWidget(icon: FFIcons.kvector2, action: () async {setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Link\nCondominum' , ptText:'' ,),),
// MenuButtonWidget(icon: FFIcons.kpets, action: () async {setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Register\Pet' , ptText:'' ,),), // MenuButtonWidget(icon: FFIcons.kpets, action: () async {setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Register\Pet' , ptText:'' ,),),
MenuButtonWidget(icon: Icons.qr_code, action: () async {await _model.accessQRCodeOptAction(context); setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'QRCode\nAccess' , ptText:'QRCode\nde Acesso' ,),), MenuButtonWidget(
icon: Icons.qr_code,
action: () async {
await _model.accessQRCodeOptAction(context);
setState(() {});
},
title: FFLocalizations.of(context).getVariableText(
enText: 'QRCode\nAccess',
ptText: 'QRCode\nde Acesso',
),
),
MenuButtonWidget(icon: Icons.people, action: () async {await _model.peopleOnThePropertyAction(context); setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Poeple on\nthe Property' , ptText:'Pessoas na\nPropriedade' ,),), MenuButtonWidget(
icon: Icons.people,
action: () async {
await _model.peopleOnThePropertyAction(context);
setState(() {});
},
title: FFLocalizations.of(context).getVariableText(
enText: 'Poeple on\nthe Property',
ptText: 'Pessoas na\nPropriedade',
),
),
MenuButtonWidget(icon: Icons.history_sharp, action: () async {await _model.liberationHistoryOptAction(context);setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Consult\nHistories' , ptText:'Consultar\nHistóricos' ,),), MenuButtonWidget(
icon: Icons.history_sharp,
action: () async {
await _model.liberationHistoryOptAction(context);
setState(() {});
},
title: FFLocalizations.of(context).getVariableText(
enText: 'Consult\nHistories',
ptText: 'Consultar\nHistóricos',
),
),
MenuButtonWidget(icon: Icons.settings, action: () async {await _model.preferencesSettings(context);setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Preferences\nSettings' , ptText:'Configurações' ,),), MenuButtonWidget(
] : <MenuEntry>[ icon: Icons.settings,
MenuCardItem(icon: FFIcons.kvector1, action: () async { await _model.scheduleVisitOptAction(context);setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Schedule Visit' , ptText:'Agendar\nVisita' ,),), action: () async {
await _model.preferencesSettings(context);
setState(() {});
},
title: FFLocalizations.of(context).getVariableText(
enText: 'Preferences\nSettings',
ptText: 'Preferências \nde Configurações',
),
),
]
: <MenuEntry>[
MenuCardItem(
icon: FFIcons.kvector1,
action: () async {
await _model.scheduleVisitOptAction(context);
setState(() {});
},
title: FFLocalizations.of(context).getVariableText(
enText: 'Schedule\nVisit',
ptText: 'Agendar\nVisita',
),
),
MenuCardItem(icon: FFIcons.khome, action: () async {await _model.registerVisitorOptAction(context); setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Register Visitor' , ptText:'Cadastro de Visitante' ,),), MenuCardItem(
icon: FFIcons.khome,
action: () async {
await _model.registerVisitorOptAction(context);
setState(() {});
},
title: FFLocalizations.of(context).getVariableText(
enText: 'Register\nVisitor',
ptText: 'Cadastro\nde Visitante',
),
),
// MenuCardItem(icon: FFIcons.kvector2, action: () async {setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Link Condominum' , ptText:'' ,),), // MenuCardItem(icon: FFIcons.kvector2, action: () async {setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Link Condominum' , ptText:'' ,),),
// MenuCardItem(icon: FFIcons.kpets, action: () async {setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Register\Pet' , ptText:'' ,),), // MenuCardItem(icon: FFIcons.kpets, action: () async {setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Register\Pet' , ptText:'' ,),),
MenuCardItem(icon: Icons.qr_code, action: () async {await _model.accessQRCodeOptAction(context); setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'QRCode Access' , ptText:'QRCode de Acesso' ,),), MenuCardItem(
icon: Icons.qr_code,
action: () async {
await _model.accessQRCodeOptAction(context);
setState(() {});
},
title: FFLocalizations.of(context).getVariableText(
enText: 'QRCode\nAccess',
ptText: 'QRCode\nde Acesso',
),
),
MenuCardItem(icon: Icons.people, action: () async {await _model.peopleOnThePropertyAction(context); setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Poeple on the Property' , ptText:'Pessoas na Propriedade' ,),), MenuCardItem(
icon: Icons.people,
action: () async {
await _model.peopleOnThePropertyAction(context);
setState(() {});
},
title: FFLocalizations.of(context).getVariableText(
enText: 'Poeple on\nthe Property',
ptText: 'Pessoas\nna Propriedade',
),
),
MenuCardItem(icon: Icons.history_sharp, action: () async {await _model.liberationHistoryOptAction(context);setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Consult Histories' , ptText:'Consultar Historicos' ,),), MenuCardItem(
icon: Icons.history_sharp,
action: () async {
await _model.liberationHistoryOptAction(context);
setState(() {});
},
title: FFLocalizations.of(context).getVariableText(
enText: 'Consult\nHistories',
ptText: 'Consultar\nHistoricos',
),
),
MenuCardItem(icon: Icons.settings, action: () async {await _model.preferencesSettings(context);setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Preferences Settings' , ptText:'Configurações' ,),), MenuCardItem(
icon: Icons.settings,
]; action: () async {
await _model.preferencesSettings(context);
setState(() {});
},
title: FFLocalizations.of(context).getVariableText(
enText: 'Preferences\nSettings',
ptText: 'Preferências\nde Configuração',
),
),
];
return Padding( return Padding(
padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0), padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0),
child: Builder( child: Builder(
builder: (context) { builder: (context) {
if (widget.style == MenuView.list_grid && widget.expandable == true && widget.item == MenuItem.button) { if (widget.style == MenuView.list_grid &&
widget.expandable == true &&
widget.item == MenuItem.button) {
if (_model.isGrid == true) { if (_model.isGrid == true) {
return wrapWithModel( return wrapWithModel(
model: _model.menuListViewComponentModel, model: _model.menuListViewComponentModel,
@ -126,21 +243,23 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
); );
} }
} }
if (widget.style == MenuView.list && widget.expandable == false && widget.item == MenuItem.card){ if (widget.style == MenuView.list &&
return wrapWithModel( widget.expandable == false &&
model: _model.menuListViewComponentModel, widget.item == MenuItem.card) {
updateCallback: () => setState(() {}), return wrapWithModel(
updateOnChange: true, model: _model.menuListViewComponentModel,
child: MenuListViewComponentWidget( updateCallback: () => setState(() {}),
options: options, updateOnChange: true,
expandable: widget.expandable, child: MenuListViewComponentWidget(
item: widget.item, options: options,
changeMenuStyle: () async { expandable: widget.expandable,
await _model.changeMenuStyle(context); item: widget.item,
setState(() {}); changeMenuStyle: () async {
}, await _model.changeMenuStyle(context);
), setState(() {});
); },
),
);
} }
return const SizedBox(); return const SizedBox();
}, },
@ -148,7 +267,7 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
); );
} }
Future accessQRCodeOptAction(BuildContext context) async { Future accessQRCodeOptAction(BuildContext context) async {
context.pushNamed( context.pushNamed(
'qrCodePage', 'qrCodePage',
extra: <String, dynamic>{ extra: <String, dynamic>{
@ -160,6 +279,4 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
}, },
); );
} }
} }

View File

@ -51,88 +51,6 @@ Widget buildDetails(
vawRef: 'Lorem Ipsus', vawRef: 'Lorem Ipsus',
changeStatusAction: changeStatusAction, changeStatusAction: changeStatusAction,
buttons: [ buttons: [
if (getStatus(visitaWrapItem['VAW_STATUS']) ==
status.active) // ACCEPT ACTION
FlutterFlowIconButton(
icon: const Icon(Icons.done),
onPressed: () async {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text(
FFLocalizations.of(context).getVariableText(
ptText: 'Aprovar Visita',
enText: 'Approve Visit',
),
),
content: Text(
FFLocalizations.of(context).getVariableText(
ptText:
'Você tem certeza que deseja aprovar essa visita?',
enText: 'Are you sure you want to approve this visit?',
),
),
backgroundColor:
FlutterFlowTheme.of(context).primaryBackground,
actions: [
FFButtonWidget(
text: FFLocalizations.of(context).getVariableText(
enText: 'No',
ptText: 'Não',
),
onPressed: () {
Navigator.pop(context);
},
options: FFButtonOptions(
width: 100,
height: 40,
color:
FlutterFlowTheme.of(context).primaryBackground,
textStyle: TextStyle(
color: FlutterFlowTheme.of(context).primaryText,
),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground,
width: 1,
),
borderRadius: BorderRadius.circular(10)),
),
FFButtonWidget(
text: FFLocalizations.of(context).getVariableText(
enText: 'Yes',
ptText: 'Sim',
),
onPressed: () async {
await changeStatusAction?.call(
context,
'L',
visitaWrapItem['VAW_ID'] ?? '',
'Mensagem',
visitaWrapItem['VTE_DOCUMENTO'] ?? '',
);
},
options: FFButtonOptions(
width: 100,
height: 40,
color: FlutterFlowTheme.of(context).primaryBackground,
textStyle: TextStyle(
color: FlutterFlowTheme.of(context).primaryText,
),
borderSide: BorderSide(
color:
FlutterFlowTheme.of(context).primaryBackground,
width: 1,
),
borderRadius: BorderRadius.circular(10),
),
),
],
);
});
},
),
if (getStatus(visitaWrapItem['VAW_STATUS']) == if (getStatus(visitaWrapItem['VAW_STATUS']) ==
status.active) // REJECT ACTION status.active) // REJECT ACTION
FlutterFlowIconButton( FlutterFlowIconButton(
@ -187,13 +105,13 @@ Widget buildDetails(
ptText: 'Sim', ptText: 'Sim',
), ),
onPressed: () async { onPressed: () async {
// await changeStatusAction?.call( await changeStatusAction?.call(
// context, context,
// 'B', 'B',
// visitaWrapItem['VAW_REF'] ?? '', visitaWrapItem['VAW_REF'] ?? '',
// 'Mensagem', 'Mensagem',
// visitaWrapItem['VTE_ID'] ?? '', visitaWrapItem['VTE_ID'] ?? '',
// ); );
}, },
options: FFButtonOptions( options: FFButtonOptions(
width: 100, width: 100,
@ -215,8 +133,8 @@ Widget buildDetails(
}); });
}, },
), ),
if (getStatus(visitaWrapItem['VAW_STATUS']) == if (getStatus(visitaWrapItem['VAW_STATUS']) !=
status.finished) // RECALL ACTION status.active) // RECALL ACTION
FlutterFlowIconButton( FlutterFlowIconButton(
icon: const Icon(Icons.refresh), icon: const Icon(Icons.refresh),
onPressed: () async { onPressed: () async {
@ -239,7 +157,7 @@ Widget buildDetails(
}, },
), ),
if (getStatus(visitaWrapItem['VAW_STATUS']) == if (getStatus(visitaWrapItem['VAW_STATUS']) ==
status.finished) // SHARE ACTION status.active) // SHARE ACTION
FlutterFlowIconButton( FlutterFlowIconButton(
icon: const Icon(Icons.share), icon: const Icon(Icons.share),
onPressed: () async { onPressed: () async {

View File

@ -12,6 +12,7 @@ import 'package:hub/flutter_flow/custom_functions.dart';
import 'package:hub/flutter_flow/flutter_flow_icon_button.dart'; import 'package:hub/flutter_flow/flutter_flow_icon_button.dart';
import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart';
import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart';
import 'package:hub/flutter_flow/flutter_flow_widgets.dart';
import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/flutter_flow/nav/nav.dart';
import 'package:cached_network_image/cached_network_image.dart'; import 'package:cached_network_image/cached_network_image.dart';
@ -310,8 +311,8 @@ Widget liberationHistoryItemCard(
liberationHistoryItem['NOT_STATUS'] == 'L' liberationHistoryItem['NOT_STATUS'] == 'L'
? Map<String, Color>.from({ ? Map<String, Color>.from({
FFLocalizations.of(context).getVariableText( FFLocalizations.of(context).getVariableText(
ptText: 'Ativo', ptText: 'Finalizado',
enText: 'Active', enText: 'Finished',
): FlutterFlowTheme.of(context).success, ): FlutterFlowTheme.of(context).success,
}) })
: liberationHistoryItem['NOT_STATUS'] == 'B' : liberationHistoryItem['NOT_STATUS'] == 'B'
@ -323,12 +324,13 @@ Widget liberationHistoryItemCard(
}) })
: Map<String, Color>.from({ : Map<String, Color>.from({
FFLocalizations.of(context).getVariableText( FFLocalizations.of(context).getVariableText(
ptText: 'Pendente', ptText: 'Ativo',
enText: 'Pending', enText: 'Active',
): FlutterFlowTheme.of(context).warning, ): FlutterFlowTheme.of(context).warning,
}) })
], ],
onTapCardItemAction: () async { onTapCardItemAction: () async {
log('LiberationItem: $liberationHistoryItem');
showModalBottomSheet( showModalBottomSheet(
isScrollControlled: true, isScrollControlled: true,
isDismissible: true, isDismissible: true,
@ -358,13 +360,188 @@ Widget liberationHistoryItemCard(
'Mensagem:': liberationHistoryItem['NOT_MSGENVIO'], 'Mensagem:': liberationHistoryItem['NOT_MSGENVIO'],
// 'Resposta:': liberationHistoryItem['NOT_MSGRESPOSTA'], // 'Resposta:': liberationHistoryItem['NOT_MSGRESPOSTA'],
}), }),
buttons: [], buttons: [
if (liberationHistoryItem['NOT_STATUS'] == 'S')
FlutterFlowIconButton(
icon: const Icon(Icons.done),
onPressed: () async {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text(
FFLocalizations.of(context).getVariableText(
ptText: 'Aprovar Visita',
enText: 'Approve Visit',
),
),
content: Text(
FFLocalizations.of(context).getVariableText(
ptText:
'Você tem certeza que deseja aprovar essa visita?',
enText:
'Are you sure you want to approve this visit?',
),
),
backgroundColor:
FlutterFlowTheme.of(context).primaryBackground,
actions: [
FFButtonWidget(
text:
FFLocalizations.of(context).getVariableText(
enText: 'No',
ptText: 'Não',
),
onPressed: () {
Navigator.pop(context);
},
options: FFButtonOptions(
width: 100,
height: 40,
color: FlutterFlowTheme.of(context)
.primaryBackground,
textStyle: TextStyle(
color: FlutterFlowTheme.of(context)
.primaryText,
),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground,
width: 1,
),
borderRadius: BorderRadius.circular(10)),
),
FFButtonWidget(
text:
FFLocalizations.of(context).getVariableText(
enText: 'Yes',
ptText: 'Sim',
),
onPressed: () async {
await changeStatusAction.call(
context,
'L',
liberationHistoryItem['NOT_ID'].toString(),
'Mensagem',
liberationHistoryItem['VTE_ID'].toString(),
);
},
options: FFButtonOptions(
width: 100,
height: 40,
color: FlutterFlowTheme.of(context)
.primaryBackground,
textStyle: TextStyle(
color: FlutterFlowTheme.of(context)
.primaryText,
),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground,
width: 1,
),
borderRadius: BorderRadius.circular(10),
),
),
],
);
});
},
),
if (liberationHistoryItem['NOT_STATUS'] == 'S')
FlutterFlowIconButton(
icon: const Icon(Icons.close),
onPressed: () async {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text(
FFLocalizations.of(context).getVariableText(
ptText: 'Bloquear Visita',
enText: 'Block Visit',
),
),
content: Text(
FFLocalizations.of(context).getVariableText(
ptText:
'Você tem certeza que deseja bloquear essa visita?',
enText:
'Are you sure you want to block this visit?',
),
),
backgroundColor:
FlutterFlowTheme.of(context).primaryBackground,
actions: [
FFButtonWidget(
text:
FFLocalizations.of(context).getVariableText(
enText: 'No',
ptText: 'Não',
),
onPressed: () {
Navigator.pop(context);
},
options: FFButtonOptions(
width: 100,
height: 40,
color: FlutterFlowTheme.of(context)
.primaryBackground,
textStyle: TextStyle(
color: FlutterFlowTheme.of(context)
.primaryText,
),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground,
width: 1,
),
borderRadius: BorderRadius.circular(10)),
),
FFButtonWidget(
text:
FFLocalizations.of(context).getVariableText(
enText: 'Yes',
ptText: 'Sim',
),
onPressed: () async {
await changeStatusAction.call(
context,
'B',
liberationHistoryItem['NOT_ID'].toString(),
'Mensagem',
liberationHistoryItem['VTE_ID'].toString(),
);
},
options: FFButtonOptions(
width: 100,
height: 40,
color: FlutterFlowTheme.of(context)
.primaryBackground,
textStyle: TextStyle(
color: FlutterFlowTheme.of(context)
.primaryText,
),
borderSide: BorderSide(
color: FlutterFlowTheme.of(context)
.primaryBackground,
width: 1,
),
borderRadius: BorderRadius.circular(10),
),
),
],
);
});
},
),
],
statusHashMap: [ statusHashMap: [
liberationHistoryItem['NOT_STATUS'] == 'L' liberationHistoryItem['NOT_STATUS'] == 'L'
? Map<String, Color>.from({ ? Map<String, Color>.from({
FFLocalizations.of(context).getVariableText( FFLocalizations.of(context).getVariableText(
ptText: 'Ativo', ptText: 'Finalizado',
enText: 'Active', enText: 'Finished',
): FlutterFlowTheme.of(context).success, ): FlutterFlowTheme.of(context).success,
}) })
: liberationHistoryItem['NOT_STATUS'] == 'B' : liberationHistoryItem['NOT_STATUS'] == 'B'
@ -376,8 +553,8 @@ Widget liberationHistoryItemCard(
}) })
: Map<String, Color>.from({ : Map<String, Color>.from({
FFLocalizations.of(context).getVariableText( FFLocalizations.of(context).getVariableText(
ptText: 'Pendente', ptText: 'Ativo',
enText: 'Pending', enText: 'Active',
): FlutterFlowTheme.of(context).warning, ): FlutterFlowTheme.of(context).warning,
}) })
], ],

View File

@ -516,10 +516,10 @@ class PreferencesPageModel with ChangeNotifier {
), ),
), ),
); );
FFAppState().pass = false; // FFAppState().pass = false;
} }
}).catchError((error, StackTrace) { }).catchError((error, StackTrace) {
FFAppState().pass = false; // FFAppState().pass = false;
log(error.toString()); log(error.toString());
log(StackTrace.toString()); log(StackTrace.toString());
ScaffoldMessenger.of(context).showSnackBar( ScaffoldMessenger.of(context).showSnackBar(
@ -608,10 +608,10 @@ class PreferencesPageModel with ChangeNotifier {
), ),
), ),
); );
FFAppState().panic = false; // FFAppState().panic = false;
} }
}).catchError((e, s) { }).catchError((e, s) {
FFAppState().panic = false; // FFAppState().panic = false;
log(e.toString()); log(e.toString());
log(s.toString()); log(s.toString());