Email templates
This commit is contained in:
parent
55b3c02e18
commit
fc7cd128f7
|
|
@ -15,8 +15,8 @@ const int kMinPatchAppVersion = 2;
|
||||||
|
|
||||||
const int kMaxRecordsPerApiPage = 5000;
|
const int kMaxRecordsPerApiPage = 5000;
|
||||||
const int kMillisecondsToRefreshData = 1000 * 60 * 15; // 15 minutes
|
const int kMillisecondsToRefreshData = 1000 * 60 * 15; // 15 minutes
|
||||||
const int kMillisecondsToRefreshActivities = 1000 * 15; // 15 seconds
|
//const int kMillisecondsToRefreshActivities = 1000 * 15; // 15 seconds
|
||||||
//const int kMillisecondsToRefreshActivities = 1000 * 60 * 60 * 24; // 1 day
|
const int kMillisecondsToRefreshActivities = 1000 * 60 * 60 * 24; // 1 day
|
||||||
|
|
||||||
const int kCurrencyUSDollar = 1;
|
const int kCurrencyUSDollar = 1;
|
||||||
const int kCurrencyEuro = 3;
|
const int kCurrencyEuro = 3;
|
||||||
|
|
|
||||||
|
|
@ -36,18 +36,21 @@ class _InvoiceEmailViewState extends State<InvoiceEmailView> {
|
||||||
void didChangeDependencies() {
|
void didChangeDependencies() {
|
||||||
super.didChangeDependencies();
|
super.didChangeDependencies();
|
||||||
|
|
||||||
final company = widget.viewModel.company;
|
loadTemplate(EmailTemplate.initial);
|
||||||
|
|
||||||
selectedTemplate = EmailTemplate.initial;
|
|
||||||
emailSubject = company.emailSubjectInvoice;
|
|
||||||
emailBody = company.emailBodyInvoice;
|
|
||||||
|
|
||||||
updateTemplate();
|
|
||||||
|
|
||||||
_controllers = [
|
_controllers = [
|
||||||
_subjectController,
|
_subjectController,
|
||||||
_bodyController,
|
_bodyController,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
_controllers
|
||||||
|
.forEach((dynamic controller) => controller.removeListener(_onChanged));
|
||||||
|
|
||||||
|
_subjectController.text = emailSubject;
|
||||||
|
_bodyController.text = emailBody.replaceAll('</div>', '</div>\n');
|
||||||
|
|
||||||
|
_controllers
|
||||||
|
.forEach((dynamic controller) => controller.addListener(_onChanged));
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -66,19 +69,36 @@ class _InvoiceEmailViewState extends State<InvoiceEmailView> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void loadTemplate(EmailTemplate template) {
|
||||||
|
final company = widget.viewModel.company;
|
||||||
|
|
||||||
|
selectedTemplate = template;
|
||||||
|
|
||||||
|
switch (template) {
|
||||||
|
case EmailTemplate.initial:
|
||||||
|
emailSubject = company.emailSubjectInvoice;
|
||||||
|
emailBody = company.emailBodyInvoice;
|
||||||
|
break;
|
||||||
|
case EmailTemplate.reminder1:
|
||||||
|
emailSubject = company.emailSubjectReminder1;
|
||||||
|
emailBody = company.emailBodyReminder1;
|
||||||
|
break;
|
||||||
|
case EmailTemplate.reminder2:
|
||||||
|
emailSubject = company.emailSubjectReminder2;
|
||||||
|
emailBody = company.emailBodyReminder2;
|
||||||
|
break;
|
||||||
|
case EmailTemplate.reminder3:
|
||||||
|
emailSubject = company.emailSubjectReminder3;
|
||||||
|
emailBody = company.emailBodyReminder3;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
updateTemplate();
|
||||||
|
}
|
||||||
|
|
||||||
void updateTemplate() {
|
void updateTemplate() {
|
||||||
final viewModel = widget.viewModel;
|
final viewModel = widget.viewModel;
|
||||||
|
|
||||||
_controllers
|
|
||||||
.forEach((dynamic controller) => controller.removeListener(_onChanged));
|
|
||||||
|
|
||||||
_subjectController.text = emailSubject;
|
|
||||||
_bodyController.text = emailBody
|
|
||||||
.replaceAll('</div>', '</div>\n');
|
|
||||||
|
|
||||||
_controllers
|
|
||||||
.forEach((dynamic controller) => controller.addListener(_onChanged));
|
|
||||||
|
|
||||||
emailSubject = processTemplate(emailSubject, viewModel.invoice, context);
|
emailSubject = processTemplate(emailSubject, viewModel.invoice, context);
|
||||||
emailBody = processTemplate(emailBody, viewModel.invoice, context);
|
emailBody = processTemplate(emailBody, viewModel.invoice, context);
|
||||||
}
|
}
|
||||||
|
|
@ -99,32 +119,9 @@ class _InvoiceEmailViewState extends State<InvoiceEmailView> {
|
||||||
DropdownButtonHideUnderline(
|
DropdownButtonHideUnderline(
|
||||||
child: DropdownButton<EmailTemplate>(
|
child: DropdownButton<EmailTemplate>(
|
||||||
value: selectedTemplate,
|
value: selectedTemplate,
|
||||||
onChanged: (value) {
|
onChanged: (template) {
|
||||||
setState(() {
|
setState(() {
|
||||||
final viewModel = widget.viewModel;
|
loadTemplate(template);
|
||||||
final company = viewModel.company;
|
|
||||||
selectedTemplate = value;
|
|
||||||
|
|
||||||
switch (value) {
|
|
||||||
case EmailTemplate.initial:
|
|
||||||
emailSubject = company.emailSubjectInvoice;
|
|
||||||
emailBody = company.emailBodyInvoice;
|
|
||||||
break;
|
|
||||||
case EmailTemplate.reminder1:
|
|
||||||
emailSubject = company.emailSubjectReminder1;
|
|
||||||
emailBody = company.emailBodyReminder1;
|
|
||||||
break;
|
|
||||||
case EmailTemplate.reminder2:
|
|
||||||
emailSubject = company.emailSubjectReminder2;
|
|
||||||
emailBody = company.emailBodyReminder2;
|
|
||||||
break;
|
|
||||||
case EmailTemplate.reminder3:
|
|
||||||
emailSubject = company.emailSubjectReminder3;
|
|
||||||
emailBody = company.emailBodyReminder3;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
updateTemplate();
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
items: [
|
items: [
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue