Signed-off-by: Shan Shaji <s.shaji at proxmox.com>
---
lib/proxmox_login_form.dart | 255 ++++++++++++++++++------------------
1 file changed, 128 insertions(+), 127 deletions(-)
diff --git a/lib/proxmox_login_form.dart b/lib/proxmox_login_form.dart
index 30f2ef8..67febab 100644
--- a/lib/proxmox_login_form.dart
+++ b/lib/proxmox_login_form.dart
@@ -304,150 +304,151 @@ class _ProxmoxLoginPageState extends State<ProxmoxLoginPage> {
),
),
child: Scaffold(
- backgroundColor: ProxmoxColors.supportBlue,
- body: SafeArea(
- child: Stack(
- children: [
- SingleChildScrollView(
- child: ConstrainedBox(
- constraints: BoxConstraints.tightFor(
- height: MediaQuery.sizeOf(context).height -
- MediaQuery.viewPaddingOf(context).bottom -
- MediaQuery.viewPaddingOf(context).top,
- ),
- child: Padding(
- padding: EdgeInsets.symmetric(
- horizontal: MediaQuery.maybeOrientationOf(context) ==
- Orientation.portrait
- ? 12
- : 8,
+ backgroundColor: ProxmoxColors.supportBlue,
+ body: SafeArea(
+ child: Stack(
+ children: [
+ SingleChildScrollView(
+ child: ConstrainedBox(
+ constraints: BoxConstraints.tightFor(
+ height: MediaQuery.sizeOf(context).height -
+ MediaQuery.viewPaddingOf(context).bottom -
+ MediaQuery.viewPaddingOf(context).top,
),
- child: FutureBuilder<List<PveAccessDomainModel?>?>(
- future: _accessDomains,
- builder: (context, snapshot) {
- return Form(
- key: _formKey,
- onChanged: () {
- setState(() {
- _submitButtonEnabled =
- _formKey.currentState!.validate();
- });
- },
- child: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Expanded(
- child: Align(
+ child: Padding(
+ padding: EdgeInsets.symmetric(
+ horizontal: MediaQuery.maybeOrientationOf(context) ==
+ Orientation.portrait
+ ? 12
+ : 8,
+ ),
+ child: FutureBuilder<List<PveAccessDomainModel?>?>(
+ future: _accessDomains,
+ builder: (context, snapshot) {
+ return Form(
+ key: _formKey,
+ onChanged: () {
+ setState(() {
+ _submitButtonEnabled =
+ _formKey.currentState!.validate();
+ });
+ },
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ Expanded(
+ child: Align(
alignment: Alignment.center,
child: Image.asset(
'assets/images/proxmox_logo_symbol_wordmark.png',
package: 'proxmox_login_manager',
),
- )
- ),
- ProxmoxLoginForm(
- originController: _originController,
- originValidator: (value) {
- if (value == null || value.isEmpty) {
- return 'Please enter origin';
- }
- try {
- normalizeUrl(value);
- return null;
- } on FormatException catch (_) {
- return 'Invalid URI';
- } on Exception catch (e) {
- return 'Invalid URI: $e';
- }
- },
- usernameController: _usernameController,
- passwordController: _passwordController,
- accessDomains: snapshot.data,
- selectedDomain: _selectedDomain,
- onSavePasswordChanged: (value) {
- _savePasswordCB = value;
- },
- canSavePassword: _canSavePassword,
- passwordSaved: widget.password != null,
- onDomainChanged: (value) {
- setState(() {
- _selectedDomain = value;
- });
- },
- onOriginSubmitted: () {
- final isValid =
- _formKey.currentState!.validate();
- setState(() {
- _submitButtonEnabled = isValid;
- });
- if (isValid) {
+ )),
+ ProxmoxLoginForm(
+ originController: _originController,
+ originValidator: (value) {
+ if (value == null || value.isEmpty) {
+ return 'Please enter origin';
+ }
+ try {
+ normalizeUrl(value);
+ return null;
+ } on FormatException catch (_) {
+ return 'Invalid URI';
+ } on Exception catch (e) {
+ return 'Invalid URI: $e';
+ }
+ },
+ usernameController: _usernameController,
+ passwordController: _passwordController,
+ accessDomains: snapshot.data,
+ selectedDomain: _selectedDomain,
+ onSavePasswordChanged: (value) {
+ _savePasswordCB = value;
+ },
+ canSavePassword: _canSavePassword,
+ passwordSaved: widget.password != null,
+ onDomainChanged: (value) {
setState(() {
- _accessDomains = _getAccessDomains();
+ _selectedDomain = value;
});
- }
- },
- onPasswordSubmitted: _submitButtonEnabled
- ? () {
- final isValid =
- _formKey.currentState!.validate();
- setState(() {
- _submitButtonEnabled = isValid;
- });
- if (isValid) {
- _onLoginButtonPressed();
+ },
+ onOriginSubmitted: () {
+ final isValid =
+ _formKey.currentState!.validate();
+ setState(() {
+ _submitButtonEnabled = isValid;
+ });
+ if (isValid) {
+ setState(() {
+ _accessDomains = _getAccessDomains();
+ });
+ }
+ },
+ onPasswordSubmitted: _submitButtonEnabled
+ ? () {
+ final isValid = _formKey
+ .currentState!
+ .validate();
+ setState(() {
+ _submitButtonEnabled = isValid;
+ });
+ if (isValid) {
+ _onLoginButtonPressed();
+ }
}
- }
- : null,
- ),
- Expanded(
- child: Align(
- alignment: Alignment.bottomCenter,
- child: SizedBox(
- width: MediaQuery.of(context).size.width,
- child: TextButton(
- onPressed: _submitButtonEnabled
- ? () {
- final isValid = _formKey
- .currentState!
- .validate();
- setState(() {
- _submitButtonEnabled =
- isValid;
- });
- if (isValid) {
- if (snapshot.hasData) {
- _onLoginButtonPressed();
- } else {
- setState(() {
- _accessDomains =
- _getAccessDomains();
- });
+ : null,
+ ),
+ Expanded(
+ child: Align(
+ alignment: Alignment.bottomCenter,
+ child: SizedBox(
+ width:
+ MediaQuery.of(context).size.width,
+ child: TextButton(
+ onPressed: _submitButtonEnabled
+ ? () {
+ final isValid = _formKey
+ .currentState!
+ .validate();
+ setState(() {
+ _submitButtonEnabled =
+ isValid;
+ });
+ if (isValid) {
+ if (snapshot.hasData) {
+ _onLoginButtonPressed();
+ } else {
+ setState(() {
+ _accessDomains =
+ _getAccessDomains();
+ });
+ }
}
}
- }
- : null,
- child: const Text('Continue'),
+ : null,
+ child: const Text('Continue'),
+ ),
),
),
),
- ),
- ],
- ),
- );
- }),
+ ],
+ ),
+ );
+ }),
+ ),
),
),
- ),
- IconButton(
- icon: const Icon(Icons.close),
- tooltip: "Close",
- onPressed: () => Navigator.of(context).pop(),
+ IconButton(
+ icon: const Icon(Icons.close),
+ tooltip: "Close",
+ onPressed: () => Navigator.of(context).pop(),
+ ),
+ if (_progressModel.inProgress > 0)
+ ProxmoxProgressOverlay(message: _progressModel.message),
+ ],
),
- if (_progressModel.inProgress > 0)
- ProxmoxProgressOverlay(message: _progressModel.message),
- ],
- ),
- )),
+ )),
);
}
--
2.50.1