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