From 3d7738a76315de15fe794ed7110bd99da7cb68dd Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Sun, 27 Feb 2022 15:38:12 +0200 Subject: [PATCH] Add more actions to the edit screen --- lib/redux/credit/credit_actions.dart | 1 + lib/redux/quote/quote_actions.dart | 1 + .../recurring_expense_actions.dart | 1 + .../recurring_invoice_actions.dart | 1 + lib/ui/credit/edit/credit_edit.dart | 1 + lib/ui/credit/edit/credit_edit_vm.dart | 2 ++ lib/ui/expense/edit/expense_edit.dart | 2 +- lib/ui/expense/edit/expense_edit_vm.dart | 2 +- lib/ui/invoice/edit/invoice_edit_vm.dart | 2 +- lib/ui/quote/edit/quote_edit_vm.dart | 2 ++ lib/ui/quote/quote_edit.dart | 1 + .../edit/recurring_expense_edit_vm.dart | 3 ++- .../edit/recurring_invoice_edit.dart | 1 + .../edit/recurring_invoice_edit_vm.dart | 16 +++++++++++++++- lib/ui/task/edit/task_edit.dart | 2 +- lib/ui/task/edit/task_edit_vm.dart | 2 +- 16 files changed, 33 insertions(+), 7 deletions(-) diff --git a/lib/redux/credit/credit_actions.dart b/lib/redux/credit/credit_actions.dart index 4e0f68ebf..4cd19cd05 100644 --- a/lib/redux/credit/credit_actions.dart +++ b/lib/redux/credit/credit_actions.dart @@ -546,6 +546,7 @@ Future handleCreditAction( ..entityType = EntityType.quote ..designId = designId)); break; + case EntityAction.clone: case EntityAction.cloneToCredit: createEntity(context: context, entity: credit.clone); break; diff --git a/lib/redux/quote/quote_actions.dart b/lib/redux/quote/quote_actions.dart index f98489634..540476e9f 100644 --- a/lib/redux/quote/quote_actions.dart +++ b/lib/redux/quote/quote_actions.dart @@ -546,6 +546,7 @@ Future handleQuoteAction( ..entityType = EntityType.invoice ..designId = designId)); break; + case EntityAction.clone: case EntityAction.cloneToQuote: createEntity(context: context, entity: quote.clone); break; diff --git a/lib/redux/recurring_expense/recurring_expense_actions.dart b/lib/redux/recurring_expense/recurring_expense_actions.dart index dfa9723f7..d36d6d50b 100644 --- a/lib/redux/recurring_expense/recurring_expense_actions.dart +++ b/lib/redux/recurring_expense/recurring_expense_actions.dart @@ -396,6 +396,7 @@ void handleRecurringExpenseAction(BuildContext context, .rebuild((b) => b..entityType = EntityType.expense), ); break; + case EntityAction.clone: case EntityAction.cloneToRecurring: createEntity( context: context, diff --git a/lib/redux/recurring_invoice/recurring_invoice_actions.dart b/lib/redux/recurring_invoice/recurring_invoice_actions.dart index b224e29bf..428fa49c3 100644 --- a/lib/redux/recurring_invoice/recurring_invoice_actions.dart +++ b/lib/redux/recurring_invoice/recurring_invoice_actions.dart @@ -463,6 +463,7 @@ void handleRecurringInvoiceAction(BuildContext context, case EntityAction.cloneToOther: cloneToDialog(context: context, invoice: recurringInvoice); break; + case EntityAction.clone: case EntityAction.cloneToRecurring: createEntity(context: context, entity: recurringInvoice.clone); break; diff --git a/lib/ui/credit/edit/credit_edit.dart b/lib/ui/credit/edit/credit_edit.dart index 2546cdd4f..b8aba54c9 100644 --- a/lib/ui/credit/edit/credit_edit.dart +++ b/lib/ui/credit/edit/credit_edit.dart @@ -100,6 +100,7 @@ class _CreditEditState extends State EntityAction.download, EntityAction.emailCredit, if (!invoice.isSent) EntityAction.markSent, + if (invoice.isOld) EntityAction.clone, ], onActionPressed: (context, action) => _onSavePressed(context, action), appBarBottom: TabBar( diff --git a/lib/ui/credit/edit/credit_edit_vm.dart b/lib/ui/credit/edit/credit_edit_vm.dart index 6ce930e6c..927c82a25 100644 --- a/lib/ui/credit/edit/credit_edit_vm.dart +++ b/lib/ui/credit/edit/credit_edit_vm.dart @@ -98,6 +98,7 @@ class CreditEditVM extends AbstractInvoiceEditVM { EntityAction.emailCredit, EntityAction.viewPdf, EntityAction.download, + EntityAction.clone, ].contains(action)) { handleEntityAction(credit, action); } else { @@ -134,6 +135,7 @@ class CreditEditVM extends AbstractInvoiceEditVM { EntityAction.emailCredit, EntityAction.viewPdf, EntityAction.download, + EntityAction.clone, ].contains(action)) { handleEntityAction(savedCredit, action); } diff --git a/lib/ui/expense/edit/expense_edit.dart b/lib/ui/expense/edit/expense_edit.dart index 682745396..04ba5e945 100644 --- a/lib/ui/expense/edit/expense_edit.dart +++ b/lib/ui/expense/edit/expense_edit.dart @@ -99,7 +99,7 @@ class _ExpenseEditState extends State actions: [ if (expense.isRecurring) if (expense.isRunning) EntityAction.stop else EntityAction.start, - EntityAction.clone, + if (expense.isOld) EntityAction.clone, if (!expense.isRecurring) EntityAction.invoiceExpense, ], onActionPressed: (context, action) => _onSavePressed(context, action), diff --git a/lib/ui/expense/edit/expense_edit_vm.dart b/lib/ui/expense/edit/expense_edit_vm.dart index f2d956dde..29eed501d 100644 --- a/lib/ui/expense/edit/expense_edit_vm.dart +++ b/lib/ui/expense/edit/expense_edit_vm.dart @@ -178,7 +178,7 @@ class ExpenseEditVM extends AbstractExpenseEditVM { if ([ EntityAction.invoiceExpense, - if (expense.isOld) EntityAction.clone, + EntityAction.clone, ].contains(action)) { handleEntityAction(savedExpense, action); } diff --git a/lib/ui/invoice/edit/invoice_edit_vm.dart b/lib/ui/invoice/edit/invoice_edit_vm.dart index d187e1d13..eda894088 100644 --- a/lib/ui/invoice/edit/invoice_edit_vm.dart +++ b/lib/ui/invoice/edit/invoice_edit_vm.dart @@ -186,7 +186,7 @@ class InvoiceEditVM extends AbstractInvoiceEditVM { EntityAction.emailInvoice, EntityAction.viewPdf, EntityAction.download, - if (invoice.isOld) EntityAction.clone, + EntityAction.clone, ].contains(action)) { handleEntityAction(savedInvoice, action); } diff --git a/lib/ui/quote/edit/quote_edit_vm.dart b/lib/ui/quote/edit/quote_edit_vm.dart index eaba6fa5a..543445224 100644 --- a/lib/ui/quote/edit/quote_edit_vm.dart +++ b/lib/ui/quote/edit/quote_edit_vm.dart @@ -98,6 +98,7 @@ class QuoteEditVM extends AbstractInvoiceEditVM { EntityAction.viewPdf, EntityAction.download, EntityAction.viewInvoice, + EntityAction.clone, ].contains(action)) { handleEntityAction(quote, action); } else { @@ -134,6 +135,7 @@ class QuoteEditVM extends AbstractInvoiceEditVM { EntityAction.viewPdf, EntityAction.download, EntityAction.viewInvoice, + EntityAction.clone, ].contains(action)) { handleEntityAction(savedQuote, action); } diff --git a/lib/ui/quote/quote_edit.dart b/lib/ui/quote/quote_edit.dart index fbfce6f6b..a4db81bff 100644 --- a/lib/ui/quote/quote_edit.dart +++ b/lib/ui/quote/quote_edit.dart @@ -103,6 +103,7 @@ class _QuoteEditState extends State invoice.invoiceId.isEmpty ? EntityAction.convertToInvoice : EntityAction.viewInvoice, + if (invoice.isOld) EntityAction.clone, ], onActionPressed: (context, action) => _onSavePressed(context, action), appBarBottom: TabBar( diff --git a/lib/ui/recurring_expense/edit/recurring_expense_edit_vm.dart b/lib/ui/recurring_expense/edit/recurring_expense_edit_vm.dart index 203c2f332..90791ac2f 100644 --- a/lib/ui/recurring_expense/edit/recurring_expense_edit_vm.dart +++ b/lib/ui/recurring_expense/edit/recurring_expense_edit_vm.dart @@ -167,7 +167,8 @@ class RecurringExpenseEditVM extends AbstractExpenseEditVM { if ([ EntityAction.start, EntityAction.stop, - if (recurringExpense.isOld) EntityAction.clone, + EntityAction.clone, + EntityAction.viewPdf, ].contains(action)) { handleEntityAction(savedRecurringExpense, action); } diff --git a/lib/ui/recurring_invoice/edit/recurring_invoice_edit.dart b/lib/ui/recurring_invoice/edit/recurring_invoice_edit.dart index d60023214..7a667e5f4 100644 --- a/lib/ui/recurring_invoice/edit/recurring_invoice_edit.dart +++ b/lib/ui/recurring_invoice/edit/recurring_invoice_edit.dart @@ -103,6 +103,7 @@ class _RecurringInvoiceEditState extends State else EntityAction.stop, EntityAction.viewPdf, + if (invoice.isOld) EntityAction.clone, ], onActionPressed: (context, action) => _onSavePressed(context, action), appBarBottom: TabBar( diff --git a/lib/ui/recurring_invoice/edit/recurring_invoice_edit_vm.dart b/lib/ui/recurring_invoice/edit/recurring_invoice_edit_vm.dart index 7871cab54..8e9393f5d 100644 --- a/lib/ui/recurring_invoice/edit/recurring_invoice_edit_vm.dart +++ b/lib/ui/recurring_invoice/edit/recurring_invoice_edit_vm.dart @@ -95,7 +95,12 @@ class RecurringInvoiceEditVM extends AbstractInvoiceEditVM { if (recurringInvoice.isOld && !hasRecurringInvoiceChanges( recurringInvoice, state.recurringInvoiceState.map) && - action != null) { + [ + EntityAction.start, + EntityAction.stop, + EntityAction.viewPdf, + EntityAction.clone, + ].contains(action)) { handleEntityAction(recurringInvoice, action); } else { final Completer completer = @@ -127,6 +132,15 @@ class RecurringInvoiceEditVM extends AbstractInvoiceEditVM { entity: savedRecurringInvoice); } } + + if ([ + EntityAction.start, + EntityAction.stop, + EntityAction.viewPdf, + EntityAction.clone, + ].contains(action)) { + handleEntityAction(savedRecurringInvoice, action); + } }).catchError((Object error) { showDialog( context: navigatorKey.currentContext, diff --git a/lib/ui/task/edit/task_edit.dart b/lib/ui/task/edit/task_edit.dart index ec9e08a0b..c54741b3f 100644 --- a/lib/ui/task/edit/task_edit.dart +++ b/lib/ui/task/edit/task_edit.dart @@ -104,7 +104,7 @@ class _TaskEditState extends State _onSavePressed(context, action), actions: [ EntityAction.invoiceTask, - EntityAction.clone, + if (task.isOld) EntityAction.clone, ], onActionPressed: (context, action) => _onSavePressed(context, action), appBarBottom: TabBar( diff --git a/lib/ui/task/edit/task_edit_vm.dart b/lib/ui/task/edit/task_edit_vm.dart index 25c5729a2..e67b71d95 100644 --- a/lib/ui/task/edit/task_edit_vm.dart +++ b/lib/ui/task/edit/task_edit_vm.dart @@ -129,7 +129,7 @@ class TaskEditVM { if ([ EntityAction.invoiceTask, - if (task.isOld) EntityAction.clone, + EntityAction.clone, ].contains(action)) { handleEntityAction(savedTask, action); }