diff options
author | Clint Adams <clint@softwarefreedom.org> | 2013-04-19 17:57:46 -0400 |
---|---|---|
committer | Clint Adams <clint@softwarefreedom.org> | 2013-04-19 17:57:46 -0400 |
commit | 514ff2acff2ba9ad9f809e22fc8ed5a986410e5d (patch) | |
tree | be57afe59d966d65910b4f9336a0370f9ca18b26 /Handler |
Initial stab.
Diffstat (limited to 'Handler')
-rw-r--r-- | Handler/Home.hs | 29 | ||||
-rw-r--r-- | Handler/Register.hs | 40 |
2 files changed, 69 insertions, 0 deletions
diff --git a/Handler/Home.hs b/Handler/Home.hs new file mode 100644 index 0000000..94b206e --- /dev/null +++ b/Handler/Home.hs @@ -0,0 +1,29 @@ +-- sflc-ledger-reports: web interface to hledger-based reports +-- Copyright (C) 2013 Clint Adams +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU Affero General Public License as +-- published by the Free Software Foundation, either version 3 of the +-- License, or (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Affero General Public License for more details. +-- +-- You should have received a copy of the GNU Affero General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. + +{-# LANGUAGE OverloadedStrings #-} +module Handler.Home where + +import Import +import Data.Map (keys) + +getHomeR :: Handler RepHtml +getHomeR = do + ledgernames <- fmap (keys . hledgerConfig) getYesod + defaultLayout $ do + setTitle "Ledger reports" + $(widgetFile "homepage") + diff --git a/Handler/Register.hs b/Handler/Register.hs new file mode 100644 index 0000000..26e38a2 --- /dev/null +++ b/Handler/Register.hs @@ -0,0 +1,40 @@ +-- sflc-ledger-reports: web interface to hledger-based reports +-- Copyright (C) 2013 Clint Adams +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU Affero General Public License as +-- published by the Free Software Foundation, either version 3 of the +-- License, or (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Affero General Public License for more details. +-- +-- You should have received a copy of the GNU Affero General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. + +{-# LANGUAGE OverloadedStrings #-} +module Handler.Register where + +import Import +import qualified Data.Text as T +import Hledger.RegisterCSV +import qualified Data.Map as Map + +typeCsv :: ContentType +typeCsv = "text/csv; charset=utf-8" + +newtype RepCsv = RepCsv Content +instance HasReps RepCsv where + chooseRep (RepCsv c) _ = return (typeCsv, c) + +getRegisterR :: Text -> Handler RepCsv +getRegisterR ledger = do + ledgers <- fmap hledgerConfig getYesod + case Map.lookup ledger ledgers of + Nothing -> notFound + Just fn -> do + csv <- liftIO $ convertJournalToRegisterCSV fn + setHeader "Content-Disposition" (T.concat ["attachment; filename=", ledger, ".csv"]) + return $ RepCsv $ toContent csv |