fix: Add custom fields, translations, add app logs to login routes

This commit is contained in:
Anton Stubenbord
2023-12-10 12:48:32 +01:00
parent 5e5e5d2df3
commit 9f6b95f506
102 changed files with 2399 additions and 1088 deletions

View File

@@ -3,6 +3,7 @@ import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/core/notifier/document_changed_notifier.dart';
import 'package:paperless_mobile/core/repository/label_repository.dart';
import 'package:paperless_mobile/core/service/connectivity_status_service.dart';
import 'package:paperless_mobile/features/logging/data/logger.dart';
import 'package:paperless_mobile/features/paged_document_view/cubit/document_paging_bloc_mixin.dart';
import 'package:paperless_mobile/features/paged_document_view/cubit/paged_documents_state.dart';
@@ -17,15 +18,12 @@ class SimilarDocumentsCubit extends Cubit<SimilarDocumentsState>
@override
final PaperlessDocumentsApi api;
final LabelRepository _labelRepository;
@override
final DocumentChangedNotifier notifier;
SimilarDocumentsCubit(
this.api,
this.notifier,
this._labelRepository,
this.connectivityStatusService, {
required this.documentId,
}) : super(const SimilarDocumentsState(filter: DocumentFilter())) {
@@ -39,19 +37,30 @@ class SimilarDocumentsCubit extends Cubit<SimilarDocumentsState>
@override
Future<void> initialize() async {
if (!state.hasLoaded) {
await updateFilter(
filter: state.filter.copyWith(
moreLike: () => documentId,
sortField: SortField.score,
),
);
try {
await updateFilter(
filter: state.filter.copyWith(
moreLike: () => documentId,
sortField: SortField.score,
),
);
emit(state.copyWith(error: null));
} on PaperlessApiException catch (e, stackTrace) {
logger.fe(
"An error occurred while loading similar documents for document $documentId",
className: "SimilarDocumentsCubit",
methodName: "initialize",
error: e.details,
stackTrace: stackTrace,
);
emit(state.copyWith(error: e.code));
}
}
}
@override
Future<void> close() {
notifier.removeListener(this);
_labelRepository.removeListener(this);
return super.close();
}

View File

@@ -1,19 +1,22 @@
part of 'similar_documents_cubit.dart';
class SimilarDocumentsState extends DocumentPagingState {
final ErrorCode? error;
const SimilarDocumentsState({
required super.filter,
super.hasLoaded,
super.isLoading,
super.value,
this.error,
});
@override
List<Object> get props => [
List<Object?> get props => [
filter,
hasLoaded,
isLoading,
value,
error,
];
@override
@@ -36,12 +39,14 @@ class SimilarDocumentsState extends DocumentPagingState {
bool? isLoading,
List<PagedSearchResult<DocumentModel>>? value,
DocumentFilter? filter,
ErrorCode? error,
}) {
return SimilarDocumentsState(
hasLoaded: hasLoaded ?? this.hasLoaded,
isLoading: isLoading ?? this.isLoading,
value: value ?? this.value,
filter: filter ?? this.filter,
error: error,
);
}
}

View File

@@ -3,6 +3,8 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/core/bloc/connectivity_cubit.dart';
import 'package:paperless_mobile/core/extensions/document_extensions.dart';
import 'package:paperless_mobile/core/extensions/flutter_extensions.dart';
import 'package:paperless_mobile/core/translation/error_code_localization_mapper.dart';
import 'package:paperless_mobile/core/widgets/offline_widget.dart';
import 'package:paperless_mobile/features/documents/view/widgets/adaptive_documents_view.dart';
import 'package:paperless_mobile/features/paged_document_view/view/document_paging_view_mixin.dart';
@@ -49,6 +51,16 @@ class _SimilarDocumentsViewState extends State<SimilarDocumentsView>
child: OfflineWidget(),
);
}
if (state.error != null) {
return SliverFillRemaining(
child: Center(
child: Text(
translateError(context, state.error!),
textAlign: TextAlign.center,
),
).padded(),
);
}
if (state.hasLoaded &&
!state.isLoading &&
state.documents.isEmpty) {