{-# LANGUAGE FlexibleInstances, QuasiQuotes #-}
{-# OPTIONS_GHC -F -pgmFtrhsx #-}
module Clckwrks.Menu.Edit where
import Clckwrks.Admin.Template (template)
import Clckwrks.Menu.Types (Menu(..), MenuItem(..), MenuLink(..), MenuName(..))
import Clckwrks.Menu.Acid (SetMenu(..))
import Clckwrks.Monad (Clck, query, update)
import Clckwrks.Page.Acid (PageId(..), PagesSummary(..))
import Clckwrks.Page.Types (Slug(..), slugify)
import Clckwrks.Types (Prefix(..))
import Clckwrks.URL (ClckURL(..), AdminURL(..))
import Control.Applicative ((<$>), (<|>), optional, pure)
import Data.Aeson (FromJSON(..), ToJSON(..), Value(..), (.:), (.=), decode, object)
import Data.String (fromString)
import Data.Tree (Tree(..))
import Data.Text (Text)
import qualified Data.Text as Text
import qualified Data.Text.Lazy.IO as LazyText
import qualified Data.Vector as Vector
import Happstack.Server (Response, internalServerError, lookBS, ok, toResponse)
import HSP
import Language.Javascript.JMacro
import Web.Routes (PathInfo, showURL, toPathInfo, fromPathInfo)
-- MenURL ?
editMenu :: (PathInfo url) => Menu url -> Clck ClckURL Response
editMenu menu =
do summaries <- query PagesSummary
let clckLinks = [ (toPathInfo Blog, fromString "Blog")
]
template "edit menu" (headers summaries clckLinks) $
<%>