Add run_template action

This commit is contained in:
Hillel Coren 2023-11-20 16:57:16 +02:00
parent 15a0daf596
commit 0ab3eb837b
2 changed files with 19 additions and 1 deletions

View File

@ -16,6 +16,7 @@ import 'package:invoiceninja_flutter/data/models/tax_model.dart';
import 'package:invoiceninja_flutter/main_app.dart'; import 'package:invoiceninja_flutter/main_app.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/redux/client/client_selectors.dart'; import 'package:invoiceninja_flutter/redux/client/client_selectors.dart';
import 'package:invoiceninja_flutter/redux/design/design_selectors.dart';
import 'package:invoiceninja_flutter/utils/formatting.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart';
import 'package:invoiceninja_flutter/utils/money.dart'; import 'package:invoiceninja_flutter/utils/money.dart';
import 'package:invoiceninja_flutter/utils/strings.dart'; import 'package:invoiceninja_flutter/utils/strings.dart';
@ -1051,6 +1052,13 @@ abstract class InvoiceEntity extends Object
} }
} }
if (!isDeleted!) {
if (hasDesignTemplatesForEntityType(
store.state.designState.map, entityType!)) {
actions.add(EntityAction.runTemplate);
}
}
if (userCompany.canEditEntity(this) && !isCancelledOrReversed) { if (userCompany.canEditEntity(this) && !isCancelledOrReversed) {
if (!isSent && !isRecurring) { if (!isSent && !isRecurring) {
actions.add(EntityAction.markSent); actions.add(EntityAction.markSent);

View File

@ -10,6 +10,7 @@ import 'package:built_collection/built_collection.dart';
import 'package:flutter_redux/flutter_redux.dart'; import 'package:flutter_redux/flutter_redux.dart';
import 'package:http/http.dart'; import 'package:http/http.dart';
import 'package:invoiceninja_flutter/constants.dart'; import 'package:invoiceninja_flutter/constants.dart';
import 'package:invoiceninja_flutter/main_app.dart';
import 'package:invoiceninja_flutter/redux/client/client_selectors.dart'; import 'package:invoiceninja_flutter/redux/client/client_selectors.dart';
import 'package:invoiceninja_flutter/redux/document/document_actions.dart'; import 'package:invoiceninja_flutter/redux/document/document_actions.dart';
import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart'; import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart';
@ -858,6 +859,15 @@ void handleInvoiceAction(BuildContext? context, List<BaseEntity> invoices,
store.dispatch(StopSaving()); store.dispatch(StopSaving());
await Printing.layoutPdf(onLayout: (_) => response!.bodyBytes); await Printing.layoutPdf(onLayout: (_) => response!.bodyBytes);
break; break;
case EntityAction.runTemplate:
showDialog<void>(
context: navigatorKey.currentContext!,
builder: (context) => RunTemplateDialog(
entityType: EntityType.invoice,
entities: invoices,
),
);
break;
case EntityAction.more: case EntityAction.more:
showEntityActionsDialog( showEntityActionsDialog(
entities: [invoice], entities: [invoice],