From e417088340b98ef084c9c5c5c42cbe08f7e1700e Mon Sep 17 00:00:00 2001 From: NaiJi Date: Mon, 7 Aug 2023 10:26:52 -0300 Subject: [PATCH 1/5] fix(i18l): Change broken validations string for superuser SSH --- lib/logic/cubit/forms/user/ssh_form_cubit.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/logic/cubit/forms/user/ssh_form_cubit.dart b/lib/logic/cubit/forms/user/ssh_form_cubit.dart index 9ed389d2..707e54c3 100644 --- a/lib/logic/cubit/forms/user/ssh_form_cubit.dart +++ b/lib/logic/cubit/forms/user/ssh_form_cubit.dart @@ -21,7 +21,7 @@ class SshFormCubit extends FormCubit { ValidationModel( (final String newKey) => user.sshKeys.any((final String key) => key == newKey), - 'validations.already_exists'.tr(), + 'validations.already_exist'.tr(), ), RequiredStringValidation('validations.required'.tr()), ValidationModel( From 91dce222cc460d82f2f06817b1d744b946c8fb48 Mon Sep 17 00:00:00 2001 From: NaiJi Date: Thu, 10 Aug 2023 23:07:03 -0300 Subject: [PATCH 2/5] fix: Don't let start service migration if the same volume was picked --- .../binds_migration/services_migration.dart | 80 +++++++++++-------- 1 file changed, 48 insertions(+), 32 deletions(-) diff --git a/lib/ui/pages/server_storage/binds_migration/services_migration.dart b/lib/ui/pages/server_storage/binds_migration/services_migration.dart index f07c275e..26e9b82e 100644 --- a/lib/ui/pages/server_storage/binds_migration/services_migration.dart +++ b/lib/ui/pages/server_storage/binds_migration/services_migration.dart @@ -55,6 +55,20 @@ class _ServicesMigrationPageState extends State { }); } + bool get isTherePendingChange { + bool isChangeFound = false; + for (final Service service in widget.services) { + for (final String serviceId in serviceToDisk.keys) { + if (serviceId == service.id && + serviceToDisk[serviceId] != service.storageUsage.volume!) { + isChangeFound = true; + } + } + } + + return isChangeFound; + } + /// Check the services and if a service is moved (in a serviceToDisk entry) /// subtract the used storage from the old volume and add it to the new volume. /// The old volume is the volume the service is currently on, shown in services list. @@ -157,40 +171,42 @@ class _ServicesMigrationPageState extends State { ), ), const SizedBox(height: 16), - BrandButton.filled( - child: Text('storage.start_migration_button'.tr()), - onPressed: () { - if (widget.isMigration) { - context.read().migrateToBinds( - serviceToDisk, - ); - } else { - for (final service in widget.services) { - if (serviceToDisk[service.id] != null) { - context.read().moveService( - service.id, - serviceToDisk[service.id]!, - ); + if (widget.isMigration || + (!widget.isMigration && isTherePendingChange)) + BrandButton.filled( + child: Text('storage.start_migration_button'.tr()), + onPressed: () { + if (widget.isMigration) { + context.read().migrateToBinds( + serviceToDisk, + ); + } else { + for (final service in widget.services) { + if (serviceToDisk[service.id] != null) { + context.read().moveService( + service.id, + serviceToDisk[service.id]!, + ); + } } } - } - context.router.popUntilRoot(); - showModalBottomSheet( - context: context, - useRootNavigator: true, - isScrollControlled: true, - builder: (final BuildContext context) => - DraggableScrollableSheet( - expand: false, - maxChildSize: 0.9, - minChildSize: 0.4, - initialChildSize: 0.6, - builder: (final context, final scrollController) => - JobsContent(controller: scrollController), - ), - ); - }, - ), + context.router.popUntilRoot(); + showModalBottomSheet( + context: context, + useRootNavigator: true, + isScrollControlled: true, + builder: (final BuildContext context) => + DraggableScrollableSheet( + expand: false, + maxChildSize: 0.9, + minChildSize: 0.4, + initialChildSize: 0.6, + builder: (final context, final scrollController) => + JobsContent(controller: scrollController), + ), + ); + }, + ), const SizedBox(height: 32), ], ), From a94965ab0df9dd98763264d70a492e4008325ccd Mon Sep 17 00:00:00 2001 From: NaiJi Date: Thu, 10 Aug 2023 23:21:45 -0300 Subject: [PATCH 3/5] feat: Add autofocus to cubit text fields for keyboard displaying --- lib/ui/pages/setup/initializing/dns_provider_picker.dart | 1 + lib/ui/pages/setup/initializing/initializing.dart | 2 ++ lib/ui/pages/setup/initializing/server_provider_picker.dart | 1 + lib/ui/pages/setup/recovering/recover_by_new_device_key.dart | 1 + lib/ui/pages/setup/recovering/recover_by_old_token.dart | 1 + lib/ui/pages/setup/recovering/recover_by_recovery_key.dart | 1 + lib/ui/pages/setup/recovering/recovery_confirm_backblaze.dart | 1 + lib/ui/pages/setup/recovering/recovery_confirm_dns.dart | 1 + lib/ui/pages/setup/recovering/recovery_routing.dart | 1 + .../setup/recovering/recovery_server_provider_connected.dart | 1 + lib/ui/pages/users/new_user.dart | 1 + lib/ui/pages/users/reset_password.dart | 1 + lib/ui/pages/users/user_details.dart | 1 + 13 files changed, 14 insertions(+) diff --git a/lib/ui/pages/setup/initializing/dns_provider_picker.dart b/lib/ui/pages/setup/initializing/dns_provider_picker.dart index a05b1233..772c093e 100644 --- a/lib/ui/pages/setup/initializing/dns_provider_picker.dart +++ b/lib/ui/pages/setup/initializing/dns_provider_picker.dart @@ -109,6 +109,7 @@ class ProviderInputDataPage extends StatelessWidget { ), const SizedBox(height: 32), CubitFormTextField( + autofocus: true, formFieldCubit: providerCubit.apiKey, textAlign: TextAlign.center, scrollPadding: const EdgeInsets.only(bottom: 70), diff --git a/lib/ui/pages/setup/initializing/initializing.dart b/lib/ui/pages/setup/initializing/initializing.dart index c74fa4a4..5d54935a 100644 --- a/lib/ui/pages/setup/initializing/initializing.dart +++ b/lib/ui/pages/setup/initializing/initializing.dart @@ -273,6 +273,7 @@ class InitializingPage extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ CubitFormTextField( + autofocus: true, formFieldCubit: context.read().keyId, textAlign: TextAlign.center, scrollPadding: const EdgeInsets.only(bottom: 70), @@ -448,6 +449,7 @@ class InitializingPage extends StatelessWidget { ), const SizedBox(height: 32), CubitFormTextField( + autofocus: true, formFieldCubit: context.read().userName, textAlign: TextAlign.center, scrollPadding: const EdgeInsets.only(bottom: 70), diff --git a/lib/ui/pages/setup/initializing/server_provider_picker.dart b/lib/ui/pages/setup/initializing/server_provider_picker.dart index bde1435c..41c4c9ea 100644 --- a/lib/ui/pages/setup/initializing/server_provider_picker.dart +++ b/lib/ui/pages/setup/initializing/server_provider_picker.dart @@ -116,6 +116,7 @@ class ProviderInputDataPage extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ CubitFormTextField( + autofocus: true, formFieldCubit: providerCubit.apiKey, textAlign: TextAlign.center, scrollPadding: const EdgeInsets.only(bottom: 70), diff --git a/lib/ui/pages/setup/recovering/recover_by_new_device_key.dart b/lib/ui/pages/setup/recovering/recover_by_new_device_key.dart index 4f6cf352..d1dce974 100644 --- a/lib/ui/pages/setup/recovering/recover_by_new_device_key.dart +++ b/lib/ui/pages/setup/recovering/recover_by_new_device_key.dart @@ -65,6 +65,7 @@ class RecoverByNewDeviceKeyInput extends StatelessWidget { ignoreBreakpoints: true, children: [ CubitFormTextField( + autofocus: true, formFieldCubit: context.read().tokenField, decoration: InputDecoration( diff --git a/lib/ui/pages/setup/recovering/recover_by_old_token.dart b/lib/ui/pages/setup/recovering/recover_by_old_token.dart index 42d60f34..1a777f83 100644 --- a/lib/ui/pages/setup/recovering/recover_by_old_token.dart +++ b/lib/ui/pages/setup/recovering/recover_by_old_token.dart @@ -76,6 +76,7 @@ class RecoverByOldToken extends StatelessWidget { ignoreBreakpoints: true, children: [ CubitFormTextField( + autofocus: true, formFieldCubit: context.read().tokenField, decoration: InputDecoration( diff --git a/lib/ui/pages/setup/recovering/recover_by_recovery_key.dart b/lib/ui/pages/setup/recovering/recover_by_recovery_key.dart index b39dc2da..ad18bc95 100644 --- a/lib/ui/pages/setup/recovering/recover_by_recovery_key.dart +++ b/lib/ui/pages/setup/recovering/recover_by_recovery_key.dart @@ -36,6 +36,7 @@ class RecoverByRecoveryKey extends StatelessWidget { context.read().revertRecoveryStep, children: [ CubitFormTextField( + autofocus: true, formFieldCubit: context.read().tokenField, decoration: InputDecoration( diff --git a/lib/ui/pages/setup/recovering/recovery_confirm_backblaze.dart b/lib/ui/pages/setup/recovering/recovery_confirm_backblaze.dart index a4d04aae..4b27e3ad 100644 --- a/lib/ui/pages/setup/recovering/recovery_confirm_backblaze.dart +++ b/lib/ui/pages/setup/recovering/recovery_confirm_backblaze.dart @@ -36,6 +36,7 @@ class RecoveryConfirmBackblaze extends StatelessWidget { hasFlashButton: false, children: [ CubitFormTextField( + autofocus: true, formFieldCubit: context.read().keyId, decoration: const InputDecoration( border: OutlineInputBorder(), diff --git a/lib/ui/pages/setup/recovering/recovery_confirm_dns.dart b/lib/ui/pages/setup/recovering/recovery_confirm_dns.dart index 02a2afeb..e49efe9e 100644 --- a/lib/ui/pages/setup/recovering/recovery_confirm_dns.dart +++ b/lib/ui/pages/setup/recovering/recovery_confirm_dns.dart @@ -39,6 +39,7 @@ class RecoveryConfirmDns extends StatelessWidget { context.read().revertRecoveryStep, children: [ CubitFormTextField( + autofocus: true, formFieldCubit: context.read().apiKey, decoration: InputDecoration( border: const OutlineInputBorder(), diff --git a/lib/ui/pages/setup/recovering/recovery_routing.dart b/lib/ui/pages/setup/recovering/recovery_routing.dart index be5eb2ea..3ab5109a 100644 --- a/lib/ui/pages/setup/recovering/recovery_routing.dart +++ b/lib/ui/pages/setup/recovering/recovery_routing.dart @@ -121,6 +121,7 @@ class SelectDomainToRecover extends StatelessWidget { }, children: [ CubitFormTextField( + autofocus: true, formFieldCubit: context.read().serverDomainField, decoration: InputDecoration( diff --git a/lib/ui/pages/setup/recovering/recovery_server_provider_connected.dart b/lib/ui/pages/setup/recovering/recovery_server_provider_connected.dart index 86a1bf44..40f13eaa 100644 --- a/lib/ui/pages/setup/recovering/recovery_server_provider_connected.dart +++ b/lib/ui/pages/setup/recovering/recovery_server_provider_connected.dart @@ -38,6 +38,7 @@ class RecoveryServerProviderConnected extends StatelessWidget { }, children: [ CubitFormTextField( + autofocus: true, formFieldCubit: context.read().apiKey, decoration: InputDecoration( border: const OutlineInputBorder(), diff --git a/lib/ui/pages/users/new_user.dart b/lib/ui/pages/users/new_user.dart index d7ed2aca..9212307a 100644 --- a/lib/ui/pages/users/new_user.dart +++ b/lib/ui/pages/users/new_user.dart @@ -55,6 +55,7 @@ class NewUserPage extends StatelessWidget { const SizedBox(width: 14), IntrinsicHeight( child: CubitFormTextField( + autofocus: true, formFieldCubit: context.read().login, decoration: InputDecoration( labelText: 'users.login'.tr(), diff --git a/lib/ui/pages/users/reset_password.dart b/lib/ui/pages/users/reset_password.dart index 64785d3a..12bb41ae 100644 --- a/lib/ui/pages/users/reset_password.dart +++ b/lib/ui/pages/users/reset_password.dart @@ -41,6 +41,7 @@ class ResetPassword extends StatelessWidget { mainAxisSize: MainAxisSize.min, children: [ CubitFormTextField( + autofocus: true, formFieldCubit: context.read().password, decoration: InputDecoration( diff --git a/lib/ui/pages/users/user_details.dart b/lib/ui/pages/users/user_details.dart index 72180e8c..7ee3a7bd 100644 --- a/lib/ui/pages/users/user_details.dart +++ b/lib/ui/pages/users/user_details.dart @@ -296,6 +296,7 @@ class NewSshKey extends StatelessWidget { children: [ IntrinsicHeight( child: CubitFormTextField( + autofocus: true, formFieldCubit: context.read().key, decoration: InputDecoration( labelText: 'ssh.input_label'.tr(), From e77a9403cac9333779ddbc44fa8c76eae9e8f44c Mon Sep 17 00:00:00 2001 From: NaiJi Date: Fri, 11 Aug 2023 02:03:29 -0300 Subject: [PATCH 4/5] fix(i18l): Add dot to the end of reset_config_description key for translations --- assets/translations/az.json | 2 +- assets/translations/be.json | 2 +- assets/translations/cs.json | 2 +- assets/translations/de.json | 2 +- assets/translations/en.json | 2 +- assets/translations/es.json | 4 ++-- assets/translations/fr.json | 2 +- assets/translations/lv.json | 4 ++-- assets/translations/pl.json | 2 +- assets/translations/ru.json | 2 +- assets/translations/sk.json | 2 +- assets/translations/sl.json | 3 +-- assets/translations/th.json | 2 +- assets/translations/uk.json | 2 +- 14 files changed, 16 insertions(+), 17 deletions(-) diff --git a/assets/translations/az.json b/assets/translations/az.json index 81d678c7..aae7107a 100644 --- a/assets/translations/az.json +++ b/assets/translations/az.json @@ -60,7 +60,7 @@ "title": "Tətbiq parametrləri", "dark_theme_title": "Qaranlıq mövzu", "reset_config_title": "Tətbiq Sıfırlayın", - "reset_config_description": "API və Super İstifadəçi Açarlarını sıfırlayın", + "reset_config_description": "API və Super İstifadəçi Açarlarını sıfırlayın.", "delete_server_title": "Serveri silin", "dark_theme_description": "Rəng mövzusunu dəyişdirin", "delete_server_description": "Əməliyyat serveri siləcək. Bundan sonra o, əlçatmaz olacaq.", diff --git a/assets/translations/be.json b/assets/translations/be.json index 3a5e84a8..c6dbf7e9 100644 --- a/assets/translations/be.json +++ b/assets/translations/be.json @@ -259,7 +259,7 @@ "privacy_policy": "Палітыка прыватнасці" }, "application_settings": { - "reset_config_description": "Скінуць API ключы i суперкарыстальніка", + "reset_config_description": "Скінуць API ключы i суперкарыстальніка.", "delete_server_description": "Дзеянне прывядзе да выдалення сервера. Пасля гэтага ён будзе недаступны.", "title": "Налады праграмы", "dark_theme_title": "Цёмная тэма", diff --git a/assets/translations/cs.json b/assets/translations/cs.json index 818cd320..5186b74e 100644 --- a/assets/translations/cs.json +++ b/assets/translations/cs.json @@ -60,7 +60,7 @@ "title": "Nastavení aplikace", "dark_theme_title": "Tmavé téma", "reset_config_title": "Obnovení konfigurace aplikace", - "reset_config_description": "Obnovení klíčů api a uživatele root", + "reset_config_description": "Obnovení klíčů API a uživatele root.", "delete_server_title": "Odstranit server", "dark_theme_description": "Přepnutí tématu aplikace", "delete_server_description": "Tím odstraníte svůj server. Nebude již přístupný.", diff --git a/assets/translations/de.json b/assets/translations/de.json index 9b8b1093..86cc3518 100644 --- a/assets/translations/de.json +++ b/assets/translations/de.json @@ -64,7 +64,7 @@ "dark_theme_title": "Dunkles Thema", "dark_theme_description": "Ihr Anwendungsdesign wechseln", "reset_config_title": "Anwendungseinstellungen zurücksetzen", - "reset_config_description": "API Sclüssel und root Benutzer zurücksetzen", + "reset_config_description": "API Sclüssel und root Benutzer zurücksetzen.", "delete_server_title": "Server löschen", "delete_server_description": "Das wird Ihren Server löschen. Es wird nicht mehr zugänglich sein.", "system_dark_theme_title": "Standard-Systemthema", diff --git a/assets/translations/en.json b/assets/translations/en.json index 51c47263..a20c76e2 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -68,7 +68,7 @@ "dark_theme_description": "Switch your application theme", "dangerous_settings": "Dangerous settings", "reset_config_title": "Reset application config", - "reset_config_description": "Reset api keys and root user", + "reset_config_description": "Resets API keys and root user.", "delete_server_title": "Delete server", "delete_server_description": "This removes your server. It will be no longer accessible." }, diff --git a/assets/translations/es.json b/assets/translations/es.json index e01f9167..2c240edd 100644 --- a/assets/translations/es.json +++ b/assets/translations/es.json @@ -38,7 +38,7 @@ "application_settings": { "reset_config_title": "Restablecer la configuración de la aplicación", "dark_theme_description": "Cambia el tema de tu aplicación", - "reset_config_description": "Restablecer claves api y usuario root", + "reset_config_description": "Restablecer claves API y usuario root.", "delete_server_title": "Eliminar servidor", "delete_server_description": "Esto elimina su servidor. Ya no será accesible.", "title": "Ajustes de la aplicación", @@ -89,4 +89,4 @@ "about_us_page": { "title": "Sobre nosotros" } -} +} \ No newline at end of file diff --git a/assets/translations/fr.json b/assets/translations/fr.json index 945d1f5a..e015c782 100644 --- a/assets/translations/fr.json +++ b/assets/translations/fr.json @@ -64,7 +64,7 @@ "delete_server_title": "Supprimer le serveur", "delete_server_description": "Cela va supprimer votre serveur. Celui-ci ne sera plus accessible.", "dark_theme_title": "Thème sombre", - "reset_config_description": "Réinitialiser les clés API et l'utilisateur root" + "reset_config_description": "Réinitialiser les clés API et l'utilisateur root." }, "ssh": { "title": "Clés SSH", diff --git a/assets/translations/lv.json b/assets/translations/lv.json index b4a38c8e..7fbfb797 100644 --- a/assets/translations/lv.json +++ b/assets/translations/lv.json @@ -66,7 +66,7 @@ "dark_theme_description": "Lietojumprogrammas dizaina pārslēgšana", "dangerous_settings": "Bīstamie iestatījumi", "reset_config_title": "Atiestatīt lietojumprogrammas konfigurāciju", - "reset_config_description": "Atiestatīt API atslēgas un saknes lietotāju", + "reset_config_description": "Atiestatīt API atslēgas un saknes lietotāju.", "delete_server_title": "Izdzēst serveri", "delete_server_description": "Šis izdzēš jūsu serveri. Tas vairs nebūs pieejams." }, @@ -215,4 +215,4 @@ "not_ready_card": { "in_menu": "Serveris vēl nav iestatīts. Lūdzu, pabeidziet iestatīšanu, izmantojot iestatīšanas vedni, lai turpinātu darbu." } -} +} \ No newline at end of file diff --git a/assets/translations/pl.json b/assets/translations/pl.json index 0f0acdb0..5a90cc86 100644 --- a/assets/translations/pl.json +++ b/assets/translations/pl.json @@ -64,7 +64,7 @@ "dark_theme_title": "Ciemny motyw aplikacji", "dark_theme_description": "Zmień kolor motywu aplikacji", "reset_config_title": "Resetowanie", - "reset_config_description": "Zresetuj klucze API i użytkownika root", + "reset_config_description": "Zresetuj klucze API i użytkownika root.", "delete_server_title": "Usuń serwer", "delete_server_description": "Ta czynność usunie serwer. Po tym będzie niedostępny.", "system_dark_theme_description": "Użyj jasnego lub ciemnego motywu w zależności od ustawień systemu", diff --git a/assets/translations/ru.json b/assets/translations/ru.json index fdc276cd..169ffa34 100644 --- a/assets/translations/ru.json +++ b/assets/translations/ru.json @@ -65,7 +65,7 @@ "dark_theme_title": "Тёмная тема", "dark_theme_description": "Сменить цветовую тему", "reset_config_title": "Сброс настроек", - "reset_config_description": "Сбросить API ключи, а также root пользователя", + "reset_config_description": "Сбросить API ключи и root пользователя.", "delete_server_title": "Удалить сервер", "delete_server_description": "Действие приведёт к удалению сервера. После этого он будет недоступен.", "system_dark_theme_title": "Системная тема по-умолчанию", diff --git a/assets/translations/sk.json b/assets/translations/sk.json index c45523d4..c79d251e 100644 --- a/assets/translations/sk.json +++ b/assets/translations/sk.json @@ -114,7 +114,7 @@ "dark_theme_title": "Temná téma", "dark_theme_description": "Zmeniť tému aplikácie", "reset_config_title": "Resetovať nastavenia aplikácie", - "reset_config_description": "Resetovať kľúče API a užívateľa root", + "reset_config_description": "Resetovať kľúče API a užívateľa root.", "delete_server_title": "Zmazať server", "delete_server_description": "Tým sa odstráni váš server. Už nebude prístupným.", "system_dark_theme_description": "Použitie svetlej alebo tmavej témy v závislosti od nastavení systému", diff --git a/assets/translations/sl.json b/assets/translations/sl.json index c8bcd3b8..4cbf91d1 100644 --- a/assets/translations/sl.json +++ b/assets/translations/sl.json @@ -67,7 +67,6 @@ "dark_theme_description": "Spreminjanje barvne teme", "dangerous_settings": "Nevarne nastavitve", "reset_config_title": "Ponastavitev konfiguracije aplikacije", - "reset_config_description": "Сбросить API ключи, а также root пользователя", "delete_server_title": "Brisanje strežnika", "delete_server_description": "To dejanje povzroči izbris strežnika. Nato bo nedosegljiv." }, @@ -254,4 +253,4 @@ "title": "VPN Strežnik", "subtitle": "Zasebni strežnik VPN" } -} +} \ No newline at end of file diff --git a/assets/translations/th.json b/assets/translations/th.json index 3c314087..aa54a203 100644 --- a/assets/translations/th.json +++ b/assets/translations/th.json @@ -59,7 +59,7 @@ "title": "การตั้งค่าแอปพลิเคชัน", "dark_theme_title": "ธีมมืด", "reset_config_title": "รีเซ็ตค่าดั้งเดิมการตั้งค่าของแอปพลิเคชั่น", - "reset_config_description": "รีเซ็ต api key และผู้ใช้งาน root", + "reset_config_description": "รีเซ็ต API key และผู้ใช้งาน root", "delete_server_title": "ลบเซิฟเวอร์" }, "ssh": { diff --git a/assets/translations/uk.json b/assets/translations/uk.json index 0d5726bf..d3384ca5 100644 --- a/assets/translations/uk.json +++ b/assets/translations/uk.json @@ -41,7 +41,7 @@ "reset_config_title": "Скинути налаштування", "dark_theme_title": "Темна тема", "dark_theme_description": "Змінити тему додатка", - "reset_config_description": "Скинути API ключі та root користувача", + "reset_config_description": "Скинути API ключі та root користувача.", "delete_server_title": "Видалити сервер", "delete_server_description": "Це видалить ваш сервер. Він більше не буде доступний." }, From e4c5220fb40c0d292590e50a4734aec5cf92991d Mon Sep 17 00:00:00 2001 From: NaiJi Date: Fri, 11 Aug 2023 10:21:27 -0300 Subject: [PATCH 5/5] refactor: Rename isTherePendingChange to isVolumePicked on migration page --- .../server_storage/binds_migration/services_migration.dart | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/ui/pages/server_storage/binds_migration/services_migration.dart b/lib/ui/pages/server_storage/binds_migration/services_migration.dart index 26e9b82e..edb7474e 100644 --- a/lib/ui/pages/server_storage/binds_migration/services_migration.dart +++ b/lib/ui/pages/server_storage/binds_migration/services_migration.dart @@ -55,7 +55,7 @@ class _ServicesMigrationPageState extends State { }); } - bool get isTherePendingChange { + bool get isVolumePicked { bool isChangeFound = false; for (final Service service in widget.services) { for (final String serviceId in serviceToDisk.keys) { @@ -171,8 +171,7 @@ class _ServicesMigrationPageState extends State { ), ), const SizedBox(height: 16), - if (widget.isMigration || - (!widget.isMigration && isTherePendingChange)) + if (widget.isMigration || (!widget.isMigration && isVolumePicked)) BrandButton.filled( child: Text('storage.start_migration_button'.tr()), onPressed: () {