Doc cleanup, especially forms

This commit is contained in:
Michael Snoyman 2010-10-20 22:41:32 +02:00
parent 6e43ea5fc3
commit c35c935418
6 changed files with 47 additions and 20 deletions

View File

@ -1,4 +1,5 @@
{-# LANGUAGE CPP #-}
-- | This module simply re-exports from other modules for your convenience.
module Yesod
( module Yesod.Request
, module Yesod.Content

View File

@ -30,11 +30,11 @@ module Yesod.Form
, fieldsToDivs
, fieldsToPlain
, checkForm
-- * Type classes
, module Yesod.Form.Class
-- * Template Haskell
, mkToForm
-- * Re-exports
, module Yesod.Form.Fields
, module Yesod.Form.Class
) where
import Yesod.Form.Core

View File

@ -2,6 +2,8 @@
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeSynonymInstances #-}
-- | Users of the forms library should not need to use this module in general.
-- It is intended only for writing custom forms and form fields.
module Yesod.Form.Core
( FormResult (..)
, GForm (..)

View File

@ -1,4 +1,7 @@
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE FlexibleContexts #-}
-- | Some fields spiced up with jQuery UI.
module Yesod.Form.Jquery
( YesodJquery (..)
, jqueryDayField
@ -47,16 +50,19 @@ class YesodJquery a where
urlJqueryUiDateTimePicker :: a -> Either (Route a) String
urlJqueryUiDateTimePicker _ = Right "http://github.com/gregwebs/jquery.ui.datetimepicker/raw/master/jquery.ui.datetimepicker.js"
jqueryDayField :: YesodJquery y
jqueryDayField :: (IsForm f, FormType f ~ Day, YesodJquery (FormMaster f))
=> JqueryDaySettings
-> FormFieldSettings
-> FormletField sub y Day
-> Maybe (FormType f)
-> f
jqueryDayField = requiredFieldHelper . jqueryDayFieldProfile
maybeJqueryDayField :: YesodJquery y
=> JqueryDaySettings
-> FormFieldSettings
-> FormletField sub y (Maybe Day)
maybeJqueryDayField
:: (IsForm f, FormType f ~ Maybe Day, YesodJquery (FormMaster f))
=> JqueryDaySettings
-> FormFieldSettings
-> Maybe (FormType f)
-> f
maybeJqueryDayField = optionalFieldHelper . jqueryDayFieldProfile
jqueryDayFieldProfile :: YesodJquery y
@ -104,7 +110,11 @@ ifRight e f = case e of
showLeadingZero :: (Show a) => a -> String
showLeadingZero time = let t = show time in if length t == 1 then "0" ++ t else t
jqueryDayTimeField :: YesodJquery y => FormFieldSettings -> FormletField sub y UTCTime
jqueryDayTimeField
:: (IsForm f, FormType f ~ UTCTime, YesodJquery (FormMaster f))
=> FormFieldSettings
-> Maybe (FormType f)
-> f
jqueryDayTimeField = requiredFieldHelper jqueryDayTimeFieldProfile
-- use A.M/P.M and drop seconds and "UTC" (as opposed to normal UTCTime show)
@ -144,12 +154,20 @@ parseUTCTime s =
ifRight (parseTime timeS)
(UTCTime date . timeOfDayToTime)
jqueryAutocompleteField :: YesodJquery y =>
Route y -> FormFieldSettings -> FormletField sub y String
jqueryAutocompleteField
:: (IsForm f, FormType f ~ String, YesodJquery (FormMaster f))
=> Route (FormMaster f)
-> FormFieldSettings
-> Maybe (FormType f)
-> f
jqueryAutocompleteField = requiredFieldHelper . jqueryAutocompleteFieldProfile
maybeJqueryAutocompleteField :: YesodJquery y =>
Route y -> FormFieldSettings -> FormletField sub y (Maybe String)
maybeJqueryAutocompleteField
:: (IsForm f, FormType f ~ Maybe String, YesodJquery (FormMaster f))
=> Route (FormMaster f)
-> FormFieldSettings
-> Maybe (FormType f)
-> f
maybeJqueryAutocompleteField src =
optionalFieldHelper $ jqueryAutocompleteFieldProfile src

View File

@ -1,4 +1,7 @@
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE FlexibleContexts #-}
-- | Provide the user with a rich text editor.
module Yesod.Form.Nic
( YesodNic (..)
, nicHtmlField
@ -14,14 +17,17 @@ import Text.HTML.SanitizeXSS (sanitizeXSS)
import Yesod.Internal (lbsToChars)
class YesodNic a where
-- | NIC Editor.
-- | NIC Editor Javascript file.
urlNicEdit :: a -> Either (Route a) String
urlNicEdit _ = Right "http://js.nicedit.com/nicEdit-latest.js"
nicHtmlField :: YesodNic y => FormFieldSettings -> FormletField sub y Html
nicHtmlField :: (IsForm f, FormType f ~ Html, YesodNic (FormMaster f))
=> FormFieldSettings -> Maybe Html -> f
nicHtmlField = requiredFieldHelper nicHtmlFieldProfile
maybeNicHtmlField :: YesodNic y => FormFieldSettings -> FormletField sub y (Maybe Html)
maybeNicHtmlField
:: (IsForm f, FormType f ~ Maybe Html, YesodNic (FormMaster f))
=> FormFieldSettings -> Maybe (FormType f) -> f
maybeNicHtmlField = optionalFieldHelper nicHtmlFieldProfile
nicHtmlFieldProfile :: YesodNic y => FieldProfile sub y Html

View File

@ -52,15 +52,11 @@ library
Yesod.Content
Yesod.Dispatch
Yesod.Form
Yesod.Form.Class
Yesod.Form.Core
Yesod.Form.Fields
Yesod.Form.Profiles
Yesod.Form.Jquery
Yesod.Form.Nic
Yesod.Hamlet
Yesod.Handler
Yesod.Internal
Yesod.Json
Yesod.Request
Yesod.Widget
@ -70,6 +66,10 @@ library
Yesod.Helpers.Sitemap
Yesod.Helpers.Static
Yesod.WebRoutes
other-modules: Yesod.Form.Class
Yesod.Internal
Yesod.Form.Fields
Yesod.Form.Profiles
ghc-options: -Wall
executable yesod