diff --git a/Hledger/Cli/Commands/Web.hs b/Hledger/Cli/Commands/Web.hs index 90d573c6d..f49726f26 100644 --- a/Hledger/Cli/Commands/Web.hs +++ b/Hledger/Cli/Commands/Web.hs @@ -244,7 +244,7 @@ getAccountsPage = do balanceReportAsHtml :: [Opt] -> TemplateData -> BalanceReport -> Hamlet HledgerWebAppRoute balanceReportAsHtml _ td@TD{here=here,a=a,p=p} (items,total) = [$hamlet| %table.balancereport - ^allaccts^ + ^accountsheading^ $forall items i ^itemAsHtml' i^ %tr.totalrule @@ -254,39 +254,33 @@ balanceReportAsHtml _ td@TD{here=here,a=a,p=p} (items,total) = [$hamlet| %td!align=right $mixedAmountAsHtml.total$ |] where - filtering = not $ null a && null p - showmore = if filtering then [$hamlet| -^showmore'^ -\ | $ -%a!href=@here@ show all -|] else nulltemplate - showmore' = case (filtering, items) of - -- cunning parent account logic - (True, ((acct, _, _, _):_)) -> - let a' = if isAccountRegex a then a else acct - a'' = accountNameToAccountRegex $ parentAccountName $ accountRegexToAccountName a' - parenturl = (here, [("a",a''), ("p",p)]) - in [$hamlet| - \ | $ - %a!href=@?parenturl@ show more ↑ - |] - _ -> nulltemplate - allacctslink = True - allaccts = if allacctslink - then -- [$hamlet|%tr.$current$ - -- %td - -- %a!href=@?u@ all accounts - -- %td - [$hamlet| -accounts -\ $ -%span#showmoreaccounts ^showmore^ -
-
-|] - else nulltemplate - -- where u = (here, [("a",".*"),("p",p)]) - -- current = "" -- if a == ".*" then "current" else "" + accountsheading = [$hamlet| + accounts + \ $ + %span#showmoreaccounts ^showmore^ ^showall^ +
+
+ |] + where + filteringaccts = not $ null a + showmore = case (filteringaccts, items) of + -- cunning parent account logic + (True, ((acct, _, _, _):_)) -> + let a' = if isAccountRegex a then a else acct + a'' = accountNameToAccountRegex $ parentAccountName $ accountRegexToAccountName a' + parenturl = (here, [("a",a''), ("p",p)]) + in [$hamlet| + \ | $ + %a!href=@?parenturl@ show more ↑ + |] + _ -> nulltemplate + showall = if filteringaccts + then [$hamlet| + \ | $ + %a!href=@?allurl@ show all + |] + else nulltemplate + where allurl = (here, [("p",p)]) itemAsHtml' = itemAsHtml td itemAsHtml :: TemplateData -> BalanceReportItem -> Hamlet HledgerWebAppRoute itemAsHtml TD{p=p} (acct, adisplay, adepth, abal) = [$hamlet| @@ -297,7 +291,7 @@ accounts %td.balance!align=right $mixedAmountAsHtml.abal$ |] where current = "" -- if not (null a) && containsRegex a acct then "current" else "" - indent = preEscapedString $ concat $ replicate (2 * (adepth + if allacctslink then 1 else 0)) " " + indent = preEscapedString $ concat $ replicate (2 * adepth) " " aurl = printf ".?a=%s%s" (accountNameToAccountRegex acct) p' :: String p' = if null p then "" else printf "&p=%s" p @@ -806,7 +800,7 @@ navbar TD{p=p,j=j,today=today} = [$hamlet| journaltitle = printf "%s" (takeFileName $ filepath j) :: String journalinfo = printf "%s" (showspan span) :: String showspan (DateSpan Nothing Nothing) = "" - showspan s = " (showing " ++ dateSpanAsText s ++ ")" + showspan s = " (" ++ dateSpanAsText s ++ ")" span = either (const $ DateSpan Nothing Nothing) snd (parsePeriodExpr today p) navlinks :: TemplateData -> Hamlet HledgerWebAppRoute @@ -817,11 +811,11 @@ navlinks td = [$hamlet| ^accountsregisterlink^ \ | $ %a#addformlink!href!onclick="return addformToggle()" add transaction + %a#importformlink!href!onclick="return importformToggle()"!style=display:none; import transactions \ | $ %a#editformlink!href!onclick="return editformToggle()" edit journal |] - -- \ | $ - -- %a#importformlink!href!onclick="return importformToggle()" import transactions +-- \ | $ where accountsjournallink = navlink td "journal" AccountsJournalPage accountsregisterlink = navlink td "register" AccountsRegisterPage @@ -837,28 +831,40 @@ filterform :: TemplateData -> Hamlet HledgerWebAppRoute filterform TD{here=here,a=a,p=p} = [$hamlet| #filterformdiv %form#filterform.form!method=GET!style=display:$visible$; - %span.$filtering$ - filter by account/description: - \ $ - %input!name=a!size=50!value=$a$ - ^ahelp^ - \ $ - in period: - \ $ - %input!name=p!size=25!value=$p$ - ^phelp^ - \ $ - %input!type=submit!value=filter $ - \ $ - ^stopfiltering^ + %table.form + %tr.$filteringperiodclass$ + %td + filter by period: + \ $ + %td + %input!name=p!size=60!value=$p$ + ^phelp^ + \ $ + %td!align=right + ^stopfilteringperiod^ + %tr.$filteringclass$ + %td + filter by account/description: + \ $ + %td + %input!name=a!size=60!value=$a$ + ^ahelp^ + \ $ + %input!type=submit!value=filter $ + \ $ + %td!align=right + ^stopfiltering^ |] where ahelp = helplink "filter-patterns" "?" phelp = helplink "period-expressions" "?" - (filtering, visible, _, stopfiltering) - | null a && null p = ("", defaultdisplay, [$hamlet|%a#filterformlink!href!onclick="return filterformToggle()" filter...|], nulltemplate) -- [$hamlet|filter by $|]) - | otherwise = ("filtering", defaultdisplay, [$hamlet|filtering...|], [$hamlet|%a#stopfilterlink!href=@here@ stop filtering|]) - defaultdisplay = "block" + filtering = not $ null a + filteringperiod = not $ null p + visible = "block" + filteringclass = if filtering then "filtering" else "" + filteringperiodclass = if filteringperiod then "filtering" else "" + stopfiltering = if filtering then [$hamlet|%a#stopfilterlink!href=@here@ stop filtering acct/desc|] else nulltemplate + stopfilteringperiod = if filteringperiod then [$hamlet|%a#stopfilterlink!href=@here@ stop filtering period|] else nulltemplate helplink :: String -> String -> Hamlet HledgerWebAppRoute helplink topic label = [$hamlet|%a!href=$u$!target=hledgerhelp $label$|] diff --git a/data/web/style.css b/data/web/style.css index 58606e677..70f735aff 100644 --- a/data/web/style.css +++ b/data/web/style.css @@ -80,3 +80,4 @@ table.registerreport { border-spacing:0; } #addform #addbuttonrow { text-align:right; } /* #editform { width:95%; } */ #editform textarea { width:100%; background-color:#eee; padding:4px; } +#filterform table { border-spacing:0; padding-left:1em; }