add accessNotification route

This commit is contained in:
FlutterFlow 2024-06-25 12:20:32 +00:00
parent 5383f22dda
commit 90a6196a30
7 changed files with 376 additions and 68 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>"; };
6436409D27A31CD200820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = "<group>"; }; 6436409327A31CD200820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = "<group>"; };
6436409627A31CD500820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; }; 6436409C27A31CD500820AF7 /* 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 = (
6436409D27A31CD200820AF7 /* pt */, 6436409327A31CD200820AF7 /* pt */,
6436409627A31CD500820AF7 /* en */, 6436409C27A31CD500820AF7 /* en */,
); );
name = InfoPlist.strings; name = InfoPlist.strings;
sourceTree = "<group>"; sourceTree = "<group>";

View File

@ -76,4 +76,17 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
}, },
); );
} }
Future acessHistoryOptAction(BuildContext context) async {
context.pushNamed(
'acessHistoryPage',
extra: <String, dynamic>{
kTransitionInfoKey: const TransitionInfo(
hasTransition: true,
transitionType: PageTransitionType.scale,
alignment: Alignment.bottomCenter,
),
},
);
}
} }

View File

@ -62,6 +62,10 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
await _model.peopleOnThePropertyAction(context); await _model.peopleOnThePropertyAction(context);
setState(() {}); setState(() {});
}, },
acessHistoryOptAction: () async {
await _model.acessHistoryOptAction(context);
setState(() {});
},
), ),
); );
} else { } else {
@ -86,6 +90,7 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
await _model.peopleOnThePropertyAction(context); await _model.peopleOnThePropertyAction(context);
setState(() {}); setState(() {});
}, },
accessHistoryOptAction: () async {},
), ),
); );
} }

View File

@ -13,12 +13,14 @@ class MenuListViewComponentWidget extends StatefulWidget {
required this.registerVisitorOptAction, required this.registerVisitorOptAction,
required this.scheduleVisitOptAction, required this.scheduleVisitOptAction,
required this.peopleOnThePropertyOptAction, required this.peopleOnThePropertyOptAction,
required this.acessHistoryOptAction,
}); });
final Future Function()? changeMenuStyle; final Future Function()? changeMenuStyle;
final Future Function()? registerVisitorOptAction; final Future Function()? registerVisitorOptAction;
final Future Function()? scheduleVisitOptAction; final Future Function()? scheduleVisitOptAction;
final Future Function()? peopleOnThePropertyOptAction; final Future Function()? peopleOnThePropertyOptAction;
final Future Function()? acessHistoryOptAction;
@override @override
State<MenuListViewComponentWidget> createState() => State<MenuListViewComponentWidget> createState() =>
@ -717,6 +719,118 @@ Propriedade */
), ),
), ),
), ),
Padding(
padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
await widget.acessHistoryOptAction?.call();
},
child: Container(
width: 100.0,
height: double.infinity,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).primaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 4.0,
color: FlutterFlowTheme.of(context).customColor5,
offset: const Offset(
0.0,
2.0,
),
)
],
borderRadius: BorderRadius.circular(24.0),
shape: BoxShape.rectangle,
border: Border.all(
color: FlutterFlowTheme.of(context).alternate,
width: 0.5,
),
),
child: Padding(
padding: const EdgeInsets.all(4.0),
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Align(
alignment: const AlignmentDirectional(0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
child: Align(
alignment:
const AlignmentDirectional(-1.0, 0.0),
child: Padding(
padding: const EdgeInsetsDirectional.fromSTEB(
8.0, 0.0, 0.0, 0.0),
child: Container(
width: 30.0,
height: 30.0,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context)
.primaryBackground,
shape: BoxShape.circle,
),
alignment:
const AlignmentDirectional(0.0, 0.0),
child: Icon(
Icons.history_sharp,
color: FlutterFlowTheme.of(context)
.accent1,
size: 24.0,
),
),
),
),
),
],
),
),
Align(
alignment: const AlignmentDirectional(0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Align(
alignment: const AlignmentDirectional(0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'nxssjz3q' /* Histórico
de Acesso */
,
),
style: FlutterFlowTheme.of(context)
.titleLarge
.override(
fontFamily: 'Nunito',
color: FlutterFlowTheme.of(context)
.primaryText,
fontSize: 14.0,
letterSpacing: 0.0,
fontWeight: FontWeight.w500,
useGoogleFonts: GoogleFonts.asMap()
.containsKey('Nunito'),
),
),
),
],
),
),
].divide(const SizedBox(height: 0.0)),
),
),
),
),
),
].divide(const SizedBox(width: 15.0)), ].divide(const SizedBox(width: 15.0)),
), ),
), ),

View File

