home *** CD-ROM | disk | FTP | other *** search
- [[.import name=automaton]]
- [[.import name=session args="'session_dir', '/tmp', auto=10"]]
- [[\
- if not session.auto: session.auto = {
- 'name': '',
- }
-
- step1send = [[spy:
- <html><body>
- <form action=automaton.spy method=post>
- <table border=0>
- <tr><td colspan=2>Name: <input type=text size=20></td></tr>
- <tr>
- <input type=hidden name=state value=step1>
- <td></td>
- <td align=right><input type=submit name=dir value="next"></td>
- </tr>
- </table>
- </form>
- </body></html>]]
- def step1recv():
- if request.post1('dir') == 'next': return 'next'
-
- step2send = [[spy:
- <html><body>
- <form action=automaton.spy method=post>
- <table border=0>
- <tr><td colspan=2>Age: <input type=text size=20></td></tr>
- <tr>
- <input type=hidden name=state value=step2>
- <td align=left><input type=submit name=dir value="prev"></td>
- <td align=right><input type=submit name=dir value="next"></td>
- </tr>
- </table>
- </form>
- </body></html>]]
- def step2recv():
- if request.post1('dir') == 'prev': return 'prev'
- if request.post1('dir') == 'next': return 'next'
-
- step3send = [[spy:
- <html><body>
- <form action=automaton.spy method=post>
- step3
- <input type=hidden name=state value=step3>
- <input type=submit name=dir value=prev>
- <input type=submit name=dir value=next>
- </form>
- </body></html>]]
- def step3recv():
- if request.post1('dir') == 'prev': return 'prev'
- if request.post1('dir') == 'next': return 'next'
-
- step4send = [[spy:
- <html><body>
- Thanks.
- </body></html>]]
- def step4recv():
- pass
-
- automaton.define({
- 'step1': ( step1send, step1recv, {
- 'next': 'step2',
- }),
- 'step2': ( step2send, step2recv, {
- 'next': 'step3',
- 'prev': 'step1',
- }),
- 'step3': ( step3send, step3recv, {
- 'next': 'step4',
- 'prev': 'step2',
- }),
- 'step4': ( step4send, step4recv, {
- }),
- }, 'step1')
-
- state = request.post1('state')
- automaton.step(state)
- ]]
-
- [[--
- spyce file
- spyce inline
- function or method reference
- inline code
- --]]
-