This commit is contained in:
Hillel Coren 2018-08-23 10:48:01 -07:00
parent 91ef51d9ca
commit ca6610bc2b
9 changed files with 43 additions and 43 deletions

View File

@ -40,7 +40,7 @@ class EntityAction extends EnumClass {
static const EntityAction restore = _$restore;
static const EntityAction clone = _$clone;
static const EntityAction download = _$download;
static const EntityAction emailInvoice = _$email;
static const EntityAction email = _$email;
static const EntityAction markSent = _$markSent;
static const EntityAction invoice = _$invoice;
static const EntityAction pdf = _$pdf;

View File

@ -43,7 +43,7 @@ class InvoiceList extends StatelessWidget {
leading: Icon(Icons.send),
title: Text(AppLocalization.of(context).email),
onTap: () => viewModel.onEntityAction(
context, invoice, EntityAction.emailInvoice),
context, invoice, EntityAction.email),
)
: Container(),
ListTile(

View File

@ -117,7 +117,7 @@ class InvoiceListVM {
context, localization.markedInvoiceAsSent),
invoice.id));
break;
case EntityAction.emailInvoice:
case EntityAction.email:
store.dispatch(ShowEmailInvoice(
completer: popCompleter(
context, localization.emailedInvoice),

View File

@ -294,7 +294,7 @@ class _CustomAppBar extends StatelessWidget implements PreferredSizeWidget {
: null,
user.canEditEntity(invoice) && client.hasEmailAddress
? ActionMenuChoice(
action: EntityAction.emailInvoice,
action: EntityAction.email,
icon: Icons.send,
label: AppLocalization.of(context).email,
)

View File

@ -111,7 +111,7 @@ class InvoiceViewVM {
snackBarCompleter(context, localization.markedInvoiceAsSent),
invoice.id));
break;
case EntityAction.emailInvoice:
case EntityAction.email:
store.dispatch(ShowEmailInvoice(
completer:
snackBarCompleter(context, localization.emailedInvoice),

View File

@ -43,7 +43,7 @@ class QuoteList extends StatelessWidget {
leading: Icon(Icons.send),
title: Text(AppLocalization.of(context).email),
onTap: () => viewModel.onEntityAction(
context, invoice, EntityAction.emailInvoice),
context, invoice, EntityAction.email),
)
: Container(),
ListTile(
@ -163,7 +163,7 @@ class QuoteList extends StatelessWidget {
viewModel.onDismissed(
context, invoice, direction),
onTap: () =>
viewModel.onInvoiceTap(context, invoice),
viewModel.onQuoteTap(context, invoice),
onLongPress: () =>
_showMenu(context, invoice, client),
),

View File

@ -1,6 +1,7 @@
import 'dart:async';
import 'package:built_collection/built_collection.dart';
import 'package:invoiceninja_flutter/redux/client/client_actions.dart';
import 'package:invoiceninja_flutter/redux/quote/quote_actions.dart';
import 'package:invoiceninja_flutter/redux/quote/quote_selectors.dart';
import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart';
@ -14,7 +15,6 @@ import 'package:invoiceninja_flutter/utils/pdf.dart';
import 'package:redux/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';
class QuoteListBuilder extends StatelessWidget {
static const String route = '/invoices/edit';
@ -44,7 +44,7 @@ class QuoteListVM {
final String filter;
final bool isLoading;
final bool isLoaded;
final Function(BuildContext, InvoiceEntity) onInvoiceTap;
final Function(BuildContext, InvoiceEntity) onQuoteTap;
final Function(BuildContext, InvoiceEntity, DismissDirection) onDismissed;
final Function(BuildContext) onRefreshed;
final Function onClearClientFilterPressed;
@ -60,7 +60,7 @@ class QuoteListVM {
@required this.isLoading,
@required this.isLoaded,
@required this.filter,
@required this.onInvoiceTap,
@required this.onQuoteTap,
@required this.onDismissed,
@required this.onRefreshed,
@required this.onClearClientFilterPressed,
@ -75,7 +75,7 @@ class QuoteListVM {
}
final completer = snackBarCompleter(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadInvoices(completer: completer, force: true));
store.dispatch(LoadQuotes(completer: completer, force: true));
return completer.future;
}
@ -94,58 +94,58 @@ class QuoteListVM {
isLoading: state.isLoading,
isLoaded: state.invoiceState.isLoaded && state.clientState.isLoaded,
filter: state.invoiceListState.filter,
onInvoiceTap: (context, invoice) {
store.dispatch(ViewInvoice(invoiceId: invoice.id, context: context));
onQuoteTap: (context, invoice) {
store.dispatch(ViewQuote(quoteId: invoice.id, context: context));
},
onRefreshed: (context) => _handleRefresh(context),
onClearClientFilterPressed: () =>
store.dispatch(FilterInvoicesByClient()),
store.dispatch(FilterQuotesByClient()),
onViewClientFilterPressed: (BuildContext context) => store.dispatch(
ViewClient(
clientId: state.invoiceListState.filterClientId,
context: context)),
onEntityAction: (context, invoice, action) {
onEntityAction: (context, quote, action) {
final localization = AppLocalization.of(context);
switch (action) {
case EntityAction.pdf:
Navigator.of(context).pop();
viewPdf(invoice, context);
viewPdf(quote, context);
break;
case EntityAction.markSent:
store.dispatch(MarkSentInvoiceRequest(
store.dispatch(MarkSentQuoteRequest(
popCompleter(
context, localization.markedInvoiceAsSent),
invoice.id));
context, localization.markedQuoteAsSent),
quote.id));
break;
case EntityAction.emailInvoice:
store.dispatch(ShowEmailInvoice(
case EntityAction.email:
store.dispatch(ShowEmailQuote(
completer: popCompleter(
context, localization.emailedInvoice),
invoice: invoice,
context, localization.emailedQuote),
quote: quote,
context: context));
break;
case EntityAction.clone:
Navigator.of(context).pop();
store.dispatch(
EditInvoice(context: context, invoice: invoice.clone));
EditQuote(context: context, quote: quote.clone));
break;
case EntityAction.restore:
store.dispatch(RestoreInvoiceRequest(
store.dispatch(RestoreQuoteRequest(
popCompleter(
context, localization.restoredInvoice),
invoice.id));
context, localization.restoredQuote),
quote.id));
break;
case EntityAction.archive:
store.dispatch(ArchiveInvoiceRequest(
store.dispatch(ArchiveQuoteRequest(
popCompleter(
context, localization.archivedInvoice),
invoice.id));
context, localization.archivedQuote),
quote.id));
break;
case EntityAction.delete:
store.dispatch(DeleteInvoiceRequest(
store.dispatch(DeleteQuoteRequest(
popCompleter(
context, localization.deletedInvoice),
invoice.id));
context, localization.deletedQuote),
quote.id));
break;
}
},
@ -154,26 +154,26 @@ class QuoteListVM {
final localization = AppLocalization.of(context);
if (direction == DismissDirection.endToStart) {
if (invoice.isDeleted || invoice.isArchived) {
store.dispatch(RestoreInvoiceRequest(
store.dispatch(RestoreQuoteRequest(
snackBarCompleter(
context, localization.restoredInvoice),
context, localization.restoredQuote),
invoice.id));
} else {
store.dispatch(ArchiveInvoiceRequest(
store.dispatch(ArchiveQuoteRequest(
snackBarCompleter(
context, localization.archivedInvoice),
context, localization.archivedQuote),
invoice.id));
}
} else if (direction == DismissDirection.startToEnd) {
if (invoice.isDeleted) {
store.dispatch(RestoreInvoiceRequest(
store.dispatch(RestoreQuoteRequest(
snackBarCompleter(
context, localization.restoredInvoice),
context, localization.restoredQuote),
invoice.id));
} else {
store.dispatch(DeleteInvoiceRequest(
store.dispatch(DeleteQuoteRequest(
snackBarCompleter(
context, localization.deletedInvoice),
context, localization.deletedQuote),
invoice.id));
}
}

View File

@ -294,7 +294,7 @@ class _CustomAppBar extends StatelessWidget implements PreferredSizeWidget {
: null,
user.canEditEntity(quote) && client.hasEmailAddress
? ActionMenuChoice(
action: EntityAction.emailInvoice,
action: EntityAction.email,
icon: Icons.send,
label: AppLocalization.of(context).email,
)

View File

@ -111,7 +111,7 @@ class QuoteViewVM {
snackBarCompleter(context, localization.markedQuoteAsSent),
quote.id));
break;
case EntityAction.emailInvoice:
case EntityAction.email:
store.dispatch(ShowEmailQuote(
completer:
snackBarCompleter(context, localization.emailedQuote),