@ -14,12 +14,14 @@ class MenuStaggeredViewComponentWidget extends StatefulWidget {
required this.registerVisitorOptAction, required this.registerVisitorOptAction,
required this.scheduleVisitOptAction, required this.scheduleVisitOptAction,
required this.peopleOnThePropertyOptAction, required this.peopleOnThePropertyOptAction,
required this.accessHistoryOptAction,
}); });
final Future Function()? changeMenuStyleAction; final Future Function()? changeMenuStyleAction;
final Future Function()? registerVisitorOptAction; final Future Function()? registerVisitorOptAction;
final Future Function()? scheduleVisitOptAction; final Future Function()? scheduleVisitOptAction;
final Future Function()? peopleOnThePropertyOptAction; final Future Function()? peopleOnThePropertyOptAction;
final Future Function()? accessHistoryOptAction;
@override @override
State<MenuStaggeredViewComponentWidget> createState() => State<MenuStaggeredViewComponentWidget> createState() =>
@ -63,7 +65,7 @@ class _MenuStaggeredViewComponentWidgetState
children: [ children: [
Container( Container(
width: double.infinity, width: double.infinity,
height: MediaQuery.sizeOf(context).height * 0.35, height: MediaQuery.sizeOf(context).height * 0.44,
decoration: const BoxDecoration(), decoration: const BoxDecoration(),
child: Padding( child: Padding(
padding: const EdgeInsets.all(16.0), padding: const EdgeInsets.all(16.0),
@ -74,7 +76,7 @@ class _MenuStaggeredViewComponentWidgetState
), ),
crossAxisSpacing: 10.0, crossAxisSpacing: 10.0,
mainAxisSpacing: 10.0, mainAxisSpacing: 10.0,
itemCount: 6, itemCount: 7,
shrinkWrap: true, shrinkWrap: true,
itemBuilder: (context, index) { itemBuilder: (context, index) {
return [ return [
@ -744,6 +746,123 @@ Propriedade */
), ),
), ),
), ),
() => InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
await widget.accessHistoryOptAction?.call();
},
child: Container(
width: 100.0,
height: 100.0,
decoration: BoxDecoration(
color:
FlutterFlowTheme.of(context).primaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 4.0,
color:
FlutterFlowTheme.of(context).customColor5,
offset: const Offset(
0.0,
2.0,
),
)
],
borderRadius: BorderRadius.circular(24.0),
shape: BoxShape.rectangle,
border: Border.all(
color: FlutterFlowTheme.of(context).alternate,
width: 0.5,
),
),
child: Padding(
padding: const EdgeInsets.all(4.0),
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Align(
alignment: const AlignmentDirectional(0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
child: Align(
alignment:
const AlignmentDirectional(-1.0, 0.0),
child: Padding(
padding:
const EdgeInsetsDirectional.fromSTEB(
8.0, 0.0, 0.0, 0.0),
child: Container(
width: 30.0,
height: 30.0,
decoration: BoxDecoration(
color:
FlutterFlowTheme.of(context)
.primaryBackground,
shape: BoxShape.circle,
),
alignment: const AlignmentDirectional(
0.0, 0.0),
child: Icon(
Icons.history_sharp,
color:
FlutterFlowTheme.of(context)
.accent1,
size: 24.0,
),
),
),
),
),
],
),
),
Align(
alignment: const AlignmentDirectional(0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Align(
alignment:
const AlignmentDirectional(0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'6jzghbyi' /* Histórico
de Acesso */
,
),
style: FlutterFlowTheme.of(context)
.titleLarge
.override(
fontFamily: 'Nunito',
color:
FlutterFlowTheme.of(context)
.primaryText,
fontSize: 14.0,
letterSpacing: 0.0,
fontWeight: FontWeight.w500,
useGoogleFonts:
GoogleFonts.asMap()
.containsKey('Nunito'),
),
),
),
],
),
),
].divide(const SizedBox(height: 0.0)),
),
),
),
),
][index](); ][index]();
}, },
), ),

View File

