Show toast messages
This commit is contained in:
parent
7bb66c75b9
commit
48290144c9
|
|
@ -1026,63 +1026,32 @@ void editEntity(
|
|||
callback: () {
|
||||
switch (entityType) {
|
||||
case EntityType.client:
|
||||
store.dispatch(
|
||||
EditClient(
|
||||
client: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<ClientEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdClient
|
||||
: localization.updatedClient)),
|
||||
);
|
||||
store.dispatch(EditClient(
|
||||
client: entity,
|
||||
navigator: navigator,
|
||||
completer: completer,
|
||||
));
|
||||
break;
|
||||
case EntityType.user:
|
||||
store.dispatch(
|
||||
EditUser(
|
||||
user: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<UserEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdUser
|
||||
: localization.updatedUser)),
|
||||
);
|
||||
store.dispatch(EditUser(
|
||||
user: entity,
|
||||
navigator: navigator,
|
||||
completer: completer,
|
||||
));
|
||||
break;
|
||||
case EntityType.project:
|
||||
store.dispatch(EditProject(
|
||||
project: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<ProjectEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdProject
|
||||
: localization.updatedProject)));
|
||||
project: entity, navigator: navigator, completer: completer));
|
||||
break;
|
||||
case EntityType.taxRate:
|
||||
store.dispatch(EditTaxRate(
|
||||
taxRate: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<TaxRateEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdTaxRate
|
||||
: localization.updatedTaxRate)));
|
||||
taxRate: entity, navigator: navigator, completer: completer));
|
||||
break;
|
||||
case EntityType.companyGateway:
|
||||
store.dispatch(EditCompanyGateway(
|
||||
companyGateway: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<CompanyGatewayEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdCompanyGateway
|
||||
: localization.updatedCompanyGateway)));
|
||||
completer: completer));
|
||||
break;
|
||||
case EntityType.invoice:
|
||||
final invoice = entity as InvoiceEntity;
|
||||
|
|
@ -1108,12 +1077,7 @@ void editEntity(
|
|||
store.dispatch(EditInvoice(
|
||||
invoice: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<InvoiceEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdInvoice
|
||||
: localization.updatedInvoice),
|
||||
completer: completer,
|
||||
invoiceItemIndex: subIndex,
|
||||
));
|
||||
}
|
||||
|
|
@ -1122,12 +1086,7 @@ void editEntity(
|
|||
store.dispatch(EditQuote(
|
||||
quote: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<InvoiceEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdQuote
|
||||
: localization.updatedQuote),
|
||||
completer: completer,
|
||||
quoteItemIndex: subIndex,
|
||||
));
|
||||
break;
|
||||
|
|
@ -1135,24 +1094,12 @@ void editEntity(
|
|||
store.dispatch(EditVendor(
|
||||
vendor: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<VendorEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdVendor
|
||||
: localization.updatedVendor),
|
||||
completer: completer,
|
||||
));
|
||||
break;
|
||||
case EntityType.product:
|
||||
store.dispatch(EditProduct(
|
||||
product: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<ProductEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdProduct
|
||||
: localization.updatedProduct)));
|
||||
product: entity, navigator: navigator, completer: completer));
|
||||
break;
|
||||
case EntityType.task:
|
||||
store.dispatch(EditTask(
|
||||
|
|
@ -1160,54 +1107,27 @@ void editEntity(
|
|||
(b) => b..showAsRunning = (entity as TaskEntity).isRunning),
|
||||
navigator: navigator,
|
||||
taskTimeIndex: subIndex,
|
||||
completer: completer ??
|
||||
snackBarCompleter<TaskEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdTask
|
||||
: localization.updatedTask),
|
||||
completer: completer,
|
||||
));
|
||||
break;
|
||||
case EntityType.expense:
|
||||
store.dispatch(EditExpense(
|
||||
expense: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<ExpenseEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdExpense
|
||||
: localization.updatedExpense),
|
||||
));
|
||||
store.dispatch(
|
||||
EditExpense(
|
||||
expense: entity, navigator: navigator, completer: completer),
|
||||
);
|
||||
break;
|
||||
//case EntityType.expenseCategory:
|
||||
//store.dispatch(EditExpenseCategory(taxRate: entity, navigator: navigator));
|
||||
//break;
|
||||
//case EntityType.credit:
|
||||
//store.dispatch(EditCredit(credit: entity, navigator: navigator));
|
||||
//break;
|
||||
case EntityType.payment:
|
||||
store.dispatch(EditPayment(
|
||||
payment: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<PaymentEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdPayment
|
||||
: localization.updatedPayment),
|
||||
completer: completer,
|
||||
));
|
||||
break;
|
||||
case EntityType.group:
|
||||
store.dispatch(EditGroup(
|
||||
group: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<GroupEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdGroup
|
||||
: localization.updatedGroup),
|
||||
completer: completer,
|
||||
));
|
||||
break;
|
||||
// STARTER: edit - do not remove comment
|
||||
|
|
@ -1215,12 +1135,7 @@ void editEntity(
|
|||
store.dispatch(EditTaskStatus(
|
||||
taskStatus: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<TaskStatusEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdTaskStatus
|
||||
: localization.updatedTaskStatus),
|
||||
completer: completer,
|
||||
));
|
||||
break;
|
||||
|
||||
|
|
@ -1228,12 +1143,7 @@ void editEntity(
|
|||
store.dispatch(EditExpenseCategory(
|
||||
expenseCategory: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<ExpenseCategoryEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdExpenseCategory
|
||||
: localization.updatedExpenseCategory),
|
||||
completer: completer,
|
||||
));
|
||||
break;
|
||||
|
||||
|
|
@ -1241,12 +1151,7 @@ void editEntity(
|
|||
store.dispatch(EditRecurringInvoice(
|
||||
recurringInvoice: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<InvoiceEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdRecurringInvoice
|
||||
: localization.updatedRecurringInvoice),
|
||||
completer: completer,
|
||||
));
|
||||
break;
|
||||
|
||||
|
|
@ -1254,12 +1159,7 @@ void editEntity(
|
|||
store.dispatch(EditWebhook(
|
||||
webhook: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<WebhookEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdWebhook
|
||||
: localization.updatedWebhook),
|
||||
completer: completer,
|
||||
));
|
||||
break;
|
||||
|
||||
|
|
@ -1267,12 +1167,7 @@ void editEntity(
|
|||
store.dispatch(EditToken(
|
||||
token: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<TokenEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdToken
|
||||
: localization.updatedToken),
|
||||
completer: completer,
|
||||
));
|
||||
break;
|
||||
|
||||
|
|
@ -1280,12 +1175,7 @@ void editEntity(
|
|||
store.dispatch(EditPaymentTerm(
|
||||
paymentTerm: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<PaymentTermEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdPaymentTerm
|
||||
: localization.updatedPaymentTerm),
|
||||
completer: completer,
|
||||
));
|
||||
break;
|
||||
|
||||
|
|
@ -1293,12 +1183,7 @@ void editEntity(
|
|||
store.dispatch(EditDesign(
|
||||
design: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<DesignEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdDesign
|
||||
: localization.updatedDesign),
|
||||
completer: completer,
|
||||
));
|
||||
break;
|
||||
|
||||
|
|
@ -1306,12 +1191,7 @@ void editEntity(
|
|||
store.dispatch(EditCredit(
|
||||
credit: entity,
|
||||
navigator: navigator,
|
||||
completer: completer ??
|
||||
snackBarCompleter<InvoiceEntity>(
|
||||
context,
|
||||
entity.isNew
|
||||
? localization.createdCredit
|
||||
: localization.updatedCredit),
|
||||
completer: completer,
|
||||
));
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'dart:async';
|
|||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
||||
|
|
@ -11,6 +12,7 @@ import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart';
|
||||
import 'package:invoiceninja_flutter/ui/client/edit/client_edit.dart';
|
||||
import 'package:invoiceninja_flutter/ui/client/view/client_view_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/settings/localization_vm.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
|
|
@ -98,9 +100,11 @@ class ClientEditVM {
|
|||
return null;
|
||||
}
|
||||
final Completer<ClientEntity> completer = Completer<ClientEntity>();
|
||||
final localization = AppLocalization.of(context);
|
||||
store.dispatch(
|
||||
SaveClientRequest(completer: completer, client: client));
|
||||
return completer.future.then((savedClient) {
|
||||
showToast(client.isNew ? localization.createdClient : localization.updatedClient);
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(ClientViewScreen.route));
|
||||
if (client.isNew && state.clientUIState.saveCompleter == null) {
|
||||
|
|
|
|||
|
|
@ -2,9 +2,11 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/constants.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||
|
|
@ -68,11 +70,16 @@ class CompanyGatewayEditVM {
|
|||
store.dispatch(UpdateCurrentRoute(state.uiState.previousRoute));
|
||||
},
|
||||
onSavePressed: (BuildContext context) {
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<CompanyGatewayEntity> completer =
|
||||
new Completer<CompanyGatewayEntity>();
|
||||
store.dispatch(SaveCompanyGatewayRequest(
|
||||
completer: completer, companyGateway: companyGateway));
|
||||
return completer.future.then((savedCompanyGateway) {
|
||||
showToast(companyGateway.isNew
|
||||
? localization.createdCompanyGateway
|
||||
: localization.updatedCompanyGateway);
|
||||
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(CompanyGatewayViewScreen.route));
|
||||
if (companyGateway.isNew) {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/credit/credit_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||
|
|
@ -79,9 +80,14 @@ class CreditEditVM extends EntityEditVM {
|
|||
});
|
||||
return null;
|
||||
}
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<InvoiceEntity> completer = Completer<InvoiceEntity>();
|
||||
store.dispatch(SaveCreditRequest(completer: completer, credit: credit));
|
||||
return completer.future.then((savedCredit) {
|
||||
showToast(credit.isNew
|
||||
? localization.createdCredit
|
||||
: localization.updatedCredit);
|
||||
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(CreditViewScreen.route));
|
||||
if (credit.isNew) {
|
||||
|
|
|
|||
|
|
@ -55,11 +55,15 @@ class DocumentEditVM {
|
|||
},
|
||||
onSavePressed: (BuildContext context) {
|
||||
/*
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<DocumentEntity> completer =
|
||||
new Completer<DocumentEntity>();
|
||||
store.dispatch(
|
||||
SaveDocumentRequest(completer: completer, document: document));
|
||||
return completer.future.then((savedDocument) {
|
||||
showToast(client.isNew
|
||||
? localization.createdClient
|
||||
: localization.updatedClient);
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(DocumentViewScreen.route));
|
||||
if (document.isNew) {
|
||||
|
|
|
|||
|
|
@ -2,8 +2,10 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||
|
|
@ -96,11 +98,16 @@ class ExpenseEditVM {
|
|||
});
|
||||
},
|
||||
onSavePressed: (BuildContext context) {
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<ExpenseEntity> completer =
|
||||
new Completer<ExpenseEntity>();
|
||||
store.dispatch(
|
||||
SaveExpenseRequest(completer: completer, expense: expense));
|
||||
return completer.future.then((savedExpense) {
|
||||
showToast(expense.isNew
|
||||
? localization.createdExpense
|
||||
: localization.updatedExpense);
|
||||
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(ExpenseViewScreen.route));
|
||||
if (expense.isNew) {
|
||||
|
|
|
|||
|
|
@ -2,9 +2,11 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/constants.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||
|
|
@ -68,11 +70,16 @@ class ExpenseCategoryEditVM {
|
|||
store.dispatch(UpdateCurrentRoute(state.uiState.previousRoute));
|
||||
},
|
||||
onSavePressed: (BuildContext context) {
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<ExpenseCategoryEntity> completer =
|
||||
new Completer<ExpenseCategoryEntity>();
|
||||
store.dispatch(SaveExpenseCategoryRequest(
|
||||
completer: completer, expenseCategory: expenseCategory));
|
||||
return completer.future.then((savedExpenseCategory) {
|
||||
showToast(expenseCategory.isNew
|
||||
? localization.createdExpenseCategory
|
||||
: localization.updatedExpenseCategory);
|
||||
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(ExpenseCategoryViewScreen.route));
|
||||
if (expenseCategory.isNew) {
|
||||
|
|
|
|||
|
|
@ -2,9 +2,11 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/constants.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||
|
|
@ -67,9 +69,14 @@ class GroupEditVM {
|
|||
store.dispatch(UpdateCurrentRoute(state.uiState.previousRoute));
|
||||
},
|
||||
onSavePressed: (BuildContext context) {
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<GroupEntity> completer = Completer<GroupEntity>();
|
||||
store.dispatch(SaveGroupRequest(completer: completer, group: group));
|
||||
return completer.future.then((savedGroup) {
|
||||
showToast(group.isNew
|
||||
? localization.createdGroup
|
||||
: localization.updatedGroup);
|
||||
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(GroupViewScreen.route));
|
||||
if (group.isNew) {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart';
|
||||
|
|
@ -102,10 +103,15 @@ class InvoiceEditVM extends EntityEditVM {
|
|||
});
|
||||
return null;
|
||||
}
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<InvoiceEntity> completer = Completer<InvoiceEntity>();
|
||||
store.dispatch(
|
||||
SaveInvoiceRequest(completer: completer, invoice: invoice));
|
||||
return completer.future.then((savedInvoice) {
|
||||
showToast(invoice.isNew
|
||||
? localization.createdInvoice
|
||||
: localization.updatedInvoice);
|
||||
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(InvoiceViewScreen.route));
|
||||
if (invoice.isNew) {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/static/static_state.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/pref_state.dart';
|
||||
|
|
@ -83,10 +84,14 @@ class PaymentEditVM {
|
|||
});
|
||||
return null;
|
||||
}
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<PaymentEntity> completer = Completer<PaymentEntity>();
|
||||
store.dispatch(
|
||||
SavePaymentRequest(completer: completer, payment: payment));
|
||||
return completer.future.then((savedPayment) {
|
||||
showToast(payment.isNew
|
||||
? localization.createdPayment
|
||||
: localization.updatedPayment);
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(PaymentViewScreen.route));
|
||||
if (payment.isNew) {
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart';
|
||||
import 'package:invoiceninja_flutter/ui/payment/refund/payment_refund.dart';
|
||||
import 'package:invoiceninja_flutter/ui/payment/view/payment_view_vm.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
import 'package:invoiceninja_flutter/redux/payment/payment_actions.dart';
|
||||
|
|
|
|||
|
|
@ -2,10 +2,12 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/constants.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||
import 'package:invoiceninja_flutter/ui/payment_term/payment_term_screen.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||
|
|
@ -68,11 +70,16 @@ class PaymentTermEditVM {
|
|||
store.dispatch(UpdateCurrentRoute(state.uiState.previousRoute));
|
||||
},
|
||||
onSavePressed: (BuildContext context) {
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<PaymentTermEntity> completer =
|
||||
new Completer<PaymentTermEntity>();
|
||||
store.dispatch(SavePaymentTermRequest(
|
||||
completer: completer, paymentTerm: paymentTerm));
|
||||
return completer.future.then((savedPaymentTerm) {
|
||||
showToast(paymentTerm.isNew
|
||||
? localization.createdPaymentTerm
|
||||
: localization.updatedPaymentTerm);
|
||||
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(PaymentTermScreen.route));
|
||||
if (paymentTerm.isNew) {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
||||
|
|
@ -11,6 +12,7 @@ import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
|||
import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart';
|
||||
import 'package:invoiceninja_flutter/ui/product/edit/product_edit.dart';
|
||||
import 'package:invoiceninja_flutter/ui/product/view/product_view_vm.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
|
||||
|
|
@ -68,11 +70,16 @@ class ProductEditVM {
|
|||
store.dispatch(UpdateCurrentRoute(state.uiState.previousRoute));
|
||||
},
|
||||
onSavePressed: (BuildContext context) {
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<ProductEntity> completer =
|
||||
new Completer<ProductEntity>();
|
||||
store.dispatch(
|
||||
SaveProductRequest(completer: completer, product: product));
|
||||
return completer.future.then((savedProduct) {
|
||||
showToast(product.isNew
|
||||
? localization.createdProduct
|
||||
: localization.updatedProduct);
|
||||
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(ProductViewScreen.route));
|
||||
if (product.isNew) {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/client_model.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/company_model.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||
|
|
@ -9,6 +10,7 @@ import 'package:invoiceninja_flutter/redux/app/app_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/project/view/project_view_vm.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
import 'package:invoiceninja_flutter/redux/project/project_actions.dart';
|
||||
|
|
@ -88,11 +90,16 @@ class ProjectEditVM {
|
|||
});
|
||||
},
|
||||
onSavePressed: (BuildContext context) {
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<ProjectEntity> completer =
|
||||
new Completer<ProjectEntity>();
|
||||
store.dispatch(
|
||||
SaveProjectRequest(completer: completer, project: project));
|
||||
return completer.future.then((savedProject) {
|
||||
showToast(project.isNew
|
||||
? localization.createdProject
|
||||
: localization.updatedProject);
|
||||
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(ProjectViewScreen.route));
|
||||
if (project.isNew && state.projectUIState.saveCompleter == null) {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/quote/quote_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||
|
|
@ -79,9 +80,14 @@ class QuoteEditVM extends EntityEditVM {
|
|||
});
|
||||
return null;
|
||||
}
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<InvoiceEntity> completer = Completer<InvoiceEntity>();
|
||||
store.dispatch(SaveQuoteRequest(completer: completer, quote: quote));
|
||||
return completer.future.then((savedQuote) {
|
||||
showToast(quote.isNew
|
||||
? localization.createdQuote
|
||||
: localization.updatedQuote);
|
||||
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(QuoteViewScreen.route));
|
||||
if (quote.isNew) {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/recurring_invoice/recurring_invoice_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||
|
|
@ -79,10 +80,15 @@ class RecurringInvoiceEditVM extends EntityEditVM {
|
|||
});
|
||||
return null;
|
||||
}
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<InvoiceEntity> completer = Completer<InvoiceEntity>();
|
||||
store.dispatch(SaveRecurringInvoiceRequest(
|
||||
completer: completer, recurringInvoice: recurringInvoice));
|
||||
return completer.future.then((savedRecurringInvoice) {
|
||||
showToast(recurringInvoice.isNew
|
||||
? localization.createdRecurringInvoice
|
||||
: localization.updatedRecurringInvoice);
|
||||
|
||||
if (isMobile(context)) {
|
||||
store
|
||||
.dispatch(UpdateCurrentRoute(RecurringInvoiceViewScreen.route));
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||
|
|
@ -84,9 +85,13 @@ class TaskEditVM {
|
|||
return null;
|
||||
}
|
||||
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<TaskEntity> completer = new Completer<TaskEntity>();
|
||||
store.dispatch(SaveTaskRequest(completer: completer, task: task));
|
||||
return completer.future.then((savedTask) {
|
||||
showToast(
|
||||
task.isNew ? localization.createTask : localization.updatedTask);
|
||||
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(TaskViewScreen.route));
|
||||
if (task.isNew) {
|
||||
|
|
|
|||
|
|
@ -2,9 +2,11 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/constants.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||
|
|
@ -67,11 +69,16 @@ class TaskStatusEditVM {
|
|||
store.dispatch(UpdateCurrentRoute(state.uiState.previousRoute));
|
||||
},
|
||||
onSavePressed: (BuildContext context) {
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<TaskStatusEntity> completer =
|
||||
new Completer<TaskStatusEntity>();
|
||||
store.dispatch(SaveTaskStatusRequest(
|
||||
completer: completer, taskStatus: taskStatus));
|
||||
return completer.future.then((savedTaskStatus) {
|
||||
showToast(taskStatus.isNew
|
||||
? localization.createdTaskStatus
|
||||
: localization.updatedTaskStatus);
|
||||
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(TaskStatusViewScreen.route));
|
||||
if (taskStatus.isNew) {
|
||||
|
|
|
|||
|
|
@ -2,9 +2,11 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/constants.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||
|
|
@ -67,11 +69,16 @@ class TaxRateEditVM {
|
|||
store.dispatch(UpdateCurrentRoute(state.uiState.previousRoute));
|
||||
},
|
||||
onSavePressed: (BuildContext context) {
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<TaxRateEntity> completer =
|
||||
new Completer<TaxRateEntity>();
|
||||
store.dispatch(
|
||||
SaveTaxRateRequest(completer: completer, taxRate: taxRate));
|
||||
return completer.future.then((savedTaxRate) {
|
||||
showToast(taxRate.isNew
|
||||
? localization.createdTaxRate
|
||||
: localization.updatedTaxRate);
|
||||
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(TaxRateViewScreen.route));
|
||||
if (taxRate.isNew) {
|
||||
|
|
|
|||
|
|
@ -2,11 +2,13 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/constants.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||
import 'package:invoiceninja_flutter/utils/dialogs.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||
|
|
@ -74,11 +76,16 @@ class TokenEditVM {
|
|||
passwordCallback(
|
||||
context: context,
|
||||
callback: (password) {
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<TokenEntity> completer =
|
||||
new Completer<TokenEntity>();
|
||||
store.dispatch(SaveTokenRequest(
|
||||
completer: completer, token: token, password: password));
|
||||
return completer.future.then((savedToken) {
|
||||
showToast(token.isNew
|
||||
? localization.createdToken
|
||||
: localization.updatedToken);
|
||||
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(TokenViewScreen.route));
|
||||
if (token.isNew) {
|
||||
|
|
|
|||
|
|
@ -2,10 +2,12 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/constants.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||
import 'package:invoiceninja_flutter/utils/dialogs.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||
|
|
@ -70,6 +72,7 @@ class UserEditVM {
|
|||
store.dispatch(UpdateCurrentRoute(state.uiState.previousRoute));
|
||||
},
|
||||
onSavePressed: (BuildContext context) {
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<UserEntity> completer = new Completer<UserEntity>();
|
||||
passwordCallback(
|
||||
context: context,
|
||||
|
|
@ -78,6 +81,9 @@ class UserEditVM {
|
|||
completer: completer, user: user, password: password));
|
||||
});
|
||||
return completer.future.then((savedUser) {
|
||||
showToast(
|
||||
user.isNew ? localization.createdUser : localization.updatedUser);
|
||||
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(UserViewScreen.route));
|
||||
if (user.isNew) {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/vendor_model.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
|
|
@ -80,9 +81,14 @@ class VendorEditVM {
|
|||
});
|
||||
return null;
|
||||
}
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<VendorEntity> completer = new Completer<VendorEntity>();
|
||||
store.dispatch(SaveVendorRequest(completer: completer, vendor: vendor));
|
||||
return completer.future.then((savedVendor) {
|
||||
showToast(vendor.isNew
|
||||
? localization.createdVendor
|
||||
: localization.updatedVendor);
|
||||
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(VendorViewScreen.route));
|
||||
if (vendor.isNew && state.vendorUIState.saveCompleter == null) {
|
||||
|
|
|
|||
|
|
@ -2,10 +2,12 @@ import 'dart:async';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/constants.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||
|
|
@ -71,11 +73,16 @@ class WebhookEditVM {
|
|||
));
|
||||
},
|
||||
onSavePressed: (BuildContext context) {
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<WebhookEntity> completer =
|
||||
new Completer<WebhookEntity>();
|
||||
store.dispatch(
|
||||
SaveWebhookRequest(completer: completer, webhook: webhook));
|
||||
return completer.future.then((savedWebhook) {
|
||||
showToast(webhook.isNew
|
||||
? localization.createdWebhook
|
||||
: localization.updatedWebhook);
|
||||
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(WebhookViewScreen.route));
|
||||
if (webhook.isNew) {
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ import 'package:invoiceninja_flutter/redux/stub/stub_actions.dart';
|
|||
import 'package:invoiceninja_flutter/data/models/stub_model.dart';
|
||||
import 'package:invoiceninja_flutter/ui/stub/edit/stub_edit.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
|
||||
class StubEditScreen extends StatelessWidget {
|
||||
const StubEditScreen({Key key}) : super(key: key);
|
||||
|
|
@ -65,9 +67,13 @@ class StubEditVM {
|
|||
createEntity(context: context, entity: StubEntity(), force: true);
|
||||
},
|
||||
onSavePressed: (BuildContext context) {
|
||||
final localization = AppLocalization.of(context);
|
||||
final Completer<StubEntity> completer = new Completer<StubEntity>();
|
||||
store.dispatch(SaveStubRequest(completer: completer, stub: stub));
|
||||
return completer.future.then((savedStub) {
|
||||
showToast(stub.isNew
|
||||
? localization.createdStub
|
||||
: localization.updatedStub);
|
||||
if (isMobile(context)) {
|
||||
store.dispatch(UpdateCurrentRoute(StubViewScreen.route));
|
||||
if (stub.isNew) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue