
Hi, trying to put WashNGo-2.9 to a nontrivial prototyping job gave some very compelling results so far, but also got me stumped on occasions. I'd be grateful for some guidance on the following points, concerning abstract tables mainly. * selectionDisplay: looks like displayFun (fourth arg) mustn't fail for null arguments, as it's invoked with them after leaving the page it appears on. An error or a feature? Is it documented? * trying to get around the "Strings only" restriction of AT's I threw in some show-read pairs, but got the impression that the channel is not Char-clean: Base64.encode . UTF8.encode helped. What's the spec? * should a click on an AT radio button result in submission of the form? It does not, which is OK with me. But the following code fails in a rather strange way:
data Record = P String Person | R String Role | Unknown String deriving (Read,Show)
unAtSafe :: String -> Record unAtSafe = read . fst . UTF8.decode . Base64.decode
edit sg = case record of P dn p -> editPerson dn p R dn r -> editRole dn r Unknown s -> standardQuery "No dice" $ CGI.div $ -- provokes error in AbstractSelector.hs:115 do p $ text s goBack where record = unAtSafe $ head $ unAR $ value sg
editPerson :: String -> Person -> CGI () editPerson dn p = standardQuery "Edit person" $ CGI.div $ do inputs <- personTable p actionPar "Modify" (createPerson dn) inputs
In this case Person and Role contain String fields only. The abstract table contains Records, and the above function 'edit' dispatches on the type of the selected Record. The first two cases work, the Unknown case trips on an 'error' in the WashNGo code as indicated. It's in the valueSelectionGroup function, if selectionValue is Nothing. How could I fix this? * Lastly, how can I go back some queries? goBack above is basically a 'submit0 (return ())' which continues the main 'forever' loop. But what if I need to go back in the middle of the current loop, as if the user pressed Back several times? -- Thanks, Feri.
participants (1)
-
Ferenc Wagner