Show error if email address is not set
This commit is contained in:
parent
c954244978
commit
eafca5c0ab
|
|
@ -106,6 +106,8 @@ class EntityAction extends EnumClass {
|
||||||
return toSnakeCase(super.toString());
|
return toSnakeCase(super.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool get isEmail => toString().startsWith('email');
|
||||||
|
|
||||||
String toApiParam() {
|
String toApiParam() {
|
||||||
final value = toString();
|
final value = toString();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,7 @@ class MessageDialog extends StatelessWidget {
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.only(right: 10),
|
padding: const EdgeInsets.only(right: 10),
|
||||||
child: TextButton(
|
child: TextButton(
|
||||||
|
autofocus: true,
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
if (onDismiss != null) {
|
if (onDismiss != null) {
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||||
|
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_contacts_vm.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_contacts_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_details_vm.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_details_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_footer.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_footer.dart';
|
||||||
|
|
@ -11,6 +12,7 @@ import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_pdf_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_vm.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_item_selector.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_item_selector.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/dialogs.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class InvoiceEdit extends StatefulWidget {
|
class InvoiceEdit extends StatefulWidget {
|
||||||
|
|
@ -78,6 +80,26 @@ class _InvoiceEditState extends State<InvoiceEdit>
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final viewModel = widget.viewModel;
|
||||||
|
final invoice = viewModel.invoice;
|
||||||
|
final client = viewModel.state.clientState.get(invoice.clientId);
|
||||||
|
final localization = AppLocalization.of(context);
|
||||||
|
|
||||||
|
if (action.isEmail && !client.hasEmailAddress) {
|
||||||
|
showMessageDialog(
|
||||||
|
context: context,
|
||||||
|
message: localization.clientEmailNotSet,
|
||||||
|
secondaryActions: [
|
||||||
|
TextButton(
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
editEntity(context: context, entity: client);
|
||||||
|
},
|
||||||
|
child: Text(localization.editClient.toUpperCase()))
|
||||||
|
]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
widget.viewModel.onSavePressed(context, action);
|
widget.viewModel.onSavePressed(context, action);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue