From 77a100b34560845264f948a37c33a868f42254c2 Mon Sep 17 00:00:00 2001 From: Guillem Arias Date: Sat, 9 May 2026 13:22:01 +0200 Subject: [PATCH] fix(provider/metadata): add plaid_eu entry MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `plaid_eu` is registered as a separate Provider::ConfigurationRegistry entry but had no Provider::Metadata row, so its card in the Available grid fell through to the gray-500 default and rendered empty (no region, kind, tier, or tagline). The title also came out as "Plaid Eu" because `titleize` doesn't know "EU" is an initialism. - Add a `plaid_eu` row to Provider::Metadata::REGISTRY with the same shape as `plaid` (US → EU, otherwise identical). - Introduce an optional `name:` field in metadata; controller falls back to it before titleizing the provider key. Lets `plaid_eu` render as "Plaid EU". - Add the missing `settings.providers.taglines.plaid_eu` translation. --- app/controllers/settings/providers_controller.rb | 5 +++-- app/models/provider/metadata.rb | 9 +++++++++ config/locales/views/settings/en.yml | 1 + 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/controllers/settings/providers_controller.rb b/app/controllers/settings/providers_controller.rb index 159ca3ef5..1e863b378 100644 --- a/app/controllers/settings/providers_controller.rb +++ b/app/controllers/settings/providers_controller.rb @@ -301,11 +301,12 @@ class Settings::ProvidersController < ApplicationController # view to render either a provider_form or a family panel partial. def build_provider_entries configuration_entries = @provider_configurations.map do |config| + meta = Provider::Metadata.for(config.provider_key) { provider_key: config.provider_key.to_s, - title: config.provider_key.to_s.titleize, + title: meta[:name] || config.provider_key.to_s.titleize, configuration: config, - maturity: Provider::Metadata.for(config.provider_key)[:maturity], + maturity: meta[:maturity], summary: view_context.provider_summary(config.provider_key) } end diff --git a/app/models/provider/metadata.rb b/app/models/provider/metadata.rb index d891ef4c1..702e0f4ee 100644 --- a/app/models/provider/metadata.rb +++ b/app/models/provider/metadata.rb @@ -78,6 +78,15 @@ class Provider maturity: :stable, logo_bg: "bg-indigo-600", logo_text: "PL" + }, + plaid_eu: { + name: "Plaid EU", + region: "EU", + kind: "Bank", + tier: "Paid", + maturity: :stable, + logo_bg: "bg-indigo-600", + logo_text: "PL" } }.freeze diff --git a/config/locales/views/settings/en.yml b/config/locales/views/settings/en.yml index 8f00616b9..b6b26fb4d 100644 --- a/config/locales/views/settings/en.yml +++ b/config/locales/views/settings/en.yml @@ -231,6 +231,7 @@ en: indexa_capital: Track your Indexa Capital automated investment portfolio. sophtron: Connect US & Canadian banks and utilities. plaid: Connect thousands of US financial institutions via Plaid. + plaid_eu: Connect European financial institutions via Plaid (PSD2 / Open Banking). search_filters: aria_label: Search providers placeholder: