mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-08 07:09:28 +03:00
ui: allow multiple status filters to be active at once (#564)
This commit is contained in:
parent
dcc58d4a2b
commit
22e751983b
@ -15,6 +15,7 @@ module Hledger.Reports.ReportOptions (
|
||||
checkReportOpts,
|
||||
flat_,
|
||||
tree_,
|
||||
reportOptsToggleStatus,
|
||||
whichDateFromOpts,
|
||||
journalSelectingAmountFromOpts,
|
||||
queryFromOpts,
|
||||
@ -284,6 +285,11 @@ simplifyStatuses l
|
||||
l' = nub $ sort l
|
||||
numstatuses = length [minBound .. maxBound :: Status]
|
||||
|
||||
-- | Add/remove this status from the status list. Used by hledger-ui.
|
||||
reportOptsToggleStatus s ropts@ReportOpts{statuses_=ss}
|
||||
| s `elem` ss = ropts{statuses_=filter (/= s) ss}
|
||||
| otherwise = ropts{statuses_=simplifyStatuses (s:ss)}
|
||||
|
||||
type DisplayExp = String
|
||||
|
||||
maybedisplayopt :: Day -> RawOpts -> Maybe DisplayExp
|
||||
|
@ -32,10 +32,6 @@ toggleCleared :: UIState -> UIState
|
||||
toggleCleared ui@UIState{aopts=uopts@UIOpts{cliopts_=copts@CliOpts{reportopts_=ropts}}} =
|
||||
ui{aopts=uopts{cliopts_=copts{reportopts_=reportOptsToggleStatus Cleared ropts}}}
|
||||
|
||||
reportOptsToggleStatus s ropts
|
||||
| clearedstatus_ ropts == [s] = ropts{clearedstatus_=[]}
|
||||
| otherwise = ropts{clearedstatus_=[s]}
|
||||
|
||||
-- | Toggle between showing all and showing only nonempty (more precisely, nonzero) items.
|
||||
toggleEmpty :: UIState -> UIState
|
||||
toggleEmpty ui@UIState{aopts=uopts@UIOpts{cliopts_=copts@CliOpts{reportopts_=ropts}}} =
|
||||
|
@ -76,9 +76,9 @@ helpDialog =
|
||||
,renderKey ("t", "set report period to today")
|
||||
,str " "
|
||||
,renderKey ("/", "set a filter query")
|
||||
,renderKey ("U", "toggle unmarked/all")
|
||||
,renderKey ("P", "toggle pending/all")
|
||||
,renderKey ("C", "toggle cleared/all")
|
||||
,renderKey ("U", "toggle unmarked filter")
|
||||
,renderKey ("P", "toggle pending filter")
|
||||
,renderKey ("C", "toggle cleared filter")
|
||||
,renderKey ("R", "toggle real/all")
|
||||
,renderKey ("Z", "toggle nonzero/all")
|
||||
,renderKey ("DEL/BS", "remove filters")
|
||||
|
@ -163,9 +163,13 @@ balances are what you would see on a bank statement for that account (unless dis
|
||||
a filter query). Period balances ignore transactions before the report start date, so they
|
||||
show the change in balance during the report period. They are more useful eg when viewing a time log.
|
||||
|
||||
`C` toggles cleared mode, which shows balances for postings with [cleared status](/journal.html#status) only.
|
||||
Similarly, `P` toggles pending mode, which shows balances for pending postings only,
|
||||
and `U` toggles uncleared mode, which shows balances for unmarked postings only.
|
||||
`U` toggles filtering by [unmarked status](/journal.html#status),
|
||||
including or excluding unmarked postings in the balances.
|
||||
Similarly, `P` toggles pending postings,
|
||||
and `C` toggles cleared postings.
|
||||
(By default, balances include all postings;
|
||||
if you activate one or two status filters, only those postings are included;
|
||||
and if you activate all three, the filter is removed.)
|
||||
|
||||
`R` toggles real mode, in which [virtual postings](/journal.html#virtual-postings) are ignored.
|
||||
|
||||
@ -202,9 +206,11 @@ In other words, the register always shows the transactions responsible for the p
|
||||
shown on the accounts screen.
|
||||
As on the accounts screen, this can be toggled with `F`.
|
||||
|
||||
`C` toggles cleared mode, which shows transactions with [cleared status](/journal.html#status) only.
|
||||
Similarly, `P` toggles pending mode, which shows only pending transactions,
|
||||
and `U` toggles uncleared mode, which shows only unmarked transactions.
|
||||
`U` toggles filtering by [unmarked status](/journal.html#status), showing or hiding unmarked transactions.
|
||||
Similarly, `P` toggles pending transactions, and `C` toggles cleared transactions.
|
||||
(By default, transactions with all statuses are shown;
|
||||
if you activate one or two status filters, only those transactions are shown;
|
||||
and if you activate all three, the filter is removed.)q
|
||||
|
||||
`R` toggles real mode, in which [virtual postings](/journal.html#virtual-postings) are ignored.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user