This commit is contained in:
Hillel Coren 2018-08-24 16:33:57 -07:00
parent a950c6f0b8
commit 78c13d51aa
3 changed files with 44 additions and 51 deletions

View File

@ -4,6 +4,7 @@ import 'package:flutter_redux/flutter_redux.dart';
import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/data/models/models.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/redux/invoice/invoice_actions.dart'; import 'package:invoiceninja_flutter/redux/invoice/invoice_actions.dart';
import 'package:invoiceninja_flutter/redux/quote/quote_actions.dart';
import 'package:invoiceninja_flutter/ui/app/actions_menu_button.dart'; import 'package:invoiceninja_flutter/ui/app/actions_menu_button.dart';
import 'package:invoiceninja_flutter/ui/app/buttons/edit_icon_button.dart'; import 'package:invoiceninja_flutter/ui/app/buttons/edit_icon_button.dart';
import 'package:invoiceninja_flutter/ui/client/view/client_view_activity.dart'; import 'package:invoiceninja_flutter/ui/client/view/client_view_activity.dart';
@ -69,44 +70,34 @@ class _ClientViewState extends State<ClientView>
context: context, context: context,
builder: (BuildContext context) => builder: (BuildContext context) =>
SimpleDialog(children: <Widget>[ SimpleDialog(children: <Widget>[
user.canCreate(EntityType.client) ? ListTile( user.canCreate(EntityType.client)
dense: true, ? ListTile(
leading: Icon(Icons.add_circle_outline), dense: true,
title: Text(localization.invoice), leading: Icon(Icons.add_circle_outline),
onTap: () { title: Text(localization.invoice),
Navigator.of(context).pop(); onTap: () {
store.dispatch(EditInvoice( Navigator.of(context).pop();
invoice: InvoiceEntity() store.dispatch(EditInvoice(
.rebuild((b) => b.clientId = client.id), invoice: InvoiceEntity()
context: context)); .rebuild((b) => b.clientId = client.id),
}, context: context));
) : Container(), },
/* )
ListTile( : Container(),
dense: true, user.canCreate(EntityType.quote)
leading: Icon(Icons.add_circle_outline), ? ListTile(
title: Text(localization.quote), dense: true,
onTap: () {}, leading: Icon(Icons.add_circle_outline),
), title: Text(localization.quote),
ListTile( onTap: () {
dense: true, Navigator.of(context).pop();
leading: Icon(Icons.add_circle_outline), store.dispatch(EditQuote(
title: Text(localization.payment), quote: InvoiceEntity(isQuote: true)
onTap: () {}, .rebuild((b) => b.clientId = client.id),
), context: context));
ListTile( },
dense: true, )
leading: Icon(Icons.add_circle_outline), : Container(),
title: Text(localization.expense),
onTap: () {},
),
ListTile(
dense: true,
leading: Icon(Icons.add_circle_outline),
title: Text(localization.task),
onTap: () {},
),
*/
]), ]),
); );
}, },
@ -220,10 +211,12 @@ class _CustomAppBar extends StatelessWidget implements PreferredSizeWidget {
actions: client.isNew actions: client.isNew
? [] ? []
: [ : [
user.canEditEntity(client) ? EditIconButton( user.canEditEntity(client)
isVisible: !client.isDeleted, ? EditIconButton(
onPressed: () => viewModel.onEditPressed(context), isVisible: !client.isDeleted,
) : Container(), onPressed: () => viewModel.onEditPressed(context),
)
: Container(),
ActionMenuButton( ActionMenuButton(
user: viewModel.company.user, user: viewModel.company.user,
isSaving: viewModel.isSaving, isSaving: viewModel.isSaving,

View File

@ -153,7 +153,7 @@ class QuoteEditDetailsState extends State<QuoteEditDetails> {
}, },
), ),
DatePicker( DatePicker(
labelText: localization.dueDate, labelText: localization.validUntil,
selectedDate: quote.dueDate, selectedDate: quote.dueDate,
onSelected: (date) { onSelected: (date) {
viewModel.onChanged(quote.rebuild((b) => b..dueDate = date)); viewModel.onChanged(quote.rebuild((b) => b..dueDate = date));

View File

@ -5,9 +5,9 @@ import 'package:flutter_redux/flutter_redux.dart';
import 'package:invoiceninja_flutter/redux/quote/quote_actions.dart'; import 'package:invoiceninja_flutter/redux/quote/quote_actions.dart';
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart'; import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart'; import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart';
import 'package:invoiceninja_flutter/ui/invoice/invoice_screen.dart';
import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view_vm.dart';
import 'package:invoiceninja_flutter/ui/quote/edit/quote_edit.dart'; import 'package:invoiceninja_flutter/ui/quote/edit/quote_edit.dart';
import 'package:invoiceninja_flutter/ui/quote/quote_screen.dart';
import 'package:invoiceninja_flutter/ui/quote/view/quote_view_vm.dart';
import 'package:redux/redux.dart'; import 'package:redux/redux.dart';
import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/data/models/models.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart';
@ -61,19 +61,19 @@ class QuoteEditVM {
company: state.selectedCompany, company: state.selectedCompany,
isSaving: state.isSaving, isSaving: state.isSaving,
quote: quote, quote: quote,
quoteItem: state.invoiceUIState.editingItem, quoteItem: state.quoteUIState.editingItem,
origQuote: store.state.invoiceState.map[quote.id], origQuote: store.state.quoteState.map[quote.id],
onBackPressed: () => onBackPressed: () =>
store.dispatch(UpdateCurrentRoute(InvoiceScreen.route)), store.dispatch(UpdateCurrentRoute(QuoteScreen.route)),
onSavePressed: (BuildContext context) { onSavePressed: (BuildContext context) {
final Completer<InvoiceEntity> completer = Completer<InvoiceEntity>(); final Completer<InvoiceEntity> completer = Completer<InvoiceEntity>();
store.dispatch( store.dispatch(
SaveQuoteRequest(completer: completer, quote: quote)); SaveQuoteRequest(completer: completer, quote: quote));
return completer.future.then((savedInvoice) { return completer.future.then((savedQuote) {
if (quote.isNew) { if (quote.isNew) {
Navigator.of(context).pushReplacementNamed(InvoiceViewScreen.route); Navigator.of(context).pushReplacementNamed(QuoteViewScreen.route);
} else { } else {
Navigator.of(context).pop(savedInvoice); Navigator.of(context).pop(savedQuote);
} }
}).catchError((Object error) { }).catchError((Object error) {
showDialog<ErrorDialog>( showDialog<ErrorDialog>(