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")
 |