Prevent sending empty download documents request

This commit is contained in:
Hillel Coren 2023-01-29 12:30:09 +02:00
parent 41794a2594
commit 8f0f86a6dc
12 changed files with 151 additions and 88 deletions

View File

@ -515,15 +515,20 @@ void handleClientAction(
documentIds.add(document.id);
}
}
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
if (documentIds.isEmpty) {
showMessageDialog(
context: context, message: localization.noDocumentsToDownload);
} else {
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
),
),
),
);
);
}
break;
case EntityAction.merge:
showDialog<void>(

View File

@ -674,15 +674,20 @@ Future handleCreditAction(
documentIds.add(document.id);
}
}
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
if (documentIds.isEmpty) {
showMessageDialog(
context: context, message: localization.noDocumentsToDownload);
} else {
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
),
),
),
);
);
}
break;
default:
print('## ERROR: unhandled action $action in credit_actions');

View File

@ -382,15 +382,20 @@ void handleExpenseAction(
documentIds.add(document.id);
}
}
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
if (documentIds.isEmpty) {
showMessageDialog(
context: context, message: localization.noDocumentsToDownload);
} else {
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
),
),
),
);
);
}
break;
default:
print('## ERROR: unhandled action $action in expense_actions');

View File

@ -781,15 +781,20 @@ void handleInvoiceAction(BuildContext context, List<BaseEntity> invoices,
documentIds.add(document.id);
}
}
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
if (documentIds.isEmpty) {
showMessageDialog(
context: context, message: localization.noDocumentsToDownload);
} else {
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
),
),
),
);
);
}
break;
default:
print('## ERROR: unhandled action $action in invoice_actions');

View File

@ -16,6 +16,7 @@ import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/redux/product/product_selectors.dart';
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/dialogs.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
import '../document/document_actions.dart';
@ -353,15 +354,20 @@ void handleProductAction(
documentIds.add(document.id);
}
}
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
if (documentIds.isEmpty) {
showMessageDialog(
context: context, message: localization.noDocumentsToDownload);
} else {
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
),
),
),
);
);
}
break;
default:
print('## ERROR: unhandled action $action in product_actions');

View File

@ -372,15 +372,20 @@ void handleProjectAction(
documentIds.add(document.id);
}
}
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
if (documentIds.isEmpty) {
showMessageDialog(
context: context, message: localization.noDocumentsToDownload);
} else {
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
),
),
),
);
);
}
break;
default:
print('## Error: action $action not handled in project_actions');

View File

@ -717,15 +717,20 @@ Future handleQuoteAction(
documentIds.add(document.id);
}
}
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
if (documentIds.isEmpty) {
showMessageDialog(
context: context, message: localization.noDocumentsToDownload);
} else {
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
),
),
),
);
);
}
break;
default:
print('## ERROR: unhandled action $action in quote_actions');

View File

@ -16,6 +16,7 @@ import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/redux/document/document_actions.dart';
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/dialogs.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
class ViewRecurringExpenseList implements PersistUI {
@ -442,15 +443,20 @@ void handleRecurringExpenseAction(BuildContext context,
documentIds.add(document.id);
}
}
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
if (documentIds.isEmpty) {
showMessageDialog(
context: context, message: localization.noDocumentsToDownload);
} else {
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
),
),
),
);
);
}
break;
default:
print('## ERROR: unhandled action $action in recurring_expense_actions');

View File

@ -599,15 +599,20 @@ void handleRecurringInvoiceAction(BuildContext context,
documentIds.add(document.id);
}
}
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
if (documentIds.isEmpty) {
showMessageDialog(
context: context, message: localization.noDocumentsToDownload);
} else {
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
),
),
),
);
);
}
break;
case EntityAction.sendNow:
store.dispatch(SendNowRecurringInvoicesRequest(

View File

@ -527,15 +527,20 @@ void handleTaskAction(
documentIds.add(document.id);
}
}
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
if (documentIds.isEmpty) {
showMessageDialog(
context: context, message: localization.noDocumentsToDownload);
} else {
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
),
),
),
);
);
}
break;
default:
print('## ERROR: unhandled action $action in task_actions');

View File

@ -16,6 +16,7 @@ import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/redux/document/document_actions.dart';
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/dialogs.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:url_launcher/url_launcher.dart';
@ -379,15 +380,20 @@ void handleVendorAction(
documentIds.add(document.id);
}
}
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
if (documentIds.isEmpty) {
showMessageDialog(
context: context, message: localization.noDocumentsToDownload);
} else {
store.dispatch(
DownloadDocumentsRequest(
documentIds: documentIds,
completer: snackBarCompleter<Null>(
context,
localization.exportedData,
),
),
),
);
);
}
break;
default:
print('## ERROR: unhandled action $action in vendor_actions');

View File

@ -16,6 +16,7 @@ mixin LocalizationsProvider on LocaleCodeAware {
static final Map<String, Map<String, String>> _localizedValues = {
'en': {
// STARTER: lang key - do not remove comment
'no_documents_to_download': 'There are no documents in the selected records to download',
'pixels': 'Pixels',
'logo_size': 'Logo Size',
'postal_city': 'Postal/City',
@ -94004,6 +94005,10 @@ mixin LocalizationsProvider on LocaleCodeAware {
_localizedValues[localeCode]['pixels'] ??
_localizedValues['en']['pixels'];
String get noDocumentsToDownload =>
_localizedValues[localeCode]['no_documents_to_download'] ??
_localizedValues['en']['no_documents_to_download'];
// STARTER: lang field - do not remove comment
String lookup(String key) {