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 #-} {-# LANGUAGE CPP #-}
-- | This module simply re-exports from other modules for your convenience.
module Yesod module Yesod
( module Yesod.Request ( module Yesod.Request
, module Yesod.Content , module Yesod.Content

View File

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

View File

@ -2,6 +2,8 @@
{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeSynonymInstances #-} {-# 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 module Yesod.Form.Core
( FormResult (..) ( FormResult (..)
, GForm (..) , GForm (..)

View File

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

View File

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

View File

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