diff --git a/web/repertory/lib/main.dart b/web/repertory/lib/main.dart index 8c12fee2..4dc28f31 100644 --- a/web/repertory/lib/main.dart +++ b/web/repertory/lib/main.dart @@ -76,26 +76,62 @@ class MyHomePage extends StatefulWidget { class _MyHomePageState extends State { bool _allowAdd = true; - String? _apiAuth; + String? _apiPassword; String? _apiPort; String? _bucket; String? _encryptionToken; String? _hostNameOrIp; String _mountType = 'Encrypt'; - String _mountName = ''; + String _mountName = ""; String? _path; void _resetData() { - _apiAuth = null; + _apiPassword = null; _apiPort = null; _bucket = null; _encryptionToken = null; _hostNameOrIp = null; - _mountName = ''; + _mountName = ""; _mountType = 'Encrypt'; _path = null; } + void _updateData(String name, String? value) { + switch (name) { + case 'ApiPassword': + _apiPassword = value ?? ''; + return; + + case 'ApiPort': + _apiPort = value ?? ''; + return; + + case 'Bucket': + _bucket = value ?? ''; + return; + + case 'EncryptionToken': + _encryptionToken = value ?? ''; + return; + + case 'HostNameOrIp': + _hostNameOrIp = value ?? ''; + return; + + case 'Name': + _mountName = value ?? ''; + return; + + case 'Provider': + _mountType = value ?? 'Encrypt'; + return; + + case 'Path': + _path = value ?? ''; + return; + } + } + @override Widget build(context) { return Scaffold( @@ -118,20 +154,7 @@ class _MyHomePageState extends State { builder: (_, MountList mountList, __) { return AddMountWidget( mountType: _mountType, - onApiAuthChanged: (apiAuth) => _apiAuth = apiAuth, - onApiPortChanged: (apiPort) => _apiPort = apiPort, - onBucketChanged: (bucket) => _bucket = bucket, - onEncryptionTokenChanged: - (encryptionToken) => - _encryptionToken = encryptionToken, - onHostNameOrIpChanged: - (hostNameOrIp) => - _hostNameOrIp = hostNameOrIp, - onNameChanged: - (mountName) => _mountName = mountName ?? '', - onPathChanged: (path) => _path = path, - onTypeChanged: - (mountType) => _mountType = mountType ?? 'S3', + onDataChanged: _updateData, ); }, ), @@ -152,7 +175,7 @@ class _MyHomePageState extends State { .add( _mountType, _mountName, - apiAuth: _apiAuth, + apiPassword: _apiPassword, apiPort: _apiPort, bucket: _bucket, encryptionToken: _encryptionToken, diff --git a/web/repertory/lib/models/mount_list.dart b/web/repertory/lib/models/mount_list.dart index 0857fd21..b0792d85 100644 --- a/web/repertory/lib/models/mount_list.dart +++ b/web/repertory/lib/models/mount_list.dart @@ -51,7 +51,7 @@ class MountList with ChangeNotifier { Future add( String type, String name, { - String? apiAuth, + String? apiPassword, String? apiPort, String? bucket, String? encryptionToken, @@ -62,7 +62,7 @@ class MountList with ChangeNotifier { Uri.parse( Uri.encodeFull( '${getBaseUri()}/api/v1/add_mount?name=$name&type=$type&bucket=$bucket' - '&path=$path&apiAuth=$apiAuth&apiPort=$apiPort&hostNameOrIp=$hostNameOrIp' + '&path=$path&apiPassword=$apiPassword&apiPort=$apiPort&hostNameOrIp=$hostNameOrIp' '&encryptionToken=$encryptionToken', ), ), diff --git a/web/repertory/lib/widgets/add_mount_widget.dart b/web/repertory/lib/widgets/add_mount_widget.dart index 13e11ead..7448d64d 100644 --- a/web/repertory/lib/widgets/add_mount_widget.dart +++ b/web/repertory/lib/widgets/add_mount_widget.dart @@ -2,26 +2,12 @@ import 'package:flutter/material.dart'; class AddMountWidget extends StatefulWidget { final String mountType; - final void Function(String? newApiAuth) onApiAuthChanged; - final void Function(String? newApiPort) onApiPortChanged; - final void Function(String? newBucket) onBucketChanged; - final void Function(String? newEncryptionToken) onEncryptionTokenChanged; - final void Function(String? newHostNameOrIp) onHostNameOrIpChanged; - final void Function(String? newName) onNameChanged; - final void Function(String? newPath) onPathChanged; - final void Function(String? newType) onTypeChanged; + final void Function(String name, String? value) onDataChanged; const AddMountWidget({ super.key, required this.mountType, - required this.onApiAuthChanged, - required this.onApiPortChanged, - required this.onBucketChanged, - required this.onEncryptionTokenChanged, - required this.onHostNameOrIpChanged, - required this.onNameChanged, - required this.onPathChanged, - required this.onTypeChanged, + required this.onDataChanged, }); @override @@ -40,11 +26,15 @@ class _AddMountWidgetState extends State { super.initState(); } - List _createTextField(String name, onChanged, {String? value}) { + List _createTextField( + String title, + String dataName, { + String? value, + }) { return [ const SizedBox(height: _padding), Text( - name, + title, textAlign: TextAlign.left, style: TextStyle( color: Theme.of(context).colorScheme.onSurface, @@ -53,7 +43,7 @@ class _AddMountWidgetState extends State { ), TextField( decoration: InputDecoration(), - onChanged: onChanged, + onChanged: (value) => widget.onDataChanged(dataName, value), controller: TextEditingController(text: value), ), ]; @@ -62,6 +52,7 @@ class _AddMountWidgetState extends State { @override Widget build(BuildContext context) { final mountTypeLower = _mountType?.toLowerCase(); + return Column( mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.start, @@ -86,7 +77,7 @@ class _AddMountWidgetState extends State { setState(() { _mountType = value; }); - widget.onTypeChanged(value); + widget.onDataChanged('Provider', value); }, items: _items.map>((item) { @@ -99,34 +90,30 @@ class _AddMountWidgetState extends State { ], ), if (mountTypeLower != 'remote') - ..._createTextField('Configuration Name', widget.onNameChanged), - if (mountTypeLower == 'encrypt') - ..._createTextField('Path', widget.onPathChanged), + ..._createTextField('Configuration Name', 'Name'), + if (mountTypeLower == 'encrypt') ..._createTextField('Path', 'Path'), if (mountTypeLower == 'sia') - ..._createTextField('ApiAuth', widget.onApiAuthChanged), + ..._createTextField('ApiPassword', 'ApiPassword'), if (mountTypeLower == 's3' || mountTypeLower == 'sia') ..._createTextField( 'Bucket', - widget.onBucketChanged, + 'Bucket', value: mountTypeLower == 'sia' ? 'default' : null, ), if (mountTypeLower == 'remote' || mountTypeLower == 'sia') ..._createTextField( 'HostNameOrIp', - widget.onHostNameOrIpChanged, + 'HostNameOrIp', value: 'localhost', ), if (mountTypeLower == 'remote' || mountTypeLower == 'sia') ..._createTextField( 'ApiPort', - widget.onApiPortChanged, + 'ApiPort', value: mountTypeLower == 'sia' ? '9980' : null, ), if (mountTypeLower == 'remote') - ..._createTextField( - 'EncryptionToken', - widget.onEncryptionTokenChanged, - ), + ..._createTextField('EncryptionToken', 'EncryptionToken'), ], ); }