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

@@ -6,7 +6,6 @@ import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/features/logging/data/logger.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/repository/label_repository_state.dart';
import 'package:paperless_mobile/core/service/connectivity_status_service.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';
@@ -37,7 +36,7 @@ class InboxCubit extends HydratedCubit<InboxState>
this._labelRepository,
this.notifier,
this.connectivityStatusService,
) : super(InboxState(labels: _labelRepository.state)) {
) : super(const InboxState()) {
notifier.addListener(
this,
onDeleted: remove,
@@ -62,12 +61,6 @@ class InboxCubit extends HydratedCubit<InboxState>
}
},
);
_labelRepository.addListener(
this,
onChanged: (labels) {
emit(state.copyWith(labels: labels));
},
);
}
@override
@@ -112,7 +105,7 @@ class InboxCubit extends HydratedCubit<InboxState>
if (inboxTags.isEmpty) {
// no inbox tags = no inbox items.
return emit(
return emit(
state.copyWith(
hasLoaded: true,
value: [],
@@ -256,7 +249,6 @@ class InboxCubit extends HydratedCubit<InboxState>
@override
Future<void> close() {
_labelRepository.removeListener(this);
return super.close();
}

View File

@@ -4,8 +4,6 @@ part of 'inbox_cubit.dart';
class InboxState extends DocumentPagingState {
final Iterable<int> inboxTags;
final LabelRepositoryState labels;
final int itemsInInboxCount;
@JsonKey()
@@ -19,7 +17,6 @@ class InboxState extends DocumentPagingState {
this.inboxTags = const [],
this.isHintAcknowledged = false,
this.itemsInInboxCount = 0,
this.labels = const LabelRepositoryState(),
});
@override
@@ -32,7 +29,6 @@ class InboxState extends DocumentPagingState {
documents,
isHintAcknowledged,
itemsInInboxCount,
labels,
];
InboxState copyWith({
@@ -42,7 +38,6 @@ class InboxState extends DocumentPagingState {
List<PagedSearchResult<DocumentModel>>? value,
DocumentFilter? filter,
bool? isHintAcknowledged,
LabelRepositoryState? labels,
Map<int, FieldSuggestions>? suggestions,
int? itemsInInboxCount,
}) {
@@ -52,7 +47,6 @@ class InboxState extends DocumentPagingState {
value: value ?? super.value,
inboxTags: inboxTags ?? this.inboxTags,
isHintAcknowledged: isHintAcknowledged ?? this.isHintAcknowledged,
labels: labels ?? this.labels,
filter: filter ?? super.filter,
itemsInInboxCount: itemsInInboxCount ?? this.itemsInInboxCount,
);

View File

@@ -4,6 +4,8 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/core/database/tables/local_user_account.dart';
import 'package:paperless_mobile/core/extensions/document_extensions.dart';
import 'package:paperless_mobile/core/repository/label_repository.dart';
import 'package:paperless_mobile/core/util/lambda_utils.dart';
import 'package:paperless_mobile/core/widgets/shimmer_placeholder.dart';
import 'package:paperless_mobile/core/workarounds/colored_chip.dart';
import 'package:paperless_mobile/core/extensions/flutter_extensions.dart';
@@ -148,6 +150,7 @@ class _InboxItemState extends State<InboxItem> {
@override
Widget build(BuildContext context) {
final labelRepository = context.read<LabelRepository>();
return BlocBuilder<InboxCubit, InboxState>(
builder: (context, state) {
return GestureDetector(
@@ -193,7 +196,7 @@ class _InboxItemState extends State<InboxItem> {
?.fontSize,
),
LabelText<Correspondent>(
label: state.labels.correspondents[
label: labelRepository.correspondents[
widget.document.correspondent],
style: Theme.of(context).textTheme.bodyMedium,
placeholder: "-",
@@ -208,7 +211,7 @@ class _InboxItemState extends State<InboxItem> {
?.fontSize,
),
LabelText<DocumentType>(
label: state.labels.documentTypes[
label: labelRepository.documentTypes[
widget.document.documentType],
style: Theme.of(context).textTheme.bodyMedium,
placeholder: "-",
@@ -217,8 +220,8 @@ class _InboxItemState extends State<InboxItem> {
const Spacer(),
TagsWidget(
tags: widget.document.tags
.map((e) => state.labels.tags[e])
.whereNot((e) => e == null)
.map((e) => labelRepository.tags[e])
.where(isNotNull)
.toList()
.cast<Tag>(),
isClickable: false,