Updated onboarding, reformatted files, improved referenced documents view, updated error handling

This commit is contained in:
Anton Stubenbord
2022-11-03 22:15:36 +01:00
parent 2f2312d5f3
commit 40133b6e0e
117 changed files with 1788 additions and 1021 deletions

View File

@@ -13,10 +13,12 @@ class ClientCertificateFormField extends StatefulWidget {
const ClientCertificateFormField({Key? key}) : super(key: key);
@override
State<ClientCertificateFormField> createState() => _ClientCertificateFormFieldState();
State<ClientCertificateFormField> createState() =>
_ClientCertificateFormFieldState();
}
class _ClientCertificateFormFieldState extends State<ClientCertificateFormField> {
class _ClientCertificateFormFieldState
extends State<ClientCertificateFormField> {
File? _selectedFile;
@override
Widget build(BuildContext context) {
@@ -28,14 +30,17 @@ class _ClientCertificateFormFieldState extends State<ClientCertificateFormField>
}
assert(_selectedFile != null);
if (_selectedFile?.path.split(".").last != 'pfx') {
return S.of(context).loginPageClientCertificateSettingInvalidFileFormatValidationText;
return S
.of(context)
.loginPageClientCertificateSettingInvalidFileFormatValidationText;
}
return null;
},
builder: (field) {
return ExpansionTile(
title: Text(S.of(context).loginPageClientCertificateSettingLabel),
subtitle: Text(S.of(context).loginPageClientCertificateSettingDescriptionText),
subtitle: Text(
S.of(context).loginPageClientCertificateSettingDescriptionText),
children: [
InputDecorator(
decoration: InputDecoration(
@@ -69,7 +74,9 @@ class _ClientCertificateFormFieldState extends State<ClientCertificateFormField>
onChanged: (value) => field.didChange(
field.value?.copyWith(passphrase: value),
),
label: S.of(context).loginPageClientCertificatePassphraseLabel,
label: S
.of(context)
.loginPageClientCertificatePassphraseLabel,
).padded(),
] else
...[]
@@ -90,8 +97,9 @@ class _ClientCertificateFormFieldState extends State<ClientCertificateFormField>
setState(() {
_selectedFile = file;
});
final changedValue = field.value?.copyWith(bytes: file.readAsBytesSync()) ??
ClientCertificate(bytes: file.readAsBytesSync());
final changedValue =
field.value?.copyWith(bytes: file.readAsBytesSync()) ??
ClientCertificate(bytes: file.readAsBytesSync());
field.didChange(changedValue);
}
}

View File

@@ -15,10 +15,12 @@ class ObscuredInputTextFormField extends StatefulWidget {
});
@override
State<ObscuredInputTextFormField> createState() => _ObscuredInputTextFormFieldState();
State<ObscuredInputTextFormField> createState() =>
_ObscuredInputTextFormFieldState();
}
class _ObscuredInputTextFormFieldState extends State<ObscuredInputTextFormField> {
class _ObscuredInputTextFormFieldState
extends State<ObscuredInputTextFormField> {
bool _showPassword = false;
final FocusNode _passwordFocusNode = FocusNode();

View File

@@ -62,7 +62,8 @@ class _ServerAddressFormFieldState extends State<ServerAddressFormField> {
}
//https://stackoverflow.com/questions/49648022/check-whether-there-is-an-internet-connection-available-on-flutter-app
setState(() => _reachabilityStatus = ReachabilityStatus.testing);
final isReachable = await getIt<ConnectivityStatusService>().isServerReachable(address);
final isReachable =
await getIt<ConnectivityStatusService>().isServerReachable(address);
if (isReachable) {
setState(() => _reachabilityStatus = ReachabilityStatus.reachable);
} else {

View File

@@ -1,17 +1,18 @@
import 'package:flutter/material.dart';
import 'package:flutter_form_builder/flutter_form_builder.dart';
import 'package:form_builder_validators/form_builder_validators.dart';
import 'package:paperless_mobile/extensions/flutter_extensions.dart';
import 'package:paperless_mobile/features/login/model/user_credentials.model.dart';
import 'package:paperless_mobile/features/login/view/widgets/password_text_field.dart';
import 'package:paperless_mobile/generated/l10n.dart';
import 'package:form_builder_validators/form_builder_validators.dart';
class UserCredentialsFormField extends StatefulWidget {
static const fkCredentials = 'credentials';
const UserCredentialsFormField({Key? key}) : super(key: key);
@override
State<UserCredentialsFormField> createState() => _UserCredentialsFormFieldState();
State<UserCredentialsFormField> createState() =>
_UserCredentialsFormFieldState();
}
class _UserCredentialsFormFieldState extends State<UserCredentialsFormField> {
@@ -28,7 +29,8 @@ class _UserCredentialsFormFieldState extends State<UserCredentialsFormField> {
// USERNAME
autocorrect: false,
onChanged: (username) => field.didChange(
field.value?.copyWith(username: username) ?? UserCredentials(username: username),
field.value?.copyWith(username: username) ??
UserCredentials(username: username),
),
validator: FormBuilderValidators.required(
errorText: S.of(context).loginPageUsernameValidatorMessageText,
@@ -41,7 +43,8 @@ class _UserCredentialsFormFieldState extends State<UserCredentialsFormField> {
ObscuredInputTextFormField(
label: S.of(context).loginPagePasswordFieldLabel,
onChanged: (password) => field.didChange(
field.value?.copyWith(password: password) ?? UserCredentials(password: password),
field.value?.copyWith(password: password) ??
UserCredentials(password: password),
),
validator: FormBuilderValidators.required(
errorText: S.of(context).loginPagePasswordValidatorMessageText,