54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Haskell
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Haskell
		
	
	
	
	
	
| -- | /journal handlers.
 | |
| 
 | |
| module Handler.JournalR where
 | |
| 
 | |
| import Import
 | |
| 
 | |
| import Handler.Common
 | |
| import Handler.Post
 | |
| import Handler.Utils
 | |
| 
 | |
| import Hledger.Query
 | |
| import Hledger.Reports
 | |
| import Hledger.Cli.Options
 | |
| import Hledger.Web.Options
 | |
| 
 | |
| -- | The formatted journal view, with sidebar.
 | |
| getJournalR :: Handler RepHtml
 | |
| getJournalR = do
 | |
|   vd@VD{..} <- getViewData
 | |
|   staticRootUrl <- (staticRoot . settings) <$> getYesod
 | |
|   let sidecontent = sidebar vd
 | |
|       -- XXX like registerReportAsHtml
 | |
|       inacct = inAccount qopts
 | |
|       -- injournal = isNothing inacct
 | |
|       filtering = m /= Any
 | |
|       -- showlastcolumn = if injournal && not filtering then False else True
 | |
|       title = case inacct of
 | |
|                 Nothing       -> "Journal"++s2
 | |
|                 Just (a,inclsubs) -> "Transactions in "++a++s1++s2
 | |
|                                       where s1 = if inclsubs then " (and subaccounts)" else ""
 | |
|                 where
 | |
|                   s2 = if filtering then ", filtered" else ""
 | |
|       maincontent = journalTransactionsReportAsHtml opts vd $ journalTransactionsReport (reportopts_ $ cliopts_ opts) j m
 | |
|   defaultLayout $ do
 | |
|       setTitle "hledger-web journal"
 | |
|       toWidget [hamlet|
 | |
| ^{topbar vd}
 | |
| <div#content>
 | |
|  <div#sidebar>
 | |
|   ^{sidecontent}
 | |
|  <div#main.register>
 | |
|   <div#maincontent>
 | |
|    <h2#contenttitle>#{title}
 | |
|    ^{searchform vd}
 | |
|    ^{maincontent}
 | |
|   ^{addform staticRootUrl vd}
 | |
|   ^{editform vd}
 | |
|   ^{importform}
 | |
| |]
 | |
| 
 | |
| postJournalR :: Handler RepHtml
 | |
| postJournalR = handlePost
 | |
| 
 |