Commit Graph

88 Commits

Author SHA1 Message Date
Zach Gollwitzer
4f0b2de4ef Consolidate dropdown controllers (#600)
* Basic listbox and popover controllers with temporary example

* Separate select and menu controllers
2024-04-03 17:32:27 -04:00
Thibaut Gorioux
b3c48d13e7 Filter transactions by category (#581)
* Add transaction filtering by category

* Link label to checkbox

* Keep the dropdown open when clicked to allow tab change

* Show the badge with color and name when filter is applied

* Reduce color height
2024-04-02 12:17:26 -04:00
Mattia
f6540c03ef Add ability to delete Account (#582)
* Add ability to delete Account

Issue #571

* Fix ActiveJob::DeserializationError in AccountSyncJob when an account doesn't exists

* Use custom confirm modal for account deletion

* Revert "Fix ActiveJob::DeserializationError in AccountSyncJob when an account doesn't exists"

This reverts commit 8dbf634819d08b9d55679f9e137e901608070ba0.
2024-03-31 17:36:54 -04:00
Cristiano Crolla
7fa77b4fd7 Add Custom Turbo Confirm Modal (#580)
* Add turbo confirm dialog

* Add default fallback check

* Fix locale typo and swap element type

* Replaced locale folder and removed static strings from Turbo.setConfirmMethod

* Normalize shared/en.yml
2024-03-29 13:33:49 -04:00
Mattia
2d406274ac Allow user to search transaction categories (#577)
Issue #573
2024-03-29 10:02:15 -04:00
Thibaut Gorioux
2181cdd118 Allow event propagation to fix turbo frame update (#575)
* Allow event propagation to fix turbo frame update

* Add setting to dropdown to manage close when open and clicking on it
2024-03-28 13:24:07 -04:00
Zach Gollwitzer
f0c2d4ead0 Implement transaction filtering UI (#578)
* Rough sketch of implementation

* Consolidate auto submit controller

* Store ransack params in session

* Improve how summary is calculated for txns

* Implement filters UI
2024-03-28 13:23:54 -04:00
Thibaut Gorioux
a1b25f1c5b Close new account modal when clicking outside of it (#576) 2024-03-27 10:35:23 -04:00
Thibaut Gorioux
d274d1a394 to_series doen't expect argument anymore (#569) 2024-03-26 08:13:19 -04:00
Zach Gollwitzer
110855d077 Multi-Currency Part 2 (#543)
* Support all currencies, handle outside DB

* Remove currencies from seed

* Fix account balance namespace

* Set default currency on authentication

* Cache currency instances

* Implement multi-currency syncs with tests

* Series fallback, passing tests

* Fix conflicts

* Make value group concrete class that works with currency values

* Fix migration conflict

* Update tests to expect multi-currency results

* Update account list to use group method

* Namespace updates

* Fetch unknown exchange rates from API

* Fix date range bug

* Ensure demo data works without external API

* Enforce cascades only at DB level
2024-03-21 13:39:10 -04:00
Zach Gollwitzer
f904d9d062 Add the ability to "rollup" values in a time series (#554)
* Clean up time series models

* Add value group rollup class for summarizing hierarchical data

* Integrate new classes

* Update UI to use new patterns

* Update D3 charts to expect new data format

* Clean up account model

* More cleanup

* Money improvements

* Use new money fields

* Remove invalid fixture data to avoid orphaned accountables

* Update time series to work better with collections

* Fix tests and UI bugs
2024-03-19 09:10:40 -04:00
Zach Gollwitzer
fe2fa0eac1 Multi-currency support: Money + Currency class improvements (#553)
* Money improvements

* Replace all old money usage
2024-03-18 11:21:00 -04:00
Yu Le
56743eb380 Enable turbo refresh in layout/auth & Fix registrations controller create fail w/ status (#544) 2024-03-14 10:30:46 -04:00
Jakub Kottnauer
2c257a2a4b Add inline category selection (#541)
* Implement inline category selection

* Add turbo frame to refresh updated transaction

* Improve styles

* Fix category assignment

* Reorganize code

* Revert event propagation

* Remove unused frames

* Make only the transaction name clickable

* Add custom scrollbar class
2024-03-14 10:30:36 -04:00
Zach Gollwitzer
c60ddaec1d Multi-currency part 1 (#542)
* Add family snapshots table

* Add snapshot method, clean up family expected results

* Remove old sync trigger
2024-03-11 16:32:13 -04:00
Josh Pigford
0eddd86e74 Favicons 2024-03-11 09:01:50 -05:00
Ciocanel Razvan
cca779d3c4 Feat transactions search (#532)
* gem: Add ransack gem

* feat: Implement transactions search
2024-03-11 08:51:16 -04:00
Cristiano Crolla
7f2633f9da Add transaction sidebar (#534)
* Create sidebar element and working with turbo

* Add overview fields

* Add columns to transations and tidy modal

* permit new transaction params

* Add autosubmit form controller

* remove unused show code
2024-03-10 17:38:31 -04:00
Jean Moreau
9c9459211f Implement basic transaction pagination (#531)
* install pagy

* add pagy to controller, display default pagy UI

* display hardcoded custom UI to confirm styling

* implement custom UI with pagy methods

* move pagination into partial

* use lucide icons

* only display pagination if 2 or more pages are available

* add mobile pagination placeholder

* use link_to and display greyed out buttons when no prev or next needed

* sort transactions by date so grouping works appropriately with pagination

* add space between mobile view buttons

* remove debugging
2024-03-08 15:11:58 -05:00
Zach Gollwitzer
ad7136cb63 Add accounts management list (#522)
* Add accounts management

* Normalize i18n file

* Get turbo streams working

* Ignore disabled accounts in calculations

* Add empty state
2024-03-07 10:55:51 -05:00
Zach Gollwitzer
6f0e410684 Dashboard View and Calculations (#521)
* Handle Turbo updates with tabs

Fixes #491

* Add Filterable concern for controllers

* Add trendline chart

* Extract common UI to partials

* Series refactor

* Put placeholders for calculations in

* Add classification generated column to account

* Add basic net worth calculation

* Add net worth tests

* Get net worth graph working

* Fix lint errors

* Implement asset grouping query

* Make trends and series more intuitive

* Fully functional dashboard

* Remove logging
2024-03-06 09:56:59 -05:00
Zach Gollwitzer
19f15e9391 Add balance heading, date period partials (#507)
* Make balance heading partial

* Move period dropdown to partial

* Fix tests

* Remove redundant arg
2024-03-01 17:33:54 -05:00
Zach Gollwitzer
0fe9b6d34a Add Money and Money Series (#505)
* Add Money class

* Standardize creation of money series

* Formatting

* Fix test
2024-03-01 17:17:34 -05:00
Zach Gollwitzer
89ea12e9a1 Fix Turbo bug with tabs (#506) 2024-03-01 17:14:06 -05:00
Jakub Kottnauer
ccb1bab4b1 Add missing classification local when using account_valuation_list view (#504) 2024-03-01 14:52:13 -05:00
Zach Gollwitzer
14641d16de Add Local Development Demo Data (#502)
* Clean up seeds, add development demo data

* Handle liability account display and sync

* Fix tests
2024-02-29 16:35:54 -05:00
Zach Gollwitzer
7d48c01833 Prepare fixture data for account sync tests (#493)
* Rename account balance field for clarity

`original_balance` and `original_currency` may infer that these values are "original" to the account.  In reality, they represent the "current" balance and currency on the account.

* Prepare fixture data for account sync testing

* Update to new field

* Fix conflicts

* Remove local schema change
2024-02-27 12:43:49 -05:00
Sriram
d3b326d273 Make new account modal close as clickable button (#492)
Co-authored-by: Sriram Krishnan <sriram@seafoodsouq.com>
2024-02-27 12:25:36 -05:00
Sriram
eceff08a4d Make date required for new valuation form (#490)
Co-authored-by: Sriram Krishnan <sriram@seafoodsouq.com>
2024-02-27 09:41:21 -05:00
Sriram
7e883c4439 Update hard-coded currency UI with currency specific params (#488)
* Update hard-coded currency UI with currency specific params

* Rename extension methods to match currency option names; Move cents extension to numeric class extension

* Use currency's precision to show the cents part in accounts show page

---------

Co-authored-by: Sriram Krishnan <sriram@seafoodsouq.com>
2024-02-27 09:40:48 -05:00
Sriram
1968fb0145 Add currency to account form to support multiple currencies (#481)
Co-authored-by: Sriram Krishnan <sriram@seafoodsouq.com>
Co-authored-by: Zach Gollwitzer <zach.gollwitzer@gmail.com>
2024-02-26 09:50:38 -05:00
Zach Gollwitzer
87b97b3c41 Scaffold out basic transactions model and UI (#478)
* Transaction scaffold

* Rough in transaction views

* Fix sort order

* Fix mass assignment issue

* Fix test

* Simplify CI workflow

* Don't seed db before test
2024-02-23 21:34:33 -05:00
Josh Brown
e767aca37f Refresh account on update (#476)
* Refresh account on update

* 🐛 Replace turbo frame on create valuation

This avoids the frame reloading it's src when refreshing.

* Change Action Cable adapater to Postgres
2024-02-23 20:18:30 -06:00
Zach Gollwitzer
7e324f1b53 Scaffold out Account Syncing (#474)
* Add trends, time series, seed data

* Remove test data

* Replace old view values with helpers

* Fix tooltip bugs in D3 chart

* Fix tests

* Fix smoke test

* Add CRUD actions for valuations

* Scaffold out inline editing with Turbo

* Refactor series logic

* Scaffold out basic sync process for accounts

* Fix tests
2024-02-22 11:35:06 -05:00
Zach Gollwitzer
b5b2d335fd Add Live Data to Account Page (#464)
* Add trends, time series, seed data

* Remove test data

* Replace old view values with helpers

* Fix tooltip bugs in D3 chart

* Fix tests

* Fix smoke test

* Add CRUD actions for valuations

* Scaffold out inline editing with Turbo
2024-02-20 09:07:55 -05:00
Zach Gollwitzer
3ec9c9b56b Scaffold out the UI for individual account page (#461)
* Add `AccountBalance` table for account views

* Scaffold out account UI

* Add D3 line chart scaffolding

* Style fixes
2024-02-14 13:02:11 -05:00
Josh Brown
101a5ee0c5 Add notification UI (#449)
* Add notification UI

* Make animation an aribtrary value

It didn't make much sense in the theme as it feels very specific, this
change also means the timing information is clearer within the html
itself.

* Update to use tailwind theme

* Refactor structure of icon

* Add support for multiple notifications at once

* Adjust notification animation timing

* Make notification more accessible

Applies role to the notification which will apply the appropriate
aria-live status to ensure notifications are read out when they are
rendered into the screen for screenreader users.

Wraps the svg with a button tag that keyboard users can focus and engage
with to close the notification.

* Fix notification progress indicator placement

* Map flash types to notification types automatically

* Refine notification animations

* Set success as default icon for notifications
2024-02-13 09:19:11 -06:00
Zach Gollwitzer
bbe7323ca4 Add Tailwind color palette (#452) 2024-02-12 17:20:50 -05:00
Josh Pigford
a86b4264c4 i18n additions 2024-02-11 14:00:16 -06:00
Sergey Tyan
e79ff94f6c Improve account modal keyboard navigation (#424)
* Add back button support to account keyboard navigation and autofocus text input on the form

* Wrap modal content with keyboard navigation controller
2024-02-11 13:17:03 -06:00
Josh Pigford
fbe49bf4ea Currency select tweaks 2024-02-11 13:09:14 -06:00
Cristiano Crolla
96debfaeda Currency Dropdown (#415)
* Initial dropdown setup and styles

* Allow form field to pass through block content and update dropdown posititon

* add currency to accounts params

* Add repositionDropdown function and carry over dropdown controller

* remove block context from form builder in favour of using form tag directly

* Hide currency input and set checks for input and label before updating

* align currency button with balance

* revert form_field_tag changes

* remove margin on currency button, looks cleaner

---------

Signed-off-by: Josh Pigford <josh@joshpigford.com>
Co-authored-by: Josh Pigford <josh@joshpigford.com>
2024-02-11 13:02:27 -06:00
Josh Pigford
b2fdf78101 Sidebar nav tweak 2024-02-11 12:56:23 -06:00
Josh Brown
e37ed2c988 Add sidebar link helper (#435)
* Add helper for sidebar nav links

* Allow options to be passed down to sidebar link
2024-02-11 12:47:58 -06:00
Sergey Tyan
aef15c9371 Add controller to save accounts collapse state to localStorage (#432)
* Add controller to save accounts collapse state to localStorage

* Small clean up

* Fix indentation
2024-02-11 12:38:28 -06:00
Josh Pigford
4d5d35b277 Rough-in on account show pages 2024-02-10 19:39:18 -06:00
Josh Pigford
2c34fa7564 Menu hover text color 2024-02-10 19:18:19 -06:00
Josh Pigford
22a9aad3c3 Main menu 2024-02-10 19:12:20 -06:00
Josh Pigford
aa351ae616 Multi-currency support (#425)
* Initial foundational pass at multi-currency

* Default format currency

* More work on currency and exchanging

* Re-build currencies on change

* Currency import/setup

* Background job overhaul + cheaper OXR plan support

* Lint fixes

* Test fixes

* Multi-currency setup instructions

* Allow decimals in the balance field

* Spacing fix for form

---------

Signed-off-by: Josh Pigford <josh@joshpigford.com>
2024-02-10 16:18:56 -06:00
Rob Zolkos
ac37b54a32 Fix modal height bug [safari] (#420) 2024-02-10 13:26:07 -06:00