packages feed

MFlow-0.4.5: Demos/SumView.hs

{-# OPTIONS  -XCPP #-}
module SumView (sumInView) where

-- #define ALONE -- to execute it alone, uncomment this
#ifdef ALONE
import MFlow.Wai.Blaze.Html.All
main= runNavigation "" $ transientNav grid
#else
import MFlow.Wai.Blaze.Html.All hiding(retry, page)
import Menu
#endif

sumInView= page $ p << "ask for three numbers in the same page and display the result."
              ++> p << "It is possible to modify the inputs and the sum will reflect it"
              ++> sumWidget
               
sumWidget=   pageFlow "sum" $ do
      n <- do
           n1 <- p << "Enter first number"  ++> getInt Nothing <++ br
           n2 <- p << "Enter second number" ++> getInt Nothing <++ br
           n3 <- p << "Enter third number"  ++> getInt Nothing <++ br
           return (n1+ n2 + n3)

          -- factoring out the button
          <**  br ++> pageFlow "button" (submitButton "submit")
           
      p <<  ("The result is: "++show n)  ++>  wlink () << b << " menu"
      <++ p << "you can change the numbers in the boxes to see how the result changes"

-- to run it alone, replace page by ask and uncomment the following line
--main= runNavigation "" $ transientNav sumWidget