diff --git a/lib/redux/ui/pref_state.dart b/lib/redux/ui/pref_state.dart index 379f2b6eb..e4137cd33 100644 --- a/lib/redux/ui/pref_state.dart +++ b/lib/redux/ui/pref_state.dart @@ -121,6 +121,11 @@ abstract class PrefState implements Built { return false; } + if ([EntityType.product, EntityType.payment, EntityType.project] + .contains(entityType)) { + return false; + } + return !(useSidebarEditor[entityType.baseType] ?? false); } diff --git a/lib/ui/app/edit_scaffold.dart b/lib/ui/app/edit_scaffold.dart index c6c58f665..38192c9cc 100644 --- a/lib/ui/app/edit_scaffold.dart +++ b/lib/ui/app/edit_scaffold.dart @@ -5,6 +5,7 @@ import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart'; +import 'package:invoiceninja_flutter/ui/app/entities/entity_status_chip.dart'; import 'package:invoiceninja_flutter/ui/app/forms/save_cancel_buttons.dart'; import 'package:invoiceninja_flutter/ui/app/icon_message.dart'; import 'package:invoiceninja_flutter/ui/app/menu_drawer_vm.dart'; @@ -117,7 +118,20 @@ class EditScaffold extends StatelessWidget { appBar: AppBar( centerTitle: false, automaticallyImplyLeading: isMobile(context), - title: Text(title), + title: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text(title), + if (entity != null && + entity.isOld && + isDesktop(context) && + state.prefState.isEditorFullScreen(entity.entityType)) ...[ + SizedBox(width: 16), + EntityStatusChip( + entity: state.getEntity(entity.entityType, entity.id)), + ], + ], + ), actions: [ SaveCancelButtons( isEnabled: isEnabled && onSavePressed != null, diff --git a/lib/ui/company_gateway/edit/company_gateway_edit.dart b/lib/ui/company_gateway/edit/company_gateway_edit.dart index ec8b03f1b..e6699fcb9 100644 --- a/lib/ui/company_gateway/edit/company_gateway_edit.dart +++ b/lib/ui/company_gateway/edit/company_gateway_edit.dart @@ -107,6 +107,7 @@ class _CompanyGatewayEditState extends State .isEnabled); return EditScaffold( + entity: companyGateway, title: viewModel.companyGateway.isNew ? localization.newCompanyGateway : origCompanyGateway.listDisplayName, diff --git a/lib/ui/design/edit/design_edit.dart b/lib/ui/design/edit/design_edit.dart index a3b882317..7d4c55041 100644 --- a/lib/ui/design/edit/design_edit.dart +++ b/lib/ui/design/edit/design_edit.dart @@ -219,6 +219,7 @@ class _DesignEditState extends State final design = viewModel.design; return EditScaffold( + entity: design, isFullscreen: true, title: design.isNew ? localization.newDesign : localization.editDesign, onCancelPressed: (context) => viewModel.onCancelPressed(context), diff --git a/lib/ui/expense_category/edit/expense_category_edit.dart b/lib/ui/expense_category/edit/expense_category_edit.dart index 55618c5a6..07afb17d5 100644 --- a/lib/ui/expense_category/edit/expense_category_edit.dart +++ b/lib/ui/expense_category/edit/expense_category_edit.dart @@ -76,6 +76,7 @@ class _ExpenseCategoryEditState extends State { final expenseCategory = viewModel.expenseCategory; return EditScaffold( + entity: expenseCategory, title: expenseCategory.isNew ? localization.newExpenseCategory : localization.editExpenseCategory, diff --git a/lib/ui/group/edit/group_edit.dart b/lib/ui/group/edit/group_edit.dart index 2a3c6f3c0..f1bde7f8b 100644 --- a/lib/ui/group/edit/group_edit.dart +++ b/lib/ui/group/edit/group_edit.dart @@ -77,6 +77,7 @@ class _GroupEditState extends State { final group = viewModel.group; return EditScaffold( + entity: group, onCancelPressed: (context) => viewModel.onCancelPressed(context), title: group.isNew ? localization.newGroup : localization.editGroup, onSavePressed: (context) { diff --git a/lib/ui/payment_term/edit/payment_term_edit.dart b/lib/ui/payment_term/edit/payment_term_edit.dart index 652d520ea..2982476f7 100644 --- a/lib/ui/payment_term/edit/payment_term_edit.dart +++ b/lib/ui/payment_term/edit/payment_term_edit.dart @@ -74,6 +74,7 @@ class _PaymentTermEditState extends State { final localization = AppLocalization.of(context); return EditScaffold( + entity: viewModel.paymentTerm, title: viewModel.paymentTerm.isNew ? localization.newPaymentTerm : localization.editPaymentTerm, diff --git a/lib/ui/recurring_invoice/edit/recurring_invoice_edit.dart b/lib/ui/recurring_invoice/edit/recurring_invoice_edit.dart index 93fefa773..0511af542 100644 --- a/lib/ui/recurring_invoice/edit/recurring_invoice_edit.dart +++ b/lib/ui/recurring_invoice/edit/recurring_invoice_edit.dart @@ -88,6 +88,7 @@ class _RecurringInvoiceEditState extends State final isFullscreen = prefState.isEditorFullScreen(EntityType.invoice); return EditScaffold( + entity: invoice, isFullscreen: isFullscreen, title: recurringInvoice.isNew ? localization.newRecurringInvoice diff --git a/lib/ui/subscription/edit/subscription_edit.dart b/lib/ui/subscription/edit/subscription_edit.dart index 77625c4d7..53b59e81b 100644 --- a/lib/ui/subscription/edit/subscription_edit.dart +++ b/lib/ui/subscription/edit/subscription_edit.dart @@ -179,6 +179,7 @@ class _SubscriptionEditState extends State final value = _postPurchaseHeaderValueController.text.trim(); return EditScaffold( + entity: subscription, title: subscription.isNew ? localization.newSubscription : localization.editSubscription, diff --git a/lib/ui/task_status/edit/task_status_edit.dart b/lib/ui/task_status/edit/task_status_edit.dart index 08b2eec87..5d4aa9139 100644 --- a/lib/ui/task_status/edit/task_status_edit.dart +++ b/lib/ui/task_status/edit/task_status_edit.dart @@ -74,6 +74,7 @@ class _TaskStatusEditState extends State { final taskStatus = viewModel.taskStatus; return EditScaffold( + entity: taskStatus, title: taskStatus.isNew ? localization.newTaskStatus : localization.editTaskStatus, diff --git a/lib/ui/tax_rate/edit/tax_rate_edit.dart b/lib/ui/tax_rate/edit/tax_rate_edit.dart index 6d8e78175..cd7a697ac 100644 --- a/lib/ui/tax_rate/edit/tax_rate_edit.dart +++ b/lib/ui/tax_rate/edit/tax_rate_edit.dart @@ -81,6 +81,7 @@ class _TaxRateEditState extends State { final localization = AppLocalization.of(context); return EditScaffold( + entity: viewModel.taxRate, title: viewModel.taxRate.isNew ? localization.newTaxRate : localization.editTaxRate, diff --git a/lib/ui/token/edit/token_edit.dart b/lib/ui/token/edit/token_edit.dart index 4ff69a0ed..a0d4ca6ff 100644 --- a/lib/ui/token/edit/token_edit.dart +++ b/lib/ui/token/edit/token_edit.dart @@ -73,6 +73,7 @@ class _TokenEditState extends State { final token = viewModel.token; return EditScaffold( + entity: token, title: token.isNew ? localization.newToken : localization.editToken, onCancelPressed: (context) => viewModel.onCancelPressed(context), onSavePressed: (context) { diff --git a/lib/ui/webhook/edit/webhook_edit.dart b/lib/ui/webhook/edit/webhook_edit.dart index f8408e841..7ff3b0590 100644 --- a/lib/ui/webhook/edit/webhook_edit.dart +++ b/lib/ui/webhook/edit/webhook_edit.dart @@ -83,6 +83,7 @@ class _WebhookEditState extends State { final value = _headerValueController.text.trim(); return EditScaffold( + entity: webhook, title: webhook.isNew ? localization.newWebhook : localization.editWebhook, onCancelPressed: (context) => viewModel.onCancelPressed(context), onSavePressed: (context) {