Change ‘Send Email’ to ‘Email Invoice’

This commit is contained in:
Hillel Coren 2020-06-25 11:00:20 +03:00
parent 65bd188ecf
commit f98143b779
11 changed files with 50 additions and 14 deletions

View File

@ -536,7 +536,13 @@ abstract class InvoiceEntity extends Object
}
if (userCompany.canEditEntity(this)) {
actions.add(EntityAction.sendEmail);
if (entityType == EntityType.quote) {
actions.add(EntityAction.emailQuote);
} else if (entityType == EntityType.credit) {
actions.add(EntityAction.emailCredit);
} else {
actions.add(EntityAction.emailInvoice);
}
if (!isQuote &&
userCompany.canCreate(EntityType.payment) &&

View File

@ -48,7 +48,10 @@ class EntityAction extends EnumClass {
static const EntityAction convert = _$convert;
static const EntityAction approve = _$approve;
static const EntityAction download = _$download;
static const EntityAction sendEmail = _$sendEmail;
static const EntityAction emailInvoice = _$emailInvoice;
static const EntityAction emailQuote = _$emailQuote;
static const EntityAction emailCredit = _$emailCredit;
static const EntityAction emailPayment = _$emailPayment;
static const EntityAction markSent = _$markSent;
static const EntityAction markPaid = _$markPaid;
static const EntityAction newClient = _$newClient;

View File

@ -18,7 +18,10 @@ const EntityAction _$cloneToQuote = const EntityAction._('cloneToQuote');
const EntityAction _$convert = const EntityAction._('convert');
const EntityAction _$approve = const EntityAction._('approve');
const EntityAction _$download = const EntityAction._('download');
const EntityAction _$sendEmail = const EntityAction._('sendEmail');
const EntityAction _$emailInvoice = const EntityAction._('emailInvoice');
const EntityAction _$emailQuote = const EntityAction._('emailQuote');
const EntityAction _$emailCredit = const EntityAction._('emailCredit');
const EntityAction _$emailPayment = const EntityAction._('emailPayment');
const EntityAction _$markSent = const EntityAction._('markSent');
const EntityAction _$markPaid = const EntityAction._('markPaid');
const EntityAction _$newClient = const EntityAction._('newClient');
@ -70,8 +73,14 @@ EntityAction _$valueOf(String name) {
return _$approve;
case 'download':
return _$download;
case 'sendEmail':
return _$sendEmail;
case 'emailInvoice':
return _$emailInvoice;
case 'emailQuote':
return _$emailQuote;
case 'emailCredit':
return _$emailCredit;
case 'emailPayment':
return _$emailPayment;
case 'markSent':
return _$markSent;
case 'markPaid':
@ -137,7 +146,10 @@ final BuiltSet<EntityAction> _$values =
_$convert,
_$approve,
_$download,
_$sendEmail,
_$emailInvoice,
_$emailQuote,
_$emailCredit,
_$emailPayment,
_$markSent,
_$markPaid,
_$newClient,

View File

@ -339,7 +339,7 @@ abstract class PaymentEntity extends Object
}
if (client != null && client.hasEmailAddress) {
actions.add(EntityAction.sendEmail);
actions.add(EntityAction.emailPayment);
}
}
}

View File

@ -178,8 +178,6 @@ void _checkResponse(http.Response response) {
final serverVersion = response.headers['x-app-version'];
final minClientVersion = response.headers['x-minimum-client-version'];
// TODO re-enable this code
return;
if (serverVersion == null) {
throw 'Error: please check that Invoice Ninja v5 is installed on the server';
} else {

View File

@ -417,7 +417,7 @@ Future handleCreditAction(
snackBarCompleter<Null>(context, localization.markedCreditAsSent),
creditIds));
break;
case EntityAction.sendEmail:
case EntityAction.emailCredit:
store.dispatch(ShowEmailCredit(
completer:
snackBarCompleter<Null>(context, localization.emailedCredit),

View File

@ -508,7 +508,7 @@ void handleInvoiceAction(BuildContext context, List<BaseEntity> invoices,
: localization.markedInvoicesAsPaid),
invoiceIds));
break;
case EntityAction.sendEmail:
case EntityAction.emailInvoice:
final client = state.clientState.get(invoice.clientId);
if (!client.hasEmailAddress) {
showMessageDialog(context: context, message: localization.clientEmailNotSet);

View File

@ -332,7 +332,7 @@ void handlePaymentAction(
payment: payment,
));
break;
case EntityAction.sendEmail:
case EntityAction.emailPayment:
store.dispatch(EmailPaymentRequest(
snackBarCompleter<Null>(context, localization.emailedPayment),
payment));

View File

@ -430,7 +430,7 @@ Future handleQuoteAction(
snackBarCompleter<Null>(context, localization.markedQuoteAsSent),
quoteIds));
break;
case EntityAction.sendEmail:
case EntityAction.emailQuote:
store.dispatch(ShowEmailQuote(
completer:
snackBarCompleter<Null>(context, localization.emailedQuote),

View File

@ -15,6 +15,10 @@ mixin LocalizationsProvider on LocaleCodeAware {
static final Map<String, Map<String, String>> _localizedValues = {
'en': {
// STARTER: lang key - do not remove comment
'email_invoice': 'Email Invoice',
'email_quote': 'Email Quote',
'email_credit': 'Email Credit',
'email_payment': 'Email Payment',
'client_email_not_set': 'Client does not have an email address set',
'ledger': 'Ledger',
'view_pdf': 'View PDF',
@ -3913,6 +3917,16 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get clientEmailNotSet =>
_localizedValues[localeCode]['client_email_not_set'] ?? '';
String get emailInvoice =>
_localizedValues[localeCode]['email_invoice'] ?? '';
String get emailQuote => _localizedValues[localeCode]['email_quote'] ?? '';
String get emailCredit => _localizedValues[localeCode]['email_credit'] ?? '';
String get emailPayment =>
_localizedValues[localeCode]['email_payment'] ?? '';
String lookup(String key) {
final lookupKey = toSnakeCase(key);
return _localizedValues[localeCode][lookupKey] ??

View File

@ -20,7 +20,10 @@ IconData getEntityActionIcon(EntityAction entityAction) {
return Icons.public;
case EntityAction.markPaid:
return Icons.payment;
case EntityAction.sendEmail:
case EntityAction.emailPayment:
case EntityAction.emailQuote:
case EntityAction.emailInvoice:
case EntityAction.emailCredit:
return Icons.send;
case EntityAction.archive:
return Icons.archive;