diff --git a/hledger-web/Hledger/Web/Handler/AddR.hs b/hledger-web/Hledger/Web/Handler/AddR.hs index 20308be72..9ec4a8d81 100644 --- a/hledger-web/Hledger/Web/Handler/AddR.hs +++ b/hledger-web/Hledger/Web/Handler/AddR.hs @@ -35,12 +35,11 @@ postAddR = do ((res, view), enctype) <- runFormPost $ addForm j today case res of - FormSuccess res' -> do - let t = txnTieKnot res' - -- XXX(?) move into balanceTransaction - liftIO $ ensureJournalFileExists (journalFilePath j) - -- XXX why not journalAddTransaction ? - liftIO $ appendToJournalFileOrStdout (journalFilePath j) (showTransaction t) + FormSuccess (t,f) -> do + let t' = txnTieKnot t + liftIO $ do + ensureJournalFileExists f + appendToJournalFileOrStdout f (showTransaction t') setMessage "Transaction added." redirect JournalR FormMissing -> showForm view enctype diff --git a/hledger-web/Hledger/Web/Widget/AddForm.hs b/hledger-web/Hledger/Web/Widget/AddForm.hs index cc17616fd..20ddb9a0c 100644 --- a/hledger-web/Hledger/Web/Widget/AddForm.hs +++ b/hledger-web/Hledger/Web/Widget/AddForm.hs @@ -25,19 +25,13 @@ import Text.Megaparsec (bundleErrors, eof, parseErrorTextPretty, runParser) import Yesod import Hledger -import Hledger.Web.Foundation -- (App, Form, Handler, Widget) +import Hledger.Web.Foundation (App, Handler, Widget) import Hledger.Web.Settings (widgetFile) +import Data.Function ((&)) --- addModal :: --- ( MonadWidget m --- , r ~ Route (HandlerSite m) --- , m ~ WidgetFor (HandlerSite m) --- , RenderMessage (HandlerSite m) FormMessage --- ) --- => r -> Journal -> Day -> m () addModal :: Route App -> Journal -> Day -> Widget addModal addR j today = do - (addView, addEnctype) <- generateFormPost (addForm j today) + (addView, addEnctype) <- handlerToWidget $ generateFormPost (addForm j today) [whamlet|