[Fencommits] fenserve: turn /table into a (at this point very primitive) table view

Benja Fallenstein benja.fallenstein at gmail.com
Wed May 30 19:22:23 EEST 2007


Wed May 30 19:22:13 EEST 2007  Benja Fallenstein <benja.fallenstein at gmail.com>
  * turn /table into a (at this point very primitive) table view
diff -rN -u old-fenserve/fendata/Main.hs new-fenserve/fendata/Main.hs
--- old-fenserve/fendata/Main.hs	2007-05-30 19:22:22.000000000 +0300
+++ new-fenserve/fendata/Main.hs	2007-05-30 19:22:22.000000000 +0300
@@ -215,19 +215,14 @@
 showTable req s = (
     makePage s ("List of "++plural cat++" in the database") "" $
     (new+++) . (hr+++) . (+++new) .
-    catFor (Map.toList $ stateItems s) $ \(id, Item fields cats) ->
-      if cat `Set.member` cats then
-        (+++ para (formP (?root++"delItem") (hidden "item" (show id) 
-         +++ mdotted
-               [ link (?root++"item/"++show id++"?returnTo=table") 
-                      "[Edit item]"
-               , button "[Delete item]"
-               , ital $ "Categorized as " 
-                    +++ commaList (map (bold.capitalize) (Set.toList cats))]))
-         +++ hr)
-        . para
-        . catFor (Map.toList fields) $ \(f,v) ->
-            bold (capitalize f) +++ ": " +++ v +++ br else toHTML "",
+    tag "table" [("border","1")] $
+    (tag "tr" [] $ catFor cols $ \col -> tag "th" [] $ capitalize col) +++
+    (catFor (Map.toList $ stateItems s) $ \(id, Item fields cats) ->
+      if cat `Set.member` cats then tag "tr" [] $
+        catFor cols $ \col -> tag "td" [] $ 
+            link (?root++"item/"++show id++"?returnTo=table") $ 
+                fields Map.! col
+      else toHTML ""),
     s) where new = para . formP (?root++"newItem") 
                    . (+++ hidden "returnTo" "table")
                    . (+++ " " +++ mdot +++ " "
@@ -235,6 +230,8 @@
                    . mdotted . for (Map.keys $ stateSchema s) $ \cat ->
                        button' "cat" cat $ bold ("[New "+++cat+++"]")
              cat = fromMaybe (head $ Map.keys $ stateSchema s) (lookM req "cat")
+             cols = flip fromMaybe (fmap read $ lookM req "cols") $
+                        take 1 $ stateSchema s Map.! cat
                  
 showItem :: (?root :: String) => 
             String -> Request -> MyState -> (HTML, MyState)




More information about the Fencommits mailing list