Subroutine O4W_MMM_PIZZA(CTLENTID, EVENT, REQUEST)
$Insert O4WCOMMON
$Insert O4WEQUATES
pageOptions = o4wmobileoptions("page","b"):O4WDataStyle("", "data-add-back-btn", "true")
hdrOptions = o4wmobileoptions("header")
contentOptions = o4wmobileoptions("content")
dialogOptions = o4wmobileoptions("dialog","b")
Begin Case
Case EVENT _EQC "CREATE"
O4WSetMobile(1)
O4WFORM()
* build first page of mobile application
O4WSectionStart("menuPage", pageOptions)
O4WSectionStart("menuHdr", hdrOptions)
O4WHeader("mmmPizza Menu", 3)
* build the navigation bar
Gosub makeNav
O4WSectionEnd("menuHdr")
O4WBreak()
O4WBreak()
O4WSectionStart("menuContent", O4WMarkedOptions('1'):contentOptions)
Gosub buildMenu
O4WButton("Submit Order", "BTN_SUBMIT", O4WMarkedOptions('1'))
O4WQualifyEvent("BTN_SUBMIT", "CLICK")
O4WSectionEnd("menuContent")
O4WSectionEnd("menuPage")
* build second page
O4WSectionStart("locPage", pageOptions)
O4WSectionStart("locHdr", hdrOptions)
O4WHeader("mmmPizza Locations", 3)
* use same menu bar
Gosub makeNav
O4WSectionEnd("locHdr")
O4WBreak()
O4WBreak()
O4WSectionStart("locContent", O4WMarkedOptions('1'):contentOptions)
* use standard O4W API to build this output
O4WTableStart("locTable", o4wmobiletableoptions("1", "", "33"))
O4WSetCell(1, 1, '', o4wtablecelloptions("","","1")) ;* mark as a 'header'
O4WText("Location: ")
O4WSetCell(1, 2)
address = "99 Kinderkamack Rd":@VM:"First Floor":@VM:"Westwood, NJ 07675"
* O4WText(address)
g_address = Delete(address, 1, 2, 0) ;* remove the 2nd address line for google display
Convert @VM To "," In g_address
O4WText(address)
o4wsetcell(2,2)
O4WLink("Map", O4W_LINKTYPE_NORMAL$, "http://maps.google.com/maps?q=":g_address, 'mapDisplayTab', '', O4WMobileButtonOptions('','','b'))
O4WTableEnd("locTable")
O4WSectionEnd("locContent")
O4WSectionEnd("locPage")
* build a section for any dialogs we want to pop up
o4wsectionstart("menuDialogPage", o4wmarkedoptions("0"):dialogOptions)
O4WText("Thanks for your order! Your order number is pending...")
o4wsectionend("menuDialogPage")
Case event _eqc "CLICK"
O4WResponse()
* Load in the submitted order
BSTICKS = O4WGetValue("BSTICKS")
GBREAD = O4WGetValue("GBREAD")
WINGS = O4WGetValue("WINGS")
* Display an acknowledgement
o4wsectionstart("menuDialogPage", dialogOptions:o4wresponseoptions())
O4WSectionStart("dlgHdr", hdrOptions)
O4WHeader("mmmPizza Order", 3)
O4WSectionEnd("dlgHdr")
O4WBreak()
O4WBreak()
O4WSectionStart("dlgContent", O4WMarkedOptions('0'):contentOptions)
* use standard O4W API to build this output
O4WText("Thanks for your order! We're busy baking it right right...your order number is #":DATE():TIME())
O4WSectionEnd("dlgContent")
o4wsectionend("menuDialogPage")
O4WDialog("menuDialogPage", "Order Received")
End Case
Return 0
makeNav:
* create menu bar
o4wsectionstart("pizzaNavbar", O4WMobileOptions("navbar"))
o4wliststart(0)
o4wlistitem()
O4WLink("Menu", O4W_LINKTYPE_LOCAL$, "menuPage")
o4wlistitem()
O4WLink("Location", O4W_LINKTYPE_LOCAL$, "locPage")
o4wlistend()
o4wsectionend("pizzaNavbar")
Return
buildMenu:
O4WSectionStart("menuGroups", o4wmobileoptions("collapsible-set"):o4wmarkedoptions("0"))
O4WSectionStart("appDetails", o4wmobileoptions("collapsible"):o4wmarkedoptions("0"))
o4wheader("Appetizers", 3)
O4WText("Bread Sticks", "", O4WTextOptions("BSTICKS"))
O4WRadioButton("No", "0", "BSTICKS", "BSTICKS_0", o4wmarkedoptions(1))
O4WRadioButton("Yes", "1", "BSTICKS", "BSTICKS_1")
o4wbreak()
O4WText("Garlic Bread", "", O4WTextOptions("GBREAD"))
O4WRadioButton("No", "0", "GBREAD", "GBREAD_0", o4wmarkedoptions(1))
O4WRadioButton("Yes", "1", "GBREAD", "GBREAD_1")
o4wbreak()
O4WText("Hot Wings", "", O4WTextOptions("WINGS"))
O4WListBox("None", "0", "WINGS", "", "WINGS_0", o4wmarkedoptions(1))
O4WListBox("Half Dozen", "6", "WINGS", "", "WINGS_6")
O4WListBox("Dozen", "12", "WINGS", "", "WINGS_12")
O4WListBox("Jumbo", "24", "WINGS", "", "WINGS_24")
o4wbreak()
o4wsectionEnd("appDetails")
O4WSectionStart("entreeDetails", o4wmobileoptions("collapsible"):o4wmarkedoptions("0"))
o4wheader("Entrees", 3)
O4WText("Pizza", "", O4WTextOptions("PIZZA"))
O4WListBox("Personal", "1", "PIZZA", "", "PIZZA_1", o4wmarkedoptions(1))
O4WListBox("Medium", "2", "PIZZA", "", "PIZZA_2")
O4WListBox("Large", "3", "PIZZA", "", "PIZZA_3")
o4wbreak()
o4wsectionstart("toppingsChoices", o4wmobileoptions("fieldcontain"):o4wmarkedoptions("0"))
opts = O4WFieldsetOptions("Toppings"):O4WMOBILEOPTIONS("controlgroup"):o4wmarkedoptions("0")
o4wsectionstart("toppingsFieldset", opts)
O4WCheckBox("Pepperoni", "P", "TOPPINGS", "TOPPINGS_P")
O4WCheckBox("Sausage", "S", "TOPPINGS", "TOPPINGS_S")
O4WCheckBox("Ham", "H", "TOPPINGS", "TOPPINGS_H")
O4WCheckBox("Meatball", "M", "TOPPINGS", "TOPPINGS_M")
O4WCheckBox("Chicken", "C", "TOPPINGS", "TOPPINGS_C")
o4wsectionend("toppingsFieldset")
o4wsectionstart("toppingsChoices")
o4wbreak()
O4WText("Sauce", "", O4WTextOptions("SAUCE"))
O4WRadioButton("Red", "0", "SAUCE", "SAUCE_0", o4wmarkedoptions(1))
O4WRadioButton("White (Garlic)", "1", "SAUCE", "SAUCE_1")
o4wbreak()
o4wsectionEnd("entreeDetails")
O4WSectionStart("drinkDetails", o4wmobileoptions("collapsible"):o4wmarkedoptions("0"))
o4wheader("Drinks", 3)
o4wsectionstart("sodaChoices", o4wmobileoptions("fieldcontain"):o4wmarkedoptions("0"))
o4wsectionstart("sodaFieldset", O4WFieldsetOptions("Soda"):O4WMOBILEOPTIONS("controlgroup"):o4wmarkedoptions("0"))
O4WCheckBox("Coke", "C", "SODA", "SODA_C")
O4WCheckBox("Diet Coke", "D", "SODA", "SODA_D")
O4WCheckBox("Sprite", "S", "SODA", "SODA_S")
o4wsectionend("sodaFieldset")
o4wsectionend("sodaChoices")
o4wbreak()
o4wsectionstart("juiceChoices", o4wmobileoptions("fieldcontain"):o4wmarkedoptions("0"))
o4wsectionstart("juiceFieldset", O4WFieldsetOptions("Juices"):O4WMOBILEOPTIONS("controlgroup"):o4wmarkedoptions("0"))
O4WCheckBox("Apple", "A", "JUICE", "JUICE_A")
O4WCheckBox("Orange", "O", "JUICE", "JUICE_O")
O4WCheckBox("Cranberry", "C", "JUICE", "JUICE_C")
o4wsectionend("juiceFieldset")
o4wsectionend("juiceChoices")
o4wbreak()
o4wsectionEnd("drinkDetails")
O4WSectionStart("dessertDetails", o4wmobileoptions("collapsible"):o4wmarkedoptions("0"))
o4wheader("Desserts", 3)
O4WText("Cheesecake", "", O4WTextOptions("CCAKE"))
O4WRadioButton("No", "0", "CCAKE", "CCAKE_0", o4wmarkedoptions(1))
O4WRadioButton("Yes", "1", "CCAKE", "CCAKE_1")
o4wbreak()
O4WText("Italian Ice", "", O4WTextOptions("ICE"))
O4WListBox("None", "0", "ICE", "", "ICE_0", o4wmarkedoptions(1))
O4WListBox("Cherry", "1", "ICE", "", "ICE_1")
O4WListBox("Lemon", "2", "ICE", "", "ICE_2")
o4wbreak()
o4wsectionEnd("dessertDetails")
O4WSectionEnd("menuGroups")
return