Email templates

This commit is contained in:
unknown 2018-08-12 18:11:14 +03:00
parent 51ba0556b1
commit 33cbaacf7c
3 changed files with 88 additions and 2 deletions

View File

@ -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<EmailTemplate> 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<EmailTemplate> get values => _$templateValues;
static EmailTemplate valueOf(String name) => _$templateValueOf(name);
}
abstract class EntityStatus {
int get id;
String get name;

View File

@ -120,8 +120,38 @@ final BuiltSet<EntityState> _$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<EmailTemplate> _$templateValues =
new BuiltSet<EmailTemplate>(const <EmailTemplate>[
_$initial,
_$reminder1,
_$reminder2,
_$reminder3,
]);
Serializer<EntityType> _$entityTypeSerializer = new _$EntityTypeSerializer();
Serializer<EntityState> _$entityStateSerializer = new _$EntityStateSerializer();
Serializer<EmailTemplate> _$emailTemplateSerializer =
new _$EmailTemplateSerializer();
Serializer<ErrorMessage> _$errorMessageSerializer =
new _$ErrorMessageSerializer();
Serializer<LoginResponse> _$loginResponseSerializer =
@ -170,6 +200,23 @@ class _$EntityStateSerializer implements PrimitiveSerializer<EntityState> {
EntityState.valueOf(serialized as String);
}
class _$EmailTemplateSerializer implements PrimitiveSerializer<EmailTemplate> {
@override
final Iterable<Type> types = const <Type>[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<ErrorMessage> {
@override
final Iterable<Type> types = const [ErrorMessage, _$ErrorMessage];

View File

@ -19,7 +19,20 @@ class EmailInvoiceView extends StatefulWidget {
}
class _EmailInvoiceViewState extends State<EmailInvoiceView> {
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<EmailInvoiceView> {
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<EmailInvoiceView> {
child: Container(
color: Colors.white,
child: HtmlView(
data: widget.viewModel.company.emailBodyInvoice,
//data: widget.viewModel.company.emailBodyInvoice,
data: emailBody,
),
),
),