web: register page: clip linked accounts to 40 characters
This was the behaviour before adding the links.
This commit is contained in:
parent
adbdbf002c
commit
1fa4419cd1
@ -34,8 +34,13 @@ getRegisterR = do
|
|||||||
acctQuery = fromMaybe Any (inAccountQuery qopts)
|
acctQuery = fromMaybe Any (inAccountQuery qopts)
|
||||||
acctlink acc = (RegisterR, [("q", accountQuery acc)])
|
acctlink acc = (RegisterR, [("q", accountQuery acc)])
|
||||||
otherTransAccounts =
|
otherTransAccounts =
|
||||||
|
map (\(acct,(name,comma)) -> (acct, (T.pack name, T.pack comma))) .
|
||||||
|
undecorateLinks . elideRightDecorated 40 . decorateLinks .
|
||||||
addCommas . preferReal . otherTransactionAccounts m acctQuery
|
addCommas . preferReal . otherTransactionAccounts m acctQuery
|
||||||
addCommas xs = zip xs $ tail $ (","<$xs) ++ [T.empty]
|
addCommas xs =
|
||||||
|
zip xs $
|
||||||
|
zip (map (T.unpack . accountSummarisedName . paccount) xs) $
|
||||||
|
tail $ (", "<$xs) ++ [""]
|
||||||
r@(balancelabel,items) = accountTransactionsReport ropts j m acctQuery
|
r@(balancelabel,items) = accountTransactionsReport ropts j m acctQuery
|
||||||
balancelabel' = if isJust (inAccount qopts) then balancelabel else "Total"
|
balancelabel' = if isJust (inAccount qopts) then balancelabel else "Total"
|
||||||
defaultLayout $ do
|
defaultLayout $ do
|
||||||
@ -63,6 +68,28 @@ preferReal ps
|
|||||||
| otherwise = realps
|
| otherwise = realps
|
||||||
where realps = filter isReal ps
|
where realps = filter isReal ps
|
||||||
|
|
||||||
|
elideRightDecorated :: Int -> [(Maybe d, Char)] -> [(Maybe d, Char)]
|
||||||
|
elideRightDecorated width s =
|
||||||
|
if length s > width
|
||||||
|
then take (width - 2) s ++ map ((,) Nothing) ".."
|
||||||
|
else s
|
||||||
|
|
||||||
|
undecorateLinks :: [(Maybe acct, char)] -> [(acct, ([char], [char]))]
|
||||||
|
undecorateLinks [] = []
|
||||||
|
undecorateLinks xs0@(x:_) =
|
||||||
|
case x of
|
||||||
|
(Just acct, _) ->
|
||||||
|
let (link, xs1) = span (isJust . fst) xs0
|
||||||
|
(comma, xs2) = span (isNothing . fst) xs1
|
||||||
|
in (acct, (map snd link, map snd comma)) : undecorateLinks xs2
|
||||||
|
_ -> error "link name not decorated with account"
|
||||||
|
|
||||||
|
decorateLinks :: [(acct, ([char], [char]))] -> [(Maybe acct, char)]
|
||||||
|
decorateLinks =
|
||||||
|
concatMap
|
||||||
|
(\(acct, (name, comma)) ->
|
||||||
|
map ((,) (Just acct)) name ++ map ((,) Nothing) comma)
|
||||||
|
|
||||||
-- | Generate javascript/html for a register balance line chart based on
|
-- | Generate javascript/html for a register balance line chart based on
|
||||||
-- the provided "TransactionsReportItem"s.
|
-- the provided "TransactionsReportItem"s.
|
||||||
registerChartHtml :: [(CommoditySymbol, (String, [TransactionsReportItem]))] -> HtmlUrl AppRoute
|
registerChartHtml :: [(CommoditySymbol, (String, [TransactionsReportItem]))] -> HtmlUrl AppRoute
|
||||||
|
|||||||
@ -26,9 +26,9 @@
|
|||||||
<td>
|
<td>
|
||||||
#{textElideRight 30 (tdescription tacct)}
|
#{textElideRight 30 (tdescription tacct)}
|
||||||
<td .account>
|
<td .account>
|
||||||
$forall (Posting { paccount = acc }, comma) <- otherTransAccounts torig
|
$forall (Posting { paccount = acc }, (summName,comma)) <- otherTransAccounts torig
|
||||||
<a href="@?{acctlink acc}##{tindex torig}" title="#{acc}">
|
<a href="@?{acctlink acc}##{tindex torig}" title="#{acc}">
|
||||||
#{accountSummarisedName acc}</a>#{comma}
|
#{summName}</a>#{comma}
|
||||||
<td .amount style="text-align:right; white-space:nowrap;">
|
<td .amount style="text-align:right; white-space:nowrap;">
|
||||||
$if not split || not (isZeroMixedAmount amt)
|
$if not split || not (isZeroMixedAmount amt)
|
||||||
^{mixedAmountAsHtml amt}
|
^{mixedAmountAsHtml amt}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user