[web-devel] problem with radioField from yesod.Forms
Michael Litchard
michael at schmong.org
Tue Jun 7 02:29:27 CEST 2011
For future reference, the problem here was an indentation problem
caused by code not shown. It's fine now.
On Mon, Jun 6, 2011 at 4:30 PM, Michael Litchard <michael at schmong.org> wrote:
> I am working from the widget example from the Yesod web site.
> I was able to display a column of check boxes, and am able to generate
> a [Bool], which is enough for now, as far as the check boxes go. Now,
> I would like a column of radioFields.
> I will worry about the CSS and Ajax stuff later. The problem is that
> radioField uses a slightly different type. I admit I don't understand
> some of these types, but I can exploit my pattern recognition skills
> well enough. Below is my last attempt.
>
> The type for radioField is
> radioField :: (Eq x, IsForm f, FormType f ~ x) => [(x, Text)] ->
> FormFieldSettings -> Maybe x -> f
>
> The type for boolField is
> boolField :: (IsForm f, FormType f ~ Bool) => FormFieldSettings ->
> Maybe Bool -> f
>
> It's the [(x,Text)] that is tricking me. I suspect the problem may be
> me not understanding the Applicative style well enough.
> Could someone offer some feedback to send me on the right track?
>
>
>> handleFormR = do
>> (res, form, enctype, nonce) <- runFormPost $ fieldsToTable $ (,,,,,,,,)
>> <$> boolField "Server One" Nothing
>> <*> boolField "Server Two" Nothing
>> <*> boolField "Server Three" Nothing
>> <*> boolField "Server Four" Nothing
>> <*> boolField "Server Five" Nothing
>> <*> boolField "Server Six" Nothing
>> <*> boolField "Server Seven" Nothing
>> <*> boolField "Server Eight" Nothing
>> <*> radioField [(1, "Test 1"), (2, "Test 2")] "Pick a Test" Nothing
>
> mlitchard at apotheosis:~/playground/yesod-examples-0.8.0.1/src$
> runhaskell nwidgets.lhs
>
> nwidgets.lhs:46:7:
> The last statement in a 'do' construct must be an expression:
> (res, form, enctype, nonce) <- runFormPost $ fieldsToTable
> $ (,,,,,,,,)
> <$>
> boolField "Server One" Nothing
> <*>
> boolField "Server Two" Nothing
> <*>
> boolField "Server Three" Nothing
> <*>
> boolField "Server Four" Nothing
> <*>
> boolField "Server Five" Nothing
> <*>
> boolField "Server Six" Nothing
> <*>
> boolField "Server Seven" Nothing
> <*>
> boolField "Server Eight" Nothing
> <*>
> radioField [(1, "Test 1"), (2, "Test 2")] "Test 1" Nothing
>
More information about the web-devel
mailing list