diff --git a/lib/constants.dart b/lib/constants.dart index 5668f8f35..2ce546d00 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -48,7 +48,7 @@ const String kDebugModeUrl = 'https://www.mailgun.com/blog/a-word-of-caution-for-laravel-developers/'; const String kCapterralUrl = 'https://www.capterra.com/p/145215/Invoice-Ninja/'; const String kCronsHelpUrl = - 'https://invoiceninja.github.io/docs/self-host-installation/#cron-configuration'; + 'https://invoiceninja.github.io/docs/self-host-troubleshooting/#cron-not-running-queue-not-running'; const String kGitHubDiffUrl = 'https://github.com/invoiceninja/invoiceninja/compare/vVERSION...v5-stable'; const String kGitHubLangUrl = diff --git a/lib/ui/subscription/edit/subscription_edit_vm.dart b/lib/ui/subscription/edit/subscription_edit_vm.dart index 007de285c..e52203ba0 100644 --- a/lib/ui/subscription/edit/subscription_edit_vm.dart +++ b/lib/ui/subscription/edit/subscription_edit_vm.dart @@ -67,6 +67,11 @@ class SubscriptionEditVM { onCancelPressed: (BuildContext context) { createEntity( context: context, entity: SubscriptionEntity(), force: true); + if (state.subscriptionUIState.cancelCompleter != null) { + state.subscriptionUIState.cancelCompleter.complete(); + } else { + store.dispatch(UpdateCurrentRoute(state.uiState.previousRoute)); + } }, onSavePressed: (BuildContext context) { final localization = AppLocalization.of(context); diff --git a/lib/ui/subscription/subscription_screen.dart b/lib/ui/subscription/subscription_screen.dart index 7665e0f7e..45800aa9f 100644 --- a/lib/ui/subscription/subscription_screen.dart +++ b/lib/ui/subscription/subscription_screen.dart @@ -38,6 +38,7 @@ class SubscriptionScreen extends StatelessWidget { onHamburgerLongPress: () => store.dispatch(StartSubscriptionMultiselect()), appBarTitle: ListFilter( + entityType: EntityType.subscription, entityIds: viewModel.subscriptionList, filter: state.subscriptionListState.filter, onFilterChanged: (value) { diff --git a/lib/utils/i18n.dart b/lib/utils/i18n.dart index f6749f05e..33c57fa5b 100644 --- a/lib/utils/i18n.dart +++ b/lib/utils/i18n.dart @@ -25,7 +25,8 @@ mixin LocalizationsProvider on LocaleCodeAware { 'deleted_subscription': 'Successfully deleted subscription', 'removed_subscription': 'Successfully removed subscription', 'restored_subscription': 'Successfully restored subscription', - 'search_subscription': 'Search Subscription', + 'search_subscription': 'Search 1 Subscription', + 'search_subscriptions': 'Search :count Subscriptions', 'subdomain_is_not_available': 'Subdomain is not available', 'connect_gmail': 'Connect Gmail', 'disconnect_gmail': 'Disconnect Gmail', @@ -56183,6 +56184,10 @@ mixin LocalizationsProvider on LocaleCodeAware { _localizedValues[localeCode]['search_subscription'] ?? _localizedValues['en']['search_subscription']; + String get searchSubscriptions => + _localizedValues[localeCode]['search_subscriptions'] ?? + _localizedValues['en']['search_subscriptions']; + String lookup(String key) { final lookupKey = toSnakeCase(key); diff --git a/stubs/ui/stub/edit/stub_edit_vm b/stubs/ui/stub/edit/stub_edit_vm index e274f1e13..214acdcd1 100644 --- a/stubs/ui/stub/edit/stub_edit_vm +++ b/stubs/ui/stub/edit/stub_edit_vm @@ -65,6 +65,11 @@ class StubEditVM { }, onCancelPressed: (BuildContext context) { createEntity(context: context, entity: StubEntity(), force: true); + if (state.stubUIState.cancelCompleter != null) { + state.stubUIState.cancelCompleter.complete(); + } else { + store.dispatch(UpdateCurrentRoute(state.uiState.previousRoute)); + } }, onSavePressed: (BuildContext context) { final localization = AppLocalization.of(context); diff --git a/stubs/ui/stub/stub_screen b/stubs/ui/stub/stub_screen index 09118ca68..b1399c4b1 100644 --- a/stubs/ui/stub/stub_screen +++ b/stubs/ui/stub/stub_screen @@ -36,6 +36,7 @@ class StubScreen extends StatelessWidget { entityType: EntityType.stub, onHamburgerLongPress: () => store.dispatch(StartStubMultiselect()), appBarTitle: ListFilter( + entityType: EntityType.stub, entityIds: viewModel.stubList, filter: state.stubListState.filter, onFilterChanged: (value) {