1 <?xml version="1.0" encoding="iso-8859-1"?> 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" 3 "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> 4 <html xmlns="http://www.w3.org/1999/xhtml" 5 xmlns:template="http://www.boddie.org.uk/ns/xmltools/template"> 6 <head> 7 <title>Questionnaire Editor</title> 8 <link xmlns:xlink="http://www.w3.org/1999/xlink" href="styles/styles.css" 9 rel="stylesheet" type="text/css" /> 10 </head> 11 12 <body template:element="questionnaire"> 13 <h1>Questionnaire Editor</h1> 14 15 <form method="POST" action="" enctype="multipart/form-data"> 16 17 <p> 18 Either import a previously generated XML file: 19 <input type="file" name="importfile" /> 20 <input type="submit" value="Import" name="import" /> 21 </p> 22 23 <p class="error" template:if="@error">The file could not be loaded.</p> 24 25 <div class="questionnaire"> 26 27 <p>Or enter questions and possible responses below.</p> 28 29 <table class="questionnaire"> 30 <tbody template:element="question" template:init="no"> 31 <tr> 32 <th class="question"> 33 Question #<span template:value="count(preceding-sibling::question) + 1">n</span><br/> 34 <span class="control"> 35 <input type="submit" value="Move to..." name="..." template:selector-field="move-question" /> 36 <select template:attribute-field="destination"> 37 <option template:select="../question" template:value="position()" value="{position()}"></option> 38 </select> 39 </span> 40 </th> 41 <td class="question"> 42 <textarea cols="40" rows="4" template:attribute-area="question-text,insert" 43 name="...">Question</textarea> 44 </td> 45 <td class="question-options"> 46 <input type="submit" value="Remove question" name="..." template:selector-field="remove-question" /> 47 </td> 48 </tr> 49 <tr> 50 <th class="response">Response</th> 51 <td class="response"> 52 <input type="checkbox" template:attribute-button="choice-response,multiple,checked" 53 name="..." value="choice" /> Allow multiple choices... 54 </td> 55 <td class="response"> 56 <input type="submit" value="Add choice" name="..." template:selector-field="add-choice,choice" /> 57 </td> 58 </tr> 59 <tr template:element="choice" template:init="no"> 60 <td class="choice"> 61 <select template:multiple-choice-field="response-type,value" name="..."> 62 <option template:multiple-choice-value="response-type-enum,value,selected,text()"></option> 63 </select> 64 </td> 65 <td class="choice"> 66 <input type="text" size="40" template:attribute-field="response-choice" 67 name="..." value="..." /> 68 </td> 69 <td class="choice-options"> 70 <input type="submit" value="Remove choice" name="..." template:selector-field="remove-choice" /> 71 </td> 72 </tr> 73 </tbody> 74 </table> 75 76 </div> 77 78 <!-- Repeat the questionnaire in preview mode. --> 79 80 <div class="preview" template:if="question"> 81 82 <p>The preview of your questionnaire is shown here:</p> 83 84 <div class="shadow"> 85 86 <table class="preview"> 87 <tbody template:element="question" template:output="true" template:init="no"> 88 <tr> 89 <th class="question">Question #<span template:value="count(preceding-sibling::question) + 1">n</span></th> 90 <td class="question"> 91 <span template:value="@question-text">Question</span> 92 </td> 93 </tr> 94 <tr> 95 <th class="response">Response</th> 96 <td class="response"> 97 <div template:element="choice" template:init="no"> 98 <p template:if="@response-choice != '' or not(response-type/@value = 'text')" xml:space="preserve"> 99 <input template:if="not(response-type/@value = 'text')" 100 type="{template:choice(../@choice-response = 'multiple', 'checkbox', 'radio')}" 101 name="_unused" value="..." /> 102 <span template:value="@response-choice">Choice</span> 103 </p> 104 <p template:if="response-type/@value and not(response-type/@value = 'choice')"> 105 <input type="text" size="40" name="_unused" /> 106 </p> 107 </div> 108 </td> 109 </tr> 110 </tbody> 111 </table> 112 113 </div> 114 115 </div> 116 117 <div class="operations"> 118 119 <p> 120 <input type="submit" value="Add question" name="add-question" /> to make 121 the questionnaire longer. 122 </p> 123 124 <p> 125 <input type="submit" value="Update" name="update" /> to refresh the preview. 126 </p> 127 128 <p> 129 <input type="submit" value="Export" name="export" /> to produce an XML file 130 containing the questions and responses. 131 </p> 132 133 <p> 134 <input type="submit" value="Finish" name="finish" /> when all the questions 135 and responses are ready. 136 </p> 137 138 </div> 139 140 </form> 141 142 </body> 143 </html>