Commit Graph

533 Commits

Author SHA1 Message Date
Henrik Maaland
43cd6b6347 Show pending transactions from Nordigen in transactions table (#919) 2023-04-23 18:15:39 +01:00
Matiss Janis Aboltins
9ee93f74fe 🐛 (autocomplete) touch event support (#949)
Closes #927
2023-04-23 17:41:57 +01:00
Matiss Janis Aboltins
89c065e401 🐛 (autocomplete) fix multi-select (#947) 2023-04-23 17:31:07 +01:00
Jed Fox
6325a36847 Don’t reset checked transactions when creating a schedule (#946) 2023-04-23 12:18:02 -04:00
Matiss Janis Aboltins
76c69a6e70 ⬆️ (autocomplete) upgrade Downshift dependency (#945)
Upgrading `Downshift` dependency
2023-04-23 16:57:15 +01:00
Jed Fox
c7f6ca4302 Fix j/k shortcuts to move between transactions on account pages (#939) 2023-04-23 08:15:36 -04:00
Matiss Janis Aboltins
36b2d7d090 🎨 (autocomplete) set min-width for the tooltip (#933) 2023-04-23 07:16:42 +01:00
Matiss Janis Aboltins
7c80a200d7 ♻️ (autocomplete) cleaning up state updates (#931) 2023-04-23 07:16:29 +01:00
Alberto Gasparin
e8a62f89a1 Migrate core to TS p3 (#896)
Another batch of `loot-core` migrated.
2023-04-22 20:43:47 -04:00
Davis Silverman
b0c5a9389c Use Peggy instead of deprecated Peg.js (#934)
Hi there, `Peg.js` is unmaintained, so I figure you all would appreciate
if I replaced it with the drop-in replacement of Peggy. This is work I
am breaking out of #918.

Peggy adds new features like source map support that we could use,
although I do not include that in this change-set. It may be useful for
debugging changes to the .pegjs file we have.e
2023-04-22 20:16:07 -04:00
Davis Silverman
a1d321d65e Add experimental new OFX importer (#921)
Hi there, 

I try to tackle #798 here. It was suggested to throw this behind a
feature flag, so here it is!

this does its best to import the problem file in #767. 

I am working on this because it would make my work on #918 easier :)

Feel free to set the feature flag to true and try the new importer. The
date parser is not as sophisticated as the one in `node-libofx`, but I
tried 3 different OFX files, one from my bank, one from the mocks, and
one from #767. They all seem to work well enough on that front, but this
is definitely the weak point of the new implementation.

Let me know what you think!
2023-04-22 12:36:12 -04:00
shall0pass
3ceb2d92ad [Feature] Initial concept for adding percentage based goals (#858)
This is an initial concept for adding percent based goal targets.

This version works by using a string in the form of: 
#template 10% of Income <- Income is an income category name. Only
income category names will work here currently.
or
#template 10% of all income<- 'all income' is a keyword in this context
and will base the calculation on the total income for the month.

Some of the nicer touches like Jed's polite notification that the syntax
isn't correct is not implemented here yet.
2023-04-22 11:44:07 -04:00
shall0pass
0bcf6ea6f9 Change method of calculating 'by' matches to use averaging (#879)
I've changed the method of calculating the budgeted amount. There may be
a more efficient way of writing the loop, so I'm looking forward to the
review.

This change implements the mathematics of
(Target1+Target2+TargetN-Last_months_category_balance) / (MonthsRemaing1
+ MonthsRemaining2 + MonthsRemaingN) * N. This is an averaged approach
for multiple templates in the same category. It will appear to
overbudget or underbudget some months compared to multiple single
targets in different categories, yet there should always be enough saved
in the category to satisfy the target due.

Setting a target, it's assumed that money will be spent in the
appropriate month, When a target reaches maturity, the money in the
category associated with that target should be spent or moved so the
remaining targets continue to be funded. I don't see an easy way of
fixing that, but I hope this change will be of some help.

Current method:
Notice how the Bills (flexible) category reduces each month, resulting
in larger budgeted amounts later in the goal cycle.


![Templates-now](https://user-images.githubusercontent.com/20625555/230964939-d20ca72b-1055-471a-9044-7cd640f19875.gif)

Proposed method:
**Note: The fact that the initial fill in this example equals the
expected fill is a coincidence based on the template values I chose. The
initial fills can be different from expected fill.


![Templates-proposed](https://user-images.githubusercontent.com/20625555/230965265-669f996c-3112-437b-ab83-9715ea5dfc7f.gif)
2023-04-22 11:43:34 -04:00
Matiss Janis Aboltins
f8b73355ab (e2e) improving stability - reducing flakiness (#932)
Small changes to the e2e tests to improve the stability.
2023-04-22 16:41:40 +01:00
Matiss Janis Aboltins
38d2e69858 🔖 (23.4.2) revert back to old autocomplete & keyboard shortcut fix (#930)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jed Fox <git@jedfox.com>
2023-04-22 15:27:58 +01:00
Jed Fox
944c7ff30f Improve sidebar auto-floating behavior (#868)
I got some feedback in the discord that this behavior was disruptive
when zooming in.

- I’ve reduced the breakpoint so hopefully the disruption of the
transition is matched by a significant improvement in available space
now.
- Also the 2 places in the app that use window width (including here)
now check for the width of the `<html>` tag, not the width of the
viewport (those 2 values can be different when doing a pinch-zoom,
causing undesirable layout shifts.)
- Most of the logic has been rewritten to improve the transitions

Mobile & desktop experience

https://user-images.githubusercontent.com/25517624/233653721-b13c5e22-ae11-4bdf-a494-a6916556d05e.mov

https://user-images.githubusercontent.com/25517624/233654784-b6cc1006-44ea-4066-be7a-8d0dd786fb5b.mov

(I’d like tapping on something to close the sidebar on mobile, but that
can be approached in a future PR)
2023-04-21 17:48:47 -04:00
Jed Fox
e9188813fd Fix handling for shortcuts (#926)
It turns out that `event.key` for ctrl/cmd+Z is `z`, and it’s `Z` for
ctrl/cmd+shift+Z.

---------

Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
2023-04-20 18:32:51 -04:00
Jed Fox
131bb86711 Fix currencyToInteger returning null when amount is zero (#915)
Fixes #913. (And probably a few other similar bugs)
2023-04-20 17:21:56 -04:00
Matiss Janis Aboltins
eed097d41e 🔥 remove new autocomplete experiment (react-select) (#924)
Removing `react-select` and the new autocomplete. This experiment has
failed, so cleaning things up now.
2023-04-19 22:08:32 +01:00
Matiss Janis Aboltins
10559a68b3 ♻️ (autocomplete) refactor old autocomplete to remove lively dep (#916) 2023-04-19 16:24:58 +01:00
Pol Eyschen
6e7e98e139 Allow templates to follow named schedules (#885)
Co-authored-by: Jed Fox <git@jedfox.com>
2023-04-16 17:11:25 -04:00
Matiss Janis Aboltins
b89b74c3fa 🔖 (23.4.1) fix rule creation from transaction list (#911) 2023-04-16 18:00:13 +01:00
shall0pass
3fb69e1b1c Fill category field when selecting 'Create rule' (#886) 2023-04-16 11:49:01 -04:00
biohzrddd
19a8f14ad9 Fixes Issue 495 Transfer allowed from same account (#902) 2023-04-16 07:36:22 -04:00
biohzrddd
df63c7e141 Add daily option to schedules (#900) 2023-04-16 07:33:47 -04:00
shall0pass
adb20868cc Improve error reporting for goal templates (#895)
This improves the error reporting when issues are found with Goal
Templates. Before these changes, the only error that would be reported
is the "Bills" error in the image while the other issues would be
ignored and not funded.
2023-04-13 18:01:57 -04:00
Matiss Janis Aboltins
ec3efc7191 🎨 (mobile) settings page header (#887) 2023-04-13 20:00:02 +01:00
Jed Fox
ad9cd5fc4d Remove usage of realpath (#893)
It turns out this command is not installed by default on macOS.
Fortunately the code doesn’t really require it to be used.
2023-04-12 16:38:26 -04:00
Alberto Gasparin
5dec98e754 Migrate core to TS p2 (#889)
Another batch of files from `loot-core` migrated to TS (loose mode)
2023-04-12 11:09:42 -04:00
shall0pass
8597b0a373 Use single decimal places to define targets (#891)
Resolves issue https://github.com/actualbudget/actual/issues/888
2023-04-12 11:07:49 -04:00
Alberto Gasparin
cd00da76ef Convert commonjs to esm (#877)
This PR converts everything (aside from electron) from CommonJS to ESM.
It is needed to reduce the changes that will happen during the migration
to Typescript (as TS does not play nice with CJS).

Basically:
- rewrite `require()` to `import`
- rewrite `module.exports` to `exports`
- introduce `ts-node` to run importers so we can convert them to TS too

Lastly, sorry for this larg-ish PR, not my preference but when I tried
to reduce its scope, I would end up with mixed commons/esm that was even
more tricky to handle.
2023-04-10 20:40:40 +01:00
Jed Fox
d7d5820c1c Recognize numpad enter key as enter key (#883) 2023-04-10 08:36:02 -04:00
Matiss Janis Aboltins
82482f4182 🐛 (autocomplete) show 'create payee' only if no payee matched (#881) 2023-04-09 22:00:43 +01:00
Matiss Janis Aboltins
88fb95b230 🐛 (rules) creation from account page (#882) 2023-04-09 20:33:41 +01:00
Matiss Janis Aboltins
7e33cda7b2 🔖 (api) 5.1.2 (#880)
<!-- 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 -->
2023-04-09 19:29:44 +01:00
Jed Fox
bf05b759aa Remove duplicate migration and default-db.sqlite files (#870)
These files will be automatically recreated by `yarn build:api`,
`yarn build:browser`, and `yarn start:browser`, so we don’t need
them in the repo.
2023-04-09 14:21:59 -04:00
Jakub Kuczys
835c1a54f7 Use Unicode-aware implementations of LOWER() and UPPER() in SQL queries (#865)
Fixes #840 by creating application-defined SQL functions
(https://www.sqlite.org/appfunc.html) for Unicode-aware implementations
of `LOWER()` and `UPPER()`. This uses
`String.prototype.toLower/UpperCase()` JS method.

I initially wanted to just redefine `LOWER()` and `UPPER()` but due to
[sql.js not supporting the definition of deterministic
functions](https://github.com/sql-js/sql.js/issues/551), I had to just
define them as separate functions and use that in the appropriate
places. It's probably better like that anyway...
2023-04-07 16:33:19 -04:00
Jed Fox
98a32432ef Disable ESLint in CI again (#869)
This should speed up builds in CI, and must not have gotten caught when
upgrading `react-scripts`.
ref: arackaf/customize-cra#278
2023-04-07 16:15:00 -04:00
Matiss Janis Aboltins
7abbdcc5bb 🔖 (5.1.1) api (#873) 2023-04-07 21:11:12 +01:00
shall0pass
adf205db86 Allow goal template 'by' matches to compound (#860)
I believe this change allows for having multiple 'by' rules in the same
category. It seems to be working well for my purposes, but I would
appreciate further testing to assure there aren't regressions.

Example:

#template 300 by 2023-06
#template 3000 by 2023-08

Before this PR, having these two lines in the notes would only budget
funds for the earliest of the two strings and ignore the 3000 funding
target. With this PR, the sum of the two funding targets will be
respected.
2023-04-07 15:54:14 -04:00
Matiss Janis Aboltins
f9a1b094cc 🔖 23.4.0 (#863) 2023-04-06 22:04:12 +01:00
Jed Fox
5d559afe30 Enable linting for all packages (#861)
<!-- 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 -->
2023-04-06 15:49:43 -04:00
Matiss Janis Aboltins
4d0e9cadd3 🐛 (autocomplete) height of the input box (#862) 2023-04-06 20:44:15 +01:00
Matiss Janis Aboltins
bfe896a30e (autocomplete) turn on feature flag by default (#850) 2023-04-06 18:28:42 +01:00
chris heazlewood
44573c0fe5 Store payee in imported_payee during ynab4/ynab5 import (#736) 2023-04-06 17:49:24 +01:00
Matiss Janis Aboltins
7fbb26f2c9 🐛 (autocomplete) allow editing selected payee name (#856) 2023-04-05 22:44:48 +01:00
Jed Fox
143ddeaa96 Force the sidebar to always float when the window is narrow (#835)
This improves usability of narrow screen widths, and also prepares for
further optimizations that would allow us to use the sidebar largely
as-is on mobile, instead of having to have a tab bar.

---------

Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
2023-04-05 17:25:57 -04:00
Matiss Janis Aboltins
61f1802840 🐛 dismiss update notification only after clicking close (#854)
Closes #764

Dismiss the update notification only after clicking "close" button
2023-04-04 21:18:12 +01:00
Matiss Janis Aboltins
e23f9d822b 🐛 normalize value when switching between single/multi select (#855)
Closes #779

Normalize the input value when switching between single/multi select
fields. Most visible when using the "notes" field filter.
2023-04-04 21:17:47 +01:00
Jed Fox
6ef1f3d15d Fix display of loading indicator in management app (#853)
Fixes #852.
2023-04-04 13:48:30 -04:00