[Fencommits] fenserve: twid showItem, merge
Benja Fallenstein
benja.fallenstein at gmail.com
Fri Jun 1 02:51:49 EEST 2007
Fri Jun 1 02:51:41 EEST 2007 Benja Fallenstein <benja.fallenstein at gmail.com>
* twid showItem, merge
diff -rN -u old-fenserve/fendata/Main.hs new-fenserve/fendata/Main.hs
--- old-fenserve/fendata/Main.hs 2007-06-01 02:51:49.000000000 +0300
+++ new-fenserve/fendata/Main.hs 2007-06-01 02:51:49.000000000 +0300
@@ -60,8 +60,7 @@
, formP ""
( "Field: " & textfield "name" ""
, channel ["category", "item"]
- , hidden "returnTo" $ fromMaybe ("item/"++lookE "item")
- (lookIM "returnTo")
+ , hidden "returnTo" $ lookI "returnTo" ("item/"++lookE "item")
, submit "Submit" ) )
addFieldPost = runPost (lookE "returnTo")
@@ -69,22 +68,8 @@
, u_items $ Map.map $ fIf' (`hasCat` (lookE "category")) $
u_fields $ insertIfNew (lookE "name") "" ]
-{-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
- addField' item@(Item fields cats)
- | cat `Set.member` cats
- = Item (Map.union fields (Map.singleton name "")) cats
- | otherwise = item
- Just cat = lookM req "category"
- Just item = lookM req "item"
- Just name = lookM req "field"
- returnTo = fromMaybe ("item/"++item) (lookM req "returnTo")-}
-
-addCategory req s = ("table",
- s { stateSchema = Map.insert (uncapitalize name) ["name"] $ stateSchema s})
- where Just name = lookM req "name"
+addCategory = runPost "table"
+ [ u_schema $ insertIfNew (uncapitalize $ lookE "name") ["name"] ]
subst :: Int -> Exp -> Exp -> Exp
subst i repl e = everywhere (mkT f) e where
@@ -263,12 +248,13 @@
\(_, Item _ cats) -> cat `Set.member` cats
cols = lookRD "cols" (take 1 $ schema Map.! cat)
-showItem :: (?root :: String, ?state :: MyState) =>
+showItem :: (?root :: String, ?state :: MyState, ?req :: Request) =>
String -> Request -> MyState -> (HTML, MyState)
showItem item req s = let Item fields cats = stateItems s Map.! read item in (
- makePage "Item editor" "" $
- formP "" . ((returnTo&buttons&hr)&) . (&hr&buttons) .
- catFor (Set.toList cats) $ \cat -> let cfs = stateSchema s Map.! cat in
+ makePage "Item editor" "" $ formP ""
+ ( channel ["returnTo"]
+ , buttons, hr
+ , catFor (Set.toList cats) $ \cat -> let cfs = stateSchema s Map.! cat in
( h3 (capitalize cat)
, para $ catFor cfs $ \field ->
( capitalize field, ": "
@@ -280,10 +266,9 @@
, P "category" cat
, P "returnTo" $ "item/"++item++escape ("?returnTo="++escape uri)
]
- ("[Add a field to the ", capitalize cat, " category]")),
+ ("[Add a field to the ", capitalize cat, " category]") )
+ , hr, buttons ),
s) where uri = fromMaybe "" $ lookM req "returnTo"
- returnTo = flip (maybe $ HTML "") (lookM req "returnTo") $
- hidden "returnTo"
buttons = para ( button "[Save]", " ", mdot, " "
, link (?root++uri) "[Cancel]" )
@@ -348,7 +333,8 @@
( h2 "Add category"
, formP "" ( "Name: " & textfield "name" ""
, submit "Submit" ) )
- , h ["addCategory"] POST $ seeOther $ \() -> runRedirect addCategory
+ , h ["addCategory"] POST $ addCategory
, h ["addpotion"] POST $ seeOther $ \() -> runRedirect addPotion
, h ["addToSidebar"] POST $ seeOther $ \() -> runRedirect addToSidebar
]
+
More information about the Fencommits
mailing list