]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Page.hs
improvements of page locking
[Rakka.git] / Rakka / Page.hs
index 0affbf52f3b700bceb02e38a1770ad0d19165981..16835d5aafd79e247d227e557e93d77eb267e0ea 100644 (file)
@@ -60,6 +60,7 @@ data Page
     = Redirection {
         redirName       :: !PageName
       , redirDest       :: !PageName
+      , redirIsLocked   :: !Bool
       , redirRevision   :: RevNum
       , redirLastMod    :: UTCTime
       , redirUpdateInfo :: Maybe UpdateInfo
@@ -91,8 +92,8 @@ data UpdateInfo
 
 
 isRedirect :: Page -> Bool
-isRedirect (Redirection _ _ _ _ _) = True
-isRedirect _                       = False
+isRedirect (Redirection _ _ _ _ _ _) = True
+isRedirect _                         = False
 
 
 isEntity :: Page -> Bool
@@ -297,11 +298,14 @@ parseXmlizedPage
     = proc (name, tree)
     -> do updateInfo <- maybeA parseUpdateInfo -< tree
           redirect   <- maybeA (getXPathTreesInDoc "/page/@redirect/text()" >>> getText) -< tree
+          isLocked   <- (withDefault (getXPathTreesInDoc "/page/@isLocked/text()" >>> getText) "no"
+                         >>> parseYesOrNo) -< tree
           case redirect of
             Nothing   -> parseEntity -< (name, tree)
             Just dest -> returnA     -< (Redirection {
                                            redirName       = name
                                          , redirDest       = dest
+                                         , redirIsLocked   = isLocked
                                          , redirRevision   = undefined
                                          , redirLastMod    = undefined
                                          , redirUpdateInfo = updateInfo