Commit Graph

215 Commits

Author SHA1 Message Date
Simon Michael
5f3c3f3854 fix:ui:a key: don't pass cli query args to add [#2313] 2025-01-21 22:02:34 -10:00
Stephen Morgan
7168f7efc4 imp: ui: Use new DepthSpec in hledger-ui.
The regular expression depths are ignored, and only the flat depths are
used.
2024-12-03 08:33:21 -10:00
Vekhir
de3209a2fb fix: Hide ambiguous instance for (!?)
base 4.19.0.0 introduces Data.List.!? which clashes with Data.Vector.!?, the latter of which is needed for vector operations.
2024-02-18 14:55:31 -10:00
Simon Michael
df79aa5e35 dev: distinguish oneLineFmt and oneLineNoCostFmt; add fullZeroFmt 2024-01-23 21:35:06 -10:00
Simon Michael
0cb382cf0e dev: rename AmountDisplayOpts -> AmountFormat, and related constants
noColour          -> defaultFmt
noCost            -> noCostFmt
oneLine           -> oneLineFmt
csvDisplay        -> machineFmt
2024-01-23 21:35:06 -10:00
Simon Michael
056553e8a9 imp: ui: improve screens' help footer 2023-03-24 11:33:36 -10:00
Simon Michael
82aa8f1975 imp: ui: bs/is screens: clarify balance/changes in header/footer 2022-11-07 16:10:56 -10:00
Simon Michael
9a8a8a75a2 imp: ui: start on balance sheet screen: better initial screen stack 2022-11-06 07:59:45 -10:00
Simon Michael
9a9ebfc0e3 dev: ui: rename hledger-ui debug helpers 2022-10-31 12:42:09 -10:00
Simon Michael
d948198303 dev: ui: cleanup 2022-10-28 17:16:45 -10:00
Simon Michael
e51d4059db feat: ui: add income statement accounts screen 2022-09-11 13:51:40 -10:00
Simon Michael
6f258b704a dev: ui: bs: reuse account screen's event handler 2022-09-09 16:11:00 -10:00
Simon Michael
3fbef8ab88 dev: ui: asHandle refactor, cleanup 2022-09-09 11:01:49 -10:00
Simon Michael
a3c0716133 dev: ui: as, bs: reuse update, draw code 2022-09-08 13:42:29 -10:00
Simon Michael
fb0053c15f imp: ui: fix a probable bug with detecting date change while running 2022-09-08 12:23:59 -10:00
Simon Michael
6737bb3d38 imp: ui: mouse-clicking below the list no longer navigates back
I and mail list think it's too obtrusive, eg sometimes it navigates
when you just want to focus the window.
2022-09-08 12:23:59 -10:00
Simon Michael
975522e759 feat: ui: add balance sheet accounts screen 2022-09-08 12:23:59 -10:00
Simon Michael
75a19e8609 feat: ui: add top-level menu screen 2022-09-08 12:23:59 -10:00
Simon Michael
8f8fc7bf75 dev: ui: re-export new/update functions from screen modules 2022-09-07 14:17:49 -10:00
Simon Michael
a5f4d2fd6e dev: ui: refactor: simpler, more debuggable Screen type
Follow-on from the brick 1.0 migration work (#1889, #1919).

These new types aim to be more restrictive, allowing fewer invalid
states, and easier to inspect and debug. The screen types store only
state, not behaviour (functions), and there is no longer a circular
dependency between UIState and Screen.
2022-09-07 11:56:13 -10:00
Simon Michael
96db4fe9cc dev: ui: enable/fix name shadowing warnings 2022-08-23 02:57:59 +01:00
Simon Michael
f5efb2e08e fix: ui: cleanups, fix more state & logging bugs (#1889) 2022-08-23 01:55:25 +01:00
Simon Michael
b6353804b8 fix: ui: fix state bugs from brick 1 migration (#1889) 2022-08-23 00:50:51 +01:00
Simon Michael
67cd6be424 imp: ui: at --debug=2, do lots of logging to debug.log 2022-08-23 00:50:51 +01:00
Simon Michael
4bd9f4a6f7 dev: ui: avoid MonadFail entirely, simplifying ghc version compat (#1889) 2022-08-17 15:57:27 +01:00
Simon Michael
2a594b7fb7 pkg: ui: use/require brick 1.0+ (#1889) 2022-08-17 15:57:27 +01:00
Simon Michael
dde2ea7e42 pkg: ui: support doclayout 0.4, brick 0.72+ 2022-07-10 22:03:45 +01:00
Stephen Morgan
8eedbbbe87 imp: cost: Generate totally balanced conversion postings for amounts with costs.
Introduce --infer-equity option which will generate conversion postings.
--cost will override --infer-equity.

This means there will no longer be unbalanced transactions, but will be
offsetting conversion postings to balance things out. For example.

2000-01-01
  a   1 AAA @@ 2 BBB
  b  -2 BBB

When converting to cost, this is treated the same as before.
When used with --infer-equity, this is now treated as:

2000-01-01
  a                               1 AAA
  equity:conversion:AAA-BBB:AAA  -1 AAA
  equity:conversion:AAA-BBB:BBB   2 BBB
  b                              -2 BBB

There is a new account type, Conversion/V, which is a subtype of Equity/E.
The first account declared with this type, if any, is used as the base account
for inferred equity postings in conversion transactions, overriding the default
"equity:conversion".

API changes:

Costing has been changed to ConversionOp with three options:
NoConversionOp, ToCost, and InferEquity.
The first correspond to the previous NoCost and Cost options, while the
third corresponds to the --infer-equity flag.  This converts transactions with costs
(one or more transaction prices) to transactions with equity:conversion postings.
It is in ConversionOp because converting to cost with -B/--cost and inferring conversion
equity postings with --infer-equity are mutually exclusive.

Correspondingly, the cost_ record of ReportOpts has been changed to
conversionop_.

This also removes show_costs_ option in ReportOpts, as its functionality
has been replaced by the richer cost_ option.
2021-12-21 10:50:13 -10:00
Simon Michael
6b3d040fdf cln: ui: drop unused pragma 2021-12-09 12:23:55 -10:00
Simon Michael
bfb8a13c13 imp: ui: Z -> z for easier zero toggling
Z remains supported as a hidden legacy key.
2021-11-25 11:58:41 -10:00
Simon Michael
eb4ad8cc11 imp: ui: also show declared leaf accounts (when showing zeros)
Similar to (and motivating) balance --declared, the goal is to
show a useful list of accounts when all you have is some starter
files with account declarations.
2021-11-25 11:57:39 -10:00
Simon Michael
e5678ce230 Revert "imp: ui: accounts: also show declared accounts, even if unused"
This reverts commit 29efacf02c.
(It breaks filtering by account, also the parent accounts aren't really desirable to see.)
2021-11-22 12:06:23 -10:00
Simon Michael
29efacf02c imp: ui: accounts: also show declared accounts, even if unused
This will be more user-friendly when getting started.
2021-11-22 11:13:47 -10:00
Stephen Morgan
59b4968929 imp: ui: Display an error message on invalid regexp, rather than
silently ignoring. (#1394)
2021-11-20 22:23:52 -10:00
Simon Michael
c11d19a893 fix: ui: scroll selection to middle on first entry, also
The viewport doesn't exist until after first render, and scrollSelectionToMiddle didn't need it; viewportScroll queues up events for it.
https://github.com/jtdaugherty/brick/issues/349
2021-11-20 15:33:28 -10:00
Simon Michael
7bbff6a359 fix: ui: accounts: don't let j or C-n move past bottom 2021-11-18 22:21:37 -10:00
Simon Michael
9f6595f122 ui: refactor, generalise listScrollPushingSelection 2021-11-18 22:21:37 -10:00
Simon Michael
3a57814402 ui: debounced clicking; click top/left margin to exit 2021-11-18 22:21:37 -10:00
Simon Michael
6d69ea9c29 ui: mouse scrolls accounts, register screens 2021-11-18 22:21:37 -10:00
Simon Michael
35402fb472 ui: accounts: left click enters register 2021-11-18 22:21:37 -10:00
Stephen Morgan
ff0132df28 dev: Use realLength from doclayout instead of strWidth and textWidth. (#895)
This gives us more accurate string length calculations. In particular,
it handles emoji and other scripts properly.
2021-11-11 18:29:50 -10:00
Stephen Morgan
3456fcb862 test: ui: web: Use report date from _rsDay for hledger-ui and
hledger-web, rather than getCurrentDay.

File watching in hledger-ui continues to use getCurrentDay.
2021-09-09 14:40:39 -10:00
Stephen Morgan
765466c392 dev!: ui: Rename fields of UIOpts for consistency.
In code, either replace the name with the new name, or use the lenses
instead.

watch_ -> uoWatch
cliopts_ -> uoCliOpts
2021-09-09 13:31:43 -10:00
Stephen Morgan
beecb3c9ac cln: hlint: Clean up list related hlint warnings. 2021-08-27 06:13:56 -10:00
Stephen Morgan
e13239386f cln: hlint: Clean up == and elem related hlint warnings. 2021-08-27 06:13:56 -10:00
Stephen Morgan
69502c44fe cln: hlint: Fix record patterns warnings. 2021-08-26 21:00:35 -10:00
Stephen Morgan
a3cacca71d fix: ui: Make sure RegisterScreen (and consequently TransactionScreen)
only display forecast transactions when the appropriate flag is set.
2021-08-23 22:22:53 -10:00
Stephen Morgan
c404800fbf ref!: forecast: Move forecast_ from ReportOpts to InputOpts. 2021-08-05 21:10:47 -10:00
Stephen Morgan
b0aa70b27a lib!: Rename the fields of ReportSpec.
This is done to be more consistent with future field naming conventions,
and to make automatic generation of lenses simpler. See discussion in
\#1545.

rsOpts -> _rsReportOpts
rsToday -> _rsDay
rsQuery -> _rsQuery
rsQueryOpts -> _rsQueryOpts
2021-07-23 10:37:08 -10:00
Simon Michael
87f575e643 ref: bal: rename some report types to clarify/sync with docs
ReportType -> BalanceCalculation
 ChangeReport -> CalcChange
 BudgetReport -> CalcBudget
 ValueChangeReport -> CalcValueChange

BalanceType -> BalanceAccumulation
 PeriodChange -> PerPeriod
 CumulativeChange -> Cumulative
 HistoricalBalance -> Historical

ReportOpts:
 reporttype_ -> balancecalc_
 balancetype_ -> balanceaccum_

CompoundBalanceCommandSpec:
 cbctype -> cbcaccum

Hledger.Reports.ReportOptions:
 balanceTypeOverride -> balanceAccumulationOverride
2021-07-15 14:22:20 -10:00