convert swtich offline into bloc
parent
f9fd714fa6
commit
ebb04ad358
|
@ -0,0 +1,28 @@
|
|||
import 'package:bloc/bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:unit2/utils/global.dart';
|
||||
|
||||
import '../../../model/offline/offlane_modules.dart';
|
||||
import '../../../model/offline/offline_profile.dart';
|
||||
|
||||
part 'offline_event.dart';
|
||||
part 'offline_state.dart';
|
||||
|
||||
class OfflineBloc extends Bloc<OfflineEvent, OfflineState> {
|
||||
OfflineBloc() : super(OfflineInitial()) {
|
||||
on<SwitchOffline>((event, emit) async {
|
||||
try {
|
||||
List<dynamic> modules = await OFFLINE!.get('modules');
|
||||
List<OfflineModules> offlineModules = [];
|
||||
for (var module in modules) {
|
||||
offlineModules.add(module);
|
||||
}
|
||||
OfflineProfile offlineProfile = await OFFLINE!.get('offline_profile');
|
||||
emit(OfflineModeState(
|
||||
offlineModules: offlineModules, offlineProfile: offlineProfile));
|
||||
} catch (e) {
|
||||
emit(OfflineErrorState(message: e.toString()));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
part of 'offline_bloc.dart';
|
||||
|
||||
class OfflineEvent extends Equatable {
|
||||
const OfflineEvent();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class SwitchOffline extends OfflineEvent {
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
part of 'offline_bloc.dart';
|
||||
|
||||
class OfflineState extends Equatable {
|
||||
const OfflineState();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class OfflineInitial extends OfflineState {}
|
||||
|
||||
class OfflineModeState extends OfflineState {
|
||||
final OfflineProfile offlineProfile;
|
||||
final List<OfflineModules> offlineModules;
|
||||
const OfflineModeState(
|
||||
{required this.offlineModules, required this.offlineProfile});
|
||||
@override
|
||||
List<Object> get props => [offlineProfile, offlineModules];
|
||||
}
|
||||
|
||||
class OfflineLoadingState extends OfflineState {}
|
||||
|
||||
class OfflineErrorState extends OfflineState {
|
||||
final String message;
|
||||
const OfflineErrorState({required this.message});
|
||||
}
|
|
@ -10,7 +10,7 @@ class GetApkVersion extends UserEvent {
|
|||
final String password;
|
||||
GetApkVersion({required this.password, required this.username});
|
||||
@override
|
||||
List<Object> get props => [username,password];
|
||||
List<Object> get props => [username, password];
|
||||
}
|
||||
|
||||
class UserLogin extends UserEvent {
|
||||
|
@ -28,15 +28,15 @@ class LoadLoggedInUser extends UserEvent {
|
|||
class GetUuid extends UserEvent {
|
||||
GetUuid();
|
||||
}
|
||||
class LoadUuid extends UserEvent{
|
||||
|
||||
class LoadUuid extends UserEvent {
|
||||
LoadUuid();
|
||||
}
|
||||
|
||||
|
||||
class LoadVersion extends UserEvent {
|
||||
final String? username;
|
||||
final String? password;
|
||||
LoadVersion({this.password,this.username});
|
||||
LoadVersion({this.password, this.username});
|
||||
}
|
||||
|
||||
class UuidLogin extends UserEvent {
|
||||
|
|
|
@ -1,43 +1,47 @@
|
|||
part of 'user_bloc.dart';
|
||||
|
||||
abstract class UserState extends Equatable {
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class UserInitial extends UserState {
|
||||
UserInitial();
|
||||
@override
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class UserLoading extends UserState {
|
||||
final String? message;
|
||||
UserLoading({this.message});
|
||||
UserLoading({this.message});
|
||||
@override
|
||||
List<Object> get props => [message!];
|
||||
}
|
||||
|
||||
class SplashScreen extends UserState {
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class UserError extends UserState {
|
||||
final String? message;
|
||||
UserError({this.message});
|
||||
UserError({this.message});
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
class UserLoggedIn extends UserState{
|
||||
|
||||
class UserLoggedIn extends UserState {
|
||||
final List<AssignedArea>? estPersonAssignedArea;
|
||||
final UserData? userData;
|
||||
final String? message;
|
||||
final bool? success;
|
||||
final bool? savedCredentials;
|
||||
UserLoggedIn({this.userData,this.message,this.success,this.savedCredentials, required this.estPersonAssignedArea});
|
||||
UserLoggedIn(
|
||||
{this.userData,
|
||||
this.message,
|
||||
this.success,
|
||||
this.savedCredentials,
|
||||
required this.estPersonAssignedArea});
|
||||
}
|
||||
|
||||
class VersionLoaded extends UserState {
|
||||
|
@ -45,33 +49,34 @@ class VersionLoaded extends UserState {
|
|||
final String? apkVersion;
|
||||
final String? username;
|
||||
final String? password;
|
||||
VersionLoaded({this.versionInfo,this.apkVersion, this.password,this.username});
|
||||
VersionLoaded(
|
||||
{this.versionInfo, this.apkVersion, this.password, this.username});
|
||||
@override
|
||||
List<Object> get props => [versionInfo!];
|
||||
}
|
||||
class UuidLoaded extends UserState{
|
||||
|
||||
class UuidLoaded extends UserState {
|
||||
final String uuid;
|
||||
UuidLoaded({required this.uuid});
|
||||
@override
|
||||
@override
|
||||
List<Object> get props => [uuid];
|
||||
}
|
||||
|
||||
class InternetTimeout extends UserState{
|
||||
class InternetTimeout extends UserState {
|
||||
final String message;
|
||||
InternetTimeout({required this.message});
|
||||
@override
|
||||
List<Object> get props => [message];
|
||||
}
|
||||
|
||||
class InvalidCredentials extends UserState{
|
||||
final String message ;
|
||||
InvalidCredentials ({required this.message});
|
||||
class InvalidCredentials extends UserState {
|
||||
final String message;
|
||||
InvalidCredentials({required this.message});
|
||||
}
|
||||
class LoginErrorState extends UserState{
|
||||
|
||||
class LoginErrorState extends UserState {
|
||||
final String message;
|
||||
LoginErrorState({required this.message});
|
||||
}
|
||||
|
||||
class ErrorWithOfflineMode extends UserState{
|
||||
|
||||
}
|
||||
class ErrorWithOfflineMode extends UserState {}
|
||||
|
|
|
@ -9,35 +9,34 @@ import '../../../../bloc/user/user_bloc.dart';
|
|||
import '../../../../widgets/splash_screen.dart';
|
||||
|
||||
class OfflineDrawerScreen extends StatefulWidget {
|
||||
final List<OfflineModules> modules;
|
||||
const OfflineDrawerScreen({Key? key ,required this.modules}) : super(key: key,);
|
||||
const OfflineDrawerScreen({
|
||||
Key? key,
|
||||
}) : super(
|
||||
key: key,
|
||||
);
|
||||
@override
|
||||
State<OfflineDrawerScreen> createState() => _OfflineDrawerScreenState();
|
||||
}
|
||||
|
||||
class _OfflineDrawerScreenState extends State<OfflineDrawerScreen> {
|
||||
|
||||
|
||||
final zoomDrawerController = ZoomDrawerController();
|
||||
@override
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return ZoomDrawer(
|
||||
controller: zoomDrawerController,
|
||||
menuScreen: const OfflineMenuScreen(),
|
||||
mainScreen: SizedBox(
|
||||
height: MediaQuery.of(context).size.height,
|
||||
child: OfflineModuleScreen(modules: widget.modules,)),
|
||||
style: DrawerStyle.defaultStyle,
|
||||
borderRadius: 24.0,
|
||||
showShadow: false,
|
||||
angle: -0.0,
|
||||
slideWidth: MediaQuery.of(context).size.width * .90,
|
||||
openCurve: Curves.fastOutSlowIn,
|
||||
closeCurve: Curves.easeOut,
|
||||
menuBackgroundColor: Colors.grey,
|
||||
);
|
||||
return ZoomDrawer(
|
||||
controller: zoomDrawerController,
|
||||
menuScreen: const OfflineMenuScreen(),
|
||||
mainScreen: SizedBox(
|
||||
height: MediaQuery.of(context).size.height,
|
||||
child: const OfflineModuleScreen()),
|
||||
style: DrawerStyle.defaultStyle,
|
||||
borderRadius: 24.0,
|
||||
showShadow: false,
|
||||
angle: -0.0,
|
||||
slideWidth: MediaQuery.of(context).size.width * .90,
|
||||
openCurve: Curves.fastOutSlowIn,
|
||||
closeCurve: Curves.easeOut,
|
||||
menuBackgroundColor: Colors.grey,
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flutter_zoom_drawer/flutter_zoom_drawer.dart';
|
||||
import 'package:fluttericon/font_awesome5_icons.dart';
|
||||
import 'package:unit2/bloc/offline/offline_bloc/offline_bloc.dart';
|
||||
import 'package:unit2/model/offline/offlane_modules.dart';
|
||||
import 'package:unit2/screens/passo/passo_dashboard.dart';
|
||||
import 'package:unit2/screens/unit2/homepage.dart/components/dashboard/shared_card_label.dart';
|
||||
import 'package:unit2/theme-data.dart/colors.dart';
|
||||
|
||||
class OfflineModuleScreen extends StatelessWidget {
|
||||
final List<OfflineModules> modules;
|
||||
const OfflineModuleScreen({super.key, required this.modules});
|
||||
const OfflineModuleScreen({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -27,25 +28,37 @@ class OfflineModuleScreen extends StatelessWidget {
|
|||
),
|
||||
),
|
||||
),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.all(24),
|
||||
child: GridView.count(
|
||||
shrinkWrap: true,
|
||||
crossAxisCount: 4,
|
||||
crossAxisSpacing: 8,
|
||||
mainAxisSpacing: 10,
|
||||
physics: const BouncingScrollPhysics(),
|
||||
padding: const EdgeInsets.symmetric(vertical: 5, horizontal: 5),
|
||||
children: modules
|
||||
.map((e) => CardLabel(
|
||||
icon: FontAwesome5.eye,
|
||||
title: "Field Surveyor",
|
||||
ontap: () {
|
||||
Navigator.push(context, MaterialPageRoute(builder: ((context) {
|
||||
return PassoDashBoard();
|
||||
})));
|
||||
}))
|
||||
.toList()),
|
||||
body: BlocConsumer<OfflineBloc, OfflineState>(
|
||||
listener: (context, state) {
|
||||
// TODO: implement listener
|
||||
},
|
||||
builder: (context, state) {
|
||||
if (state is OfflineModeState) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.all(24),
|
||||
child: GridView.count(
|
||||
shrinkWrap: true,
|
||||
crossAxisCount: 4,
|
||||
crossAxisSpacing: 8,
|
||||
mainAxisSpacing: 10,
|
||||
physics: const BouncingScrollPhysics(),
|
||||
padding:
|
||||
const EdgeInsets.symmetric(vertical: 5, horizontal: 5),
|
||||
children: state.offlineModules
|
||||
.map((e) => CardLabel(
|
||||
icon: FontAwesome5.eye,
|
||||
title: "Field Surveyor",
|
||||
ontap: () {
|
||||
Navigator.push(context,
|
||||
MaterialPageRoute(builder: ((context) {
|
||||
return PassoDashBoard();
|
||||
})));
|
||||
}))
|
||||
.toList()),
|
||||
);
|
||||
}
|
||||
return Container();
|
||||
},
|
||||
));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,7 +44,6 @@ import '../../bloc/profile/voluntary_works/voluntary_work_bloc.dart';
|
|||
import '../../bloc/profile/workHistory/workHistory_bloc.dart';
|
||||
import '../../bloc/user/user_bloc.dart';
|
||||
import '../../model/profile/basic_information/primary-information.dart';
|
||||
import '../unit2/homepage.dart/components/menu.dart';
|
||||
import 'components/main_menu.dart';
|
||||
import 'components/submenu.dart';
|
||||
|
||||
|
@ -62,10 +61,8 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
String? token;
|
||||
Profile profile;
|
||||
return WillPopScope(
|
||||
onWillPop: () async{
|
||||
setState(() {
|
||||
|
||||
});
|
||||
onWillPop: () async {
|
||||
setState(() {});
|
||||
return true;
|
||||
},
|
||||
child: Scaffold(
|
||||
|
@ -83,9 +80,8 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
profileId = state.userData!.user!.login!.user!.profileId;
|
||||
token = state.userData!.user!.login!.token!;
|
||||
if (globalCurrentProfile == null) {
|
||||
|
||||
profile = state.userData!.employeeInfo!.profile!;
|
||||
globalCurrentProfile = profile;
|
||||
globalCurrentProfile = profile;
|
||||
} else {
|
||||
profile = globalCurrentProfile!;
|
||||
}
|
||||
|
@ -120,7 +116,8 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
ExpandableGroup(
|
||||
collapsedIcon:
|
||||
const Icon(Icons.keyboard_arrow_down),
|
||||
expandedIcon: const Icon(Icons.keyboard_arrow_up),
|
||||
expandedIcon:
|
||||
const Icon(Icons.keyboard_arrow_up),
|
||||
header: const ListTile(
|
||||
leading: Icon(
|
||||
Elusive.address_book,
|
||||
|
@ -128,7 +125,8 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
),
|
||||
title: Text(
|
||||
"Basic Information",
|
||||
style: TextStyle(fontWeight: FontWeight.bold),
|
||||
style:
|
||||
TextStyle(fontWeight: FontWeight.bold),
|
||||
),
|
||||
),
|
||||
items: [
|
||||
|
@ -138,7 +136,8 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
return BlocProvider<ProfileBloc>.value(
|
||||
value: ProfileBloc()
|
||||
..add(GetPrimaryBasicInfo(
|
||||
primaryBasicInformation: profile)),
|
||||
primaryBasicInformation:
|
||||
profile)),
|
||||
child: PrimaryInfo(
|
||||
token: token!,
|
||||
profileId: profileId!,
|
||||
|
@ -152,8 +151,10 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
return BlocProvider(
|
||||
create: (context) => AddressBloc()
|
||||
..add(GetAddress(
|
||||
addresses: state.profileInformation
|
||||
.basicInfo.addresses)),
|
||||
addresses: state
|
||||
.profileInformation
|
||||
.basicInfo
|
||||
.addresses)),
|
||||
child: const AddressScreen(),
|
||||
);
|
||||
}));
|
||||
|
@ -163,12 +164,14 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
Navigator.push(context, MaterialPageRoute(
|
||||
builder: (BuildContext context) {
|
||||
return BlocProvider(
|
||||
create: (context) => IdentificationBloc()
|
||||
..add(GetIdentifications(
|
||||
identificationInformation: state
|
||||
.profileInformation
|
||||
.basicInfo
|
||||
.identifications)),
|
||||
create: (context) =>
|
||||
IdentificationBloc()
|
||||
..add(GetIdentifications(
|
||||
identificationInformation:
|
||||
state
|
||||
.profileInformation
|
||||
.basicInfo
|
||||
.identifications)),
|
||||
child: const IdentificationsScreen(),
|
||||
);
|
||||
}));
|
||||
|
@ -199,11 +202,12 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
.basicInfo
|
||||
.citizenships)),
|
||||
child: CitizenShipScreen(
|
||||
citizenships: state
|
||||
.profileInformation
|
||||
.basicInfo
|
||||
.citizenships,
|
||||
profileId: profileId!, token: token!),
|
||||
citizenships: state
|
||||
.profileInformation
|
||||
.basicInfo
|
||||
.citizenships,
|
||||
profileId: profileId!,
|
||||
token: token!),
|
||||
);
|
||||
}));
|
||||
}),
|
||||
|
@ -218,7 +222,8 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
return BlocProvider(
|
||||
create: (context) => FamilyBloc()
|
||||
..add(GetFamilies(
|
||||
profileId: profileId!, token: token!)),
|
||||
profileId: profileId!,
|
||||
token: token!)),
|
||||
child: const FamilyBackgroundScreen(),
|
||||
);
|
||||
}));
|
||||
|
@ -234,7 +239,8 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
return BlocProvider(
|
||||
create: (context) => EducationBloc()
|
||||
..add(GetEducationalBackground(
|
||||
profileId: profileId!, token: token!)),
|
||||
profileId: profileId!,
|
||||
token: token!)),
|
||||
child: const EducationScreen(),
|
||||
);
|
||||
}));
|
||||
|
@ -250,7 +256,8 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
return BlocProvider(
|
||||
create: (context) => EligibilityBloc()
|
||||
..add(GetEligibilities(
|
||||
profileId: profileId!, token: token!)),
|
||||
profileId: profileId!,
|
||||
token: token!)),
|
||||
child: const EligibiltyScreen(),
|
||||
);
|
||||
}));
|
||||
|
@ -266,7 +273,8 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
return BlocProvider(
|
||||
create: (context) => WorkHistoryBloc()
|
||||
..add(GetWorkHistories(
|
||||
profileId: profileId!, token: token!)),
|
||||
profileId: profileId!,
|
||||
token: token!)),
|
||||
child: const WorkHistoryScreen(),
|
||||
);
|
||||
}));
|
||||
|
@ -282,7 +290,8 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
return BlocProvider(
|
||||
create: (context) => VoluntaryWorkBloc()
|
||||
..add(GetVoluntarWorks(
|
||||
profileId: profileId!, token: token!)),
|
||||
profileId: profileId!,
|
||||
token: token!)),
|
||||
child: const VolunataryWorkScreen(),
|
||||
);
|
||||
}));
|
||||
|
@ -296,9 +305,11 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
Navigator.push(context, MaterialPageRoute(
|
||||
builder: (BuildContext context) {
|
||||
return BlocProvider(
|
||||
create: (context) => LearningDevelopmentBloc()
|
||||
..add(GetLearningDevelopments(
|
||||
profileId: profileId!, token: token!)),
|
||||
create: (context) =>
|
||||
LearningDevelopmentBloc()
|
||||
..add(GetLearningDevelopments(
|
||||
profileId: profileId!,
|
||||
token: token!)),
|
||||
child: const LearningAndDevelopmentScreen(),
|
||||
);
|
||||
}));
|
||||
|
@ -314,7 +325,8 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
return BlocProvider(
|
||||
create: (context) => ReferencesBloc()
|
||||
..add(GetReferences(
|
||||
profileId: profileId!, token: token!)),
|
||||
profileId: profileId!,
|
||||
token: token!)),
|
||||
child: const ReferencesScreen(),
|
||||
);
|
||||
}));
|
||||
|
@ -323,7 +335,8 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
ExpandableGroup(
|
||||
collapsedIcon:
|
||||
const Icon(Icons.keyboard_arrow_down),
|
||||
expandedIcon: const Icon(Icons.keyboard_arrow_up),
|
||||
expandedIcon:
|
||||
const Icon(Icons.keyboard_arrow_up),
|
||||
header: const ListTile(
|
||||
leading: Icon(
|
||||
Icons.info,
|
||||
|
@ -331,7 +344,8 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
),
|
||||
title: Text(
|
||||
"Other Information",
|
||||
style: TextStyle(fontWeight: FontWeight.bold),
|
||||
style:
|
||||
TextStyle(fontWeight: FontWeight.bold),
|
||||
),
|
||||
),
|
||||
items: [
|
||||
|
@ -382,7 +396,8 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
ExpandableGroup(
|
||||
collapsedIcon:
|
||||
const Icon(Icons.keyboard_arrow_down),
|
||||
expandedIcon: const Icon(Icons.keyboard_arrow_up),
|
||||
expandedIcon:
|
||||
const Icon(Icons.keyboard_arrow_up),
|
||||
header: const ListTile(
|
||||
leading: Icon(
|
||||
FontAwesome5.laptop_house,
|
||||
|
@ -390,7 +405,8 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
),
|
||||
title: Text(
|
||||
"Assets",
|
||||
style: TextStyle(fontWeight: FontWeight.bold),
|
||||
style:
|
||||
TextStyle(fontWeight: FontWeight.bold),
|
||||
),
|
||||
),
|
||||
items: [
|
||||
|
@ -412,7 +428,7 @@ class _ProfileInfoState extends State<ProfileInfo> {
|
|||
LoadProfile(token: token!, userID: profileId!));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
return Container();
|
||||
},
|
||||
);
|
||||
|
|
|
@ -137,10 +137,10 @@ class BuildInformation extends StatelessWidget {
|
|||
@override
|
||||
Widget build(BuildContext context) {
|
||||
DateFormat dteFormat2 = DateFormat.yMMMMd('en_US');
|
||||
globalFistname =
|
||||
globalFistname ?? userData.employeeInfo!.profile!.firstName!.toUpperCase();
|
||||
globalLastname =
|
||||
globalLastname ?? userData.employeeInfo!.profile!.lastName!.toUpperCase();
|
||||
globalFistname = globalFistname ??
|
||||
userData.employeeInfo!.profile!.firstName!.toUpperCase();
|
||||
globalLastname = globalLastname ??
|
||||
userData.employeeInfo!.profile!.lastName!.toUpperCase();
|
||||
globalMiddleName = globalMiddleName ??
|
||||
(userData.employeeInfo == null
|
||||
? ''
|
||||
|
@ -182,7 +182,7 @@ class BuildInformation extends StatelessWidget {
|
|||
return QRFullScreenImage(uuid: uuid);
|
||||
}));
|
||||
},
|
||||
child: QrImageView(
|
||||
child: QrImage(
|
||||
data: uuid!,
|
||||
size: blockSizeVertical * 24,
|
||||
),
|
||||
|
|
|
@ -12,12 +12,12 @@ class QRFullScreenImage extends StatelessWidget {
|
|||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
centerTitle: true,
|
||||
backgroundColor: primary,title: const Text("Profile QR Code"),),
|
||||
body: Center(
|
||||
child: QrImageView(
|
||||
data: uuid,
|
||||
size: blockSizeVertical * 50
|
||||
),
|
||||
),);
|
||||
backgroundColor: primary,
|
||||
title: const Text("Profile QR Code"),
|
||||
),
|
||||
body: Center(
|
||||
child: QrImage(data: uuid, size: blockSizeVertical * 50),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,14 +1,16 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:unit2/bloc/offline/offline_bloc/offline_bloc.dart';
|
||||
import 'package:unit2/model/offline/offlane_modules.dart';
|
||||
import 'package:unit2/screens/offline/homepage/drawer.dart';
|
||||
import 'package:unit2/screens/offline/homepage/menu_screen.dart';
|
||||
import 'package:unit2/screens/unit2/homepage.dart/components/drawer-screen.dart';
|
||||
import 'package:unit2/screens/unit2/homepage.dart/components/menu_tile.dart';
|
||||
import 'package:unit2/theme-data.dart/colors.dart';
|
||||
import 'package:fluttericon/web_symbols_icons.dart';
|
||||
import 'package:fluttericon/font_awesome5_icons.dart';
|
||||
import 'package:unit2/utils/global_context.dart';
|
||||
import '../../../../model/login_data/user_info/user_data.dart';
|
||||
import 'menu.dart';
|
||||
import '../../../../utils/global.dart';
|
||||
|
||||
class MenuScreen extends StatefulWidget {
|
||||
|
@ -69,14 +71,20 @@ class _MenuScreenState extends State<MenuScreen> {
|
|||
),
|
||||
title: const Text(
|
||||
"Offline Mode",
|
||||
style: TextStyle(color: Colors.black),
|
||||
style: TextStyle(color: Colors.black),
|
||||
),
|
||||
onTap: () async {
|
||||
List<OfflineModules> modules = await OFFLINE!.get('modules');
|
||||
Navigator.pushReplacement(NavigationService.navigatorKey.currentState!.context,
|
||||
Navigator.pushReplacement(
|
||||
NavigationService
|
||||
.navigatorKey.currentState!.context,
|
||||
MaterialPageRoute(builder: ((context) {
|
||||
return OfflineDrawerScreen(modules: modules,);
|
||||
return BlocProvider(
|
||||
create: (context) =>
|
||||
OfflineBloc()..add(SwitchOffline()),
|
||||
child: const OfflineDrawerScreen(),
|
||||
);
|
||||
})));
|
||||
;
|
||||
},
|
||||
)
|
||||
: Container())
|
||||
|
|
|
@ -7,6 +7,7 @@ import 'package:fluttericon/font_awesome5_icons.dart';
|
|||
import 'package:fluttertoast/fluttertoast.dart';
|
||||
import 'package:form_builder_validators/form_builder_validators.dart';
|
||||
import 'package:flutter_progress_hud/flutter_progress_hud.dart';
|
||||
import 'package:unit2/bloc/offline/offline_bloc/offline_bloc.dart';
|
||||
import 'package:unit2/model/offline/offlane_modules.dart';
|
||||
import 'package:unit2/screens/offline/homepage/drawer.dart';
|
||||
import 'package:unit2/screens/unit2/login/components/update_required.dart';
|
||||
|
@ -401,16 +402,18 @@ class _UniT2LoginState extends State<UniT2Login> {
|
|||
width: 200,
|
||||
height: 50,
|
||||
child: ElevatedButton.icon(
|
||||
icon: const Icon(Icons.signal_cellular_alt),
|
||||
style: mainBtnStyle(second, Colors.transparent, primary),
|
||||
icon: const Icon(Icons.signal_cellular_alt),
|
||||
style:
|
||||
mainBtnStyle(second, Colors.transparent, primary),
|
||||
onPressed: () async {
|
||||
List<OfflineModules> offlinemodules = await OFFLINE!.get('modules');
|
||||
Navigator.pushReplacement(
|
||||
NavigationService
|
||||
.navigatorKey.currentState!.context,
|
||||
MaterialPageRoute(builder: ((context) {
|
||||
return OfflineDrawerScreen(
|
||||
modules: offlinemodules,
|
||||
return BlocProvider(
|
||||
create: (context) =>
|
||||
OfflineBloc()..add(SwitchOffline()),
|
||||
child: const OfflineDrawerScreen(),
|
||||
);
|
||||
})));
|
||||
},
|
||||
|
|
|
@ -1,15 +1,11 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:unit2/bloc/passo/bulding/property_info/property_info_bloc.dart';
|
||||
import 'package:unit2/bloc/profile/profile_bloc.dart';
|
||||
import 'package:unit2/bloc/role/pass_check/pass_check_bloc.dart';
|
||||
import 'package:unit2/bloc/sos/sos_bloc.dart';
|
||||
import 'package:unit2/model/passo/property_info.dart';
|
||||
import 'package:unit2/screens/passo/passo_dashboard.dart';
|
||||
import 'package:unit2/screens/passo/building_home.dart';
|
||||
import 'package:unit2/screens/sos/index.dart';
|
||||
import 'package:unit2/screens/unit2/homepage.dart/components/dashboard/dashboard.dart';
|
||||
import 'package:unit2/screens/unit2/homepage.dart/components/menu.dart';
|
||||
import 'package:unit2/screens/unit2/login/login.dart';
|
||||
import 'package:unit2/screens/unit2/roles/rbac/rbac.dart';
|
||||
import 'package:unit2/utils/global_context.dart';
|
||||
|
@ -18,6 +14,7 @@ import '../bloc/user/user_bloc.dart';
|
|||
import '../screens/profile/profile.dart';
|
||||
import '../screens/unit2/basic-info/basic-info.dart';
|
||||
import '../screens/unit2/homepage.dart/components/drawer-screen.dart';
|
||||
import '../screens/unit2/homepage.dart/components/menu_tile.dart';
|
||||
import '../screens/unit2/login/qr_login.dart';
|
||||
import '../screens/unit2/roles/qr_code_scanner.dart/settings_screen.dart';
|
||||
|
||||
|
@ -92,7 +89,7 @@ class AppRouter {
|
|||
child: const RBACScreen(),
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
default:
|
||||
return MaterialPageRoute(builder: (context) {
|
||||
return Container();
|
||||
|
|
|
@ -5,8 +5,8 @@ class Url {
|
|||
|
||||
String host() {
|
||||
// return '192.168.10.183:3000';
|
||||
return 'agusandelnorte.gov.ph';
|
||||
// return "192.168.10.219:3000";
|
||||
// return 'agusandelnorte.gov.ph';
|
||||
return "192.168.10.219:3000";
|
||||
// return "192.168.10.241";
|
||||
// return "192.168.10.221:3004";
|
||||
// return "playweb.agusandelnorte.gov.ph";
|
||||
|
@ -15,7 +15,7 @@ class Url {
|
|||
}
|
||||
|
||||
String prefixHost() {
|
||||
return "https";
|
||||
return "https";
|
||||
// return "http";
|
||||
}
|
||||
|
||||
|
@ -281,7 +281,7 @@ class Url {
|
|||
}
|
||||
|
||||
String agencies() {
|
||||
return "/api/jobnet_app/agencies/";
|
||||
return "/api/jobnet_app/agencies/";
|
||||
}
|
||||
|
||||
String postAgencies() {
|
||||
|
@ -311,7 +311,8 @@ class Url {
|
|||
String getRoleAssignment() {
|
||||
return "/api/account/auth/role_assignment/";
|
||||
}
|
||||
String getPermissionAssignment(){
|
||||
|
||||
String getPermissionAssignment() {
|
||||
return "/api/account/auth/permission_assignment/";
|
||||
}
|
||||
|
||||
|
@ -347,7 +348,8 @@ class Url {
|
|||
String getBarangays() {
|
||||
return "/api/web_app/location/barangay/";
|
||||
}
|
||||
String getPurok(){
|
||||
|
||||
String getPurok() {
|
||||
return "/api/web_app/location/purok/";
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue