feat: Update internationalization translations for liberation history item details template component

The internationalization translations for the liberation history item details template component are updated to include the translations for the 'Name', 'Type', 'Access', and 'Drive' fields. This ensures that the component can be localized for different languages.
This commit is contained in:
Jonatas Antunes Messias 2024-07-01 17:25:08 -03:00
commit b01116669f
6 changed files with 949 additions and 217 deletions

View File

@ -44,8 +44,8 @@
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
6436409E27A31CDF00820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = "<group>"; }; 6436409E27A31CD800820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = "<group>"; };
6436409F27A31CD200820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; }; 6436409927A31CD300820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
@ -225,8 +225,8 @@
6436409C27A31CD800820AF7 /* InfoPlist.strings */ = { 6436409C27A31CD800820AF7 /* InfoPlist.strings */ = {
isa = PBXVariantGroup; isa = PBXVariantGroup;
children = ( children = (
6436409E27A31CDF00820AF7 /* pt */, 6436409E27A31CD800820AF7 /* pt */,
6436409F27A31CD200820AF7 /* en */, 6436409927A31CD300820AF7 /* en */,
); );
name = InfoPlist.strings; name = InfoPlist.strings;
sourceTree = "<group>"; sourceTree = "<group>";

View File

@ -37,6 +37,8 @@ class PhpGroup {
RespondeSolicitacaoCall(); RespondeSolicitacaoCall();
static GetAccessCall getAccessCall = GetAccessCall(); static GetAccessCall getAccessCall = GetAccessCall();
static GetLiberationsCall getLiberationsCall = GetLiberationsCall(); static GetLiberationsCall getLiberationsCall = GetLiberationsCall();
static GetLiberationsCopyCall getLiberationsCopyCall =
GetLiberationsCopyCall();
} }
class UpdToken { class UpdToken {
@ -2043,6 +2045,190 @@ class GetLiberationsCall {
.toList(); .toList();
} }
class GetLiberationsCopyCall {
Future<ApiCallResponse> call({
String? devUUID = '',
String? userUUID = '',
String? cliID = '',
String? atividade = '',
String? page = '',
String? pageSize = '',
String? filter = '',
}) async {
final baseUrl = PhpGroup.getBaseUrl();
return ApiManager.instance.makeApiCall(
callName: 'getLiberations Copy',
apiUrl: '$baseUrl/processRequest.php',
callType: ApiCallType.POST,
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
params: {
'devUUID': devUUID,
'userUUID': userUUID,
'cliID': cliID,
'atividade': atividade,
'page': page,
'pageSize': pageSize,
'filter': filter,
},
bodyType: BodyType.X_WWW_FORM_URL_ENCODED,
returnBody: true,
encodeBodyUtf8: false,
decodeUtf8: false,
cache: false,
isStreamingApi: false,
alwaysAllowBody: false,
);
}
bool? error(dynamic response) => castToType<bool>(getJsonField(
response,
r'''$.error''',
));
List? rqList(dynamic response) => getJsonField(
response,
r'''$.solicitacoes''',
true,
) as List?;
List<String>? rqNotID(dynamic response) => (getJsonField(
response,
r'''$.solicitacoes[:].NOT_ID''',
true,
) as List?)
?.withoutNulls
.map((x) => castToType<String>(x))
.withoutNulls
.toList();
List<String>? rqNotDest(dynamic response) => (getJsonField(
response,
r'''$.solicitacoes[:].NOT_DESTINO''',
true,
) as List?)
?.withoutNulls
.map((x) => castToType<String>(x))
.withoutNulls
.toList();
List<String>? rqNotSendDate(dynamic response) => (getJsonField(
response,
r'''$.solicitacoes[:].NOT_DTENVIO''',
true,
) as List?)
?.withoutNulls
.map((x) => castToType<String>(x))
.withoutNulls
.toList();
List<String>? rqNotReceiveDate(dynamic response) => (getJsonField(
response,
r'''$.solicitacoes[:].NOT_DTRESPOSTA''',
true,
) as List?)
?.withoutNulls
.map((x) => castToType<String>(x))
.withoutNulls
.toList();
List<String>? rqNotEmailAnswer(dynamic response) => (getJsonField(
response,
r'''$.solicitacoes[:].NOT_EMAILRESPOSTA''',
true,
) as List?)
?.withoutNulls
.map((x) => castToType<String>(x))
.withoutNulls
.toList();
List<String>? rqNotReason(dynamic response) => (getJsonField(
response,
r'''$.solicitacoes[:].NOT_MOTIVO''',
true,
) as List?)
?.withoutNulls
.map((x) => castToType<String>(x))
.withoutNulls
.toList();
List<String>? rqNotSendMsg(dynamic response) => (getJsonField(
response,
r'''$.solicitacoes[:].NOT_MSGENVIO''',
true,
) as List?)
?.withoutNulls
.map((x) => castToType<String>(x))
.withoutNulls
.toList();
List<String>? rqNotReceiveMsg(dynamic response) => (getJsonField(
response,
r'''$.solicitacoes[:].NOT_MSGRESPOSTA''',
true,
) as List?)
?.withoutNulls
.map((x) => castToType<String>(x))
.withoutNulls
.toList();
List<String>? rqNotName(dynamic response) => (getJsonField(
response,
r'''$.solicitacoes[:].NOT_NOME''',
true,
) as List?)
?.withoutNulls
.map((x) => castToType<String>(x))
.withoutNulls
.toList();
List<String>? rqNotOperator(dynamic response) => (getJsonField(
response,
r'''$.solicitacoes[:].NOT_OPERADOR''',
true,
) as List?)
?.withoutNulls
.map((x) => castToType<String>(x))
.withoutNulls
.toList();
List<String>? rqNotStatus(dynamic response) => (getJsonField(
response,
r'''$.solicitacoes[:].NOT_STATUS''',
true,
) as List?)
?.withoutNulls
.map((x) => castToType<String>(x))
.withoutNulls
.toList();
List<String>? rqNotVTE(dynamic response) => (getJsonField(
response,
r'''$.solicitacoes[:].NOT_VISITANTE''',
true,
) as List?)
?.withoutNulls
.map((x) => castToType<String>(x))
.withoutNulls
.toList();
List<String>? rqVteID(dynamic response) => (getJsonField(
response,
r'''$.solicitacoes[:].VTE_ID''',
true,
) as List?)
?.withoutNulls
.map((x) => castToType<String>(x))
.withoutNulls
.toList();
List<String>? rqVteName(dynamic response) => (getJsonField(
response,
r'''$.solicitacoes[:].VTE_NOME''',
true,
) as List?)
?.withoutNulls
.map((x) => castToType<String>(x))
.withoutNulls
.toList();
List<String>? rqVteRG(dynamic response) => (getJsonField(
response,
r'''$.solicitacoes[:].VTE_RG''',
true,
) as List?)
?.withoutNulls
.map((x) => castToType<String>(x))
.withoutNulls
.toList();
}
/// End PHP Group Code /// End PHP Group Code
class ApiPagingParams { class ApiPagingParams {

View File

@ -0,0 +1,78 @@
import '/backend/api_requests/api_calls.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'liberation_history_item_details_template_component_widget.dart'
show LiberationHistoryItemDetailsTemplateComponentWidget;
import 'package:flutter/material.dart';
class LiberationHistoryItemDetailsTemplateComponentModel
extends FlutterFlowModel<
LiberationHistoryItemDetailsTemplateComponentWidget> {
/// State fields for stateful widgets in this component.
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode1;
TextEditingController? textController1;
String? Function(BuildContext, String?)? textController1Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode2;
TextEditingController? textController2;
String? Function(BuildContext, String?)? textController2Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode3;
TextEditingController? textController3;
String? Function(BuildContext, String?)? textController3Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode4;
TextEditingController? textController4;
String? Function(BuildContext, String?)? textController4Validator;
@override
void initState(BuildContext context) {}
@override
void dispose() {
textFieldFocusNode1?.dispose();
textController1?.dispose();
textFieldFocusNode2?.dispose();
textController2?.dispose();
textFieldFocusNode3?.dispose();
textController3?.dispose();
textFieldFocusNode4?.dispose();
textController4?.dispose();
}
/// Action blocks.
Future<bool> visitRequestComponentAction(
BuildContext context, {
required String? actionValue,
required String? refUUID,
required String? responseValue,
required String? vteUUID,
}) async {
ApiCallResponse? visitRequest;
visitRequest = await PhpGroup.respondeSolicitacaoCall.call(
userUUID: FFAppState().userUUID,
devUUID: FFAppState().devUUID,
cliUUID: FFAppState().cliUUID,
atividade: 'respondeSolicitacao',
referencia: refUUID,
tarefa: actionValue,
resposta: responseValue,
idVisitante: vteUUID,
);
if (PhpGroup.respondeSolicitacaoCall.error(
(visitRequest.jsonBody ?? ''),
) ==
false) {
Navigator.pop(context);
return true;
} else {
return false;
}
}
}

View File

@ -0,0 +1,366 @@
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'liberation_history_item_details_template_component_model.dart';
export 'liberation_history_item_details_template_component_model.dart';
class LiberationHistoryItemDetailsTemplateComponentWidget
extends StatefulWidget {
const LiberationHistoryItemDetailsTemplateComponentWidget({
super.key,
required this.name,
required this.type,
required this.datetime,
required this.id,
required this.drive,
});
final String? name;
final String? type;
final String? datetime;
final String? id;
final String? drive;
@override
State<LiberationHistoryItemDetailsTemplateComponentWidget> createState() =>
_LiberationHistoryItemDetailsTemplateComponentWidgetState();
}
class _LiberationHistoryItemDetailsTemplateComponentWidgetState
extends State<LiberationHistoryItemDetailsTemplateComponentWidget> {
late LiberationHistoryItemDetailsTemplateComponentModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(
context, () => LiberationHistoryItemDetailsTemplateComponentModel());
_model.textController1 ??= TextEditingController(text: widget.name);
_model.textFieldFocusNode1 ??= FocusNode();
_model.textController2 ??= TextEditingController(text: widget.type);
_model.textFieldFocusNode2 ??= FocusNode();
_model.textController3 ??= TextEditingController(text: widget.datetime);
_model.textFieldFocusNode3 ??= FocusNode();
_model.textController4 ??= TextEditingController(text: widget.drive);
_model.textFieldFocusNode4 ??= FocusNode();
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
context.watch<FFAppState>();
return Align(
alignment: const AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: const EdgeInsetsDirectional.fromSTEB(10.0, 0.0, 10.0, 0.0),
child: Container(
width: MediaQuery.sizeOf(context).width * 0.9,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).primaryBackground,
borderRadius: const BorderRadius.only(
bottomLeft: Radius.circular(25.0),
bottomRight: Radius.circular(25.0),
topLeft: Radius.circular(25.0),
topRight: Radius.circular(25.0),
),
),
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
width: 150.0,
height: 150.0,
clipBehavior: Clip.antiAlias,
decoration: const BoxDecoration(
shape: BoxShape.circle,
),
child: CachedNetworkImage(
fadeInDuration: const Duration(milliseconds: 100),
fadeOutDuration: const Duration(milliseconds: 100),
imageUrl: valueOrDefault<String>(
'https://freaccess.com.br/freaccess/getImage.php?devUUID=${FFAppState().devUUID}&userUUID=${FFAppState().userUUID}&cliID=${FFAppState().cliUUID}&atividade=getFoto&Documento=${widget.id}&tipo=E',
'https://storage.googleapis.com/flutterflow-io-6f20.appspot.com/projects/flutter-freaccess-hub-0xgz9q/assets/7ftdetkzc3s0/360_F_64676383_LdbmhiNM6Ypzb3FM4PPuFP9rHe7ri8Ju.jpg',
),
fit: BoxFit.cover,
),
),
]
.addToStart(const SizedBox(width: 10.0))
.addToEnd(const SizedBox(width: 10.0)),
),
Padding(
padding: const EdgeInsetsDirectional.fromSTEB(24.0, 0.0, 24.0, 0.0),
child: TextFormField(
controller: _model.textController1,
focusNode: _model.textFieldFocusNode1,
autofocus: false,
textInputAction: TextInputAction.next,
readOnly: true,
obscureText: false,
decoration: InputDecoration(
isDense: true,
labelText: FFLocalizations.of(context).getText(
'dmazrriq' /* Nome */,
),
labelStyle: FlutterFlowTheme.of(context)
.labelMedium
.override(
fontFamily:
FlutterFlowTheme.of(context).labelMediumFamily,
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily),
),
hintStyle: FlutterFlowTheme.of(context)
.labelMedium
.override(
fontFamily:
FlutterFlowTheme.of(context).labelMediumFamily,
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily),
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
errorBorder: InputBorder.none,
focusedErrorBorder: InputBorder.none,
suffixIcon: Icon(
Icons.person,
color: FlutterFlowTheme.of(context).accent1,
),
),
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily:
FlutterFlowTheme.of(context).bodyMediumFamily,
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).bodyMediumFamily),
),
textAlign: TextAlign.start,
maxLines: null,
keyboardType: TextInputType.name,
validator:
_model.textController1Validator.asValidator(context),
),
),
Row(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: TextFormField(
controller: _model.textController2,
focusNode: _model.textFieldFocusNode2,
autofocus: false,
textInputAction: TextInputAction.next,
readOnly: true,
obscureText: false,
decoration: InputDecoration(
isDense: true,
labelText: FFLocalizations.of(context).getText(
'xx3ivbr4' /* Tipo */,
),
labelStyle: FlutterFlowTheme.of(context)
.labelMedium
.override(
fontFamily: FlutterFlowTheme.of(context)
.labelMediumFamily,
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context)
.labelMediumFamily),
),
hintStyle: FlutterFlowTheme.of(context)
.labelMedium
.override(
fontFamily: FlutterFlowTheme.of(context)
.labelMediumFamily,
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context)
.labelMediumFamily),
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
errorBorder: InputBorder.none,
focusedErrorBorder: InputBorder.none,
suffixIcon: Icon(
Icons.merge_type,
color: FlutterFlowTheme.of(context).accent1,
),
),
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily:
FlutterFlowTheme.of(context).bodyMediumFamily,
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context)
.bodyMediumFamily),
),
textAlign: TextAlign.start,
maxLines: null,
keyboardType: TextInputType.name,
validator: _model.textController2Validator
.asValidator(context),
),
),
]
.addToStart(const SizedBox(width: 24.0))
.addToEnd(const SizedBox(width: 24.0)),
),
Padding(
padding: const EdgeInsetsDirectional.fromSTEB(24.0, 0.0, 24.0, 0.0),
child: TextFormField(
controller: _model.textController3,
focusNode: _model.textFieldFocusNode3,
autofocus: false,
textInputAction: TextInputAction.next,
readOnly: true,
obscureText: false,
decoration: InputDecoration(
isDense: true,
labelText: FFLocalizations.of(context).getText(
'rhheok7k' /* Acesso */,
),
labelStyle: FlutterFlowTheme.of(context)
.labelMedium
.override(
fontFamily:
FlutterFlowTheme.of(context).labelMediumFamily,
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily),
),
hintStyle: FlutterFlowTheme.of(context)
.labelMedium
.override(
fontFamily:
FlutterFlowTheme.of(context).labelMediumFamily,
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily),
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
errorBorder: InputBorder.none,
focusedErrorBorder: InputBorder.none,
suffixIcon: Icon(
Icons.date_range,
color: FlutterFlowTheme.of(context).accent1,
),
),
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily:
FlutterFlowTheme.of(context).bodyMediumFamily,
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).bodyMediumFamily),
),
textAlign: TextAlign.start,
maxLines: null,
keyboardType: TextInputType.name,
validator:
_model.textController3Validator.asValidator(context),
),
),
Padding(
padding: const EdgeInsetsDirectional.fromSTEB(24.0, 0.0, 24.0, 0.0),
child: TextFormField(
controller: _model.textController4,
focusNode: _model.textFieldFocusNode4,
autofocus: false,
textCapitalization: TextCapitalization.none,
textInputAction: TextInputAction.next,
readOnly: true,
obscureText: false,
decoration: InputDecoration(
isDense: true,
labelText: FFLocalizations.of(context).getText(
'w3tciqlv' /* Acionamento */,
),
labelStyle: FlutterFlowTheme.of(context)
.labelMedium
.override(
fontFamily:
FlutterFlowTheme.of(context).labelMediumFamily,
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily),
),
hintStyle: FlutterFlowTheme.of(context)
.labelMedium
.override(
fontFamily:
FlutterFlowTheme.of(context).labelMediumFamily,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily),
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
errorBorder: InputBorder.none,
focusedErrorBorder: InputBorder.none,
suffixIcon: Icon(
Icons.message,
color: FlutterFlowTheme.of(context).accent1,
),
),
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily:
FlutterFlowTheme.of(context).bodyMediumFamily,
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).bodyMediumFamily),
),
textAlign: TextAlign.start,
validator:
_model.textController4Validator.asValidator(context),
),
),
]
.divide(const SizedBox(height: 10.0))
.addToStart(const SizedBox(height: 20.0))
.addToEnd(const SizedBox(height: 20.0)),
),
),
),
),
);
}
}

