Merge pull request #160 from gincos/multiselect-message

Added plural message for multiselect actions
This commit is contained in:
Hillel Coren 2020-11-23 09:29:16 +02:00 committed by GitHub
commit c86e8036c8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 615 additions and 137 deletions

View File

@ -366,19 +366,28 @@ void handleClientAction(
);
break;
case EntityAction.restore:
final message = clientIds.length > 1
? localization.restoredClients
.replaceFirst(':value', clientIds.length.toString())
: localization.restoredClient;
store.dispatch(RestoreClientsRequest(
snackBarCompleter<Null>(context, localization.restoredClient),
clientIds));
snackBarCompleter<Null>(context, message), clientIds));
break;
case EntityAction.archive:
final message = clientIds.length > 1
? localization.archivedClients
.replaceFirst(':value', clientIds.length.toString())
: localization.archivedClient;
store.dispatch(ArchiveClientsRequest(
snackBarCompleter<Null>(context, localization.archivedClient),
clientIds));
snackBarCompleter<Null>(context, message), clientIds));
break;
case EntityAction.delete:
final message = clientIds.length > 1
? localization.deletedClients
.replaceFirst(':value', clientIds.length.toString())
: localization.deletedClient;
store.dispatch(DeleteClientsRequest(
snackBarCompleter<Null>(context, localization.deletedClient),
clientIds));
snackBarCompleter<Null>(context, message), clientIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.clientListState.isInMultiselect()) {

View File

@ -261,19 +261,28 @@ void handleCompanyGatewayAction(BuildContext context,
editEntity(context: context, entity: companyGateway);
break;
case EntityAction.restore:
final message = companyGatewayIds.length > 1
? localization.restoredCompanyGateways
.replaceFirst(':value', companyGatewayIds.length.toString())
: localization.restoredCompanyGateway;
store.dispatch(RestoreCompanyGatewayRequest(
snackBarCompleter<Null>(context, localization.restoredCompanyGateway),
companyGatewayIds));
snackBarCompleter<Null>(context, message), companyGatewayIds));
break;
case EntityAction.archive:
final message = companyGatewayIds.length > 1
? localization.archivedCompanyGateways
.replaceFirst(':value', companyGatewayIds.length.toString())
: localization.archivedCompanyGateway;
store.dispatch(ArchiveCompanyGatewayRequest(
snackBarCompleter<Null>(context, localization.archivedCompanyGateway),
companyGatewayIds));
snackBarCompleter<Null>(context, message), companyGatewayIds));
break;
case EntityAction.delete:
final message = companyGatewayIds.length > 1
? localization.deletedCompanyGateways
.replaceFirst(':value', companyGatewayIds.length.toString())
: localization.deletedCompanyGateway;
store.dispatch(DeleteCompanyGatewayRequest(
snackBarCompleter<Null>(context, localization.deletedCompanyGateway),
companyGatewayIds));
snackBarCompleter<Null>(context, message), companyGatewayIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.companyGatewayListState.isInMultiselect()) {

View File

@ -501,18 +501,30 @@ Future handleCreditAction(
);
break;
case EntityAction.restore:
final message = creditIds.length > 1
? localization.restoredCredits
.replaceFirst(':value', creditIds.length.toString())
: localization.restoredCredit;
store.dispatch(RestoreCreditsRequest(
snackBarCompleter<Null>(context, localization.restoredCredit),
snackBarCompleter<Null>(context, message),
creditIds));
break;
case EntityAction.archive:
final message = creditIds.length > 1
? localization.archivedCredits
.replaceFirst(':value', creditIds.length.toString())
: localization.archivedCredit;
store.dispatch(ArchiveCreditsRequest(
snackBarCompleter<Null>(context, localization.archivedCredit),
snackBarCompleter<Null>(context, message),
creditIds));
break;
case EntityAction.delete:
final message = creditIds.length > 1
? localization.deletedCredits
.replaceFirst(':value', creditIds.length.toString())
: localization.deletedCredit;
store.dispatch(DeleteCreditsRequest(
snackBarCompleter<Null>(context, localization.deletedCredit),
snackBarCompleter<Null>(context, message),
creditIds));
break;
case EntityAction.toggleMultiselect:

View File

@ -264,19 +264,28 @@ void handleDesignAction(
createEntity(context: context, entity: design.clone);
break;
case EntityAction.restore:
final message = designIds.length > 1
? localization.restoredDesigns
.replaceFirst(':value', designIds.length.toString())
: localization.restoredDesign;
store.dispatch(RestoreDesignsRequest(
snackBarCompleter<Null>(context, localization.restoredDesign),
designIds));
snackBarCompleter<Null>(context, message), designIds));
break;
case EntityAction.archive:
final message = designIds.length > 1
? localization.archivedDesigns
.replaceFirst(':value', designIds.length.toString())
: localization.archivedDesign;
store.dispatch(ArchiveDesignsRequest(
snackBarCompleter<Null>(context, localization.archivedDesign),
designIds));
snackBarCompleter<Null>(context, message), designIds));
break;
case EntityAction.delete:
final message = designIds.length > 1
? localization.deletedDesigns
.replaceFirst(':value', designIds.length.toString())
: localization.deletedDesign;
store.dispatch(DeleteDesignsRequest(
snackBarCompleter<Null>(context, localization.deletedDesign),
designIds));
snackBarCompleter<Null>(context, message), designIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.designListState.isInMultiselect()) {

View File

@ -266,14 +266,29 @@ void handleDocumentAction(
editEntity(context: context, entity: document);
break;
case EntityAction.restore:
final message = documentIds.length > 1
? localization.restoredDocuments
.replaceFirst(':value', documentIds.length.toString())
: localization.restoredDocument;
store.dispatch(RestoreDocumentRequest(
snackBarCompleter<Null>(context, localization.restoredDocument),
documentIds));
snackBarCompleter<Null>(context, message), documentIds));
break;
case EntityAction.archive:
final message = documentIds.length > 1
? localization.archivedDocuments
.replaceFirst(':value', documentIds.length.toString())
: localization.archivedDocument;
store.dispatch(ArchiveDocumentRequest(
snackBarCompleter<Null>(context, localization.archivedDocument),
documentIds));
snackBarCompleter<Null>(context, message), documentIds));
break;
case EntityAction.delete:
final message = documentIds.length > 1
? localization.deletedDocuments
.replaceFirst(':value', documentIds.length.toString())
: localization.deletedDocument;
store.dispatch(DeleteDocumentRequest(
completer: snackBarCompleter<Null>(context, message),
documentIds: documentIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.documentListState.isInMultiselect()) {

View File

@ -294,19 +294,28 @@ void handleExpenseAction(
entityId: expense.invoiceId);
break;
case EntityAction.restore:
final message = expenseIds.length > 1
? localization.restoredExpenses
.replaceFirst(':value', expenseIds.length.toString())
: localization.restoredExpense;
store.dispatch(RestoreExpenseRequest(
snackBarCompleter<Null>(context, localization.restoredExpense),
expenseIds));
snackBarCompleter<Null>(context, message), expenseIds));
break;
case EntityAction.archive:
final message = expenseIds.length > 1
? localization.archivedExpenses
.replaceFirst(':value', expenseIds.length.toString())
: localization.archivedExpense;
store.dispatch(ArchiveExpenseRequest(
snackBarCompleter<Null>(context, localization.archivedExpense),
expenseIds));
snackBarCompleter<Null>(context, message), expenseIds));
break;
case EntityAction.delete:
final message = expenseIds.length > 1
? localization.deletedExpenses
.replaceFirst(':value', expenseIds.length.toString())
: localization.deletedExpense;
store.dispatch(DeleteExpenseRequest(
snackBarCompleter<Null>(context, localization.deletedExpense),
expenseIds));
snackBarCompleter<Null>(context, message), expenseIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.expenseListState.isInMultiselect()) {

View File

@ -283,21 +283,28 @@ void handleExpenseCategoryAction(BuildContext context,
editEntity(context: context, entity: expenseCategory);
break;
case EntityAction.restore:
final message = expenseCategoryIds.length > 1
? localization.restoredExpenseCategories
.replaceFirst(':value', expenseCategoryIds.length.toString())
: localization.restoredExpenseCategory;
store.dispatch(RestoreExpenseCategoriesRequest(
snackBarCompleter<Null>(
context, localization.restoredExpenseCategory),
expenseCategoryIds));
snackBarCompleter<Null>(context, message), expenseCategoryIds));
break;
case EntityAction.archive:
final message = expenseCategoryIds.length > 1
? localization.archivedExpenseCategories
.replaceFirst(':value', expenseCategoryIds.length.toString())
: localization.archivedExpenseCategory;
store.dispatch(ArchiveExpenseCategoriesRequest(
snackBarCompleter<Null>(
context, localization.archivedExpenseCategory),
expenseCategoryIds));
snackBarCompleter<Null>(context, message), expenseCategoryIds));
break;
case EntityAction.delete:
final message = expenseCategoryIds.length > 1
? localization.deletedExpenseCategories
.replaceFirst(':value', expenseCategoryIds.length.toString())
: localization.deletedExpenseCategory;
store.dispatch(DeleteExpenseCategoriesRequest(
snackBarCompleter<Null>(context, localization.deletedExpenseCategory),
expenseCategoryIds));
snackBarCompleter<Null>(context, message), expenseCategoryIds));
break;
case EntityAction.newExpense:
createEntity(

View File

@ -261,19 +261,28 @@ void handleGroupAction(
entity: ClientEntity().rebuild((b) => b..groupId = group.id));
break;
case EntityAction.restore:
final message = groupIds.length > 1
? localization.restoredGroups
.replaceFirst(':value', groupIds.length.toString())
: localization.restoredGroup;
store.dispatch(RestoreGroupRequest(
snackBarCompleter<Null>(context, localization.restoredGroup),
groupIds));
snackBarCompleter<Null>(context, message), groupIds));
break;
case EntityAction.archive:
final message = groupIds.length > 1
? localization.archivedGroups
.replaceFirst(':value', groupIds.length.toString())
: localization.archivedGroup;
store.dispatch(ArchiveGroupRequest(
snackBarCompleter<Null>(context, localization.archivedGroup),
groupIds));
snackBarCompleter<Null>(context, message), groupIds));
break;
case EntityAction.delete:
final message = groupIds.length > 1
? localization.deletedGroups
.replaceFirst(':value', groupIds.length.toString())
: localization.deletedGroup;
store.dispatch(DeleteGroupRequest(
snackBarCompleter<Null>(context, localization.deletedGroup),
groupIds));
snackBarCompleter<Null>(context, message), groupIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.groupListState.isInMultiselect()) {

View File

@ -602,19 +602,28 @@ void handleInvoiceAction(BuildContext context, List<BaseEntity> invoices,
);
break;
case EntityAction.restore:
final message = invoiceIds.length > 1
? localization.restoredInvoices
.replaceFirst(':value', invoiceIds.length.toString())
: localization.restoredInvoice;
store.dispatch(RestoreInvoicesRequest(
snackBarCompleter<Null>(context, localization.restoredInvoice),
invoiceIds));
snackBarCompleter<Null>(context, message), invoiceIds));
break;
case EntityAction.archive:
final message = invoiceIds.length > 1
? localization.archivedInvoices
.replaceFirst(':value', invoiceIds.length.toString())
: localization.archivedInvoice;
store.dispatch(ArchiveInvoicesRequest(
snackBarCompleter<Null>(context, localization.archivedInvoice),
invoiceIds));
snackBarCompleter<Null>(context, message), invoiceIds));
break;
case EntityAction.delete:
final message = invoiceIds.length > 1
? localization.deletedInvoices
.replaceFirst(':value', invoiceIds.length.toString())
: localization.deletedInvoice;
store.dispatch(DeleteInvoicesRequest(
snackBarCompleter<Null>(context, localization.deletedInvoice),
invoiceIds));
snackBarCompleter<Null>(context, message), invoiceIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.invoiceListState.isInMultiselect()) {

View File

@ -357,19 +357,28 @@ void handlePaymentAction(
payment));
break;
case EntityAction.restore:
final message = paymentIds.length > 1
? localization.restoredPayments
.replaceFirst(':value', paymentIds.length.toString())
: localization.restoredPayment;
store.dispatch(RestorePaymentsRequest(
snackBarCompleter<Null>(context, localization.restoredPayment),
paymentIds));
snackBarCompleter<Null>(context, message), paymentIds));
break;
case EntityAction.archive:
final message = paymentIds.length > 1
? localization.archivedPayments
.replaceFirst(':value', paymentIds.length.toString())
: localization.archivedPayment;
store.dispatch(ArchivePaymentsRequest(
snackBarCompleter<Null>(context, localization.archivedPayment),
paymentIds));
snackBarCompleter<Null>(context, message), paymentIds));
break;
case EntityAction.delete:
final message = paymentIds.length > 1
? localization.deletedPayments
.replaceFirst(':value', paymentIds.length.toString())
: localization.deletedPayment;
store.dispatch(DeletePaymentsRequest(
snackBarCompleter<Null>(context, localization.deletedPayment),
paymentIds));
snackBarCompleter<Null>(context, message), paymentIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.paymentListState.isInMultiselect()) {

View File

@ -265,19 +265,28 @@ void handlePaymentTermAction(
editEntity(context: context, entity: paymentTerm);
break;
case EntityAction.restore:
final message = paymentTermIds.length > 1
? localization.restoredPaymentTerms
.replaceFirst(':value', paymentTermIds.length.toString())
: localization.restoredPaymentTerm;
store.dispatch(RestorePaymentTermsRequest(
snackBarCompleter<Null>(context, localization.restoredPaymentTerm),
paymentTermIds));
snackBarCompleter<Null>(context, message), paymentTermIds));
break;
case EntityAction.archive:
final message = paymentTermIds.length > 1
? localization.archivedPaymentTerms
.replaceFirst(':value', paymentTermIds.length.toString())
: localization.archivedPaymentTerm;
store.dispatch(ArchivePaymentTermsRequest(
snackBarCompleter<Null>(context, localization.archivedPaymentTerm),
paymentTermIds));
snackBarCompleter<Null>(context, message), paymentTermIds));
break;
case EntityAction.delete:
final message = paymentTermIds.length > 1
? localization.deletedPaymentTerms
.replaceFirst(':value', paymentTermIds.length.toString())
: localization.deletedPaymentTerm;
store.dispatch(DeletePaymentTermsRequest(
snackBarCompleter<Null>(context, localization.deletedPaymentTerm),
paymentTermIds));
snackBarCompleter<Null>(context, message), paymentTermIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.paymentTermListState.isInMultiselect()) {

View File

@ -281,19 +281,28 @@ void handleProductAction(
createEntity(context: context, entity: (product as ProductEntity).clone);
break;
case EntityAction.restore:
final message = productIds.length > 1
? localization.restoredProducts
.replaceFirst(':value', productIds.length.toString())
: localization.restoredProduct;
store.dispatch(RestoreProductsRequest(
snackBarCompleter<Null>(context, localization.restoredProduct),
productIds));
snackBarCompleter<Null>(context, message), productIds));
break;
case EntityAction.archive:
final message = productIds.length > 1
? localization.archivedProducts
.replaceFirst(':value', productIds.length.toString())
: localization.archivedProduct;
store.dispatch(ArchiveProductsRequest(
snackBarCompleter<Null>(context, localization.archivedProduct),
productIds));
snackBarCompleter<Null>(context, message), productIds));
break;
case EntityAction.delete:
final message = productIds.length > 1
? localization.deletedProducts
.replaceFirst(':value', productIds.length.toString())
: localization.deletedProduct;
store.dispatch(DeleteProductsRequest(
snackBarCompleter<Null>(context, localization.deletedProduct),
productIds));
snackBarCompleter<Null>(context, message), productIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.productListState.isInMultiselect()) {

View File

@ -267,6 +267,7 @@ void handleProjectAction(
final project = projects.first as ProjectEntity;
final projectIds = projects.map((project) => project.id).toList();
final client = state.clientState.get(project.clientId);
final localization = AppLocalization.of(context);
switch (action) {
case EntityAction.edit:
@ -298,22 +299,28 @@ void handleProjectAction(
createEntity(context: context, entity: project.clone);
break;
case EntityAction.restore:
final message = projectIds.length > 1
? localization.restoredProjects
.replaceFirst(':value', projectIds.length.toString())
: localization.restoredProject;
store.dispatch(RestoreProjectRequest(
snackBarCompleter<Null>(
context, AppLocalization.of(context).restoredProject),
projectIds));
snackBarCompleter<Null>(context, message), projectIds));
break;
case EntityAction.archive:
final message = projectIds.length > 1
? localization.archivedProjects
.replaceFirst(':value', projectIds.length.toString())
: localization.archivedProject;
store.dispatch(ArchiveProjectRequest(
snackBarCompleter<Null>(
context, AppLocalization.of(context).archivedProject),
projectIds));
snackBarCompleter<Null>(context, message), projectIds));
break;
case EntityAction.delete:
final message = projectIds.length > 1
? localization.deletedProjects
.replaceFirst(':value', projectIds.length.toString())
: localization.deletedProject;
store.dispatch(DeleteProjectRequest(
snackBarCompleter<Null>(
context, AppLocalization.of(context).deletedProject),
projectIds));
snackBarCompleter<Null>(context, message), projectIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.projectListState.isInMultiselect()) {

View File

@ -513,19 +513,28 @@ Future handleQuoteAction(
.rebuild((b) => b..entityType = EntityType.recurringInvoice));
break;
case EntityAction.restore:
final message = quoteIds.length > 1
? localization.restoredQuotes
.replaceFirst(':value', quoteIds.length.toString())
: localization.restoredQuote;
store.dispatch(RestoreQuotesRequest(
snackBarCompleter<Null>(context, localization.restoredQuote),
quoteIds));
snackBarCompleter<Null>(context, message), quoteIds));
break;
case EntityAction.archive:
final message = quoteIds.length > 1
? localization.archivedQuotes
.replaceFirst(':value', quoteIds.length.toString())
: localization.archivedQuote;
store.dispatch(ArchiveQuotesRequest(
snackBarCompleter<Null>(context, localization.archivedQuote),
quoteIds));
snackBarCompleter<Null>(context, message), quoteIds));
break;
case EntityAction.delete:
final message = quoteIds.length > 1
? localization.deletedQuotes
.replaceFirst(':value', quoteIds.length.toString())
: localization.deletedQuote;
store.dispatch(DeleteQuotesRequest(
snackBarCompleter<Null>(context, localization.deletedQuote),
quoteIds));
snackBarCompleter<Null>(context, message), quoteIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.quoteListState.isInMultiselect()) {

View File

@ -472,22 +472,28 @@ void handleRecurringInvoiceAction(BuildContext context,
));
break;
case EntityAction.restore:
final message = recurringInvoiceIds.length > 1
? localization.restoredRecurringInvoices
.replaceFirst(':value', recurringInvoiceIds.length.toString())
: localization.restoredRecurringInvoice;
store.dispatch(RestoreRecurringInvoicesRequest(
snackBarCompleter<Null>(
context, localization.restoredRecurringInvoice),
recurringInvoiceIds));
snackBarCompleter<Null>(context, message), recurringInvoiceIds));
break;
case EntityAction.archive:
final message = recurringInvoiceIds.length > 1
? localization.archivedRecurringInvoices
.replaceFirst(':value', recurringInvoiceIds.length.toString())
: localization.archivedRecurringInvoice;
store.dispatch(ArchiveRecurringInvoicesRequest(
snackBarCompleter<Null>(
context, localization.archivedRecurringInvoice),
recurringInvoiceIds));
snackBarCompleter<Null>(context, message), recurringInvoiceIds));
break;
case EntityAction.delete:
final message = recurringInvoiceIds.length > 1
? localization.deletedRecurringInvoices
.replaceFirst(':value', recurringInvoiceIds.length.toString())
: localization.deletedRecurringInvoice;
store.dispatch(DeleteRecurringInvoicesRequest(
snackBarCompleter<Null>(
context, localization.deletedRecurringInvoice),
recurringInvoiceIds));
snackBarCompleter<Null>(context, message), recurringInvoiceIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.recurringInvoiceListState.isInMultiselect()) {

View File

@ -346,18 +346,28 @@ void handleTaskAction(
createEntity(context: context, entity: task.clone);
break;
case EntityAction.restore:
final message = taskIds.length > 1
? localization.restoredTasks
.replaceFirst(':value', taskIds.length.toString())
: localization.restoredTask;
store.dispatch(RestoreTaskRequest(
snackBarCompleter<Null>(context, localization.restoredTask),
taskIds));
snackBarCompleter<Null>(context, message), taskIds));
break;
case EntityAction.archive:
final message = taskIds.length > 1
? localization.archivedTasks
.replaceFirst(':value', taskIds.length.toString())
: localization.archivedTask;
store.dispatch(ArchiveTaskRequest(
snackBarCompleter<Null>(context, localization.archivedTask),
taskIds));
snackBarCompleter<Null>(context, message), taskIds));
break;
case EntityAction.delete:
final message = taskIds.length > 1
? localization.deletedTasks
.replaceFirst(':value', taskIds.length.toString())
: localization.deletedTask;
store.dispatch(DeleteTaskRequest(
snackBarCompleter<Null>(context, localization.deletedTask), taskIds));
snackBarCompleter<Null>(context, message), taskIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.taskListState.isInMultiselect()) {

View File

@ -283,19 +283,28 @@ void handleTaskStatusAction(
editEntity(context: context, entity: taskStatus);
break;
case EntityAction.restore:
final message = taskStatusIds.length > 1
? localization.restoredTaskStatuses
.replaceFirst(':value', taskStatusIds.length.toString())
: localization.restoredTaskStatus;
store.dispatch(RestoreTaskStatusesRequest(
snackBarCompleter<Null>(context, localization.restoredTaskStatus),
taskStatusIds));
snackBarCompleter<Null>(context, message), taskStatusIds));
break;
case EntityAction.archive:
final message = taskStatusIds.length > 1
? localization.archivedTaskStatuses
.replaceFirst(':value', taskStatusIds.length.toString())
: localization.archivedTaskStatus;
store.dispatch(ArchiveTaskStatusesRequest(
snackBarCompleter<Null>(context, localization.archivedTaskStatus),
taskStatusIds));
snackBarCompleter<Null>(context, message), taskStatusIds));
break;
case EntityAction.delete:
final message = taskStatusIds.length > 1
? localization.deletedTaskStatuses
.replaceFirst(':value', taskStatusIds.length.toString())
: localization.deletedTaskStatus;
store.dispatch(DeleteTaskStatusesRequest(
snackBarCompleter<Null>(context, localization.deletedTaskStatus),
taskStatusIds));
snackBarCompleter<Null>(context, message), taskStatusIds));
break;
case EntityAction.newTask:
createEntity(

View File

@ -254,19 +254,28 @@ void handleTaxRateAction(
editEntity(context: context, entity: taxRate);
break;
case EntityAction.restore:
final message = taxRateIds.length > 1
? localization.restoredTaxRates
.replaceFirst(':value', taxRateIds.length.toString())
: localization.restoredTaxRate;
store.dispatch(RestoreTaxRateRequest(
snackBarCompleter<Null>(context, localization.restoredTaxRate),
taxRateIds));
snackBarCompleter<Null>(context, message), taxRateIds));
break;
case EntityAction.archive:
final message = taxRateIds.length > 1
? localization.archivedTaxRates
.replaceFirst(':value', taxRateIds.length.toString())
: localization.archivedTaxRate;
store.dispatch(ArchiveTaxRateRequest(
snackBarCompleter<Null>(context, localization.archivedTaxRate),
taxRateIds));
snackBarCompleter<Null>(context, message), taxRateIds));
break;
case EntityAction.delete:
final message = taxRateIds.length > 1
? localization.deletedTaxRates
.replaceFirst(':value', taxRateIds.length.toString())
: localization.deletedTaxRate;
store.dispatch(DeleteTaxRateRequest(
snackBarCompleter<Null>(context, localization.deletedTaxRate),
taxRateIds));
snackBarCompleter<Null>(context, message), taxRateIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.taxRateListState.isInMultiselect()) {

View File

@ -272,19 +272,28 @@ void handleTokenAction(
editEntity(context: context, entity: token);
break;
case EntityAction.restore:
final message = tokenIds.length > 1
? localization.restoredTokens
.replaceFirst(':value', tokenIds.length.toString())
: localization.restoredToken;
store.dispatch(RestoreTokensRequest(
snackBarCompleter<Null>(context, localization.restoredToken),
tokenIds));
snackBarCompleter<Null>(context, message), tokenIds));
break;
case EntityAction.archive:
final message = tokenIds.length > 1
? localization.archivedTokens
.replaceFirst(':value', tokenIds.length.toString())
: localization.archivedToken;
store.dispatch(ArchiveTokensRequest(
snackBarCompleter<Null>(context, localization.archivedToken),
tokenIds));
snackBarCompleter<Null>(context, message), tokenIds));
break;
case EntityAction.delete:
final message = tokenIds.length > 1
? localization.deletedTokens
.replaceFirst(':value', tokenIds.length.toString())
: localization.deletedToken;
store.dispatch(DeleteTokensRequest(
snackBarCompleter<Null>(context, localization.deletedToken),
tokenIds));
snackBarCompleter<Null>(context, message), tokenIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.tokenListState.isInMultiselect()) {

View File

@ -342,9 +342,12 @@ void handleUserAction(
);
break;
case EntityAction.restore:
final message = userIds.length > 1
? localization.restoredUsers
.replaceFirst(':value', userIds.length.toString())
: localization.restoredUser;
final dispatch = ([String password]) => store.dispatch(RestoreUserRequest(
completer:
snackBarCompleter<Null>(context, localization.restoredUser),
completer: snackBarCompleter<Null>(context, message),
userIds: userIds,
password: password));
passwordCallback(
@ -354,9 +357,12 @@ void handleUserAction(
});
break;
case EntityAction.archive:
final message = userIds.length > 1
? localization.archivedUsers
.replaceFirst(':value', userIds.length.toString())
: localization.archivedUser;
final dispatch = ([String password]) => store.dispatch(ArchiveUserRequest(
completer:
snackBarCompleter<Null>(context, localization.archivedUser),
completer: snackBarCompleter<Null>(context, message),
userIds: userIds,
password: password));
passwordCallback(
@ -366,8 +372,12 @@ void handleUserAction(
});
break;
case EntityAction.delete:
final message = userIds.length > 1
? localization.deletedUsers
.replaceFirst(':value', userIds.length.toString())
: localization.deletedUser;
final dispatch = ([String password]) => store.dispatch(DeleteUserRequest(
completer: snackBarCompleter<Null>(context, localization.deletedUser),
completer: snackBarCompleter<Null>(context, message),
userIds: userIds,
password: password));
passwordCallback(
@ -377,8 +387,12 @@ void handleUserAction(
});
break;
case EntityAction.remove:
final message = userIds.length > 1
? localization.removedUsers
.replaceFirst(':value', userIds.length.toString())
: localization.removedUser;
final dispatch = ([String password]) => store.dispatch(RemoveUserRequest(
completer: snackBarCompleter<Null>(context, localization.removedUser),
completer: snackBarCompleter<Null>(context, message),
userId: user.id,
password: password));
confirmCallback(

View File

@ -305,19 +305,28 @@ void handleVendorAction(
);
break;
case EntityAction.restore:
final message = vendorIds.length > 1
? localization.restoredVendors
.replaceFirst(':value', vendorIds.length.toString())
: localization.restoredVendor;
store.dispatch(RestoreVendorRequest(
snackBarCompleter<Null>(context, localization.restoredVendor),
vendorIds));
snackBarCompleter<Null>(context, message), vendorIds));
break;
case EntityAction.archive:
final message = vendorIds.length > 1
? localization.archivedVendors
.replaceFirst(':value', vendorIds.length.toString())
: localization.archivedVendor;
store.dispatch(ArchiveVendorRequest(
snackBarCompleter<Null>(context, localization.archivedVendor),
vendorIds));
snackBarCompleter<Null>(context, message), vendorIds));
break;
case EntityAction.delete:
final message = vendorIds.length > 1
? localization.deletedVendors
.replaceFirst(':value', vendorIds.length.toString())
: localization.deletedVendor;
store.dispatch(DeleteVendorRequest(
snackBarCompleter<Null>(context, localization.deletedVendor),
vendorIds));
snackBarCompleter<Null>(context, message), vendorIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.vendorListState.isInMultiselect()) {

View File

@ -268,19 +268,28 @@ void handleWebhookAction(
editEntity(context: context, entity: webhook);
break;
case EntityAction.restore:
final message = webhookIds.length > 1
? localization.restoredWebhooks
.replaceFirst(':value', webhookIds.length.toString())
: localization.restoredWebhook;
store.dispatch(RestoreWebhooksRequest(
snackBarCompleter<Null>(context, localization.restoredWebhook),
webhookIds));
snackBarCompleter<Null>(context, message), webhookIds));
break;
case EntityAction.archive:
final message = webhookIds.length > 1
? localization.archivedWebhooks
.replaceFirst(':value', webhookIds.length.toString())
: localization.archivedWebhook;
store.dispatch(ArchiveWebhooksRequest(
snackBarCompleter<Null>(context, localization.archivedWebhook),
webhookIds));
snackBarCompleter<Null>(context, message), webhookIds));
break;
case EntityAction.delete:
final message = webhookIds.length > 1
? localization.deletedWebhooks
.replaceFirst(':value', webhookIds.length.toString())
: localization.deletedWebhook;
store.dispatch(DeleteWebhooksRequest(
snackBarCompleter<Null>(context, localization.deletedWebhook),
webhookIds));
snackBarCompleter<Null>(context, message), webhookIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.webhookListState.isInMultiselect()) {

View File

@ -51,6 +51,9 @@ mixin LocalizationsProvider on LocaleCodeAware {
'deleted_task_status': 'Successfully deleted task status',
'removed_task_status': 'Successfully removed task status',
'restored_task_status': 'Successfully restored task status',
'archived_task_statuses': 'Successfully archived :value task statuses',
'deleted_task_statuses': 'Successfully deleted :value task statuses',
'restored_task_statuses': 'Successfully restored :value task statuses',
'search_task_status': 'Search 1 Task Status',
'search_task_statuses': 'Search :count Task Statuses',
'show_tasks_table': 'Show Tasks Table',
@ -71,6 +74,12 @@ mixin LocalizationsProvider on LocaleCodeAware {
'deleted_expense_category': 'Successfully deleted expense category',
'removed_expense_category': 'Successfully removed expense category',
'restored_expense_category': 'Successfully restored expense category',
'archived_expense_categories':
'Successfully archived expense :value categories',
'deleted_expense_categories':
'Successfully deleted expense :value categories',
'restored_expense_categories':
'Successfully restored expense :value categories',
'search_expense_category': 'Search 1 Expense Category',
'search_expense_categories': 'Search :count Expense Categories',
'use_available_credits': 'Use Available Credits',
@ -128,6 +137,12 @@ mixin LocalizationsProvider on LocaleCodeAware {
'deleted_recurring_invoice': 'Successfully deleted recurring invoice',
'removed_recurring_invoice': 'Successfully removed recurring invoice',
'restored_recurring_invoice': 'Successfully restored recurring invoice',
'archived_recurring_invoices':
'Successfully archived recurring :value invoices',
'deleted_recurring_invoices':
'Successfully deleted recurring :value invoices',
'restored_recurring_invoices':
'Successfully restored recurring :value invoices',
'search_recurring_invoice': 'Search 1 Recurring Invoice',
'search_recurring_invoices': 'Search :count Recurring Invoices',
'send_date': 'Send Date',
@ -261,6 +276,10 @@ mixin LocalizationsProvider on LocaleCodeAware {
'deleted_webhook': 'Successfully deleted webhook',
'removed_webhook': 'Successfully removed webhook',
'restored_webhook': 'Successfully restored webhook',
'archived_webhooks': 'Successfully archived :value webhooks',
'deleted_webhooks': 'Successfully deleted :value webhooks',
'removed_webhooks': 'Successfully removed :value webhooks',
'restored_webhooks': 'Successfully restored :value webhooks',
'api_tokens': 'API Tokens',
'search_tokens': 'Search :count Tokens',
'search_token': 'Search 1 Token',
@ -274,6 +293,9 @@ mixin LocalizationsProvider on LocaleCodeAware {
'deleted_token': 'Successfully deleted token',
'removed_token': 'Successfully removed token',
'restored_token': 'Successfully restored token',
'archived_tokens': 'Successfully archived :value tokens',
'deleted_tokens': 'Successfully deleted :value tokens',
'restored_tokens': 'Successfully restored :value tokens',
'client_registration': 'Client Registration',
'client_registration_help':
'Enable clients to self register in the portal',
@ -302,6 +324,9 @@ mixin LocalizationsProvider on LocaleCodeAware {
'deleted_payment_term': 'Successfully deleted payment term',
'removed_payment_term': 'Successfully removed payment term',
'restored_payment_term': 'Successfully restored payment term',
'archived_payment_terms': 'Successfully archived :value payment terms',
'deleted_payment_terms': 'Successfully deleted :value payment terms',
'restored_payment_terms': 'Successfully restored :value payment terms',
'email_sign_in': 'Sign in with email',
'change': 'Change',
'change_to_mobile_layout': 'Change to the mobile layout?',
@ -424,6 +449,9 @@ mixin LocalizationsProvider on LocaleCodeAware {
'deleted_design': 'Successfully deleted design',
'removed_design': 'Successfully removed design',
'restored_design': 'Successfully restored design',
'archived_designs': 'Successfully archived :value designs',
'deleted_designs': 'Successfully deleted :value designs',
'restored_designs': 'Successfully restored :value designs',
'proposals': 'Proposals',
'tickets': 'Tickets',
'recurring_quotes': 'Recurring Quotes',
@ -441,6 +469,9 @@ mixin LocalizationsProvider on LocaleCodeAware {
'deleted_credit': 'Successfully deleted credit',
'removed_credit': 'Successfully removed credit',
'restored_credit': 'Successfully restored credit',
'archived_credits': 'Successfully archived :value credits',
'deleted_credits': 'Successfully deleted :value credits',
'restored_credits': 'Successfully restored :value credits',
'current_version': 'Current Version',
'latest_version': 'Latest Version',
'update_now': 'Update Now',
@ -673,6 +704,10 @@ mixin LocalizationsProvider on LocaleCodeAware {
'deleted_user': 'Successfully deleted user',
'removed_user': 'Successfully removed user',
'restored_user': 'Successfully restored user',
'archived_users': 'Successfully archived :value users',
'deleted_users': 'Successfully deleted :value users',
'removed_users': 'Successfully removed :value users',
'restored_users': 'Successfully restored :value users',
'general_settings': 'General Settings',
'invoice_options': 'Invoice Options',
'hide_paid_to_date': 'Hide Paid to Date',
@ -814,6 +849,9 @@ mixin LocalizationsProvider on LocaleCodeAware {
'archived_tax_rate': 'Successfully archived tax rate',
'deleted_tax_rate': 'Successfully deleted tax rate',
'restored_tax_rate': 'Successfully restored tax rate',
'archived_tax_rates': 'Successfully archived :value tax rates',
'deleted_tax_rates': 'Successfully deleted :value tax rates',
'restored_tax_rates': 'Successfully restored :value tax rates',
'fill_products': 'Fill Products',
'fill_products_help':
'Selecting a product will automatically fill in the description and cost',
@ -835,6 +873,9 @@ mixin LocalizationsProvider on LocaleCodeAware {
'archived_company_gateway': 'Successfully archived gateway',
'deleted_company_gateway': 'Successfully deleted gateway',
'restored_company_gateway': 'Successfully restored gateway',
'archived_company_gateways': 'Successfully archived :value gateways',
'deleted_company_gateways': 'Successfully deleted :value gateways',
'restored_company_gateways': 'Successfully restored :value gateways',
'continue_editing': 'Continue Editing',
'discard_changes': 'Discard Changes',
'default_value': 'Default value',
@ -881,9 +922,9 @@ mixin LocalizationsProvider on LocaleCodeAware {
'edit_group': 'Edit Group',
'created_group': 'Successfully created group',
'updated_group': 'Successfully updated group',
'archived_group': 'Successfully archived group',
'deleted_group': 'Successfully deleted group',
'restored_group': 'Successfully restored group',
'archived_groups': 'Successfully archived :value groups',
'deleted_groups': 'Successfully deleted :value groups',
'restored_groups': 'Successfully restored :value groups',
'upload_logo': 'Upload Logo',
'uploaded_logo': 'Successfully uploaded logo',
'logo': 'Logo',
@ -949,6 +990,9 @@ mixin LocalizationsProvider on LocaleCodeAware {
'archived_document': 'Successfully archived document',
'deleted_document': 'Successfully deleted document',
'restored_document': 'Successfully restored document',
'archived_documents': 'Successfully archived :value documents',
'deleted_documents': 'Successfully deleted :value documents',
'restored_documents': 'Successfully restored :value documents',
'no_history': 'No History',
'expense_date': 'Expense Date',
'pending': 'Pending',
@ -968,12 +1012,18 @@ mixin LocalizationsProvider on LocaleCodeAware {
'archived_vendor': 'Successfully archived vendor',
'deleted_vendor': 'Successfully deleted vendor',
'restored_vendor': 'Successfully restored vendor',
'archived_vendors': 'Successfully archived :value vendors',
'deleted_vendors': 'Successfully deleted :value vendors',
'restored_vendors': 'Successfully restored :value vendors',
'new_expense': 'New Expense',
'created_expense': 'Successfully created expense',
'updated_expense': 'Successfully updated expense',
'archived_expense': 'Successfully archived expense',
'deleted_expense': 'Successfully deleted expense',
'restored_expense': 'Successfully restored expense',
'archived_expenses': 'Successfully archived :value expenses',
'deleted_expenses': 'Successfully deleted :value expenses',
'restored_expenses': 'Successfully restored :value expenses',
'copy_shipping': 'Copy Shipping',
'copy_billing': 'Copy Billing',
'design': 'Design',
@ -1004,6 +1054,9 @@ mixin LocalizationsProvider on LocaleCodeAware {
'archived_task': 'Successfully archived task',
'deleted_task': 'Successfully deleted task',
'restored_task': 'Successfully restored task',
'archived_tasks': 'Successfully archived :value tasks',
'deleted_tasks': 'Successfully deleted :value tasks',
'restored_tasks': 'Successfully restored :value tasks',
'please_enter_a_name': 'Please enter a name',
'budgeted_hours': 'Budgeted Hours',
'created_project': 'Successfully created project',
@ -1011,6 +1064,9 @@ mixin LocalizationsProvider on LocaleCodeAware {
'archived_project': 'Successfully archived project',
'deleted_project': 'Successfully deleted project',
'restored_project': 'Successfully restored project',
'archived_projects': 'Successfully archived :value projects',
'deleted_projects': 'Successfully deleted :value projects',
'restored_projects': 'Successfully restored :value projects',
'new_project': 'New Project',
'thank_you_for_using_our_app': 'Thank you for using our app!',
'if_you_like_it': 'If you like it please',
@ -1130,6 +1186,9 @@ mixin LocalizationsProvider on LocaleCodeAware {
'archived_product': 'Successfully archived product',
'deleted_product': 'Successfully deleted product',
'restored_product': 'Successfully restored product',
'archived_products': 'Successfully archived :value products',
'deleted_products': 'Successfully deleted :value products',
'restored_products': 'Successfully restored :value products',
'product_key': 'Product',
'notes': 'Notes',
'cost': 'Cost',
@ -1139,8 +1198,11 @@ mixin LocalizationsProvider on LocaleCodeAware {
'created_client': 'Successfully created client',
'updated_client': 'Successfully updated client',
'archived_client': 'Successfully archived client',
'archived_clients': 'Successfully archived :value clients',
'deleted_client': 'Successfully deleted client',
'deleted_clients': 'Successfully deleted :value clients',
'restored_client': 'Successfully restored client',
'restored_clients': 'Successfully restored :value clients',
'address1': 'Street',
'address2': 'Apt/Suite',
'city': 'City',
@ -1155,6 +1217,9 @@ mixin LocalizationsProvider on LocaleCodeAware {
'archived_invoice': 'Successfully archived invoice',
'deleted_invoice': 'Successfully deleted invoice',
'restored_invoice': 'Successfully restored invoice',
'archived_invoices': 'Successfully archived :value invoices',
'deleted_invoices': 'Successfully deleted :value invoices',
'restored_invoices': 'Successfully restored :value invoices',
'emailed_invoice': 'Successfully emailed invoice',
'emailed_payment': 'Successfully emailed payment',
'amount': 'Amount',
@ -1277,6 +1342,9 @@ mixin LocalizationsProvider on LocaleCodeAware {
'archived_payment': 'Successfully archived payment',
'deleted_payment': 'Successfully deleted payment',
'restored_payment': 'Successfully restored payment',
'archived_payments': 'Successfully archived :value payments',
'deleted_payments': 'Successfully deleted :value payments',
'restored_payments': 'Successfully restored :value payments',
'quote': 'Quote',
'quotes': 'Quotes',
'new_quote': 'New Quote',
@ -1285,6 +1353,9 @@ mixin LocalizationsProvider on LocaleCodeAware {
'archived_quote': 'Successfully archived quote',
'deleted_quote': 'Successfully deleted quote',
'restored_quote': 'Successfully restored quote',
'archived_quotes': 'Successfully archived :value quotes',
'deleted_quotes': 'Successfully deleted :value quotes',
'restored_quotes': 'Successfully restored :value quotes',
'expense': 'Expense',
'expenses': 'Expenses',
'vendor': 'Vendor',
@ -1479,6 +1550,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredProject =>
_localizedValues[localeCode]['restored_project'] ?? '';
String get archivedProjects =>
_localizedValues[localeCode]['archived_projects'] ?? '';
String get deletedProjects =>
_localizedValues[localeCode]['deleted_projects'] ?? '';
String get restoredProjects =>
_localizedValues[localeCode]['restored_projects'] ?? '';
String get newProject => _localizedValues[localeCode]['new_project'] ?? '';
String get thankYouForUsingOurApp =>
@ -1760,6 +1840,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredProduct =>
_localizedValues[localeCode]['restored_product'] ?? '';
String get archivedProducts =>
_localizedValues[localeCode]['archived_products'] ?? '';
String get deletedProducts =>
_localizedValues[localeCode]['deleted_products'] ?? '';
String get restoredProducts =>
_localizedValues[localeCode]['restored_products'] ?? '';
String get newVendor => _localizedValues[localeCode]['new_vendor'] ?? '';
String get createdVendor =>
@ -1777,6 +1866,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredVendor =>
_localizedValues[localeCode]['restored_vendor'] ?? '';
String get archivedVendors =>
_localizedValues[localeCode]['archived_vendors'] ?? '';
String get deletedVendors =>
_localizedValues[localeCode]['deleted_vendors'] ?? '';
String get restoredVendors =>
_localizedValues[localeCode]['restored_vendors'] ?? '';
String get document => _localizedValues[localeCode]['document'] ?? '';
String get documents => _localizedValues[localeCode]['documents'] ?? '';
@ -1801,6 +1899,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredDocument =>
_localizedValues[localeCode]['restored_document'] ?? '';
String get archivedDocuments =>
_localizedValues[localeCode]['archived_documents'] ?? '';
String get deletedDocuments =>
_localizedValues[localeCode]['deleted_documents'] ?? '';
String get restoredDocuments =>
_localizedValues[localeCode]['restored_documents'] ?? '';
String get newExpense => _localizedValues[localeCode]['new_expense'] ?? '';
String get createdExpense =>
@ -1818,6 +1925,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredExpense =>
_localizedValues[localeCode]['restored_expense'] ?? '';
String get archivedExpenses =>
_localizedValues[localeCode]['archived_expenses'] ?? '';
String get deletedExpenses =>
_localizedValues[localeCode]['deleted_expenses'] ?? '';
String get restoredExpenses =>
_localizedValues[localeCode]['restored_expenses'] ?? '';
String get productKey => _localizedValues[localeCode]['product_key'] ?? '';
String get notes => _localizedValues[localeCode]['notes'] ?? '';
@ -1845,6 +1961,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredClient =>
_localizedValues[localeCode]['restored_client'] ?? '';
String get archivedClients =>
_localizedValues[localeCode]['archived_clients'] ?? '';
String get deletedClients =>
_localizedValues[localeCode]['deleted_clients'] ?? '';
String get restoredClients =>
_localizedValues[localeCode]['restored_clients'] ?? '';
String get address1 => _localizedValues[localeCode]['address1'] ?? '';
String get address2 => _localizedValues[localeCode]['address2'] ?? '';
@ -1878,6 +2003,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredInvoice =>
_localizedValues[localeCode]['restored_invoice'] ?? '';
String get archivedInvoices =>
_localizedValues[localeCode]['archived_invoices'] ?? '';
String get deletedInvoices =>
_localizedValues[localeCode]['deleted_invoices'] ?? '';
String get restoredInvoices =>
_localizedValues[localeCode]['restored_invoices'] ?? '';
String get emailedInvoice =>
_localizedValues[localeCode]['emailed_invoice'] ?? '';
@ -2159,6 +2293,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredPayment =>
_localizedValues[localeCode]['restored_payment'] ?? '';
String get archivedPayments =>
_localizedValues[localeCode]['archived_payments'] ?? '';
String get deletedPayments =>
_localizedValues[localeCode]['deleted_payments'] ?? '';
String get restoredPayments =>
_localizedValues[localeCode]['restored_payments'] ?? '';
String get quote => _localizedValues[localeCode]['quote'] ?? '';
String get quotes => _localizedValues[localeCode]['quotes'] ?? '';
@ -2180,6 +2323,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredQuote =>
_localizedValues[localeCode]['restored_quote'] ?? '';
String get archivedQuotes =>
_localizedValues[localeCode]['archived_quotes'] ?? '';
String get deletedQuotes =>
_localizedValues[localeCode]['deleted_quotes'] ?? '';
String get restoredQuotes =>
_localizedValues[localeCode]['restored_quotes'] ?? '';
String get expense => _localizedValues[localeCode]['expense'] ?? '';
String get expenses => _localizedValues[localeCode]['expenses'] ?? '';
@ -2349,6 +2501,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredTask =>
_localizedValues[localeCode]['restored_task'] ?? '';
String get archivedTasks =>
_localizedValues[localeCode]['archived_tasks'] ?? '';
String get deletedTasks =>
_localizedValues[localeCode]['deleted_tasks'] ?? '';
String get restoredTasks =>
_localizedValues[localeCode]['restored_tasks'] ?? '';
String get newTask => _localizedValues[localeCode]['new_task'] ?? '';
String get duration => _localizedValues[localeCode]['duration'] ?? '';
@ -2603,6 +2764,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredGroup =>
_localizedValues[localeCode]['restored_group'] ?? '';
String get archivedGroups =>
_localizedValues[localeCode]['archived_groups'] ?? '';
String get deletedGroups =>
_localizedValues[localeCode]['deleted_groups'] ?? '';
String get restoredGroups =>
_localizedValues[localeCode]['restored_groups'] ?? '';
String get editGroup => _localizedValues[localeCode]['edit_group'] ?? '';
String get groups => _localizedValues[localeCode]['groups'] ?? '';
@ -2726,6 +2896,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredCompanyGateway =>
_localizedValues[localeCode]['restored_company_gateway'] ?? '';
String get archivedCompanyGateways =>
_localizedValues[localeCode]['archived_company_gateways'] ?? '';
String get deletedCompanyGateways =>
_localizedValues[localeCode]['deleted_company_gateways'] ?? '';
String get restoredCompanyGateways =>
_localizedValues[localeCode]['restored_company_gateways'] ?? '';
String get companyGateways =>
_localizedValues[localeCode]['company_gateways'] ?? '';
@ -2773,6 +2952,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredTaxRate =>
_localizedValues[localeCode]['restored_tax_rate'] ?? '';
String get archivedTaxRates =>
_localizedValues[localeCode]['archived_tax_rates'] ?? '';
String get deletedTaxRates =>
_localizedValues[localeCode]['deleted_tax_rates'] ?? '';
String get restoredTaxRates =>
_localizedValues[localeCode]['restored_tax_rates'] ?? '';
String get editTaxRate => _localizedValues[localeCode]['edit_tax_rate'] ?? '';
String get taxRate => _localizedValues[localeCode]['tax_rate'] ?? '';
@ -3113,6 +3301,18 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredUser =>
_localizedValues[localeCode]['restored_user'] ?? '';
String get archivedUsers =>
_localizedValues[localeCode]['archived_users'] ?? '';
String get deletedUsers =>
_localizedValues[localeCode]['deleted_users'] ?? '';
String get removedUsers =>
_localizedValues[localeCode]['removed_users'] ?? '';
String get restoredUsers =>
_localizedValues[localeCode]['restored_users'] ?? '';
String get editUser => _localizedValues[localeCode]['edit_user'] ?? '';
String get users => _localizedValues[localeCode]['users'] ?? '';
@ -3775,6 +3975,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredTaskStatus =>
_localizedValues[localeCode]['restored_task_status'];
String get archivedTaskStatuses =>
_localizedValues[localeCode]['archived_task_statuses'];
String get deletedTaskStatuses =>
_localizedValues[localeCode]['deleted_task_statuses'];
String get restoredTaskStatuses =>
_localizedValues[localeCode]['restored_task_statuses'];
String get editTaskStatus => _localizedValues[localeCode]['edit_task_status'];
String get searchTaskStatus =>
@ -3804,6 +4013,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredExpenseCategory =>
_localizedValues[localeCode]['restored_expense_category'];
String get archivedExpenseCategories =>
_localizedValues[localeCode]['archived_expense_categories'];
String get deletedExpenseCategories =>
_localizedValues[localeCode]['deleted_expense_categories'];
String get restoredExpenseCategories =>
_localizedValues[localeCode]['restored_expense_categories'];
String get editExpenseCategory =>
_localizedValues[localeCode]['edit_expense_category'];
@ -3834,6 +4052,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredRecurringInvoice =>
_localizedValues[localeCode]['restored_recurring_invoice'];
String get archivedRecurringInvoices =>
_localizedValues[localeCode]['archived_recurring_invoices'];
String get deletedRecurringInvoices =>
_localizedValues[localeCode]['deleted_recurring_invoices'];
String get restoredRecurringInvoices =>
_localizedValues[localeCode]['restored_recurring_invoices'];
String get stoppedRecurringInvoice =>
_localizedValues[localeCode]['stopped_recurring_invoice'];
@ -3867,6 +4094,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredWebhook =>
_localizedValues[localeCode]['restored_webhook'] ?? '';
String get archivedWebhooks =>
_localizedValues[localeCode]['archived_webhooks'] ?? '';
String get deletedWebhooks =>
_localizedValues[localeCode]['deleted_webhooks'] ?? '';
String get restoredWebhooks =>
_localizedValues[localeCode]['restored_webhooks'] ?? '';
String get editWebhook => _localizedValues[localeCode]['edit_webhook'] ?? '';
String get token => _localizedValues[localeCode]['token'] ?? '';
@ -3890,6 +4126,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredToken =>
_localizedValues[localeCode]['restored_token'] ?? '';
String get archivedTokens =>
_localizedValues[localeCode]['archived_tokens'] ?? '';
String get deletedTokens =>
_localizedValues[localeCode]['deleted_tokens'] ?? '';
String get restoredTokens =>
_localizedValues[localeCode]['restored_tokens'] ?? '';
String get editToken => _localizedValues[localeCode]['edit_token'] ?? '';
String get paymentTerm => _localizedValues[localeCode]['payment_term'] ?? '';
@ -3912,6 +4157,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredPaymentTerm =>
_localizedValues[localeCode]['restored_payment_term'] ?? '';
String get archivedPaymentTerms =>
_localizedValues[localeCode]['archived_payment_terms'] ?? '';
String get deletedPaymentTerms =>
_localizedValues[localeCode]['deleted_payment_terms'] ?? '';
String get restoredPaymentTerms =>
_localizedValues[localeCode]['restored_payment_terms'] ?? '';
String get editPaymentTerm =>
_localizedValues[localeCode]['edit_payment_term'] ?? '';
@ -3934,6 +4188,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredDesign =>
_localizedValues[localeCode]['restored_design'] ?? '';
String get archivedDesigns =>
_localizedValues[localeCode]['archived_designs'] ?? '';
String get deletedDesigns =>
_localizedValues[localeCode]['deleted_designs'] ?? '';
String get restoredDesigns =>
_localizedValues[localeCode]['restored_designs'] ?? '';
String get editDesign => _localizedValues[localeCode]['edit_design'] ?? '';
String get newCredit => _localizedValues[localeCode]['new_credit'] ?? '';
@ -3953,6 +4216,15 @@ mixin LocalizationsProvider on LocaleCodeAware {
String get restoredCredit =>
_localizedValues[localeCode]['restored_credit'] ?? '';
String get archivedCredits =>
_localizedValues[localeCode]['archived_credits'] ?? '';
String get deletedCredits =>
_localizedValues[localeCode]['deleted_credits'] ?? '';
String get restoredCredits =>
_localizedValues[localeCode]['restored_credits'] ?? '';
String get creditDate => _localizedValues[localeCode]['credit_date'] ?? '';
String get accountManagement =>