;web: transaction fragments: use numeric identifiers for journal files
This saves us from any escaping issues.
This commit is contained in:
		
							parent
							
								
									e9792bfd42
								
							
						
					
					
						commit
						c35d0a8b44
					
				@ -13,7 +13,7 @@ import Hledger.Web.Import
 | 
				
			|||||||
import Hledger.Web.WebOptions
 | 
					import Hledger.Web.WebOptions
 | 
				
			||||||
import Hledger.Web.Widget.AddForm (addModal)
 | 
					import Hledger.Web.Widget.AddForm (addModal)
 | 
				
			||||||
import Hledger.Web.Widget.Common
 | 
					import Hledger.Web.Widget.Common
 | 
				
			||||||
            (accountQuery, mixedAmountAsHtml, transactionFrag)
 | 
					            (accountQuery, mixedAmountAsHtml, transactionFragment)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- | The formatted journal view, with sidebar.
 | 
					-- | The formatted journal view, with sidebar.
 | 
				
			||||||
getJournalR :: Handler Html
 | 
					getJournalR :: Handler Html
 | 
				
			||||||
@ -27,6 +27,7 @@ getJournalR = do
 | 
				
			|||||||
      title' = title <> if m /= Any then ", filtered" else ""
 | 
					      title' = title <> if m /= Any then ", filtered" else ""
 | 
				
			||||||
      acctlink a = (RegisterR, [("q", accountQuery a)])
 | 
					      acctlink a = (RegisterR, [("q", accountQuery a)])
 | 
				
			||||||
      (_, items) = transactionsReport (reportopts_ $ cliopts_ opts) j m
 | 
					      (_, items) = transactionsReport (reportopts_ $ cliopts_ opts) j m
 | 
				
			||||||
 | 
					      transactionFrag = transactionFragment j
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  defaultLayout $ do
 | 
					  defaultLayout $ do
 | 
				
			||||||
    setTitle "journal - hledger-web"
 | 
					    setTitle "journal - hledger-web"
 | 
				
			||||||
 | 
				
			|||||||
@ -18,7 +18,7 @@ import Hledger.Web.Import
 | 
				
			|||||||
import Hledger.Web.WebOptions
 | 
					import Hledger.Web.WebOptions
 | 
				
			||||||
import Hledger.Web.Widget.AddForm (addModal)
 | 
					import Hledger.Web.Widget.AddForm (addModal)
 | 
				
			||||||
import Hledger.Web.Widget.Common
 | 
					import Hledger.Web.Widget.Common
 | 
				
			||||||
             (accountQuery, mixedAmountAsHtml, transactionFrag)
 | 
					             (accountQuery, mixedAmountAsHtml, transactionFragment)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- | The main journal/account register view, with accounts sidebar.
 | 
					-- | The main journal/account register view, with accounts sidebar.
 | 
				
			||||||
getRegisterR :: Handler Html
 | 
					getRegisterR :: Handler Html
 | 
				
			||||||
@ -45,6 +45,7 @@ getRegisterR = do
 | 
				
			|||||||
          tail $ (", "<$xs) ++ [""]
 | 
					          tail $ (", "<$xs) ++ [""]
 | 
				
			||||||
      r@(balancelabel,items) = accountTransactionsReport ropts j m acctQuery
 | 
					      r@(balancelabel,items) = accountTransactionsReport ropts j m acctQuery
 | 
				
			||||||
      balancelabel' = if isJust (inAccount qopts) then balancelabel else "Total"
 | 
					      balancelabel' = if isJust (inAccount qopts) then balancelabel else "Total"
 | 
				
			||||||
 | 
					      transactionFrag = transactionFragment j
 | 
				
			||||||
  defaultLayout $ do
 | 
					  defaultLayout $ do
 | 
				
			||||||
    setTitle "register - hledger-web"
 | 
					    setTitle "register - hledger-web"
 | 
				
			||||||
    $(widgetFile "register")
 | 
					    $(widgetFile "register")
 | 
				
			||||||
 | 
				
			|||||||
@ -14,7 +14,7 @@ module Hledger.Web.Widget.Common
 | 
				
			|||||||
  , fromFormSuccess
 | 
					  , fromFormSuccess
 | 
				
			||||||
  , writeJournalTextIfValidAndChanged
 | 
					  , writeJournalTextIfValidAndChanged
 | 
				
			||||||
  , journalFile404
 | 
					  , journalFile404
 | 
				
			||||||
  , transactionFrag
 | 
					  , transactionFragment
 | 
				
			||||||
  ) where
 | 
					  ) where
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import Data.Default (def)
 | 
					import Data.Default (def)
 | 
				
			||||||
@ -24,6 +24,7 @@ import Data.Semigroup ((<>))
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
import Data.Text (Text)
 | 
					import Data.Text (Text)
 | 
				
			||||||
import qualified Data.Text as T
 | 
					import qualified Data.Text as T
 | 
				
			||||||
 | 
					import qualified Data.HashMap.Strict as HashMap
 | 
				
			||||||
import System.FilePath (takeFileName)
 | 
					import System.FilePath (takeFileName)
 | 
				
			||||||
import Text.Blaze ((!), textValue)
 | 
					import Text.Blaze ((!), textValue)
 | 
				
			||||||
import qualified Text.Blaze.Html5 as H
 | 
					import qualified Text.Blaze.Html5 as H
 | 
				
			||||||
@ -106,6 +107,9 @@ mixedAmountAsHtml b _ =
 | 
				
			|||||||
      Just True -> "negative amount"
 | 
					      Just True -> "negative amount"
 | 
				
			||||||
      _ -> "positive amount"
 | 
					      _ -> "positive amount"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
transactionFrag :: Transaction -> String
 | 
					transactionFragment :: Journal -> Transaction -> String
 | 
				
			||||||
transactionFrag t =
 | 
					transactionFragment j =
 | 
				
			||||||
    printf "transaction-%s-%d" (sourceFilePath $ tsourcepos t) (tindex t)
 | 
					    let hm = HashMap.fromList $ zip (map fst $ jfiles j) [(1::Integer) ..]
 | 
				
			||||||
 | 
					    in  \t ->
 | 
				
			||||||
 | 
					            printf "transaction-%d-%d"
 | 
				
			||||||
 | 
					                (hm HashMap.! sourceFilePath (tsourcepos t)) (tindex t)
 | 
				
			||||||
 | 
				
			|||||||
@ -185,6 +185,7 @@ library
 | 
				
			|||||||
    , time >=1.5
 | 
					    , time >=1.5
 | 
				
			||||||
    , transformers
 | 
					    , transformers
 | 
				
			||||||
    , unix-compat
 | 
					    , unix-compat
 | 
				
			||||||
 | 
					    , unordered-containers
 | 
				
			||||||
    , utf8-string
 | 
					    , utf8-string
 | 
				
			||||||
    , wai
 | 
					    , wai
 | 
				
			||||||
    , wai-cors
 | 
					    , wai-cors
 | 
				
			||||||
 | 
				
			|||||||
@ -130,6 +130,7 @@ library:
 | 
				
			|||||||
  - time >=1.5
 | 
					  - time >=1.5
 | 
				
			||||||
  - transformers
 | 
					  - transformers
 | 
				
			||||||
  - unix-compat
 | 
					  - unix-compat
 | 
				
			||||||
 | 
					  - unordered-containers
 | 
				
			||||||
  - utf8-string
 | 
					  - utf8-string
 | 
				
			||||||
  - wai
 | 
					  - wai
 | 
				
			||||||
  - wai-extra
 | 
					  - wai-extra
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user