diff --git a/lib/data/models/document_model.dart b/lib/data/models/document_model.dart index 1b7c61751..902a16b1c 100644 --- a/lib/data/models/document_model.dart +++ b/lib/data/models/document_model.dart @@ -301,20 +301,26 @@ abstract class DocumentEntity extends Object if (includeEdit && userCompany.canEditEntity(this)) { actions.add(EntityAction.edit); } - - if (userCompany.canCreate(EntityType.invoice)) { - actions.add(EntityAction.newInvoice); - } } - if (!isDeleted && multiselect) { - actions.add(EntityAction.documents); + actions.add(EntityAction.viewDocument); + + if (!isDeleted) { + if (multiselect) { + actions.add(EntityAction.bulkDownload); + } else { + actions.add(EntityAction.download); + } } if (actions.isNotEmpty && actions.last != null) { actions.add(null); } + if (userCompany.canEditEntity(this)) { + actions.add(EntityAction.delete); + } + //return actions..addAll(super.getActions(userCompany: userCompany)); return actions; diff --git a/lib/data/models/models.dart b/lib/data/models/models.dart index d028c3a72..598c65194 100644 --- a/lib/data/models/models.dart +++ b/lib/data/models/models.dart @@ -97,6 +97,7 @@ class EntityAction extends EnumClass { static const EntityAction refundPayment = _$refundPayment; static const EntityAction viewPdf = _$viewPdf; static const EntityAction viewStatement = _$viewStatement; + static const EntityAction viewDocument = _$viewDocument; static const EntityAction more = _$more; static const EntityAction printPdf = _$printPdf; static const EntityAction start = _$start; @@ -139,6 +140,8 @@ class EntityAction extends EnumClass { String toString() { if (this == EntityAction.addToInvoice) { return 'action_add_to_invoice'; + } else if (this == EntityAction.viewDocument) { + return 'view'; } return toSnakeCase(super.toString()); diff --git a/lib/data/models/models.g.dart b/lib/data/models/models.g.dart index 0601dc429..b223f3adc 100644 --- a/lib/data/models/models.g.dart +++ b/lib/data/models/models.g.dart @@ -57,6 +57,7 @@ const EntityAction _$settings = const EntityAction._('settings'); const EntityAction _$refundPayment = const EntityAction._('refundPayment'); const EntityAction _$viewPdf = const EntityAction._('viewPdf'); const EntityAction _$viewStatement = const EntityAction._('viewStatement'); +const EntityAction _$viewDocument = const EntityAction._('viewDocument'); const EntityAction _$more = const EntityAction._('more'); const EntityAction _$printPdf = const EntityAction._('printPdf'); const EntityAction _$start = const EntityAction._('start'); @@ -192,6 +193,8 @@ EntityAction _$valueOf(String name) { return _$viewPdf; case 'viewStatement': return _$viewStatement; + case 'viewDocument': + return _$viewDocument; case 'more': return _$more; case 'printPdf': @@ -318,6 +321,7 @@ final BuiltSet _$values = _$refundPayment, _$viewPdf, _$viewStatement, + _$viewDocument, _$more, _$printPdf, _$start, diff --git a/lib/redux/document/document_actions.dart b/lib/redux/document/document_actions.dart index 2c19b7892..9582ec42b 100644 --- a/lib/redux/document/document_actions.dart +++ b/lib/redux/document/document_actions.dart @@ -352,7 +352,7 @@ void handleDocumentAction( entities: [document], ); break; - case EntityAction.documents: + case EntityAction.bulkDownload: store.dispatch( DownloadDocumentsRequest( documentIds: documentIds, diff --git a/lib/ui/document/view/document_view.dart b/lib/ui/document/view/document_view.dart index 4fb7c011c..766c0c7c9 100644 --- a/lib/ui/document/view/document_view.dart +++ b/lib/ui/document/view/document_view.dart @@ -1,5 +1,7 @@ // Flutter imports: import 'package:flutter/material.dart'; +import 'package:invoiceninja_flutter/data/models/models.dart'; +import 'package:invoiceninja_flutter/ui/app/buttons/bottom_buttons.dart'; import 'package:invoiceninja_flutter/ui/app/entities/entity_list_tile.dart'; import 'package:invoiceninja_flutter/ui/app/lists/list_divider.dart'; @@ -59,6 +61,11 @@ class _DocumentViewState extends State { canDebug: false, ), ), + BottomButtons( + entity: document, + action1: EntityAction.viewDocument, + action2: EntityAction.download, + ), ], ), ); diff --git a/lib/utils/icons.dart b/lib/utils/icons.dart index 23d87c8d9..acb4a81fe 100644 --- a/lib/utils/icons.dart +++ b/lib/utils/icons.dart @@ -17,6 +17,8 @@ IconData getEntityActionIcon(EntityAction entityAction) { case EntityAction.viewPdf: case EntityAction.bulkDownload: return Icons.picture_as_pdf; + case EntityAction.viewDocument: + return Icons.photo; case EntityAction.bulkPrint: case EntityAction.printPdf: return Icons.print;