home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2004 December / PCpro_2004_12.ISO / files / webserver / tsw / TSW_3.4.0.exe / Apache2 / spyce / *.* / automaton.spy < prev    next >
Encoding:
Text File  |  2004-05-18  |  2.1 KB  |  87 lines

  1. [[.import name=automaton]]
  2. [[.import name=session args="'session_dir', '/tmp', auto=10"]]
  3. [[\
  4. if not session.auto: session.auto = {
  5.   'name': '',
  6. }
  7.  
  8. step1send = [[spy:
  9.   <html><body>
  10.     <form action=automaton.spy method=post>
  11.       <table border=0>
  12.         <tr><td colspan=2>Name: <input type=text size=20></td></tr>
  13.         <tr>
  14.           <input type=hidden name=state value=step1>
  15.           <td></td>
  16.           <td align=right><input type=submit name=dir value="next"></td>
  17.         </tr>
  18.       </table>
  19.     </form>
  20.   </body></html>]]
  21. def step1recv():
  22.   if request.post1('dir') == 'next': return 'next'
  23.  
  24. step2send = [[spy:
  25.   <html><body>
  26.     <form action=automaton.spy method=post>
  27.       <table border=0>
  28.         <tr><td colspan=2>Age: <input type=text size=20></td></tr>
  29.         <tr>
  30.           <input type=hidden name=state value=step2>
  31.           <td align=left><input type=submit name=dir value="prev"></td>
  32.           <td align=right><input type=submit name=dir value="next"></td>
  33.         </tr>
  34.       </table>
  35.     </form>
  36.   </body></html>]]
  37. def step2recv():
  38.   if request.post1('dir') == 'prev': return 'prev'
  39.   if request.post1('dir') == 'next': return 'next'
  40.  
  41. step3send = [[spy:
  42.   <html><body>
  43.     <form action=automaton.spy method=post>
  44.       step3
  45.       <input type=hidden name=state value=step3>
  46.       <input type=submit name=dir value=prev>
  47.       <input type=submit name=dir value=next>
  48.     </form>
  49.   </body></html>]]
  50. def step3recv():
  51.   if request.post1('dir') == 'prev': return 'prev'
  52.   if request.post1('dir') == 'next': return 'next'
  53.  
  54. step4send = [[spy:
  55.   <html><body>
  56.     Thanks.
  57.   </body></html>]]
  58. def step4recv():
  59.   pass
  60.  
  61. automaton.define({
  62.   'step1': ( step1send, step1recv, {
  63.     'next': 'step2',
  64.   }),
  65.   'step2': ( step2send, step2recv, {
  66.     'next': 'step3',
  67.     'prev': 'step1',
  68.   }),
  69.   'step3': ( step3send, step3recv, {
  70.     'next': 'step4',
  71.     'prev': 'step2',
  72.   }),
  73.   'step4': ( step4send, step4recv, {
  74.   }),
  75. }, 'step1')
  76.  
  77. state = request.post1('state')
  78. automaton.step(state)
  79. ]]
  80.  
  81. [[--
  82. spyce file
  83. spyce inline
  84. function or method reference
  85. inline code
  86. --]]
  87.