Removed the Javascript, since I realized that
authorEric Price <ecprice@mit.edu>
Sat, 20 Oct 2007 14:14:51 +0000 (10:14 -0400)
committerEric Price <ecprice@mit.edu>
Sat, 20 Oct 2007 14:14:51 +0000 (10:14 -0400)
 - The way it was was worthless
 - The architecture has serious trouble supporting useful js

svn path=/trunk/web/; revision=207

templates/functions.py
templates/info.tmpl
templates/list.tmpl
templates/main.py
templates/skeleton.py
templates/skeleton.tmpl

index 27caad7..3cfd8f2 100644 (file)
@@ -33,8 +33,8 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.0rc8'
 __CHEETAH_versionTuple__ = (2, 0, 0, 'candidate', 8)
-__CHEETAH_genTime__ = 1192883107.2568331
-__CHEETAH_genTimestamp__ = 'Sat Oct 20 08:25:07 2007'
+__CHEETAH_genTime__ = 1192889324.134064
+__CHEETAH_genTimestamp__ = 'Sat Oct 20 10:08:44 2007'
 __CHEETAH_src__ = 'functions.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Oct 20 07:34:59 2007'
 __CHEETAH_docstring__ = 'Autogenerated by CHEETAH: The Python-Powered Template Engine'
index 29b5907..8baeab7 100644 (file)
@@ -15,18 +15,8 @@ Info on $machine.name
 #end def
 
 #def commands()
-<script>
-function commandButton(elt, action){
-  form = elt.up('', 4);
-  cdrom = Form.serialize(form, true).cdrom;
-  new Ajax.Request('command', {method: 'post', 
-  parameters: 'machine_id=$machine.machine_id&js=info&cdrom='+cdrom+'&action='+action,
-  onSuccess: replaceFunc
-  });
-  return false;
-}
-</script>
 <form action="command" action="POST">
+  <input type="hidden" name="back" value="info"/>
   <input type="hidden" name="machine_id" value="$machine.machine_id"/>
   <table>
     
