diff --git a/lib/redux/client/client_actions.dart b/lib/redux/client/client_actions.dart index 26dee47c3..35fcc4759 100644 --- a/lib/redux/client/client_actions.dart +++ b/lib/redux/client/client_actions.dart @@ -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(context, localization.restoredClient), - clientIds)); + snackBarCompleter(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(context, localization.archivedClient), - clientIds)); + snackBarCompleter(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(context, localization.deletedClient), - clientIds)); + snackBarCompleter(context, message), clientIds)); break; case EntityAction.toggleMultiselect: if (!store.state.clientListState.isInMultiselect()) { diff --git a/lib/redux/company_gateway/company_gateway_actions.dart b/lib/redux/company_gateway/company_gateway_actions.dart index b182ed262..894e841f0 100644 --- a/lib/redux/company_gateway/company_gateway_actions.dart +++ b/lib/redux/company_gateway/company_gateway_actions.dart @@ -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(context, localization.restoredCompanyGateway), - companyGatewayIds)); + snackBarCompleter(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(context, localization.archivedCompanyGateway), - companyGatewayIds)); + snackBarCompleter(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(context, localization.deletedCompanyGateway), - companyGatewayIds)); + snackBarCompleter(context, message), companyGatewayIds)); break; case EntityAction.toggleMultiselect: if (!store.state.companyGatewayListState.isInMultiselect()) { diff --git a/lib/redux/credit/credit_actions.dart b/lib/redux/credit/credit_actions.dart index 911c3ca98..f63445b26 100644 --- a/lib/redux/credit/credit_actions.dart +++ b/lib/redux/credit/credit_actions.dart @@ -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(context, localization.restoredCredit), + snackBarCompleter(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(context, localization.archivedCredit), + snackBarCompleter(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(context, localization.deletedCredit), + snackBarCompleter(context, message), creditIds)); break; case EntityAction.toggleMultiselect: diff --git a/lib/redux/design/design_actions.dart b/lib/redux/design/design_actions.dart index 5cf9fb6c7..b3b68fdb3 100644 --- a/lib/redux/design/design_actions.dart +++ b/lib/redux/design/design_actions.dart @@ -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(context, localization.restoredDesign), - designIds)); + snackBarCompleter(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(context, localization.archivedDesign), - designIds)); + snackBarCompleter(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(context, localization.deletedDesign), - designIds)); + snackBarCompleter(context, message), designIds)); break; case EntityAction.toggleMultiselect: if (!store.state.designListState.isInMultiselect()) { diff --git a/lib/redux/document/document_actions.dart b/lib/redux/document/document_actions.dart index a13a035aa..565f02f10 100644 --- a/lib/redux/document/document_actions.dart +++ b/lib/redux/document/document_actions.dart @@ -266,15 +266,32 @@ 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(context, localization.restoredDocument), + snackBarCompleter(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(context, localization.archivedDocument), + snackBarCompleter(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(context, message), + documentIds: documentIds)); + break; case EntityAction.toggleMultiselect: if (!store.state.documentListState.isInMultiselect()) { store.dispatch(StartDocumentMultiselect()); diff --git a/lib/redux/expense/expense_actions.dart b/lib/redux/expense/expense_actions.dart index 14a33e9ea..f2ee1cb28 100644 --- a/lib/redux/expense/expense_actions.dart +++ b/lib/redux/expense/expense_actions.dart @@ -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(context, localization.restoredExpense), - expenseIds)); + snackBarCompleter(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(context, localization.archivedExpense), - expenseIds)); + snackBarCompleter(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(context, localization.deletedExpense), - expenseIds)); + snackBarCompleter(context, message), expenseIds)); break; case EntityAction.toggleMultiselect: if (!store.state.expenseListState.isInMultiselect()) { diff --git a/lib/redux/expense_category/expense_category_actions.dart b/lib/redux/expense_category/expense_category_actions.dart index d991128b4..29facf582 100644 --- a/lib/redux/expense_category/expense_category_actions.dart +++ b/lib/redux/expense_category/expense_category_actions.dart @@ -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( - context, localization.restoredExpenseCategory), - expenseCategoryIds)); + snackBarCompleter(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( - context, localization.archivedExpenseCategory), - expenseCategoryIds)); + snackBarCompleter(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(context, localization.deletedExpenseCategory), - expenseCategoryIds)); + snackBarCompleter(context, message), expenseCategoryIds)); break; case EntityAction.newExpense: createEntity( diff --git a/lib/redux/group/group_actions.dart b/lib/redux/group/group_actions.dart index 9edc757c8..691efa5f4 100644 --- a/lib/redux/group/group_actions.dart +++ b/lib/redux/group/group_actions.dart @@ -261,18 +261,30 @@ 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(context, localization.restoredGroup), + snackBarCompleter(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(context, localization.archivedGroup), + snackBarCompleter(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(context, localization.deletedGroup), + snackBarCompleter(context, message), groupIds)); break; case EntityAction.toggleMultiselect: diff --git a/lib/redux/invoice/invoice_actions.dart b/lib/redux/invoice/invoice_actions.dart index d34dbd872..dbb460934 100644 --- a/lib/redux/invoice/invoice_actions.dart +++ b/lib/redux/invoice/invoice_actions.dart @@ -602,19 +602,28 @@ void handleInvoiceAction(BuildContext context, List invoices, ); break; case EntityAction.restore: + final message = invoiceIds.length > 1 + ? localization.restoredInvoices + .replaceFirst(':value', invoiceIds.length.toString()) + : localization.restoredInvoice; store.dispatch(RestoreInvoicesRequest( - snackBarCompleter(context, localization.restoredInvoice), - invoiceIds)); + snackBarCompleter(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(context, localization.archivedInvoice), - invoiceIds)); + snackBarCompleter(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(context, localization.deletedInvoice), - invoiceIds)); + snackBarCompleter(context, message), invoiceIds)); break; case EntityAction.toggleMultiselect: if (!store.state.invoiceListState.isInMultiselect()) { diff --git a/lib/redux/payment/payment_actions.dart b/lib/redux/payment/payment_actions.dart index 516c62286..a6d04be9c 100644 --- a/lib/redux/payment/payment_actions.dart +++ b/lib/redux/payment/payment_actions.dart @@ -357,18 +357,30 @@ 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(context, localization.restoredPayment), + snackBarCompleter(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(context, localization.archivedPayment), + snackBarCompleter(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(context, localization.deletedPayment), + snackBarCompleter(context, message), paymentIds)); break; case EntityAction.toggleMultiselect: diff --git a/lib/redux/payment_term/payment_term_actions.dart b/lib/redux/payment_term/payment_term_actions.dart index 26f847e14..106193120 100644 --- a/lib/redux/payment_term/payment_term_actions.dart +++ b/lib/redux/payment_term/payment_term_actions.dart @@ -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(context, localization.restoredPaymentTerm), - paymentTermIds)); + snackBarCompleter(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(context, localization.archivedPaymentTerm), - paymentTermIds)); + snackBarCompleter(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(context, localization.deletedPaymentTerm), - paymentTermIds)); + snackBarCompleter(context, message), paymentTermIds)); break; case EntityAction.toggleMultiselect: if (!store.state.paymentTermListState.isInMultiselect()) { diff --git a/lib/redux/product/product_actions.dart b/lib/redux/product/product_actions.dart index 0b4ae817b..d72d48c91 100644 --- a/lib/redux/product/product_actions.dart +++ b/lib/redux/product/product_actions.dart @@ -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(context, localization.restoredProduct), - productIds)); + snackBarCompleter(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(context, localization.archivedProduct), - productIds)); + snackBarCompleter(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(context, localization.deletedProduct), - productIds)); + snackBarCompleter(context, message), productIds)); break; case EntityAction.toggleMultiselect: if (!store.state.productListState.isInMultiselect()) { diff --git a/lib/redux/project/project_actions.dart b/lib/redux/project/project_actions.dart index ba209388f..2db20e647 100644 --- a/lib/redux/project/project_actions.dart +++ b/lib/redux/project/project_actions.dart @@ -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( - context, AppLocalization.of(context).restoredProject), - projectIds)); + snackBarCompleter(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( - context, AppLocalization.of(context).archivedProject), - projectIds)); + snackBarCompleter(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( - context, AppLocalization.of(context).deletedProject), - projectIds)); + snackBarCompleter(context, message), projectIds)); break; case EntityAction.toggleMultiselect: if (!store.state.projectListState.isInMultiselect()) { diff --git a/lib/redux/quote/quote_actions.dart b/lib/redux/quote/quote_actions.dart index e8b3bbd42..865f4bff3 100644 --- a/lib/redux/quote/quote_actions.dart +++ b/lib/redux/quote/quote_actions.dart @@ -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(context, localization.restoredQuote), - quoteIds)); + snackBarCompleter(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(context, localization.archivedQuote), - quoteIds)); + snackBarCompleter(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(context, localization.deletedQuote), - quoteIds)); + snackBarCompleter(context, message), quoteIds)); break; case EntityAction.toggleMultiselect: if (!store.state.quoteListState.isInMultiselect()) { diff --git a/lib/redux/recurring_invoice/recurring_invoice_actions.dart b/lib/redux/recurring_invoice/recurring_invoice_actions.dart index 6e0cd4b8c..7983347f5 100644 --- a/lib/redux/recurring_invoice/recurring_invoice_actions.dart +++ b/lib/redux/recurring_invoice/recurring_invoice_actions.dart @@ -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( - context, localization.restoredRecurringInvoice), - recurringInvoiceIds)); + snackBarCompleter(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( - context, localization.archivedRecurringInvoice), - recurringInvoiceIds)); + snackBarCompleter(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( - context, localization.deletedRecurringInvoice), - recurringInvoiceIds)); + snackBarCompleter(context, message), recurringInvoiceIds)); break; case EntityAction.toggleMultiselect: if (!store.state.recurringInvoiceListState.isInMultiselect()) { diff --git a/lib/redux/task/task_actions.dart b/lib/redux/task/task_actions.dart index a27e4fb70..3e1a3f922 100644 --- a/lib/redux/task/task_actions.dart +++ b/lib/redux/task/task_actions.dart @@ -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(context, localization.restoredTask), - taskIds)); + snackBarCompleter(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(context, localization.archivedTask), - taskIds)); + snackBarCompleter(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(context, localization.deletedTask), taskIds)); + snackBarCompleter(context, message), taskIds)); break; case EntityAction.toggleMultiselect: if (!store.state.taskListState.isInMultiselect()) { diff --git a/lib/redux/task_status/task_status_actions.dart b/lib/redux/task_status/task_status_actions.dart index 26f7ba3f2..015ef38c1 100644 --- a/lib/redux/task_status/task_status_actions.dart +++ b/lib/redux/task_status/task_status_actions.dart @@ -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(context, localization.restoredTaskStatus), - taskStatusIds)); + snackBarCompleter(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(context, localization.archivedTaskStatus), - taskStatusIds)); + snackBarCompleter(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(context, localization.deletedTaskStatus), - taskStatusIds)); + snackBarCompleter(context, message), taskStatusIds)); break; case EntityAction.newTask: createEntity( diff --git a/lib/redux/tax_rate/tax_rate_actions.dart b/lib/redux/tax_rate/tax_rate_actions.dart index 7212a06f5..499660bb7 100644 --- a/lib/redux/tax_rate/tax_rate_actions.dart +++ b/lib/redux/tax_rate/tax_rate_actions.dart @@ -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(context, localization.restoredTaxRate), - taxRateIds)); + snackBarCompleter(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(context, localization.archivedTaxRate), - taxRateIds)); + snackBarCompleter(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(context, localization.deletedTaxRate), - taxRateIds)); + snackBarCompleter(context, message), taxRateIds)); break; case EntityAction.toggleMultiselect: if (!store.state.taxRateListState.isInMultiselect()) { diff --git a/lib/redux/token/token_actions.dart b/lib/redux/token/token_actions.dart index a087a78a7..b673bcce3 100644 --- a/lib/redux/token/token_actions.dart +++ b/lib/redux/token/token_actions.dart @@ -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(context, localization.restoredToken), - tokenIds)); + snackBarCompleter(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(context, localization.archivedToken), - tokenIds)); + snackBarCompleter(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(context, localization.deletedToken), - tokenIds)); + snackBarCompleter(context, message), tokenIds)); break; case EntityAction.toggleMultiselect: if (!store.state.tokenListState.isInMultiselect()) { diff --git a/lib/redux/user/user_actions.dart b/lib/redux/user/user_actions.dart index 3435d18cb..afd628cc6 100644 --- a/lib/redux/user/user_actions.dart +++ b/lib/redux/user/user_actions.dart @@ -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(context, localization.restoredUser), + completer: snackBarCompleter(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(context, localization.archivedUser), + completer: snackBarCompleter(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(context, localization.deletedUser), + completer: snackBarCompleter(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(context, localization.removedUser), + completer: snackBarCompleter(context, message), userId: user.id, password: password)); confirmCallback( diff --git a/lib/redux/vendor/vendor_actions.dart b/lib/redux/vendor/vendor_actions.dart index 891dd544d..a414eb92e 100644 --- a/lib/redux/vendor/vendor_actions.dart +++ b/lib/redux/vendor/vendor_actions.dart @@ -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(context, localization.restoredVendor), - vendorIds)); + snackBarCompleter(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(context, localization.archivedVendor), - vendorIds)); + snackBarCompleter(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(context, localization.deletedVendor), - vendorIds)); + snackBarCompleter(context, message), vendorIds)); break; case EntityAction.toggleMultiselect: if (!store.state.vendorListState.isInMultiselect()) { diff --git a/lib/redux/webhook/webhook_actions.dart b/lib/redux/webhook/webhook_actions.dart index 7359b2185..5aa917fb7 100644 --- a/lib/redux/webhook/webhook_actions.dart +++ b/lib/redux/webhook/webhook_actions.dart @@ -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(context, localization.restoredWebhook), - webhookIds)); + snackBarCompleter(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(context, localization.archivedWebhook), - webhookIds)); + snackBarCompleter(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(context, localization.deletedWebhook), - webhookIds)); + snackBarCompleter(context, message), webhookIds)); break; case EntityAction.toggleMultiselect: if (!store.state.webhookListState.isInMultiselect()) { diff --git a/lib/utils/i18n.dart b/lib/utils/i18n.dart index 410891ccd..933170024 100644 --- a/lib/utils/i18n.dart +++ b/lib/utils/i18n.dart @@ -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 =>