mirror of
https://github.com/Xevion/paperless-mobile.git
synced 2025-12-10 02:07:57 -06:00
Some visual updates, bugfixes, finished major refactoring!
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -156,7 +156,7 @@ class _DocumentsPageState extends State<DocumentsPage> {
|
||||
pagingController: _pagingController,
|
||||
hasInternetConnection:
|
||||
connectivityState == ConnectivityState.connected,
|
||||
onTagSelected: (int tagId) => _addTagToFilter,
|
||||
onTagSelected: _addTagToFilter,
|
||||
);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
),
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(),
|
||||
),
|
||||
);
|
||||
|
||||
@@ -45,4 +45,8 @@ class ApplicationSettingsCubit extends Cubit<ApplicationSettingsState> {
|
||||
await localVault.storeApplicationSettings(settings);
|
||||
emit(settings);
|
||||
}
|
||||
|
||||
void clear() {
|
||||
emit(ApplicationSettingsState.defaultSettings);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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": {},
|
||||
|
||||
@@ -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": {},
|
||||
|
||||
@@ -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": {},
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user