Add run_template action

This commit is contained in:
Hillel Coren 2023-11-19 13:45:07 +02:00
parent 15416d5f3d
commit 0269667785
2 changed files with 13 additions and 0 deletions

View File

@ -4,6 +4,7 @@ import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart'; import 'package:built_value/serializer.dart';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:diacritic/diacritic.dart'; import 'package:diacritic/diacritic.dart';
import 'package:flutter_redux/flutter_redux.dart';
// Project imports: // Project imports:
import 'package:invoiceninja_flutter/constants.dart'; import 'package:invoiceninja_flutter/constants.dart';
@ -12,7 +13,9 @@ import 'package:invoiceninja_flutter/data/models/group_model.dart';
import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/data/models/models.dart';
import 'package:invoiceninja_flutter/data/models/system_log_model.dart'; import 'package:invoiceninja_flutter/data/models/system_log_model.dart';
import 'package:invoiceninja_flutter/data/models/tax_model.dart'; import 'package:invoiceninja_flutter/data/models/tax_model.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/design/design_selectors.dart';
import 'package:invoiceninja_flutter/redux/static/static_state.dart'; import 'package:invoiceninja_flutter/redux/static/static_state.dart';
import 'package:invoiceninja_flutter/utils/formatting.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart';
import 'package:invoiceninja_flutter/utils/strings.dart'; import 'package:invoiceninja_flutter/utils/strings.dart';
@ -666,6 +669,14 @@ abstract class ClientEntity extends Object
actions.add(EntityAction.documents); actions.add(EntityAction.documents);
} }
if (!isDeleted!) {
final store = StoreProvider.of<AppState>(navigatorKey.currentContext!);
if (hasDesignTemplatesForEntityType(
store.state.designState.map, entityType)) {
actions.add(EntityAction.runTemplate);
}
}
if (!isDeleted! && !multiselect) { if (!isDeleted! && !multiselect) {
if (actions.isNotEmpty && actions.last != null) { if (actions.isNotEmpty && actions.last != null) {
actions.add(null); actions.add(null);

View File

@ -129,6 +129,8 @@ IconData? getEntityActionIcon(EntityAction? entityAction) {
return MdiIcons.xml; return MdiIcons.xml;
case EntityAction.unlink: case EntityAction.unlink:
return MdiIcons.pipeDisconnected; return MdiIcons.pipeDisconnected;
case EntityAction.runTemplate:
return MdiIcons.arrowRightBoldCircleOutline;
default: default:
return null; return null;
} }