Close privacy mode gaps on accounts, budget editing, and account activity (#1495)

* Initial plan

* Hide missed values in privacy mode

Agent-Logs-Url: https://github.com/we-promise/sure/sessions/ba225f77-fcf1-4d79-8f89-da446e77fab6

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

* Tighten privacy mode test coverage

Agent-Logs-Url: https://github.com/we-promise/sure/sessions/ba225f77-fcf1-4d79-8f89-da446e77fab6

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

* Polish privacy mode assertions

Agent-Logs-Url: https://github.com/we-promise/sure/sessions/ba225f77-fcf1-4d79-8f89-da446e77fab6

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

* Refine privacy mode tests

Agent-Logs-Url: https://github.com/we-promise/sure/sessions/ba225f77-fcf1-4d79-8f89-da446e77fab6

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

* Restore budget privacy mode form interactivity

Agent-Logs-Url: https://github.com/we-promise/sure/sessions/f3c51447-290c-421f-9cad-e8ff88c91d2f

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
2026-04-19 18:12:03 +02:00
committed by GitHub
parent b32e9dbc45
commit cb842d0d9b
7 changed files with 37 additions and 8 deletions

View File

@@ -2,10 +2,13 @@
html.privacy-mode .privacy-sensitive {
filter: blur(8px);
user-select: none;
pointer-events: none;
transition: filter 0.2s ease;
}
html.privacy-mode .privacy-sensitive:not(.privacy-sensitive-interactive) {
pointer-events: none;
}
html:not(.privacy-mode) .privacy-sensitive {
transition: filter 0.2s ease;
}
}

View File

@@ -9,7 +9,7 @@
<p><%= accounts.count %></p>
<% unless accounts.any?(&:syncing?) %>
<p class="ml-auto"><%= totals_by_currency(collection: accounts, money_method: :balance_money) %></p>
<p class="ml-auto privacy-sensitive"><%= totals_by_currency(collection: accounts, money_method: :balance_money) %></p>
<% end %>
</div>
<div class="bg-container rounded-lg shadow-border-xs overflow-hidden">

View File

@@ -8,13 +8,13 @@
<div class="text-sm mr-3">
<p class="text-primary font-medium mb-0.5"><%= budget_category.category.name %></p>
<p class="text-secondary"><%= budget_category.median_monthly_expense_money.format(precision: 0) %>/m avg</p>
<p class="text-secondary privacy-sensitive"><%= budget_category.median_monthly_expense_money.format(precision: 0) %>/m avg</p>
</div>
<div class="ml-auto">
<%= form_with model: [budget_category.budget, budget_category], data: { controller: "auto-submit-form preserve-focus" } do |f| %>
<div class="form-field w-[120px]">
<div class="flex items-center">
<div class="flex items-center privacy-sensitive privacy-sensitive-interactive">
<span class="text-secondary text-sm mr-2"><%= currency.symbol %></span>
<%= f.number_field :budgeted_spending,
class: "form-field__input text-right [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",

View File

@@ -7,12 +7,12 @@
<div class="text-sm mr-3">
<p class="text-primary font-medium mb-0.5"><%= budget_category.category.name %></p>
<p class="text-secondary"><%= budget_category.avg_monthly_expense_money.format(precision: 0) %>/m avg</p>
<p class="text-secondary privacy-sensitive"><%= budget_category.avg_monthly_expense_money.format(precision: 0) %>/m avg</p>
</div>
<div class="ml-auto">
<div class="form-field w-[120px]">
<div class="flex items-center">
<div class="flex items-center privacy-sensitive">
<span class="text-subdued text-sm mr-2"><%= budget_category.budgeted_spending_money.currency.symbol %></span>
<%= text_field_tag :uncategorized, budget_category.budgeted_spending_money.amount, autocomplete: "off", class: "form-field__input text-right [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none", disabled: true %>
</div>

View File

@@ -57,7 +57,7 @@
<% end %>
<%= content_tag :p,
format_money(-entry.amount_money),
class: ["text-green-600": entry.amount.negative?] %>
class: ["privacy-sensitive", "text-green-600": entry.amount.negative?] %>
</div>
</div>
<% end %>