Commit Graph

18 Commits

Author SHA1 Message Date
Jakub Kottnauer
a5212f0f5e Unify submit button styles and change cursor on account group (#905) 2024-06-24 06:49:08 -04:00
Zach Gollwitzer
4ebc08e5a4 Transactions cleanup (#817)
An overhaul and cleanup of the transactions feature including:

- Simplification of transactions search and filtering
- Consolidation of account sync logic after transaction change
- Split sidebar modal and modal into "drawer" and "modal" concepts
- Refactor of transaction partials and folder organization
- Cleanup turbo frames and streams for transaction updates, including new Transactions::RowsController for inline updates
- Refactored and added several integration and systems tests
2024-05-30 20:55:18 -04:00
Claude Ayitey
9563ac6334 Dashboard empty view (#707)
* Added i18n for the Dashboard page.

* Add a check for blank. Empty returned an error since @accounts was nil.

* Remove subtitle when accounts are empty..

* Increased the padding-right value for the buttons. The sapce occupied by the icon made the button elements unbalanced.

* Add refactor as suggested by Zach (https://github.com/maybe-finance/maybe/pull/707#discussion_r1588506443)

* Extract empty state into a partial.

* Render new partial if no accounts exist.

* Moved translation text to shared directory.

* Fix padding-right on New account button.

* Lint fix

* i18n tasks

* Get tests passing with :test queue adapter

---------

Co-authored-by: Zach Gollwitzer <zach.gollwitzer@gmail.com>
2024-05-03 08:11:31 -04:00
Josh Brown
be21d2b4fd Refactor placeholder logo into common controller (#673)
This can be updated to redirect/pull from third party sources in future,
with the option of always falling back to the placeholder if there are
any failures.
2024-04-25 10:32:45 -04:00
Josh Brown
b3f8ab78d9 Implement savings rate insight card (#670) 2024-04-24 10:02:22 -04:00
Josh Brown
461fa672ff Add income and spending insight cards to dashboard (#668)
* Generate time series for rolling 30 day sum of income and spending

* Highlight accounts with most income and spending in the last 30 days

* Aggregate chips after 3 top accounts in insight card

* Refactor aggregation filter

I think this is easier to read and understand whats happening at a
glance

* Refactor and tidy

* Use family currency for insight cards

* Further reduce risk of sql injection

* Fix lint

* Refactor rolling total queries

* Add test for transaction snapshot
2024-04-24 08:34:50 -04:00
Josh Brown
1f6e83ee91 Add pie chart for asset/debt allocation in dashboard view (#666)
* Add pie chart for asset/debt allocation in dashboard view

* Fix lint issue

* Fix z-index issue with tooltip under pie chart

* Fix spacing of dashboard charts
2024-04-23 12:05:18 -04:00
Mattia
8a29725562 Add transactions widget to dashboard page (#656) 2024-04-22 16:51:06 -04:00
Jose Farias
49b603f478 Flesh out D3 time series charts (#657)
* Reindent TimeSeries classes

* Fix spacing in time series tests

* Remove trend tests where current is nil

I think if we've gotten this far with a nil value for current, there's a data integrity problem.

If we allow this, we'll have to be very defensive in our code. Best to raise and fix early.

* Reindent Money class

* Refactor TimeSeries artifacts

* Use as_json in TimeSeries

* Bring back tests for trends where current is nil

* Bring back trend test

* Correctly enumerate trend test

* Use favorable_direction for trend_styles helper

* Make trend public in TimeSeries::Value

* Allow nil current values in trends

I think I might've gotten it wrong before, nils might appear in trends if values are unavailable for snapshots

* Clean up TimeSeries::Trend

* Skip trend values same class validations if any values are nil

* Refactor Money

* Remove object parsing in TimeSeries::Value

We're only every passing hashes

* Refactor trendline chart controller into a time series chart controller

* Replace trendline controller

* Implement empty state

* Port line-chart controller into time-series-chart

* Split out methods

* Group similar time series chart functionality

* Fix indicator color

* Fix empty state in time series chart

* Replace line-chart controller with time-series-chart controller

* Draw empty time series chart if less than 2 data points

* Fix favorable direction serialization

* Handle integers as well as money

* Fix favorable direction serialization

* Replace chart types with optional elements

* Prevent double-renders when displaying turbo caches of time series charts

* Remove ambiguities between time series and series data

* Improve time series chart property names

* Clean up tooltip template

* Match tooltip designs

* Apply trendline gradient

* Implement trendline split behavior

* Use same stroke width on all trend lines

* Sort time series data by date

* Support percentages

* Use data color for guideline circles

* Revert "Use data color for guideline circles"

This reverts commit f239a1e00f84ae28e32f48315d67cf990e541a8a.

* Use expected defaults for time series chart

* Include day in time-series chart x-axis labels

* favorableDirection -> favorable_direction

* data -> datum where appropriate

* Hide change data in tooltip for percentages
2024-04-22 13:44:26 -04:00
Zach Gollwitzer
f5f624881f Add placeholders for dashboard features (#642)
* Add placeholders for new dashboard

* Fix tests and lint errors
2024-04-18 10:32:36 -04:00
Igor Alexandrov
b5c56f7775 Added lints for ERB templates (#609)
* Added erblint and fixed offenses

* Added erblint bintstub. Included erblint into CI

* Merged GitHub Actions tasks for rubocop and erblint into one

* Added config for erblint.

* Reverted erblint call in the CI
2024-04-09 08:08:58 -04:00
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
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
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
Ricardo Siqueira de Oliveira Leite
c8a659694d Start I18n Internationalization setup (#276)
* start internationalization_setup

* add passwords views translations

* add account views translations

* fix translations

* temporary disable i18n used key
2024-02-06 11:58:17 -06:00
Josh Pigford
99de24ac70 Initial commit 2024-02-02 09:05:04 -06:00