32 lines
1.1 KiB
Haskell
32 lines
1.1 KiB
Haskell
-- | /journal handlers.
|
|
|
|
{-# LANGUAGE NamedFieldPuns #-}
|
|
{-# LANGUAGE OverloadedStrings #-}
|
|
{-# LANGUAGE QuasiQuotes #-}
|
|
{-# LANGUAGE TemplateHaskell #-}
|
|
|
|
module Hledger.Web.Handler.JournalR where
|
|
|
|
import Hledger
|
|
import Hledger.Cli.CliOptions
|
|
import Hledger.Web.Import
|
|
import Hledger.Web.WebOptions
|
|
import Hledger.Web.Widget.AddForm (addModal)
|
|
import Hledger.Web.Widget.Common (accountQuery, mixedAmountAsHtml)
|
|
|
|
-- | The formatted journal view, with sidebar.
|
|
getJournalR :: Handler Html
|
|
getJournalR = do
|
|
VD{caps, j, m, opts, qopts, today} <- getViewData
|
|
when (CapView `notElem` caps) (permissionDenied "Missing the 'view' capability")
|
|
let title = case inAccount qopts of
|
|
Nothing -> "General Journal"
|
|
Just (a, inclsubs) -> "Transactions in " <> a <> if inclsubs then "" else " (excluding subaccounts)"
|
|
title' = title <> if m /= Any then ", filtered" else ""
|
|
acctlink a = (RegisterR, [("q", accountQuery a)])
|
|
(_, items) = journalTransactionsReport (reportopts_ $ cliopts_ opts) j m
|
|
|
|
defaultLayout $ do
|
|
setTitle "journal - hledger-web"
|
|
$(widgetFile "journal")
|