diff --git a/app/views/settings/providers/_binance_panel.html.erb b/app/views/settings/providers/_binance_panel.html.erb index 05378904a..2ad0158e2 100644 --- a/app/views/settings/providers/_binance_panel.html.erb +++ b/app/views/settings/providers/_binance_panel.html.erb @@ -94,13 +94,4 @@ <% end %> <% end %> -
- <% if items.any? %> -
-

<%= t("settings.providers.binance_panel.status_connected") %>

- <% else %> -
-

<%= t("settings.providers.binance_panel.status_not_connected") %>

- <% end %> -
diff --git a/app/views/settings/providers/_coinbase_panel.html.erb b/app/views/settings/providers/_coinbase_panel.html.erb index 3cd62ff5d..3d596b160 100644 --- a/app/views/settings/providers/_coinbase_panel.html.erb +++ b/app/views/settings/providers/_coinbase_panel.html.erb @@ -82,13 +82,4 @@ <% end %> <% end %> -
- <% if items.any? %> -
-

<%= t("settings.providers.coinbase_panel.status_connected") %>

- <% else %> -
-

<%= t("settings.providers.coinbase_panel.status_not_connected") %>

- <% end %> -
diff --git a/app/views/settings/providers/_coinstats_panel.html.erb b/app/views/settings/providers/_coinstats_panel.html.erb index c5359e104..46ccc9f22 100644 --- a/app/views/settings/providers/_coinstats_panel.html.erb +++ b/app/views/settings/providers/_coinstats_panel.html.erb @@ -41,14 +41,4 @@ <% end %> - <% items = local_assigns[:coinstats_items] || @coinstats_items || Current.family.coinstats_items.where.not(api_key: [nil, ""]) %> -
- <% if items&.any? %> -
-

<%= t("coinstats_items.new.status_configured_html", accounts_url: accounts_path).html_safe %>

- <% else %> -
-

<%= t("coinstats_items.new.status_not_configured") %>

- <% end %> -
diff --git a/app/views/settings/providers/_drawer_header.html.erb b/app/views/settings/providers/_drawer_header.html.erb new file mode 100644 index 000000000..2d3c12b43 --- /dev/null +++ b/app/views/settings/providers/_drawer_header.html.erb @@ -0,0 +1,25 @@ +<%# locals: (provider_key:, title:) %> +<% meta = provider_key.present? ? Provider::Metadata.for(provider_key) : nil %> +<% maturity_label_key = meta && Settings::ProviderCard::MATURITY_LABELS[meta[:maturity]] %> +<% maturity_label = maturity_label_key ? t(maturity_label_key) : nil %> +
+
+ <% if meta && meta[:logo_bg].present? %> + + <%= meta[:logo_text] %> + + <% end %> +

<%= title %>

+ <% if maturity_label %> + <%= maturity_label %> + <% end %> +
+ <%= render DS::Button.new( + variant: "icon", + class: "ml-auto hidden lg:flex", + icon: "x", + title: t("common.close"), + aria_label: t("common.close"), + data: { action: "DS--dialog#close" } + ) %> +
diff --git a/app/views/settings/providers/_enable_banking_panel.html.erb b/app/views/settings/providers/_enable_banking_panel.html.erb index d778d8759..0b6be02bc 100644 --- a/app/views/settings/providers/_enable_banking_panel.html.erb +++ b/app/views/settings/providers/_enable_banking_panel.html.erb @@ -98,7 +98,7 @@ disabled: has_authenticated_connections && !is_new_record %>
- <%= form.submit is_new_record ? "Save Configuration" : "Update Configuration", + <%= form.submit is_new_record ? "Save and connect" : "Update connection", class: "inline-flex items-center justify-center rounded-lg px-4 py-2 text-sm font-medium text-inverse button-bg-primary hover:button-bg-primary-hover focus:outline-none focus:ring-2 focus:ring-gray-900 theme-dark:focus:ring-white focus:ring-offset-2 transition-colors" %>
<% end %> @@ -169,7 +169,7 @@ <%= link_to select_bank_enable_banking_item_path(item), class: "inline-flex items-center justify-center rounded-lg px-3 py-1.5 text-xs font-medium text-inverse button-bg-primary hover:button-bg-primary-hover transition-colors", data: { turbo_frame: "modal" } do %> - Connect Bank + Connect bank <% end %> <% end %> diff --git a/app/views/settings/providers/_indexa_capital_panel.html.erb b/app/views/settings/providers/_indexa_capital_panel.html.erb index c31ec5f1c..b6ab19cfb 100644 --- a/app/views/settings/providers/_indexa_capital_panel.html.erb +++ b/app/views/settings/providers/_indexa_capital_panel.html.erb @@ -64,14 +64,4 @@ <% end %> - <% items = local_assigns[:indexa_capital_items] || @indexa_capital_items || Current.family.indexa_capital_items.where.not(username: [nil, ""], document: [nil, ""], password: [nil, ""]).or(Current.family.indexa_capital_items.where.not(api_token: [nil, ""])) %> -
- <% if items&.any? %> -
-

