mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-10 15:17:31 +00:00
remove warnings
This commit is contained in:
@ -13,6 +13,7 @@ final class RolesLoadingState extends RolesPermissionState {
|
|||||||
@override
|
@override
|
||||||
List<Object> get props => [];
|
List<Object> get props => [];
|
||||||
}
|
}
|
||||||
|
|
||||||
final class UsersLoadingState extends RolesPermissionState {
|
final class UsersLoadingState extends RolesPermissionState {
|
||||||
@override
|
@override
|
||||||
List<Object> get props => [];
|
List<Object> get props => [];
|
||||||
@ -22,6 +23,7 @@ final class RolesLoadedState extends RolesPermissionState {
|
|||||||
@override
|
@override
|
||||||
List<Object> get props => [];
|
List<Object> get props => [];
|
||||||
}
|
}
|
||||||
|
|
||||||
final class UsersLoadedState extends RolesPermissionState {
|
final class UsersLoadedState extends RolesPermissionState {
|
||||||
@override
|
@override
|
||||||
List<Object> get props => [];
|
List<Object> get props => [];
|
||||||
@ -68,9 +70,9 @@ final class SosAutomationReportErrorState extends RolesPermissionState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final class ChangeTapStatus extends RolesPermissionState {
|
final class ChangeTapStatus extends RolesPermissionState {
|
||||||
bool select = true;
|
final bool select;
|
||||||
|
|
||||||
ChangeTapStatus({required this.select});
|
const ChangeTapStatus({required this.select});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object> get props => [select];
|
List<Object> get props => [select];
|
||||||
|
@ -149,8 +149,8 @@ class EditUserModel {
|
|||||||
final String createdTime; // e.g. "8:41:43 AM"
|
final String createdTime; // e.g. "8:41:43 AM"
|
||||||
final String status; // e.g. "invited"
|
final String status; // e.g. "invited"
|
||||||
final String invitedBy; // e.g. "SUPER_ADMIN"
|
final String invitedBy; // e.g. "SUPER_ADMIN"
|
||||||
final String phoneNumber; // can be empty
|
final String? phoneNumber; // can be empty
|
||||||
final String jobTitle; // can be empty
|
final String? jobTitle; // can be empty
|
||||||
final String roleType; // e.g. "ADMIN"
|
final String roleType; // e.g. "ADMIN"
|
||||||
final List<UserSpaceModel> spaces;
|
final List<UserSpaceModel> spaces;
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ class UsersBloc extends Bloc<UsersEvent, UsersState> {
|
|||||||
on<GetUserByIdEvent>(getUserById);
|
on<GetUserByIdEvent>(getUserById);
|
||||||
on<ToggleNodeExpansion>(_onToggleNodeExpansion);
|
on<ToggleNodeExpansion>(_onToggleNodeExpansion);
|
||||||
on<ToggleNodeCheck>(_onToggleNodeCheck);
|
on<ToggleNodeCheck>(_onToggleNodeCheck);
|
||||||
on<EditInviteUsers>(_editInvitUser);
|
on<EditInviteUsers>(_editInviteUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _validateBasicsStep(ValidateBasicsStep event, Emitter<UsersState> emit) {
|
void _validateBasicsStep(ValidateBasicsStep event, Emitter<UsersState> emit) {
|
||||||
@ -88,7 +88,6 @@ class UsersBloc extends Bloc<UsersEvent, UsersState> {
|
|||||||
await CommunitySpaceManagementApi().fetchCommunities();
|
await CommunitySpaceManagementApi().fetchCommunities();
|
||||||
updatedCommunities = await Future.wait(
|
updatedCommunities = await Future.wait(
|
||||||
communities.map((community) async {
|
communities.map((community) async {
|
||||||
print(community.uuid);
|
|
||||||
List<SpaceModel> spaces =
|
List<SpaceModel> spaces =
|
||||||
await _fetchSpacesForCommunity(community.uuid);
|
await _fetchSpacesForCommunity(community.uuid);
|
||||||
spacesNodes = _buildTreeNodes(spaces);
|
spacesNodes = _buildTreeNodes(spaces);
|
||||||
@ -102,7 +101,7 @@ class UsersBloc extends Bloc<UsersEvent, UsersState> {
|
|||||||
);
|
);
|
||||||
}).toList(),
|
}).toList(),
|
||||||
);
|
);
|
||||||
emit(SpacesLoadedState());
|
emit(const SpacesLoadedState());
|
||||||
return updatedCommunities;
|
return updatedCommunities;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
emit(ErrorState('Error loading communities and spaces: $e'));
|
emit(ErrorState('Error loading communities and spaces: $e'));
|
||||||
@ -112,7 +111,7 @@ class UsersBloc extends Bloc<UsersEvent, UsersState> {
|
|||||||
List<TreeNode> _buildTreeNodes(List<SpaceModel> spaces) {
|
List<TreeNode> _buildTreeNodes(List<SpaceModel> spaces) {
|
||||||
return spaces.map((space) {
|
return spaces.map((space) {
|
||||||
List<TreeNode> childNodes =
|
List<TreeNode> childNodes =
|
||||||
space.children != null ? _buildTreeNodes(space.children) : [];
|
space.children.isNotEmpty ? _buildTreeNodes(space.children) : [];
|
||||||
return TreeNode(
|
return TreeNode(
|
||||||
uuid: space.uuid!,
|
uuid: space.uuid!,
|
||||||
title: space.name,
|
title: space.name,
|
||||||
@ -212,7 +211,7 @@ class UsersBloc extends Bloc<UsersEvent, UsersState> {
|
|||||||
_sendInvitUser(SendInviteUsers event, Emitter<UsersState> emit) async {
|
_sendInvitUser(SendInviteUsers event, Emitter<UsersState> emit) async {
|
||||||
try {
|
try {
|
||||||
emit(UsersLoadingState());
|
emit(UsersLoadingState());
|
||||||
List<String> selectedIds = getSelectedIds(updatedCommunities) ?? [];
|
List<String> selectedIds = getSelectedIds(updatedCommunities);
|
||||||
bool res = await UserPermissionApi().sendInviteUser(
|
bool res = await UserPermissionApi().sendInviteUser(
|
||||||
email: emailController.text,
|
email: emailController.text,
|
||||||
firstName: firstNameController.text,
|
firstName: firstNameController.text,
|
||||||
@ -249,10 +248,10 @@ class UsersBloc extends Bloc<UsersEvent, UsersState> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_editInvitUser(EditInviteUsers event, Emitter<UsersState> emit) async {
|
_editInviteUser(EditInviteUsers event, Emitter<UsersState> emit) async {
|
||||||
try {
|
try {
|
||||||
emit(UsersLoadingState());
|
emit(UsersLoadingState());
|
||||||
List<String> selectedIds = getSelectedIds(updatedCommunities) ?? [];
|
List<String> selectedIds = getSelectedIds(updatedCommunities);
|
||||||
bool res = await UserPermissionApi().editInviteUser(
|
bool res = await UserPermissionApi().editInviteUser(
|
||||||
userId: event.userId,
|
userId: event.userId,
|
||||||
firstName: firstNameController.text,
|
firstName: firstNameController.text,
|
||||||
@ -383,8 +382,6 @@ class UsersBloc extends Bloc<UsersEvent, UsersState> {
|
|||||||
// Print all IDs and mark nodes in updatedCommunities
|
// Print all IDs and mark nodes in updatedCommunities
|
||||||
debugPrint('Printing and marking nodes in updatedCommunities:');
|
debugPrint('Printing and marking nodes in updatedCommunities:');
|
||||||
_printAndMarkNodes(updatedCommunities, uuidsToMark);
|
_printAndMarkNodes(updatedCommunities, uuidsToMark);
|
||||||
} else {
|
|
||||||
print('updatedCommunities is empty!');
|
|
||||||
}
|
}
|
||||||
final roleId = roles
|
final roleId = roles
|
||||||
.firstWhere((element) =>
|
.firstWhere((element) =>
|
||||||
@ -397,9 +394,7 @@ class UsersBloc extends Bloc<UsersEvent, UsersState> {
|
|||||||
emit(ChangeStatusSteps());
|
emit(ChangeStatusSteps());
|
||||||
} else {}
|
} else {}
|
||||||
} else {}
|
} else {}
|
||||||
} catch (e) {
|
} catch (_) {}
|
||||||
print("Failed to fetch user data: $e");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void _printAndMarkNodes(List<TreeNode> nodes, List<String> uuidsToMark,
|
void _printAndMarkNodes(List<TreeNode> nodes, List<String> uuidsToMark,
|
||||||
|
@ -63,31 +63,31 @@ class GetBatchStatus extends UsersEvent {
|
|||||||
//isEditUser:widget.userId!=''? false:true
|
//isEditUser:widget.userId!=''? false:true
|
||||||
class CheckStepStatus extends UsersEvent {
|
class CheckStepStatus extends UsersEvent {
|
||||||
final int? steps;
|
final int? steps;
|
||||||
bool? isEditUser = false;
|
final bool? isEditUser;
|
||||||
CheckStepStatus({this.steps, required this.isEditUser});
|
const CheckStepStatus({this.steps, required this.isEditUser});
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [steps];
|
List<Object?> get props => [steps];
|
||||||
}
|
}
|
||||||
|
|
||||||
class SearchAnode extends UsersEvent {
|
class SearchAnode extends UsersEvent {
|
||||||
List<TreeNode>? nodes;
|
final List<TreeNode>? nodes;
|
||||||
String? searchTerm;
|
final String? searchTerm;
|
||||||
SearchAnode({this.nodes, this.searchTerm});
|
const SearchAnode({this.nodes, this.searchTerm});
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [nodes, searchTerm];
|
List<Object?> get props => [nodes, searchTerm];
|
||||||
}
|
}
|
||||||
|
|
||||||
class SearchPermission extends UsersEvent {
|
class SearchPermission extends UsersEvent {
|
||||||
List<PermissionOption>? nodes;
|
final List<PermissionOption>? nodes;
|
||||||
String? searchTerm;
|
final String? searchTerm;
|
||||||
SearchPermission({this.nodes, this.searchTerm});
|
const SearchPermission({this.nodes, this.searchTerm});
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [nodes, searchTerm];
|
List<Object?> get props => [nodes, searchTerm];
|
||||||
}
|
}
|
||||||
|
|
||||||
class SelecteId extends UsersEvent {
|
class SelectedId extends UsersEvent {
|
||||||
List<TreeNode>? nodes;
|
final List<TreeNode>? nodes;
|
||||||
SelecteId({
|
const SelectedId({
|
||||||
this.nodes,
|
this.nodes,
|
||||||
});
|
});
|
||||||
@override
|
@override
|
||||||
@ -95,7 +95,7 @@ class SelecteId extends UsersEvent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class ValidateBasicsStep extends UsersEvent {
|
class ValidateBasicsStep extends UsersEvent {
|
||||||
ValidateBasicsStep();
|
const ValidateBasicsStep();
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [];
|
List<Object?> get props => [];
|
||||||
}
|
}
|
||||||
@ -116,7 +116,7 @@ class GetUserByIdEvent extends UsersEvent {
|
|||||||
class ToggleNodeExpansion extends UsersEvent {
|
class ToggleNodeExpansion extends UsersEvent {
|
||||||
final TreeNode node;
|
final TreeNode node;
|
||||||
|
|
||||||
ToggleNodeExpansion({required this.node});
|
const ToggleNodeExpansion({required this.node});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [node];
|
List<Object?> get props => [node];
|
||||||
@ -125,14 +125,15 @@ class ToggleNodeExpansion extends UsersEvent {
|
|||||||
class UpdateNodeCheckStatus extends UsersEvent {
|
class UpdateNodeCheckStatus extends UsersEvent {
|
||||||
final TreeNode node;
|
final TreeNode node;
|
||||||
|
|
||||||
UpdateNodeCheckStatus({required this.node});
|
const UpdateNodeCheckStatus({required this.node});
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [node];
|
List<Object?> get props => [node];
|
||||||
}
|
}
|
||||||
|
|
||||||
class ToggleNodeHighlightEvent extends UsersEvent {
|
class ToggleNodeHighlightEvent extends UsersEvent {
|
||||||
final TreeNode node;
|
final TreeNode node;
|
||||||
|
|
||||||
ToggleNodeHighlightEvent(this.node);
|
const ToggleNodeHighlightEvent(this.node);
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [node];
|
List<Object?> get props => [node];
|
||||||
}
|
}
|
||||||
@ -155,14 +156,15 @@ class ClearSelectionsEvent extends UsersEvent {
|
|||||||
class ToggleNodeCheckEvent extends UsersEvent {
|
class ToggleNodeCheckEvent extends UsersEvent {
|
||||||
final TreeNode node;
|
final TreeNode node;
|
||||||
|
|
||||||
ToggleNodeCheckEvent(this.node);
|
const ToggleNodeCheckEvent(this.node);
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [];
|
List<Object?> get props => [];
|
||||||
}
|
}
|
||||||
|
|
||||||
class ToggleNodeCheck extends UsersEvent {
|
class ToggleNodeCheck extends UsersEvent {
|
||||||
final TreeNode node;
|
final TreeNode node;
|
||||||
|
|
||||||
ToggleNodeCheck(this.node);
|
const ToggleNodeCheck(this.node);
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [];
|
List<Object?> get props => [];
|
||||||
}
|
}
|
||||||
@ -172,5 +174,3 @@ class EditUserEvent extends UsersEvent {
|
|||||||
@override
|
@override
|
||||||
List<Object?> get props => [];
|
List<Object?> get props => [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import 'package:equatable/equatable.dart';
|
import 'package:equatable/equatable.dart';
|
||||||
import 'package:syncrow_web/pages/roles_and_permission/model/roles_user_model.dart';
|
|
||||||
import 'package:syncrow_web/pages/roles_and_permission/users_page/add_user_dialog/model/tree_node_model.dart';
|
import 'package:syncrow_web/pages/roles_and_permission/users_page/add_user_dialog/model/tree_node_model.dart';
|
||||||
|
|
||||||
sealed class UsersState extends Equatable {
|
sealed class UsersState extends Equatable {
|
||||||
@ -32,7 +31,7 @@ final class SaveState extends UsersState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final class SpacesLoadedState extends UsersState {
|
final class SpacesLoadedState extends UsersState {
|
||||||
SpacesLoadedState();
|
const SpacesLoadedState();
|
||||||
@override
|
@override
|
||||||
List<Object> get props => [];
|
List<Object> get props => [];
|
||||||
}
|
}
|
||||||
@ -58,9 +57,9 @@ final class RolesErrorState extends UsersState {
|
|||||||
/// automation reports
|
/// automation reports
|
||||||
|
|
||||||
final class ChangeTapStatus extends UsersState {
|
final class ChangeTapStatus extends UsersState {
|
||||||
bool select = true;
|
final bool select;
|
||||||
|
|
||||||
ChangeTapStatus({required this.select});
|
const ChangeTapStatus({required this.select});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object> get props => [select];
|
List<Object> get props => [select];
|
||||||
@ -77,14 +76,16 @@ class BasicsStepInvalidState extends UsersState {
|
|||||||
@override
|
@override
|
||||||
List<Object> get props => [];
|
List<Object> get props => [];
|
||||||
}
|
}
|
||||||
|
|
||||||
final class ValidateBasics extends UsersState {
|
final class ValidateBasics extends UsersState {
|
||||||
@override
|
@override
|
||||||
List<Object> get props => [];
|
List<Object> get props => [];
|
||||||
}
|
}
|
||||||
|
|
||||||
class UsersLoadedState extends UsersState {
|
class UsersLoadedState extends UsersState {
|
||||||
final List<TreeNode> updatedCommunities;
|
final List<TreeNode> updatedCommunities;
|
||||||
|
|
||||||
UsersLoadedState({required this.updatedCommunities});
|
const UsersLoadedState({required this.updatedCommunities});
|
||||||
@override
|
@override
|
||||||
List<Object> get props => [];
|
List<Object> get props => [];
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,9 @@ class PermissionOption {
|
|||||||
factory PermissionOption.fromJson(Map<String, dynamic> json) {
|
factory PermissionOption.fromJson(Map<String, dynamic> json) {
|
||||||
return PermissionOption(
|
return PermissionOption(
|
||||||
id: json['id'] ?? '',
|
id: json['id'] ?? '',
|
||||||
title: json['title'].toString().toLowerCase().replaceAll("_", " ") ?? '',
|
title: json['title'] != null
|
||||||
|
? json['title'].toString().toLowerCase().replaceAll("_", " ")
|
||||||
|
: '',
|
||||||
isChecked: json['isChecked'] ?? false,
|
isChecked: json['isChecked'] ?? false,
|
||||||
isHighlighted: json['isHighlighted'] ?? false,
|
isHighlighted: json['isHighlighted'] ?? false,
|
||||||
subOptions: (json['subOptions'] as List?)
|
subOptions: (json['subOptions'] as List?)
|
||||||
|
@ -11,8 +11,8 @@ import 'package:syncrow_web/utils/extension/build_context_x.dart';
|
|||||||
import 'package:syncrow_web/utils/style.dart';
|
import 'package:syncrow_web/utils/style.dart';
|
||||||
|
|
||||||
class BasicsView extends StatelessWidget {
|
class BasicsView extends StatelessWidget {
|
||||||
String? userId = '';
|
final String? userId;
|
||||||
BasicsView({super.key, this.userId});
|
const BasicsView({super.key, this.userId = ''});
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return BlocBuilder<UsersBloc, UsersState>(builder: (context, state) {
|
return BlocBuilder<UsersBloc, UsersState>(builder: (context, state) {
|
||||||
@ -188,7 +188,8 @@ class BasicsView extends StatelessWidget {
|
|||||||
enabled: userId != '' ? false : true,
|
enabled: userId != '' ? false : true,
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
Future.delayed(const Duration(milliseconds: 200), () {
|
Future.delayed(const Duration(milliseconds: 200), () {
|
||||||
_blocRole.add(CheckStepStatus(isEditUser:userId!=''? false:true));
|
_blocRole.add(CheckStepStatus(
|
||||||
|
isEditUser: userId != '' ? false : true));
|
||||||
_blocRole.add(ValidateBasicsStep());
|
_blocRole.add(ValidateBasicsStep());
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/svg.dart';
|
|
||||||
import 'package:syncrow_web/utils/color_manager.dart';
|
import 'package:syncrow_web/utils/color_manager.dart';
|
||||||
import 'package:syncrow_web/utils/constants/assets.dart';
|
import 'package:syncrow_web/utils/constants/assets.dart';
|
||||||
import 'package:syncrow_web/utils/extension/build_context_x.dart';
|
|
||||||
import 'package:syncrow_web/utils/style.dart';
|
import 'package:syncrow_web/utils/style.dart';
|
||||||
|
|
||||||
Future<void> showPopUpFilterMenu({
|
Future<void> showPopUpFilterMenu({
|
||||||
@ -12,7 +10,6 @@ Future<void> showPopUpFilterMenu({
|
|||||||
Function()? cancelButton,
|
Function()? cancelButton,
|
||||||
required Map<String, bool> checkboxStates,
|
required Map<String, bool> checkboxStates,
|
||||||
required RelativeRect position,
|
required RelativeRect position,
|
||||||
// Function(String)? onTextFieldChanged,
|
|
||||||
Function()? onOkPressed,
|
Function()? onOkPressed,
|
||||||
List<String>? list,
|
List<String>? list,
|
||||||
}) async {
|
}) async {
|
||||||
|
@ -15,8 +15,6 @@ class RolesAndPermission extends StatelessWidget {
|
|||||||
const RolesAndPermission({super.key});
|
const RolesAndPermission({super.key});
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final size = MediaQuery.of(context).size;
|
|
||||||
|
|
||||||
return BlocBuilder<UsersBloc, UsersState>(builder: (context, state) {
|
return BlocBuilder<UsersBloc, UsersState>(builder: (context, state) {
|
||||||
final _blocRole = BlocProvider.of<UsersBloc>(context);
|
final _blocRole = BlocProvider.of<UsersBloc>(context);
|
||||||
return Container(
|
return Container(
|
||||||
|
@ -11,12 +11,10 @@ import 'package:syncrow_web/utils/extension/build_context_x.dart';
|
|||||||
import 'package:syncrow_web/utils/style.dart';
|
import 'package:syncrow_web/utils/style.dart';
|
||||||
|
|
||||||
class SpacesAccessView extends StatelessWidget {
|
class SpacesAccessView extends StatelessWidget {
|
||||||
String? userId = '';
|
final String? userId;
|
||||||
SpacesAccessView({super.key, this.userId});
|
const SpacesAccessView({super.key, this.userId = ''});
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final size = MediaQuery.of(context).size;
|
|
||||||
|
|
||||||
return BlocBuilder<UsersBloc, UsersState>(builder: (context, state) {
|
return BlocBuilder<UsersBloc, UsersState>(builder: (context, state) {
|
||||||
final _blocRole = BlocProvider.of<UsersBloc>(context);
|
final _blocRole = BlocProvider.of<UsersBloc>(context);
|
||||||
return Container(
|
return Container(
|
||||||
|
@ -210,7 +210,7 @@ class UserTableBloc extends Bloc<UserTableEvent, UserTableState> {
|
|||||||
final query = event.query.toLowerCase();
|
final query = event.query.toLowerCase();
|
||||||
final filteredUsers = initialUsers.where((user) {
|
final filteredUsers = initialUsers.where((user) {
|
||||||
final fullName = "${user.firstName} ${user.lastName}".toLowerCase();
|
final fullName = "${user.firstName} ${user.lastName}".toLowerCase();
|
||||||
final email = user.email?.toLowerCase() ?? "";
|
final email = user.email.toLowerCase() ;
|
||||||
return fullName.contains(query) || email.contains(query);
|
return fullName.contains(query) || email.contains(query);
|
||||||
}).toList();
|
}).toList();
|
||||||
emit(UsersLoadedState(users: filteredUsers));
|
emit(UsersLoadedState(users: filteredUsers));
|
||||||
@ -224,7 +224,7 @@ class UserTableBloc extends Bloc<UserTableEvent, UserTableState> {
|
|||||||
final startIndex = (pageNumber - 1) * itemsPerPage;
|
final startIndex = (pageNumber - 1) * itemsPerPage;
|
||||||
final endIndex = startIndex + itemsPerPage;
|
final endIndex = startIndex + itemsPerPage;
|
||||||
if (startIndex >= users.length) {
|
if (startIndex >= users.length) {
|
||||||
emit(UsersLoadedState(users: const []));
|
emit(const UsersLoadedState(users: []));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final paginatedUsers = users.sublist(
|
final paginatedUsers = users.sublist(
|
||||||
@ -235,11 +235,11 @@ class UserTableBloc extends Bloc<UserTableEvent, UserTableState> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _handlePageChange(ChangePage event, Emitter<UserTableState> emit) {
|
void _handlePageChange(ChangePage event, Emitter<UserTableState> emit) {
|
||||||
final itemsPerPage = 10;
|
const itemsPerPage = 10;
|
||||||
final startIndex = (event.pageNumber - 1) * itemsPerPage;
|
final startIndex = (event.pageNumber - 1) * itemsPerPage;
|
||||||
final endIndex = startIndex + itemsPerPage;
|
final endIndex = startIndex + itemsPerPage;
|
||||||
if (startIndex >= users.length) {
|
if (startIndex >= users.length) {
|
||||||
emit(UsersLoadedState(users: []));
|
emit(const UsersLoadedState(users: []));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final paginatedUsers = users.sublist(
|
final paginatedUsers = users.sublist(
|
||||||
@ -318,14 +318,3 @@ class UserTableBloc extends Bloc<UserTableEvent, UserTableState> {
|
|||||||
emit(UsersLoadedState(users: initialUsers));
|
emit(UsersLoadedState(users: initialUsers));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// void _filterOptions(FilterOptionsEvent event, Emitter<UserTableState> emit) {
|
|
||||||
// try {
|
|
||||||
// final query = event.query.toLowerCase();
|
|
||||||
// final filteredOptions = event.fullOptions
|
|
||||||
// .where((option) => option.toLowerCase().contains(query))
|
|
||||||
// .toList();
|
|
||||||
// emit(FilterOptionsState(filteredOptions));
|
|
||||||
// } catch (e) {
|
|
||||||
// emit(ErrorState(e.toString()));
|
|
||||||
// }
|
|
||||||
// }
|
|
@ -26,8 +26,8 @@ final class RolesLoadedState extends UserTableState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final class UsersLoadedState extends UserTableState {
|
final class UsersLoadedState extends UserTableState {
|
||||||
List<RolesUserModel> users = [];
|
final List<RolesUserModel> users;
|
||||||
UsersLoadedState({required this.users});
|
const UsersLoadedState({required this.users});
|
||||||
@override
|
@override
|
||||||
List<Object> get props => [users];
|
List<Object> get props => [users];
|
||||||
}
|
}
|
||||||
@ -73,9 +73,9 @@ final class SosAutomationReportErrorState extends UserTableState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final class ChangeTapStatus extends UserTableState {
|
final class ChangeTapStatus extends UserTableState {
|
||||||
bool select = true;
|
final bool select;
|
||||||
|
|
||||||
ChangeTapStatus({required this.select});
|
const ChangeTapStatus({required this.select});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object> get props => [select];
|
List<Object> get props => [select];
|
||||||
@ -84,7 +84,7 @@ final class ChangeTapStatus extends UserTableState {
|
|||||||
class FilterOptionsState extends UserTableState {
|
class FilterOptionsState extends UserTableState {
|
||||||
final List<String> filteredOptions;
|
final List<String> filteredOptions;
|
||||||
|
|
||||||
FilterOptionsState(this.filteredOptions);
|
const FilterOptionsState(this.filteredOptions);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object> get props => [filteredOptions];
|
List<Object> get props => [filteredOptions];
|
||||||
|
@ -412,7 +412,7 @@ class UsersPage extends StatelessWidget {
|
|||||||
rows: state.users.map((user) {
|
rows: state.users.map((user) {
|
||||||
return [
|
return [
|
||||||
Text('${user.firstName} ${user.lastName}'),
|
Text('${user.firstName} ${user.lastName}'),
|
||||||
Text(user.email ?? ''),
|
Text(user.email ),
|
||||||
Text(user.jobTitle ?? ''),
|
Text(user.jobTitle ?? ''),
|
||||||
Text(user.roleType ?? ''),
|
Text(user.roleType ?? ''),
|
||||||
Text(user.createdDate ?? ''),
|
Text(user.createdDate ?? ''),
|
||||||
@ -430,11 +430,11 @@ class UsersPage extends StatelessWidget {
|
|||||||
userId: user.uuid,
|
userId: user.uuid,
|
||||||
onTap: user.status != "invited"
|
onTap: user.status != "invited"
|
||||||
? () {
|
? () {
|
||||||
final newStatus = user.status == 'active'
|
// final newStatus = user.status == 'active'
|
||||||
? 'disabled'
|
// ? 'disabled'
|
||||||
: user.status == 'disabled'
|
// : user.status == 'disabled'
|
||||||
? 'invited'
|
// ? 'invited'
|
||||||
: 'active';
|
// : 'active';
|
||||||
context.read<UserTableBloc>().add(
|
context.read<UserTableBloc>().add(
|
||||||
ChangeUserStatus(
|
ChangeUserStatus(
|
||||||
userId: user.uuid,
|
userId: user.uuid,
|
||||||
@ -501,7 +501,7 @@ class UsersPage extends StatelessWidget {
|
|||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.end,
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
Container(
|
SizedBox(
|
||||||
width: 500,
|
width: 500,
|
||||||
child: NumberPagination(
|
child: NumberPagination(
|
||||||
buttonRadius: 10,
|
buttonRadius: 10,
|
||||||
|
@ -131,7 +131,7 @@ class UserPermissionApi {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<EditUserModel> fetchUserById(userUuid) async {
|
Future<EditUserModel?> fetchUserById(userUuid) async {
|
||||||
final response = await _httpService.get(
|
final response = await _httpService.get(
|
||||||
path: ApiEndpoints.getUserById.replaceAll("{userUuid}", userUuid),
|
path: ApiEndpoints.getUserById.replaceAll("{userUuid}", userUuid),
|
||||||
showServerMessage: true,
|
showServerMessage: true,
|
||||||
|
Reference in New Issue
Block a user