From 4acc2c55ea65a52da3fc51fa3b5e5d12de9d24b0 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sat, 12 Dec 2009 22:08:28 +0000 Subject: [PATCH] web: first cut at preserving encoding during add, assumes utf-8 (#15) --- Commands/Web.hs | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/Commands/Web.hs b/Commands/Web.hs index be9759fb9..effb3e9ef 100644 --- a/Commands/Web.hs +++ b/Commands/Web.hs @@ -6,6 +6,7 @@ A web-based UI. module Commands.Web where +import Codec.Binary.UTF8.String (decodeString) import Control.Applicative.Error (Failing(Success,Failure)) import Control.Concurrent import Control.Monad.Reader (ask) @@ -243,8 +244,8 @@ searchform env = do addform :: Hack.Env -> HSP XML addform env = do let inputs = Hack.Contrib.Request.inputs env - date = fromMaybe "" $ lookup "date" inputs - desc = fromMaybe "" $ lookup "desc" inputs + date = decodeString $ fromMaybe "" $ lookup "date" inputs + desc = decodeString $ fromMaybe "" $ lookup "desc" inputs
@@ -267,8 +268,8 @@ addform env = do transactionfields :: Int -> Hack.Env -> HSP XML transactionfields n env = do let inputs = Hack.Contrib.Request.inputs env - acct = fromMaybe "" $ lookup acctvar inputs - amt = fromMaybe "" $ lookup amtvar inputs + acct = decodeString $ fromMaybe "" $ lookup acctvar inputs + amt = decodeString $ fromMaybe "" $ lookup amtvar inputs [NBSP][NBSP] @@ -291,12 +292,12 @@ handleAddform l = do validate :: Hack.Env -> Day -> Failing Transaction validate env today = let inputs = Hack.Contrib.Request.inputs env - date = fromMaybe "" $ lookup "date" inputs - desc = fromMaybe "" $ lookup "desc" inputs - acct1 = fromMaybe "" $ lookup "acct1" inputs - amt1 = fromMaybe "" $ lookup "amt1" inputs - acct2 = fromMaybe "" $ lookup "acct2" inputs - amt2 = fromMaybe "" $ lookup "amt2" inputs + date = decodeString $ fromMaybe "" $ lookup "date" inputs + desc = decodeString $ fromMaybe "" $ lookup "desc" inputs + acct1 = decodeString $ fromMaybe "" $ lookup "acct1" inputs + amt1 = decodeString $ fromMaybe "" $ lookup "amt1" inputs + acct2 = decodeString $ fromMaybe "" $ lookup "acct2" inputs + amt2 = decodeString $ fromMaybe "" $ lookup "amt2" inputs validateDate "" = ["missing date"] validateDate _ = [] validateDesc "" = ["missing description"]