* Some initial UI work for adding SimpleFin.
* SimpleFin proof of concept working.
* Adds linking & unlinking to existing accounts through the account menu UI.
* Added loading and lint fixes.
* Lint changes.
* Added release notes.
* Typecheck cleanup.
* Import, lint, typecheck cleanups.
* More typecheck cleanup.
* Refactored language for consistency.
* Added default institution name.
* Lint cleanup.
* Addressed change requests.
* Added a default to migration, made variables consistent, added feature flag.
* Added account_sync_source to server schema.
* Adds account_sync_source to test.
* Fix for typecheck.
* Attempt to make typecheck happy.
* Added strict ignore.
* Moved account_sync_source to the right model (face palm).
* Hotfix for institution format.
* Lint cleanup.
* Removed unnecessary promise.all.
* Lint cleanup.
* Bundle loot-core types into the API
So we can have loot-core be the source of truth
for some types that get passed through
- Improves downstream development with API by including types
- Use path aliases for dist vs dev tsconfigs
- Convert api index to typescript as example
- Permit ts-ignore for issues with our version of typescript
---------
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
Restore ability to use console.log in vite
- Swap our swc plugin to remove-react-properties
- Configure remove-react-properties to preserve our testids
* Change the vite chunk filename hash usage
- Change to more closely match the . syntax we use with webpack
- This should fix some issues with our size compare as well
* Account for chunks being base64
* Allow case insensitive ynab5 import for special 'starting balance' payee
* set upcoming release number to related github issue
* extract string comparison into separate function
and reuse when checking starting balance/s on ynab4 import
* make all category group checks case insensitive
when importing from ynab5 to make the check strategy consistent when importing from ynab5
* extract findById into sreusable function
to 'simplify' usage
* Add null check
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
---------
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
* Proof of concept for switching desktop-client to vite
* Fix other packages ts tests issues
* Update jsx tests to use vitest instead of jest
* Inject our global shims properly
* Add comment regarding new plugin
* Cleanup unnessary change after rebase
* Fix inter fonts pathing
* Remove manual chunks sizes for now
Just set the limit higher
* Bring back size compare
* Suppress victory warnings
* Remove craco config now that it's not used
* Add vite basic ssl plugin
- This autogenerates self-signed certs in dev mode when HTTPS env is set
- Made to match the CRA behaviour
* Add release note
* Remove warning suppression for victory
- Updated to a rollup version that includes the fix
* Add proper types to runHandler
- Args and return values from runHandler should now work within loot core
- Updated some of the handler types to be more accurate
* Request active edit on focus
* Release notes
* Track previous focus state
* use inputRef to focus
* Focus total amount effect
* Run active edit action synchronously
* Revert unneeded changes
* Run cleanup synchronously
* Cleanup
* runAction
* Space
* Negate schedule amount to budget if income
* Release notes
* Determine sign at initial calc
To ensure no unintended impact to remainder calcs etc.
* Lint fixes
* Add "end" field with date/count options
* Use "end" field to generate schedule
* Show "end" field in recurring description
* Disable weekend before/after picker when not enabled
* Add release notes
* Fix failing typechecks
* Add some description tests
* PR feedback
* 'Features', not 'Feature'
* Fix goal templates infinite loop
* Empty commit to bump ci
* Fix bug where schedule templates in the past would apply incorrectly
For example, if you had a schedule which started in November 2023 for
1.00, and you applied the schedule in October 2023, then you would end
up with a value of 0.50 applied in October.
* Fix handling of schedules with an end date
This commit also includes a refactor of the skip-weekend logic: rather
than referring only to dates with skipped weekends (which requires
checking whether the "next date" request worked correctly), we track a
"base date" which is the previous value of the schedule according to the
rrule, excluding any weekend-skipping. This lets us use `addDays(baseDate, 1)`
to get the next occurrence, regardless of the weekend behaviour.
Doing things this way ensures that the loop will always make progress.
* Only compute skipped weekend if weekend skips were requested
* Fix typo in iterate-schedule-occurrences code
We should be using `nextBaseDate` to derive the next base date, not
`nextDate`; this is because we want the base date to be guaranteed to
make progress in each loop iteration, so we can finish in at most 30
iterations without duplicate base dates.
* Use const
* Revert const -> let for one mutable variable
* Use Page component for mobile pages
* Release notes
* Use Button instead of Link in MobileBackButton
* Update mobile budget table to use Page component
* Settings page cleanup
* Fix lint error
* Updates + small font size increase in page headings
* Fix rebase error
* Button height
* Revert payees navtab
* Fix failure to create category with deleted name
I'm not 100% familiar with the design of the data model so may have
misinterpreted what's going on here, but how I read this:
- The tombstone flag is used to soft delete categories.
- When creating a new category, duplicate names within a group are
prevented.
- When checking for duplicate names, the tombstone flag was unchecked
which meant deleted categories were falsely blocking creation.
I had a look at category deleteion logic to verify that simply including
the tombstone flag in this check is sane and see that there's a category
mapping being maintained to redirect one category to another on
deletion. So from what I can tell the correct behaviour here is to allow
a new category with the previously deleted name, rather than to revive
the old category (to preserve that old mapping lineage).
* Add release note
* Add regression test
* Remove author from electron package.json
* Don't allow dupes in cat names (per group)
* Release Notes
* Handle reorders and moves
* Fix linter warnings
* Fix typecheck
* Show the name of the duplicate category
* missed func call
* Upper case before compare
* lint fixes
---------
Co-authored-by: Shazib Hussain <contact@shazib.com>
* Mobile Color Consistency
* VRT updates
* color updates
* notes
* Sync Text
* Adjust header font smaller
* color and format adjustments
* tidying header buttons
* color and button adjustments
* Header Text color
* VRT updates
* back button changes
* VRT changes
* adjust buttons
* lint fix
* darkTheme header background
* VRT updates
* VRT updates
* added sankey plot
* fix sankey
* formatting
* formatting
* lint
* reduce margin
* experimental flag
* update location of recharts install
* truncate tooltip
* add titles to node and sizing
* better filtering
* comments, types, and check if data exists
* don't log
* clean up extra views
* responsive container, and fix label in graph
* change back
* fix bug and font
* static tooltip
* update overview to fit both sankey and category spending
* overview sankey
* increase iterations, fix right text, and release notes
* remove is out
* lint
* fix tooltip space
* fix margins
* format and efficient sql payees query
* restructure category sum value
* add tooltip names...again
* conditionally use container
* use useCategories
* first pass at progress bar
* db migration / enter goal in db
* add getGoal function
* stabilize
* whoops
* TS
* reset goal in db if no template found
* reconfirm
* release note
* typo
* rename migration
* to ms
* move priority logic, consistent variable names,
* fixup
* clear goal if template removed
* Visual goals (#40)
* 🔥 removing privacyMode feature flag (#1688)
* 🎨 fix multiline label in schedules modal (#1687)
* Update Visual Regression README File (#1689)
* Fix typo in GoCardlessLink.js (#1684)
happend -> happened
* queried cleared balance for tooltip (#1678)
* Dark Theme Reports/Settings (#1512)
* 🐛 Mobile account transaction list: Fix sticky date section headers (#1698)
* 👷 do not cancel github ci jobs on master branch (#1692)
* Sidebar Account Fix (#1703)
* Dark Theme Final (#1513)
* Category autocomplete should only search selectable categories (#1681)
* set colors based on a goal value
* extra comment
---------
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
Co-authored-by: Crazypkr1099 <nicholas.lacasse430@gmail.com>
Co-authored-by: Ikko Eltociear Ashimine <eltociear@gmail.com>
Co-authored-by: Shaan Khosla <35707672+shaankhosla@users.noreply.github.com>
Co-authored-by: Neil <55785687+carkom@users.noreply.github.com>
Co-authored-by: Trevor Farlow <trevdor@users.noreply.github.com>
* update release note
* lint
* use null as cleared state
* show goal status via colors (#41)
* cleanup
* I think its working
* lint
* fix report budget, by adding in the goal coloring
* fix the error by adding colors to the report side (#42)
* [refactor] Migrate Schedules Table to typescript (#1691)
* 🔧 removing unnecessary manual module resolution (#1707)
* 🐛 (mobile) scrolling in lists with pull-to-refresh (#1706)
* 💄 (mobile) updating apple home-screen icon (#1705)
* Enhance Y-Axis Scaling on Net Worth Graph (#1709)
* fix report budget, by adding in the goal coloring
---------
Co-authored-by: Mohamed Muhsin <62111075+muhsinkamil@users.noreply.github.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
Co-authored-by: Crazypkr1099 <nicholas.lacasse430@gmail.com>
* report budget database updates
* Goal progress bar (#1734)
* first pass at progress bar
* db migration / enter goal in db
* add getGoal function
* stabilize
* whoops
* TS
* reset goal in db if no template found
* reconfirm
* release note
* typo
* rename migration
* to ms
* move priority logic, consistent variable names,
* fixup
* clear goal if template removed
* Visual goals (#40)
* 🔥 removing privacyMode feature flag (#1688)
* 🎨 fix multiline label in schedules modal (#1687)
* Update Visual Regression README File (#1689)
* Fix typo in GoCardlessLink.js (#1684)
happend -> happened
* queried cleared balance for tooltip (#1678)
* Dark Theme Reports/Settings (#1512)
* 🐛 Mobile account transaction list: Fix sticky date section headers (#1698)
* 👷 do not cancel github ci jobs on master branch (#1692)
* Sidebar Account Fix (#1703)
* Dark Theme Final (#1513)
* Category autocomplete should only search selectable categories (#1681)
* set colors based on a goal value
* extra comment
---------
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
Co-authored-by: Crazypkr1099 <nicholas.lacasse430@gmail.com>
Co-authored-by: Ikko Eltociear Ashimine <eltociear@gmail.com>
Co-authored-by: Shaan Khosla <35707672+shaankhosla@users.noreply.github.com>
Co-authored-by: Neil <55785687+carkom@users.noreply.github.com>
Co-authored-by: Trevor Farlow <trevdor@users.noreply.github.com>
* update release note
* lint
* use null as cleared state
* show goal status via colors (#41)
* cleanup
* I think its working
* lint
* fix the error by adding colors to the report side (#42)
* [refactor] Migrate Schedules Table to typescript (#1691)
* 🔧 removing unnecessary manual module resolution (#1707)
* 🐛 (mobile) scrolling in lists with pull-to-refresh (#1706)
* 💄 (mobile) updating apple home-screen icon (#1705)
* Enhance Y-Axis Scaling on Net Worth Graph (#1709)
* fix report budget, by adding in the goal coloring
---------
Co-authored-by: Mohamed Muhsin <62111075+muhsinkamil@users.noreply.github.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
Co-authored-by: Crazypkr1099 <nicholas.lacasse430@gmail.com>
* report budget database updates
* Fix schedule searchbar (#1729)
---------
Co-authored-by: youngcw <calebyoung94@gmail.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
Co-authored-by: Crazypkr1099 <nicholas.lacasse430@gmail.com>
Co-authored-by: Ikko Eltociear Ashimine <eltociear@gmail.com>
Co-authored-by: Shaan Khosla <35707672+shaankhosla@users.noreply.github.com>
Co-authored-by: Neil <55785687+carkom@users.noreply.github.com>
Co-authored-by: Trevor Farlow <trevdor@users.noreply.github.com>
Co-authored-by: Mohamed Muhsin <62111075+muhsinkamil@users.noreply.github.com>
* working dynamic colors. Need to figure out what changes are actually needed
* cleanup
* more cleanup
* lint
* reset the goal when applying a single template
* make getCategory function
* remove some unneeded changes
* actually remove the changes, not just comment
* cleanup some unneeded code that was causing some bugs. Works for me, but should be vetted more
* lint
* add json definitions to database
* use template feature flag to enable colors
* some fixes
* don't set goals for remainders, remove unneeded change
* lint
* release note
* lint again
* fix mobile crash
* undo changes in CellValue.tsx
* lint
* use getStyle
* move status calc to helper
* lint
* recommendations
* suggestion
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
---------
Co-authored-by: shall0pass <20625555+shall0pass@users.noreply.github.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
Co-authored-by: Crazypkr1099 <nicholas.lacasse430@gmail.com>
Co-authored-by: Ikko Eltociear Ashimine <eltociear@gmail.com>
Co-authored-by: Shaan Khosla <35707672+shaankhosla@users.noreply.github.com>
Co-authored-by: Neil <55785687+carkom@users.noreply.github.com>
Co-authored-by: Trevor Farlow <trevdor@users.noreply.github.com>
Co-authored-by: Mohamed Muhsin <62111075+muhsinkamil@users.noreply.github.com>
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
* Inline mobile category and group edit
* Release notes
* Allow one edit at any time
* Mobile: long press to edit category/group
* Mobile: set userSelect: 'none'
* Move getLongPressEvents
* Add role to prevent tap-to-search
* Add role to text
* Prevent default on longpress
* Add tabIndex to disable tap-to-search
* Add back userSelect
* Role updates
* Remove userSelect
* Revert long press category name
* Remove unused import
* Fix lint error
* Edit mode
* Do not allow to start an edit when another field is currenty being edited
* Fix blur event not firing
* Grey out zero spent or balance values
* VRT update
* Fix budget cell being zero on click
* Delete useLongPress
* Hide mobile nav tabs on scroll
* Release notes
* Reduced navbar bottom padding
* Make hide transition a bit faster
* Update scroll defaults
* VRT snapshots
* Fix: safari scroll bounce effect disrupting the show/hide of bottom nav
* Update release notes
* No tap highlight on MobileNavTabs
---------
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
* More mobile functionalities
* Cleanup
* Remove close button on mobile budget summary modal
* Release notes
* Close mobile inputs on enter
* Fix mobile budget row header color
* Fix income group hidden
* Add validation + close button on category tooltip
* Add mobile budget visual cues
* More mobile visual cues
* Error message fix
* Update blank category name behavior
* Cleanup
* Cleanup
* Fix mobile group deletion and category tooltip behavior
* Zero sign for AmountInput
* VRT snapshot updates
* Handle null values in must-category-transfer
* fix percent goals in the same priority level not compounding but overwritting
* release note
* don't show hidden groups on mobile view
* cleanup
* cleanup2
* cleanup3
* release note
* desktopc-client swc-loader
* More swc
* Jest swc + upgrades
* Revert @swc/jest usage for now
* SWC minify
* Remove setupFilesAfterEnv in package.json as per warning message in CI
* Release notes
* Minify on CI
* swc helpers in loot-core
* @swc/jest
* Upgrade webpack
* Add @swc/core to crdt
* Use yarn cache in github actions
* Cleanup
* Fix electron
* Revert "Fix electron"
This reverts commit 787af1980648fa30788a1d1678dcda534716f31d.
* Revert action.yml cache changes
---------
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
Previously we would default to only show transfer payees in the payee
selection dropdown for child transactions. This is confusing and there
doesn't seem to be any obvious reason for this, so this commit removes
that behavior.
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
* Added clear transactions on import option
* Added release note
* Added cleared column to csv export
* fixed Manually entered split transactions are not cleared on import
* Revert "Added cleared column to csv export"
This reverts commit 2952bc3e7d.
* added release note
* Copied same code to Gocardless
* Updated var name
* Updated to only query changed transactions instead of all
Most banks allow up to 90 days of transactions, and so we try to fetch
up to 90 days of transactions or transactions since the first
transaction in the Actual account, whichever is shortest. This lets
users get a clean start based on their selected starting balances date.
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
* allow schedules to skip weekends
* wording
* release note
* skip weekend in upcoming dates as well
* Clean UI
* Move switch to the date selection modal
Because different banks use the date fields in vastly different ways we
now let the server's bank integrations decide which date we should use.
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
* 🐛 (reports) fix incorrect cashflow balance
Fixing a small typo here where multiple transfers across different payees on the same day fail to be summed up resulting in significant balance errors.
* release notes
* Update 1518.md
* Fix re-rendering all rows on hover
* release note
* Removing isHover logic in place of css :hover
---------
Co-authored-by: biohzrddd <10577752+biohzrddd@users.noreply.github.com>
This breaks fetching transactions where the valueDate is in the future.
While the GoCardless documentation says this should never happen, it's
what happens with at least Bank Norwegian due to them using the interest
date as valueDate. (C.f. #1392)
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
* Set `role="button"` on downshift autocomplete items
This avoids content observation behavior in WebKit on touch devices that delays the onClick event (and therefore reaction to user input).
* Disable split transaction editing for now
The 'interval' value from the schedules is not set if the schedule is
monthly. This change will check for a valid number for the interval
value and if it does not exist will default to 1 (monthly).
References discord discussion starting here:
https://discord.com/channels/937901803608096828/940290142579605514/1133523705063030824
Currently the schedule keyword won't fill any future budget cells if the
category balance already satisfies the schedule. This PR is an attempt
to improve the behavior by allowing budget fills regardless of the
category balance.
This is a drastic rewrite of the schedule keyword. Though I've tried not
to have any regressions, it is possible because of how different the
logic is. I've tested compounding using a simple template, so a small
change in the 'by' keyword was also made.
This PR has no functional changes. Only types are changing and getting
improved (more stricter).
A follow-up PR will come next that does a few functional changes to make
this package fully strict.
<!-- Thank you for submitting a pull request! Make sure to follow the
instructions to write release notes for your PR — it should only take a
minute or two:
https://github.com/actualbudget/docs#writing-good-release-notes -->
Updating other menus to sentence case so that it is consistent with the
other menus throughout the app
The current link in the README directs to a github page that has a link
to the documentation page on how to write release notes. I've updated
the link here to just go straight to the documenation page on how to
write good release notes.
Eye.js is currently set to a static color (black). This PR allows you to
change the color of the icon with the style element - mimicing all other
icons in Actual.
2023-08-03 08:13:08 +01:00
2678 changed files with 72901 additions and 359807 deletions
label:'Is this related to GoCardless, Simplefin or another bank-sync provider?'
description:'Most issues with bank-sync providers are due to a lack of a custom bank-mapper (i.e. payee or other fields not coming through). In such cases you can create a custom bank mapper in [actual-server](https://github.com/actualbudget/actual-server/blob/master/src/app-gocardless/README.md) repository. Other likely issue is misconfigured server - in which case please reach out via the [community Discord](https://discord.gg/pRYNYr4W5A) to get support.'
options:
- label:'I have checked my server logs and could not see any errors there'
- label:'I will be attaching my server logs to this issue'
- label:'I will be attaching my client-side (browser) logs to this issue'
- label:'I understand that this issue will be automatically closed if insufficient information is provided'
E2E (end-to-end) tests use [Playwright](https://playwright.dev/). Running them requires an Actual server to be running either locally or on a remote server.
### Functional
Running against the local server:
```sh
# Start the development server
yarn start:browser
yarn start
# Run against the local server (localhost:3001)
yarn e2e
@@ -19,3 +21,44 @@ Running against a remote server:
Visual regression tests (also known as screenshot tests) check that the visual appearance of the product has not regressed. Each environment has slightly different colors, fonts etc. Mac differs from Windows which differs from Linux. In order to have a stable test environment for visual comparisons - you must use a standartised docker container. This ensures that the tests are always ran in a consistent environment.
Prerequisites:
- Docker installed
#### Running against the local server
First start a dev instance:
```sh
HTTPS=true yarn start
```
Note the network IP address and port the dev instance is listening on.
Next, navigate to the root of your project folder, run the standartised docker container, and launch the visual regression tests from within it.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.