iptadmin-1.2.0: src/IptAdmin/Static.hs
{-# LANGUAGE TemplateHaskell #-}
module IptAdmin.Static where
import Control.Monad.Error hiding (lift)
import qualified Data.ByteString as B
import Data.FileEmbed
import Happstack.Server.FileServe.BuildingBlocks
import Happstack.Server.Types
import Happstack.Server.SimpleHTTP
import IptAdmin.Types
import Language.Haskell.TH.Syntax
import System.IO.Unsafe (unsafePerformIO)
import System.Time
pageHandlers :: IptAdminAuth Response
pageHandlers = msum [ dirs "css/iptadmin.css" $ returnCss $ $(embedFile "static/css/iptadmin.css")
, dirs "js/showpage.js" $ returnJs $ $(embedFile "static/js/showpage.js")
, dirs "js/jquery-1.6.2.min.js" $ returnJs jquery162minjs
, dirs "js/jquery-ui-1.8.16.custom.min.js" $ returnJs jqueryUi1816customMinJs
, dirs "css/iptadmin-theme/jquery-ui-1.8.16.custom.css" $ returnCss jqueryUi1816customCss
, dirs "css/iptadmin-theme/images/ui-bg_flat_0_aaaaaa_40x100.png" $ returnPng $
$(embedFile "static/css/iptadmin-theme/images/ui-bg_flat_0_aaaaaa_40x100.png")
, dirs "css/iptadmin-theme/images/ui-bg_flat_75_ffffff_40x100.png" $ returnPng $
$(embedFile "static/css/iptadmin-theme/images/ui-bg_flat_75_ffffff_40x100.png")
, dirs "css/iptadmin-theme/images/ui-bg_glass_55_fbf9ee_1x400.png" $ returnPng $
$(embedFile "static/css/iptadmin-theme/images/ui-bg_glass_55_fbf9ee_1x400.png")
, dirs "css/iptadmin-theme/images/ui-bg_glass_65_ffffff_1x400.png" $ returnPng $
$(embedFile "static/css/iptadmin-theme/images/ui-bg_glass_65_ffffff_1x400.png")
, dirs "css/iptadmin-theme/images/ui-bg_glass_75_f0f0f0_1x400.png" $ returnPng $
$(embedFile "static/css/iptadmin-theme/images/ui-bg_glass_75_f0f0f0_1x400.png")
, dirs "css/iptadmin-theme/images/ui-bg_glass_75_fafafa_1x400.png" $ returnPng $
$(embedFile "static/css/iptadmin-theme/images/ui-bg_glass_75_fafafa_1x400.png")
, dirs "css/iptadmin-theme/images/ui-bg_glass_95_fef1ec_1x400.png" $ returnPng $
$(embedFile "static/css/iptadmin-theme/images/ui-bg_glass_95_fef1ec_1x400.png")
, dirs "css/iptadmin-theme/images/ui-bg_highlight-hard_75_d7d7d7_1x100.png" $ returnPng $
$(embedFile "static/css/iptadmin-theme/images/ui-bg_highlight-hard_75_d7d7d7_1x100.png")
, dirs "css/iptadmin-theme/images/ui-icons_000000_256x240.png" $ returnPng $
$(embedFile "static/css/iptadmin-theme/images/ui-icons_000000_256x240.png")
, dirs "css/iptadmin-theme/images/ui-icons_222222_256x240.png" $ returnPng $
$(embedFile "static/css/iptadmin-theme/images/ui-icons_222222_256x240.png")
, dirs "css/iptadmin-theme/images/ui-icons_2e83ff_256x240.png" $ returnPng $
$(embedFile "static/css/iptadmin-theme/images/ui-icons_2e83ff_256x240.png")
, dirs "css/iptadmin-theme/images/ui-icons_5b5b5b_256x240.png" $ returnPng $
$(embedFile "static/css/iptadmin-theme/images/ui-icons_5b5b5b_256x240.png")
, dirs "css/iptadmin-theme/images/ui-icons_cd0a0a_256x240.png" $ returnPng $
$(embedFile "static/css/iptadmin-theme/images/ui-icons_cd0a0a_256x240.png")
]
returnJs :: B.ByteString -> IptAdminAuth Response
returnJs file = do
request <- askRq
return $ strictByteStringResponse "text/javascript; charset=utf8"
file
(Just (updateTime, request))
0
(toInteger $ B.length file)
returnCss :: B.ByteString -> IptAdminAuth Response
returnCss file = do
request <- askRq
return $ strictByteStringResponse "text/css; charset=utf8"
file
(Just (updateTime, request))
0
(toInteger $ B.length file)
returnPng :: B.ByteString -> IptAdminAuth Response
returnPng file = do
request <- askRq
return $ strictByteStringResponse "image/png"
file
(Just (updateTime, request))
0
(toInteger $ B.length file)
-- | Get date and time of compilation
updateClockTime1 = $(lift $ let TOD a _ = unsafePerformIO getClockTime in a)
updateClockTime2 = $(lift $ let TOD _ b = unsafePerformIO getClockTime in b)
updateTime :: CalendarTime
updateTime = unsafePerformIO $ toCalendarTime $ TOD updateClockTime1 updateClockTime2
{-
updateTime :: CalendarTime
updateTime = CalendarTime 2011
September
13
0
0
0
0
Tuesday
250
"GMT"
0
False
-}
jquery162minjs :: B.ByteString
jquery162minjs = $(embedFile "static/js/jquery-1.6.2.min.js")
jqueryUi1816customMinJs :: B.ByteString
jqueryUi1816customMinJs = $(embedFile "static/js/jquery-ui-1.8.16.custom.min.js")
jqueryUi1816customCss :: B.ByteString
jqueryUi1816customCss = $(embedFile "static/css/iptadmin-theme/jquery-ui-1.8.16.custom.css")