From 4faf0d8b4a7115b5c88fc2c493655b3843ce14f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Z=C3=A1rybnick=C3=BD?= Date: Sat, 9 Jun 2018 15:31:41 +0200 Subject: [PATCH] web: Resurrect ImportForm and EditForm --- hledger-web/Application.hs | 23 ++++---- hledger-web/Handler/Common.hs | 46 --------------- hledger-web/Handler/EditForm.hs | 75 ------------------------ hledger-web/Handler/EditR.hs | 46 +++++++++++++++ hledger-web/Handler/ImportForm.hs | 18 ------ hledger-web/Handler/ImportR.hs | 29 +++++++++ hledger-web/Import.hs | 1 + hledger-web/config/routes | 2 + hledger-web/hledger-web.cabal | 2 + hledger-web/package.yaml | 4 +- hledger-web/templates/edit-form.hamlet | 24 ++++++++ hledger-web/templates/import-form.hamlet | 9 +++ 12 files changed, 127 insertions(+), 152 deletions(-) delete mode 100644 hledger-web/Handler/EditForm.hs create mode 100644 hledger-web/Handler/EditR.hs delete mode 100644 hledger-web/Handler/ImportForm.hs create mode 100644 hledger-web/Handler/ImportR.hs create mode 100644 hledger-web/templates/edit-form.hamlet create mode 100644 hledger-web/templates/import-form.hamlet diff --git a/hledger-web/Application.hs b/hledger-web/Application.hs index ca87b20b3..f8809a2e6 100644 --- a/hledger-web/Application.hs +++ b/hledger-web/Application.hs @@ -17,9 +17,9 @@ import Yesod.Default.Config import Yesod.Default.Main (defaultDevelApp) import Yesod.Default.Handlers (getFaviconR, getRobotsR) --- Import all relevant handler modules here. --- Don't forget to add new modules to your cabal file! import Handler.AddR (postAddR) +import Handler.EditR (postEditR) +import Handler.ImportR (postImportR) import Handler.JournalR (getJournalR) import Handler.RegisterR (getRegisterR) import Handler.RootR (getRootR) @@ -41,30 +41,29 @@ mkYesodDispatch "App" resourcesApp -- place to put your migrate statements to have automatic database -- migrations handled by Yesod. makeApplication :: WebOpts -> Journal -> AppConfig DefaultEnv Extra -> IO Application -makeApplication opts j conf = do - foundation <- makeFoundation conf opts - writeIORef (appJournal foundation) j - app <- toWaiAppPlain foundation - return $ logWare app +makeApplication opts' j' conf' = do + foundation <- makeFoundation conf' opts' + writeIORef (appJournal foundation) j' + logWare <$> toWaiAppPlain foundation where logWare | development = logStdoutDev - | serve_ opts = logStdout + | serve_ opts' = logStdout | otherwise = id makeFoundation :: AppConfig DefaultEnv Extra -> WebOpts -> IO App -makeFoundation conf opts = do +makeFoundation conf opts' = do manager <- newManager defaultManagerSettings s <- staticSite jref <- newIORef nulljournal - return $ App conf s manager opts jref + return $ App conf s manager opts' jref -- for yesod devel -- uses the journal specified by the LEDGER_FILE env var, or ~/.hledger.journal getApplicationDev :: IO (Int, Application) getApplicationDev = do f <- head `fmap` journalFilePathFromOpts defcliopts -- XXX head should be safe for now - j <- either error' id `fmap` readJournalFile def f - defaultDevelApp loader (makeApplication defwebopts j) + j' <- either error' id <$> readJournalFile def f + defaultDevelApp loader (makeApplication defwebopts j') where loader = Yesod.Default.Config.loadConfig (configSettings Development) { csParseExtra = parseExtra diff --git a/hledger-web/Handler/Common.hs b/hledger-web/Handler/Common.hs index fad5fe281..5543866ad 100644 --- a/hledger-web/Handler/Common.hs +++ b/hledger-web/Handler/Common.hs @@ -114,52 +114,6 @@ searchform VD{q, here} = [hamlet|