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:
commit
b01116669f
|
@ -44,8 +44,8 @@
|
|||
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>"; };
|
||||
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>"; };
|
||||
6436409F27A31CD200820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
6436409E27A31CD800820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.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>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
|
@ -225,8 +225,8 @@
|
|||
6436409C27A31CD800820AF7 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
6436409E27A31CDF00820AF7 /* pt */,
|
||||
6436409F27A31CD200820AF7 /* en */,
|
||||
6436409E27A31CD800820AF7 /* pt */,
|
||||
6436409927A31CD300820AF7 /* en */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
|
|
|
@ -37,6 +37,8 @@ class PhpGroup {
|
|||
RespondeSolicitacaoCall();
|
||||
static GetAccessCall getAccessCall = GetAccessCall();
|
||||
static GetLiberationsCall getLiberationsCall = GetLiberationsCall();
|
||||
static GetLiberationsCopyCall getLiberationsCopyCall =
|
||||
GetLiberationsCopyCall();
|
||||
}
|
||||
|
||||
class UpdToken {
|
||||
|
@ -2043,6 +2045,190 @@ class GetLiberationsCall {
|
|||
.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
|
||||
|
||||
class ApiPagingParams {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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)),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
|
@ -11,17 +11,19 @@ export 'visit_request_template_component_model.dart';
|
|||
class VisitRequestTemplateComponentWidget extends StatefulWidget {
|
||||
const VisitRequestTemplateComponentWidget({
|
||||
super.key,
|
||||
this.vteName,
|
||||
this.vteReason,
|
||||
this.vteMsg,
|
||||
this.vteDocument,
|
||||
this.cliUUID,
|
||||
this.vteUUID,
|
||||
this.vawName,
|
||||
this.msgUUID,
|
||||
this.vawRef,
|
||||
this.vawUUID,
|
||||
this.vawDestino,
|
||||
required this.vteName,
|
||||
required this.vteReason,
|
||||
required this.vteMsg,
|
||||
required this.vteDocument,
|
||||
required this.cliUUID,
|
||||
required this.vteUUID,
|
||||
required this.vawName,
|
||||
required this.msgUUID,
|
||||
required this.vawRef,
|
||||
required this.vawUUID,
|
||||
required this.vawDestino,
|
||||
required this.vawStatus,
|
||||
this.vawDate,
|
||||
});
|
||||
|
||||
final String? vteName;
|
||||
|
@ -35,6 +37,8 @@ class VisitRequestTemplateComponentWidget extends StatefulWidget {
|
|||
final String? vawRef;
|
||||
final String? vawUUID;
|
||||
final String? vawDestino;
|
||||
final String? vawStatus;
|
||||
final String? vawDate;
|
||||
|
||||
@override
|
||||
State<VisitRequestTemplateComponentWidget> createState() =>
|
||||
|
@ -103,6 +107,9 @@ class _VisitRequestTemplateComponentWidgetState
|
|||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Container(
|
||||
width: 150.0,
|
||||
|
@ -121,6 +128,63 @@ class _VisitRequestTemplateComponentWidgetState
|
|||
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))
|
||||
.addToEnd(const SizedBox(width: 10.0)),
|
||||
|
@ -405,6 +469,7 @@ class _VisitRequestTemplateComponentWidgetState
|
|||
_model.textController2Validator.asValidator(context),
|
||||
),
|
||||
),
|
||||
if (widget.vawStatus != 'S')
|
||||
Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(
|
||||
24.0, 0.0, 24.0, 0.0),
|
||||
|
@ -419,26 +484,27 @@ class _VisitRequestTemplateComponentWidgetState
|
|||
decoration: InputDecoration(
|
||||
isDense: true,
|
||||
labelText: FFLocalizations.of(context).getText(
|
||||
'kt87omsz' /* Mensagem */,
|
||||
'kt87omsz' /* Data */,
|
||||
),
|
||||
labelStyle: FlutterFlowTheme.of(context)
|
||||
.labelMedium
|
||||
.override(
|
||||
fontFamily:
|
||||
FlutterFlowTheme.of(context).labelMediumFamily,
|
||||
fontFamily: FlutterFlowTheme.of(context)
|
||||
.labelMediumFamily,
|
||||
color: FlutterFlowTheme.of(context).primaryText,
|
||||
letterSpacing: 0.0,
|
||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||
FlutterFlowTheme.of(context).labelMediumFamily),
|
||||
FlutterFlowTheme.of(context)
|
||||
.labelMediumFamily),
|
||||
),
|
||||
hintStyle: FlutterFlowTheme.of(context)
|
||||
.labelMedium
|
||||
.override(
|
||||
fontFamily:
|
||||
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),
|
||||
useGoogleFonts: GoogleFonts.asMap()
|
||||
.containsKey(FlutterFlowTheme.of(context)
|
||||
.labelMediumFamily),
|
||||
),
|
||||
enabledBorder: InputBorder.none,
|
||||
focusedBorder: InputBorder.none,
|
||||
|
@ -462,6 +528,7 @@ class _VisitRequestTemplateComponentWidgetState
|
|||
_model.textController3Validator.asValidator(context),
|
||||
),
|
||||
),
|
||||
if (widget.vawStatus == 'S')
|
||||
Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(
|
||||
24.0, 20.0, 24.0, 20.0),
|
||||
|
@ -479,22 +546,24 @@ class _VisitRequestTemplateComponentWidgetState
|
|||
labelStyle: FlutterFlowTheme.of(context)
|
||||
.labelMedium
|
||||
.override(
|
||||
fontFamily:
|
||||
FlutterFlowTheme.of(context).labelMediumFamily,
|
||||
fontFamily: FlutterFlowTheme.of(context)
|
||||
.labelMediumFamily,
|
||||
color: FlutterFlowTheme.of(context).primaryText,
|
||||
letterSpacing: 0.0,
|
||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||
FlutterFlowTheme.of(context).labelMediumFamily),
|
||||
FlutterFlowTheme.of(context)
|
||||
.labelMediumFamily),
|
||||
),
|
||||
hintStyle: FlutterFlowTheme.of(context)
|
||||
.labelMedium
|
||||
.override(
|
||||
fontFamily:
|
||||
FlutterFlowTheme.of(context).labelMediumFamily,
|
||||
fontFamily: FlutterFlowTheme.of(context)
|
||||
.labelMediumFamily,
|
||||
color: FlutterFlowTheme.of(context).primaryText,
|
||||
letterSpacing: 0.0,
|
||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||
FlutterFlowTheme.of(context).labelMediumFamily),
|
||||
FlutterFlowTheme.of(context)
|
||||
.labelMediumFamily),
|
||||
),
|
||||
enabledBorder: OutlineInputBorder(
|
||||
borderSide: BorderSide(
|
||||
|
@ -541,6 +610,7 @@ class _VisitRequestTemplateComponentWidgetState
|
|||
_model.textController4Validator.asValidator(context),
|
||||
),
|
||||
),
|
||||
if (widget.vawStatus == 'S')
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
|
@ -557,6 +627,7 @@ class _VisitRequestTemplateComponentWidgetState
|
|||
),
|
||||
onPressed: () async {
|
||||
var shouldSetState = false;
|
||||
_model.blockVisitRequest =
|
||||
await _model.visitRequestComponentAction(
|
||||
context,
|
||||
actionValue: 'B',
|
||||
|
@ -565,10 +636,13 @@ class _VisitRequestTemplateComponentWidgetState
|
|||
vteUUID: widget.vteUUID,
|
||||
);
|
||||
shouldSetState = true;
|
||||
|
||||
// Verifica se o widget ainda está montado antes de tomar qualquer ação baseada no contexto
|
||||
if (!mounted) return;
|
||||
if (_model.blockVisitRequest == true) {
|
||||
Navigator.pop(context);
|
||||
} else {
|
||||
if (shouldSetState) setState(() {});
|
||||
return;
|
||||
}
|
||||
|
||||
if (shouldSetState) setState(() {});
|
||||
},
|
||||
),
|
||||
|
@ -584,6 +658,7 @@ class _VisitRequestTemplateComponentWidgetState
|
|||
),
|
||||
onPressed: () async {
|
||||
var shouldSetState = false;
|
||||
_model.approveVisitRequest =
|
||||
await _model.visitRequestComponentAction(
|
||||
context,
|
||||
actionValue: 'L',
|
||||
|
@ -592,9 +667,13 @@ class _VisitRequestTemplateComponentWidgetState
|
|||
vteUUID: widget.vteUUID,
|
||||
);
|
||||
shouldSetState = true;
|
||||
|
||||
if (!mounted) return;
|
||||
if (_model.approveVisitRequest == true) {
|
||||
Navigator.pop(context);
|
||||
} else {
|
||||
if (shouldSetState) setState(() {});
|
||||
return;
|
||||
}
|
||||
|
||||
if (shouldSetState) setState(() {});
|
||||
},
|
||||
),
|
||||
|
|
|
@ -1006,8 +1006,8 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
|
|||
'en': 'Reason',
|
||||
},
|
||||
'kt87omsz': {
|
||||
'pt': 'Mensagem',
|
||||
'en': 'Message',
|
||||
'pt': 'Data',
|
||||
'en': 'Date',
|
||||
},
|
||||
'cx6sviir': {
|
||||
'pt': '',
|
||||
|
@ -1045,6 +1045,29 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
|
|||
'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
|
||||
{
|
||||
'i5smty81': {
|
||||
|
|
Loading…
Reference in New Issue