informative 0.1.0.7 → 0.1.0.8
raw patch · 4 files changed
+46/−46 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Web.Informative: getArticleIdR :: Int -> WikiHandler Html
+ Web.Informative: getArticleIdR :: Text -> WikiHandler Html
- Web.Informative: getEditR :: Int -> WikiHandler Html
+ Web.Informative: getEditR :: Text -> WikiHandler Html
- Web.Informative: getInsertR :: Int -> WikiHandler Html
+ Web.Informative: getInsertR :: Text -> WikiHandler Html
- Web.Informative: getPrependR :: Int -> WikiHandler Html
+ Web.Informative: getPrependR :: Text -> WikiHandler Html
- Web.Informative: postDeleteR :: Int -> WikiHandler Html
+ Web.Informative: postDeleteR :: Text -> WikiHandler Html
- Web.Informative: postDownR :: Int -> WikiHandler Html
+ Web.Informative: postDownR :: Text -> WikiHandler Html
- Web.Informative: postEditR :: Int -> WikiHandler Html
+ Web.Informative: postEditR :: Text -> WikiHandler Html
- Web.Informative: postInsertR :: Int -> WikiHandler Html
+ Web.Informative: postInsertR :: Text -> WikiHandler Html
- Web.Informative: postPrependR :: Int -> WikiHandler Html
+ Web.Informative: postPrependR :: Text -> WikiHandler Html
- Web.Informative: postUpR :: Int -> WikiHandler Html
+ Web.Informative: postUpR :: Text -> WikiHandler Html
- Web.Informative: renderShowArticle :: YesodWikiAuth master => [Entity Wikisugg] -> Bool -> (AuthRoute -> Route master) -> (Route Informative -> Route master) -> AuthResult -> Maybe Html -> [(Int, (Int64, Either Html [[Html]], TextKind))] -> [(Int64, Text, UTCTime)] -> Text -> HandlerT Informative (HandlerT master IO) Html
+ Web.Informative: renderShowArticle :: YesodWikiAuth master => [Entity Wikisugg] -> Bool -> (AuthRoute -> Route master) -> (Route Informative -> Route master) -> AuthResult -> Maybe Html -> [(Int, (Text, Either Html [[Html]], TextKind))] -> [(Text, Text, UTCTime)] -> Text -> HandlerT Informative (HandlerT master IO) Html
Files
- Web/Informative.hs +28/−28
- Web/Informative/Data.hs +7/−7
- informative.cabal +1/−1
- informative.htm +10/−10
Web/Informative.hs view
@@ -87,7 +87,7 @@ toClassname = filter isAlphaNum . T.unpack remCR = filter (/=chr 13) -renderShowArticle :: YesodWikiAuth master => [Entity Wikisugg] -> Bool -> (AuthRoute -> Route master) -> (Route Informative -> Route master) -> AuthResult -> Maybe Html -> [(Int,(Int64,Either Html [[Html]],TextKind))] -> [(Int64,T.Text,UTCTime)] -> T.Text -> HandlerT Informative (HandlerT master IO) Html+renderShowArticle :: YesodWikiAuth master => [Entity Wikisugg] -> Bool -> (AuthRoute -> Route master) -> (Route Informative -> Route master) -> AuthResult -> Maybe Html -> [(Int,(T.Text,Either Html [[Html]],TextKind))] -> [(T.Text,T.Text,UTCTime)] -> T.Text -> HandlerT Informative (HandlerT master IO) Html renderShowArticle suggs loggedIn authR toParent mayEdit mmsg sects edits page = do seg <- liftM getSegment getYesod pref <- liftM getPrefix getYesod@@ -106,22 +106,22 @@ toWidget $(hamletFile "informative-edit.htm") toWidget $(cassiusFile "informative.css") -getArticleIdR :: Int -> WikiHandler Html+getArticleIdR :: T.Text -> WikiHandler Html getArticleIdR pageid = do seg <- liftM getSegment getYesod pref <- liftM getPrefix getYesod (edits,sects',page,suggs) <- lift $ runDB $ do- let Right pid = keyFromValues [PersistInt64 $ fromIntegral pageid] :: Either T.Text WikipageId+ let pid = read $ T.unpack pageid wp <- get pid (sects,page) <- case wp of- Nothing -> return ([(-1,Left $ convFmt LaTeX "\\section{404 Not Found} We're sorry, but that article doesn't exist in our database.", Error)],"none")+ Nothing -> return ([("/new/",Left $ convFmt LaTeX "\\section{404 Not Found} We're sorry, but that article doesn't exist in our database.", Error)],"none") Just p -> do rels <- selectList [WikirelPage ==. pid] [Asc WikirelIndex]- sects <- forM rels $ \(Entity k r) -> let [PersistInt64 rid] = keyToValues k in liftM (rid,) $ get $ wikirelSection r+ sects <- forM rels $ \(Entity k r) -> liftM (T.pack $ show k,) $ get $ wikirelSection r let s' = map (\(rid,Just s) -> (rid,convSect (wikisectionKind s) (wikisectionFormat s) (wikisectionContent s), wikisectionKind s)) sects return (s', wikipageTitle p) hs <- selectList [WikipageTitle ==. page, WikipageSegment ==. seg] [Desc WikipageTimestamp, LimitTo 10]- let es = map (\(Entity k p) -> (let [PersistInt64 pid] = keyToValues k in pid, wikipageEditor p, wikipageTimestamp p)) hs+ let es = map (\(Entity k p) -> (T.pack $ show k, wikipageEditor p, wikipageTimestamp p)) hs suggs <- selectList [WikisuggSegment ==. seg] [Asc WikisuggIndex] return (es,sects,page,suggs) toParent <- getRouteToParent@@ -140,12 +140,12 @@ wp <- selectList [WikipageTitle ==. page, WikipageSegment ==. seg] [Desc WikipageTimestamp, LimitTo 10] suggs <- selectList [WikisuggSegment ==. seg] [Asc WikisuggIndex] case wp of- [] -> return ([], [(-1,Left $ convFmt LaTeX "\\section{404 Not Found} We're sorry, but that article doesn't exist in our database.", Error)],suggs)+ [] -> return ([], [("/new/",Left $ convFmt LaTeX "\\section{404 Not Found} We're sorry, but that article doesn't exist in our database.", Error)],suggs) hs@((Entity pid p):_) -> do rels <- selectList [WikirelPage ==. pid] [Asc WikirelIndex]- sects <- forM rels $ \(Entity k r) -> let [PersistInt64 rid] = keyToValues k in liftM (rid,) $ get $ wikirelSection r+ sects <- forM rels $ \(Entity k r) -> liftM (T.pack $ show k,) $ get $ wikirelSection r let s' = map (\(rid,Just s) -> (rid,convSect (wikisectionKind s) (wikisectionFormat s) (wikisectionContent s), wikisectionKind s)) sects- es = map (\(Entity k p) -> (let [PersistInt64 pid] = keyToValues k in pid, wikipageEditor p, wikipageTimestamp p)) hs+ es = map (\(Entity k p) -> (T.pack $ show k, wikipageEditor p, wikipageTimestamp p)) hs return (es, s',suggs) toParent <- getRouteToParent mayEdit <- lift $ isAuthorized (toParent $ ArticleR page) True@@ -174,13 +174,13 @@ formats = [("Markdown",Markdown),("MediaWiki",MediaWiki),("ReStructuredText",ReStructuredText),("LaTeX",LaTeX),("Textile",Textile),("Source code",Source "" 1),("Plain text",Plain)] kinds = map (T.pack . show &&& id) [minBound..maxBound] -getEditR :: Int -> WikiHandler Html+getEditR :: T.Text -> WikiHandler Html getEditR rid = do seg <- liftM getSegment getYesod pref <- liftM getPrefix getYesod (msect, mprec, kind, fmt, suggs, page) <- lift $ runDB $ do suggs <- selectList [WikisuggSegment ==. seg] [Asc WikisuggIndex]- rel <- let Right k = keyFromValues [PersistInt64 $ fromIntegral rid] :: Either T.Text WikirelId in get k+ rel <- get $ read $ T.unpack rid case rel of Nothing -> return (Nothing, Nothing, Error, Plain, suggs, "none") Just rel -> do@@ -199,13 +199,13 @@ submitR <- return $ toParent $ EditR rid renderEditArticle suggs loggedIn authR toParent submitR mmsg msect kind form page -getInsertR :: Int -> WikiHandler Html+getInsertR :: T.Text -> WikiHandler Html getInsertR rid = do seg <- liftM getSegment getYesod pref <- liftM getPrefix getYesod (suggs, page) <- lift $ runDB $ do suggs <- selectList [WikisuggSegment ==. seg] [Asc WikisuggIndex]- rel <- let Right k = keyFromValues [PersistInt64 $ fromIntegral rid] :: Either T.Text WikirelId in get k+ rel <- get $ read $ T.unpack rid case rel of Nothing -> return (suggs, "none") Just rel -> do@@ -224,13 +224,13 @@ kind <- return Article renderEditArticle suggs loggedIn authR toParent submitR mmsg msect kind form page -getPrependR :: Int -> WikiHandler Html+getPrependR :: T.Text -> WikiHandler Html getPrependR rid = do seg <- liftM getSegment getYesod pref <- liftM getPrefix getYesod (suggs, page) <- lift $ runDB $ do suggs <- selectList [WikisuggSegment ==. seg] [Asc WikisuggIndex]- rel <- let Right k = keyFromValues [PersistInt64 $ fromIntegral rid] :: Either T.Text WikirelId in get k+ rel <- get $ read $ T.unpack rid case rel of Nothing -> return (suggs, "none") Just rel -> do@@ -268,11 +268,11 @@ kind <- return Article renderEditArticle suggs loggedIn authR toParent submitR mmsg msect kind form page -postEditR :: Int -> WikiHandler Html+postEditR :: T.Text -> WikiHandler Html postEditR rid = do seg <- liftM getSegment getYesod pref <- liftM getPrefix getYesod- let Right rid' = keyFromValues [PersistInt64 $ fromIntegral rid] :: Either T.Text WikirelId+ let rid' = read $ T.unpack rid (msect, mprec, kind, fmt, suggs, page) <- lift $ runDB $ do suggs <- selectList [WikisuggSegment ==. seg] [Asc WikisuggIndex] rel <- get rid'@@ -319,11 +319,11 @@ form <- lift $ widgetToPageContent widget renderEditArticle suggs loggedIn authR toParent submitR mmsg msect kind form page -postInsertR :: Int -> WikiHandler Html+postInsertR :: T.Text -> WikiHandler Html postInsertR rid = do seg <- liftM getSegment getYesod pref <- liftM getPrefix getYesod- let Right rid' = keyFromValues [PersistInt64 $ fromIntegral rid] :: Either T.Text WikirelId+ let rid' = read $ T.unpack rid (suggs, page) <- lift $ runDB $ do suggs <- selectList [WikisuggSegment ==. seg] [Asc WikisuggIndex] rel <- get rid'@@ -374,11 +374,11 @@ form <- lift $ widgetToPageContent widget renderEditArticle suggs loggedIn authR toParent submitR mmsg msect kind form page -postPrependR :: Int -> WikiHandler Html+postPrependR :: T.Text -> WikiHandler Html postPrependR rid = do seg <- liftM getSegment getYesod pref <- liftM getPrefix getYesod- let Right rid' = keyFromValues [PersistInt64 $ fromIntegral rid] :: Either T.Text WikirelId+ let rid' = read $ T.unpack rid (suggs, page) <- lift $ runDB $ do suggs <- selectList [WikisuggSegment ==. seg] [Asc WikisuggIndex] rel <- get rid'@@ -451,7 +451,7 @@ case (exists,result,action) of (False,FormSuccess (SectionData k f lg ln (Textarea c)),"save") -> do lift $ runDB $ do- Right sid <- insertBy $ Wikisection c (source f lg ln) k+ sid <- insert $ Wikisection c (source f lg ln) k Right pid <- insertBy $ Wikipage page seg user now insertBy $ Wikirel pid sid 1 setMessage $ toHtml ("Page has been created." :: T.Text)@@ -467,14 +467,14 @@ form <- lift $ widgetToPageContent widget renderEditArticle suggs loggedIn authR toParent submitR mmsg msect kind form page -postDownR :: Int -> WikiHandler Html+postDownR :: T.Text -> WikiHandler Html postDownR rid = do seg <- liftM getSegment getYesod pref <- liftM getPrefix getYesod user <- lift getUserName now <- liftIO getCurrentTime toParent <- getRouteToParent- let Right rid' = keyFromValues [PersistInt64 $ fromIntegral rid] :: Either T.Text WikirelId+ let rid' = read $ T.unpack rid page <- lift $ runDB $ do rel <- get rid' case rel of@@ -495,14 +495,14 @@ return $ wikipageTitle page lift $ redirect $ toParent $ ArticleR page -postUpR :: Int -> WikiHandler Html+postUpR :: T.Text -> WikiHandler Html postUpR rid = do seg <- liftM getSegment getYesod pref <- liftM getPrefix getYesod user <- lift getUserName now <- liftIO getCurrentTime toParent <- getRouteToParent- let Right rid' = keyFromValues [PersistInt64 $ fromIntegral rid] :: Either T.Text WikirelId+ let rid' = read $ T.unpack rid page <- lift $ runDB $ do rel <- get rid' case rel of@@ -523,14 +523,14 @@ return $ wikipageTitle page lift $ redirect $ toParent $ ArticleR page -postDeleteR :: Int -> WikiHandler Html+postDeleteR :: T.Text -> WikiHandler Html postDeleteR rid = do seg <- liftM getSegment getYesod pref <- liftM getPrefix getYesod user <- lift getUserName now <- liftIO getCurrentTime toParent <- getRouteToParent- let Right rid' = keyFromValues [PersistInt64 $ fromIntegral rid] :: Either T.Text WikirelId+ let rid' = read $ T.unpack rid page <- lift $ runDB $ do rel <- get rid' case rel of
Web/Informative/Data.hs view
@@ -9,13 +9,13 @@ mkYesodSubData "Informative" [parseRoutes| /article/#Text ArticleR GET- /articleid/#Int ArticleIdR GET- /edit/#Int EditR GET POST- /insert/#Int InsertR GET POST- /prepend/#Int PrependR GET POST- /down/#Int DownR POST- /up/#Int UpR POST- /delete/#Int DeleteR POST+ /articleid/#Text ArticleIdR GET+ /edit/#Text EditR GET POST+ /insert/#Text InsertR GET POST+ /prepend/#Text PrependR GET POST+ /down/#Text DownR POST+ /up/#Text UpR POST+ /delete/#Text DeleteR POST /create/#Text CreateR GET POST |]
informative.cabal view
@@ -10,7 +10,7 @@ -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change-version: 0.1.0.7+version: 0.1.0.8 -- A short (one-line) description of the package. synopsis: A yesod subsite serving a wiki.
informative.htm view
@@ -17,9 +17,9 @@ #{msg} $if not (null sects) $with (idx, (rid, sect, kind)) <- head sects- $if ((mayEdit == Authorized) && (rid >= 0))+ $if ((mayEdit == Authorized) && (rid /= "/new/")) <div .edit>- <a href=@{toParent $ PrependR $ fromIntegral rid}>insert+ <a href=@{toParent $ PrependR rid}>insert $forall (idx, (rid, sect, kind)) <- sects $case (sect, kind) $of (Left c, Article)@@ -51,22 +51,22 @@ <tr> $forall c <- cols <td>#{c}- $if ((mayEdit == Authorized) && (rid < 0))+ $if ((mayEdit == Authorized) && (rid == "/new/")) <div .edit> <a href=@{toParent $ CreateR page}>create- $if ((mayEdit == Authorized) && (rid >= 0))+ $if ((mayEdit == Authorized) && (rid /= "/new/")) <div .edit> $if idx > 1- <form method=post action=@{toParent $ UpR $ fromIntegral rid}>+ <form method=post action=@{toParent $ UpR rid}> <button .linkbutton>up $if idx < length sects- <form method=post action=@{toParent $ DownR $ fromIntegral rid}>+ <form method=post action=@{toParent $ DownR rid}> <button .linkbutton>down $if length sects > 1- <form method=post action=@{toParent $ DeleteR $ fromIntegral rid}>+ <form method=post action=@{toParent $ DeleteR rid}> <button .linkbutton>delete- <a href=@{toParent $ InsertR $ fromIntegral rid}>insert- <a href=@{toParent $ EditR $ fromIntegral rid}>edit+ <a href=@{toParent $ InsertR rid}>insert+ <a href=@{toParent $ EditR rid}>edit <div .table> <table> <thead>@@ -88,6 +88,6 @@ $forall (i, editor, stamp) <- tail edits <tr> <td>- <a href=@{toParent $ ArticleIdR $ fromIntegral i}>#{page}+ <a href=@{toParent $ ArticleIdR i}>#{page} <td>#{editor} <td>#{formatTime defaultTimeLocale "%Y-%m-%d %H:%M:%S %Z" stamp}