<%= t("indexa_capital_items.panel.status_configured_html", accounts_path: accounts_path).html_safe %>

- <% else %> -
-

<%= t("indexa_capital_items.panel.status_not_configured") %>

- <% end %> -
diff --git a/app/views/settings/providers/_lunchflow_panel.html.erb b/app/views/settings/providers/_lunchflow_panel.html.erb index b54c49810..a41131a53 100644 --- a/app/views/settings/providers/_lunchflow_panel.html.erb +++ b/app/views/settings/providers/_lunchflow_panel.html.erb @@ -44,19 +44,9 @@ value: lunchflow_item.base_url %>
- <%= form.submit is_new_record ? "Save Configuration" : "Update Configuration", + <%= form.submit is_new_record ? "Save and connect" : "Update connection", class: "inline-flex items-center justify-center rounded-lg px-4 py-2 text-sm font-medium text-inverse button-bg-primary hover:button-bg-primary-hover focus:outline-none focus:ring-2 focus:ring-gray-900 theme-dark:focus:ring-white focus:ring-offset-2 transition-colors" %>
<% end %> - <% items = local_assigns[:lunchflow_items] || @lunchflow_items || Current.family.lunchflow_items.where.not(api_key: nil) %> -
- <% if items&.any? %> -
-

Configured and ready to use. Visit the Accounts tab to manage and set up accounts.

- <% else %> -
-

Not configured

- <% end %> -
diff --git a/app/views/settings/providers/_mercury_panel.html.erb b/app/views/settings/providers/_mercury_panel.html.erb index 43173fa2b..c0885b4dd 100644 --- a/app/views/settings/providers/_mercury_panel.html.erb +++ b/app/views/settings/providers/_mercury_panel.html.erb @@ -130,13 +130,4 @@ <% end %> -
- <% if credentialed_items.any? %> -
-

<%= t("mercury_items.provider_panel.configured_html", accounts_link: link_to(t("mercury_items.provider_panel.accounts_link"), accounts_path, class: "link")) %>

- <% else %> -
-

<%= t("mercury_items.provider_panel.not_configured") %>

- <% end %> -
diff --git a/app/views/settings/providers/_provider_form.html.erb b/app/views/settings/providers/_provider_form.html.erb index 5c86e3b3a..442c5325b 100644 --- a/app/views/settings/providers/_provider_form.html.erb +++ b/app/views/settings/providers/_provider_form.html.erb @@ -67,20 +67,10 @@ <% end %>
- <%= form.submit "Save Configuration", + <%= form.submit "Save and connect", class: "inline-flex items-center justify-center rounded-lg px-4 py-2 text-sm font-medium text-inverse button-bg-primary hover:button-bg-primary-hover focus:outline-none focus:ring-2 focus:ring-gray-900 theme-dark:focus:ring-white focus:ring-offset-2 transition-colors" %>
<% end %> - <%# Show configuration status %> -
- <% if configuration.configured? %> -
-

Configured and ready to use

- <% else %> -
-

Not configured

- <% end %> -
diff --git a/app/views/settings/providers/_simplefin_panel.html.erb b/app/views/settings/providers/_simplefin_panel.html.erb index d4b6b5251..02e28e7c9 100644 --- a/app/views/settings/providers/_simplefin_panel.html.erb +++ b/app/views/settings/providers/_simplefin_panel.html.erb @@ -31,18 +31,9 @@ type: :password %>
- <%= form.submit "Save Configuration", + <%= form.submit "Save and connect", class: "inline-flex items-center justify-center rounded-lg px-4 py-2 text-sm font-medium text-inverse button-bg-primary hover:button-bg-primary-hover focus:outline-none focus:ring-2 focus:ring-gray-900 theme-dark:focus:ring-white focus:ring-offset-2 transition-colors" %>
<% end %> -
- <% if @simplefin_items&.any? %> -
-

Configured and ready to use. Visit the Accounts tab to manage and set up accounts.

- <% else %> -
-

Not configured

