webapp: Fix bad interaction between required fields and modals.
This commit is contained in:
parent
c941523b63
commit
7b032dbbc8
14 changed files with 50 additions and 13 deletions
35
Assistant/WebApp/Form.hs
Normal file
35
Assistant/WebApp/Form.hs
Normal file
|
@ -0,0 +1,35 @@
|
|||
{- git-annex assistant webapp form utilities
|
||||
-
|
||||
- Copyright 2012 Joey Hess <joey@kitenet.net>
|
||||
-
|
||||
- Licensed under the GNU AGPL version 3 or higher.
|
||||
-}
|
||||
|
||||
{-# LANGUAGE FlexibleContexts, TypeFamilies, QuasiQuotes, MultiParamTypeClasses, TemplateHaskell, OverloadedStrings, RankNTypes #-}
|
||||
|
||||
module Assistant.WebApp.Form where
|
||||
|
||||
import Yesod hiding (textField, passwordField)
|
||||
import Yesod.Form.Fields as F
|
||||
import Data.Text (Text)
|
||||
|
||||
{- Yesod's textField sets the required attribute for required fields.
|
||||
- We don't want this, because many of the forms used in this webapp
|
||||
- display a modal dialog when submitted, which interacts badly with
|
||||
- required field handling by the browser.
|
||||
-
|
||||
- Required fields are still checked by Yesod.
|
||||
-}
|
||||
textField :: RenderMessage master FormMessage => Field sub master Text
|
||||
textField = F.textField
|
||||
{ fieldView = \theId name attrs val _isReq -> [whamlet|
|
||||
<input id="#{theId}" name="#{name}" *{attrs} type="text" value="#{either id id val}">
|
||||
|]
|
||||
}
|
||||
|
||||
passwordField :: RenderMessage master FormMessage => Field sub master Text
|
||||
passwordField = F.passwordField
|
||||
{ fieldView = \theId name attrs val _isReq -> toWidget [hamlet|
|
||||
<input id="#{theId}" name="#{name}" *{attrs} type="password" value="#{either id id val}">
|
||||
|]
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue