Some visual updates, bugfixes, finished major refactoring!

This commit is contained in:
Anton Stubenbord
2022-12-13 01:17:53 +01:00
parent 2f31d9c053
commit 64c431286e
17 changed files with 256 additions and 126 deletions

View File

@@ -17,7 +17,7 @@ class DocumentUploadCubit extends Cubit<DocumentUploadState> {
final LabelRepository<Correspondent> _correspondentRepository;
final LabelRepository<DocumentType> _documentTypeRepository;
final List<StreamSubscription> _subs = const [];
final List<StreamSubscription> _subs = [];
DocumentUploadCubit({
required LocalVault localVault,

View File

@@ -13,7 +13,11 @@ class DocumentUploadState extends Equatable {
});
@override
List<Object> get props => [];
List<Object> get props => [
tags,
correspondents,
documentTypes,
];
DocumentUploadState copyWith({
Map<int, Tag>? tags,

View File

@@ -156,7 +156,7 @@ class _DocumentsPageState extends State<DocumentsPage> {
pagingController: _pagingController,
hasInternetConnection:
connectivityState == ConnectivityState.connected,
onTagSelected: (int tagId) => _addTagToFilter,
onTagSelected: _addTagToFilter,
);
break;
}

View File

@@ -1,10 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/core/widgets/empty_state.dart';
import 'package:paperless_mobile/extensions/flutter_extensions.dart';
import 'package:paperless_mobile/features/documents/bloc/documents_cubit.dart';
import 'package:paperless_mobile/features/saved_view/cubit/saved_view_cubit.dart';
import 'package:paperless_mobile/generated/l10n.dart';
class DocumentsEmptyState extends StatelessWidget {
@@ -26,7 +24,7 @@ class DocumentsEmptyState extends StatelessWidget {
? TextButton(
onPressed: onReset,
child: Text(
S.of(context).documentsFilterPageResetFilterLabel,
S.of(context).documentsEmptyStateResetFilterLabel,
),
).padded()
: null,

View File

@@ -56,59 +56,60 @@ class _DocumentFilterPanelState extends State<DocumentFilterPanel> {
topLeft: radius,
topRight: radius,
),
child: FormBuilder(
key: _formKey,
child: Column(
children: [
_buildDraggableResetHeader(),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
S.of(context).documentsFilterPageTitle,
style: Theme.of(context).textTheme.titleLarge,
),
TextButton(
onPressed: _onApplyFilter,
child:
Text(S.of(context).documentsFilterPageApplyFilterLabel),
),
],
).padded(),
Expanded(
child: ClipRRect(
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(16.0),
topRight: Radius.circular(16.0),
),
child: ListView(
children: [
Align(
alignment: Alignment.centerLeft,
child: Text(S.of(context).documentsFilterPageSearchLabel),
).paddedOnly(left: 8.0),
_buildQueryFormField().padded(),
Align(
alignment: Alignment.centerLeft,
child:
Text(S.of(context).documentsFilterPageAdvancedLabel),
).padded(),
_buildCreatedDateRangePickerFormField(),
_buildAddedDateRangePickerFormField(),
_buildCorrespondentFormField().padded(),
_buildDocumentTypeFormField().padded(),
_buildStoragePathFormField().padded(),
_buildTagsFormField()
.paddedSymmetrically(horizontal: 8, vertical: 4.0),
// Required in order for the storage path field to be visible when typing
const SizedBox(
height: 150,
),
],
child: Scaffold(
resizeToAvoidBottomInset: true,
body: FormBuilder(
key: _formKey,
child: Column(
children: [
_buildDraggableResetHeader(),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
S.of(context).documentFilterTitle,
style: Theme.of(context).textTheme.titleLarge,
),
TextButton(
onPressed: _onApplyFilter,
child: Text(S.of(context).documentFilterApplyFilterLabel),
),
],
).padded(),
Expanded(
child: ClipRRect(
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(16.0),
topRight: Radius.circular(16.0),
),
child: SingleChildScrollView(
child: Column(
children: [
Align(
alignment: Alignment.centerLeft,
child: Text(S.of(context).documentFilterSearchLabel),
).paddedOnly(left: 8.0),
_buildQueryFormField().padded(),
Align(
alignment: Alignment.centerLeft,
child: Text(
S.of(context).documentFilterAdvancedLabel,
),
).padded(),
_buildCreatedDateRangePickerFormField(),
_buildAddedDateRangePickerFormField(),
_buildCorrespondentFormField().padded(),
_buildDocumentTypeFormField().padded(),
_buildStoragePathFormField().padded(),
_buildTagsFormField()
.paddedSymmetrically(horizontal: 8, vertical: 4.0),
],
).paddedOnly(bottom: 16),
),
),
),
),
],
],
),
),
),
);
@@ -136,7 +137,7 @@ class _DocumentFilterPanelState extends State<DocumentFilterPanel> {
alignment: Alignment.topRight,
child: TextButton.icon(
icon: const Icon(Icons.refresh),
label: Text(S.of(context).documentsFilterPageResetFilterLabel),
label: Text(S.of(context).documentFilterResetLabel),
onPressed: () => _resetFilter(context),
),
),
@@ -208,14 +209,13 @@ class _DocumentFilterPanelState extends State<DocumentFilterPanel> {
late String label;
switch (queryType) {
case QueryType.title:
label = S.of(context).documentsFilterPageQueryOptionsTitleLabel;
label = S.of(context).documentFilterQueryOptionsTitleLabel;
break;
case QueryType.titleAndContent:
label =
S.of(context).documentsFilterPageQueryOptionsTitleAndContentLabel;
label = S.of(context).documentFilterQueryOptionsTitleAndContentLabel;
break;
case QueryType.extended:
label = S.of(context).documentsFilterPageQueryOptionsExtendedLabel;
label = S.of(context).documentFilterQueryOptionsExtendedLabel;
break;
}
@@ -244,7 +244,7 @@ class _DocumentFilterPanelState extends State<DocumentFilterPanel> {
spacer,
ActionChip(
label: Text(
S.of(context).documentsFilterPageDateRangeLastSevenDaysLabel,
S.of(context).documentFilterDateRangeLastSevenDaysLabel,
),
onPressed: () {
_formKey.currentState?.fields[formFieldKey]?.didChange(
@@ -258,7 +258,7 @@ class _DocumentFilterPanelState extends State<DocumentFilterPanel> {
spacer,
ActionChip(
label: Text(
S.of(context).documentsFilterPageDateRangeLastMonthLabel,
S.of(context).documentFilterDateRangeLastMonthLabel,
),
onPressed: () {
final now = DateTime.now();
@@ -276,7 +276,7 @@ class _DocumentFilterPanelState extends State<DocumentFilterPanel> {
spacer,
ActionChip(
label: Text(
S.of(context).documentsFilterPageDateRangeLastThreeMonthsLabel,
S.of(context).documentFilterDateRangeLastThreeMonthsLabel,
),
onPressed: () {
final now = DateTime.now();
@@ -297,7 +297,7 @@ class _DocumentFilterPanelState extends State<DocumentFilterPanel> {
spacer,
ActionChip(
label: Text(
S.of(context).documentsFilterPageDateRangeLastYearLabel,
S.of(context).documentFilterDateRangeLastYearLabel,
),
onPressed: () {
final now = DateTime.now();
@@ -347,9 +347,8 @@ class _DocumentFilterPanelState extends State<DocumentFilterPanel> {
),
format: DateFormat.yMMMd(Localizations.localeOf(context).toString()),
fieldStartLabelText:
S.of(context).documentsFilterPageDateRangeFieldStartLabel,
fieldEndLabelText:
S.of(context).documentsFilterPageDateRangeFieldEndLabel,
S.of(context).documentFilterDateRangeFieldStartLabel,
fieldEndLabelText: S.of(context).documentFilterDateRangeFieldEndLabel,
firstDate: DateTime.fromMicrosecondsSinceEpoch(0),
lastDate: DateTime.now(),
name: fkCreatedAt,
@@ -395,9 +394,8 @@ class _DocumentFilterPanelState extends State<DocumentFilterPanel> {
),
format: DateFormat.yMMMd(),
fieldStartLabelText:
S.of(context).documentsFilterPageDateRangeFieldStartLabel,
fieldEndLabelText:
S.of(context).documentsFilterPageDateRangeFieldEndLabel,
S.of(context).documentFilterDateRangeFieldStartLabel,
fieldEndLabelText: S.of(context).documentFilterDateRangeFieldEndLabel,
firstDate: DateTime.fromMicrosecondsSinceEpoch(0),
lastDate: DateTime.now(),
name: fkAddedAt,

View File

@@ -20,23 +20,21 @@ class QueryTypeFormField extends StatelessWidget {
itemBuilder: (context) => [
PopupMenuItem(
child: ListTile(
title: Text(S
.of(context)
.documentsFilterPageQueryOptionsTitleAndContentLabel),
title: Text(
S.of(context).documentFilterQueryOptionsTitleAndContentLabel),
),
value: QueryType.titleAndContent,
),
PopupMenuItem(
child: ListTile(
title:
Text(S.of(context).documentsFilterPageQueryOptionsTitleLabel),
title: Text(S.of(context).documentFilterQueryOptionsTitleLabel),
),
value: QueryType.title,
),
PopupMenuItem(
child: ListTile(
title: Text(
S.of(context).documentsFilterPageQueryOptionsExtendedLabel),
title:
Text(S.of(context).documentFilterQueryOptionsExtendedLabel),
),
value: QueryType.extended,
),

View File

@@ -51,7 +51,7 @@ class _SortFieldSelectionBottomSheetState
textAlign: TextAlign.start,
),
TextButton(
child: Text(S.of(context).documentsFilterPageApplyFilterLabel),
child: Text(S.of(context).documentFilterApplyFilterLabel),
onPressed: () {
widget.onSubmit(
_currentSortField,

View File

@@ -1,3 +1,5 @@
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_form_builder/flutter_form_builder.dart';
@@ -30,7 +32,8 @@ class AddTagPage extends StatelessWidget {
label: Text(S.of(context).tagColorPropertyLabel),
),
colorPickerType: ColorPickerType.materialPicker,
initialValue: null,
initialValue: Color((Random().nextDouble() * 0xFFFFFF).toInt())
.withOpacity(1.0),
),
FormBuilderCheckbox(
name: Tag.isInboxTagKey,

View File

@@ -6,6 +6,7 @@ import 'package:paperless_mobile/core/bloc/paperless_server_information_state.da
import 'package:paperless_mobile/core/repository/label_repository.dart';
import 'package:paperless_mobile/core/repository/provider/label_repositories_provider.dart';
import 'package:paperless_mobile/core/repository/saved_view_repository.dart';
import 'package:paperless_mobile/core/store/local_vault.dart';
import 'package:paperless_mobile/di_initializer.dart';
import 'package:paperless_mobile/extensions/flutter_extensions.dart';
import 'package:paperless_mobile/features/inbox/bloc/inbox_cubit.dart';
@@ -185,6 +186,8 @@ class InfoDrawer extends StatelessWidget {
onTap: () {
try {
BlocProvider.of<AuthenticationCubit>(context).logout();
getIt<LocalVault>().clear();
BlocProvider.of<ApplicationSettingsCubit>(context).clear();
RepositoryProvider.of<LabelRepository<Tag>>(context).clear();
RepositoryProvider.of<LabelRepository<Correspondent>>(context)
.clear();

View File

@@ -54,8 +54,9 @@ class _TagFormFieldState extends State<TagFormField> {
.isEmpty ||
_textEditingController.text.isEmpty;
});
setState(() =>
_showClearSuffixIcon = _textEditingController.text.isNotEmpty);
setState(
() => _showClearSuffixIcon = _textEditingController.text.isNotEmpty,
);
});
}
@@ -86,6 +87,15 @@ class _TagFormFieldState extends State<TagFormField> {
),
controller: _textEditingController,
),
suggestionsBoxDecoration: SuggestionsBoxDecoration(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16),
side: BorderSide(
color: Theme.of(context).colorScheme.primary,
width: 2.0,
),
),
),
suggestionsCallback: (query) {
final suggestions = widget.selectableOptions.entries
.where(

View File

@@ -1,10 +1,9 @@
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:flutter_form_builder/flutter_form_builder.dart';
import 'package:flutter_typeahead/flutter_typeahead.dart';
import 'package:form_builder_extra_fields/form_builder_extra_fields.dart';
import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/generated/l10n.dart';
import 'package:form_builder_extra_fields/form_builder_extra_fields.dart';
///
/// Form field allowing to select labels (i.e. correspondent, documentType)
@@ -83,7 +82,7 @@ class _LabelFormFieldState<T extends Label, R extends IdQueryParameter>
return FormBuilderTypeAhead<IdQueryParameter>(
enabled: isEnabled,
noItemsFoundBuilder: (context) => Padding(
padding: const EdgeInsets.symmetric(vertical: 8.0),
padding: const EdgeInsets.symmetric(vertical: 8),
child: Text(
S.of(context).labelFormFieldNoItemsFoundText,
textAlign: TextAlign.center,
@@ -93,9 +92,24 @@ class _LabelFormFieldState<T extends Label, R extends IdQueryParameter>
),
initialValue: widget.initialValue ?? widget.queryParameterIdBuilder(null),
name: widget.name,
suggestionsBoxDecoration: SuggestionsBoxDecoration(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16),
side: BorderSide(
color: Theme.of(context).colorScheme.primary,
width: 2.0,
),
),
),
itemBuilder: (context, suggestion) => ListTile(
title: Text(widget.state[suggestion.id]?.name ??
S.of(context).labelNotAssignedText),
title: Text(
widget.state[suggestion.id]?.name ??
S.of(context).labelNotAssignedText,
maxLines: 1,
overflow: TextOverflow.ellipsis,
),
dense: true,
style: ListTileStyle.list,
),
suggestionsCallback: (pattern) {
final List<IdQueryParameter> suggestions = widget.state.entries

View File

@@ -66,15 +66,17 @@ class LabelTabView<T extends Label> extends StatelessWidget {
onRefresh: BlocProvider.of<LabelCubit<T>>(context).reload,
child: ListView(
children: labels
.map((l) => LabelItem<T>(
name: l.name,
content:
contentBuilder?.call(l) ?? Text(l.match ?? '-'),
onOpenEditPage: onEdit,
filterBuilder: filterBuilder,
leading: leadingBuilder?.call(l),
label: l,
))
.map(
(l) => LabelItem<T>(
name: l.name,
content:
contentBuilder?.call(l) ?? Text(l.match ?? '-'),
onOpenEditPage: onEdit,
filterBuilder: filterBuilder,
leading: leadingBuilder?.call(l),
label: l,
),
)
.toList(),
),
);

View File

@@ -45,4 +45,8 @@ class ApplicationSettingsCubit extends Cubit<ApplicationSettingsState> {
await localVault.storeApplicationSettings(settings);
emit(settings);
}
void clear() {
emit(ApplicationSettingsState.defaultSettings);
}
}

View File

@@ -70,10 +70,40 @@
"@documentDetailsPageTabOverviewLabel": {},
"documentDocumentTypePropertyLabel": "Typ dokumentu",
"@documentDocumentTypePropertyLabel": {},
"documentDownloadSuccessMessage": "Document successfully downloaded.",
"documentDownloadSuccessMessage": "Dokument úspěšně stažen.",
"@documentDownloadSuccessMessage": {},
"documentEditPageTitle": "Upravit dokument",
"@documentEditPageTitle": {},
"documentFilterAdvancedLabel": "Rozšířené",
"@documentFilterAdvancedLabel": {},
"documentFilterApplyFilterLabel": "Použít",
"@documentFilterApplyFilterLabel": {},
"documentFilterDateRangeFieldEndLabel": "Do",
"@documentFilterDateRangeFieldEndLabel": {},
"documentFilterDateRangeFieldStartLabel": "Od",
"@documentFilterDateRangeFieldStartLabel": {},
"documentFilterDateRangeLastMonthLabel": "Minulý měsíc",
"@documentFilterDateRangeLastMonthLabel": {},
"documentFilterDateRangeLastSevenDaysLabel": "Posledních 7 dní",
"@documentFilterDateRangeLastSevenDaysLabel": {},
"documentFilterDateRangeLastThreeMonthsLabel": "Poslední 3 měsíce",
"@documentFilterDateRangeLastThreeMonthsLabel": {},
"documentFilterDateRangeLastYearLabel": "Minulý rok",
"@documentFilterDateRangeLastYearLabel": {},
"documentFilterQueryOptionsAsnLabel": "ASČ",
"@documentFilterQueryOptionsAsnLabel": {},
"documentFilterQueryOptionsExtendedLabel": "Prodloužené",
"@documentFilterQueryOptionsExtendedLabel": {},
"documentFilterQueryOptionsTitleAndContentLabel": "Název & Obsah",
"@documentFilterQueryOptionsTitleAndContentLabel": {},
"documentFilterQueryOptionsTitleLabel": "Název",
"@documentFilterQueryOptionsTitleLabel": {},
"documentFilterResetLabel": "Zrušit",
"@documentFilterResetLabel": {},
"documentFilterSearchLabel": "Hledat",
"@documentFilterSearchLabel": {},
"documentFilterTitle": "Filtrovat dokumenty",
"@documentFilterTitle": {},
"documentMetaDataChecksumLabel": "MD5 součet originálu",
"@documentMetaDataChecksumLabel": {},
"documentMetaDataMediaFilenamePropertyLabel": "Jméno souboru média",
@@ -100,6 +130,8 @@
"@documentScannerPageUploadButtonTooltip": {},
"documentScannerPageUploadFromThisDeviceButtonLabel": "Nahrát jeden dokument z tohoto zařízení",
"@documentScannerPageUploadFromThisDeviceButtonLabel": {},
"documentsEmptyStateResetFilterLabel": "Zrušit",
"@documentsEmptyStateResetFilterLabel": {},
"documentsFilterPageAdvancedLabel": "Rozšířené",
"@documentsFilterPageAdvancedLabel": {},
"documentsFilterPageApplyFilterLabel": "Použít",
@@ -124,8 +156,6 @@
"@documentsFilterPageQueryOptionsTitleAndContentLabel": {},
"documentsFilterPageQueryOptionsTitleLabel": "Název",
"@documentsFilterPageQueryOptionsTitleLabel": {},
"documentsFilterPageResetFilterLabel": "Zrušit",
"@documentsFilterPageResetFilterLabel": {},
"documentsFilterPageSearchLabel": "Hledat",
"@documentsFilterPageSearchLabel": {},
"documentsFilterPageTitle": "Filtrovat dokumenty",
@@ -216,7 +246,7 @@
"@errorMessageInvalidClientCertificateConfiguration": {},
"errorMessageLoadSavedViewsError": "Nezdařilo se načíst uložené náhledy.",
"@errorMessageLoadSavedViewsError": {},
"errorMessageMissingClientCertificate": "Byl očekáván certifikát klienta, ale nebyl zaslán. Dodejte prosím platný certifikát klienta.",
"errorMessageMissingClientCertificate": "Byl očekáván certifikát klienta, který ale nebyl zaslán. Dodejte prosím platný certifikát klienta.",
"@errorMessageMissingClientCertificate": {},
"errorMessageNotAuthenticated": "Uživatel není přihlášen.",
"@errorMessageNotAuthenticated": {},
@@ -272,9 +302,9 @@
"@inboxPageMarkAllAsSeenLabel": {},
"inboxPageMarkAsSeenText": "Označit jako shlédnuté",
"@inboxPageMarkAsSeenText": {},
"inboxPageNoNewDocumentsRefreshLabel": "Refresh",
"inboxPageNoNewDocumentsRefreshLabel": "Obnovit",
"@inboxPageNoNewDocumentsRefreshLabel": {},
"inboxPageNoNewDocumentsText": "You do not have unseen documents.",
"inboxPageNoNewDocumentsText": "Nemáte neshlédnuté dokumenty.",
"@inboxPageNoNewDocumentsText": {},
"inboxPageTodayText": "Dnes",
"@inboxPageTodayText": {},
@@ -314,7 +344,7 @@
"@labelsPageDocumentTypesTitleText": {},
"labelsPageStoragePathEmptyStateAddNewLabel": "Vytvořit novou cestu k úložišti",
"@labelsPageStoragePathEmptyStateAddNewLabel": {},
"labelsPageStoragePathEmptyStateDescriptionText": "Zdá se že zatím nebyla vytvořena žádné cesty k úložišti.",
"labelsPageStoragePathEmptyStateDescriptionText": "Zdá se že zatím nebyly vytvořeny žádné cesty k úložištím.",
"@labelsPageStoragePathEmptyStateDescriptionText": {},
"labelsPageStoragePathTitleText": "Cesty k úložišti",
"@labelsPageStoragePathTitleText": {},

View File

@@ -74,6 +74,36 @@
"@documentDownloadSuccessMessage": {},
"documentEditPageTitle": "Dokument Bearbeiten",
"@documentEditPageTitle": {},
"documentFilterAdvancedLabel": "Erweitert",
"@documentFilterAdvancedLabel": {},
"documentFilterApplyFilterLabel": "Anwenden",
"@documentFilterApplyFilterLabel": {},
"documentFilterDateRangeFieldEndLabel": "Bis",
"@documentFilterDateRangeFieldEndLabel": {},
"documentFilterDateRangeFieldStartLabel": "Von",
"@documentFilterDateRangeFieldStartLabel": {},
"documentFilterDateRangeLastMonthLabel": "Letzter Monat",
"@documentFilterDateRangeLastMonthLabel": {},
"documentFilterDateRangeLastSevenDaysLabel": "Letzte 7 Tage",
"@documentFilterDateRangeLastSevenDaysLabel": {},
"documentFilterDateRangeLastThreeMonthsLabel": "Letzte 3 Monate",
"@documentFilterDateRangeLastThreeMonthsLabel": {},
"documentFilterDateRangeLastYearLabel": "Letztes Jahr",
"@documentFilterDateRangeLastYearLabel": {},
"documentFilterQueryOptionsAsnLabel": "ASN",
"@documentFilterQueryOptionsAsnLabel": {},
"documentFilterQueryOptionsExtendedLabel": "Erweitert",
"@documentFilterQueryOptionsExtendedLabel": {},
"documentFilterQueryOptionsTitleAndContentLabel": "Titel & Inhalt",
"@documentFilterQueryOptionsTitleAndContentLabel": {},
"documentFilterQueryOptionsTitleLabel": "Titel",
"@documentFilterQueryOptionsTitleLabel": {},
"documentFilterResetLabel": "Zurücksetzen",
"@documentFilterResetLabel": {},
"documentFilterSearchLabel": "Suche",
"@documentFilterSearchLabel": {},
"documentFilterTitle": "Dokumente filtern",
"@documentFilterTitle": {},
"documentMetaDataChecksumLabel": "MD5-Prüfsumme Original",
"@documentMetaDataChecksumLabel": {},
"documentMetaDataMediaFilenamePropertyLabel": "Media-Dateiname",
@@ -100,6 +130,8 @@
"@documentScannerPageUploadButtonTooltip": {},
"documentScannerPageUploadFromThisDeviceButtonLabel": "Lade ein Dokument von diesem Gerät hoch",
"@documentScannerPageUploadFromThisDeviceButtonLabel": {},
"documentsEmptyStateResetFilterLabel": "Filter zurücksetzen",
"@documentsEmptyStateResetFilterLabel": {},
"documentsFilterPageAdvancedLabel": "Erweitert",
"@documentsFilterPageAdvancedLabel": {},
"documentsFilterPageApplyFilterLabel": "Anwenden",
@@ -124,11 +156,9 @@
"@documentsFilterPageQueryOptionsTitleAndContentLabel": {},
"documentsFilterPageQueryOptionsTitleLabel": "Titel",
"@documentsFilterPageQueryOptionsTitleLabel": {},
"documentsFilterPageResetFilterLabel": "Zurücksetzen",
"@documentsFilterPageResetFilterLabel": {},
"documentsFilterPageSearchLabel": "Suche",
"@documentsFilterPageSearchLabel": {},
"documentsFilterPageTitle": "Dokumente Filtern",
"documentsFilterPageTitle": "Dokumente filtern",
"@documentsFilterPageTitle": {},
"documentsPageBulkDeleteSuccessfulText": "Das massenhafte Löschen der Dokumente war erfolgreich.",
"@documentsPageBulkDeleteSuccessfulText": {},
@@ -256,7 +286,7 @@
"@genericActionSaveLabel": {},
"genericActionSelectText": "Auswählen",
"@genericActionSelectText": {},
"genericActionUpdateLabel": "Aktualisieren",
"genericActionUpdateLabel": "Änderungen speichern",
"@genericActionUpdateLabel": {},
"genericActionUploadLabel": "Hochladen",
"@genericActionUploadLabel": {},
@@ -266,9 +296,9 @@
"@inboxPageDocumentRemovedMessageText": {},
"inboxPageMarkAllAsSeenConfirmationDialogText": "Bist Du sicher, dass Du alle Dokumente als gesehen markieren möchtest? Dadurch wird eine Massenbearbeitung durchgeführt, bei der alle Posteingangs-Tags von den Dokumenten entfernt werden.\\nDiese Aktion kann nicht rückgängig gemacht werden! Möchtest Du trotzdem fortfahren?",
"@inboxPageMarkAllAsSeenConfirmationDialogText": {},
"inboxPageMarkAllAsSeenConfirmationDialogTitleText": "Alle als gelesen markieren?",
"inboxPageMarkAllAsSeenConfirmationDialogTitleText": "Alle als gesehen markieren?",
"@inboxPageMarkAllAsSeenConfirmationDialogTitleText": {},
"inboxPageMarkAllAsSeenLabel": "Alle als gelesen markieren",
"inboxPageMarkAllAsSeenLabel": "Alle gesehen",
"@inboxPageMarkAllAsSeenLabel": {},
"inboxPageMarkAsSeenText": "Als gelesen markieren",
"@inboxPageMarkAsSeenText": {},

View File

@@ -74,6 +74,36 @@
"@documentDownloadSuccessMessage": {},
"documentEditPageTitle": "Edit Document",
"@documentEditPageTitle": {},
"documentFilterAdvancedLabel": "Advanced",
"@documentFilterAdvancedLabel": {},
"documentFilterApplyFilterLabel": "Apply",
"@documentFilterApplyFilterLabel": {},
"documentFilterDateRangeFieldEndLabel": "To",
"@documentFilterDateRangeFieldEndLabel": {},
"documentFilterDateRangeFieldStartLabel": "From",
"@documentFilterDateRangeFieldStartLabel": {},
"documentFilterDateRangeLastMonthLabel": "Last Month",
"@documentFilterDateRangeLastMonthLabel": {},
"documentFilterDateRangeLastSevenDaysLabel": "Last 7 Days",
"@documentFilterDateRangeLastSevenDaysLabel": {},
"documentFilterDateRangeLastThreeMonthsLabel": "Last 3 Months",
"@documentFilterDateRangeLastThreeMonthsLabel": {},
"documentFilterDateRangeLastYearLabel": "Last Year",
"@documentFilterDateRangeLastYearLabel": {},
"documentFilterQueryOptionsAsnLabel": "ASN",
"@documentFilterQueryOptionsAsnLabel": {},
"documentFilterQueryOptionsExtendedLabel": "Extended",
"@documentFilterQueryOptionsExtendedLabel": {},
"documentFilterQueryOptionsTitleAndContentLabel": "Title & Content",
"@documentFilterQueryOptionsTitleAndContentLabel": {},
"documentFilterQueryOptionsTitleLabel": "Title",
"@documentFilterQueryOptionsTitleLabel": {},
"documentFilterResetLabel": "Reset",
"@documentFilterResetLabel": {},
"documentFilterSearchLabel": "Search",
"@documentFilterSearchLabel": {},
"documentFilterTitle": "Filter Documents",
"@documentFilterTitle": {},
"documentMetaDataChecksumLabel": "Original MD5-Checksum",
"@documentMetaDataChecksumLabel": {},
"documentMetaDataMediaFilenamePropertyLabel": "Media Filename",
@@ -100,6 +130,8 @@
"@documentScannerPageUploadButtonTooltip": {},
"documentScannerPageUploadFromThisDeviceButtonLabel": "Upload a document from this device",
"@documentScannerPageUploadFromThisDeviceButtonLabel": {},
"documentsEmptyStateResetFilterLabel": "Reset filter",
"@documentsEmptyStateResetFilterLabel": {},
"documentsFilterPageAdvancedLabel": "Advanced",
"@documentsFilterPageAdvancedLabel": {},
"documentsFilterPageApplyFilterLabel": "Apply",
@@ -124,8 +156,6 @@
"@documentsFilterPageQueryOptionsTitleAndContentLabel": {},
"documentsFilterPageQueryOptionsTitleLabel": "Title",
"@documentsFilterPageQueryOptionsTitleLabel": {},
"documentsFilterPageResetFilterLabel": "Reset",
"@documentsFilterPageResetFilterLabel": {},
"documentsFilterPageSearchLabel": "Search",
"@documentsFilterPageSearchLabel": {},
"documentsFilterPageTitle": "Filter Documents",
@@ -256,7 +286,7 @@
"@genericActionSaveLabel": {},
"genericActionSelectText": "Select",
"@genericActionSelectText": {},
"genericActionUpdateLabel": "Update",
"genericActionUpdateLabel": "Save changes",
"@genericActionUpdateLabel": {},
"genericActionUploadLabel": "Upload",
"@genericActionUploadLabel": {},
@@ -268,7 +298,7 @@
"@inboxPageMarkAllAsSeenConfirmationDialogText": {},
"inboxPageMarkAllAsSeenConfirmationDialogTitleText": "Mark all as seen?",
"@inboxPageMarkAllAsSeenConfirmationDialogTitleText": {},
"inboxPageMarkAllAsSeenLabel": "Mark all as seen",
"inboxPageMarkAllAsSeenLabel": "All seen",
"@inboxPageMarkAllAsSeenLabel": {},
"inboxPageMarkAsSeenText": "Mark as seen",
"@inboxPageMarkAsSeenText": {},

View File

@@ -114,12 +114,15 @@ class _PaperlessMobileEntrypointState extends State<PaperlessMobileEntrypoint> {
theme: ThemeData(
brightness: Brightness.light,
useMaterial3: true,
colorSchemeSeed: Colors.lightGreen,
colorScheme:
ColorScheme.fromSeed(seedColor: Colors.lightGreen).copyWith(),
appBarTheme: const AppBarTheme(
scrolledUnderElevation: 0.0,
),
inputDecorationTheme: const InputDecorationTheme(
border: OutlineInputBorder(),
inputDecorationTheme: InputDecorationTheme(
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
),
contentPadding: EdgeInsets.symmetric(
horizontal: 16.0,
vertical: 16.0,
@@ -133,16 +136,18 @@ class _PaperlessMobileEntrypointState extends State<PaperlessMobileEntrypoint> {
brightness: Brightness.dark,
useMaterial3: true,
colorSchemeSeed: Colors.lightGreen,
//primarySwatch: Colors.green,
appBarTheme: const AppBarTheme(
scrolledUnderElevation: 0.0,
),
inputDecorationTheme: const InputDecorationTheme(
border: OutlineInputBorder(),
contentPadding: EdgeInsets.symmetric(
horizontal: 16.0,
vertical: 16.0,
)),
inputDecorationTheme: InputDecorationTheme(
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
),
contentPadding: EdgeInsets.symmetric(
horizontal: 16.0,
vertical: 16.0,
),
),
chipTheme: ChipThemeData(
backgroundColor: Colors.green[900],
),
@@ -150,7 +155,8 @@ class _PaperlessMobileEntrypointState extends State<PaperlessMobileEntrypoint> {
themeMode: settings.preferredThemeMode,
supportedLocales: S.delegate.supportedLocales,
locale: Locale.fromSubtags(
languageCode: settings.preferredLocaleSubtag),
languageCode: settings.preferredLocaleSubtag,
),
localizationsDelegates: const [
S.delegate,
GlobalMaterialLocalizations.delegate,