diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 9df153ec..9656abb1 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -660,7 +660,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 822; + CURRENT_PROJECT_VERSION = 824; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -670,7 +670,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.822; + MARKETING_VERSION = 1.0.824; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -796,7 +796,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 822; + CURRENT_PROJECT_VERSION = 824; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -806,7 +806,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.822; + MARKETING_VERSION = 1.0.824; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -824,7 +824,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 822; + CURRENT_PROJECT_VERSION = 824; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -834,7 +834,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.822; + MARKETING_VERSION = 1.0.824; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -855,7 +855,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 822; + CURRENT_PROJECT_VERSION = 824; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -868,7 +868,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.822; + MARKETING_VERSION = 1.0.824; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; @@ -894,7 +894,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 822; + CURRENT_PROJECT_VERSION = 824; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -907,7 +907,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.822; + MARKETING_VERSION = 1.0.824; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -930,7 +930,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 822; + CURRENT_PROJECT_VERSION = 824; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -943,7 +943,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.822; + MARKETING_VERSION = 1.0.824; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -966,7 +966,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 822; + CURRENT_PROJECT_VERSION = 824; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -978,7 +978,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.822; + MARKETING_VERSION = 1.0.824; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; @@ -1007,7 +1007,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 822; + CURRENT_PROJECT_VERSION = 824; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -1019,7 +1019,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.822; + MARKETING_VERSION = 1.0.824; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; PRODUCT_NAME = ServerBox; @@ -1045,7 +1045,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 822; + CURRENT_PROJECT_VERSION = 824; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -1057,7 +1057,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.822; + MARKETING_VERSION = 1.0.824; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; PRODUCT_NAME = ServerBox; diff --git a/lib/data/model/server/custom.dart b/lib/data/model/server/custom.dart index 2dae75e5..d251c7f0 100644 --- a/lib/data/model/server/custom.dart +++ b/lib/data/model/server/custom.dart @@ -8,18 +8,23 @@ final class ServerCustom { final String? temperature; @HiveField(1) final String? pveAddr; + @HiveField(2) + final bool? pveIgnoreCert; const ServerCustom({ this.temperature, this.pveAddr, + this.pveIgnoreCert, }); static ServerCustom fromJson(Map json) { final temperature = json["temperature"] as String?; final pveAddr = json["pveAddr"] as String?; + final pveIgnoreCert = json["pveIgnoreCert"] as bool?; return ServerCustom( temperature: temperature, pveAddr: pveAddr, + pveIgnoreCert: pveIgnoreCert, ); } @@ -31,6 +36,9 @@ final class ServerCustom { if (pveAddr != null) { json["pveAddr"] = pveAddr; } + if (pveIgnoreCert != null) { + json["pveIgnoreCert"] = pveIgnoreCert; + } return json; } } diff --git a/lib/data/model/server/custom.g.dart b/lib/data/model/server/custom.g.dart index cc866872..14119192 100644 --- a/lib/data/model/server/custom.g.dart +++ b/lib/data/model/server/custom.g.dart @@ -19,17 +19,20 @@ class ServerCustomAdapter extends TypeAdapter { return ServerCustom( temperature: fields[0] as String?, pveAddr: fields[1] as String?, + pveIgnoreCert: fields[2] as bool?, ); } @override void write(BinaryWriter writer, ServerCustom obj) { writer - ..writeByte(2) + ..writeByte(3) ..writeByte(0) ..write(obj.temperature) ..writeByte(1) - ..write(obj.pveAddr); + ..write(obj.pveAddr) + ..writeByte(2) + ..write(obj.pveIgnoreCert); } @override diff --git a/lib/data/provider/pve.dart b/lib/data/provider/pve.dart index d26ff6b3..6f758d6e 100644 --- a/lib/data/provider/pve.dart +++ b/lib/data/provider/pve.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'package:computer/computer.dart'; import 'package:dio/dio.dart'; +import 'package:dio/io.dart'; import 'package:flutter/material.dart'; import 'package:toolbox/core/extension/context/locale.dart'; import 'package:toolbox/data/model/app/error.dart'; @@ -33,7 +34,12 @@ final class PveProvider extends ChangeNotifier { final err = ValueNotifier(null); final connected = Completer(); - final session = Dio(); + + late final _ignoreCert = spi.custom?.pveIgnoreCert ?? false; + late final session = Dio() + ..httpClientAdapter = IOHttpClientAdapter( + validateCertificate: _ignoreCert ? (_, __, ___) => true : null, + ); final data = ValueNotifier(null); bool get onlyOneNode => data.value?.nodes.length == 1; String? release; diff --git a/lib/data/res/build_data.dart b/lib/data/res/build_data.dart index 42490b4e..54c4620e 100644 --- a/lib/data/res/build_data.dart +++ b/lib/data/res/build_data.dart @@ -2,9 +2,9 @@ class BuildData { static const String name = "ServerBox"; - static const int build = 822; + static const int build = 824; static const String engine = "3.19.3"; - static const String buildAt = "2024-03-21 17:33:04"; - static const int modifications = 4; + static const String buildAt = "2024-03-23 10:51:07"; + static const int modifications = 6; static const int script = 41; } diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index 1e79c80a..a54dddf8 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -115,6 +115,7 @@ "hour": "Stunde", "httpFailedWithCode": "Anfrage fehlgeschlagen, Statuscode: {code}", "icloudSynced": "iCloud wird synchronisiert und einige Einstellungen erfordern möglicherweise einen Neustart der App, um wirksam zu werden.", + "ignoreCert": "Zertifikat ignorieren", "image": "Image", "imagesList": "Images", "import": "Importieren", @@ -198,6 +199,7 @@ "privateKey": "Private Key", "process": "Prozess", "pushToken": "Push Token", + "pveIgnoreCertTip": "Nicht empfohlen, Achten Sie auf Sicherheitsrisiken! Wenn Sie das Standardzertifikat von PVE verwenden, müssen Sie diese Option aktivieren.", "pveLoginFailed": "Anmeldung fehlgeschlagen. Kann nicht mit Benutzername/Passwort aus der Serverkonfiguration angemeldet werden, um sich über Linux PAM anzumelden.", "pveVersionLow": "Diese Funktion befindet sich derzeit in der Testphase und wurde nur auf PVE 8+ getestet. Bitte verwenden Sie sie mit Vorsicht.", "pwd": "Passwort", diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index b8352a2d..f39af5bb 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -115,6 +115,7 @@ "hour": "Hour", "httpFailedWithCode": "request failed, status code: {code}", "icloudSynced": "iCloud wird synchronisiert und einige Einstellungen erfordern möglicherweise einen Neustart der App, um wirksam zu werden.", + "ignoreCert": "Ignore certificate", "image": "Image", "imagesList": "Images list", "import": "Import", @@ -198,6 +199,7 @@ "privateKey": "Private Key", "process": "Process", "pushToken": "Push token", + "pveIgnoreCertTip": "Not recommended to enable, beware of security risks! If you are using the default certificate from PVE, you need to enable this option.", "pveLoginFailed": "Login failed. Unable to authenticate with username/password from server configuration for Linux PAM login.", "pveVersionLow": "This feature is currently in the testing phase and has only been tested on PVE 8+. Please use it with caution.", "pwd": "Password", diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index b22f678b..e7f29441 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -115,6 +115,7 @@ "hour": "Hora", "httpFailedWithCode": "Fallo en la solicitud, código de estado: {code}", "icloudSynced": "iCloud sincronizado, algunos ajustes pueden requerir reiniciar para tomar efecto.", + "ignoreCert": "Ignorar certificado", "image": "Imagen", "imagesList": "Lista de imágenes", "import": "Importar", @@ -198,6 +199,7 @@ "privateKey": "Llave privada", "process": "Proceso", "pushToken": "Token de notificaciones", + "pveIgnoreCertTip": "No se recomienda activarlo, ¡tenga cuidado con los riesgos de seguridad! Si está utilizando el certificado predeterminado de PVE, debe habilitar esta opción.", "pveLoginFailed": "Fallo al iniciar sesión. No se puede autenticar con el nombre de usuario/contraseña de la configuración del servidor para el inicio de sesión de Linux PAM.", "pveVersionLow": "Esta función está actualmente en fase de prueba y solo se ha probado en PVE 8+. Úsela con precaución.", "pwd": "Contraseña", diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index 0603df6f..1565b47f 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -115,6 +115,7 @@ "hour": "Heure", "httpFailedWithCode": "requête échouée, code d'état : {code}", "icloudSynced": "iCloud est synchronisé et certaines options peuvent nécessiter un redémarrage de l'application pour être effectives.", + "ignoreCert": "Ignorer le certificat", "image": "Image", "imagesList": "Liste d'images", "import": "Importer", @@ -198,6 +199,7 @@ "privateKey": "Clé privée", "process": "Processus", "pushToken": "Jeton d'identification", + "pveIgnoreCertTip": "Non recommandé de l'activer, attention aux risques de sécurité ! Si vous utilisez le certificat par défaut de PVE, vous devez activer cette option.", "pveLoginFailed": "Échec de la connexion. Impossible de s'authentifier avec le nom d'utilisateur/mot de passe de la configuration du serveur pour la connexion Linux PAM.", "pveVersionLow": "Cette fonctionnalité est actuellement en phase de test et n'a été testée que sur PVE 8+. Veuillez l'utiliser avec prudence.", "pwd": "Mot de passe", diff --git a/lib/l10n/app_id.arb b/lib/l10n/app_id.arb index fe45fdec..b7c92f9d 100644 --- a/lib/l10n/app_id.arb +++ b/lib/l10n/app_id.arb @@ -115,6 +115,7 @@ "hour": "Jam", "httpFailedWithCode": "Permintaan gagal, kode status: {code}", "icloudSynced": "iCloud disinkronkan dan beberapa pengaturan mungkin memerlukan pengaktifan ulang aplikasi agar dapat diterapkan.", + "ignoreCert": "Abaikan sertifikat", "image": "Gambar", "imagesList": "Daftar gambar", "import": "Impor", @@ -198,6 +199,7 @@ "privateKey": "Kunci Pribadi", "process": "Proses", "pushToken": "Dorong token", + "pveIgnoreCertTip": "Tidak disarankan untuk diaktifkan, waspadai risiko keamanan! Jika Anda menggunakan sertifikat default dari PVE, Anda perlu mengaktifkan opsi ini.", "pveLoginFailed": "Login gagal. Tidak dapat mengautentikasi dengan nama pengguna/kata sandi dari konfigurasi server untuk login Linux PAM.", "pveVersionLow": "Fitur ini saat ini sedang dalam tahap pengujian dan hanya diuji pada PVE 8+. Gunakan dengan hati-hati.", "pwd": "Kata sandi", diff --git a/lib/l10n/app_ja.arb b/lib/l10n/app_ja.arb index 7b36c885..044f3133 100644 --- a/lib/l10n/app_ja.arb +++ b/lib/l10n/app_ja.arb @@ -115,6 +115,7 @@ "hour": "時間", "httpFailedWithCode": "リクエスト失敗、ステータスコード: {code}", "icloudSynced": "iCloudが同期されました。一部の設定はアプリを再起動する必要があります。", + "ignoreCert": "証明書を無視する", "image": "イメージ", "imagesList": "イメージリスト", "import": "インポート", @@ -198,6 +199,7 @@ "privateKey": "プライベートキー", "process": "プロセス", "pushToken": "プッシュトークン", + "pveIgnoreCertTip": "オプションを有効にすることは推奨されません、セキュリティリスクに注意してください!PVEのデフォルト証明書を使用している場合は、このオプションを有効にする必要があります。", "pveLoginFailed": "ログインに失敗しました。Linux PAMログインのためにサーバー構成からのユーザー名/パスワードで認証できません。", "pveVersionLow": "この機能は現在テスト段階にあり、PVE 8+でのみテストされています。ご利用の際は慎重に。", "pwd": "パスワード", diff --git a/lib/l10n/app_pt.arb b/lib/l10n/app_pt.arb index c4856d94..479fcd4b 100644 --- a/lib/l10n/app_pt.arb +++ b/lib/l10n/app_pt.arb @@ -115,6 +115,7 @@ "hour": "Hora", "httpFailedWithCode": "Falha na solicitação, código de status: {code}", "icloudSynced": "iCloud sincronizado, algumas configurações podem precisar de reinicialização do app para serem aplicadas.", + "ignoreCert": "Ignorar certificado", "image": "Imagem", "imagesList": "Lista de imagens", "import": "Importar", @@ -198,6 +199,7 @@ "privateKey": "Chave privada", "process": "Processo", "pushToken": "Token de notificação push", + "pveIgnoreCertTip": "Não recomendado para ativar, cuidado com os riscos de segurança! Se estiver usando o certificado padrão do PVE, você precisa habilitar esta opção.", "pveLoginFailed": "Falha no login. Não é possível autenticar com o nome de usuário/senha da configuração do servidor para login no Linux PAM.", "pveVersionLow": "Esta funcionalidade está atualmente em fase de teste e foi testada apenas no PVE 8+. Por favor, use com cautela.", "pwd": "Senha", diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb index 503c0d92..bc1a0c84 100644 --- a/lib/l10n/app_ru.arb +++ b/lib/l10n/app_ru.arb @@ -115,6 +115,7 @@ "hour": "Час", "httpFailedWithCode": "Ошибка запроса, код: {code}", "icloudSynced": "Синхронизация с iCloud выполнена, некоторые настройки могут потребовать перезапуска приложения для вступления в силу.", + "ignoreCert": "Игнорировать сертификат", "image": "образ", "imagesList": "список образов", "import": "импорт", @@ -198,6 +199,7 @@ "privateKey": "приватный ключ", "process": "процесс", "pushToken": "токен уведомлений", + "pveIgnoreCertTip": "Не рекомендуется включать, обратите внимание на риски безопасности! Если вы используете стандартный сертификат от PVE, вам нужно включить эту опцию.", "pveLoginFailed": "Ошибка входа. Невозможно аутентифицироваться с помощью имени пользователя/пароля из конфигурации сервера для входа в Linux PAM.", "pveVersionLow": "Эта функция в настоящее время находится на стадии тестирования и была протестирована только на PVE 8+. Используйте ее с осторожностью.", "pwd": "пароль", diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 77d99f3b..c90ef0bc 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -115,6 +115,7 @@ "hour": "小时", "httpFailedWithCode": "请求失败, 状态码: {code}", "icloudSynced": "iCloud已同步,某些设置可能需要重启才能生效。", + "ignoreCert": "忽略证书", "image": "镜像", "imagesList": "镜像列表", "import": "导入", @@ -198,6 +199,7 @@ "privateKey": "私钥", "process": "进程", "pushToken": "消息推送 Token", + "pveIgnoreCertTip": "不推荐开启,注意安全隐患!如果你使用的PVE默认证书,需要开启该选项", "pveLoginFailed": "登录失败。无法使用服务器配置内的用户/密码,以Linux PAM方式登录。", "pveVersionLow": "当前该功能处于测试阶段,仅在PVE 8+上测试过,请谨慎使用", "pwd": "密码", diff --git a/lib/l10n/app_zh_tw.arb b/lib/l10n/app_zh_tw.arb index 7ec03e7a..75f68a4c 100644 --- a/lib/l10n/app_zh_tw.arb +++ b/lib/l10n/app_zh_tw.arb @@ -115,6 +115,7 @@ "hour": "小時", "httpFailedWithCode": "請求失敗, 狀態碼: {code}", "icloudSynced": "iCloud已同步,某些設置可能需要重啟才能生效。", + "ignoreCert": "忽略證書", "image": "鏡像", "imagesList": "鏡像列表", "import": "導入", @@ -198,6 +199,7 @@ "privateKey": "私鑰", "process": "進程", "pushToken": "消息推送 Token", + "pveIgnoreCertTip": "不建議啟用,請注意安全風險!如果您使用的是 PVE 的默認證書,則需要啟用此選項。", "pveLoginFailed": "登錄失敗。無法使用伺服器配置中的使用者名稱/密碼以Linux PAM方式登錄。", "pveVersionLow": "此功能目前處於測試階段,僅在PVE 8+上進行過測試。請謹慎使用。", "pwd": "密碼", diff --git a/lib/view/page/server/edit.dart b/lib/view/page/server/edit.dart index bb12595a..9fa07b53 100644 --- a/lib/view/page/server/edit.dart +++ b/lib/view/page/server/edit.dart @@ -4,6 +4,7 @@ import 'package:toolbox/core/extension/context/common.dart'; import 'package:toolbox/core/extension/context/dialog.dart'; import 'package:toolbox/core/extension/context/locale.dart'; import 'package:toolbox/core/extension/context/snackbar.dart'; +import 'package:toolbox/core/extension/widget.dart'; import 'package:toolbox/data/model/app/shell_func.dart'; import 'package:toolbox/data/model/server/custom.dart'; import 'package:toolbox/data/res/provider.dart'; @@ -48,6 +49,7 @@ class _ServerEditPageState extends State { final _keyIdx = ValueNotifier(null); final _autoConnect = ValueNotifier(true); final _jumpServer = ValueNotifier(null); + final _pveIgnoreCert = ValueNotifier(false); var _tags = []; @@ -336,14 +338,30 @@ class _ServerEditPageState extends State { } Widget _buildPVE() { - return ExpandTile(title: const Text('PVE'), children: [ - Input( - controller: _pveAddrCtrl, - type: TextInputType.url, - label: l10n.addr, - hint: 'https://example.com:8006', - ), - ]); + return ExpandTile( + title: const Text('PVE'), + children: [ + Input( + controller: _pveAddrCtrl, + type: TextInputType.url, + label: l10n.addr, + hint: 'https://example.com:8006', + ), + ListTile( + title: Text(l10n.ignoreCert), + subtitle: Text(l10n.pveIgnoreCertTip, style: UIs.text12Grey), + trailing: ListenableBuilder( + listenable: _pveIgnoreCert, + builder: (_, __) => Switch( + value: _pveIgnoreCert.value, + onChanged: (val) { + _pveIgnoreCert.value = val; + }, + ), + ), + ).card, + ], + ); } Widget _buildFAB() { diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index f6e706a5..9edfd374 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -471,7 +471,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 822; + CURRENT_PROJECT_VERSION = 824; DEVELOPMENT_TEAM = BA88US33G6; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Server Box"; @@ -481,7 +481,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.0.822; + MARKETING_VERSION = 1.0.824; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "Server Box"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -608,7 +608,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 822; + CURRENT_PROJECT_VERSION = 824; DEVELOPMENT_TEAM = BA88US33G6; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Server Box"; @@ -618,7 +618,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.0.822; + MARKETING_VERSION = 1.0.824; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "Server Box"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -638,7 +638,7 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application"; CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 822; + CURRENT_PROJECT_VERSION = 824; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=macosx*]" = BA88US33G6; INFOPLIST_FILE = Runner/Info.plist; @@ -649,7 +649,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.0.822; + MARKETING_VERSION = 1.0.824; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "Server Box"; PROVISIONING_PROFILE_SPECIFIER = "";