mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-10 05:39:31 +03:00
web: refactor: use RecordWildCards to reduce verbosity
This commit is contained in:
parent
47b1142d49
commit
0ebdbff17e
@ -48,7 +48,7 @@ getRootR = redirect RedirectTemporary defaultroute where defaultroute = Register
|
||||
-- | The formatted journal view, with sidebar.
|
||||
getJournalR :: Handler RepHtml
|
||||
getJournalR = do
|
||||
vd@VD{opts=opts,qopts=qopts,m=m,j=j} <- getViewData
|
||||
vd@VD{..} <- getViewData
|
||||
let sidecontent = sidebar vd
|
||||
-- XXX like registerReportAsHtml
|
||||
inacct = inAccount qopts
|
||||
@ -122,7 +122,7 @@ getJournalEditR = do
|
||||
-- | The raw journal view, with sidebar.
|
||||
getJournalRawR :: Handler RepHtml
|
||||
getJournalRawR = do
|
||||
vd@VD{opts=opts,m=m,j=j} <- getViewData
|
||||
vd@VD{..} <- getViewData
|
||||
let
|
||||
sidecontent = sidebar vd
|
||||
title = "Journal entries" ++ if m /= MatchAny then ", filtered" else "" :: String
|
||||
@ -147,7 +147,7 @@ getJournalRawR = do
|
||||
-- | The raw journal view, no sidebar.
|
||||
getJournalOnlyR :: Handler RepHtml
|
||||
getJournalOnlyR = do
|
||||
vd@VD{opts=opts,m=m,j=j} <- getViewData
|
||||
vd@VD{..} <- getViewData
|
||||
defaultLayout $ do
|
||||
setTitle "hledger-web journal only"
|
||||
addHamlet $ rawJournalReportAsHtml opts vd $ journalReport opts nullfilterspec $ filterJournalTransactions2 m j
|
||||
@ -157,7 +157,7 @@ getJournalOnlyR = do
|
||||
-- | The main journal/account register view, with accounts sidebar.
|
||||
getRegisterR :: Handler RepHtml
|
||||
getRegisterR = do
|
||||
vd@VD{opts=opts,qopts=qopts,m=m,j=j} <- getViewData
|
||||
vd@VD{..} <- getViewData
|
||||
let sidecontent = sidebar vd
|
||||
-- injournal = isNothing inacct
|
||||
filtering = m /= MatchAny
|
||||
@ -187,7 +187,7 @@ getRegisterR = do
|
||||
-- | The register view, no sidebar.
|
||||
getRegisterOnlyR :: Handler RepHtml
|
||||
getRegisterOnlyR = do
|
||||
vd@VD{opts=opts,qopts=qopts,m=m,j=j} <- getViewData
|
||||
vd@VD{..} <- getViewData
|
||||
defaultLayout $ do
|
||||
setTitle "hledger-web register only"
|
||||
addHamlet $
|
||||
@ -200,7 +200,7 @@ getRegisterOnlyR = do
|
||||
-- of accounts as json if the Accept header specifies json.
|
||||
getAccountsR :: Handler RepHtmlJson
|
||||
getAccountsR = do
|
||||
vd@VD{opts=opts,m=m,am=am,j=j} <- getViewData
|
||||
vd@VD{..} <- getViewData
|
||||
let j' = filterJournalPostings2 m j
|
||||
html = do
|
||||
setTitle "hledger-web accounts"
|
||||
@ -211,7 +211,7 @@ getAccountsR = do
|
||||
-- | A json-only version of "getAccountsR", does not require the special Accept header.
|
||||
getAccountsJsonR :: Handler RepJson
|
||||
getAccountsJsonR = do
|
||||
VD{m=m,j=j} <- getViewData
|
||||
VD{..} <- getViewData
|
||||
let j' = filterJournalPostings2 m j
|
||||
jsonToRepJson $ jsonMap [("accounts", toJSON $ journalAccountNames j')]
|
||||
|
||||
@ -220,11 +220,11 @@ getAccountsJsonR = do
|
||||
|
||||
-- | Render the sidebar used on most views.
|
||||
sidebar :: ViewData -> Hamlet AppRoute
|
||||
sidebar vd@VD{opts=opts,am=am,j=j} = balanceReportAsHtml opts vd $ balanceReport2 opts am j
|
||||
sidebar vd@VD{..} = balanceReportAsHtml opts vd $ balanceReport2 opts am j
|
||||
|
||||
-- | Render a "BalanceReport" as HTML.
|
||||
balanceReportAsHtml :: [Opt] -> ViewData -> BalanceReport -> Hamlet AppRoute
|
||||
balanceReportAsHtml _ vd@VD{qopts=qopts,j=j} (items',total) =
|
||||
balanceReportAsHtml _ vd@VD{..} (items',total) =
|
||||
[$hamlet|
|
||||
<div#accountsheading
|
||||
<a#accounts-toggle-link.togglelink href="#" title="Toggle sidebar">[+]
|
||||
@ -336,7 +336,7 @@ formattedJournalReportAsHtml _ vd (_,items) = [$hamlet|
|
||||
where
|
||||
-- .#{datetransition}
|
||||
itemAsHtml :: ViewData -> (Int, Bool, Bool, Bool, AccountRegisterReportItem) -> Hamlet AppRoute
|
||||
itemAsHtml VD{here=here} (n, _, _, _, (t, _, split, _, amt, _)) = [$hamlet|
|
||||
itemAsHtml VD{..} (n, _, _, _, (t, _, split, _, amt, _)) = [$hamlet|
|
||||
<tr.item.#{evenodd}.#{firstposting}
|
||||
<td.date>#{date}
|
||||
<td.description colspan=2 title="#{show t}">#{elideRight 60 desc}
|
||||
@ -386,7 +386,7 @@ registerItemsHtml _ vd (balancelabel,items) = [$hamlet|
|
||||
-- inacct = inAccount qopts
|
||||
-- filtering = m /= MatchAny
|
||||
itemAsHtml :: ViewData -> (Int, Bool, Bool, Bool, AccountRegisterReportItem) -> Hamlet AppRoute
|
||||
itemAsHtml VD{here=here,p=p} (n, newd, newm, _, (t, _, split, acct, amt, bal)) = [$hamlet|
|
||||
itemAsHtml VD{..} (n, newd, newm, _, (t, _, split, acct, amt, bal)) = [$hamlet|
|
||||
<tr.item.#{evenodd}.#{firstposting}.#{datetransition}
|
||||
<td.date>#{date}
|
||||
<td.description title="#{show t}">#{elideRight 30 desc}
|
||||
@ -492,7 +492,7 @@ handlePost = do
|
||||
-- | Handle a post from the transaction add form.
|
||||
handleAdd :: Handler RepPlain
|
||||
handleAdd = do
|
||||
VD{j=j,today=today} <- getViewData
|
||||
VD{..} <- getViewData
|
||||
-- get form input values. M means a Maybe value.
|
||||
(dateM, descM, acct1M, amt1M, acct2M, amt2M, journalM) <- runFormPost'
|
||||
$ (,,,,,,)
|
||||
@ -549,7 +549,7 @@ handleAdd = do
|
||||
-- | Handle a post from the journal edit form.
|
||||
handleEdit :: Handler RepPlain
|
||||
handleEdit = do
|
||||
VD{j=j} <- getViewData
|
||||
VD{..} <- getViewData
|
||||
-- get form input values, or validation errors.
|
||||
-- getRequest >>= liftIO (reqRequestBody req) >>= mtrace
|
||||
(textM, journalM) <- runFormPost'
|
||||
@ -617,7 +617,7 @@ handleImport = do
|
||||
|
||||
-- | Global toolbar/heading area.
|
||||
topbar :: ViewData -> Hamlet AppRoute
|
||||
topbar VD{j=j,msg=msg} = [$hamlet|
|
||||
topbar VD{..} = [$hamlet|
|
||||
<div#topbar
|
||||
<a.topleftlink href=#{hledgerorgurl} title="More about hledger"
|
||||
hledger-web
|
||||
@ -633,7 +633,7 @@ $maybe m <- msg
|
||||
|
||||
-- | Navigation link, preserving parameters and possibly highlighted.
|
||||
navlink :: ViewData -> String -> AppRoute -> String -> Hamlet AppRoute
|
||||
navlink VD{here=here,q=q} s dest title = [$hamlet|
|
||||
navlink VD{..} s dest title = [$hamlet|
|
||||
<a##{s}link.#{style} href=@?{u} title="#{title}">#{s}
|
||||
|]
|
||||
where u = (dest, if null q then [] else [("q", pack q)])
|
||||
@ -658,7 +658,7 @@ helplink topic label = [$hamlet|
|
||||
|
||||
-- | Search form for entering custom queries to filter journal data.
|
||||
searchform :: ViewData -> Hamlet AppRoute
|
||||
searchform VD{here=here,q=q} = [$hamlet|
|
||||
searchform VD{..} = [$hamlet|
|
||||
<div#searchformdiv
|
||||
<form#searchform.form method=GET
|
||||
<table
|
||||
@ -699,7 +699,7 @@ searchform VD{here=here,q=q} = [$hamlet|
|
||||
|
||||
-- | Add transaction form.
|
||||
addform :: ViewData -> Hamlet AppRoute
|
||||
addform vd@VD{qopts=qopts} = [$hamlet|
|
||||
addform vd@VD{..} = [$hamlet|
|
||||
<script type=text/javascript>
|
||||
$(document).ready(function() {
|
||||
/* dhtmlxcombo setup */
|
||||
@ -749,7 +749,7 @@ addform vd@VD{qopts=qopts} = [$hamlet|
|
||||
<input type=hidden name=action value=add
|
||||
<input type=submit name=submit value="add transaction"
|
||||
$if manyfiles
|
||||
\ to: ^{journalselect $ files $ j vd}
|
||||
\ to: ^{journalselect $ files j}
|
||||
\ or #
|
||||
<a href onclick="return addformToggle(event)">cancel
|
||||
|]
|
||||
@ -758,9 +758,9 @@ addform vd@VD{qopts=qopts} = [$hamlet|
|
||||
datehelp = "eg: 2010/7/20" :: String
|
||||
deschelp = "eg: supermarket (optional)" :: String
|
||||
date = "today" :: String
|
||||
descriptions = sort $ nub $ map tdescription $ jtxns $ j vd
|
||||
manyfiles = (length $ files $ j vd) > 1
|
||||
postingfields VD{j=j} n = [$hamlet|
|
||||
descriptions = sort $ nub $ map tdescription $ jtxns j
|
||||
manyfiles = (length $ files j) > 1
|
||||
postingfields VD{..} n = [$hamlet|
|
||||
<tr#postingrow
|
||||
<td align=right>#{acctlabel}:
|
||||
<td
|
||||
@ -802,7 +802,7 @@ addform vd@VD{qopts=qopts} = [$hamlet|
|
||||
|
||||
-- | Edit journal form.
|
||||
editform :: ViewData -> Hamlet AppRoute
|
||||
editform VD{j=j} = [$hamlet|
|
||||
editform VD{..} = [$hamlet|
|
||||
<form#editform method=POST style=display:none;
|
||||
<table.form
|
||||
$if manyfiles
|
||||
|
Loading…
Reference in New Issue
Block a user