From ce4c38858048eab07c47414c3b6eb926c413258d Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Sun, 1 Dec 2019 19:49:06 +0200 Subject: [PATCH] Settings --- lib/ui/invoice/edit/invoice_edit_desktop.dart | 6 +++- ...e.dart => invoice_edit_items_desktop.dart} | 33 +++++++++++++++++-- .../invoice/edit/invoice_edit_items_vm.dart | 13 ++++++-- lib/ui/quote/edit/quote_edit_items_vm.dart | 4 +-- 4 files changed, 48 insertions(+), 8 deletions(-) rename lib/ui/invoice/edit/{invoice_edit_items_table.dart => invoice_edit_items_desktop.dart} (59%) diff --git a/lib/ui/invoice/edit/invoice_edit_desktop.dart b/lib/ui/invoice/edit/invoice_edit_desktop.dart index e259d42dd..62414a1ea 100644 --- a/lib/ui/invoice/edit/invoice_edit_desktop.dart +++ b/lib/ui/invoice/edit/invoice_edit_desktop.dart @@ -9,6 +9,8 @@ import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart'; import 'package:invoiceninja_flutter/ui/app/forms/discount_field.dart'; import 'package:invoiceninja_flutter/ui/app/forms/user_picker.dart'; import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_details_vm.dart'; +import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_items_vm.dart'; +import 'package:invoiceninja_flutter/ui/quote/edit/quote_edit_items_vm.dart'; import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; import 'package:invoiceninja_flutter/utils/localization.dart'; @@ -126,6 +128,7 @@ class InvoiceEditDesktopState extends State { children: [ Row( crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.max, children: [ Expanded( child: FormCard( @@ -254,7 +257,8 @@ class InvoiceEditDesktopState extends State { ), ), ], - ) + ), + widget.isQuote ? QuoteEditItemsScreen() : InvoiceEditItemsScreen() ], ); } diff --git a/lib/ui/invoice/edit/invoice_edit_items_table.dart b/lib/ui/invoice/edit/invoice_edit_items_desktop.dart similarity index 59% rename from lib/ui/invoice/edit/invoice_edit_items_table.dart rename to lib/ui/invoice/edit/invoice_edit_items_desktop.dart index d211c3e48..716b7b8ac 100644 --- a/lib/ui/invoice/edit/invoice_edit_items_table.dart +++ b/lib/ui/invoice/edit/invoice_edit_items_desktop.dart @@ -2,8 +2,8 @@ import 'package:flutter/material.dart'; import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_items_vm.dart'; import 'package:invoiceninja_flutter/utils/localization.dart'; -class InvoiceEditItemsTable extends StatelessWidget { - const InvoiceEditItemsTable({this.viewModel}); +class InvoiceEditItemsDesktop extends StatelessWidget { + const InvoiceEditItemsDesktop({this.viewModel}); final EntityEditItemsVM viewModel; @@ -12,6 +12,35 @@ class InvoiceEditItemsTable extends StatelessWidget { final localization = AppLocalization.of(context); final invoice = viewModel.invoice; + return DataTable( + columns: [ + DataColumn( + label: Text(localization.item), + ), + DataColumn( + label: Text(localization.description), + ), + DataColumn( + label: Text(localization.unitCost), + ), + DataColumn( + label: Text(localization.quantity), + ), + DataColumn( + label: Text(localization.lineTotal), + ), + ], + rows: invoice.lineItems.map((item) => DataRow( + cells: [ + DataCell(Text(item.productKey)), + DataCell(Text('')), + DataCell(Text('')), + DataCell(Text('')), + DataCell(Text('')), + ], + )).toList(), + ); + return SingleChildScrollView( scrollDirection: Axis.horizontal, child: DataTable( diff --git a/lib/ui/invoice/edit/invoice_edit_items_vm.dart b/lib/ui/invoice/edit/invoice_edit_items_vm.dart index eae62baca..a066a71a8 100644 --- a/lib/ui/invoice/edit/invoice_edit_items_vm.dart +++ b/lib/ui/invoice/edit/invoice_edit_items_vm.dart @@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_redux/flutter_redux.dart'; import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_items.dart'; +import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_items_desktop.dart'; import 'package:redux/redux.dart'; import 'package:invoiceninja_flutter/redux/invoice/invoice_actions.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; @@ -17,9 +18,15 @@ class InvoiceEditItemsScreen extends StatelessWidget { return InvoiceEditItemsVM.fromStore(store); }, builder: (context, viewModel) { - return InvoiceEditItems( - viewModel: viewModel, - ); + if (viewModel.state.prefState.isDesktop) { + return InvoiceEditItemsDesktop( + viewModel: viewModel, + ); + } else { + return InvoiceEditItems( + viewModel: viewModel, + ); + } }, ); } diff --git a/lib/ui/quote/edit/quote_edit_items_vm.dart b/lib/ui/quote/edit/quote_edit_items_vm.dart index deb803468..d2e716489 100644 --- a/lib/ui/quote/edit/quote_edit_items_vm.dart +++ b/lib/ui/quote/edit/quote_edit_items_vm.dart @@ -2,7 +2,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_redux/flutter_redux.dart'; import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_items.dart'; -import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_items_table.dart'; +import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_items_desktop.dart'; import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_items_vm.dart'; import 'package:redux/redux.dart'; import 'package:invoiceninja_flutter/redux/quote/quote_actions.dart'; @@ -20,7 +20,7 @@ class QuoteEditItemsScreen extends StatelessWidget { }, builder: (context, viewModel) { if (viewModel.state.prefState.isDesktop) { - return InvoiceEditItemsTable( + return InvoiceEditItemsDesktop( viewModel: viewModel, ); } else {