diff --git a/web/repertory/lib/widgets/mount_settings.dart b/web/repertory/lib/widgets/mount_settings.dart index e8dfe5a2..3fb130d0 100644 --- a/web/repertory/lib/widgets/mount_settings.dart +++ b/web/repertory/lib/widgets/mount_settings.dart @@ -18,7 +18,7 @@ class MountSettingsWidget extends StatefulWidget { class _MountSettingsWidgetState extends State { Map? _settings; - void _addBooleanSetting(list, key, value) { + void _addBooleanSetting(list, root, key, value) { list.add( SettingsTile.switchTile( leading: Icon(Icons.check), @@ -26,19 +26,19 @@ class _MountSettingsWidgetState extends State { initialValue: (value as bool), onPressed: (_) { setState(() { - _settings?[key] = !value; + root?[key] = !value; }); }, onToggle: (bool nextValue) { setState(() { - _settings?[key] = nextValue; + root?[key] = nextValue; }); }, ), ); } - void _addIntSetting(list, key, value) { + void _addIntSetting(list, root, key, value) { list.add( SettingsTile.navigation( leading: Icon(Icons.onetwothree), @@ -48,7 +48,7 @@ class _MountSettingsWidgetState extends State { ); } - void _addPasswordSetting(list, String key, value) { + void _addPasswordSetting(list, root, key, value) { list.add( SettingsTile.navigation( leading: Icon(Icons.password), @@ -58,7 +58,7 @@ class _MountSettingsWidgetState extends State { ); } - void _addStringSetting(list, String key, value, icon) { + void _addStringSetting(list, root, key, value, icon) { list.add( SettingsTile.navigation( leading: Icon(icon), @@ -79,44 +79,56 @@ class _MountSettingsWidgetState extends State { _settings?.forEach((key, value) { if (key == "ApiAuth") { - _addPasswordSetting(commonSettings, key, value); + _addPasswordSetting(commonSettings, _settings, key, value); } else if (key == "ApiPort") { - _addIntSetting(commonSettings, key, value); + _addIntSetting(commonSettings, _settings, key, value); } else if (key == "ApiUser") { - _addStringSetting(commonSettings, key, value, Icons.person); + _addStringSetting(commonSettings, _settings, key, value, Icons.person); } else if (key == "DatabaseType") { - _addStringSetting(commonSettings, key, value, Icons.dataset); + _addStringSetting(commonSettings, _settings, key, value, Icons.dataset); } else if (key == "DownloadTimeoutSeconds") { - _addIntSetting(commonSettings, key, value); + _addIntSetting(commonSettings, _settings, key, value); } else if (key == "EnableDownloadTimeout") { - _addBooleanSetting(commonSettings, key, value); + _addBooleanSetting(commonSettings, _settings, key, value); } else if (key == "EnableDriveEvents") { - _addBooleanSetting(commonSettings, key, value); + _addBooleanSetting(commonSettings, _settings, key, value); } else if (key == "EventLevel") { - _addStringSetting(commonSettings, key, value, Icons.event); + _addStringSetting(commonSettings, _settings, key, value, Icons.event); } else if (key == "EvictionDelayMinutes") { - _addIntSetting(commonSettings, key, value); + _addIntSetting(commonSettings, _settings, key, value); } else if (key == "EvictionUseAccessedTime") { - _addBooleanSetting(commonSettings, key, value); + _addBooleanSetting(commonSettings, _settings, key, value); } else if (key == "MaxCacheSizeBytes") { - _addIntSetting(commonSettings, key, value); + _addIntSetting(commonSettings, _settings, key, value); } else if (key == "MaxUploadCount") { - _addIntSetting(commonSettings, key, value); + _addIntSetting(commonSettings, _settings, key, value); } else if (key == "OnlineCheckRetrySeconds") { - _addIntSetting(commonSettings, key, value); + _addIntSetting(commonSettings, _settings, key, value); } else if (key == "PreferredDownloadType") { - _addStringSetting(commonSettings, key, value, Icons.download); + _addStringSetting( + commonSettings, + _settings, + key, + value, + Icons.download, + ); } else if (key == "RetryReadCount") { - _addIntSetting(commonSettings, key, value); + _addIntSetting(commonSettings, _settings, key, value); } else if (key == "RingBufferFileSize") { - _addIntSetting(commonSettings, key, value); + _addIntSetting(commonSettings, _settings, key, value); } else if (key == "EncryptConfig") { value.forEach((subKey, subValue) { if (subKey == "EncryptionToken") { - _addPasswordSetting(encryptConfigSettings, subKey, subValue); + _addPasswordSetting( + encryptConfigSettings, + _settings?[key], + subKey, + subValue, + ); } else if (subKey == "Path") { _addStringSetting( encryptConfigSettings, + _settings?[key], subKey, subValue, Icons.folder, @@ -128,17 +140,29 @@ class _MountSettingsWidgetState extends State { if (subKey == "AgentString") { _addStringSetting( hostConfigSettings, + _settings?[key], subKey, subValue, Icons.support_agent, ); } else if (subKey == "ApiPassword") { - _addPasswordSetting(hostConfigSettings, subKey, subValue); + _addPasswordSetting( + hostConfigSettings, + _settings?[key], + subKey, + subValue, + ); } else if (subKey == "ApiPort") { - _addIntSetting(hostConfigSettings, subKey, subValue); + _addIntSetting( + hostConfigSettings, + _settings?[key], + subKey, + subValue, + ); } else if (subKey == "ApiUser") { _addStringSetting( hostConfigSettings, + _settings?[key], subKey, subValue, Icons.person, @@ -146,6 +170,7 @@ class _MountSettingsWidgetState extends State { } else if (subKey == "HostNameOrIp") { _addStringSetting( hostConfigSettings, + _settings?[key], subKey, subValue, Icons.computer, @@ -153,48 +178,123 @@ class _MountSettingsWidgetState extends State { } else if (subKey == "Path") { _addStringSetting( hostConfigSettings, + _settings?[key], subKey, subValue, Icons.route, ); } else if (subKey == "Protocol") { - _addStringSetting(hostConfigSettings, subKey, subValue, Icons.http); + _addStringSetting( + hostConfigSettings, + _settings?[key], + subKey, + subValue, + Icons.http, + ); } else if (subKey == "TimeoutMs") { - _addIntSetting(hostConfigSettings, subKey, subValue); + _addIntSetting( + hostConfigSettings, + _settings?[key], + subKey, + subValue, + ); } }); } else if (key == "RemoteMount") { value.forEach((subKey, subValue) { if (subKey == "ApiPort") { - _addIntSetting(remoteMountSettings, subKey, subValue); + _addIntSetting( + remoteMountSettings, + _settings?[key], + subKey, + subValue, + ); } else if (subKey == "ClientPoolSize") { - _addIntSetting(remoteMountSettings, subKey, subValue); + _addIntSetting( + remoteMountSettings, + _settings?[key], + subKey, + subValue, + ); } else if (subKey == "Enable") { - _addBooleanSetting(remoteMountSettings, subKey, subValue); + _addBooleanSetting( + remoteMountSettings, + _settings?[key], + subKey, + subValue, + ); } else if (subKey == "EncryptionToken") { - _addPasswordSetting(remoteMountSettings, subKey, subValue); + _addPasswordSetting( + remoteMountSettings, + _settings?[key], + subKey, + subValue, + ); } }); } else if (key == "S3Config") { value.forEach((subKey, subValue) { if (subKey == "AccessKey") { - _addPasswordSetting(s3ConfigSettings, subKey, subValue); + _addPasswordSetting( + s3ConfigSettings, + _settings?[key], + subKey, + subValue, + ); } else if (subKey == "Bucket") { - _addStringSetting(s3ConfigSettings, subKey, subValue, Icons.folder); + _addStringSetting( + s3ConfigSettings, + _settings?[key], + subKey, + subValue, + Icons.folder, + ); } else if (subKey == "EncryptionToken") { - _addPasswordSetting(s3ConfigSettings, subKey, subValue); + _addPasswordSetting( + s3ConfigSettings, + _settings?[key], + subKey, + subValue, + ); } else if (subKey == "Region") { - _addStringSetting(s3ConfigSettings, subKey, subValue, Icons.map); + _addStringSetting( + s3ConfigSettings, + _settings?[key], + subKey, + subValue, + Icons.map, + ); } else if (subKey == "SecretKey") { - _addPasswordSetting(s3ConfigSettings, subKey, subValue); + _addPasswordSetting( + s3ConfigSettings, + _settings?[key], + subKey, + subValue, + ); } else if (subKey == "TimeoutMs") { - _addIntSetting(s3ConfigSettings, subKey, subValue); + _addIntSetting(s3ConfigSettings, _settings?[key], subKey, subValue); } else if (subKey == "URL") { - _addStringSetting(s3ConfigSettings, subKey, subValue, Icons.http); + _addStringSetting( + s3ConfigSettings, + _settings?[key], + subKey, + subValue, + Icons.http, + ); } else if (subKey == "UsePathStyle") { - _addBooleanSetting(s3ConfigSettings, subKey, subValue); + _addBooleanSetting( + s3ConfigSettings, + _settings?[key], + subKey, + subValue, + ); } else if (subKey == "UseRegionInURL") { - _addBooleanSetting(s3ConfigSettings, subKey, subValue); + _addBooleanSetting( + s3ConfigSettings, + _settings?[key], + subKey, + subValue, + ); } }); } else if (key == "SiaConfig") { @@ -202,6 +302,7 @@ class _MountSettingsWidgetState extends State { if (subKey == "Bucket") { _addStringSetting( siaConfigSettings, + _settings?[key], subKey, subValue, Icons.folder,