A monster checkin, with a variety of changes to the web
[invirt/packages/invirt-web.git] / templates / skeleton.tmpl
index 1269786..7964aca 100644 (file)
@@ -1,8 +1,16 @@
+#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>
   <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(){
@@ -19,11 +27,68 @@ function helppopup(name){
    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>
+<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>
@@ -31,6 +96,11 @@ function helppopup(name){
 #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 />
@@ -38,3 +108,4 @@ Questions? Contact <a href="mailto:sipb-xen-dev@mit.edu">sipb-xen-dev@mit.edu</a
 #end if
 </body>
 </html>
+#end def