;web: maintain queries in all other links, too
This commit is contained in:
		
							parent
							
								
									ec27eb6b17
								
							
						
					
					
						commit
						ebe021b0c8
					
				| @ -13,19 +13,20 @@ import Hledger.Web.Import | |||||||
| import Hledger.Web.WebOptions | import Hledger.Web.WebOptions | ||||||
| import Hledger.Web.Widget.AddForm (addModal) | import Hledger.Web.Widget.AddForm (addModal) | ||||||
| import Hledger.Web.Widget.Common | import Hledger.Web.Widget.Common | ||||||
|             (accountQuery, mixedAmountAsHtml, transactionFragment) |             (accountQuery, mixedAmountAsHtml, | ||||||
|  |              transactionFragment, replaceInacct) | ||||||
| 
 | 
 | ||||||
| -- | The formatted journal view, with sidebar. | -- | The formatted journal view, with sidebar. | ||||||
| getJournalR :: Handler Html | getJournalR :: Handler Html | ||||||
| getJournalR = do | getJournalR = do | ||||||
|   checkServerSideUiEnabled |   checkServerSideUiEnabled | ||||||
|   VD{caps, j, m, opts, qopts, today} <- getViewData |   VD{caps, j, m, opts, q, qopts, today} <- getViewData | ||||||
|   when (CapView `notElem` caps) (permissionDenied "Missing the 'view' capability") |   when (CapView `notElem` caps) (permissionDenied "Missing the 'view' capability") | ||||||
|   let title = case inAccount qopts of |   let title = case inAccount qopts of | ||||||
|         Nothing -> "General Journal" |         Nothing -> "General Journal" | ||||||
|         Just (a, inclsubs) -> "Transactions in " <> a <> if inclsubs then "" else " (excluding subaccounts)" |         Just (a, inclsubs) -> "Transactions in " <> a <> if inclsubs then "" else " (excluding subaccounts)" | ||||||
|       title' = title <> if m /= Any then ", filtered" else "" |       title' = title <> if m /= Any then ", filtered" else "" | ||||||
|       acctlink a = (RegisterR, [("q", accountQuery a)]) |       acctlink a = (RegisterR, [("q", replaceInacct q $ accountQuery a)]) | ||||||
|       (_, items) = transactionsReport (reportopts_ $ cliopts_ opts) j m |       (_, items) = transactionsReport (reportopts_ $ cliopts_ opts) j m | ||||||
|       transactionFrag = transactionFragment j |       transactionFrag = transactionFragment j | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -18,13 +18,14 @@ import Hledger.Web.Import | |||||||
| import Hledger.Web.WebOptions | import Hledger.Web.WebOptions | ||||||
| import Hledger.Web.Widget.AddForm (addModal) | import Hledger.Web.Widget.AddForm (addModal) | ||||||
| import Hledger.Web.Widget.Common | import Hledger.Web.Widget.Common | ||||||
|              (accountQuery, mixedAmountAsHtml, transactionFragment) |              (accountQuery, mixedAmountAsHtml, | ||||||
|  |               transactionFragment, removeInacct, replaceInacct) | ||||||
| 
 | 
 | ||||||
| -- | The main journal/account register view, with accounts sidebar. | -- | The main journal/account register view, with accounts sidebar. | ||||||
| getRegisterR :: Handler Html | getRegisterR :: Handler Html | ||||||
| getRegisterR = do | getRegisterR = do | ||||||
|   checkServerSideUiEnabled |   checkServerSideUiEnabled | ||||||
|   VD{caps, j, m, opts, qopts, today} <- getViewData |   VD{caps, j, m, opts, q, qopts, today} <- getViewData | ||||||
|   when (CapView `notElem` caps) (permissionDenied "Missing the 'view' capability") |   when (CapView `notElem` caps) (permissionDenied "Missing the 'view' capability") | ||||||
| 
 | 
 | ||||||
|   let (a,inclsubs) = fromMaybe ("all accounts",True) $ inAccount qopts |   let (a,inclsubs) = fromMaybe ("all accounts",True) $ inAccount qopts | ||||||
| @ -34,7 +35,7 @@ getRegisterR = do | |||||||
| 
 | 
 | ||||||
|   let ropts = reportopts_ (cliopts_ opts) |   let ropts = reportopts_ (cliopts_ opts) | ||||||
|       acctQuery = fromMaybe Any (inAccountQuery qopts) |       acctQuery = fromMaybe Any (inAccountQuery qopts) | ||||||
|       acctlink acc = (RegisterR, [("q", accountQuery acc)]) |       acctlink acc = (RegisterR, [("q", replaceInacct q $ accountQuery acc)]) | ||||||
|       otherTransAccounts = |       otherTransAccounts = | ||||||
|           map (\(acct,(name,comma)) -> (acct, (T.pack name, T.pack comma))) . |           map (\(acct,(name,comma)) -> (acct, (T.pack name, T.pack comma))) . | ||||||
|           undecorateLinks . elideRightDecorated 40 . decorateLinks . |           undecorateLinks . elideRightDecorated 40 . decorateLinks . | ||||||
|  | |||||||
| @ -15,6 +15,8 @@ module Hledger.Web.Widget.Common | |||||||
|   , writeJournalTextIfValidAndChanged |   , writeJournalTextIfValidAndChanged | ||||||
|   , journalFile404 |   , journalFile404 | ||||||
|   , transactionFragment |   , transactionFragment | ||||||
|  |   , removeInacct | ||||||
|  |   , replaceInacct | ||||||
|   ) where |   ) where | ||||||
| 
 | 
 | ||||||
| import Data.Default (def) | import Data.Default (def) | ||||||
|  | |||||||
| @ -21,7 +21,7 @@ | |||||||
|       $forall (torig, tacct, split, _acct, amt, bal) <- items |       $forall (torig, tacct, split, _acct, amt, bal) <- items | ||||||
|         <tr ##{tindex torig} title="#{showTransaction torig}" style="vertical-align:top;"> |         <tr ##{tindex torig} title="#{showTransaction torig}" style="vertical-align:top;"> | ||||||
|           <td .date> |           <td .date> | ||||||
|             <a href="@{JournalR}##{transactionFrag torig}"> |             <a href="@?{(JournalR, [("q", T.unwords $ removeInacct q)])}##{transactionFrag torig}"> | ||||||
|               #{show (tdate tacct)} |               #{show (tdate tacct)} | ||||||
|           <td> |           <td> | ||||||
|             #{textElideRight 30 (tdescription tacct)} |             #{textElideRight 30 (tdescription tacct)} | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user