@ -461,6 +461,10 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
'pt': 'Fim em: ', 'pt': 'Fim em: ',
'en': 'End in:', 'en': 'End in:',
}, },
'784f83pc': {
'pt': 'Histórico de Liberação',
'en': 'Liberation History',
},
'1skj43ye': { '1skj43ye': {
'pt': 'Home', 'pt': 'Home',
'en': '', 'en': '',
@ -766,6 +770,10 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
'pt': 'Pessoas na\nPropriedade', 'pt': 'Pessoas na\nPropriedade',
'en': 'People on\nthe Property', 'en': 'People on\nthe Property',
}, },
'nxssjz3q': {
'pt': 'Histórico \nde Acesso',
'en': 'Access \nHistory',
},
}, },
// menuStaggeredViewComponent // menuStaggeredViewComponent
{ {
@ -793,6 +801,10 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
'pt': 'Pessoas na\nPropriedade', 'pt': 'Pessoas na\nPropriedade',
'en': 'People on\nthe Property', 'en': 'People on\nthe Property',
}, },
'6jzghbyi': {
'pt': 'Histórico\nde Acesso',
'en': 'Access\nHistory',
},
}, },
// messageWellComponent // messageWellComponent
{ {

View File

@ -1,5 +1,6 @@
import '/backend/api_requests/api_calls.dart'; import '/backend/api_requests/api_calls.dart';
import '/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart'; import '/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart';
import '/flutter_flow/flutter_flow_icon_button.dart';
import '/flutter_flow/flutter_flow_theme.dart'; import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart'; import '/flutter_flow/flutter_flow_util.dart';
import '/flutter_flow/custom_functions.dart' as functions; import '/flutter_flow/custom_functions.dart' as functions;
@ -51,6 +52,39 @@ class _LiberationHistoryWidgetState extends State<LiberationHistoryWidget> {
child: Scaffold( child: Scaffold(
key: scaffoldKey, key: scaffoldKey,
backgroundColor: FlutterFlowTheme.of(context).primaryBackground, backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
appBar: AppBar(
backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
automaticallyImplyLeading: false,
leading: FlutterFlowIconButton(
borderColor: Colors.transparent,
borderRadius: 30.0,
borderWidth: 1.0,
buttonSize: 60.0,
icon: Icon(
Icons.keyboard_arrow_left,
color: FlutterFlowTheme.of(context).primaryText,
size: 30.0,
),
onPressed: () async {
context.pop();
},
),
title: Text(
FFLocalizations.of(context).getText(
'784f83pc' /* Histórico de Liberação */,
),
style: FlutterFlowTheme.of(context).headlineMedium.override(
fontFamily: 'Nunito',
color: FlutterFlowTheme.of(context).primaryText,
fontSize: 17.0,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey('Nunito'),
),
),
actions: const [],
centerTitle: true,
elevation: 2.0,
),
body: SafeArea( body: SafeArea(
top: true, top: true,
child: Column( child: Column(
@ -66,74 +100,85 @@ class _LiberationHistoryWidgetState extends State<LiberationHistoryWidget> {
alignment: const AlignmentDirectional(0.0, -1.0), alignment: const AlignmentDirectional(0.0, -1.0),
child: Padding( child: Padding(
padding: const EdgeInsetsDirectional.fromSTEB(8.0, 0.0, 8.0, 0.0), padding: const EdgeInsetsDirectional.fromSTEB(8.0, 0.0, 8.0, 0.0),
child: TextFormField( child: SizedBox(
controller: _model.textController, width: 300.0,
focusNode: _model.textFieldFocusNode, child: TextFormField(
autofocus: true, controller: _model.textController,
obscureText: false, focusNode: _model.textFieldFocusNode,
decoration: InputDecoration( autofocus: true,
labelText: FFLocalizations.of(context).getText( obscureText: false,
'dy0mx15f' /* Label here... */, decoration: InputDecoration(
isDense: true,
labelText: FFLocalizations.of(context).getText(
'dy0mx15f' /* Label here... */,
),
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: UnderlineInputBorder(
borderSide: BorderSide(
color: FlutterFlowTheme.of(context).alternate,
width: 2.0,
),
borderRadius: BorderRadius.circular(8.0),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: FlutterFlowTheme.of(context).primary,
width: 2.0,
),
borderRadius: BorderRadius.circular(8.0),
),
errorBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: FlutterFlowTheme.of(context).error,
width: 2.0,
),
borderRadius: BorderRadius.circular(8.0),
),
focusedErrorBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: FlutterFlowTheme.of(context).error,
width: 2.0,
),
borderRadius: BorderRadius.circular(8.0),
),
filled: true,
fillColor: FlutterFlowTheme.of(context).alternate,
prefixIcon: Icon(
Icons.search_sharp,
color: FlutterFlowTheme.of(context).primaryText,
),
), ),
labelStyle: FlutterFlowTheme.of(context) style: FlutterFlowTheme.of(context).bodyMedium.override(
.labelMedium
.override(
fontFamily: fontFamily:
FlutterFlowTheme.of(context).labelMediumFamily, FlutterFlowTheme.of(context).bodyMediumFamily,
letterSpacing: 0.0, letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey( useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily), FlutterFlowTheme.of(context).bodyMediumFamily),
), ),
hintStyle: FlutterFlowTheme.of(context) validator:
.labelMedium _model.textControllerValidator.asValidator(context),
.override(
fontFamily:
FlutterFlowTheme.of(context).labelMediumFamily,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily),
),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: FlutterFlowTheme.of(context).alternate,
width: 2.0,
),
borderRadius: BorderRadius.circular(8.0),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: FlutterFlowTheme.of(context).primary,
width: 2.0,
),
borderRadius: BorderRadius.circular(8.0),
),
errorBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: FlutterFlowTheme.of(context).error,
width: 2.0,
),
borderRadius: BorderRadius.circular(8.0),
),
focusedErrorBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: FlutterFlowTheme.of(context).error,
width: 2.0,
),
borderRadius: BorderRadius.circular(8.0),
),
prefixIcon: const Icon(
Icons.search_sharp,
),
), ),
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily:
FlutterFlowTheme.of(context).bodyMediumFamily,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).bodyMediumFamily),
),
validator:
_model.textControllerValidator.asValidator(context),
), ),
), ),
), ),