From 33cbaacf7cbc636ad4ac016d82f6b7702e3ccfd1 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 12 Aug 2018 18:11:14 +0300 Subject: [PATCH] Email templates --- lib/data/models/entities.dart | 15 +++++++ lib/data/models/entities.g.dart | 47 ++++++++++++++++++++ lib/ui/app/invoice/email_invoice_dialog.dart | 28 +++++++++++- 3 files changed, 88 insertions(+), 2 deletions(-) diff --git a/lib/data/models/entities.dart b/lib/data/models/entities.dart index c87729bc0..03714034d 100644 --- a/lib/data/models/entities.dart +++ b/lib/data/models/entities.dart @@ -54,6 +54,21 @@ class EntityState extends EnumClass { static EntityState valueOf(String name) => _$valueOf(name); } +class EmailTemplate extends EnumClass { + + const EmailTemplate._(String name) : super(name); + + static Serializer get serializer => _$emailTemplateSerializer; + + static const EmailTemplate initial = _$initial; + static const EmailTemplate reminder1 = _$reminder1; + static const EmailTemplate reminder2 = _$reminder2; + static const EmailTemplate reminder3 = _$reminder3; + + static BuiltSet get values => _$templateValues; + static EmailTemplate valueOf(String name) => _$templateValueOf(name); +} + abstract class EntityStatus { int get id; String get name; diff --git a/lib/data/models/entities.g.dart b/lib/data/models/entities.g.dart index 136a90fd9..124d00eae 100644 --- a/lib/data/models/entities.g.dart +++ b/lib/data/models/entities.g.dart @@ -120,8 +120,38 @@ final BuiltSet _$values = _$deleted, ]); +const EmailTemplate _$initial = const EmailTemplate._('initial'); +const EmailTemplate _$reminder1 = const EmailTemplate._('reminder1'); +const EmailTemplate _$reminder2 = const EmailTemplate._('reminder2'); +const EmailTemplate _$reminder3 = const EmailTemplate._('reminder3'); + +EmailTemplate _$templateValueOf(String name) { + switch (name) { + case 'initial': + return _$initial; + case 'reminder1': + return _$reminder1; + case 'reminder2': + return _$reminder2; + case 'reminder3': + return _$reminder3; + default: + throw new ArgumentError(name); + } +} + +final BuiltSet _$templateValues = + new BuiltSet(const [ + _$initial, + _$reminder1, + _$reminder2, + _$reminder3, +]); + Serializer _$entityTypeSerializer = new _$EntityTypeSerializer(); Serializer _$entityStateSerializer = new _$EntityStateSerializer(); +Serializer _$emailTemplateSerializer = + new _$EmailTemplateSerializer(); Serializer _$errorMessageSerializer = new _$ErrorMessageSerializer(); Serializer _$loginResponseSerializer = @@ -170,6 +200,23 @@ class _$EntityStateSerializer implements PrimitiveSerializer { EntityState.valueOf(serialized as String); } +class _$EmailTemplateSerializer implements PrimitiveSerializer { + @override + final Iterable types = const [EmailTemplate]; + @override + final String wireName = 'EmailTemplate'; + + @override + Object serialize(Serializers serializers, EmailTemplate object, + {FullType specifiedType = FullType.unspecified}) => + object.name; + + @override + EmailTemplate deserialize(Serializers serializers, Object serialized, + {FullType specifiedType = FullType.unspecified}) => + EmailTemplate.valueOf(serialized as String); +} + class _$ErrorMessageSerializer implements StructuredSerializer { @override final Iterable types = const [ErrorMessage, _$ErrorMessage]; diff --git a/lib/ui/app/invoice/email_invoice_dialog.dart b/lib/ui/app/invoice/email_invoice_dialog.dart index 32a38faff..eabf620d1 100644 --- a/lib/ui/app/invoice/email_invoice_dialog.dart +++ b/lib/ui/app/invoice/email_invoice_dialog.dart @@ -19,7 +19,20 @@ class EmailInvoiceView extends StatefulWidget { } class _EmailInvoiceViewState extends State { - String selectedTemplate = 'First Reminder'; + String selectedTemplate; + String emailSubject; + String emailBody; + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + final localization = AppLocalization.of(context); + final company = widget.viewModel.company; + + selectedTemplate = localization.initialEmail; + emailSubject = company.emailSubjectInvoice; + emailBody = company.emailBodyInvoice; + } Widget _buildSend(BuildContext context) { final localization = AppLocalization.of(context); @@ -36,7 +49,17 @@ class _EmailInvoiceViewState extends State { value: selectedTemplate, onChanged: (value) { setState(() { + final localization = AppLocalization.of(context); + final company = widget.viewModel.company; selectedTemplate = value; + + switch (value) { + //case const : + } + selectedTemplate = localization.initialEmail; + emailSubject = company.emailSubjectInvoice; + emailBody = company.emailBodyInvoice; + }); }, items: [ @@ -77,7 +100,8 @@ class _EmailInvoiceViewState extends State { child: Container( color: Colors.white, child: HtmlView( - data: widget.viewModel.company.emailBodyInvoice, + //data: widget.viewModel.company.emailBodyInvoice, + data: emailBody, ), ), ),