Initial Commit : Network Map
This commit is contained in:
@@ -30,6 +30,13 @@ import '../widgets/app_shell.dart';
|
||||
import '../screens/teams/teams_screen.dart';
|
||||
import '../screens/it_service_requests/it_service_requests_list_screen.dart';
|
||||
import '../screens/it_service_requests/it_service_request_detail_screen.dart';
|
||||
import '../screens/network_map/network_map_overview_screen.dart';
|
||||
import '../screens/network_map/network_map_site_screen.dart';
|
||||
import '../screens/network_map/network_map_device_screen.dart';
|
||||
import '../screens/network_map/network_map_device_edit_screen.dart';
|
||||
import '../screens/network_map/network_map_import_screen.dart';
|
||||
import '../screens/network_map/network_map_import_review_screen.dart';
|
||||
import '../screens/network_map/network_map_vlan_screen.dart';
|
||||
import '../theme/m3_motion.dart';
|
||||
|
||||
import '../utils/navigation.dart';
|
||||
@@ -77,6 +84,12 @@ final appRouterProvider = Provider<GoRouter>((ref) {
|
||||
role == 'programmer' ||
|
||||
role == 'dispatcher' ||
|
||||
role == 'it_staff';
|
||||
final isNetworkMapRoute = state.matchedLocation.startsWith('/network-map');
|
||||
final hasNetworkMapAccess =
|
||||
role == 'admin' ||
|
||||
role == 'it_staff' ||
|
||||
role == 'dispatcher' ||
|
||||
role == 'programmer';
|
||||
|
||||
if (!isSignedIn && !isAuthRoute) {
|
||||
return '/login';
|
||||
@@ -102,6 +115,9 @@ final appRouterProvider = Provider<GoRouter>((ref) {
|
||||
if (isReportsRoute && !hasReportsAccess) {
|
||||
return '/tickets';
|
||||
}
|
||||
if (isNetworkMapRoute && !hasNetworkMapAccess) {
|
||||
return '/tickets';
|
||||
}
|
||||
// Attendance & Whereabouts: not accessible to standard users
|
||||
final isStandardOnly = role == 'standard';
|
||||
final isAttendanceRoute =
|
||||
@@ -265,6 +281,80 @@ final appRouterProvider = Provider<GoRouter>((ref) {
|
||||
child: const PermissionsScreen(),
|
||||
),
|
||||
),
|
||||
GoRoute(
|
||||
path: '/network-map',
|
||||
pageBuilder: (context, state) => M3SharedAxisPage(
|
||||
key: state.pageKey,
|
||||
child: const NetworkMapOverviewScreen(),
|
||||
),
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: 'import',
|
||||
pageBuilder: (context, state) => M3SharedAxisPage(
|
||||
key: state.pageKey,
|
||||
child: const NetworkMapImportScreen(),
|
||||
),
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: ':importId/review',
|
||||
pageBuilder: (context, state) => M3SharedAxisPage(
|
||||
key: state.pageKey,
|
||||
child: NetworkMapImportReviewScreen(
|
||||
importId: state.pathParameters['importId'] ?? '',
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
GoRoute(
|
||||
path: 'vlans',
|
||||
pageBuilder: (context, state) => M3SharedAxisPage(
|
||||
key: state.pageKey,
|
||||
child: const NetworkMapVlanScreen(),
|
||||
),
|
||||
),
|
||||
GoRoute(
|
||||
path: 'site/:siteId',
|
||||
pageBuilder: (context, state) => M3SharedAxisPage(
|
||||
key: state.pageKey,
|
||||
child: NetworkMapSiteScreen(
|
||||
siteId: state.pathParameters['siteId'] ?? '',
|
||||
),
|
||||
),
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: 'device/new',
|
||||
pageBuilder: (context, state) => M3SharedAxisPage(
|
||||
key: state.pageKey,
|
||||
child: NetworkMapDeviceEditScreen(
|
||||
initialSiteId: state.pathParameters['siteId'],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
GoRoute(
|
||||
path: 'device/:deviceId',
|
||||
pageBuilder: (context, state) => M3SharedAxisPage(
|
||||
key: state.pageKey,
|
||||
child: NetworkMapDeviceScreen(
|
||||
deviceId: state.pathParameters['deviceId'] ?? '',
|
||||
),
|
||||
),
|
||||
routes: [
|
||||
GoRoute(
|
||||
path: 'edit',
|
||||
pageBuilder: (context, state) => M3SharedAxisPage(
|
||||
key: state.pageKey,
|
||||
child: NetworkMapDeviceEditScreen(
|
||||
deviceId: state.pathParameters['deviceId'],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
GoRoute(
|
||||
path: '/notifications',
|
||||
pageBuilder: (context, state) => M3SharedAxisPage(
|
||||
|
||||
Reference in New Issue
Block a user