Files
sure/app/views/goals/_empty_state.html.erb
Guillem Arias 9b61e4a41b refactor: rename Savings Goals feature to Goals
User-facing rename + structural rename. Feature is now called just
"Goals" everywhere — page title, sidebar nav, modal headings, flash
messages, AI assistant tool. Code identifiers follow:

- Models: SavingsGoal → Goal, SavingsContribution → GoalContribution,
  SavingsGoalAccount → GoalAccount.
- Tables: savings_goals → goals, savings_contributions → goal_contributions,
  savings_goal_accounts → goal_accounts. FK columns savings_goal_id →
  goal_id. New migration db/migrate/20260511100003_rename_savings_to_goals.rb
  uses rename_table + rename_column; PG handles index renaming and FK
  redirection automatically.
- Controllers: SavingsGoalsController → GoalsController,
  SavingsContributionsController → GoalContributionsController.
- Routes: /savings_goals → /goals, nested /goals/:id/contributions
  (resource name shifts; old route name aliases dropped).
- ViewComponent namespace: Savings::* → Goals::*. Component class
  names drop their redundant "Goal" prefix where the namespace already
  carries it: Savings::GoalCardComponent → Goals::CardComponent,
  Savings::GoalAvatarComponent → Goals::AvatarComponent. Others keep
  their names (Goals::ProgressRingComponent, Goals::StatusPillComponent,
  Goals::AccountStackComponent, Goals::FundingAccountsBreakdownComponent).
- Stimulus controllers: savings_goal_* → goal_*, savings_goals_filter
  → goals_filter. Stimulus identifiers in data-controller / data-*
  attributes follow.
- Locale keys: savings_goals: → goals: (top level), savings_contributions:
  → goal_contributions: (top level). All t() callers updated.
- AI assistant tool: Assistant::Function::CreateSavingsGoal →
  Assistant::Function::CreateGoal, tool name "create_savings_goal" →
  "create_goal", description / response text updated.
- Sidebar nav label "Savings" → "Goals". Goals/show + index page title
  "Savings" → "Goals". Empty goals_section heading/subtitle dropped
  (duplicated the page title post-rename).

Original migrations create_savings_goals / create_savings_goal_accounts /
create_savings_contributions remain untouched so historical replay
still works; the rename migration runs on top.
2026-05-11 20:08:32 +02:00

30 lines
1.1 KiB
Plaintext

<%# locals: (linkable_account_count:) %>
<div class="bg-container rounded-xl shadow-border-xs py-20">
<div class="flex flex-col items-center text-center max-w-md mx-auto px-6">
<div class="w-24 h-24 rounded-full bg-surface-inset flex items-center justify-center mb-5 text-secondary">
<%= icon("target", size: "2xl") %>
</div>
<h2 class="text-lg font-medium text-primary mb-2"><%= t("goals.empty_state.heading") %></h2>
<p class="text-sm text-secondary leading-relaxed mb-5"><%= t("goals.empty_state.body") %></p>
<% if linkable_account_count > 0 %>
<%= render DS::Link.new(
text: t("goals.empty_state.new_goal"),
variant: "primary",
href: new_goal_path,
icon: "plus",
frame: :modal
) %>
<% else %>
<p class="text-sm text-secondary mb-3"><%= t("goals.empty_state.no_depository_accounts") %></p>
<%= render DS::Link.new(
text: t("goals.empty_state.add_account"),
variant: "primary",
href: new_account_path(return_to: goals_path),
icon: "plus"
) %>
<% end %>
</div>
</div>