packages feed

clckwrks-0.13.0: Clckwrks/Admin/Pages.hs

{-# OPTIONS_GHC -F -pgmFtrhsx #-}
module Clckwrks.Admin.Pages where

import Clckwrks                (AdminURL(..), Clck, ClckURL(..), PageId(..), Response, query)
import Clckwrks.Admin.URL      (AdminURL(..))
import Clckwrks.Admin.Template (template)
import Clckwrks.Page.Acid      (PagesSummary(..))
import Clckwrks.Page.Types     (Slug(..))
import Data.Text               (Text)
import HSP

pages :: Clck AdminURL Response
pages =
    do pages <- query PagesSummary
       template "page list" () $ editList pages

editList ::  [(PageId, Text, Maybe Slug)] -> GenChildList (Clck AdminURL)
editList [] = <%><p>There are currently no pages.</p></%>
editList pgs =
    <%>
     <p>Edit Page</p>
     <ul class="plain-list">
      <% mapM editPageLI pgs %>
     </ul>
    </%>
    where
      editPageLI :: (PageId, Text, Maybe Slug) -> GenXML (Clck AdminURL)
      editPageLI (pid, ttl, _slug) =
          <li><a href=(EditPage pid)><% ttl %></a></li>