From 8953f6319775d188ca066fdc7c0f461e75975611 Mon Sep 17 00:00:00 2001 From: lollipopkit Date: Sat, 1 Jun 2024 17:10:22 +0800 Subject: [PATCH] opt.: pve --- lib/data/provider/pve.dart | 33 ++++++++++--------- lib/view/page/server/edit.dart | 24 ++++++++++---- pubspec.lock | 60 +++++++++++++++++++--------------- pubspec.yaml | 4 +-- 4 files changed, 72 insertions(+), 49 deletions(-) diff --git a/lib/data/provider/pve.dart b/lib/data/provider/pve.dart index dbb4632d..31b1c44e 100644 --- a/lib/data/provider/pve.dart +++ b/lib/data/provider/pve.dart @@ -40,7 +40,7 @@ final class PveProvider extends ChangeNotifier { final err = ValueNotifier(null); final connected = Completer(); - late bool _ignoreCert = spi.custom?.pveIgnoreCert ?? false; + late final _ignoreCert = spi.custom?.pveIgnoreCert ?? false; late final session = Dio() ..httpClientAdapter = IOHttpClientAdapter( createHttpClient: () { @@ -64,11 +64,11 @@ final class PveProvider extends ChangeNotifier { try { await _forward(); await _login(); - await _release; + await _getRelease(); } on PveErr { err.value = l10n.pveLoginFailed; - } catch (e) { - Loggers.app.warning('PVE init failed', e); + } catch (e, s) { + Loggers.app.warning('PVE init failed', e, s); err.value = e.toString(); } finally { connected.complete(); @@ -89,7 +89,7 @@ final class PveProvider extends ChangeNotifier { final newUrl = Uri.parse(addr) .replace(host: 'localhost', port: _localPort) .toString(); - print('Forwarding $newUrl to $addr'); + debugPrint('Forwarding $newUrl to $addr'); } } @@ -113,15 +113,18 @@ final class PveProvider extends ChangeNotifier { } Future _login() async { - final resp = await session.post('$addr/api2/extjs/access/ticket', - data: { - 'username': spi.user, - 'password': spi.pwd, - 'realm': 'pam', - 'new-format': '1' - }, - options: Options( - headers: {HttpHeaders.contentTypeHeader: Headers.jsonContentType})); + final resp = await session.post( + '$addr/api2/extjs/access/ticket', + data: { + 'username': spi.user, + 'password': spi.pwd, + 'realm': 'pam', + 'new-format': '1' + }, + options: Options( + headers: {HttpHeaders.contentTypeHeader: Headers.jsonContentType}, + ), + ); try { final ticket = resp.data['data']['ticket']; session.options.headers['CSRFPreventionToken'] = @@ -133,7 +136,7 @@ final class PveProvider extends ChangeNotifier { } /// Returns true if the PVE version is 8.0 or later - Future get _release async { + Future _getRelease() async { final resp = await session.get('$addr/api2/extjs/version'); final version = resp.data['data']['release'] as String?; if (version != null) { diff --git a/lib/view/page/server/edit.dart b/lib/view/page/server/edit.dart index 6d7e8f93..4e925a9b 100644 --- a/lib/view/page/server/edit.dart +++ b/lib/view/page/server/edit.dart @@ -403,15 +403,27 @@ class _ServerEditPageState extends State { } List _buildPVEs() { + const addr = 'https://127.0.0.1:8006'; return [ const Text('PVE', style: UIs.text13Grey), UIs.height7, - Input( - controller: _pveAddrCtrl, - type: TextInputType.url, - icon: MingCute.web_line, - label: l10n.addr, - hint: 'https://example.com:8006', + Autocomplete( + optionsBuilder: (val) { + final v = val.text; + if (v.startsWith(addr.substring(0, v.length))) { + return [addr]; + } + return []; + }, + onSelected: (val) => _pveAddrCtrl.text = val, + fieldViewBuilder: (_, ctrl, node, __) => Input( + controller: ctrl, + type: TextInputType.url, + icon: MingCute.web_line, + node: node, + label: l10n.addr, + hint: addr, + ), ), ListTile( leading: const Padding( diff --git a/pubspec.lock b/pubspec.lock index e321e7c8..791485bd 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -45,10 +45,10 @@ packages: dependency: transitive description: name: archive - sha256: ecf4273855368121b1caed0d10d4513c7241dfc813f7d3c8933b36622ae9b265 + sha256: "6bd38d335f0954f5fad9c79e614604fbf03a0e5b975923dd001b6ea965ef5b4b" url: "https://pub.dev" source: hosted - version: "3.5.1" + version: "3.6.0" args: dependency: transitive description: @@ -101,10 +101,10 @@ packages: dependency: transitive description: name: build_daemon - sha256: "0343061a33da9c5810b2d6cee51945127d8f4c060b7fbdd9d54917f0a3feaaa1" + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" url: "https://pub.dev" source: hosted - version: "4.0.1" + version: "4.0.2" build_resolvers: dependency: transitive description: @@ -117,10 +117,10 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" + sha256: "1414d6d733a85d8ad2f1dfcb3ea7945759e35a123cb99ccfac75d0758f75edfa" url: "https://pub.dev" source: hosted - version: "2.4.9" + version: "2.4.10" build_runner_core: dependency: transitive description: @@ -231,10 +231,10 @@ packages: dependency: transitive description: name: countly_flutter - sha256: "829853407896350bdb4881ddc92326cf87b8d70ad92a78c4775cd05666d5a965" + sha256: "366f0c7769b998a06579235b0afd3797bc0bc7c8ce80bb673fca59c217f66012" url: "https://pub.dev" source: hosted - version: "24.4.0" + version: "24.4.1" cross_file: dependency: transitive description: @@ -392,8 +392,8 @@ packages: dependency: "direct dev" description: path: "." - ref: "8e1e3500fac2a39a43bed68aeb3cbdf792a1bd35" - resolved-ref: "8e1e3500fac2a39a43bed68aeb3cbdf792a1bd35" + ref: "v1.0.11" + resolved-ref: ead58f6e985600c03cd27fb6563c10b6afa2d640 url: "https://github.com/lollipopkit/fl_build.git" source: git version: "1.0.0" @@ -409,8 +409,8 @@ packages: dependency: "direct main" description: path: "." - ref: main - resolved-ref: "4a3ac8cec9b39a08790101e45ff80a42c6dfd36a" + ref: "v1.0.24" + resolved-ref: "3c95d07aa27446f1c05baf8fa02bd2e7392f52d0" url: "https://github.com/lollipopkit/fl_lib" source: git version: "0.0.1" @@ -500,10 +500,10 @@ packages: dependency: transitive description: name: flutter_markdown_latex - sha256: b07ade84e661a7a2e7b7e59bcfa95e481d38fd8782a8f9f2349a8cb1b056ae89 + sha256: "6902b6774800fd5d7b594fa2080781586f1b851f0964d41bb7fd28c61e3ef2a7" url: "https://pub.dev" source: hosted - version: "0.3.2" + version: "0.3.3" flutter_math_fork: dependency: transitive description: @@ -670,10 +670,10 @@ packages: dependency: transitive description: name: image - sha256: "4c68bfd5ae83e700b5204c1e74451e7bf3cf750e6843c6e158289cf56bda018e" + sha256: "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8" url: "https://pub.dev" source: hosted - version: "4.1.7" + version: "4.2.0" intl: dependency: "direct main" description: @@ -766,10 +766,10 @@ packages: dependency: transitive description: name: local_auth_darwin - sha256: "959145a4cf6f0de745b9ec9ac60101270eb4c5b8b7c2a0470907014adc1c618d" + sha256: e424ebf90d5233452be146d4a7da4bcd7a70278b67791592f3fde1bda8eef9e2 url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.3.1" local_auth_platform_interface: dependency: transitive description: @@ -1166,10 +1166,10 @@ packages: dependency: transitive description: name: shelf_web_socket - sha256: "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1" + sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "2.0.0" shortid: dependency: transitive description: @@ -1307,10 +1307,10 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "360a6ed2027f18b73c8d98e159dda67a61b7f2e0f6ec26e86c3ada33b0621775" + sha256: "17cd5e205ea615e2c6ea7a77323a11712dffa0720a8a90540db57a01347f9ad9" url: "https://pub.dev" source: hosted - version: "6.3.1" + version: "6.3.2" url_launcher_ios: dependency: transitive description: @@ -1463,14 +1463,22 @@ packages: url: "https://pub.dev" source: hosted version: "0.5.1" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "217f49b5213796cb508d6a942a5dc604ce1cb6a0a6b3d8cb3f0c314f0ecea712" + url: "https://pub.dev" + source: hosted + version: "0.1.4" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: "58c6666b342a38816b2e7e50ed0f1e261959630becd4c879c4f26bfa14aa5a42" + sha256: a2d56211ee4d35d9b344d9d4ce60f362e4f5d1aafb988302906bd732bc731276 url: "https://pub.dev" source: hosted - version: "2.4.5" + version: "3.0.0" webdav_client: dependency: transitive description: @@ -1484,10 +1492,10 @@ packages: dependency: transitive description: name: win32 - sha256: "0eaf06e3446824099858367950a813472af675116bf63f008a4c2a75ae13e9cb" + sha256: a79dbe579cb51ecd6d30b17e0cae4e0ea15e2c0e66f69ad4198f22a6789e94f4 url: "https://pub.dev" source: hosted - version: "5.5.0" + version: "5.5.1" win32_registry: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index a090ff15..391f4747 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -52,7 +52,7 @@ dependencies: fl_lib: git: url: https://github.com/lollipopkit/fl_lib - ref: main + ref: v1.0.24 device_info_plus: ^10.1.0 dependency_overrides: @@ -74,7 +74,7 @@ dev_dependencies: # path: ../fl_build git: url: https://github.com/lollipopkit/fl_build.git - ref: 8e1e3500fac2a39a43bed68aeb3cbdf792a1bd35 + ref: v1.0.11 flutter: generate: true