A monster checkin, with a variety of changes to the web
[invirt/packages/invirt-web.git] / templates / skeleton.tmpl
index 9c1c891..7964aca 100644 (file)
@@ -1,9 +1,111 @@
+#from functions import functions
+#extends functions
+
+#def full_body
+<!DOCTYPE html
+PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html>
-<head><title>$title</title></head>
-<body>
+<head><title>$title</title>
+  <link href="static/favicon.ico" type="image/x-icon" rel="shortcut icon">
+  <link rel="stylesheet" href="static/style.css" type="text/css" />
+  <link rel="stylesheet" href="static/layout.css" type="text/css" media="screen" />
+  <script type="text/javascript" src="static/prototype.js"></script>
+  <script type="text/javascript">
+var helpWin = null;
+function closeWin(){
+       if (helpWin != null){
+               if(!helpWin.closed)
+                       helpWin.close();
+       }
+}
+
+function helppopup(name){
+   closeWin()
+   helpWin = window.open("help?simple=true&subject="+encodeURIComponent(name), "Help",
+"status, height = 300, width = 400");
+   if (window.focus){helpWin.focus();}
+   return false;
+}
+
+Ajax.Responders.register({
+  onCreate: function(){
+    if (Ajax.activeRequestCount > 0) {
+       document.getElementById("loadingnotice").style.display = 'block';
+    }
+  }, 
+  onComplete: function(){
+    if (Ajax.activeRequestCount == 0) {
+      document.getElementById("loadingnotice").style.display = 'none';
+    } 
+  }
+});
+function replaceFunc(transport) {
+  try {
+    d = transport.responseText.evalJSON();
+  } catch (e) {
+    \$('body').innerHTML = '<pre>'+transport.responseText+'</pre>'
+    return;
+  }
+  for(key in d) {
+    \$(key).innerHTML = d[key];
+  }
+}
+
+function jsFormSubmit(location, elt){
+  new Ajax.Request(location, {method: 'post', 
+  parameters: Form.serialize(elt)+'&js=true', 
+  onSuccess: replaceFunc,
+  onComplete: function() {Form.enable(elt);}
+  });
+  Form.disable(elt);
+  return false;
+}
+
+function rowFormSubmit(elt, retpage){
+  new Ajax.Request('command', {method: 'post', 
+  parameters: Form.serialize(elt)+'&js='+retpage, 
+  onSuccess: replaceFunc
+  });
+  return false;
+}
+
+window.onload = {
+  //Fix bug with disabled elements
+  $$('form').each(Form.enable);
+}
+
+</script>
+</head>
+<body id="body">
+
+<div id="err">
+#if $varExists('error_text')
+<p>STDERR:</p><pre>$error_text</pre>
+#end if
+</div>
+
+#if not $varExists('simple') or not $simple
 <p>[You are logged in as $user.username.]</p>
+
+<div class="navigation">
+<p><a href="list">List</a> 
+#if $varExists('machine')
+<a href="info?machine_id=$machine.machine_id">Info</a>
+<a href="vnc?machine_id=$machine.machine_id">Console</a>
+#end if
+<a href="help">Help</a></p>
+#end if
+</div>
+
+<div id="loadingnotice" class="loadingnotice">LOADING</div>
+<div id="result" class="result"></div>
+
 $body
+#if not $varExists('simple') or not $simple
 <hr />
 Questions? Contact <a href="mailto:sipb-xen-dev@mit.edu">sipb-xen-dev@mit.edu</a>.
+#end if
 </body>
 </html>
+#end def