}
+defaultResultsPerPage :: Int
+defaultResultsPerPage = 20
+
+
{-
<searchResult query="foo bar baz"
from="0"
= do params <- getQueryForm
let query = UTF8.decodeString $ fromMaybe "" $ lookup "q" params
- from = read $ fromMaybe "0" $ lookup "from" params
- to = read $ fromMaybe "20" $ lookup "to" params
+ from = fromMaybe 0
+ $ fmap read $ lookup "from" params
+ to = fromMaybe defaultResultsPerPage
+ $ fmap read $ lookup "to" params
cond <- liftIO $ mkCond query from to
result <- searchPages (envStorage env) cond
- let to' = min (from + length result) to
+ let to' = min (from + length (srPages result)) to
runIdempotentA $ proc ()
-> do tree <- ( eelem "/"
+= sattr "query" query
+= sattr "from" (show from)
+= sattr "to" (show to')
- += sattr "total" (show $ length result)
- += ( constL result
+ += sattr "total" (show $ srTotal result)
+ += ( constL (srPages result)
>>>
mkPageElem
)
setMax cond (to - from)
return cond
- mkPageElem :: ArrowXml a => a SearchResult XmlTree
+ mkPageElem :: ArrowXml a => a HitPage XmlTree
mkPageElem = ( eelem "page"
- += attr "name" (arr srPageName >>> mkText)
- += ( arrL srSnippet
+ += attr "name" (arr hpPageName >>> mkText)
+ += ( arrL hpSnippet
>>>
mkSnippetTree
)