packages feed

clckwrks-plugin-media-0.3.0: Clckwrks/Media/Page/AllMedia.hs

{-# OPTIONS_GHC -F -pgmFtrhsx #-}
module Clckwrks.Media.Page.AllMedia where

import Control.Applicative     ((<$>))
import Control.Monad.Reader    (ask)
import Clckwrks                (ClckURL(..), query)
import Clckwrks.Admin.Template (template)
import Clckwrks.Media.Acid     (AllMediumIds(..))
import Clckwrks.Media.Types    (MediumId(..))
import Clckwrks.Media.Monad    (MediaM)
import Clckwrks.Media.URL      (MediaURL(..))
import Data.String             (fromString)
import Happstack.Server        (Response, asContentType, notFound, serveFile, toResponse)
import HSP 

allMedia :: MediaM Response
allMedia =
    do mediumIds <- query AllMediumIds
       template "all  media" <link rel="stylesheet" type="text/css" href=(PluginData (fromString "media") "style.css") /> $ 
                mkGallery mediumIds

mkGallery :: [MediumId] -> XMLGenT MediaM XML
mkGallery mediumIds =
    <ul id="media-gallery">
      <% mapM mkPreview mediumIds %>
    </ul>

mkPreview :: MediumId -> XMLGenT MediaM XML
mkPreview mid =
       <li>
        <a href=(GetMedium mid)><img src=(Preview mid) /></a>
       </li>