[Fencommits] fenserve: put 'expand definition' link in sidebar and call it 'edit page; ' other appearance twids
Benja Fallenstein
benja.fallenstein at gmail.com
Thu May 24 21:32:01 EEST 2007
Thu May 24 21:31:48 EEST 2007 Benja Fallenstein <benja.fallenstein at gmail.com>
* put 'expand definition' link in sidebar and call it 'edit page;' other appearance twids
diff -rN -u old-fenserve-1/fendata/Main.hs new-fenserve-1/fendata/Main.hs
--- old-fenserve-1/fendata/Main.hs 2007-05-24 21:32:01.000000000 +0300
+++ new-fenserve-1/fendata/Main.hs 2007-05-24 21:32:01.000000000 +0300
@@ -7,7 +7,7 @@
import Data.Generics (Typeable, Data, everywhere, mkT)
import Data.Binary hiding (get,put)
import Data.List (intersperse)
-import Data.Maybe (fromJust, fromMaybe)
+import Data.Maybe (fromJust, fromMaybe, isJust)
import Data.Map (Map)
import qualified Data.Map as Map
import Data.Set (Set)
@@ -313,25 +313,26 @@
Right (s, state') -> do put state'; respond (s, html $ link s "link")
Left e -> respond $ ("", "Internal server error: " ++ show e)
-potionGet exp args name s = (let ?state=s; ?link=True; ?name=name in
- makePage title $
- renderExp exp id string +++ " " +++ lnk +++ hr
- +++ if (isComplete exp)
- then (HTML $ head $ evalStateT (runExp env exp) s)
- else toHTML "(Incomplete expression.)"
- , s) where
+potionGet exp args name s =
+ ( if expandable then makePage rendered expandLink body else
+ makePage "Custom page" "" $
+ tag "div" [("style", "border: 1px solid black; \
+ \margin-bottom: 1em; padding: 1em; padding-bottom: 0")]
+ (rendered +++ saveLinks) +++ body
+ , s) where
+ body = if (isComplete exp)
+ then (HTML $ head $ evalStateT (runExp env exp) s)
+ else toHTML "(Incomplete expression.)"
+ rendered = let ?state=s; ?link=True; ?name=name in renderExp exp id string
env = Map.fromList $ zip [0..length args-1] args
- expanded = expand s exp
- title = case expanded of
- Just (e,n) -> let ?state=s; ?link=True; ?name=name in renderExp exp id string
- Nothing -> toHTML "Custom potion"
- lnk = case expanded of
- Just (e,n) -> link ("?exp="++show e++"&name="++n) "[expand definition]"
- Nothing -> formP "addpotion" $ (+++hidden "exp" (show exp)) $
- (+++link ("makefun?exp="++show exp) "[Save as...]") $
- flip (maybe $ HTML "") name $ \name' ->
- hidden "name" name' +++
- button ("[Save as "++name'++"]")+++" "+++mdot+++" "
+ expanded = expand s exp; expandable = isJust expanded
+ expandLink = para $ bold $ link ("?exp="++show e++"&name="++n) "[edit page]"
+ where Just (e,n) = expanded
+ saveLinks = formP "addpotion" $ (+++hidden "exp" (show exp)) $
+ (+++link ("makefun?exp="++show exp) "[Save as...]") $
+ flip (maybe $ HTML "") name $ \name' ->
+ hidden "name" name' +++
+ button ("[Save as "++name'++"]")+++" "+++mdot+++" "
potionPost exp args s = (let ?state=s; ?link=True; ?name=Nothing in
renderExp exp id action +++ hr +++ HTML r
@@ -483,7 +484,7 @@
s' = s { stateItems = Map.delete id $ stateItems s }
Just id = fmap read $ lookM msg "item"
-makePage title body =
+makePage title sidebar body =
--(tag "title" [] title +++) .
tag "body" [] $
tag "div" [("class", "header")]
@@ -491,7 +492,8 @@
("class", "logo")] +++
h1 ("Fendata | " +++ title)) +++
tag "div" [("class", "main")] (
- tag "div" [("class", "sidebar")] "Welcome to Fendata! The sidebar is empty so far." +++
+ tag "div" [("class", "sidebar")] (
+ para "Welcome to Fendata!" +++ sidebar) +++
tag "div" [("class", "content")] body) +++
tag "div" [("class", "footer")]
("Fendata (c) 2007 by Benja Fallenstein and Tuukka Hastrup. " +++
More information about the Fencommits
mailing list