hunk ./Data/Nutrition/SR21/CGI.hs 6 -import qualified Data.URLEncoded as U {- urlencoded -} -import qualified Network.CGI as C {- cgi -} -import qualified Network.URI as N {- network -} hunk ./Data/Nutrition/SR21/CGI.hs 7 +import WWW.Minus.CGI hunk ./Data/Nutrition/SR21/CGI.hs 12 --- | Result of @CGI@ operation. -type Result = C.CGI C.CGIResult - --- | Set header to indicate @UTF-8@ encoded output and send. -utf8_output :: String -> Result -utf8_output s = do - C.setHeader "Content-type" "text/html; charset=utf-8" - C.output s - hunk ./Data/Nutrition/SR21/CGI.hs 13 -dispatch_get :: State -> Query -> Result -dispatch_get (oi,db) qr = - let m = lookup "m" qr - ix = maybe 0 read (lookup "ix" qr) - r = maybe False (== "true") (lookup "r" qr) - c = maybe [] (splitOn ",") (lookup "c" qr) +dispatch_get :: State -> Parameters -> Result +dispatch_get (oi,db) (_,_,q) = + let m = lookup "m" q + ix = maybe 0 read (lookup "ix" q) + r = maybe False (== "true") (lookup "r" q) + c = maybe [] (splitOn ",") (lookup "c" q) hunk ./Data/Nutrition/SR21/CGI.hs 23 - Nothing -> utf8_output (mk_tbl_page (oi,db') (ix,r)) - Just m' -> utf8_output (mk_ent_page (oi,db') (m',c)) + Nothing -> utf8_html_output (mk_tbl_page (oi,db') (ix,r)) + Just m' -> utf8_html_output (mk_ent_page (oi,db') (m',c)) hunk ./Data/Nutrition/SR21/CGI.hs 27 -dispatch :: State -> String -> Query -> Result -dispatch st m qr = +dispatch :: State -> Parameters -> Result +dispatch st p@(m,_,_) = hunk ./Data/Nutrition/SR21/CGI.hs 30 - "GET" -> dispatch_get st qr + "GET" -> dispatch_get st p hunk ./Data/Nutrition/SR21/CGI.hs 33 --- | Delete @?@ prefix (if present) from 'String'. -del_qm :: String -> String -del_qm s = - case s of - '?':s' -> s' - _ -> s - --- | Run @CGI@ operation with given 'State'. -cgi_main :: State -> Result -cgi_main st = do - method <- C.requestMethod - u <- C.queryURI - q <- U.importString (del_qm (N.uriQuery u)) - dispatch st method (U.pairs q) - hunk ./Data/Nutrition/SR21/CGI.hs 45 - C.runCGI (C.handleErrors (cgi_main st)) + run_cgi st dispatch hunk ./Data/Nutrition/SR21/HTML.hs 10 -import qualified Text.HTML.Light.Common as H +import qualified Text.HTML.Light.Composite as H hunk ./hnutr.cabal 35 + www-minus, hunk ./hnutr.cabal 51 - hnutr,html-minimalist, + hnutr, + html-minimalist, hunk ./hnutr.cabal 58 + www-minus,