{-# LANGUAGE NoImplicitPrelude #-} module Bamboo.View.Widget.Sidebar where import Bamboo.View.Env hiding (rss_link) import Bamboo.View.Widget.Helper import qualified Bamboo.Type.StaticWidget as Sidebar import qualified Bamboo.Type.Config as C import qualified Bamboo.Type.State as State import qualified Data.Set as Set import qualified Bamboo.Type.Theme as T -- model import qualified Bamboo.Model.Tag as Tag -- view sidebar :: Widget sidebar s = div_class_id (s.config.theme.T.sidebar) "sidebar" << unordList formatted_list where stock_list = [ feed , tag_list $ s.State.tags ] custom_list = s .config .C.sidebar .map (\x -> h2 << x.Sidebar.name +++ x.markup) formatted_list = (stock_list ++ custom_list) .intersperse hr feed = toHtml [ h2 << "Subscribe" , p ! [theclass "feed"] << rss_link s ] rss_link = rss_url_link_pair >>> snd tag_list tags = toHtml [ h2 << "Tags" , unordList $ tags.Tag.sorted.map tag_link] tag_link x = ( hotlink (s.config.root / x.Tag.uid) << x.Tag.name ) +++ ( " (" ++ x.Tag.resources.Set.size.show ++ ")" )