[PR #4810] [MERGED] Add basic modal for budget automations #5592

Closed
opened 2026-02-28 21:14:59 -06:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/4810
Author: @jfdoming
Created: 4/15/2025
Status: Merged
Merged: 5/7/2025
Merged by: @jfdoming

Base: masterHead: jfdoming/budget-automations-modal


📝 Commits (9)

  • ee912cb Add basic modal for budget automations
  • ebdc1f8 Add release notes
  • b0f5762 Exclude TODOs from this PR for now
  • 3aeed50 Fix some rebase errors
  • 3f81bf8 CodeRabbit feedback
  • a5cd434 PR feedback: reduce nesting in automation editor
  • bdb0c2a PR feedback: reduce nesting in automation read-only state
  • 8ca922a PR feedback: make editors feel more like part of the read-only entry
  • c0fef67 Merge branch 'master' into jfdoming/budget-automations-modal

📊 Changes

20 files changed (+1279 additions, -0 deletions)

View changed files

📝 packages/desktop-client/src/components/Modals.tsx (+4 -0)
packages/desktop-client/src/components/budget/goals/BudgetAutomation.tsx (+96 -0)
packages/desktop-client/src/components/budget/goals/BudgetAutomationEditor.tsx (+158 -0)
packages/desktop-client/src/components/budget/goals/BudgetAutomationReadOnly.tsx (+119 -0)
packages/desktop-client/src/components/budget/goals/actions.ts (+37 -0)
packages/desktop-client/src/components/budget/goals/constants.ts (+40 -0)
packages/desktop-client/src/components/budget/goals/editor/HistoricalAutomation.tsx (+71 -0)
packages/desktop-client/src/components/budget/goals/editor/HistoricalAutomationReadOnly.tsx (+24 -0)
packages/desktop-client/src/components/budget/goals/editor/PercentageAutomation.tsx (+112 -0)
packages/desktop-client/src/components/budget/goals/editor/PercentageAutomationReadOnly.tsx (+60 -0)
packages/desktop-client/src/components/budget/goals/editor/ScheduleAutomation.tsx (+86 -0)
packages/desktop-client/src/components/budget/goals/editor/ScheduleAutomationReadOnly.tsx (+33 -0)
packages/desktop-client/src/components/budget/goals/editor/SimpleAutomation.tsx (+34 -0)
packages/desktop-client/src/components/budget/goals/editor/SimpleAutomationReadOnly.tsx (+18 -0)
packages/desktop-client/src/components/budget/goals/editor/WeekAutomation.tsx (+31 -0)
packages/desktop-client/src/components/budget/goals/editor/WeekAutomationReadOnly.tsx (+18 -0)
packages/desktop-client/src/components/budget/goals/reducer.ts (+207 -0)
packages/desktop-client/src/components/budget/goals/useBudgetAutomationCategories.ts (+29 -0)
packages/desktop-client/src/components/modals/BudgetAutomationsModal.tsx (+96 -0)
upcoming-release-notes/4810.md (+6 -0)

📄 Description

As it says on the tin. Planning on expanding on this in https://github.com/actualbudget/actual/pull/4398 but looking for feedback on the overall approach of how the different automation types are displayed.

In the interest of limiting the size of this PR:

  • I haven't (yet) implemented support for by/repeat/spend/goal type automations. Those types seemed more complex to reason about and I'd like to get a basic structure in first so others can contribute.
  • I haven't (yet) implemented support currently for category caps on budgeted value, because I'd like to pair that with support for per-item error messages (e.g. you receive an error if you have #template up to 70 and #template 500 since the #template 500 will do nothing).
  • I haven't (yet) implemented support for saving the UI state in the database.

Let me know your thoughts!


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/actualbudget/actual/pull/4810 **Author:** [@jfdoming](https://github.com/jfdoming) **Created:** 4/15/2025 **Status:** ✅ Merged **Merged:** 5/7/2025 **Merged by:** [@jfdoming](https://github.com/jfdoming) **Base:** `master` ← **Head:** `jfdoming/budget-automations-modal` --- ### 📝 Commits (9) - [`ee912cb`](https://github.com/actualbudget/actual/commit/ee912cb7bdd84948a4d26efe249373ae41e4ac53) Add basic modal for budget automations - [`ebdc1f8`](https://github.com/actualbudget/actual/commit/ebdc1f8777ee78ed58b80757ae9f1f1bc70f1ba3) Add release notes - [`b0f5762`](https://github.com/actualbudget/actual/commit/b0f5762a50b7443d8f7674c5c5f838980cbfc853) Exclude TODOs from this PR for now - [`3aeed50`](https://github.com/actualbudget/actual/commit/3aeed502cf5fd843be8a846dac903c009e83d5ff) Fix some rebase errors - [`3f81bf8`](https://github.com/actualbudget/actual/commit/3f81bf8cdf32e8a94f42551f23591c309cd41de1) CodeRabbit feedback - [`a5cd434`](https://github.com/actualbudget/actual/commit/a5cd4341ea6b52476d0d81aef2aaa68d1ec1514b) PR feedback: reduce nesting in automation editor - [`bdb0c2a`](https://github.com/actualbudget/actual/commit/bdb0c2a31d73987f11c03975c9149f4baac892d2) PR feedback: reduce nesting in automation read-only state - [`8ca922a`](https://github.com/actualbudget/actual/commit/8ca922a7ceb6e7a0d72844ed135b7db103f8582f) PR feedback: make editors feel more like part of the read-only entry - [`c0fef67`](https://github.com/actualbudget/actual/commit/c0fef671d3c1a62fcfebaf343d4c46f4bea18cf3) Merge branch 'master' into jfdoming/budget-automations-modal ### 📊 Changes **20 files changed** (+1279 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `packages/desktop-client/src/components/Modals.tsx` (+4 -0) ➕ `packages/desktop-client/src/components/budget/goals/BudgetAutomation.tsx` (+96 -0) ➕ `packages/desktop-client/src/components/budget/goals/BudgetAutomationEditor.tsx` (+158 -0) ➕ `packages/desktop-client/src/components/budget/goals/BudgetAutomationReadOnly.tsx` (+119 -0) ➕ `packages/desktop-client/src/components/budget/goals/actions.ts` (+37 -0) ➕ `packages/desktop-client/src/components/budget/goals/constants.ts` (+40 -0) ➕ `packages/desktop-client/src/components/budget/goals/editor/HistoricalAutomation.tsx` (+71 -0) ➕ `packages/desktop-client/src/components/budget/goals/editor/HistoricalAutomationReadOnly.tsx` (+24 -0) ➕ `packages/desktop-client/src/components/budget/goals/editor/PercentageAutomation.tsx` (+112 -0) ➕ `packages/desktop-client/src/components/budget/goals/editor/PercentageAutomationReadOnly.tsx` (+60 -0) ➕ `packages/desktop-client/src/components/budget/goals/editor/ScheduleAutomation.tsx` (+86 -0) ➕ `packages/desktop-client/src/components/budget/goals/editor/ScheduleAutomationReadOnly.tsx` (+33 -0) ➕ `packages/desktop-client/src/components/budget/goals/editor/SimpleAutomation.tsx` (+34 -0) ➕ `packages/desktop-client/src/components/budget/goals/editor/SimpleAutomationReadOnly.tsx` (+18 -0) ➕ `packages/desktop-client/src/components/budget/goals/editor/WeekAutomation.tsx` (+31 -0) ➕ `packages/desktop-client/src/components/budget/goals/editor/WeekAutomationReadOnly.tsx` (+18 -0) ➕ `packages/desktop-client/src/components/budget/goals/reducer.ts` (+207 -0) ➕ `packages/desktop-client/src/components/budget/goals/useBudgetAutomationCategories.ts` (+29 -0) ➕ `packages/desktop-client/src/components/modals/BudgetAutomationsModal.tsx` (+96 -0) ➕ `upcoming-release-notes/4810.md` (+6 -0) </details> ### 📄 Description As it says on the tin. Planning on expanding on this in https://github.com/actualbudget/actual/pull/4398 but looking for feedback on the overall approach of how the different automation types are displayed. In the interest of limiting the size of this PR: - I haven't (yet) implemented support for by/repeat/spend/goal type automations. Those types seemed more complex to reason about and I'd like to get a basic structure in first so others can contribute. - I haven't (yet) implemented support _currently_ for category caps on budgeted value, because I'd like to pair that with support for per-item error messages (e.g. you receive an error if you have `#template up to 70` and `#template 500` since the `#template 500` will do nothing). - I haven't (yet) implemented support for saving the UI state in the database. Let me know your thoughts! --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-02-28 21:14:59 -06:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#5592