refactor(ui): Move server settings to a separate screen
parent
50ba929519
commit
ff2b6b8f03
|
@ -123,6 +123,7 @@
|
||||||
"description": "All your services live here",
|
"description": "All your services live here",
|
||||||
"general_information": "General information",
|
"general_information": "General information",
|
||||||
"resource_usage": "Resource usage",
|
"resource_usage": "Resource usage",
|
||||||
|
"settings": "Server settings",
|
||||||
"allow_autoupgrade": "Allow auto-upgrade",
|
"allow_autoupgrade": "Allow auto-upgrade",
|
||||||
"allow_autoupgrade_hint": "Allow automatic packages upgrades on server",
|
"allow_autoupgrade_hint": "Allow automatic packages upgrades on server",
|
||||||
"reboot_after_upgrade": "Reboot after upgrade",
|
"reboot_after_upgrade": "Reboot after upgrade",
|
||||||
|
|
|
@ -1,16 +1,13 @@
|
||||||
import 'package:auto_route/auto_route.dart';
|
import 'package:auto_route/auto_route.dart';
|
||||||
import 'package:cubit_form/cubit_form.dart';
|
|
||||||
import 'package:easy_localization/easy_localization.dart';
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
import 'package:selfprivacy/logic/bloc/volumes/volumes_bloc.dart';
|
import 'package:selfprivacy/logic/bloc/volumes/volumes_bloc.dart';
|
||||||
import 'package:selfprivacy/logic/common_enum/common_enum.dart';
|
import 'package:selfprivacy/logic/common_enum/common_enum.dart';
|
||||||
import 'package:selfprivacy/logic/cubit/client_jobs/client_jobs_cubit.dart';
|
|
||||||
import 'package:selfprivacy/logic/cubit/metrics/metrics_cubit.dart';
|
import 'package:selfprivacy/logic/cubit/metrics/metrics_cubit.dart';
|
||||||
import 'package:selfprivacy/logic/cubit/server_detailed_info/server_detailed_info_cubit.dart';
|
import 'package:selfprivacy/logic/cubit/server_detailed_info/server_detailed_info_cubit.dart';
|
||||||
import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart';
|
import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart';
|
||||||
import 'package:selfprivacy/logic/models/job.dart';
|
|
||||||
import 'package:selfprivacy/ui/components/brand_icons/brand_icons.dart';
|
import 'package:selfprivacy/ui/components/brand_icons/brand_icons.dart';
|
||||||
import 'package:selfprivacy/ui/components/brand_loader/brand_loader.dart';
|
|
||||||
import 'package:selfprivacy/ui/components/buttons/segmented_buttons.dart';
|
import 'package:selfprivacy/ui/components/buttons/segmented_buttons.dart';
|
||||||
import 'package:selfprivacy/ui/components/cards/filled_card.dart';
|
import 'package:selfprivacy/ui/components/cards/filled_card.dart';
|
||||||
import 'package:selfprivacy/ui/components/list_tiles/list_tile_on_surface_variant.dart';
|
import 'package:selfprivacy/ui/components/list_tiles/list_tile_on_surface_variant.dart';
|
||||||
|
@ -18,15 +15,10 @@ import 'package:selfprivacy/ui/layouts/brand_hero_screen.dart';
|
||||||
import 'package:selfprivacy/ui/pages/server_details/charts/cpu_chart.dart';
|
import 'package:selfprivacy/ui/pages/server_details/charts/cpu_chart.dart';
|
||||||
import 'package:selfprivacy/ui/pages/server_details/charts/network_charts.dart';
|
import 'package:selfprivacy/ui/pages/server_details/charts/network_charts.dart';
|
||||||
import 'package:selfprivacy/ui/pages/server_storage/storage_card.dart';
|
import 'package:selfprivacy/ui/pages/server_storage/storage_card.dart';
|
||||||
import 'package:selfprivacy/utils/breakpoints.dart';
|
import 'package:selfprivacy/ui/router/router.dart';
|
||||||
import 'package:selfprivacy/utils/extensions/duration.dart';
|
|
||||||
import 'package:selfprivacy/utils/route_transitions/basic.dart';
|
|
||||||
import 'package:timezone/timezone.dart';
|
|
||||||
|
|
||||||
part 'charts/chart.dart';
|
part 'charts/chart.dart';
|
||||||
part 'server_settings.dart';
|
|
||||||
part 'text_details.dart';
|
part 'text_details.dart';
|
||||||
part 'time_zone/time_zone.dart';
|
|
||||||
|
|
||||||
var navigatorKey = GlobalKey<NavigatorState>();
|
var navigatorKey = GlobalKey<NavigatorState>();
|
||||||
|
|
||||||
|
@ -83,7 +75,11 @@ class _ServerDetailsScreenState extends State<ServerDetailsScreen>
|
||||||
diskStatus: context.watch<VolumesBloc>().state.diskStatus,
|
diskStatus: context.watch<VolumesBloc>().state.diskStatus,
|
||||||
),
|
),
|
||||||
const SizedBox(height: 16),
|
const SizedBox(height: 16),
|
||||||
const _ServerSettings(),
|
ListTile(
|
||||||
|
title: Text('server.settings'.tr()),
|
||||||
|
leading: const Icon(BrandIcons.settings),
|
||||||
|
onTap: () => context.pushRoute(const ServerSettingsRoute()),
|
||||||
|
),
|
||||||
const Divider(height: 32),
|
const Divider(height: 32),
|
||||||
Text(
|
Text(
|
||||||
'server.resource_usage'.tr(),
|
'server.resource_usage'.tr(),
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
part of 'server_details_screen.dart';
|
part of 'server_settings_screen.dart';
|
||||||
|
|
||||||
class _ServerSettings extends StatefulWidget {
|
class _ServerSettings extends StatefulWidget {
|
||||||
const _ServerSettings();
|
const _ServerSettings();
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
import 'package:auto_route/auto_route.dart';
|
||||||
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:selfprivacy/logic/cubit/client_jobs/client_jobs_cubit.dart';
|
||||||
|
import 'package:selfprivacy/logic/cubit/server_detailed_info/server_detailed_info_cubit.dart';
|
||||||
|
import 'package:selfprivacy/logic/models/job.dart';
|
||||||
|
import 'package:selfprivacy/ui/components/brand_loader/brand_loader.dart';
|
||||||
|
import 'package:selfprivacy/ui/layouts/brand_hero_screen.dart';
|
||||||
|
import 'package:selfprivacy/utils/breakpoints.dart';
|
||||||
|
import 'package:selfprivacy/utils/extensions/duration.dart';
|
||||||
|
import 'package:selfprivacy/utils/route_transitions/basic.dart';
|
||||||
|
import 'package:timezone/timezone.dart';
|
||||||
|
|
||||||
|
part 'server_settings.dart';
|
||||||
|
part 'time_zone/time_zone.dart';
|
||||||
|
|
||||||
|
@RoutePage()
|
||||||
|
class ServerSettingsScreen extends StatefulWidget {
|
||||||
|
const ServerSettingsScreen({super.key});
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<ServerSettingsScreen> createState() => _ServerSettingsScreenState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _ServerSettingsScreenState extends State<ServerSettingsScreen> {
|
||||||
|
@override
|
||||||
|
Widget build(final BuildContext context) => BrandHeroScreen(
|
||||||
|
hasFlashButton: true,
|
||||||
|
heroIcon: Icons.settings_outlined,
|
||||||
|
heroTitle: 'server.settings'.tr(),
|
||||||
|
children: const [
|
||||||
|
_ServerSettings(),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
part of '../server_details_screen.dart';
|
part of '../server_settings_screen.dart';
|
||||||
|
|
||||||
final List<Location> locations = timeZoneDatabase.locations.values.toList()
|
final List<Location> locations = timeZoneDatabase.locations.values.toList()
|
||||||
..sort(
|
..sort(
|
||||||
|
|
|
@ -17,6 +17,7 @@ import 'package:selfprivacy/ui/pages/providers/providers.dart';
|
||||||
import 'package:selfprivacy/ui/pages/recovery_key/recovery_key.dart';
|
import 'package:selfprivacy/ui/pages/recovery_key/recovery_key.dart';
|
||||||
import 'package:selfprivacy/ui/pages/root_route.dart';
|
import 'package:selfprivacy/ui/pages/root_route.dart';
|
||||||
import 'package:selfprivacy/ui/pages/server_details/server_details_screen.dart';
|
import 'package:selfprivacy/ui/pages/server_details/server_details_screen.dart';
|
||||||
|
import 'package:selfprivacy/ui/pages/server_details/server_settings_screen.dart';
|
||||||
import 'package:selfprivacy/ui/pages/server_storage/binds_migration/services_migration.dart';
|
import 'package:selfprivacy/ui/pages/server_storage/binds_migration/services_migration.dart';
|
||||||
import 'package:selfprivacy/ui/pages/server_storage/extending_volume.dart';
|
import 'package:selfprivacy/ui/pages/server_storage/extending_volume.dart';
|
||||||
import 'package:selfprivacy/ui/pages/server_storage/server_storage.dart';
|
import 'package:selfprivacy/ui/pages/server_storage/server_storage.dart';
|
||||||
|
@ -100,6 +101,7 @@ class RootRouter extends _$RootRouter {
|
||||||
AutoRoute(page: BackupsListRoute.page),
|
AutoRoute(page: BackupsListRoute.page),
|
||||||
AutoRoute(page: ServerStorageRoute.page),
|
AutoRoute(page: ServerStorageRoute.page),
|
||||||
AutoRoute(page: ExtendingVolumeRoute.page),
|
AutoRoute(page: ExtendingVolumeRoute.page),
|
||||||
|
AutoRoute(page: ServerSettingsRoute.page),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
AutoRoute(page: ServicesMigrationRoute.page),
|
AutoRoute(page: ServicesMigrationRoute.page),
|
||||||
|
|
|
@ -132,6 +132,12 @@ abstract class _$RootRouter extends RootStackRouter {
|
||||||
child: const ServerDetailsScreen(),
|
child: const ServerDetailsScreen(),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
ServerSettingsRoute.name: (routeData) {
|
||||||
|
return AutoRoutePage<dynamic>(
|
||||||
|
routeData: routeData,
|
||||||
|
child: const ServerSettingsScreen(),
|
||||||
|
);
|
||||||
|
},
|
||||||
ServerStorageRoute.name: (routeData) {
|
ServerStorageRoute.name: (routeData) {
|
||||||
final args = routeData.argsAs<ServerStorageRouteArgs>();
|
final args = routeData.argsAs<ServerStorageRouteArgs>();
|
||||||
return AutoRoutePage<dynamic>(
|
return AutoRoutePage<dynamic>(
|
||||||
|
@ -494,6 +500,20 @@ class ServerDetailsRoute extends PageRouteInfo<void> {
|
||||||
static const PageInfo<void> page = PageInfo<void>(name);
|
static const PageInfo<void> page = PageInfo<void>(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// generated route for
|
||||||
|
/// [ServerSettingsScreen]
|
||||||
|
class ServerSettingsRoute extends PageRouteInfo<void> {
|
||||||
|
const ServerSettingsRoute({List<PageRouteInfo>? children})
|
||||||
|
: super(
|
||||||
|
ServerSettingsRoute.name,
|
||||||
|
initialChildren: children,
|
||||||
|
);
|
||||||
|
|
||||||
|
static const String name = 'ServerSettingsRoute';
|
||||||
|
|
||||||
|
static const PageInfo<void> page = PageInfo<void>(name);
|
||||||
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [ServerStoragePage]
|
/// [ServerStoragePage]
|
||||||
class ServerStorageRoute extends PageRouteInfo<ServerStorageRouteArgs> {
|
class ServerStorageRoute extends PageRouteInfo<ServerStorageRouteArgs> {
|
||||||
|
|
Loading…
Reference in New Issue