diff --git a/app/Api/V1/Requests/Models/Rule/StoreRequest.php b/app/Api/V1/Requests/Models/Rule/StoreRequest.php index f931324944..3975974862 100644 --- a/app/Api/V1/Requests/Models/Rule/StoreRequest.php +++ b/app/Api/V1/Requests/Models/Rule/StoreRequest.php @@ -119,7 +119,7 @@ class StoreRequest extends FormRequest 'description' => 'min:1|max:32768|nullable', 'rule_group_id' => 'belongsToUser:rule_groups|required_without:rule_group_title', 'rule_group_title' => 'nullable|min:1|max:255|required_without:rule_group_id|belongsToUser:rule_groups,title', - 'trigger' => 'required|in:store-journal,update-journal', + 'trigger' => 'required|in:store-journal,update-journal,manual-activation', 'triggers.*.type' => 'required|in:'.implode(',', $validTriggers), 'triggers.*.value' => 'required_if:actions.*.type,'.$contextTriggers.'|min:1|ruleTriggerValue|max:1024', 'triggers.*.stop_processing' => [new IsBoolean()], diff --git a/app/Api/V1/Requests/Models/Rule/UpdateRequest.php b/app/Api/V1/Requests/Models/Rule/UpdateRequest.php index 6a07753b17..7bfb395166 100644 --- a/app/Api/V1/Requests/Models/Rule/UpdateRequest.php +++ b/app/Api/V1/Requests/Models/Rule/UpdateRequest.php @@ -138,7 +138,7 @@ class UpdateRequest extends FormRequest 'description' => 'min:1|max:32768|nullable', 'rule_group_id' => 'belongsToUser:rule_groups', 'rule_group_title' => 'nullable|min:1|max:255|belongsToUser:rule_groups,title', - 'trigger' => 'in:store-journal,update-journal', + 'trigger' => 'in:store-journal,update-journal.manual-activation', 'triggers.*.type' => 'required|in:'.implode(',', $validTriggers), 'triggers.*.value' => 'required_if:actions.*.type,'.$contextTriggers.'|min:1|ruleTriggerValue|max:1024', 'triggers.*.stop_processing' => [new IsBoolean()], diff --git a/app/Http/Requests/RuleFormRequest.php b/app/Http/Requests/RuleFormRequest.php index 29c2352a56..e897b1847d 100644 --- a/app/Http/Requests/RuleFormRequest.php +++ b/app/Http/Requests/RuleFormRequest.php @@ -144,7 +144,7 @@ class RuleFormRequest extends FormRequest 'description' => 'min:1|max:32768|nullable', 'stop_processing' => 'boolean', 'rule_group_id' => 'required|belongsToUser:rule_groups', - 'trigger' => 'required|in:store-journal,update-journal', + 'trigger' => 'required|in:store-journal,update-journal,manual-activation', 'triggers.*.type' => 'required|in:'.implode(',', $validTriggers), 'triggers.*.value' => sprintf('required_if:triggers.*.type,%s|max:1024|min:1|ruleTriggerValue', $contextTriggers), 'actions.*.type' => 'required|in:'.implode(',', $validActions), diff --git a/app/Repositories/Rule/RuleRepository.php b/app/Repositories/Rule/RuleRepository.php index 16b6e46822..da014f3143 100644 --- a/app/Repositories/Rule/RuleRepository.php +++ b/app/Repositories/Rule/RuleRepository.php @@ -484,6 +484,9 @@ class RuleRepository implements RuleRepositoryInterface if (array_key_exists('trigger', $data) && 'update-journal' === $data['trigger']) { $this->setRuleTrigger('update-journal', $rule); } + if (array_key_exists('trigger', $data) && 'manual-activation' === $data['trigger']) { + $this->setRuleTrigger('manual-activation', $rule); + } if (array_key_exists('trigger', $data) && 'store-journal' === $data['trigger']) { $this->setRuleTrigger('store-journal', $rule); } diff --git a/app/Support/Twig/Rule.php b/app/Support/Twig/Rule.php index c79031d807..45ba0a3836 100644 --- a/app/Support/Twig/Rule.php +++ b/app/Support/Twig/Rule.php @@ -48,6 +48,7 @@ class Rule extends AbstractExtension return [ 'store-journal' => (string)trans('firefly.rule_trigger_store_journal'), 'update-journal' => (string)trans('firefly.rule_trigger_update_journal'), + 'manual-activation' => (string)trans('firefly.rule_trigger_manual'), ]; } ); diff --git a/resources/lang/en_US/firefly.php b/resources/lang/en_US/firefly.php index 761cf37d07..a7dde17776 100644 --- a/resources/lang/en_US/firefly.php +++ b/resources/lang/en_US/firefly.php @@ -793,6 +793,7 @@ return [ // actions and triggers 'rule_trigger_store_journal' => 'When a transaction is created', 'rule_trigger_update_journal' => 'When a transaction is updated', + 'rule_trigger_manual' => 'Only when user-activated', 'rule_trigger_user_action' => 'User action is ":trigger_value"', // OLD values (remove non-doubles later): diff --git a/resources/views/rules/index.twig b/resources/views/rules/index.twig index c93c0cc2d8..0c76e48cd9 100644 --- a/resources/views/rules/index.twig +++ b/resources/views/rules/index.twig @@ -96,10 +96,9 @@
+ {# show which transactions would match #} + {% if rule.active %} - {# show which transactions would match #} - - {# actually execute rule #} {% endif %}