X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/bee5d6b79f93e627eb105cd443701ac1975fd927..e85742797d25cb0711381d3f2a00e948285e6e71:/code/templates/list.tmpl diff --git a/code/templates/list.tmpl b/code/templates/list.tmpl index 88bab49..43de904 100644 --- a/code/templates/list.tmpl +++ b/code/templates/list.tmpl @@ -1,16 +1,18 @@ #from skeleton import skeleton +#from invirt.config import structs as config #extends skeleton +#import datetime #def title VM List #end def -#def createTable() +#def createForm() #if $cant_add_vm <p>$cant_add_vm</p> #else -<p>Create a new VM:</p> +<h2>Create a new VM</h2> #if $err <p class="error">We had a problem with your request:</p> #else if $varExists('new_machine') @@ -19,58 +21,110 @@ VM List <form action="create" method="POST"> <input type="hidden" name="back" value="list"/> <table> +#filter None $errorRow('create', $err) +#end filter <tr> <td>Name</td> - <td><input type="text" name="name" value="$defaults.name"/></td> + <td><input type="text" name="name" value="$defaults.name"/>.${config.dns.domains[0]}</td> </tr> +#filter None $errorRow('name', $err) +#end filter + <tr> + <td>Description</td> + <td><textarea name="description" rows="4" cols="60">$defaults.description</textarea></td> + </tr> +#filter None +$errorRow('description', $err) +#end filter <tr> <td>Memory</td> <td><input type="text" name="memory" value="$defaults.memory" size=3/> MiB ($max_memory max)</td> </tr> +#filter None $errorRow('memory', $err) +#end filter <tr> <td>Disk</td> - <td><input type="text" name="disk" value="$defaults.disk" size=3/> GiB (${"%0.1f" % ($max_disk-0.05)} max)</td> + <td><input type="text" name="disksize" value="$defaults.disk" size=3/> GiB (${"%0.1f" % ($max_disk-0.05)} max)</td> </tr> +#filter None $errorRow('disk', $err) +#end filter + <tr> + <td>HVM/ParaVM#slurp +#filter None +$helppopup('HVM/ParaVM')#slurp +#end filter +</td> + <td> +#filter None +$vmTypeList($defaults.type) +#end filter +</td> + </tr> +#filter None +$errorRow('vmtype', $err) +#end filter +#filter None +$errorRow('autoinstall', $err) +#end filter <tr> - <td>HVM/ParaVM$helppopup('hvm_paravm')</td> - <td> -#for $value, $name in (('hvm', 'HVM'), ('paravm', 'ParaVM')) - <input #slurp -#if $defaults.vmtype == $value then 'checked' else '' - type="radio" name="vmtype" value="$value">$name</input> -#end for - </td> + <td>Autoinstall#slurp +#filter None +$helppopup('Autoinstall')#slurp +#end filter +</td> + <td><input type="radio" name="cd_or_auto" id="cd_or_auto_auto"> +#filter None +$autoList($defaults.cdrom, "document.getElementById('cd_or_auto_auto').checked = true;document.getElementById('cdromlist').value = ''") + (experimental; 1-2 minutes, and you have a machine with empty root password.) +#end filter + </input> </tr> -$errorRow('vmtype', $err) <tr> <td>Boot CD</td> - <td>$cdromList($cdroms, $defaults.cdrom)</td> + <td><input type="radio" name="cd_or_auto" id="cd_or_auto_cd" checked> +#filter None +$cdromList($defaults.cdrom, "document.getElementById('cd_or_auto_cd').checked = true;document.getElementById('autoinstalllist').value = ''") +#end filter +</td> + </input> </tr> $errorRow('cdrom', $err) - <tr> - <td>Clone image?</td> - <td><input type="checkbox" name="clone_from" id="clone_from" value="ice3" onchange="onclone(event)"/> - (experimental; 1-2 minutes, and you have an etch machine; root pw is 'password'.) - <script type='text/javascript'>function onclone(e){ document.getElementById('cdromlist').value = ''; }</script></td> - </tr> $errorRow('cdrom', $err) <tr> <td>Owner</td> <td><input type="text" name="owner" value="$defaults.owner"/></td> </tr> +#filter None $errorRow('owner', $err) +#end filter </table> - <input type="submit" class="button" value="Create it!"/> + <input type="submit" class="button" value="Create it!"/><br /> + Windows notes: #slurp +#filter None +$helppopup('Windows')#slurp +#end filter </form> #end if #end def #def machineRow($machine) <tr> + <td rowspan="2"> + <form action="command" method="post"> + <input type="hidden" name="back" value="list"/> + <input type="hidden" name="machine_id" + value="$machine.machine_id"/> +<input type="submit" class="power #slurp +#if $machine.uptime then 'on' else 'off' +" name="action" value="#slurp +#if $machine.uptime then 'Power off' else 'Power on' +"/> + </form> + </td> <td><a href="info?machine_id=$machine.machine_id">$machine.name</a></td> <td>${machine.memory}M</td> <td>$machine.owner</td> @@ -83,60 +137,72 @@ $errorRow('cdrom', $err) #end if <td>#slurp #if $machine.uptime -$machine.uptime#slurp +${datetime.timedelta(seconds=int(machine.uptime))}#slurp #end if </td> <td>#slurp #if $has_vnc[$machine] == True <a href="vnc?machine_id=$machine.machine_id">Console</a>#slurp #else if $has_vnc[$machine] != 'Off' +#filter None $has_vnc[$machine] +#end filter #end if </td> - <td> - <form action="command" method="post"> - <input type="hidden" name="back" value="list"/> - <input type="hidden" name="machine_id" - value="$machine.machine_id"/> -<input type="submit" class="button" name="action" value="#slurp -#if $machine.uptime then 'Power off' else 'Power on' -"/> - </form> - </td> + </tr> + <tr> + <td colspan="7" style="padding-left: 1em; color: #666">$machine.description</td> </tr> #end def #def machineList($machines) - <table> + <table cellspacing="0" cellpadding="2"> <tr> + <th></th> <th>Name</th> <th>Memory</th> - <th>Owner</th> - <th>Administrator</th> + <th>Owner#slurp +#filter None +$helppopup('Owner')#slurp +#end filter +</th> + <th>Administrator#slurp +#filter None +$helppopup('Administrator')#slurp +#end filter +</th> <th>IP</th> <th>Uptime</th> <th>VNC</th> - <th></th> </tr> #for $machine in $machines: + #filter None $machineRow($machine) + #end filter #end for </table> + <script type="text/javascript" src="/static/stripe.js"></script> + <script type="text/javascript"> + document.observe("dom:loaded", function() { + stripe(\$('machinelist').getElementsByTagName('table')[0], + 'stripedrow'); + }); + </script> #end def #def body -<p style="font-size: 125%;">SIPB Virtual Servers is an <strong>alpha service</strong>. <a href="/static/about.html">What does this mean?</a></p> +<p style="font-size: 125%;"><a href="http://${config.web.hostname}">What is XVM?</a></p> #if not $machines <p>You don't currently control any VMs.</p> -#else - <p>You have the following VMs:</p> #end if <p><a href="list">refresh</a></p> <div id="machinelist"> + #filter None $machineList($machines) + #end filter </div> -<div id="createtable"> -$createTable() -</div> +#filter None +$createForm() +#end filter #end def