- <% end %> -
diff --git a/app/views/settings/providers/_snaptrade_panel.html.erb b/app/views/settings/providers/_snaptrade_panel.html.erb index 314213acc..e390121f3 100644 --- a/app/views/settings/providers/_snaptrade_panel.html.erb +++ b/app/views/settings/providers/_snaptrade_panel.html.erb @@ -51,56 +51,43 @@ <% items = local_assigns[:snaptrade_items] || @snaptrade_items || Current.family.snaptrade_items.where.not(client_id: [nil, ""]) %> -
- <% if items&.any? %> - <% item = items.first %> - <% if item.user_registered? %> -
- -
-
-

- <%= t("providers.snaptrade.status_connected", count: item.snaptrade_accounts.count) %> - <% if item.unlinked_accounts_count > 0 %> - (<%= t("providers.snaptrade.needs_setup", count: item.unlinked_accounts_count) %>) - <% end %> -

-
- - <%= t("providers.snaptrade.manage_connections") %> - <%= icon "chevron-right", class: "w-3 h-3 transition-transform group-open:rotate-90" %> - -
- -
-

- <%= t("providers.snaptrade.connection_limit_info") %> + <% if items&.any? && items.first.user_registered? %> + <% item = items.first %> +

+
+ +
+

+ <%= t("providers.snaptrade.status_connected", count: item.snaptrade_accounts.count) %> + <% if item.unlinked_accounts_count > 0 %> + (<%= t("providers.snaptrade.needs_setup", count: item.unlinked_accounts_count) %>) + <% end %>

- -
- <%= icon "loader-2", class: "w-4 h-4 animate-spin" %> - <%= t("providers.snaptrade.loading_connections") %> -
- -
-
-
- <% else %> -
-
-

<%= t("providers.snaptrade.status_needs_registration") %>

+ + <%= t("providers.snaptrade.manage_connections") %> + <%= icon "chevron-right", class: "w-3 h-3 transition-transform group-open:rotate-90" %> + + + +
+

+ <%= t("providers.snaptrade.connection_limit_info") %> +

+ +
+ <%= icon "loader-2", class: "w-4 h-4 animate-spin" %> + <%= t("providers.snaptrade.loading_connections") %> +
+ +
+
- <% end %> - <% else %> -
-
-

<%= t("providers.snaptrade.status_not_configured") %>

-
- <% end %> -
+
+
+ <% end %> diff --git a/app/views/settings/providers/_sophtron_panel.html.erb b/app/views/settings/providers/_sophtron_panel.html.erb index 878d4dd3f..b4551558f 100644 --- a/app/views/settings/providers/_sophtron_panel.html.erb +++ b/app/views/settings/providers/_sophtron_panel.html.erb @@ -56,13 +56,4 @@ <% end %> -
- <% if Current.family.sophtron_items.any? %> -
-

<%= t("sophtron_items.sophtron_panel.status.configured_html", accounts_path: accounts_path) %>

- <% else %> -
-

<%= t("sophtron_items.sophtron_panel.status.not_configured") %>

- <% end %> -
- \ No newline at end of file + diff --git a/app/views/settings/providers/connect_form.html.erb b/app/views/settings/providers/connect_form.html.erb index 340d584a7..c90949e5d 100644 --- a/app/views/settings/providers/connect_form.html.erb +++ b/app/views/settings/providers/connect_form.html.erb @@ -1,5 +1,8 @@ <%= render DS::Dialog.new(frame: "drawer", responsive: true, auto_open: true) do |dialog| %> - <% dialog.with_header(title: @panel_title) %> + <% provider_key = @panel_key || @provider_configuration&.provider_key&.to_s %> + <% dialog.with_header(custom_header: true) do %> + <%= render "settings/providers/drawer_header", provider_key: provider_key, title: @panel_title %> + <% end %> <% dialog.with_body do %> <% if @panel_partial %> @@ -10,5 +13,9 @@ <%= render "settings/providers/provider_form", configuration: @provider_configuration %> <% end %> + +

+ <%= t("settings.providers.drawer_trust_statement") %> +

<% end %> <% end %> diff --git a/config/locales/views/settings/en.yml b/config/locales/views/settings/en.yml index aa619e307..a42631089 100644 --- a/config/locales/views/settings/en.yml +++ b/config/locales/views/settings/en.yml @@ -198,6 +198,7 @@ en: maturity: beta: Beta alpha: Alpha + drawer_trust_statement: "Read-only — Sure can never move money. Stored encrypted." connect: Connect groups: your_connections: Your connections