diff --git a/assets/translations/az.json b/assets/translations/az.json index a49dd1ff..81d678c7 100644 --- a/assets/translations/az.json +++ b/assets/translations/az.json @@ -355,9 +355,9 @@ "fallback_select_provider_console": "Hostinq konsoluna giriş.", "authorization_failed": "Bu açarla daxil olmaq alınmadı", "fallback_select_provider_console_hint": "Məsələn: Hetzner.", - "server_provider_connected": "Server provayderinizə qoşulur", - "server_provider_connected_description": "Əlaqə quruldu. {} girişi ilə nişanınızı daxil edin:", - "server_provider_connected_placeholder": "Server provayderi nişanı", + "provider_connected": "{} qoşulur", + "provider_connected_description": "Əlaqə quruldu. {} girişi ilə nişanınızı daxil edin:", + "provider_connected_placeholder": "{} nişanı", "confirm_server": "Serveri təsdiqləyin", "confirm_server_description": "Server tapdım! Onun olduğunu təsdiq edin:", "confirm_server_accept": "Bəli, odur", @@ -368,11 +368,7 @@ "domain_not_available_on_token": "Daxil edilmiş işarənin tələb olunan domenə girişi yoxdur.", "modal_confirmation_dns_valid": "Əks DNS düzgündür", "modal_confirmation_dns_invalid": "Əks DNS fərqli domenə işarə edir", - "modal_confirmation_ip_valid": "IP DNS qeydində göstərilənə uyğun gəlir", - "confirm_cloudflare": "Cloudflare-ə qoşulur", - "confirm_cloudflare_description": "{} hüququ olan Cloudflare tokenini daxil edin:", - "confirm_backblaze": "Backblaze-ə qoşulur", - "confirm_backblaze_description": "Ehtiyat saxlama hüququ olan Backblaze tokenini daxil edin:" + "modal_confirmation_ip_valid": "IP DNS qeydində göstərilənə uyğun gəlir" }, "devices": { "main_screen": { diff --git a/assets/translations/be.json b/assets/translations/be.json index f6eff55c..3a5e84a8 100644 --- a/assets/translations/be.json +++ b/assets/translations/be.json @@ -97,8 +97,8 @@ "fallback_select_root_ssh": "Каранёвы доступ да сервера праз SSH.", "authorization_failed": "Не ўдалося ўвайсці з гэтым ключом", "fallback_select_provider_console_hint": "Напрыклад, Hetzner.", - "server_provider_connected": "Падлучэнне да вашага сервернага правайдэра", - "server_provider_connected_placeholder": "Токен сервернага правайдэра", + "provider_connected": "Падлучэнне да вашага {}", + "provider_connected_placeholder": "Токен {}", "confirm_server": "Пацвердзіце сервер", "confirm_server_description": "Знайшлі сервер! Пацьвердзіце, што гэта ён:", "confirm_server_accept": "Да, гэта ён", @@ -109,16 +109,12 @@ "modal_confirmation_dns_valid": "Зваротны DNS карэктны", "modal_confirmation_dns_invalid": "Зваротны DNS паказвае на іншы дамен", "modal_confirmation_ip_invalid": "IP не супадае з паказаным у DNS запісу", - "confirm_backblaze": "Падключэнне да Backblaze", - "confirm_backblaze_description": "Увядзіце токен Backblaze, які мае правы на сховішча рэзервовых копій:", "fallback_select_provider_console": "Доступ да кансолі хостынгу.", - "server_provider_connected_description": "Сувязь устаноўлена. Увядзіце свой токен з доступам да {}:", + "provider_connected_description": "Сувязь устаноўлена. Увядзіце свой токен з доступам да {}:", "choose_server": "Выберыце сервер", "no_servers": "На вашым акаўнце няма даступных сэрвэраў.", "modal_confirmation_description": "Падлучэнне да няправільнага сервера можа прывесці да дэструктыўных наступстваў.", - "modal_confirmation_ip_valid": "IP супадае з паказаным у DNS запісу", - "confirm_cloudflare": "Падключэнне да DNS Правайдэра", - "confirm_cloudflare_description": "Увядзіце токен DNS Правайдэра, які мае правы на {}:" + "modal_confirmation_ip_valid": "IP супадае з паказаным у DNS запісу" }, "devices": { "main_screen": { @@ -514,4 +510,4 @@ "support": { "title": "Падтрымка SelfPrivacy" } -} +} \ No newline at end of file diff --git a/assets/translations/cs.json b/assets/translations/cs.json index 22b82f52..818cd320 100644 --- a/assets/translations/cs.json +++ b/assets/translations/cs.json @@ -369,9 +369,9 @@ "fallback_select_root_ssh": "Kořenový přístup SSH k serveru.", "fallback_select_provider_console": "Přístup ke konzole serveru mého prodiveru.", "authorization_failed": "Nelze se přihlásit pomocí tohoto klíče", - "server_provider_connected": "Připojení k poskytovateli serveru", - "server_provider_connected_description": "Komunikace navázána. Zadejte svůj token s přístupem k {}:", - "server_provider_connected_placeholder": "Token poskytovatele serveru", + "provider_connected": "Připojení k poskytovateli {}", + "provider_connected_description": "Komunikace navázána. Zadejte svůj token s přístupem k {}:", + "provider_connected_placeholder": "Token {}", "confirm_server": "Potvrzení serveru", "confirm_server_accept": "Ano! To je ono", "confirm_server_decline": "Výběr jiného serveru", @@ -383,17 +383,13 @@ "modal_confirmation_dns_valid": "Reverzní DNS je platný", "modal_confirmation_dns_invalid": "Reverzní DNS ukazuje na jinou doménu", "modal_confirmation_ip_invalid": "IP není stejná jako v záznamu DNS", - "confirm_cloudflare": "Připojení k poskytovateli DNS", - "confirm_cloudflare_description": "Zadejte token DNS poskytovatele, který má práva k {}:", - "confirm_backblaze": "Připojení k službě Backblaze", "generic_error": "Operace se nezdařila, zkuste to prosím znovu.", "domain_recovery_description": "Zadejte doménu serveru, ke které chcete získat přístup:", "method_device_description": "Otevřete aplikaci v jiném zařízení a přejděte na stránku zařízení. Stisknutím tlačítka \"Přidat zařízení\" získáte token.", "fallback_select_provider_console_hint": "Například: Hetzner.", "confirm_server_description": "Našel jsem váš server! Potvrďte, že je to ten správný:", "domain_not_available_on_token": "Vybraná doména není na tomto tokenu k dispozici.", - "modal_confirmation_ip_valid": "IP je stejná jako v záznamu DNS", - "confirm_backblaze_description": "Zadejte token Backblaze s přístupem k úložišti záloh:" + "modal_confirmation_ip_valid": "IP je stejná jako v záznamu DNS" }, "devices": { "main_screen": { @@ -514,4 +510,4 @@ "ignore_tls": "Nekontrolujte certifikáty TLS", "ignore_tls_description": "Aplikace nebude při připojování k serveru ověřovat certifikáty TLS." } -} +} \ No newline at end of file diff --git a/assets/translations/de.json b/assets/translations/de.json index 105b5f2f..9b8b1093 100644 --- a/assets/translations/de.json +++ b/assets/translations/de.json @@ -411,12 +411,9 @@ "domain_recovery_description": "Geben Sie eine Serverdomäne ein, für die Sie Zugriff erhalten möchten:", "method_device_description": "Öffnen Sie die Anwendung auf einem anderen Gerät und gehen Sie dann zur Geräteseite. Drücken Sie auf „Gerät hinzufügen“, um Ihren Token zu erhalten.", "fallback_select_token_copy": "Kopie des Authentifizierungstokens von einer anderen Version der Anwendung.", - "server_provider_connected_description": "Kommunikation hergestellt. Eingabe Ihres Tokens Token mit Zugriff auf {}:", + "provider_connected_description": "Kommunikation hergestellt. Eingabe Ihres Tokens Token mit Zugriff auf {}:", "choose_server_description": "Wir konnten nicht herausfinden, mit welchem Server Sie sich verbinden möchten.", "modal_confirmation_dns_invalid": "Reverse DNS zeigt auf eine andere Domain", - "confirm_cloudflare_description": "Geben Sie das DNS-Token des Anbieters ein, der Rechte für {} hat:", - "confirm_backblaze": "Mit Backblaze verbinden", - "confirm_backblaze_description": "Geben Sie ein Backblaze-Token mit Zugriff auf den Sicherungsspeicher ein:", "generic_error": "Vorgang fehlgeschlagen, bitte versuchen Sie es erneut.", "recovery_main_header": "Verbindung zu einem vorhandenen Server herstellen", "domain_recover_placeholder": "Ihre Domain", @@ -434,8 +431,8 @@ "fallback_select_provider_console": "Zugang zur Serverkonsole meines Providers.", "authorization_failed": "Anmeldung mit diesem Schlüssel nicht möglich", "fallback_select_provider_console_hint": "Zum Beispiel: Hetzner.", - "server_provider_connected": "Verbinden Sie sich mit Ihrem Serveranbieter", - "server_provider_connected_placeholder": "Token des Serveranbieters", + "provider_connected": "Verbinden Sie sich mit Ihrem {}", + "provider_connected_placeholder": "Token des {}", "confirm_server": "Server bestätigen", "confirm_server_description": "Server gefunden! Bestätigen Sie, dass es das Richtige ist:", "confirm_server_accept": "Ja! Das ist es", @@ -447,8 +444,7 @@ "modal_confirmation_description": "Wenn Sie sich mit einem falschen Server verbinden, können Sie alle Ihre Daten verlieren.", "modal_confirmation_dns_valid": "Reverse DNS ist gültig", "modal_confirmation_ip_valid": "Die IP ist die gleiche wie im DNS-Eintrag", - "modal_confirmation_ip_invalid": "Die IP ist nicht dieselbe wie im DNS-Eintrag", - "confirm_cloudflare": "Verbindung zu einem DNS-Anbieter herstellen" + "modal_confirmation_ip_invalid": "Die IP ist nicht dieselbe wie im DNS-Eintrag" }, "recovery_key": { "key_connection_error": "Es konnte keine Verbindung zum Server hergestellt werden.", @@ -514,4 +510,4 @@ "ignore_tls": "Überprüfen Sie keine TLS-Zertifikate", "ignore_tls_description": "Die Anwendung validiert TLS-Zertifikate nicht, wenn sie eine Verbindung zum Server herstellt." } -} +} \ No newline at end of file diff --git a/assets/translations/en.json b/assets/translations/en.json index f66df742..51c47263 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -124,7 +124,8 @@ "disk": "Disk local", "monthly_cost": "Monthly cost", "location": "Location", - "provider": "Provider", + "server_provider": "Server Provider", + "dns_provider": "DNS Provider", "core_count": { "one": "{} core", "two": "{} cores", @@ -218,7 +219,7 @@ "extend_volume_button": "Extend volume", "extending_volume_title": "Extending volume", "extending_volume_description": "Resizing volume will allow you to store more data on your server without extending the server itself. Volume can only be extended: shrinking is not possible.", - "extending_volume_price_info": "Price includes VAT and is estimated from pricing data provided by Hetzner. Server will be rebooted after resizing.", + "extending_volume_price_info": "Price includes VAT and is estimated from pricing data provided by your server provider. Server will be rebooted after resizing.", "extending_volume_error": "Couldn't initialize volume extending.", "size": "Size", "data_migration_title": "Data migration", @@ -404,9 +405,9 @@ "fallback_select_provider_console": "Access to the server console of my provider.", "authorization_failed": "Couldn't log in with this key", "fallback_select_provider_console_hint": "For example: Hetzner.", - "server_provider_connected": "Connect to your Server Provider", - "server_provider_connected_description": "Communication established. Enter you token with access to {}:", - "server_provider_connected_placeholder": "Server Provider token", + "provider_connected": "Connect to {}", + "provider_connected_description": "Enter your token with access to {}:", + "provider_connected_placeholder": "{} token", "confirm_server": "Confirm server", "confirm_server_description": "Found your server! Confirm it is the right one:", "confirm_server_accept": "Yes! That's it", @@ -420,11 +421,7 @@ "modal_confirmation_dns_valid": "Reverse DNS is valid", "modal_confirmation_dns_invalid": "Reverse DNS points to another domain", "modal_confirmation_ip_valid": "IP is the same as in DNS record", - "modal_confirmation_ip_invalid": "IP is not the same as in DNS record", - "confirm_cloudflare": "Connect to your DNS Provider", - "confirm_cloudflare_description": "Enter a token of your DNS Provider with access to {}:", - "confirm_backblaze": "Connect to Backblaze", - "confirm_backblaze_description": "Enter a Backblaze token with access to backup storage:" + "modal_confirmation_ip_invalid": "IP is not the same as in DNS record" }, "devices": { "main_screen": { @@ -542,4 +539,4 @@ "reset_onboarding_description": "Reset onboarding switch to show onboarding screen again", "cubit_statuses": "Cubit loading statuses" } -} +} \ No newline at end of file diff --git a/assets/translations/pl.json b/assets/translations/pl.json index 93bdb733..0f0acdb0 100644 --- a/assets/translations/pl.json +++ b/assets/translations/pl.json @@ -433,7 +433,6 @@ "recovering": { "confirm_server_decline": "Wybierz inny serwer", "domain_not_available_on_token": "Wprowadzony token nie ma dostępu do żądanej domeny.", - "confirm_cloudflare_description": "Wprowadź token DNS dostawcy, który ma uprawnienia do {}:", "method_recovery_input_description": "Wprowadź swój token odzyskiwania", "fallback_select_provider_console": "Dostęp do konsoli serwera mojego dostawcy.", "confirm_server_description": "Znalazłem twój serwer! Potwierdź, że jest to właściwe:", @@ -461,17 +460,14 @@ "modal_confirmation_dns_invalid": "Odwrócony DNS wskazuje na inną domenę", "modal_confirmation_ip_valid": "IP jest takie samo jak w rekordzie DNS", "modal_confirmation_ip_invalid": "IP nie jest zgodne z tym w rekordzie DNS", - "confirm_cloudflare": "Łączenie z dostawcą DNS", - "confirm_backblaze": "Podłączanie do Backblaze", - "confirm_backblaze_description": "Wpisz token Backblaze, który ma prawa do magazynu kopii zapasowych:", "fallback_select_description": "Które z nich posiadasz? Wybierz pierwszą, która pasuje:", "fallback_select_token_copy": "Kopia tokena autoryzacyjnego z innej wersji aplikacji.", "fallback_select_root_ssh": "Dostęp Root do serwera poprzez SSH.", "authorization_failed": "Nie udało się zalogować za pomocą tego klucza", "fallback_select_provider_console_hint": "Na przykład: Hetzner.", - "server_provider_connected": "Połączenie z dostawcą serwera", - "server_provider_connected_description": "Połączenie ustanowione. Podaj swój token z dostępem do {}:", - "server_provider_connected_placeholder": "Token dostawcy serwera" + "provider_connected": "Połączenie z dostawcą {}", + "provider_connected_description": "Połączenie ustanowione. Podaj swój token z dostępem do {}:", + "provider_connected_placeholder": "{} Token " }, "devices": { "main_screen": { @@ -513,4 +509,4 @@ "cubit_statuses": "Aktualny stan qubitów ładujących", "ignore_tls": "Używane podczas konfigurowania nowego serwera." } -} +} \ No newline at end of file diff --git a/assets/translations/ru.json b/assets/translations/ru.json index 738bceea..fdc276cd 100644 --- a/assets/translations/ru.json +++ b/assets/translations/ru.json @@ -214,7 +214,7 @@ "extend_volume_button": "Расширить хранилище", "extending_volume_title": "Расширение хранилища", "extending_volume_description": "Изменение размера хранилища позволит вам держать больше данных на вашем сервере без расширения самого сервера. Объем можно только увеличить: уменьшить нельзя.", - "extending_volume_price_info": "Цена включает НДС и рассчитана на основе данных о ценах, предоставленных Hetzner. Сервер будет перезагружен во время процесса.", + "extending_volume_price_info": "Цена включает НДС и рассчитана на основе данных о ценах, предоставленных вашим провайдером. Сервер будет перезагружен во время процесса.", "extending_volume_error": "Не удалось начать расширение хранилища.", "size": "Размер", "data_migration_title": "Миграция данных", @@ -414,13 +414,9 @@ "modal_confirmation_dns_invalid": "Обратный DNS указывает на другой домен", "modal_confirmation_ip_valid": "IP совпадает с указанным в DNS записи", "modal_confirmation_ip_invalid": "IP не совпадает с указанным в DNS записи", - "confirm_cloudflare": "Подключение к DNS Провайдеру", - "confirm_cloudflare_description": "Введите токен DNS Провайдера, который имеет права на {}:", - "confirm_backblaze_description": "Введите токен Backblaze, который имеет права на хранилище резервных копий:", - "confirm_backblaze": "Подключение к Backblaze", - "server_provider_connected": "Подключение к вашему серверному провайдеру", - "server_provider_connected_description": "Связь установлена. Введите свой токен с доступом к {}:", - "server_provider_connected_placeholder": "Токен серверного провайдера" + "provider_connected": "Подключение к вашему {}", + "provider_connected_description": "Связь установлена. Введите свой токен с доступом к {}:", + "provider_connected_placeholder": "{} Токен" }, "devices": { "main_screen": { @@ -538,4 +534,4 @@ "ignore_tls_description": "Приложение не будет проверять сертификаты TLS при подключении к серверу.", "ignore_tls": "Не проверять сертификаты TLS" } -} +} \ No newline at end of file diff --git a/assets/translations/sk.json b/assets/translations/sk.json index 9573ccae..c45523d4 100644 --- a/assets/translations/sk.json +++ b/assets/translations/sk.json @@ -388,11 +388,10 @@ "recovery_main_header": "Pripojiť sa k existujúcemu serveru", "method_select_other_device": "Mám prístup na inom zariadení", "method_device_description": "Otvorte aplikáciu na inom zariadení a otvorte obrazovku správy zariadenia. Kliknutím na „Pridať zariadenie“ získate autorizačný token.", - "server_provider_connected": "Pripojiť sa k poskytovateľovi servera", + "provider_connected": "Pripojiť sa k poskytovateľovi {}", "choose_server": "Vyberte si svoj server", "domain_not_available_on_token": "Vybraná doména nie je na tomto tokene dostupná.", "modal_confirmation_ip_valid": "IP je rovnaká ako v DNS zázname", - "confirm_backblaze_description": "Zadajte token Backblaze, ktorý má práva na úložisko záloh:", "generic_error": "Operácia zlyhala, skúste to znova.", "domain_recovery_description": "Zadajte doménu servera, pre ktorú chcete získať prístup:", "domain_recover_placeholder": "Vaša doména", @@ -410,8 +409,8 @@ "fallback_select_provider_console": "Prístup ku konzole servera môjho poskytovateľa.", "authorization_failed": "Pomocou tohto kľúča sa nepodarilo prihlásiť", "fallback_select_provider_console_hint": "Napríklad Hetzner.", - "server_provider_connected_description": "Spojenie bolo nadviazané. Zadajte svoj token s prístupom k {}:", - "server_provider_connected_placeholder": "Token poskytovateľa servera", + "provider_connected_description": "Spojenie bolo nadviazané. Zadajte svoj token s prístupom k {}:", + "provider_connected_placeholder": "{} Token", "confirm_server": "Potvrďte server", "confirm_server_description": "Našiel sa server! Potvrďte, že je to on:", "confirm_server_accept": "Áno, to je on", @@ -422,10 +421,7 @@ "modal_confirmation_description": "Ak sa pripojíte k nesprávnemu serveru, môžete stratiť všetky svoje údaje.", "modal_confirmation_dns_valid": "Reverzný DNS je platný", "modal_confirmation_dns_invalid": "Reverzné DNS ukazuje na inú doménu", - "modal_confirmation_ip_invalid": "IP nie je rovnaká ako v DNS zázname", - "confirm_cloudflare": "Pripojenie k službe CloudFlare", - "confirm_cloudflare_description": "Zadajte token Cloudflare, ktorý má práva na {}:", - "confirm_backblaze": "Pripojenie ku Backblaze" + "modal_confirmation_ip_invalid": "IP nie je rovnaká ako v DNS zázname" }, "devices": { "add_new_device_screen": { diff --git a/assets/translations/uk.json b/assets/translations/uk.json index 7a80b0dd..0d5726bf 100644 --- a/assets/translations/uk.json +++ b/assets/translations/uk.json @@ -171,9 +171,9 @@ "fallback_select_provider_console": "Доступ до серверної консолі мого продiвера.", "authorization_failed": "Не можу авторизуватись за цим ключем", "fallback_select_provider_console_hint": "Наприклад: Hetzner.", - "server_provider_connected": "Підключіться до провайдера сервера", - "server_provider_connected_description": "Зв'язок встановлений. Введіть свій токен з доступом до {}:", - "server_provider_connected_placeholder": "Токен провайдера сервера", + "provider_connected": "Підключіться до {}", + "provider_connected_description": "Зв'язок встановлений. Введіть свій токен з доступом до {}:", + "provider_connected_placeholder": "{} Токен", "confirm_server": "Підтвердити сервер", "confirm_server_description": "Знайдено ваш сервер! Підтвердіть, що він правильний:", "confirm_server_accept": "Так! Це воно", @@ -187,11 +187,7 @@ "modal_confirmation_dns_valid": "Зворотна DNS дійсна", "modal_confirmation_dns_invalid": "Зворотна DNS вказує на інший домен", "modal_confirmation_ip_valid": "IP той же, що і в записі DNS", - "modal_confirmation_ip_invalid": "IP не такий, як в DNS-записі", - "confirm_cloudflare": "Підключення до CloudFlare", - "confirm_cloudflare_description": "Введіть токен CloudFlare з доступом до {}:", - "confirm_backblaze": "Підкючитися до Backblaze", - "confirm_backblaze_description": "Введіть токен Backblaze із доступом до сховища резервних копій:" + "modal_confirmation_ip_invalid": "IP не такий, як в DNS-записі" }, "resource_chart": { "month": "Місяць", diff --git a/lib/logic/api_maps/rest_maps/server_providers/digital_ocean/digital_ocean_api.dart b/lib/logic/api_maps/rest_maps/server_providers/digital_ocean/digital_ocean_api.dart index cebb568c..6a886e75 100644 --- a/lib/logic/api_maps/rest_maps/server_providers/digital_ocean/digital_ocean_api.dart +++ b/lib/logic/api_maps/rest_maps/server_providers/digital_ocean/digital_ocean_api.dart @@ -46,7 +46,6 @@ class DigitalOceanApi extends RestApiMap { @override String get rootAddress => 'https://api.digitalocean.com/v2'; String get infectProviderName => 'digitalocean'; - String get displayProviderName => 'Digital Ocean'; Future> getServers() async { List servers = []; diff --git a/lib/logic/api_maps/rest_maps/server_providers/hetzner/hetzner_api.dart b/lib/logic/api_maps/rest_maps/server_providers/hetzner/hetzner_api.dart index 7fbf3dac..afb061d1 100644 --- a/lib/logic/api_maps/rest_maps/server_providers/hetzner/hetzner_api.dart +++ b/lib/logic/api_maps/rest_maps/server_providers/hetzner/hetzner_api.dart @@ -46,7 +46,6 @@ class HetznerApi extends RestApiMap { @override String get rootAddress => 'https://api.hetzner.cloud/v1'; String get infectProviderName => 'hetzner'; - String get displayProviderName => 'Hetzner'; Future>> getServers() async { List servers = []; diff --git a/lib/logic/cubit/server_detailed_info/server_detailed_info_repository.dart b/lib/logic/cubit/server_detailed_info/server_detailed_info_repository.dart index 3bad75eb..0d2d80e3 100644 --- a/lib/logic/cubit/server_detailed_info/server_detailed_info_repository.dart +++ b/lib/logic/cubit/server_detailed_info/server_detailed_info_repository.dart @@ -9,20 +9,38 @@ class ServerDetailsRepository { ServerApi server = ServerApi(); Future load() async { - final serverProviderApi = ProvidersController.currentServerProvider; final settings = await server.getSystemSettings(); - final serverId = getIt().serverDetails!.id; - final metadata = await serverProviderApi?.getMetadata(serverId); - return ServerDetailsRepositoryDto( autoUpgradeSettings: settings.autoUpgradeSettings, - metadata: metadata!.data, + metadata: await metadata, serverTimezone: TimeZoneSettings.fromString( settings.timezone, ), ); } + Future> get metadata async { + List data = []; + + final serverProviderApi = ProvidersController.currentServerProvider; + final dnsProviderApi = ProvidersController.currentDnsProvider; + if (serverProviderApi != null && dnsProviderApi != null) { + final serverId = getIt().serverDetails?.id ?? 0; + final metadataResult = await serverProviderApi.getMetadata(serverId); + metadataResult.data.add( + ServerMetadataEntity( + trId: 'server.dns_provider', + value: dnsProviderApi.type.displayName, + type: MetadataType.other, + ), + ); + + data = metadataResult.data; + } + + return data; + } + Future setAutoUpgradeSettings( final AutoUpgradeSettings settings, ) async { diff --git a/lib/logic/cubit/server_installation/server_installation_cubit.dart b/lib/logic/cubit/server_installation/server_installation_cubit.dart index c669cf75..25fa4c01 100644 --- a/lib/logic/cubit/server_installation/server_installation_cubit.dart +++ b/lib/logic/cubit/server_installation/server_installation_cubit.dart @@ -532,13 +532,29 @@ class ServerInstallationCubit extends Cubit { .showSnackBar('recovering.generic_error'.tr()); return; } - await repository.saveServerDetails(serverDetails); + final newServerDetails = ServerHostingDetails( + provider: serverProvider, + apiToken: serverDetails.apiToken, + createTime: serverDetails.createTime, + id: serverDetails.id, + ip4: serverDetails.ip4, + volume: serverDetails.volume, + startTime: serverDetails.startTime, + ); + final newServerDomain = ServerDomain( + domainName: serverDomain.domainName, + zoneId: serverDomain.zoneId, + provider: dnsProvider, + ); + await repository.saveServerDetails(newServerDetails); await repository.saveDnsProviderType(dnsProvider); + await repository.saveDomain(newServerDomain); setServerProviderType(serverProvider); setDnsProviderType(dnsProvider); emit( dataState.copyWith( - serverDetails: serverDetails, + serverDetails: newServerDetails, + serverDomain: newServerDomain, currentStep: RecoveryStep.serverProviderToken, ), ); diff --git a/lib/logic/models/hive/server_details.dart b/lib/logic/models/hive/server_details.dart index e746dd75..0e9d825a 100644 --- a/lib/logic/models/hive/server_details.dart +++ b/lib/logic/models/hive/server_details.dart @@ -96,14 +96,9 @@ enum ServerProviderType { } } - String get displayName { - switch (this) { - case ServerProviderType.hetzner: - return 'Hetzner Cloud'; - case ServerProviderType.digitalOcean: - return 'Digital Ocean'; - default: - return 'Unknown'; - } - } + String get displayName => switch (this) { + digitalOcean => 'Digital Ocean', + hetzner => 'Hetzner Cloud', + unknown => 'Unknown', + }; } diff --git a/lib/logic/models/hive/server_domain.dart b/lib/logic/models/hive/server_domain.dart index bd755bbc..5eb20bd8 100644 --- a/lib/logic/models/hive/server_domain.dart +++ b/lib/logic/models/hive/server_domain.dart @@ -54,4 +54,11 @@ enum DnsProviderType { desec => 'DESEC', unknown => 'UNKNOWN', }; + + String get displayName => switch (this) { + digitalOcean => 'Digital Ocean DNS', + cloudflare => 'Cloudflare', + desec => 'deSEC', + unknown => 'Unknown', + }; } diff --git a/lib/logic/providers/server_providers/digital_ocean.dart b/lib/logic/providers/server_providers/digital_ocean.dart index da246b18..945977fb 100644 --- a/lib/logic/providers/server_providers/digital_ocean.dart +++ b/lib/logic/providers/server_providers/digital_ocean.dart @@ -748,8 +748,8 @@ class DigitalOceanServerProvider extends ServerProvider { ), ServerMetadataEntity( type: MetadataType.other, - trId: 'server.provider', - value: _adapter.api().displayProviderName, + trId: 'server.server_provider', + value: type.displayName, ), ]; } catch (e) { diff --git a/lib/logic/providers/server_providers/hetzner.dart b/lib/logic/providers/server_providers/hetzner.dart index fb32dc12..d931e34f 100644 --- a/lib/logic/providers/server_providers/hetzner.dart +++ b/lib/logic/providers/server_providers/hetzner.dart @@ -755,8 +755,8 @@ class HetznerServerProvider extends ServerProvider { ), ServerMetadataEntity( type: MetadataType.other, - trId: 'server.provider', - value: _adapter.api().displayProviderName, + trId: 'server.server_provider', + value: type.displayName, ), ]; } catch (e) { diff --git a/lib/ui/pages/server_storage/extending_volume.dart b/lib/ui/pages/server_storage/extending_volume.dart index 39872494..004995a0 100644 --- a/lib/ui/pages/server_storage/extending_volume.dart +++ b/lib/ui/pages/server_storage/extending_volume.dart @@ -7,6 +7,7 @@ import 'package:selfprivacy/logic/cubit/server_volumes/server_volume_cubit.dart' import 'package:selfprivacy/logic/models/disk_size.dart'; import 'package:selfprivacy/logic/models/price.dart'; import 'package:selfprivacy/ui/components/buttons/brand_button.dart'; +import 'package:selfprivacy/ui/components/info_box/info_box.dart'; import 'package:selfprivacy/ui/layouts/brand_hero_screen.dart'; import 'package:selfprivacy/logic/models/disk_status.dart'; @@ -165,16 +166,11 @@ class _ExtendingVolumePageState extends State { height: 1.0, ), const SizedBox(height: 16), - const Align( - alignment: Alignment.centerLeft, - child: Icon( - Icons.info_outlined, - size: 24, - ), + InfoBox( + text: 'storage.extending_volume_price_info'.tr(), + isWarning: false, ), const SizedBox(height: 16), - Text('storage.extending_volume_price_info'.tr()), - const SizedBox(height: 16), ], ); }, diff --git a/lib/ui/pages/setup/recovering/recovery_confirm_backblaze.dart b/lib/ui/pages/setup/recovering/recovery_confirm_backblaze.dart index f7216a74..a4d04aae 100644 --- a/lib/ui/pages/setup/recovering/recovery_confirm_backblaze.dart +++ b/lib/ui/pages/setup/recovering/recovery_confirm_backblaze.dart @@ -23,8 +23,10 @@ class RecoveryConfirmBackblaze extends StatelessWidget { context.watch().state; return BrandHeroScreen( - heroTitle: 'recovering.confirm_backblaze'.tr(), - heroSubtitle: 'recovering.confirm_backblaze_description'.tr(), + heroTitle: 'recovering.provider_connected'.tr(args: ['Backblaze']), + heroSubtitle: 'recovering.provider_connected_description'.tr( + args: ['Backblaze'], + ), hasBackButton: true, ignoreBreakpoints: true, hasSupportDrawer: true, diff --git a/lib/ui/pages/setup/recovering/recovery_confirm_dns.dart b/lib/ui/pages/setup/recovering/recovery_confirm_dns.dart index 9dcad056..02a2afeb 100644 --- a/lib/ui/pages/setup/recovering/recovery_confirm_dns.dart +++ b/lib/ui/pages/setup/recovering/recovery_confirm_dns.dart @@ -21,10 +21,14 @@ class RecoveryConfirmDns extends StatelessWidget { builder: (final BuildContext context) { final FormCubitState formCubitState = context.watch().state; - + final String providerDisplayName = + appConfig.state.serverDomain?.provider.displayName ?? + 'DNS Provider'; return BrandHeroScreen( - heroTitle: 'recovering.confirm_cloudflare'.tr(), - heroSubtitle: 'recovering.confirm_cloudflare_description'.tr( + heroTitle: 'recovering.provider_connected'.tr( + args: [providerDisplayName], + ), + heroSubtitle: 'recovering.provider_connected_description'.tr( args: [appConfig.state.serverDomain?.domainName ?? 'your domain'], ), hasBackButton: true, @@ -38,7 +42,9 @@ class RecoveryConfirmDns extends StatelessWidget { formFieldCubit: context.read().apiKey, decoration: InputDecoration( border: const OutlineInputBorder(), - labelText: 'initializing.cloudflare_api_token'.tr(), + labelText: 'recovering.provider_connected_placeholder'.tr( + args: [providerDisplayName], + ), ), ), const SizedBox(height: 16), 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 82c29ba2..86a1bf44 100644 --- a/lib/ui/pages/setup/recovering/recovery_server_provider_connected.dart +++ b/lib/ui/pages/setup/recovering/recovery_server_provider_connected.dart @@ -20,8 +20,13 @@ class RecoveryServerProviderConnected extends StatelessWidget { ServerProviderFormCubit(appConfig), child: Builder( builder: (final BuildContext context) => BrandHeroScreen( - heroTitle: 'recovering.server_provider_connected'.tr(), - heroSubtitle: 'recovering.server_provider_connected_description'.tr( + heroTitle: 'recovering.provider_connected'.tr( + args: [ + appConfig.state.serverDetails?.provider.displayName ?? + 'Server Provider' + ], + ), + heroSubtitle: 'recovering.provider_connected_description'.tr( args: [appConfig.state.serverDomain?.domainName ?? 'your domain'], ), hasBackButton: true, @@ -36,8 +41,12 @@ class RecoveryServerProviderConnected extends StatelessWidget { formFieldCubit: context.read().apiKey, decoration: InputDecoration( border: const OutlineInputBorder(), - labelText: - 'recovering.server_provider_connected_placeholder'.tr(), + labelText: 'recovering.provider_connected_placeholder'.tr( + args: [ + appConfig.state.serverDetails?.provider.displayName ?? + 'Server Provider' + ], + ), ), ), const SizedBox(height: 16),