mirror of
https://git.selfprivacy.org/kherel/selfprivacy.org.app.git
synced 2025-03-11 09:14:10 +00:00
feat(backups): Show how much space a service uses on backup (#500)
Fixes #434  Co-authored-by: Inex Code <inex.code@selfprivacy.org> Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/pulls/500 Reviewed-by: Inex Code <inex.code@selfprivacy.org> Co-authored-by: NaiJi ✨ <naiji@noreply.git.selfprivacy.org> Co-committed-by: NaiJi ✨ <naiji@noreply.git.selfprivacy.org>
This commit is contained in:
parent
6819192219
commit
a6b846cc78
1 changed files with 27 additions and 2 deletions
|
@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:selfprivacy/logic/bloc/backups/backups_bloc.dart';
|
import 'package:selfprivacy/logic/bloc/backups/backups_bloc.dart';
|
||||||
import 'package:selfprivacy/logic/bloc/server_jobs/server_jobs_bloc.dart';
|
import 'package:selfprivacy/logic/bloc/server_jobs/server_jobs_bloc.dart';
|
||||||
|
import 'package:selfprivacy/logic/bloc/volumes/volumes_bloc.dart';
|
||||||
import 'package:selfprivacy/logic/models/json/server_job.dart';
|
import 'package:selfprivacy/logic/models/json/server_job.dart';
|
||||||
import 'package:selfprivacy/logic/models/service.dart';
|
import 'package:selfprivacy/logic/models/service.dart';
|
||||||
|
|
||||||
|
@ -103,6 +104,29 @@ class _CreateBackupsModalState extends State<CreateBackupsModal> {
|
||||||
...widget.services.map(
|
...widget.services.map(
|
||||||
(final Service service) {
|
(final Service service) {
|
||||||
final bool busy = busyServices.contains(service.id);
|
final bool busy = busyServices.contains(service.id);
|
||||||
|
final List<Widget> descriptionWidgets = [];
|
||||||
|
if (busy) {
|
||||||
|
descriptionWidgets.add(Text('backup.service_busy'.tr()));
|
||||||
|
} else {
|
||||||
|
descriptionWidgets.add(
|
||||||
|
Text(
|
||||||
|
'service_page.uses'.tr(
|
||||||
|
namedArgs: {
|
||||||
|
'usage': service.storageUsage.used.toString(),
|
||||||
|
'volume': context
|
||||||
|
.read<VolumesBloc>()
|
||||||
|
.state
|
||||||
|
.getVolume(service.storageUsage.volume ?? '')
|
||||||
|
.displayName,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
style: Theme.of(context).textTheme.labelMedium,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
descriptionWidgets.add(
|
||||||
|
Text(service.backupDescription),
|
||||||
|
);
|
||||||
|
}
|
||||||
return CheckboxListTile.adaptive(
|
return CheckboxListTile.adaptive(
|
||||||
onChanged: !busy
|
onChanged: !busy
|
||||||
? (final bool? value) {
|
? (final bool? value) {
|
||||||
|
@ -122,8 +146,9 @@ class _CreateBackupsModalState extends State<CreateBackupsModal> {
|
||||||
title: Text(
|
title: Text(
|
||||||
service.displayName,
|
service.displayName,
|
||||||
),
|
),
|
||||||
subtitle: Text(
|
subtitle: Column(
|
||||||
busy ? 'backup.service_busy'.tr() : service.backupDescription,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: descriptionWidgets,
|
||||||
),
|
),
|
||||||
secondary: SvgPicture.string(
|
secondary: SvgPicture.string(
|
||||||
service.svgIcon,
|
service.svgIcon,
|
||||||
|
|
Loading…
Add table
Reference in a new issue