@@ -43,11 +33,11 @@ function commandButton(elt, action){
     </td></tr>
       <tr>
        #if $on
-       <td><input type="submit" class="button" name="action" value="Power off" onclick="return commandButton(this, 'Power off');"/></td>
-       <td><input type="submit" class="button" name="action" value="Shutdown" onclick="return commandButton(this, 'Shutdown');"/></td>
-       <td><input type="submit" class="button" name="action" value="Reboot" onclick="return commandButton(this, 'Reboot');"/></td>
+       <td><input type="submit" class="button" name="action" value="Power off"/></td>
+       <td><input type="submit" class="button" name="action" value="Shutdown"/></td>
+       <td><input type="submit" class="button" name="action" value="Reboot"/></td>
        #else
-       <td><input type="submit" class="button" name="action" value="Power on" onclick="return commandButton(this, 'Power on');"/></td>
+       <td><input type="submit" class="button" name="action" value="Power on"/></td>
        #end if
       <td>Boot CD:</td>
       <td>$cdromList($cdroms)</td>
@@ -69,7 +59,7 @@ function commandButton(elt, action){
 (To edit ram, disk size, or machine name, turn off the machine first.)
 #end if
 </p>
-<form action="modify" method="POST" onsubmit="return jsFormSubmit('modify', this);">
+<form action="modify" method="POST">
   <input type="hidden" name="machine_id" value="$defaults.machine_id"/>
   <table>
     <tr><td>Owner${helppopup("owner")}:</td><td><input type="text" name="owner", value="$defaults.owner"/></td></tr>
index 68f0858..50022b2 100644 (file)
@@ -16,7 +16,8 @@ List of your VMs
 #else if $varExists('new_machine')
 <p>Congratulations! You successfully created a new VM called $new_machine.</p>
 #end if
-    <form action="create" method="POST" onsubmit="return jsFormSubmit('create', this);">
+    <form action="create" method="POST">
+    <input type="hidden" name="back" value="list"/>
       <table>
       $errorRow('create', $err)
        <tr>
@@ -84,7 +85,8 @@ $has_vnc[$machine]
 #end if
 </td>
        <td>
-         <form action="command" method="post" onsubmit="return rowFormSubmit(this, 'list');">
+         <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
@@ -119,7 +121,7 @@ $has_vnc[$machine]
 #else
     <p>You have the following VMs:</p>
 #end if
-    <p><a href="list" onclick="new Ajax.Updater('machinelist', 'list?js=machinelist', {method: 'get' });return false">refresh</a></p>
+    <p><a href="list">refresh</a></p>
     <div id="machinelist">
     $machineList($machines)
     </div>
index 6ec853d..d7b557f 100755 (executable)
@@ -494,19 +494,13 @@ def parseCreate(user, fields):
 
 def create(user, fields):
     """Handler for create requests."""
-    js = fields.getfirst('js')
     try:
         parsed_fields = parseCreate(user, fields)
         machine = createVm(**parsed_fields)
     except InvalidInput, err:
-        if not js:
-            raise
+        pass
     else:
         err = None
-        if not js:
-            d = dict(user=user,
-                     machine=machine)
-            return Template(file='create.tmpl', searchList=[d])
     g.clear() #Changed global state
     d = getListDict(user)
     d['err'] = err
@@ -515,9 +509,7 @@ def create(user, fields):
             setattr(d['defaults'], field, fields.getfirst(field))
     else:
         d['new_machine'] = parsed_fields['name']
-    t = Template(file='list.tmpl', searchList=[d])
-    return JsonDict(createtable=t.createTable(),
-                    machinelist=t.machineList(d['machines']))
+    return Template(file='list.tmpl', searchList=[d])
 
 
 def getListDict(user):
@@ -556,18 +548,7 @@ def getListDict(user):
 def listVms(user, fields):
     """Handler for list requests."""
     d = getListDict(user)
-    t = Template(file='list.tmpl', searchList=[d])
-    js = fields.getfirst('js')
-    if not js:
-        return t
-    if js == 'machinelist':
-        return t.machineList(d['machines'])
-    elif js.startswith('machinerow-'):
-        request_machine_id = int(js.split('-')[1])
-        m = [x for x in d['machines'] if x.id == request_machine_id]
-        return t.machineRow(m)
-    elif js == 'createtable':
-        return t.createTable()
+    return Template(file='list.tmpl', searchList=[d])
             
 def testMachineId(user, machineId, exists=True):
     """Parse, validate and check authorization for a given machineId.
@@ -757,37 +738,32 @@ def commandResult(user, fields):
 
 def command(user, fields):
     """Handler for running commands like boot and delete on a VM."""
-    js = fields.getfirst('js')
+    back = fields.getfirst('back')
     try:
         d = commandResult(user, fields)
+        if d['command'] == 'Delete VM':
+            back = 'list'
     except InvalidInput, err:
-        if not js:
+        if not back:
             raise
+        print >> sys.stderr, err
         result = None
     else:
-        err = None
         result = 'Success!'
-        if not js:
+        if not back:
             return Template(file='command.tmpl', searchList=[d])
-    if js == 'list':
+    if back == 'list':
         g.clear() #Changed global state
         d = getListDict(user)
-        t = Template(file='list.tmpl', searchList=[d])
-        return JsonDict(createtable=t.createTable(),
-                        machinelist=t.machineList(d['machines']),
-                        result=result,
-                        err=err)
-    elif js == 'info':
+        d['result'] = result
+        return Template(file='list.tmpl', searchList=[d])
+    elif back == 'info':
         machine = testMachineId(user, fields.getfirst('machine_id'))
         d = infoDict(user, machine)
-        t = Template(file='info.tmpl', searchList=[d])
-        return JsonDict(info=t.infoTable(),
-                        commands=t.commands(),
-                        modify=t.modifyForm(),
-                        result=result,
-                        err=err)
+        d['result'] = result
+        return Template(file='info.tmpl', searchList=[d])
     else:
-        raise InvalidInput('js', js, 'Not a known js type.')
+        raise InvalidInput('back', back, 'Not a known back page.')
 
 def testAdmin(user, admin, machine):
     if admin in (None, machine.administrator):
@@ -799,8 +775,9 @@ def testAdmin(user, admin, machine):
     if getafsgroups.checkAfsGroup(user.username, 'system:'+admin,
                                   'athena.mit.edu'):
         return 'system:'+admin
-    raise InvalidInput('administrator', admin, 
-                       'You must control the group you move it to.')
+    return admin
+    #raise InvalidInput('administrator', admin, 
+    #                   'You must control the group you move it to.')
     
 def testOwner(user, owner, machine):
     if owner in (None, machine.owner):
@@ -899,31 +876,22 @@ def modifyDict(user, fields):
     
 def modify(user, fields):
     """Handler for modifying attributes of a machine."""
-    js = fields.getfirst('js')
     try:
         modify_dict = modifyDict(user, fields)
     except InvalidInput, err:
-        if not js:
-            raise
-        result = ''
+        result = None
         machine = testMachineId(user, fields.getfirst('machine_id'))
     else:
         machine = modify_dict['machine']
         result='Success!'
         err = None
-        if not js:
-            return Template(file='command.tmpl', searchList=[modify_dict])
     info_dict = infoDict(user, machine)
     info_dict['err'] = err
     if err:
         for field in fields.keys():
             setattr(info_dict['defaults'], field, fields.getfirst(field))
-    t = Template(file='info.tmpl', searchList=[info_dict])
-    return JsonDict(info=t.infoTable(),
-                    commands=t.commands(),
-                    modify=t.modifyForm(),
-                    result=result,
-                    err=err)
+    info_dict['result'] = result
+    return Template(file='info.tmpl', searchList=[info_dict])
     
 
 def helpHandler(user, fields):
index dc00887..e752e5f 100644 (file)
@@ -32,12 +32,12 @@ VFFSL=valueFromFrameOrSearchList
 VFSL=valueFromSearchList
 VFN=valueForName
 currentTime=time.time
-__CHEETAH_version__ = '2.0rc7'
-__CHEETAH_versionTuple__ = (2, 0, 0, 'candidate', 7)
-__CHEETAH_genTime__ = 1192883610.434917
-__CHEETAH_genTimestamp__ = 'Sat Oct 20 08:33:30 2007'
+__CHEETAH_version__ = '2.0rc8'
+__CHEETAH_versionTuple__ = (2, 0, 0, 'candidate', 8)
+__CHEETAH_genTime__ = 1192889324.1837969
+__CHEETAH_genTimestamp__ = 'Sat Oct 20 10:08:44 2007'
 __CHEETAH_src__ = 'skeleton.tmpl'
-__CHEETAH_srcLastModified__ = 'Sat Oct 20 08:33:05 2007'
+__CHEETAH_srcLastModified__ = 'Sat Oct 20 10:08:36 2007'
 __CHEETAH_docstring__ = 'Autogenerated by CHEETAH: The Python-Powered Template Engine'
 
 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -100,10 +100,10 @@ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   <script type="text/javascript">
 var helpWin = null;
 function closeWin(){
-       if (helpWin != null){
-               if(!helpWin.closed)
-                       helpWin.close();
-       }
+\tif (helpWin != null){
+\t\tif(!helpWin.closed)
+\t\t\thelpWin.close();
+\t}
 }
 
 function helppopup(name){
@@ -113,96 +113,66 @@ 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 = function (){
-  //Fix bug with disabled elements
-  $$('form').each(Form.enable);
-}
-
 </script>
 </head>
 <body id="body">
 
 <div id="err">
 ''')
-        if VFFSL(SL,"varExists",False)('error_text'): # generated from line 83, col 1
-            write('<p>STDERR:</p><pre>')
-            _v = VFFSL(SL,"error_text",True) # '$error_text' on line 84, col 20
-            if _v is not None: write(_filter(_v, rawExpr='$error_text')) # from line 84, col 20.
-            write('</pre>\n')
-        write('</div>\n\n')
-        if not VFFSL(SL,"varExists",False)('simple') or not VFFSL(SL,"simple",True): # generated from line 88, col 1
-            write('<p>[You are logged in as ')
-            _v = VFFSL(SL,"user.username",True) # '$user.username' on line 89, col 26
-            if _v is not None: write(_filter(_v, rawExpr='$user.username')) # from line 89, col 26.
+        if VFFSL(SL,"varExists",False)('error_text'): # generated from line 35, col 1
+            write('''<p>STDERR:</p><pre>''')
+            _v = VFFSL(SL,"error_text",True) # '$error_text' on line 36, col 20
+            if _v is not None: write(_filter(_v, rawExpr='$error_text')) # from line 36, col 20.
+            write('''</pre>
+''')
+        write('''</div>
+
+''')
+        if not VFFSL(SL,"varExists",False)('simple') or not VFFSL(SL,"simple",True): # generated from line 40, col 1
+            write('''<p>[You are logged in as ''')
+            _v = VFFSL(SL,"user.username",True) # '$user.username' on line 41, col 26
+            if _v is not None: write(_filter(_v, rawExpr='$user.username')) # from line 41, col 26.
             write('''.]</p>
 
 <div class="navigation">
 <p><a href="list">List</a> 
 ''')
-            if VFFSL(SL,"varExists",False)('machine'): # generated from line 93, col 1
-                write('<a href="info?machine_id=')
-                _v = VFFSL(SL,"machine.machine_id",True) # '$machine.machine_id' on line 94, col 26
-                if _v is not None: write(_filter(_v, rawExpr='$machine.machine_id')) # from line 94, col 26.
-                write('">Info</a>\n<a href="vnc?machine_id=')
-                _v = VFFSL(SL,"machine.machine_id",True) # '$machine.machine_id' on line 95, col 25
-                if _v is not None: write(_filter(_v, rawExpr='$machine.machine_id')) # from line 95, col 25.
-                write('">Console</a>\n')
-            write('<a href="help">Help</a></p>\n')
+            if VFFSL(SL,"varExists",False)('machine'): # generated from line 45, col 1
+                write('''<a href="info?machine_id=''')
+                _v = VFFSL(SL,"machine.machine_id",True) # '$machine.machine_id' on line 46, col 26
+                if _v is not None: write(_filter(_v, rawExpr='$machine.machine_id')) # from line 46, col 26.
+                write('''">Info</a>
+<a href="vnc?machine_id=''')
+                _v = VFFSL(SL,"machine.machine_id",True) # '$machine.machine_id' on line 47, col 25
+                if _v is not None: write(_filter(_v, rawExpr='$machine.machine_id')) # from line 47, col 25.
+                write('''">Console</a>
+''')
+            write('''<a href="help">Help</a></p>
+''')
         write('''</div>
 
 <div id="loadingnotice" class="loadingnotice">LOADING</div>
-<div id="result" class="result"></div>
+<div id="result" class="result">
+''')
+        if VFFSL(SL,"varExists",False)('result'): # generated from line 55, col 1
+            _v = VFFSL(SL,"result",True) # '$result' on line 56, col 1
+            if _v is not None: write(_filter(_v, rawExpr='$result')) # from line 56, col 1.
+            write('''
+''')
+        write('''</div>
 
 ''')
-        _v = VFFSL(SL,"body",True) # '$body' on line 104, col 1
-        if _v is not None: write(_filter(_v, rawExpr='$body')) # from line 104, col 1.
-        write('\n')
-        if not VFFSL(SL,"varExists",False)('simple') or not VFFSL(SL,"simple",True): # generated from line 105, col 1
-            write('<hr />\nQuestions? Contact <a href="mailto:sipb-xen-dev@mit.edu">sipb-xen-dev@mit.edu</a>.\n')
-        write('</body>\n</html>\n')
+        _v = VFFSL(SL,"body",True) # '$body' on line 60, col 1
+        if _v is not None: write(_filter(_v, rawExpr='$body')) # from line 60, col 1.
+        write('''
+''')
+        if not VFFSL(SL,"varExists",False)('simple') or not VFFSL(SL,"simple",True): # generated from line 61, col 1
+            write('''<hr />
+Questions? Contact <a href="mailto:sipb-xen-dev@mit.edu">sipb-xen-dev@mit.edu</a>.
+''')
+        write('''</body>
+</html>
+''')
         
         ########################################
         ## END - generated method body
@@ -229,7 +199,8 @@ window.onload = function (){
         ########################################
         ## START - generated method body
         
-        write('\n')
+        write('''
+''')
         
         ########################################
         ## END - generated method body
index dab9ab0..ae7431b 100644 (file)
@@ -27,54 +27,6 @@ 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 = function (){
-  //Fix bug with disabled elements
-  \$\$('form').each(Form.enable);
-}
-
 </script>
 </head>
 <body id="body">
@@ -99,7 +51,11 @@ window.onload = function (){
 </div>
 
 <div id="loadingnotice" class="loadingnotice">LOADING</div>
-<div id="result" class="result"></div>
+<div id="result" class="result">
+#if $varExists('result')
+$result
+#end if
+</div>
 
 $body
 #if not $varExists('simple') or not $simple