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

View File

@ -153,7 +153,7 @@ class QuoteEditDetailsState extends State<QuoteEditDetails> {
},
),
DatePicker(
labelText: localization.dueDate,
labelText: localization.validUntil,
selectedDate: quote.dueDate,
onSelected: (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/ui/ui_actions.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/quote_screen.dart';
import 'package:invoiceninja_flutter/ui/quote/view/quote_view_vm.dart';
import 'package:redux/redux.dart';
import 'package:invoiceninja_flutter/data/models/models.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
@ -61,19 +61,19 @@ class QuoteEditVM {
company: state.selectedCompany,
isSaving: state.isSaving,
quote: quote,
quoteItem: state.invoiceUIState.editingItem,
origQuote: store.state.invoiceState.map[quote.id],
quoteItem: state.quoteUIState.editingItem,
origQuote: store.state.quoteState.map[quote.id],
onBackPressed: () =>
store.dispatch(UpdateCurrentRoute(InvoiceScreen.route)),
store.dispatch(UpdateCurrentRoute(QuoteScreen.route)),
onSavePressed: (BuildContext context) {
final Completer<InvoiceEntity> completer = Completer<InvoiceEntity>();
store.dispatch(
SaveQuoteRequest(completer: completer, quote: quote));
return completer.future.then((savedInvoice) {
return completer.future.then((savedQuote) {
if (quote.isNew) {
Navigator.of(context).pushReplacementNamed(InvoiceViewScreen.route);
Navigator.of(context).pushReplacementNamed(QuoteViewScreen.route);
} else {
Navigator.of(context).pop(savedInvoice);
Navigator.of(context).pop(savedQuote);
}
}).catchError((Object error) {
showDialog<ErrorDialog>(