[Fencommits] fenserve: add returnTo to addField
Benja Fallenstein
benja.fallenstein at gmail.com
Wed May 23 17:14:22 EEST 2007
Wed May 23 17:14:13 EEST 2007 Benja Fallenstein <benja.fallenstein at gmail.com>
* add returnTo to addField
diff -rN -u old-fenserve/fendata/Main.hs new-fenserve/fendata/Main.hs
--- old-fenserve/fendata/Main.hs 2007-05-23 17:14:22.000000000 +0300
+++ new-fenserve/fendata/Main.hs 2007-05-23 17:14:22.000000000 +0300
@@ -261,7 +261,7 @@
ty <- lookM m "type"
return (read exp, read old, read ty)
-addField req state = ("item/"++item,state') where
+addField req state = (returnTo,state') where
state' = state { stateSchema = Map.insert cat (fs ++ [name]) (stateSchema state),
stateItems = Map.map addField' (stateItems state) }
fs = stateSchema state Map.! cat
@@ -272,6 +272,7 @@
Just cat = lookM req "category"
Just item = lookM req "item"
Just name = lookM req "field"
+ returnTo = fromMaybe ("item/"++item) (lookM req "returnTo")
addCategory (c:cs) s = ("table",
s { stateSchema = Map.insert (toLower c : cs) [] $ stateSchema s})
@@ -427,12 +428,14 @@
(("<form method=post>"++returnTo)++) . (++"<p><input type=submit></form>") .
concatFor (Set.toList cats) $ \cat -> let cfs = stateSchema s Map.! cat in
(("<p>"++cat++":<br>")++)
- . (++ "<a href='/addField?item="++item++"&category="++cat
- ++ "'>[add field to "++cat++"]</a><br>")
+ . (++ "<p><a href='../addField?item="++item++"&category="++cat
+ ++ "&returnTo=item/"++item++quote (escape ("?returnTo="++escape uri))
+ ++ "'>[Add field to category "++capitalize cat++"]</a><br>")
. concatFor cfs $ \field ->
field ++ ": <input name='" ++ quote field ++ "' "
++ "value='" ++ quote (fields Map.! field) ++ "'><br>",
- s) where returnTo = flip (maybe "") (lookM req "returnTo") $ \uri ->
+ s) where uri = fromMaybe "" (lookM req "returnTo")
+ returnTo = flip (maybe "") (lookM req "returnTo") $ \uri ->
"<input type=hidden name=returnTo value='"++quote(escape uri)++"'>"
@@ -479,11 +482,13 @@
, h ["addField"] GET $ ok $ \() req ->
let Just cat = lookM req "category"
Just item = lookM req "item"
+ returnTo = fromMaybe ("item/"++item) (lookM req "returnTo")
in respond $
"<h2>Add field to category "++cat++"</h2>\
\<form method=post>Field: <input name=field>\
\<input type=hidden name=category value='"++cat++"'>\
\<input type=hidden name=item value='"++item++"'>\
+ \<input type=hidden name=returnTo value='"++quote returnTo++"'>\
\<input type=submit value='Submit'></form>"
, h ["addField"] POST $ seeOther $ \() -> runRedirect addField
, h ["addCategory"] GET $ ok $ \() () -> respond $
More information about the Fencommits
mailing list