~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to www/apps/tutorial/__init__.py

  • Committer: mattgiuca
  • Date: 2008-03-28 06:58:51 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:715
Tutorial: Added "Reset" button to exercises, so you can get back to the
original "partial solution".
    tutorial/init.py: Stores the backed up text hidden in the HTML so it can
    be retrieved by the client at will.
        Added reset button which calls JavaScript.
    tutorial.js: Added resetexercise function (event handler for reset button)
        which replaces the user code with the stored backed up partial soln.

Show diffs side-by-side

added added

removed removed

Lines of Context:
422
422
                exercisedesc = rst(innerXML(elem).strip())
423
423
            if elem.tagName == "partial":
424
424
                exercisepartial= getTextData(elem) + '\n'
 
425
    exercisepartial_backup = exercisepartial
425
426
 
426
427
    # If the user has already saved some text for this problem, or submitted
427
428
    # an attempt, then use that text instead of the supplied "partial".
444
445
        req.write("<div>%s</div>\n" % exercisedesc)
445
446
    filename = cgi.escape(cjson.encode(exercisesrc), quote=True)
446
447
    exercisepartial = cgi.escape(exercisepartial)
447
 
    req.write('<textarea id="textarea_exercise%d" class="exercisebox" '
448
 
        'onkeypress="return catch_textbox_input(&quot;exercise%d&quot;, %s, '
449
 
            'event.keyCode)" '
450
 
        'onchange="set_saved_status(&quot;exercise%d&quot;, %s, '
451
 
            '&quot;Save&quot;)" '
452
 
        'cols="80" rows="%s">%s</textarea>'
 
448
    req.write("""<input id="input_resettext_exercise%d" type="hidden"
 
449
    value="%s" />"""
 
450
        % (exerciseid, exercisepartial_backup))
 
451
    req.write("""<textarea id="textarea_exercise%d" class="exercisebox"
 
452
    onkeypress="return catch_textbox_input(&quot;exercise%d&quot;, %s,
 
453
        event.keyCode)"
 
454
    onchange="set_saved_status(&quot;exercise%d&quot;, %s,
 
455
        &quot;Save&quot;)"
 
456
    cols="80" rows="%s">%s</textarea>"""
453
457
        % (exerciseid, exerciseid, filename, exerciseid, filename,
454
458
            rows, exercisepartial))
455
459
    req.write("""\n<div class="exercisebuttons">
 
460
  <input type="button" value="Reset"
 
461
    id="resetbutton_exercise%d"
 
462
    onclick="resetexercise(&quot;exercise%d&quot;, %s)"
 
463
    title="Reload the original partial solution for this exercise" />
456
464
  <input type="button" value="Saved" disabled="disabled"
457
465
    id="savebutton_exercise%d"
458
466
    onclick="saveexercise(&quot;exercise%d&quot;, %s)"
467
475
</div>
468
476
<div class="testoutput">
469
477
</div>
470
 
""" % (exerciseid, exerciseid, filename, exerciseid, filename,
471
 
       exerciseid, exerciseid, filename))
 
478
""" % (exerciseid, exerciseid, filename, exerciseid, exerciseid, filename,
 
479
        exerciseid, filename,
 
480
        exerciseid, exerciseid, filename))
472
481
    # Write the "summary" - whether this problem is complete and how many
473
482
    # attempts it has taken.
474
483
    req.write("""<div class="problem_summary">