1 <?xml version="1.0" encoding="iso-8859-1"?> 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 3 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.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>System Configurator</title> 8 <meta name="generator" content="amaya 8.1a, see http://www.w3.org/Amaya/" /> 9 <link xmlns:xlink="http://www.w3.org/1999/xlink" href="styles/styles.css" rel="stylesheet" type="text/css" /> 10 <script type="text/javascript" src="scripts/sarissa.js"> </script> 11 <script type="text/javascript" src="scripts/XSLForms.js"> </script> 12 </head> 13 14 <body> 15 <h1>System Configurator</h1> 16 17 <form method="post" action="" template:element="configuration"> 18 <div id="left"> 19 <div template:element="details" class="details"> 20 <h2>Base System</h2> 21 22 <p template:element="base-system">Model 23 <select template:attribute="value" name="{template:this-attribute()}" 24 onchange=" 25 requestUpdate('cpu', '{template:this-attribute()}', 26 '{template:other-elements(../cpu)}', '{template:other-attributes('value', ../cpu)}', 27 '/configuration/details/cpu'); 28 requestUpdate('memory', '{template:this-attribute()}', 29 '{template:other-elements(../../memory)}', '{template:other-attributes('value', ../../memory/memory-unit)}', 30 '/configuration/memory'); 31 requestUpdate('hard-disks', '{template:this-attribute()}', 32 '{template:other-elements(../../hard-disks)}', 33 '{template:other-attributes('value', ../../hard-disks/hard-disk)}', '/configuration/hard-disks')"> 34 <option template:element="base-system-enum" template:expr="@value-is-set" template:expr-attr="selected" template:value="@value" 35 value="{@value}"></option> 36 </select> 37 </p> 38 39 <h2>Processor</h2> 40 41 <p template:element="cpu" template:id="cpu-node" id="{template:this-element()}">CPU 42 <select template:attribute="value" name="{template:this-attribute()}"> 43 <option template:element="cpu-enum" template:expr="@value-is-set" template:expr-attr="selected" template:value="@value" 44 value="{@value}"></option> 45 </select> 46 </p> 47 </div> 48 49 <div class="memory" template:element="memory"> 50 <h2>Memory</h2> 51 52 <div template:id="memory-node" id="{template:this-element()}"> 53 <p template:element="memory-unit">Memory unit 54 <select template:attribute="value" name="{template:this-attribute()}"> 55 <option template:element="memory-unit-enum" template:expr="@value-is-set" template:expr-attr="selected" template:value="@value" 56 value="{@value}"></option> 57 </select> 58 59 <input type="submit" value="Remove" 60 name="remove-memory-unit={template:this-element()}" /> 61 </p> 62 63 <p> 64 <input type="submit" value="Add memory" 65 name="add-memory-unit={template:this-element()}" /> 66 </p> 67 </div> 68 </div> 69 </div> 70 <div id="right"> 71 <div class="hard-disks" template:element="hard-disks"> 72 <h2>Hard Disks</h2> 73 74 <div template:id="hard-disks-node" id="{template:this-element()}"> 75 <p template:element="hard-disk">Hard disk drive 76 <select template:attribute="value" name="{template:this-attribute()}"> 77 <option template:element="hard-disk-enum" template:expr="@value-is-set" template:expr-attr="selected" template:value="@value" 78 value="{@value}"></option> 79 </select> 80 81 <input type="submit" value="Remove" 82 name="remove-hard-disk={template:this-element()}" /> 83 </p> 84 85 <p> 86 <input type="submit" value="Add hard disk" 87 name="add-hard-disk={template:this-element()}" /> 88 </p> 89 </div> 90 </div> 91 92 <div template:element="storage" class="storage"> 93 <h2>Additional Storage</h2> 94 95 <p template:element="storage-unit">Storage unit 96 <select template:attribute="value" name="{template:this-attribute()}" 97 onchange="requestUpdate('accessories', '{template:other-attributes('value', ../storage-unit)}', '{template:other-elements(../../accessories)}', '{template:other-list-attributes('accessory-enum', 'value', ../../accessories)}', '/configuration/accessories')"> 98 99 <option template:element="storage-unit-enum" template:expr="@value-is-set" template:expr-attr="selected" template:value="@value" 100 value="{@value}"></option> 101 </select> 102 103 <input type="submit" value="Remove" 104 name="remove-storage-unit={template:this-element()}" /> 105 </p> 106 107 <p> 108 <input type="submit" value="Add storage" 109 name="add-storage-unit={template:this-element()}" /></p> 110 </div> 111 112 <div template:element="accessories" template:id="accessories-node" id="{template:this-element()}" class="accessories"> 113 <h2>Accessories</h2> 114 115 <select name="{template:list-attribute('accessory-enum', 'value')}" multiple="multiple"> 116 <option template:element="accessory-enum" template:expr="@value-is-set" template:expr-attr="selected" template:value="@value" 117 value="{@value}"></option> 118 </select> 119 </div> 120 </div> 121 <div id="bottom"> 122 <div template:element="peripherals" class="peripherals"> 123 <h2>Input Devices</h2> 124 125 <p template:element="keyboard">Keyboard 126 <select template:attribute="value" name="{template:this-attribute()}"> 127 <option template:element="keyboard-enum" template:expr="@value-is-set" template:expr-attr="selected" template:value="@value" 128 value="{@value}"></option> 129 </select> 130 </p> 131 132 <p template:element="mouse">Mouse 133 <select template:attribute="value" name="{template:this-attribute()}"> 134 <option template:element="mouse-enum" template:expr="@value-is-set" template:expr-attr="selected" template:value="@value" 135 value="{@value}"></option> 136 </select> 137 </p> 138 139 <h2>Display</h2> 140 141 <p template:element="screen">Screen 142 <select template:attribute="value" name="{template:this-attribute()}"> 143 <option template:element="screen-enum" template:expr="@value-is-set" template:expr-attr="selected" template:value="@value" 144 value="{@value}"></option> 145 </select> 146 </p> 147 </div> 148 149 <div class="price"> 150 <h2>Price</h2> 151 152 <p>Total for this configuration: 153 <span template:value="sum(/configuration//*[@value-is-set]/@price)"></span></p> 154 155 <p> 156 <input type="submit" value="Update!" name="update" /> 157 <input type="submit" value="Export!" name="export" /></p> 158 </div> 159 </div> 160 </form> 161 </body> 162 </html>