packages feed

bamboo-2009.6.6: src/Bamboo/Controller/Static.hs

{-# LANGUAGE NoMonomorphismRestriction #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE NamedFieldPuns #-}

module Bamboo.Controller.Static where

import Bamboo.Controller.Env
import qualified Bamboo.Model.Static as Static
import qualified Bamboo.Type as T
import qualified Bamboo.Type.State as S
import qualified Bamboo.View.Control.Static as StaticV

static_controller :: Controller
static_controller = do
  init_state
  s <- get
  let uid = s.env.uri
  static_model <- T.get uid .io

  let nav_id = static_model.Static.uid.id_to_resource
      nav_location = 
        if nav_id.belongs_to (s.config.T.navigation)
          then nav_id
          else no_navigation
      
  put s 
    { uid
    , S.resource_title = static_model.resource_title
    , nav_location
    , S.static = static_model
    }

static_view :: View
static_view = StaticV.view > output_html

static :: Application
static = run static_controller static_view