diff --git a/assets/images/time_icon.svg b/assets/images/time_icon.svg
new file mode 100644
index 00000000..a8f06677
--- /dev/null
+++ b/assets/images/time_icon.svg
@@ -0,0 +1,4 @@
+
diff --git a/lib/main.dart b/lib/main.dart
index c00a8da7..af74170d 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -59,7 +59,6 @@ class MyApp extends StatelessWidget {
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), // Set up color scheme
useMaterial3: true, // Enable Material 3
),
- // home: VisitorPasswordDialog()
home:isLoggedIn == 'Success' ? const HomePage() : const LoginPage(),
));
}
diff --git a/lib/pages/access_management/view/access_management.dart b/lib/pages/access_management/view/access_management.dart
index e2f79429..e202194f 100644
--- a/lib/pages/access_management/view/access_management.dart
+++ b/lib/pages/access_management/view/access_management.dart
@@ -125,6 +125,7 @@ class AccessManagementPage extends StatelessWidget {
width: 15,
),
DateTimeWebWidget(
+ isTime: false,
isRequired: false,
title: 'Access Time',
size: size,
diff --git a/lib/pages/common/custom_table.dart b/lib/pages/common/custom_table.dart
index c2a83273..86f34124 100644
--- a/lib/pages/common/custom_table.dart
+++ b/lib/pages/common/custom_table.dart
@@ -143,7 +143,7 @@ class _DynamicTableState extends State {
alignment: Alignment.centerLeft,
child: Padding(
padding: const EdgeInsets.all(8.0),
- child: Text(title, style: const TextStyle(fontWeight: FontWeight.bold)),
+ child: Text(title, style: const TextStyle(fontWeight: FontWeight.w400,fontSize: 13,color: Color(0xFF999999))),
),
),
);
diff --git a/lib/pages/common/custom_web_textfield.dart b/lib/pages/common/custom_web_textfield.dart
index 82fb86c9..daaa2c13 100644
--- a/lib/pages/common/custom_web_textfield.dart
+++ b/lib/pages/common/custom_web_textfield.dart
@@ -37,8 +37,7 @@ class CustomWebTextField extends StatelessWidget {
.bodyMedium!
.copyWith(color: Colors.red),
),
- Text(textFieldName,
- style: Theme.of(context).textTheme.bodySmall!.copyWith(
+ Text(textFieldName, style: Theme.of(context).textTheme.bodySmall!.copyWith(
color: Colors.black,fontSize: 13),),
],
),
diff --git a/lib/pages/common/date_time_widget.dart b/lib/pages/common/date_time_widget.dart
index f5034342..39dc582c 100644
--- a/lib/pages/common/date_time_widget.dart
+++ b/lib/pages/common/date_time_widget.dart
@@ -12,6 +12,7 @@ class DateTimeWebWidget extends StatelessWidget {
required this.title,
required this.startTime,
required this.endTime,
+ required this.isTime,
required this.firstString,
required this.secondString,
});
@@ -19,6 +20,7 @@ class DateTimeWebWidget extends StatelessWidget {
final Size size;
final String title;
final bool isRequired;
+ final bool isTime;
final String firstString;
final String secondString;
final Function()? startTime;
@@ -66,6 +68,8 @@ class DateTimeWebWidget extends StatelessWidget {
child: Text(secondString, style: Theme.of(context).textTheme.bodySmall!.copyWith(
color: ColorsManager.grayColor,fontSize: 12,fontWeight: FontWeight.w400),)),
SvgPicture.asset(
+ isTime?
+ Assets.timeIcon:
Assets.calendarIcon,
),
],
diff --git a/lib/pages/visitor_password/bloc/visitor_password_bloc.dart b/lib/pages/visitor_password/bloc/visitor_password_bloc.dart
index e620cc59..65d82dda 100644
--- a/lib/pages/visitor_password/bloc/visitor_password_bloc.dart
+++ b/lib/pages/visitor_password/bloc/visitor_password_bloc.dart
@@ -262,12 +262,10 @@ class VisitorPasswordBloc
Emitter emit) async {
try {
generate7DigitNumber();
- // emit(DeviceLoaded());
await AccessMangApi().postOffLineOneTime(
email: event.email,
devicesUuid: selectedDevices,
passwordName: event.passwordName);
- // emit(TableLoaded(data));
} catch (e) {
emit(FailedState(e.toString()));
}
@@ -278,14 +276,14 @@ class VisitorPasswordBloc
Emitter emit) async {
try {
generate7DigitNumber();
- // emit(DeviceLoaded());
await AccessMangApi().postOffLineMultipleTime(
email: event.email,
devicesUuid: selectedDevices,
passwordName: event.passwordName,
- invalidTime: event.invalidTime,
- effectiveTime: event.effectiveTime);
- // emit(TableLoaded(data));
+ invalidTime: expirationTimeTimeStamp.toString(),
+ effectiveTime: effectiveTimeTimeStamp.toString(),
+
+ );
} catch (e) {
emit(FailedState(e.toString()));
}
@@ -335,8 +333,6 @@ class VisitorPasswordBloc
return matchesDeviceName && matchesDeviceId;
}).toList();
- // emit(TableLoaded(filteredData));
-
add(UpdateFilteredDevicesEvent(filteredData));
}
@@ -414,11 +410,6 @@ class VisitorPasswordBloc
expirationTimeTimeStamp = selectedTimestamp;
}
}
- print('effectiveTime=$effectiveTime');
- print('expirationTime=$expirationTime');
-
- print('expirationTimeTimeStamp=$expirationTimeTimeStamp');
- print('effectiveTimeTimeStamp=$effectiveTimeTimeStamp');
emit(TimeSelectedState());
}
}
diff --git a/lib/pages/visitor_password/view/add_device_dialog.dart b/lib/pages/visitor_password/view/add_device_dialog.dart
index 844e0ca9..7f9ca94e 100644
--- a/lib/pages/visitor_password/view/add_device_dialog.dart
+++ b/lib/pages/visitor_password/view/add_device_dialog.dart
@@ -55,7 +55,11 @@ class AddDeviceDialog extends StatelessWidget {
),
),
SizedBox(width: 10,),
- Text('Only online accessible devices can be added'),
+ Text('Only online accessible devices can be added',
+ style: Theme.of(context).textTheme.bodySmall!.copyWith(
+ fontWeight: FontWeight.w400,
+ fontSize: 12,
+ color: ColorsManager.grayColor),),
],
)
),
diff --git a/lib/pages/visitor_password/view/repeat_widget.dart b/lib/pages/visitor_password/view/repeat_widget.dart
index 73770100..31bedb05 100644
--- a/lib/pages/visitor_password/view/repeat_widget.dart
+++ b/lib/pages/visitor_password/view/repeat_widget.dart
@@ -14,28 +14,29 @@ class RepeatWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
Size size = MediaQuery.of(context).size;
-
return BlocBuilder(
builder: (context, state) {
final visitorBloc = BlocProvider.of(context);
return Column(
+ mainAxisAlignment: MainAxisAlignment.start,
+ crossAxisAlignment: CrossAxisAlignment.start,
children: [
+
Container(
- width: size.width * 0.8,
- height: size.height * 0.06, // Adjust height as needed
- child: ListView(
- scrollDirection: Axis.horizontal,
+ height: size.height * 0.05, // Adjust height as needed
+ child: Wrap(
children: visitorBloc.days.map((day) {
return Container(
- width: size.width* 0.09,
+ width: size.width * 0.05,
child: CheckboxListTile(
+ contentPadding: EdgeInsets.zero,
title: Text(
day['day']!,
style: TextStyle(
- fontSize: 18,
+ fontSize: 12,
color: visitorBloc.selectedDays.contains(day['key'])
? Colors.black
- : ColorsManager.grayColor,
+ : ColorsManager.blackColor,
),
),
value: visitorBloc.selectedDays.contains(day['key']),
@@ -52,27 +53,23 @@ class RepeatWidget extends StatelessWidget {
Padding(
padding: const EdgeInsets.all(8.0),
child: DateTimeWebWidget(
+ isTime: true,
isRequired: false,
title: '',
size: size,
endTime: () {
- print('sadasd');
- visitorBloc.add(SelectTimeEvent(
- context: context,
- isEffective: false));
- new Future.delayed(const Duration(milliseconds: 500), () {
+ visitorBloc.add(SelectTimeEvent(
+ context: context,
+ isEffective: false));
+ Future.delayed(const Duration(milliseconds: 500), () {
visitorBloc.add(ChangeTimeEvent(val: visitorBloc.endTime, isStartEndTime: true));
-
});
-
-
},
startTime: () {
- new Future.delayed(const Duration(milliseconds: 500), () {
+ Future.delayed(const Duration(milliseconds: 500), () {
visitorBloc.add(ChangeTimeEvent(val: visitorBloc.endTime, isStartEndTime: true));
});
visitorBloc.add(SelectTimeEvent(context: context, isEffective: true));
-
},
firstString:visitorBloc.effectiveTime ,
secondString: visitorBloc.expirationTime ,
diff --git a/lib/pages/visitor_password/view/visitor_password_dialog.dart b/lib/pages/visitor_password/view/visitor_password_dialog.dart
index 2299877f..9998ec3e 100644
--- a/lib/pages/visitor_password/view/visitor_password_dialog.dart
+++ b/lib/pages/visitor_password/view/visitor_password_dialog.dart
@@ -245,10 +245,10 @@ class VisitorPasswordDialog extends StatelessWidget {
height: 20,
),
if ((visitorBloc.usageFrequencySelected != 'One-Time' ||
- visitorBloc.accessTypeSelected !=
- 'Offline Password') &&
- (visitorBloc.usageFrequencySelected != ''))
+ visitorBloc.accessTypeSelected != 'Offline Password') &&
+ (visitorBloc.usageFrequencySelected != ''))
DateTimeWebWidget(
+ isTime: false,
isRequired: true,
title: 'Access Period',
size: size,
@@ -282,42 +282,44 @@ class VisitorPasswordDialog extends StatelessWidget {
.bodyMedium!
.copyWith(color: Colors.red),
),
- Text('Access Devices', style: Theme.of(context).textTheme.bodySmall!.copyWith(
+ Text('Access Devices',
+ style: Theme.of(context).textTheme.bodySmall!.copyWith(
color: Colors.black,fontSize: 13),),
],
),
Text(
- 'Within the validity period, each device can be unlocked only once.',style: Theme.of(context).textTheme.bodySmall!.copyWith(
+ 'Within the validity period, each device can be unlocked only once.',
+ style: Theme.of(context).textTheme.bodySmall!.copyWith(
fontWeight: FontWeight.w400,
color: ColorsManager.grayColor,fontSize: 9),),
const SizedBox(
height: 20,
),
- if (visitorBloc.usageFrequencySelected ==
- 'Periodic' &&
- visitorBloc.accessTypeSelected ==
- 'Online Password')
+ if (visitorBloc.usageFrequencySelected == 'Periodic' &&
+ visitorBloc.accessTypeSelected == 'Online Password')
SizedBox(
width: 100,
- child: ListTile(
- contentPadding: EdgeInsets.zero,
- leading: const Text('Repeat'),
- trailing: Transform.scale(
- scale: .8,
- child: CupertinoSwitch(
- value: visitorBloc.repeat,
- onChanged: (value) {
- visitorBloc.add(ToggleRepeatEvent());
- },
- applyTheme: true,
- ),
- ),
+ child: Column(
+ children: [
+ Text('Repeat',
+ style: Theme.of(context).textTheme.bodySmall!.copyWith(
+ color: Colors.black,fontSize: 13),),
+ Transform.scale(
+ scale: .8,
+ child: CupertinoSwitch(
+ value: visitorBloc.repeat,
+ onChanged: (value) {
+ visitorBloc.add(ToggleRepeatEvent());
+ },
+ applyTheme: true,
+ ),
+ ),
+ ],
+
),
),
- if (visitorBloc.usageFrequencySelected ==
- 'Periodic' &&
- visitorBloc.accessTypeSelected ==
- 'Online Password')
+ if (visitorBloc.usageFrequencySelected == 'Periodic' &&
+ visitorBloc.accessTypeSelected == 'Online Password')
isRepeat ? const RepeatWidget() : const SizedBox(),
Container(
decoration: containerDecoration,
@@ -406,70 +408,40 @@ class VisitorPasswordDialog extends StatelessWidget {
child: DefaultButton(
borderRadius: 8,
onPressed: () {
- if (visitorBloc.usageFrequencySelected ==
- 'One-Time' &&
- visitorBloc.accessTypeSelected ==
- 'Online Password') {
+ if (visitorBloc.usageFrequencySelected == 'One-Time' &&
+ visitorBloc.accessTypeSelected == 'Online Password') {
visitorBloc.add(
OnlineOneTimePasswordEvent(
context: context,
- passwordName: visitorBloc
- .userNameController.text,
- email: visitorBloc
- .emailController.text));
- } else if (visitorBloc
- .usageFrequencySelected ==
- 'Periodic' &&
- visitorBloc.accessTypeSelected ==
- 'Online Password') {
- visitorBloc.add(
- OnlineMultipleTimePasswordEvent(
- passwordName:
- visitorBloc
- .userNameController
- .text,
- email:
- visitorBloc
- .emailController.text,
- effectiveTime: visitorBloc
- .effectiveTimeTimeStamp
- .toString(),
- invalidTime: visitorBloc
- .expirationTimeTimeStamp
- .toString()));
- } else if (visitorBloc
- .usageFrequencySelected ==
- 'One-Time' &&
- visitorBloc.accessTypeSelected ==
- 'Offline Password') {
- visitorBloc
- .add(OfflineOneTimePasswordEvent(
- passwordName: visitorBloc
- .userNameController.text,
- email:
- visitorBloc.emailController.text,
+ passwordName: visitorBloc.userNameController.text,
+ email: visitorBloc.emailController.text));
+ } else if (visitorBloc.usageFrequencySelected == 'Periodic' &&
+ visitorBloc.accessTypeSelected == 'Online Password') {
+ visitorBloc.add(OnlineMultipleTimePasswordEvent(
+ passwordName: visitorBloc.userNameController.text,
+ email: visitorBloc.emailController.text,
+ effectiveTime: visitorBloc.effectiveTimeTimeStamp.toString(),
+ invalidTime: visitorBloc.expirationTimeTimeStamp.toString()));
+ } else if (visitorBloc.usageFrequencySelected == 'One-Time' &&
+ visitorBloc.accessTypeSelected == 'Offline Password') {
+ visitorBloc.add(OfflineOneTimePasswordEvent(
+ passwordName: visitorBloc.userNameController.text,
+ email: visitorBloc.emailController.text,
));
- } else if (visitorBloc
- .usageFrequencySelected ==
- 'Periodic' &&
- visitorBloc.accessTypeSelected ==
- 'Offline Password') {
+ } else if (visitorBloc.usageFrequencySelected == 'Periodic' &&
+ visitorBloc.accessTypeSelected == 'Offline Password') {
visitorBloc.add(
OfflineMultipleTimePasswordEvent(
- passwordName: visitorBloc
- .userNameController.text,
- email: visitorBloc
- .emailController.text,
- effectiveTime: visitorBloc
- .effectiveTimeTimeStamp
- .toString(),
- invalidTime: visitorBloc
- .expirationTimeTimeStamp
- .toString()));
+ passwordName: visitorBloc.userNameController.text,
+ email: visitorBloc.emailController.text,
+ effectiveTime: visitorBloc.effectiveTimeTimeStamp.toString(),
+ invalidTime: visitorBloc.expirationTimeTimeStamp.toString()));
}
},
- child: const Text(
- 'Ok',
+ child: Text('Ok',
+ style: Theme.of(context).textTheme.bodySmall!.copyWith(
+ fontWeight: FontWeight.w400,
+ color: ColorsManager.whiteColors,fontSize: 16),
),
),
),
@@ -531,7 +503,9 @@ class VisitorPasswordDialog extends StatelessWidget {
}
},
borderRadius: 8,
- child: Text('Ok'),
+ child: Text('Ok', style: Theme.of(context).textTheme.bodySmall!.copyWith(
+ fontWeight: FontWeight.w400,
+ color: ColorsManager.whiteColors,fontSize: 16),),
),
),
],
diff --git a/lib/utils/constants/assets.dart b/lib/utils/constants/assets.dart
index 2c2a6e43..62f991fe 100644
--- a/lib/utils/constants/assets.dart
+++ b/lib/utils/constants/assets.dart
@@ -25,4 +25,5 @@ class Assets {
static const String assetIcon = "assets/images/asset_icon.svg";
static const String calendarIcon = "assets/images/calendar_icon.svg";
static const String deviceNoteIcon = "assets/images/device_note.svg";
+ static const String timeIcon = "assets/images/time_icon.svg";
}