Upgrade info page to Mako, and use REST-style URLs.
[invirt/packages/invirt-web.git] / code / templates / info.mako
diff --git a/code/templates/info.mako b/code/templates/info.mako
new file mode 100644 (file)
index 0000000..5af29bb
--- /dev/null
@@ -0,0 +1,102 @@
+<%page expression_filter="h"/>
+<%inherit file="skeleton.mako" />
+
+<%def name="title()">
+Info on ${machine.name}
+</%def>
+
+<%def name="infoTable()">
+<h2>Info</h2>
+<table>
+  % for key, value in fields:
+  <tr><td>${key}:</td><td>${value}</td></tr>
+  % endfor
+</table>
+</%def>
+
+<%def name="commands()">
+% if on:
+ % if not machine.type.hvm:
+  Console access: type
+  <tt>ssh ${machine.name}@${config.console.hostname}</tt>
+  on Athena. <a href="https://xvm.scripts.mit.edu/wiki/SerialConsole">(more info)</a>
+ % elif has_vnc:
+  <strong><a href="machine/${machine.machine_id}/vnc">Get Console</a></strong>
+ % else:
+  VNC console not enabled; still booting?
+ % endif
+% endif
+<form action="command" method="POST">
+  <input type="hidden" name="back" value="info"/>
+  <input type="hidden" name="machine_id" value="${machine.machine_id}"/>
+  <div>
+       % if on:
+       <button type="submit" class="button" name="action" value="Power off">Power off (hard)</button>
+       <button type="submit" class="button" name="action" value="Shutdown">Shut down</button>
+       <input type="submit" class="button" name="action" value="Reboot"/>
+       % else:
+       <input type="submit" class="button" name="action" value="Power on"/>
+       % endif
+  </div>
+  <div>
+    Boot CD:
+${self.fn.cdromList()}
+  </div>
+  <div>
+      <input type="submit" class="button" name="action" value="Delete VM" onclick="return confirm('Are you sure that you want to delete this VM?');"/>
+  </div>
+</form>
+</%def>
+
+<%def name="modifyForm()">
+% if err:
+<p class="error">We had a problem with your request:</p>
+% elif new_machine:
+<p>Successfully modified.</p>
+% endif
+% if on:
+(To edit ram, disk size, or machine name, turn off the machine first.)
+% endif
+<form action="modify" method="POST">
+  <input type="hidden" name="machine_id" value="${defaults.machine_id}"/>
+  <table>
+    <tr><td>Description:</td><td colspan="2"><textarea name="description" rows="4" cols="60">${defaults.description}</textarea></td></tr>
+    <tr><td>Owner${self.fn.helppopup("Owner")}:</td><td><input type="text" name="owner", value="${defaults.owner}"/></td></tr>
+${self.fn.errorRow('owner', err)}
+    <tr><td>Administrator${self.fn.helppopup("Administrator")}:</td><td><input type="text" name="admin", value="${defaults.administrator}"/></td></tr>
+${self.fn.errorRow('administrator', err)}
+    <tr><td>Contact email:</td><td><input type="text" name="contact" value="${defaults.contact}"/></td></tr>
+${self.fn.errorRow('contact', err)}
+% if not on:
+    <tr><td>Machine Name:</td><td><input type="text" name="name" value="${defaults.name}"/>.${config.dns.domains[0]}</td></tr>
+${self.fn.errorRow('name', err)}
+    <tr>
+      <td>HVM/ParaVM${self.fn.helppopup('HVM/ParaVM')}</td>
+      <td>${self.fn.vmTypeList(defaults.type)}</td>
+    </tr>
+    <tr><td>Ram:</td><td><input type="text" size=3 name="memory" value="${defaults.memory}"/>MiB (max ${max_mem})</td></tr>
+${self.fn.errorRow('memory', err)}
+    <tr><td>Disk:</td><td><input type="text" size=3 name="disksize" value="${defaults.disk}"/>GiB (max ${max_disk})</td><td>WARNING: Modifying disk size may corrupt your data.</td></tr>
+${self.fn.errorRow('disk', err)}
+% else:
+${self.fn.errorRow('name', err)}
+${self.fn.errorRow('memory', err)}
+${self.fn.errorRow('disk', err)}
+% endif
+    <tr><td><input type="submit" class="button" name="action" value="Change"/></td></tr>
+  </table>
+</form>
+</%def>
+
+<div id="info">
+  ${infoTable()}
+</div>
+
+<h2>Commands</h2>
+<div id="commands">
+  ${commands()}
+</div>
+<h2>Settings</h2>
+<div id="modify">
+  ${modifyForm()}
+</div>