Fix action value rendering for text-type executors in rule form (#527)

* Initial plan

* Fix transaction name rule rendering and add tests

Co-authored-by: jjmata <187772+jjmata@users.noreply.github.com>

* Remove redundant integration tests for set_transaction_name

The functionality is already covered by existing unit tests in test/models/rule/action_test.rb. The core fix for this PR is the view rendering logic, not the action functionality.

Co-authored-by: jjmata <187772+jjmata@users.noreply.github.com>

* Localize placeholder text for rule action value input

Replace hardcoded "Enter a value" placeholder with localized t() lookup at lines 22 and 41 in app/views/rule/actions/_action.html.erb. Add corresponding translation key to config/locales/views/rules/en.yml under rules.actions.value_placeholder.

Co-authored-by: jjmata <187772+jjmata@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jjmata <187772+jjmata@users.noreply.github.com>
This commit is contained in:
Copilot
2025-12-31 10:46:26 +01:00
committed by GitHub
parent 4946dd7441
commit 10b15061b8
2 changed files with 10 additions and 5 deletions

View File

@@ -11,13 +11,16 @@
<%= form.select :action_type, rule.action_executors.map { |executor| [ executor.label, executor.key ] }, {}, data: { action: "rule--actions#handleActionTypeChange" } %>
</div>
<%= tag.div class: class_names("min-w-1/2 flex items-center gap-2"),
<%= tag.div class: class_names("min-w-1/2 flex items-center gap-2", { "hidden": action.executor.type == "function" }),
data: { rule__actions_target: "actionValue" } do %>
<%# Initial rendering based on rule.action_executors.first from the rule form. %>
<%# This is currently always SetTransactionCategory from transaction_resource.rb, which is a select type. %>
<%# Initial rendering based on the action executor type. %>
<%# Subsequent renders are injected by the Stimulus controller, which uses the templates from below. %>
<span class="font-medium text-primary uppercase text-xs">to</span>
<%= form.select :value, action.options || [], {} %>
<% if action.executor.type == "select" %>
<%= form.select :value, action.options || [], {} %>
<% elsif action.executor.type == "text" %>
<%= form.text_field :value, placeholder: t("rules.actions.value_placeholder") %>
<% end %>
<% end %>
</div>
@@ -35,7 +38,7 @@
<template data-rule--actions-target="textTemplate">
<span class="font-medium text-primary uppercase text-xs">to</span>
<%= form.text_field :value, placeholder: "Enter a value" %>
<%= form.text_field :value, placeholder: t("rules.actions.value_placeholder") %>
</template>
<%# The function type doesn't need an input, so no template is required.%>

View File

@@ -2,6 +2,8 @@
en:
rules:
no_action: No Action
actions:
value_placeholder: Enter a value
recent_runs:
title: Recent Runs
description: View the execution history of your rules including success/failure status and transaction counts.