module OpenLayers.Html where
import Prelude hiding (void, showString)
import JQuery
import Fay.Text
import Fay.FFI
import OpenLayers.Internal
aElement = "<a>"
brElement = "<br>"
pElement = "<p>"
divElement = "<div>"
formElement = "<form>"
buttonElement = "<input>"
inputTextElement = "<input type=text>"
inputCheckboxElement = "<input type=checkbox>"
addTextToHtml :: String
-> String
-> String
-> Fay ()
addTextToHtml content element parentId = void $ do
c <- selectId parentId
d <- select' element
setHtml' content d
appendTo c d
addButton :: String
-> String
-> Fay ()
-> Fay ()
addButton text parentId method = void $ do
c <- selectId parentId
d <- select' buttonElement
setAttr' "value" text d
setAttr' "type" "submit" d
onClick' method d
appendTo c d
addCheckbox :: String
-> String
-> String
-> Fay ()
addCheckbox id parentId label = void $ do
parent <- selectId parentId
div <- select' divElement
setHtml' label div
checkbox <- select' inputCheckboxElement
setAttr' "id" id checkbox
appendTo div checkbox
appendTo parent div
addDiv :: String
-> String
-> String
-> Fay ()
addDiv parentId divId label = void $ do
parent <- selectId parentId
div <- select' divElement
setAttr' "id" divId div
setHtml' label div
appendTo parent div
addElement :: String
-> String
-> String
-> Fay ()
addElement parentId element id = void $ do
parent <- selectId parentId
d <- select' element
setAttr' "id" id d
appendTo parent d
addForm :: String
-> String
-> Fay JQuery
addForm parentId formId = do
parent <- selectId parentId
form <- select' $ formElement
setAttr' "id" formId form
appendTo parent form
addInput :: String
-> String
-> String
-> String
-> Fay ()
addInput label parentId elementId defaultValue = void $ do
parent <- selectId parentId
div <- select' divElement
setHtml' label div
input <- select' inputTextElement
setAttr' "id" elementId input
setAttr' "value" defaultValue input
appendTo div input
appendTo parent div
addBreakline :: String
-> Fay ()
addBreakline id = void $ do
parent <- selectId id
value <- select' brElement
appendTo parent value
getInputInt :: String
-> Fay Integer
getInputInt labelId = do
idinput <- selectId labelId
idvalue <- getVal idinput
toInt idvalue
selectId :: String
-> Fay JQuery
selectId s = select $ showString $ "#" ++ s
setEventToHtml :: String
-> Fay Text
-> Fay JQuery
setEventToHtml elementId function = do
element <- selectId elementId
f <- function
setHtml f element
showString :: String -> Text
showString = ffi "%1"
showDouble :: Double -> Text
showDouble = ffi "%1"
toInt :: Text -> Fay Integer
toInt = ffi "%1"
toInt' :: String -> Integer
toInt' = ffi "%1"
onClick' :: Fay ()
-> JQuery
-> Fay JQuery
onClick' = ffi "%2['click'](%1)"
select' :: String
-> Fay JQuery
select' s = select $ showString s
setHtml' :: String
-> JQuery
-> Fay JQuery
setHtml' content target = setHtml (showString content) target
setAttr' :: String
-> String
-> JQuery
-> Fay JQuery
setAttr' att val target = setAttr (showString att) (showString val) target