mirror of
https://github.com/we-promise/sure.git
synced 2026-04-25 15:04:04 +00:00
* Domain model sketch * Scaffold out rules domain * Migrations * Remove existing data enrichment for clean slate * Sketch out business logic and basic tests * Simplify rule scope building and action executions * Get generator working again * Basic implementation + tests * Remove manual merchant management (rules will replace) * Revert "Remove manual merchant management (rules will replace)" This reverts commit 83dcbd9ff0aa7bbee211796b71aa48b71df5e57e. * Family and Provider merchants model * Fix brakeman warnings * Fix notification loader * Update notification position * Add Rule action and condition registries * Rule form with compound conditions and tests * Split out notification types, add CTA type * Rules form builder and Stimulus controller * Clean up rule registry domain * Clean up rules stimulus controller * CTA message for rule when user changes transaction category * Fix tests * Lint updates * Centralize notifications in Notifiable concern * Implement category rule prompts with auto backoff and option to disable * Fix layout bug caused by merge conflict * Initialize rule with correct action for category CTA * Add rule deletions, get rules working * Complete dynamic rule form, split Stimulus controllers by resource * Fix failing tests * Change test password to avoid chromium conflicts * Update integration tests * Centralize all test password references * Add re-apply rule action * Rule confirm modal * Run migrations * Trigger rule notification after inline category updates * Clean up rule styles * Basic attribute locking for rules * Apply attribute locks on user edits * Log data enrichments, only apply rules to unlocked attributes * Fix merge errors * Additional merge conflict fixes * Form UI improvements, ignore attribute locks on manual rule application * Batch AI auto-categorization of transactions * Auto merchant detection, ai enrichment in batches * Fix Plaid merchant assignments * Plaid category matching * Cleanup 1 * Test cleanup * Remove stale route * Fix desktop chat UI issues * Fix mobile nav styling issues
44 lines
1.7 KiB
Plaintext
44 lines
1.7 KiB
Plaintext
<%# locals: (entry:, balance_trend: nil, **) %>
|
|
|
|
<% valuation = entry.entryable %>
|
|
|
|
<% color = balance_trend&.trend&.color || "#D444F1" %>
|
|
<% icon = balance_trend&.trend&.icon || "plus" %>
|
|
|
|
<%= turbo_frame_tag dom_id(entry) do %>
|
|
<%= turbo_frame_tag dom_id(valuation) do %>
|
|
<div class="p-4 grid grid-cols-12 items-center text-primary text-sm font-medium">
|
|
<div class="col-span-8 flex items-center gap-4">
|
|
<%= check_box_tag dom_id(entry, "selection"),
|
|
class: "checkbox checkbox--light",
|
|
data: { id: entry.id, "bulk-select-target": "row", action: "bulk-select#toggleRowSelection" } %>
|
|
|
|
<div class="flex items-center gap-3">
|
|
<%= tag.div class: "w-6 h-6 rounded-full p-1.5 flex items-center justify-center", style: mixed_hex_styles(color) do %>
|
|
<%= lucide_icon icon, class: "w-4 h-4 shrink-0" %>
|
|
<% end %>
|
|
|
|
<div class="truncate text-primary">
|
|
<%= link_to entry.name,
|
|
entry_path(entry),
|
|
data: { turbo_frame: "drawer", turbo_prefetch: false },
|
|
class: "hover:underline hover:text-gray-800" %>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-span-2 justify-self-end font-medium text-sm">
|
|
<% if balance_trend&.trend %>
|
|
<%= tag.span format_money(balance_trend.trend.value), style: "color: #{balance_trend.trend.color}" %>
|
|
<% else %>
|
|
<%= tag.span "--", class: "text-gray-400" %>
|
|
<% end %>
|
|
</div>
|
|
|
|
<div class="col-span-2 justify-self-end">
|
|
<%= tag.p format_money(entry.amount_money), class: "font-medium text-sm text-primary" %>
|
|
</div>
|
|
</div>
|
|
<% end %>
|
|
<% end %>
|