View File

@ -11,17 +11,19 @@ export 'visit_request_template_component_model.dart';
class VisitRequestTemplateComponentWidget extends StatefulWidget { class VisitRequestTemplateComponentWidget extends StatefulWidget {
const VisitRequestTemplateComponentWidget({ const VisitRequestTemplateComponentWidget({
super.key, super.key,
this.vteName, required this.vteName,
this.vteReason, required this.vteReason,
this.vteMsg, required this.vteMsg,
this.vteDocument, required this.vteDocument,
this.cliUUID, required this.cliUUID,
this.vteUUID, required this.vteUUID,
this.vawName, required this.vawName,
this.msgUUID, required this.msgUUID,
this.vawRef, required this.vawRef,
this.vawUUID, required this.vawUUID,
this.vawDestino, required this.vawDestino,
required this.vawStatus,
this.vawDate,
}); });
final String? vteName; final String? vteName;
@ -35,6 +37,8 @@ class VisitRequestTemplateComponentWidget extends StatefulWidget {
final String? vawRef; final String? vawRef;
final String? vawUUID; final String? vawUUID;
final String? vawDestino; final String? vawDestino;
final String? vawStatus;
final String? vawDate;
@override @override
State<VisitRequestTemplateComponentWidget> createState() => State<VisitRequestTemplateComponentWidget> createState() =>
@ -103,6 +107,9 @@ class _VisitRequestTemplateComponentWidgetState
Row( Row(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [
Column(
mainAxisSize: MainAxisSize.max,
children: [ children: [
Container( Container(
width: 150.0, width: 150.0,
@ -121,6 +128,63 @@ class _VisitRequestTemplateComponentWidgetState
fit: BoxFit.cover, fit: BoxFit.cover,
), ),
), ),
Container(
width: 153.0,
height: 25.0,
decoration: BoxDecoration(
color: () {
if (widget.vawStatus == 'L') {
return FlutterFlowTheme.of(context).primary;
} else if (widget.vawStatus == 'B') {
return FlutterFlowTheme.of(context).error;
} else if (widget.vawStatus == 'S') {
return FlutterFlowTheme.of(context).warning;
} else {
return FlutterFlowTheme.of(context).warning;
}
}(),
borderRadius: BorderRadius.circular(16.0),
),
child: Align(
alignment: const AlignmentDirectional(0.0, 0.0),
child: Text(
() {
if (widget.vawStatus == 'L') {
return FFLocalizations.of(context)
.getVariableText(
ptText: 'Ativo',
enText: 'Active',
);
} else if (widget.vawStatus == 'B') {
return FFLocalizations.of(context)
.getVariableText(
ptText: 'Bloqueado',
enText: 'Blocked',
);
} else {
return FFLocalizations.of(context)
.getVariableText(
ptText: 'Pendente',
enText: 'Pending',
);
}
}(),
style: FlutterFlowTheme.of(context)
.bodyMedium
.override(
fontFamily: FlutterFlowTheme.of(context)
.bodyMediumFamily,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap()
.containsKey(
FlutterFlowTheme.of(context)
.bodyMediumFamily),
),
),
),
),
].divide(const SizedBox(height: 5.0)),
),
] ]
.addToStart(const SizedBox(width: 10.0)) .addToStart(const SizedBox(width: 10.0))
.addToEnd(const SizedBox(width: 10.0)), .addToEnd(const SizedBox(width: 10.0)),
@ -405,6 +469,7 @@ class _VisitRequestTemplateComponentWidgetState
_model.textController2Validator.asValidator(context), _model.textController2Validator.asValidator(context),
), ),
), ),
if (widget.vawStatus != 'S')
Padding( Padding(
padding: const EdgeInsetsDirectional.fromSTEB( padding: const EdgeInsetsDirectional.fromSTEB(
24.0, 0.0, 24.0, 0.0), 24.0, 0.0, 24.0, 0.0),
@ -419,26 +484,27 @@ class _VisitRequestTemplateComponentWidgetState
decoration: InputDecoration( decoration: InputDecoration(
isDense: true, isDense: true,
labelText: FFLocalizations.of(context).getText( labelText: FFLocalizations.of(context).getText(
'kt87omsz' /* Mensagem */, 'kt87omsz' /* Data */,
), ),
labelStyle: FlutterFlowTheme.of(context) labelStyle: FlutterFlowTheme.of(context)
.labelMedium .labelMedium
.override( .override(
fontFamily: fontFamily: FlutterFlowTheme.of(context)
FlutterFlowTheme.of(context).labelMediumFamily, .labelMediumFamily,
color: FlutterFlowTheme.of(context).primaryText, color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0, letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey( useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily), FlutterFlowTheme.of(context)
.labelMediumFamily),
), ),
hintStyle: FlutterFlowTheme.of(context) hintStyle:
.labelMedium FlutterFlowTheme.of(context).labelMedium.override(
.override( fontFamily: FlutterFlowTheme.of(context)
fontFamily: .labelMediumFamily,
FlutterFlowTheme.of(context).labelMediumFamily,
letterSpacing: 0.0, letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey( useGoogleFonts: GoogleFonts.asMap()
FlutterFlowTheme.of(context).labelMediumFamily), .containsKey(FlutterFlowTheme.of(context)
.labelMediumFamily),
), ),
enabledBorder: InputBorder.none, enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none, focusedBorder: InputBorder.none,
@ -462,6 +528,7 @@ class _VisitRequestTemplateComponentWidgetState
_model.textController3Validator.asValidator(context), _model.textController3Validator.asValidator(context),
), ),
), ),
if (widget.vawStatus == 'S')
Padding( Padding(
padding: const EdgeInsetsDirectional.fromSTEB( padding: const EdgeInsetsDirectional.fromSTEB(
24.0, 20.0, 24.0, 20.0), 24.0, 20.0, 24.0, 20.0),
@ -479,22 +546,24 @@ class _VisitRequestTemplateComponentWidgetState
labelStyle: FlutterFlowTheme.of(context) labelStyle: FlutterFlowTheme.of(context)
.labelMedium .labelMedium
.override( .override(
fontFamily: fontFamily: FlutterFlowTheme.of(context)
FlutterFlowTheme.of(context).labelMediumFamily, .labelMediumFamily,
color: FlutterFlowTheme.of(context).primaryText, color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0, letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey( useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily), FlutterFlowTheme.of(context)
.labelMediumFamily),
), ),
hintStyle: FlutterFlowTheme.of(context) hintStyle: FlutterFlowTheme.of(context)
.labelMedium .labelMedium
.override( .override(
fontFamily: fontFamily: FlutterFlowTheme.of(context)
FlutterFlowTheme.of(context).labelMediumFamily, .labelMediumFamily,
color: FlutterFlowTheme.of(context).primaryText, color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0, letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey( useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily), FlutterFlowTheme.of(context)
.labelMediumFamily),
), ),
enabledBorder: OutlineInputBorder( enabledBorder: OutlineInputBorder(
borderSide: BorderSide( borderSide: BorderSide(
@ -541,6 +610,7 @@ class _VisitRequestTemplateComponentWidgetState
_model.textController4Validator.asValidator(context), _model.textController4Validator.asValidator(context),
), ),
), ),
if (widget.vawStatus == 'S')
Row( Row(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
@ -557,6 +627,7 @@ class _VisitRequestTemplateComponentWidgetState
), ),
onPressed: () async { onPressed: () async {
var shouldSetState = false; var shouldSetState = false;
_model.blockVisitRequest =
await _model.visitRequestComponentAction( await _model.visitRequestComponentAction(
context, context,
actionValue: 'B', actionValue: 'B',
@ -565,10 +636,13 @@ class _VisitRequestTemplateComponentWidgetState
vteUUID: widget.vteUUID, vteUUID: widget.vteUUID,
); );
shouldSetState = true; shouldSetState = true;
if (_model.blockVisitRequest == true) {
// Verifica se o widget ainda está montado antes de tomar qualquer ação baseada no contexto
if (!mounted) return;
Navigator.pop(context); Navigator.pop(context);
} else {
if (shouldSetState) setState(() {});
return;
}
if (shouldSetState) setState(() {}); if (shouldSetState) setState(() {});
}, },
), ),
@ -584,6 +658,7 @@ class _VisitRequestTemplateComponentWidgetState
), ),
onPressed: () async { onPressed: () async {
var shouldSetState = false; var shouldSetState = false;
_model.approveVisitRequest =
await _model.visitRequestComponentAction( await _model.visitRequestComponentAction(
context, context,
actionValue: 'L', actionValue: 'L',
@ -592,9 +667,13 @@ class _VisitRequestTemplateComponentWidgetState
vteUUID: widget.vteUUID, vteUUID: widget.vteUUID,
); );
shouldSetState = true; shouldSetState = true;
if (_model.approveVisitRequest == true) {
if (!mounted) return;
Navigator.pop(context); Navigator.pop(context);
} else {
if (shouldSetState) setState(() {});
return;
}
if (shouldSetState) setState(() {}); if (shouldSetState) setState(() {});
}, },
), ),

View File

@ -1006,8 +1006,8 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
'en': 'Reason', 'en': 'Reason',
}, },
'kt87omsz': { 'kt87omsz': {
'pt': 'Mensagem', 'pt': 'Data',
'en': 'Message', 'en': 'Date',
}, },
'cx6sviir': { 'cx6sviir': {
'pt': '', 'pt': '',
@ -1045,6 +1045,29 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
'en': '', 'en': '',
}, },
}, },
// liberationHistoryItemDetailsTemplateComponent
{
'dmazrriq': {
'pt': 'Nome',
'en': 'Name',
},
'xx3ivbr4': {
'pt': 'Tipo',
'en': 'Type',
},
'rhheok7k': {
'pt': 'Acesso',
'en': 'Access',
},
'w3tciqlv': {
'pt': 'Acionamento',
'en': 'Drive',
},
'ojplrsp3': {
'pt': '',
'en': '',
},
},
// Miscellaneous // Miscellaneous
{ {
'i5smty81': { 'i5smty81': {